Changeset 2722706
- Timestamp:
- 05/12/2022 12:54:36 PM (4 years ago)
- Location:
- tangible-loops-and-logic
- Files:
-
- 8 added
- 1 deleted
- 23 edited
- 137 copied
-
tags/2.4.3 (copied) (copied from tangible-loops-and-logic/trunk)
-
tags/2.4.3/assets/build/beaver-template-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/beaver-template-editor.min.js.map)
-
tags/2.4.3/assets/build/elementor-template-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/elementor-template-editor.min.js.map)
-
tags/2.4.3/assets/build/gutenberg-template-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/gutenberg-template-editor.min.js.map)
-
tags/2.4.3/assets/build/template-assets-editor.min.css.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-assets-editor.min.css.map)
-
tags/2.4.3/assets/build/template-assets-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-assets-editor.min.js.map)
-
tags/2.4.3/assets/build/template-block-fields.min.css (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-block-fields.min.css)
-
tags/2.4.3/assets/build/template-block-fields.min.js (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-block-fields.min.js)
-
tags/2.4.3/assets/build/template-block-fields.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-block-fields.min.js.map)
-
tags/2.4.3/assets/build/template-cloud.min.css.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-cloud.min.css.map)
-
tags/2.4.3/assets/build/template-cloud.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-cloud.min.js.map)
-
tags/2.4.3/assets/build/template-editor.min.css.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-editor.min.css.map)
-
tags/2.4.3/assets/build/template-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-editor.min.js.map)
-
tags/2.4.3/assets/build/template-import-export.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-import-export.min.js.map)
-
tags/2.4.3/assets/build/template-location-editor.min.css (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-location-editor.min.css)
-
tags/2.4.3/assets/build/template-location-editor.min.css.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-location-editor.min.css.map)
-
tags/2.4.3/assets/build/template-location-editor.min.js (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-location-editor.min.js)
-
tags/2.4.3/assets/build/template-location-editor.min.js.map (copied) (copied from tangible-loops-and-logic/trunk/assets/build/template-location-editor.min.js.map)
-
tags/2.4.3/assets/src/common/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/common/index.scss)
-
tags/2.4.3/assets/src/common/modal/Modal.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/common/modal/Modal.js)
-
tags/2.4.3/assets/src/common/modal/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/common/modal/index.scss)
-
tags/2.4.3/assets/src/gutenberg-template-editor/blocks/template/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/gutenberg-template-editor/blocks/template/index.js)
-
tags/2.4.3/assets/src/gutenberg-template-editor/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/gutenberg-template-editor/index.scss)
-
tags/2.4.3/assets/src/template-assets-editor/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-assets-editor/index.js)
-
tags/2.4.3/assets/src/template-assets-editor/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-assets-editor/index.scss)
-
tags/2.4.3/assets/src/template-cloud/Menu.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-cloud/Menu.js)
-
tags/2.4.3/assets/src/template-cloud/Paginator.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-cloud/Paginator.js)
-
tags/2.4.3/assets/src/template-cloud/common.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-cloud/common.js)
-
tags/2.4.3/assets/src/template-cloud/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-cloud/index.js)
-
tags/2.4.3/assets/src/template-cloud/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-cloud/index.scss)
-
tags/2.4.3/assets/src/template-editor/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-editor/index.scss)
-
tags/2.4.3/assets/src/template-import-export/Exporter/ExportRule.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-import-export/Exporter/ExportRule.js)
-
tags/2.4.3/assets/src/template-import-export/Importer/handleDuplicates.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-import-export/Importer/handleDuplicates.js)
-
tags/2.4.3/assets/src/template-location-editor/LocationEditor.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/LocationEditor.js)
-
tags/2.4.3/assets/src/template-location-editor/RuleGroups/Rule/Field.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/RuleGroups/Rule/Field.js)
-
tags/2.4.3/assets/src/template-location-editor/RuleGroups/Rule/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/RuleGroups/Rule/index.js)
-
tags/2.4.3/assets/src/template-location-editor/RuleGroups/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/RuleGroups/index.js)
-
tags/2.4.3/assets/src/template-location-editor/index.js (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/index.js)
-
tags/2.4.3/assets/src/template-location-editor/index.scss (copied) (copied from tangible-loops-and-logic/trunk/assets/src/template-location-editor/index.scss)
-
tags/2.4.3/includes/admin/admin-notice.php (copied) (copied from tangible-loops-and-logic/trunk/includes/admin/admin-notice.php)
-
tags/2.4.3/includes/features/hyperdb (copied) (copied from tangible-loops-and-logic/trunk/includes/features/hyperdb)
-
tags/2.4.3/includes/features/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/features/index.php) (1 diff)
-
tags/2.4.3/includes/features/mobile-detect (added)
-
tags/2.4.3/includes/features/mobile-detect/Mobile_Detect.php (added)
-
tags/2.4.3/includes/features/mobile-detect/index.php (added)
-
tags/2.4.3/includes/features/mobile-detect/update-lib (added)
-
tags/2.4.3/includes/features/vidstack-player (copied) (copied from tangible-loops-and-logic/trunk/includes/features/vidstack-player)
-
tags/2.4.3/includes/integrations/beaver/field-types/tangible-template-editor.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/beaver/field-types/tangible-template-editor.php)
-
tags/2.4.3/includes/integrations/beaver/modules/tangible-template/js/settings.js (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/beaver/modules/tangible-template/js/settings.js)
-
tags/2.4.3/includes/integrations/elementor/enqueue.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/elementor/enqueue.php)
-
tags/2.4.3/includes/integrations/elementor/template-editor-control.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/elementor/template-editor-control.php)
-
tags/2.4.3/includes/integrations/third-party/admin.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/third-party/admin.php)
-
tags/2.4.3/includes/integrations/wp-fusion/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/roadmap.md (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/roadmap.md)
-
tags/2.4.3/includes/integrations/wp-fusion/types/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/functions/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/functions/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/test/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/test/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/test/logic/backend.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/test/logic/backend.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/test/logic/frontend/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/test/logic/frontend/index.php)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/test/logic/frontend/test.js (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/test/logic/frontend/test.js)
-
tags/2.4.3/includes/integrations/wp-fusion/types/user/test/logic/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/integrations/wp-fusion/types/user/test/logic/index.php)
-
tags/2.4.3/includes/template/assets/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/assets/index.php)
-
tags/2.4.3/includes/template/data.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/data.php)
-
tags/2.4.3/includes/template/editor/ajax.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/editor/ajax.php)
-
tags/2.4.3/includes/template/editor/enqueue.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/editor/enqueue.php)
-
tags/2.4.3/includes/template/import-export/ajax/item-options.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/import-export/ajax/item-options.php)
-
tags/2.4.3/includes/template/import-export/enqueue.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/import-export/enqueue.php)
-
tags/2.4.3/includes/template/import-export/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/import-export/index.php)
-
tags/2.4.3/includes/template/import-export/menu.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/import-export/menu.php)
-
tags/2.4.3/includes/template/location/admin/enqueue.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/admin/enqueue.php)
-
tags/2.4.3/includes/template/location/admin/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/admin/index.php)
-
tags/2.4.3/includes/template/location/ajax/post-type.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/ajax/post-type.php)
-
tags/2.4.3/includes/template/location/ajax/taxonomy.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/ajax/taxonomy.php)
-
tags/2.4.3/includes/template/location/frontend/enqueue.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/frontend/enqueue.php)
-
tags/2.4.3/includes/template/location/frontend/index.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/frontend/index.php)
-
tags/2.4.3/includes/template/location/rules/definition.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/rules/definition.php)
-
tags/2.4.3/includes/template/location/rules/evaluate.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/location/rules/evaluate.php)
-
tags/2.4.3/includes/template/post-types/menu.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/post-types/menu.php)
-
tags/2.4.3/includes/template/post-types/taxonomy.php (copied) (copied from tangible-loops-and-logic/trunk/includes/template/post-types/taxonomy.php)
-
tags/2.4.3/package.json (copied) (copied from tangible-loops-and-logic/trunk/package.json)
-
tags/2.4.3/readme.txt (copied) (copied from tangible-loops-and-logic/trunk/readme.txt) (2 diffs)
-
tags/2.4.3/tangible-loops-and-logic.php (copied) (copied from tangible-loops-and-logic/trunk/tangible-loops-and-logic.php) (2 diffs)
-
tags/2.4.3/tangible.config.js (copied) (copied from tangible-loops-and-logic/trunk/tangible.config.js)
-
tags/2.4.3/vendor/autoload.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/autoload.php) (1 diff)
-
tags/2.4.3/vendor/composer/InstalledVersions.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/InstalledVersions.php)
-
tags/2.4.3/vendor/composer/autoload_classmap.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/autoload_classmap.php)
-
tags/2.4.3/vendor/composer/autoload_namespaces.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/autoload_namespaces.php)
-
tags/2.4.3/vendor/composer/autoload_psr4.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/autoload_psr4.php)
-
tags/2.4.3/vendor/composer/autoload_real.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/autoload_real.php) (2 diffs)
-
tags/2.4.3/vendor/composer/autoload_static.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/autoload_static.php) (2 diffs)
-
tags/2.4.3/vendor/composer/installed.json (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/installed.json) (2 diffs)
-
tags/2.4.3/vendor/composer/installed.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/composer/installed.php) (4 diffs)
-
tags/2.4.3/vendor/tangible/loop/context/index.php (modified) (2 diffs)
-
tags/2.4.3/vendor/tangible/loop/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/index.php) (1 diff)
-
tags/2.4.3/vendor/tangible/loop/types/attachment/field.php (modified) (2 diffs)
-
tags/2.4.3/vendor/tangible/loop/types/attachment/index.php (modified) (1 diff)
-
tags/2.4.3/vendor/tangible/loop/types/base/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/base/index.php) (5 diffs)
-
tags/2.4.3/vendor/tangible/loop/types/calendar/day.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/calendar/day.php)
-
tags/2.4.3/vendor/tangible/loop/types/calendar/month.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/calendar/month.php)
-
tags/2.4.3/vendor/tangible/loop/types/calendar/week.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/calendar/week.php)
-
tags/2.4.3/vendor/tangible/loop/types/calendar/weekday.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/calendar/weekday.php)
-
tags/2.4.3/vendor/tangible/loop/types/calendar/year.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/calendar/year.php)
-
tags/2.4.3/vendor/tangible/loop/types/post/field.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/post/field.php)
-
tags/2.4.3/vendor/tangible/loop/types/post/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/post/index.php) (6 diffs)
-
tags/2.4.3/vendor/tangible/loop/types/taxonomy-term/field.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/taxonomy-term/field.php) (2 diffs)
-
tags/2.4.3/vendor/tangible/loop/types/taxonomy-term/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/loop/types/taxonomy-term/index.php) (1 diff)
-
tags/2.4.3/vendor/tangible/plugin-framework/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/plugin-framework/index.php)
-
tags/2.4.3/vendor/tangible/plugin-framework/modules/html/parse/parser/parser.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/plugin-framework/modules/html/parse/parser/parser.php)
-
tags/2.4.3/vendor/tangible/template/assets/src/module-loader/assetLoader.js (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/assets/src/module-loader/assetLoader.js)
-
tags/2.4.3/vendor/tangible/template/format/text.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/format/text.php) (1 diff)
-
tags/2.4.3/vendor/tangible/template/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/index.php) (1 diff)
-
tags/2.4.3/vendor/tangible/template/logic/comparison.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/logic/comparison.php) (2 diffs)
-
tags/2.4.3/vendor/tangible/template/logic/definition.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/logic/definition.php)
-
tags/2.4.3/vendor/tangible/template/logic/evaluate.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/logic/evaluate.php)
-
tags/2.4.3/vendor/tangible/template/modules/math/Math.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/modules/math/Math.php)
-
tags/2.4.3/vendor/tangible/template/tags/async/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/async/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/cache/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/cache/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/date.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/date.php)
-
tags/2.4.3/vendor/tangible/template/tags/field/acf.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/field/acf.php)
-
tags/2.4.3/vendor/tangible/template/tags/field/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/field/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/format.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/format.php)
-
tags/2.4.3/vendor/tangible/template/tags/if/evaluate.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/if/evaluate.php)
-
tags/2.4.3/vendor/tangible/template/tags/if/get-set.php (deleted)
-
tags/2.4.3/vendor/tangible/template/tags/if/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/if/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/if/logic-variable.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/if/logic-variable.php)
-
tags/2.4.3/vendor/tangible/template/tags/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/load.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/load.php)
-
tags/2.4.3/vendor/tangible/template/tags/loop/index.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/loop/index.php)
-
tags/2.4.3/vendor/tangible/template/tags/media (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/media)
-
tags/2.4.3/vendor/tangible/template/tags/meta.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/meta.php)
-
tags/2.4.3/vendor/tangible/template/tags/path.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/path.php)
-
tags/2.4.3/vendor/tangible/template/tags/random.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/random.php)
-
tags/2.4.3/vendor/tangible/template/tags/redirect.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/redirect.php)
-
tags/2.4.3/vendor/tangible/template/tags/route.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/route.php)
-
tags/2.4.3/vendor/tangible/template/tags/script.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/script.php)
-
tags/2.4.3/vendor/tangible/template/tags/setting.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/setting.php)
-
tags/2.4.3/vendor/tangible/template/tags/shortcode.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/shortcode.php)
-
tags/2.4.3/vendor/tangible/template/tags/site.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/site.php)
-
tags/2.4.3/vendor/tangible/template/tags/style.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/style.php)
-
tags/2.4.3/vendor/tangible/template/tags/taxonomy.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/taxonomy.php)
-
tags/2.4.3/vendor/tangible/template/tags/term.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/term.php) (1 diff)
-
tags/2.4.3/vendor/tangible/template/tags/timer.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/timer.php)
-
tags/2.4.3/vendor/tangible/template/tags/url.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/url.php)
-
tags/2.4.3/vendor/tangible/template/tags/user.php (copied) (copied from tangible-loops-and-logic/trunk/vendor/tangible/template/tags/user.php)
-
trunk/includes/features/index.php (modified) (1 diff)
-
trunk/includes/features/mobile-detect (added)
-
trunk/includes/features/mobile-detect/Mobile_Detect.php (added)
-
trunk/includes/features/mobile-detect/index.php (added)
-
trunk/includes/features/mobile-detect/update-lib (added)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/tangible-loops-and-logic.php (modified) (2 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.json (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (4 diffs)
-
trunk/vendor/tangible/loop/context/index.php (modified) (2 diffs)
-
trunk/vendor/tangible/loop/index.php (modified) (1 diff)
-
trunk/vendor/tangible/loop/types/attachment/field.php (modified) (2 diffs)
-
trunk/vendor/tangible/loop/types/attachment/index.php (modified) (1 diff)
-
trunk/vendor/tangible/loop/types/base/index.php (modified) (5 diffs)
-
trunk/vendor/tangible/loop/types/post/index.php (modified) (6 diffs)
-
trunk/vendor/tangible/loop/types/taxonomy-term/field.php (modified) (2 diffs)
-
trunk/vendor/tangible/loop/types/taxonomy-term/index.php (modified) (1 diff)
-
trunk/vendor/tangible/template/format/text.php (modified) (1 diff)
-
trunk/vendor/tangible/template/index.php (modified) (1 diff)
-
trunk/vendor/tangible/template/logic/comparison.php (modified) (2 diffs)
-
trunk/vendor/tangible/template/tags/term.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
tangible-loops-and-logic/tags/2.4.3/includes/features/index.php
r2715426 r2722706 6 6 7 7 require_once __DIR__.'/hyperdb/index.php'; 8 require_once __DIR__.'/mobile-detect/index.php'; 8 9 require_once __DIR__.'/vidstack-player/index.php'; -
tangible-loops-and-logic/tags/2.4.3/readme.txt
r2717702 r2722706 1 1 === Loops & Logic === 2 Stable tag: 2.4. 22 Stable tag: 2.4.3 3 3 Requires at least: 5.6 4 Tested up to: 5.94 Tested up to: 6.0 5 5 Requires PHP: 7.0 6 6 License: GPLv2 … … 131 131 132 132 == Changelog == 133 134 = 2.4.3 = 135 136 Release Date: 2022-05-12 137 138 - Add Mobile Detect module 139 - Variable type "device" 140 - `<Get device=type />` is mobile, tablet, or desktop 141 - Device conditions 142 - `<If device=mobile>` 143 - `<If device=tablet>` 144 - `<If device=desktop>` 145 - `<If not device=desktop>` 146 - Attachment loop: Add field for file "size" and "type" 147 - Base loop 148 - Filter by field - For `field_compare` parameter, use the same common comparison operators as If tag 149 - Set default loop context on author and taxonomy term archive pages 150 - Format tag 151 - Add case "lower" and "upper" 152 - Consolidate case conversions: camel, kebab, snake, pascal 153 - Post loop: Taxonomy query 154 - Add parameter `child_terms=true` to include child terms for hierarchical taxonomies 155 - Improve `terms=current` to support taxonomy term loop as well as archive page 156 - Taxonomy term loop 157 - Add alias "terms" for "include" 158 - Field `posts` gets posts of any post type that belong to current term 159 - Test compatibility with WordPress 6.0 133 160 134 161 = 2.4.2 = -
tangible-loops-and-logic/tags/2.4.3/tangible-loops-and-logic.php
r2717702 r2722706 4 4 * Plugin URI: https://loop.tangible.one 5 5 * Description: A template system with content type loops and conditions. 6 * Version: 2.4. 26 * Version: 2.4.3 7 7 * Author: Team Tangible 8 8 * Author URI: https://teamtangible.com … … 10 10 */ 11 11 12 define( 'TANGIBLE_LOOPS_AND_LOGIC_VERSION', '2.4. 2' );12 define( 'TANGIBLE_LOOPS_AND_LOGIC_VERSION', '2.4.3' ); 13 13 14 14 require_once __DIR__ . '/vendor/tangible/plugin-framework/index.php'; -
tangible-loops-and-logic/tags/2.4.3/vendor/autoload.php
r2717702 r2722706 10 10 require_once __DIR__ . '/composer/autoload_real.php'; 11 11 12 return ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24::getLoader();12 return ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b::getLoader(); -
tangible-loops-and-logic/tags/2.4.3/vendor/composer/autoload_real.php
r2717702 r2722706 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca245 class ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca24::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b::getInitializer($loader)); 31 31 32 32 $loader->register(true); -
tangible-loops-and-logic/tags/2.4.3/vendor/composer/autoload_static.php
r2717702 r2722706 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca247 class ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b 8 8 { 9 9 public static $classMap = array ( … … 14 14 { 15 15 return \Closure::bind(function () use ($loader) { 16 $loader->classMap = ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca24::$classMap;16 $loader->classMap = ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b::$classMap; 17 17 18 18 }, null, ClassLoader::class); -
tangible-loops-and-logic/tags/2.4.3/vendor/composer/installed.json
r2717702 r2722706 38 38 "type": "git", 39 39 "url": "git@bitbucket.org:/tangibleinc/tangible-loop-module.git", 40 "reference": " 46e2251b40557f8ddc1e6a1e2163f63d80cd598f"40 "reference": "d68303b1abffcd796d9c9cc9f31162f8c906a7a4" 41 41 }, 42 "time": "2022-0 4-25T19:32:53+00:00",42 "time": "2022-05-12T12:10:25+00:00", 43 43 "default-branch": true, 44 44 "type": "library", … … 67 67 "type": "git", 68 68 "url": "git@bitbucket.org:/tangibleinc/tangible-template-module.git", 69 "reference": " 1e15cdee6bedee066529a9ad8cb00c5c71b0f5dc"69 "reference": "3825fe4b1f92c111225ce523e963a0738ede6081" 70 70 }, 71 "time": "2022-05- 03T17:33:27+00:00",71 "time": "2022-05-12T11:50:56+00:00", 72 72 "default-branch": true, 73 73 "type": "library", -
tangible-loops-and-logic/tags/2.4.3/vendor/composer/installed.php
r2717702 r2722706 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 08b114502d541b906958c5102e7141f7807cc02f',8 'reference' => '603ee93de91b0f16d4bf6f366380706b40dbbf61', 9 9 'name' => '__root__', 10 10 'dev' => false, … … 17 17 'install_path' => __DIR__ . '/../../', 18 18 'aliases' => array(), 19 'reference' => ' 08b114502d541b906958c5102e7141f7807cc02f',19 'reference' => '603ee93de91b0f16d4bf6f366380706b40dbbf61', 20 20 'dev_requirement' => false, 21 21 ), … … 50 50 0 => '9999999-dev', 51 51 ), 52 'reference' => ' 46e2251b40557f8ddc1e6a1e2163f63d80cd598f',52 'reference' => 'd68303b1abffcd796d9c9cc9f31162f8c906a7a4', 53 53 'dev_requirement' => false, 54 54 ), … … 70 70 0 => '9999999-dev', 71 71 ), 72 'reference' => ' 1e15cdee6bedee066529a9ad8cb00c5c71b0f5dc',72 'reference' => '3825fe4b1f92c111225ce523e963a0738ede6081', 73 73 'dev_requirement' => false, 74 74 ), -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/context/index.php
r2675945 r2722706 41 41 if ($context && $context->get_name()===$type) { 42 42 return $context; 43 } 44 } 45 46 if ($type==='taxonomy_term') { 47 48 $context = $loop->get_context(); 49 50 // Taxonomy term loop 51 if (!empty($context) && $context->get_name()===$type) { 52 return $context; 53 } 54 55 // Taxonomy archive 56 if (is_category() || is_tag() || is_tax()) { 57 $object = get_queried_object(); 58 return $loop('taxonomy_term', [ 59 'taxonomy' => $object->taxonomy, 60 'id' => $object->term_id 61 ]); 43 62 } 44 63 } … … 115 134 116 135 return $loop($post_type, [ 117 'query' => clone $wp_the_query, // Assumes this loop type supports "query"136 'query' => clone $wp_the_query, 118 137 ]); 119 138 }; -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/index.php
r2715426 r2722706 26 26 27 27 public $name = 'tangible_loop'; 28 public $version = '20220 425';28 public $version = '20220512'; 29 29 public $url = ''; 30 30 public $state = []; -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/attachment/field.php
r2595024 r2722706 68 68 $value = $attachment->post_status; 69 69 break; 70 case 'type': 70 71 case 'mime': 71 72 $value = $attachment->post_mime_type; … … 97 98 $value = pathinfo(wp_get_attachment_url($id), PATHINFO_EXTENSION); 98 99 break; 100 case 'size': 101 $metadata = wp_get_attachment_metadata($id); 102 if (isset($metadata['filesize'])) return $metadata['filesize']; 103 if (!isset($metadata['file'])) return; 104 105 $upload_dir = wp_upload_dir(); 106 $upload_base_dir = $upload_dir['basedir']; 107 $size = filesize( $upload_base_dir . '/' . $metadata['file'] ); 108 109 if (isset($args['raw'])) return $size; 110 111 if ( $size >= 1<<30 ) 112 return number_format($size/(1<<30),2).' GB'; 113 if ( $size >= 1<<20 ) 114 return number_format($size/(1<<20),2).' MB'; 115 if ( $size >= 1<<10 ) 116 return number_format($size/(1<<10),2).' KB'; 117 118 return number_format($size).' bytes'; 119 break; 120 99 121 case 'srcset': 100 122 -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/attachment/index.php
r2552244 r2722706 57 57 'filename' => [ 'description' => 'File name' ], 58 58 'extension' => [ 'description' => 'File extension' ], 59 'size' => [ 'description' => 'File size' ], 60 'type' => [ 'description' => 'File type' ], 59 61 60 62 'srcset' => [ 'description' => 'Responsive image attribute "srcset" for img tag - Accepts optional attribute "size" for image size name (default is "medium"), or width and height values in pixels separated by comma like "400,300"' ], -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/base/index.php
r2715426 r2722706 74 74 'field_compare' => [ 75 75 'target_name' => false, 76 'description' => 'Compare using one of: " equal" (default), "not", "before", "before_inclusive", "after", "after_inclusive", "in", "not_in", "exists", "notexists"',76 'description' => 'Compare using one of: "is" (default), "is_not", "before", "before_inclusive", "after", "after_inclusive", "in", "not_in", "exists", "not_exists"', 77 77 'type' => 'string', 78 78 ], … … 243 243 unset($args['field_value' . $postfix]); 244 244 245 // Default compare is " equal", not "exists", if value is set245 // Default compare is "is", not "exists", if value is set 246 246 if (!isset($args['field_compare' . $postfix])) { 247 $field['compare'] = ' =';247 $field['compare'] = 'is'; 248 248 } 249 249 } … … 458 458 459 459 // Ensure that current item exists 460 if (empty( $this->current )) return; 460 if (empty( $this->current )) { 461 if ($this->index!==-1) return; 462 463 // Start loop if it hasn't yet 464 $this->next(); 465 if (empty( $this->current )) return; 466 } 461 467 462 468 // If field name is empty, return the whole item … … 616 622 // Filter 617 623 618 function filter_by_field( $field_name, $field_compare = ' =', $field_value = '', $field_type = 'string' ) {624 function filter_by_field( $field_name, $field_compare = 'is', $field_value = '', $field_type = 'string' ) { 619 625 620 626 $filtered_items = []; 621 627 622 628 $field_compare = strtolower( $field_compare ); 629 630 $html = self::$loop->html; 623 631 624 632 foreach ($this->total_items as $item) { … … 629 637 $keep = false; 630 638 631 // Evaluate comparison 639 /** 640 * Evaluate comparison using same logic as If tag 641 * @see /vendor/tangible/template/logic/comparison.php 642 */ 632 643 633 644 switch ($field_compare) { 634 case 'greater_than': 635 case 'after': 636 case '>': $keep = $current_value > $field_value; break; 637 case 'less_than': 638 case 'before': 639 case '<': $keep = $current_value < $field_value; break; 640 case 'greater_than_or_equal': 641 case 'after_inclusive': 642 case '>=': $keep = $current_value >= $field_value; break; 643 case 'less_than_or_equal': 644 case 'before_inclusive': 645 case '<=': $keep = $current_value <= $field_value; break; 646 case 'equal': 647 case '=': $keep = $current_value === $field_value; break; 648 645 /** 646 * For array comparisons, flip current field value and given value 647 * because it's the opposite of how If tag works: field=X in value=X,Y,Z 648 */ 649 649 case 'in': 650 $keep = is_array($current_value) && in_array($field_value, $current_value); 650 case 'not_in': 651 $keep = $html->evaluate_logic_comparison( 652 $field_compare, $current_value, $field_value 653 ); 651 654 break; 652 case 'not_in': 653 $keep = is_array($current_value) && !in_array($field_value, $current_value); 654 break; 655 656 /** 657 * For exists (and not_exists), the following are considered "empty". 658 * 659 * - Empty string, array, or false 660 * - Loop instance with no items 661 * 662 * Notably, the number 0 *exists*. 663 */ 664 case 'exists': 665 case 'not_exists': 666 $exists = self::$loop->is_instance($current_value) 667 ? $current_value->has_next() 668 : ($current_value===0 || !empty( $current_value )) 669 ; 670 671 $keep = $field_compare==='exists' ? $exists : !$exists; 672 break; 655 default: 656 $keep = $html->evaluate_logic_comparison( 657 $field_compare, $field_value, $current_value 658 ); 673 659 } 674 660 -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/post/index.php
r2715426 r2722706 127 127 128 128 'taxonomy' => [ 129 'description' => 'Include by taxonomy ID or slug<br>Use with "term" and "taxonomy_compare" attributes',129 'description' => 'Include by taxonomy ID, slug, or "current" for taxonomy archive<br>Use with "term" and "taxonomy_compare" attributes', 130 130 'type' => ['string', 'number'], 131 131 ], … … 134 134 'type' => ['string', 'number', 'array'], 135 135 ], 136 'child_terms' => [ 137 'description' => 'Set "true" to include child terms for hierarchical taxonomies', 138 'type' => ['string'], 139 ], 140 136 141 'taxonomy_compare' => [ 137 142 'description' => 'One of "in" (default), "not", "and", "exists", and "not exists"<br>Use with "taxonomy" attribute', … … 666 671 $terms_key = 'terms' . $postfix; 667 672 $compare_key = 'taxonomy_compare' . $postfix; 673 $include_child_terms_key = 'child_terms' . $postfix; 668 674 669 675 if (!isset($query_args[ $key ])) continue; … … 702 708 if ($compare==='NOT') $compare = 'NOT IN'; 703 709 710 // Include child terms - false by default 711 $include_child_terms = isset($query_args[ $include_child_terms_key ]) && 712 $query_args[ $include_child_terms_key ]==='true' 713 ; 714 704 715 // Don't pass to WP_Query 705 716 unset( $query_args[ $key ] ); 706 717 unset( $query_args[ $terms_key ] ); 707 718 unset( $query_args[ $compare_key ] ); 719 unset( $query_args[ $include_child_terms_key ] ); 708 720 709 721 // Separate IDs and slugs … … 718 730 $value_types['id'] []= $value; 719 731 } elseif (is_string($value)) { 720 $value_types['slug'] []= $value; 732 733 if ($value==='current') { 734 735 // Current term inside taxonomy term loop or archive 736 737 $context = self::$loop->get_context('taxonomy_term'); 738 739 $value_types['id'] []= !empty($context) 740 ? $context->get_field('id') 741 : 0 // Force empty 742 ; 743 744 } else { 745 $value_types['slug'] []= $value; 746 } 721 747 } 722 748 } … … 737 763 738 764 'terms' => $values, 739 'include_children' => false,765 'include_children' => $include_child_terms, 740 766 'operator' => $compare, 741 767 ]; -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/taxonomy-term/field.php
r2715426 r2722706 21 21 if (empty( $item )) return; 22 22 23 $id = $item->term_id;23 $id = $item->term_id; 24 24 25 25 switch ( $field_name ) { … … 133 133 ], $args); // Other loop parameters 134 134 135 return $loop(' post', $loop_args);135 return $loop('any', $loop_args); 136 136 137 137 default: -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/loop/types/taxonomy-term/index.php
r2715426 r2722706 60 60 'description' => 'Exclude terms by ID(s) or slug(s)', 61 61 'type' => ['string', 'array'], 62 ], 63 'terms' => [ 64 'description' => 'Alias for "include"', 65 'type' => ['string', 'array'], 66 'target_name' => 'include', 62 67 ], 63 68 -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/template/format/text.php
r2715426 r2722706 2 2 3 3 /** 4 * Case conversion - camel, snake, kebab, pascal 5 * 6 * Using utility methods in plugin framework. 4 * Case conversion - camel, snake, kebab, pascal, lower, upper 7 5 */ 8 $html->format_case = function( $content, $options = [] ) use ($html){6 $html->format_case = function( $content, $options = [] ) { 9 7 10 8 if (!isset($options['case'])) return $content; 11 9 12 10 $case = $options['case']; 13 $callback_name = "{$case}_case";14 11 15 if (!isset($html->framework->$callback_name)) return $content; 12 switch ($case) { 13 case 'kebab': 14 case 'snake': 15 // Snake case: hello_world - Used for PHP array keys and variable names 16 $content = strtolower( 17 preg_replace('/\s+/', '_', 18 preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', 19 preg_replace('/[^a-zA-Z0-9]+/', '', $content) 20 ) 21 ) 22 ); 23 if ($case==='snake') return $content; 16 24 17 return $html->framework->$callback_name( $content ); 25 // Kebab case: hello-world - Used for post slugs and URL routes 26 return str_replace('_', '-', $content); 27 break; 28 case 'camel': 29 case 'pascal': 30 /** 31 * Pascal case: HelloWorld - Used for PHP and JS classes 32 * 33 * This will take any dash or underscore turn it into a space, 34 * run ucwords against it so it capitalizes the first letter in 35 * all words separated by a space then it turns and deletes all 36 * spaces. 37 */ 38 $content = str_replace(' ', '', ucwords( 39 strtolower(preg_replace('/[^a-zA-Z0-9]+/', ' ', $content)) 40 )); 41 if ($case==='pascal') return $content; 42 // Camel case: helloWorld - Used for JS object keys and variable names 43 return lcfirst( $content ); 44 break; 45 case 'lower': return strtolower( $content ); 46 case 'upper': return strtoupper( $content ); 47 } 48 49 // Unknown case 50 return $content; 18 51 }; 19 52 -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/template/index.php
r2717702 r2722706 27 27 28 28 public $name = 'tangible_template'; 29 public $version = '20220 430';29 public $version = '20220512'; 30 30 31 31 function load_latest_version() { -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/template/logic/comparison.php
r2715426 r2722706 149 149 $condition = $operand==='not_exists' ? !$c : $c; 150 150 break; 151 case 'more_than': $condition = $current_value > $value; break; 152 case 'more_than_or_equal': $condition = $current_value >= $value; break; 153 case 'less_than': $condition = $current_value < $value; break; 154 case 'less_than_or_equal': $condition = $current_value <= $value; break; 151 case 'more_than': 152 case 'after': 153 $condition = $current_value > $value; 154 break; 155 case 'more_than_or_equal': 156 case 'after_inclusive': 157 $condition = $current_value >= $value; 158 break; 159 case 'less_than': 160 case 'before': 161 $condition = $current_value < $value; 162 break; 163 case 'less_than_or_equal': 164 case 'before_inclusive': 165 $condition = $current_value <= $value; 166 break; 155 167 156 168 case 'starts_with': … … 220 232 isset($value[0]) && $value[0]==='[' 221 233 ? $framework->hjson()->parse( $value ) 222 : array_map('trim', explode(',', $value)) // Comma ndseparated list234 : array_map('trim', explode(',', $value)) // Comma-separated list 223 235 ) 224 236 ) -
tangible-loops-and-logic/tags/2.4.3/vendor/tangible/template/tags/term.php
r2717702 r2722706 37 37 38 38 $taxonomy_term_loop = $loop->get_context('taxonomy_term'); 39 if ( !empty($taxonomy_term_loop)) {39 if (empty($taxonomy_term_loop)) return; 40 40 41 // Set current loop context to taxonomy term loop42 $previous_context = $loop->current_context;43 $loop->current_context = $taxonomy_term_loop;41 // Set current loop context to taxonomy term loop 42 $previous_context = $loop->current_context; 43 $loop->current_context = $taxonomy_term_loop; 44 44 45 $value = $html->field_tag($atts);45 $value = $html->field_tag($atts); 46 46 47 // Restore loop context 48 $loop->current_context = $previous_context; 49 return $value; 50 } 47 // Restore loop context 48 $loop->current_context = $previous_context; 49 return $value; 51 50 }; 52 51 -
tangible-loops-and-logic/trunk/includes/features/index.php
r2715426 r2722706 6 6 7 7 require_once __DIR__.'/hyperdb/index.php'; 8 require_once __DIR__.'/mobile-detect/index.php'; 8 9 require_once __DIR__.'/vidstack-player/index.php'; -
tangible-loops-and-logic/trunk/readme.txt
r2717702 r2722706 1 1 === Loops & Logic === 2 Stable tag: 2.4. 22 Stable tag: 2.4.3 3 3 Requires at least: 5.6 4 Tested up to: 5.94 Tested up to: 6.0 5 5 Requires PHP: 7.0 6 6 License: GPLv2 … … 131 131 132 132 == Changelog == 133 134 = 2.4.3 = 135 136 Release Date: 2022-05-12 137 138 - Add Mobile Detect module 139 - Variable type "device" 140 - `<Get device=type />` is mobile, tablet, or desktop 141 - Device conditions 142 - `<If device=mobile>` 143 - `<If device=tablet>` 144 - `<If device=desktop>` 145 - `<If not device=desktop>` 146 - Attachment loop: Add field for file "size" and "type" 147 - Base loop 148 - Filter by field - For `field_compare` parameter, use the same common comparison operators as If tag 149 - Set default loop context on author and taxonomy term archive pages 150 - Format tag 151 - Add case "lower" and "upper" 152 - Consolidate case conversions: camel, kebab, snake, pascal 153 - Post loop: Taxonomy query 154 - Add parameter `child_terms=true` to include child terms for hierarchical taxonomies 155 - Improve `terms=current` to support taxonomy term loop as well as archive page 156 - Taxonomy term loop 157 - Add alias "terms" for "include" 158 - Field `posts` gets posts of any post type that belong to current term 159 - Test compatibility with WordPress 6.0 133 160 134 161 = 2.4.2 = -
tangible-loops-and-logic/trunk/tangible-loops-and-logic.php
r2717702 r2722706 4 4 * Plugin URI: https://loop.tangible.one 5 5 * Description: A template system with content type loops and conditions. 6 * Version: 2.4. 26 * Version: 2.4.3 7 7 * Author: Team Tangible 8 8 * Author URI: https://teamtangible.com … … 10 10 */ 11 11 12 define( 'TANGIBLE_LOOPS_AND_LOGIC_VERSION', '2.4. 2' );12 define( 'TANGIBLE_LOOPS_AND_LOGIC_VERSION', '2.4.3' ); 13 13 14 14 require_once __DIR__ . '/vendor/tangible/plugin-framework/index.php'; -
tangible-loops-and-logic/trunk/vendor/autoload.php
r2717702 r2722706 10 10 require_once __DIR__ . '/composer/autoload_real.php'; 11 11 12 return ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24::getLoader();12 return ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b::getLoader(); -
tangible-loops-and-logic/trunk/vendor/composer/autoload_real.php
r2717702 r2722706 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca245 class ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInit 5f136ea332e66fb1c0b5a02f96f2ca24', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInitc7682a24ebe8ba3f0ac243b5dabd518b', 'loadClassLoader')); 28 28 29 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca24::getInitializer($loader));30 call_user_func(\Composer\Autoload\ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b::getInitializer($loader)); 31 31 32 32 $loader->register(true); -
tangible-loops-and-logic/trunk/vendor/composer/autoload_static.php
r2717702 r2722706 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca247 class ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b 8 8 { 9 9 public static $classMap = array ( … … 14 14 { 15 15 return \Closure::bind(function () use ($loader) { 16 $loader->classMap = ComposerStaticInit 5f136ea332e66fb1c0b5a02f96f2ca24::$classMap;16 $loader->classMap = ComposerStaticInitc7682a24ebe8ba3f0ac243b5dabd518b::$classMap; 17 17 18 18 }, null, ClassLoader::class); -
tangible-loops-and-logic/trunk/vendor/composer/installed.json
r2717702 r2722706 38 38 "type": "git", 39 39 "url": "git@bitbucket.org:/tangibleinc/tangible-loop-module.git", 40 "reference": " 46e2251b40557f8ddc1e6a1e2163f63d80cd598f"40 "reference": "d68303b1abffcd796d9c9cc9f31162f8c906a7a4" 41 41 }, 42 "time": "2022-0 4-25T19:32:53+00:00",42 "time": "2022-05-12T12:10:25+00:00", 43 43 "default-branch": true, 44 44 "type": "library", … … 67 67 "type": "git", 68 68 "url": "git@bitbucket.org:/tangibleinc/tangible-template-module.git", 69 "reference": " 1e15cdee6bedee066529a9ad8cb00c5c71b0f5dc"69 "reference": "3825fe4b1f92c111225ce523e963a0738ede6081" 70 70 }, 71 "time": "2022-05- 03T17:33:27+00:00",71 "time": "2022-05-12T11:50:56+00:00", 72 72 "default-branch": true, 73 73 "type": "library", -
tangible-loops-and-logic/trunk/vendor/composer/installed.php
r2717702 r2722706 6 6 'install_path' => __DIR__ . '/../../', 7 7 'aliases' => array(), 8 'reference' => ' 08b114502d541b906958c5102e7141f7807cc02f',8 'reference' => '603ee93de91b0f16d4bf6f366380706b40dbbf61', 9 9 'name' => '__root__', 10 10 'dev' => false, … … 17 17 'install_path' => __DIR__ . '/../../', 18 18 'aliases' => array(), 19 'reference' => ' 08b114502d541b906958c5102e7141f7807cc02f',19 'reference' => '603ee93de91b0f16d4bf6f366380706b40dbbf61', 20 20 'dev_requirement' => false, 21 21 ), … … 50 50 0 => '9999999-dev', 51 51 ), 52 'reference' => ' 46e2251b40557f8ddc1e6a1e2163f63d80cd598f',52 'reference' => 'd68303b1abffcd796d9c9cc9f31162f8c906a7a4', 53 53 'dev_requirement' => false, 54 54 ), … … 70 70 0 => '9999999-dev', 71 71 ), 72 'reference' => ' 1e15cdee6bedee066529a9ad8cb00c5c71b0f5dc',72 'reference' => '3825fe4b1f92c111225ce523e963a0738ede6081', 73 73 'dev_requirement' => false, 74 74 ), -
tangible-loops-and-logic/trunk/vendor/tangible/loop/context/index.php
r2675945 r2722706 41 41 if ($context && $context->get_name()===$type) { 42 42 return $context; 43 } 44 } 45 46 if ($type==='taxonomy_term') { 47 48 $context = $loop->get_context(); 49 50 // Taxonomy term loop 51 if (!empty($context) && $context->get_name()===$type) { 52 return $context; 53 } 54 55 // Taxonomy archive 56 if (is_category() || is_tag() || is_tax()) { 57 $object = get_queried_object(); 58 return $loop('taxonomy_term', [ 59 'taxonomy' => $object->taxonomy, 60 'id' => $object->term_id 61 ]); 43 62 } 44 63 } … … 115 134 116 135 return $loop($post_type, [ 117 'query' => clone $wp_the_query, // Assumes this loop type supports "query"136 'query' => clone $wp_the_query, 118 137 ]); 119 138 }; -
tangible-loops-and-logic/trunk/vendor/tangible/loop/index.php
r2715426 r2722706 26 26 27 27 public $name = 'tangible_loop'; 28 public $version = '20220 425';28 public $version = '20220512'; 29 29 public $url = ''; 30 30 public $state = []; -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/attachment/field.php
r2595024 r2722706 68 68 $value = $attachment->post_status; 69 69 break; 70 case 'type': 70 71 case 'mime': 71 72 $value = $attachment->post_mime_type; … … 97 98 $value = pathinfo(wp_get_attachment_url($id), PATHINFO_EXTENSION); 98 99 break; 100 case 'size': 101 $metadata = wp_get_attachment_metadata($id); 102 if (isset($metadata['filesize'])) return $metadata['filesize']; 103 if (!isset($metadata['file'])) return; 104 105 $upload_dir = wp_upload_dir(); 106 $upload_base_dir = $upload_dir['basedir']; 107 $size = filesize( $upload_base_dir . '/' . $metadata['file'] ); 108 109 if (isset($args['raw'])) return $size; 110 111 if ( $size >= 1<<30 ) 112 return number_format($size/(1<<30),2).' GB'; 113 if ( $size >= 1<<20 ) 114 return number_format($size/(1<<20),2).' MB'; 115 if ( $size >= 1<<10 ) 116 return number_format($size/(1<<10),2).' KB'; 117 118 return number_format($size).' bytes'; 119 break; 120 99 121 case 'srcset': 100 122 -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/attachment/index.php
r2552244 r2722706 57 57 'filename' => [ 'description' => 'File name' ], 58 58 'extension' => [ 'description' => 'File extension' ], 59 'size' => [ 'description' => 'File size' ], 60 'type' => [ 'description' => 'File type' ], 59 61 60 62 'srcset' => [ 'description' => 'Responsive image attribute "srcset" for img tag - Accepts optional attribute "size" for image size name (default is "medium"), or width and height values in pixels separated by comma like "400,300"' ], -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/base/index.php
r2715426 r2722706 74 74 'field_compare' => [ 75 75 'target_name' => false, 76 'description' => 'Compare using one of: " equal" (default), "not", "before", "before_inclusive", "after", "after_inclusive", "in", "not_in", "exists", "notexists"',76 'description' => 'Compare using one of: "is" (default), "is_not", "before", "before_inclusive", "after", "after_inclusive", "in", "not_in", "exists", "not_exists"', 77 77 'type' => 'string', 78 78 ], … … 243 243 unset($args['field_value' . $postfix]); 244 244 245 // Default compare is " equal", not "exists", if value is set245 // Default compare is "is", not "exists", if value is set 246 246 if (!isset($args['field_compare' . $postfix])) { 247 $field['compare'] = ' =';247 $field['compare'] = 'is'; 248 248 } 249 249 } … … 458 458 459 459 // Ensure that current item exists 460 if (empty( $this->current )) return; 460 if (empty( $this->current )) { 461 if ($this->index!==-1) return; 462 463 // Start loop if it hasn't yet 464 $this->next(); 465 if (empty( $this->current )) return; 466 } 461 467 462 468 // If field name is empty, return the whole item … … 616 622 // Filter 617 623 618 function filter_by_field( $field_name, $field_compare = ' =', $field_value = '', $field_type = 'string' ) {624 function filter_by_field( $field_name, $field_compare = 'is', $field_value = '', $field_type = 'string' ) { 619 625 620 626 $filtered_items = []; 621 627 622 628 $field_compare = strtolower( $field_compare ); 629 630 $html = self::$loop->html; 623 631 624 632 foreach ($this->total_items as $item) { … … 629 637 $keep = false; 630 638 631 // Evaluate comparison 639 /** 640 * Evaluate comparison using same logic as If tag 641 * @see /vendor/tangible/template/logic/comparison.php 642 */ 632 643 633 644 switch ($field_compare) { 634 case 'greater_than': 635 case 'after': 636 case '>': $keep = $current_value > $field_value; break; 637 case 'less_than': 638 case 'before': 639 case '<': $keep = $current_value < $field_value; break; 640 case 'greater_than_or_equal': 641 case 'after_inclusive': 642 case '>=': $keep = $current_value >= $field_value; break; 643 case 'less_than_or_equal': 644 case 'before_inclusive': 645 case '<=': $keep = $current_value <= $field_value; break; 646 case 'equal': 647 case '=': $keep = $current_value === $field_value; break; 648 645 /** 646 * For array comparisons, flip current field value and given value 647 * because it's the opposite of how If tag works: field=X in value=X,Y,Z 648 */ 649 649 case 'in': 650 $keep = is_array($current_value) && in_array($field_value, $current_value); 650 case 'not_in': 651 $keep = $html->evaluate_logic_comparison( 652 $field_compare, $current_value, $field_value 653 ); 651 654 break; 652 case 'not_in': 653 $keep = is_array($current_value) && !in_array($field_value, $current_value); 654 break; 655 656 /** 657 * For exists (and not_exists), the following are considered "empty". 658 * 659 * - Empty string, array, or false 660 * - Loop instance with no items 661 * 662 * Notably, the number 0 *exists*. 663 */ 664 case 'exists': 665 case 'not_exists': 666 $exists = self::$loop->is_instance($current_value) 667 ? $current_value->has_next() 668 : ($current_value===0 || !empty( $current_value )) 669 ; 670 671 $keep = $field_compare==='exists' ? $exists : !$exists; 672 break; 655 default: 656 $keep = $html->evaluate_logic_comparison( 657 $field_compare, $field_value, $current_value 658 ); 673 659 } 674 660 -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/post/index.php
r2715426 r2722706 127 127 128 128 'taxonomy' => [ 129 'description' => 'Include by taxonomy ID or slug<br>Use with "term" and "taxonomy_compare" attributes',129 'description' => 'Include by taxonomy ID, slug, or "current" for taxonomy archive<br>Use with "term" and "taxonomy_compare" attributes', 130 130 'type' => ['string', 'number'], 131 131 ], … … 134 134 'type' => ['string', 'number', 'array'], 135 135 ], 136 'child_terms' => [ 137 'description' => 'Set "true" to include child terms for hierarchical taxonomies', 138 'type' => ['string'], 139 ], 140 136 141 'taxonomy_compare' => [ 137 142 'description' => 'One of "in" (default), "not", "and", "exists", and "not exists"<br>Use with "taxonomy" attribute', … … 666 671 $terms_key = 'terms' . $postfix; 667 672 $compare_key = 'taxonomy_compare' . $postfix; 673 $include_child_terms_key = 'child_terms' . $postfix; 668 674 669 675 if (!isset($query_args[ $key ])) continue; … … 702 708 if ($compare==='NOT') $compare = 'NOT IN'; 703 709 710 // Include child terms - false by default 711 $include_child_terms = isset($query_args[ $include_child_terms_key ]) && 712 $query_args[ $include_child_terms_key ]==='true' 713 ; 714 704 715 // Don't pass to WP_Query 705 716 unset( $query_args[ $key ] ); 706 717 unset( $query_args[ $terms_key ] ); 707 718 unset( $query_args[ $compare_key ] ); 719 unset( $query_args[ $include_child_terms_key ] ); 708 720 709 721 // Separate IDs and slugs … … 718 730 $value_types['id'] []= $value; 719 731 } elseif (is_string($value)) { 720 $value_types['slug'] []= $value; 732 733 if ($value==='current') { 734 735 // Current term inside taxonomy term loop or archive 736 737 $context = self::$loop->get_context('taxonomy_term'); 738 739 $value_types['id'] []= !empty($context) 740 ? $context->get_field('id') 741 : 0 // Force empty 742 ; 743 744 } else { 745 $value_types['slug'] []= $value; 746 } 721 747 } 722 748 } … … 737 763 738 764 'terms' => $values, 739 'include_children' => false,765 'include_children' => $include_child_terms, 740 766 'operator' => $compare, 741 767 ]; -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/taxonomy-term/field.php
r2715426 r2722706 21 21 if (empty( $item )) return; 22 22 23 $id = $item->term_id;23 $id = $item->term_id; 24 24 25 25 switch ( $field_name ) { … … 133 133 ], $args); // Other loop parameters 134 134 135 return $loop(' post', $loop_args);135 return $loop('any', $loop_args); 136 136 137 137 default: -
tangible-loops-and-logic/trunk/vendor/tangible/loop/types/taxonomy-term/index.php
r2715426 r2722706 60 60 'description' => 'Exclude terms by ID(s) or slug(s)', 61 61 'type' => ['string', 'array'], 62 ], 63 'terms' => [ 64 'description' => 'Alias for "include"', 65 'type' => ['string', 'array'], 66 'target_name' => 'include', 62 67 ], 63 68 -
tangible-loops-and-logic/trunk/vendor/tangible/template/format/text.php
r2715426 r2722706 2 2 3 3 /** 4 * Case conversion - camel, snake, kebab, pascal 5 * 6 * Using utility methods in plugin framework. 4 * Case conversion - camel, snake, kebab, pascal, lower, upper 7 5 */ 8 $html->format_case = function( $content, $options = [] ) use ($html){6 $html->format_case = function( $content, $options = [] ) { 9 7 10 8 if (!isset($options['case'])) return $content; 11 9 12 10 $case = $options['case']; 13 $callback_name = "{$case}_case";14 11 15 if (!isset($html->framework->$callback_name)) return $content; 12 switch ($case) { 13 case 'kebab': 14 case 'snake': 15 // Snake case: hello_world - Used for PHP array keys and variable names 16 $content = strtolower( 17 preg_replace('/\s+/', '_', 18 preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', 19 preg_replace('/[^a-zA-Z0-9]+/', '', $content) 20 ) 21 ) 22 ); 23 if ($case==='snake') return $content; 16 24 17 return $html->framework->$callback_name( $content ); 25 // Kebab case: hello-world - Used for post slugs and URL routes 26 return str_replace('_', '-', $content); 27 break; 28 case 'camel': 29 case 'pascal': 30 /** 31 * Pascal case: HelloWorld - Used for PHP and JS classes 32 * 33 * This will take any dash or underscore turn it into a space, 34 * run ucwords against it so it capitalizes the first letter in 35 * all words separated by a space then it turns and deletes all 36 * spaces. 37 */ 38 $content = str_replace(' ', '', ucwords( 39 strtolower(preg_replace('/[^a-zA-Z0-9]+/', ' ', $content)) 40 )); 41 if ($case==='pascal') return $content; 42 // Camel case: helloWorld - Used for JS object keys and variable names 43 return lcfirst( $content ); 44 break; 45 case 'lower': return strtolower( $content ); 46 case 'upper': return strtoupper( $content ); 47 } 48 49 // Unknown case 50 return $content; 18 51 }; 19 52 -
tangible-loops-and-logic/trunk/vendor/tangible/template/index.php
r2717702 r2722706 27 27 28 28 public $name = 'tangible_template'; 29 public $version = '20220 430';29 public $version = '20220512'; 30 30 31 31 function load_latest_version() { -
tangible-loops-and-logic/trunk/vendor/tangible/template/logic/comparison.php
r2715426 r2722706 149 149 $condition = $operand==='not_exists' ? !$c : $c; 150 150 break; 151 case 'more_than': $condition = $current_value > $value; break; 152 case 'more_than_or_equal': $condition = $current_value >= $value; break; 153 case 'less_than': $condition = $current_value < $value; break; 154 case 'less_than_or_equal': $condition = $current_value <= $value; break; 151 case 'more_than': 152 case 'after': 153 $condition = $current_value > $value; 154 break; 155 case 'more_than_or_equal': 156 case 'after_inclusive': 157 $condition = $current_value >= $value; 158 break; 159 case 'less_than': 160 case 'before': 161 $condition = $current_value < $value; 162 break; 163 case 'less_than_or_equal': 164 case 'before_inclusive': 165 $condition = $current_value <= $value; 166 break; 155 167 156 168 case 'starts_with': … … 220 232 isset($value[0]) && $value[0]==='[' 221 233 ? $framework->hjson()->parse( $value ) 222 : array_map('trim', explode(',', $value)) // Comma ndseparated list234 : array_map('trim', explode(',', $value)) // Comma-separated list 223 235 ) 224 236 ) -
tangible-loops-and-logic/trunk/vendor/tangible/template/tags/term.php
r2717702 r2722706 37 37 38 38 $taxonomy_term_loop = $loop->get_context('taxonomy_term'); 39 if ( !empty($taxonomy_term_loop)) {39 if (empty($taxonomy_term_loop)) return; 40 40 41 // Set current loop context to taxonomy term loop42 $previous_context = $loop->current_context;43 $loop->current_context = $taxonomy_term_loop;41 // Set current loop context to taxonomy term loop 42 $previous_context = $loop->current_context; 43 $loop->current_context = $taxonomy_term_loop; 44 44 45 $value = $html->field_tag($atts);45 $value = $html->field_tag($atts); 46 46 47 // Restore loop context 48 $loop->current_context = $previous_context; 49 return $value; 50 } 47 // Restore loop context 48 $loop->current_context = $previous_context; 49 return $value; 51 50 }; 52 51
Note: See TracChangeset
for help on using the changeset viewer.