From fa77e62a7d047e473b5d08d2a2db82b482500a21 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 12:29:35 +0200 Subject: [PATCH 01/77] Updating the version number --- readme.txt | 2 +- tour-operator.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.txt b/readme.txt index 4bb2d5d7..de929aea 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: lsx, tour operator, tours, travel, travel-agency Requires at least: 6.1 Tested up to: 6.7 Requires PHP: 7.2 -Stable tag: 2.0-beta-2 +Stable tag: 2.0-beta-3 License: GPLv3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/tour-operator.php b/tour-operator.php index 696fe1f0..97be5c09 100644 --- a/tour-operator.php +++ b/tour-operator.php @@ -5,7 +5,7 @@ * Description: The LSX Tour Operator plugin core contains the Accommodation, Destination and Tour post types. Use these core post types to build day-by-day tour itineraries that map out of the progress of each tour through the various accommodations and destinations that are stayed at along the way. * Tags: tour operator, tour operators, tour, tours, tour itinerary, tour itineraries, accommodation, accommodation listings, destinations, regions, tourism, lsx * Author: LightSpeed - * Version: 2.0 Beta 2 + * Version: 2.0 Beta 3 * Author URI: https://www.lsdev.biz/ * License: GPL3 * License URI: https://www.gnu.org/licenses/gpl-3.0.html From ff3a4eb93988303b05395de23d76eab0d5591c04 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 12:46:40 +0200 Subject: [PATCH 02/77] Adding in the sale price field and the body CSS class. --- includes/classes/legacy/class-tour.php | 20 ++++++++++++++++++++ vendor/content-models/post-types/tour.json | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/includes/classes/legacy/class-tour.php b/includes/classes/legacy/class-tour.php index e953be40..9428e235 100644 --- a/includes/classes/legacy/class-tour.php +++ b/includes/classes/legacy/class-tour.php @@ -74,6 +74,8 @@ private function __construct() { add_filter( 'lsx_to_custom_field_query', array( $this, 'rating' ), 10, 5 ); add_action( 'lsx_to_modal_meta', array( $this, 'content_meta' ) ); + + add_filter( 'body_class', array( $this, 'tour_classes' ), 10, 1 ); } /** @@ -210,4 +212,22 @@ public function content_meta() { Date: Wed, 4 Dec 2024 13:16:14 +0200 Subject: [PATCH 03/77] Adding in the sale price icon #377 --- assets/css/scss/_icons.scss | 4 ++++ assets/css/style.css | 5 +++++ assets/css/style.css.map | 2 +- includes/classes/legacy/class-tour.php | 16 ++++++++++++---- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/assets/css/scss/_icons.scss b/assets/css/scss/_icons.scss index 68b0334b..04f51352 100644 --- a/assets/css/scss/_icons.scss +++ b/assets/css/scss/_icons.scss @@ -126,6 +126,10 @@ & .amount { @extend %currency-icons; + .strike { + text-decoration: line-through; + } + .currency-icon { &:after { margin-right: 0px; } } diff --git a/assets/css/style.css b/assets/css/style.css index 79a613d1..d51e7a6d 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -153,6 +153,11 @@ background-image: url( ../img/icons/price-icon.png ); }*/ } +.lsx-price-wrapper .amount .strike, +.lsx-single-supplement-wrapper .amount .strike, +.unit-price-wrapper .amount .strike { + text-decoration: line-through; +} .lsx-price-wrapper .amount .currency-icon:after, .lsx-single-supplement-wrapper .amount .currency-icon:after, .unit-price-wrapper .amount .currency-icon:after { diff --git a/assets/css/style.css.map b/assets/css/style.css.map index d51116f1..e28c0f80 100644 --- a/assets/css/style.css.map +++ b/assets/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_slider.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EAAA;ACEE;;;EACC,gBAAA;EACA,iBAAA;AFKH;AEKG;;;;;;;;;;;;;;;EAAU,YAAA;AFYb;AERG;;;EAAU,YAAA;AFab;AETG;;;EAAU,YAAA;AFcb;AEVG;;;EAAU,YAAA;AFeb;AEXG;;;EAAU,aAAA;AFgBb;AEZG;;;EAAU,YAAA;AFiBb;AEZG;;;;;EAAU,YAAA;AFmBb;AEfG;;;EAAU,YAAA;AFoBb;AEhBG;;;EAAU,YAAA;AFqBb;AEjBG;;;EAAU,YAAA;AFsBb;AElBG;;;EAAU,YAAA;AFuBb;AEnBG;;;EAAU,YAAA;AFwBb;AEpBG;;;EAAU,aAAA;AFyBb;AErBG;;;EAAU,aAAA;AF0Bb;AEtBG;;;EAAU,aAAA;AF2Bb;AEtBG;;;;;EAAU,aAAA;AF6Bb;AEzBG;;;EAAU,cAAA;AF8Bb;AE1BG;;;EAAU,cAAA;AF+Bb;AE3BG;;;EAAU,cAAA;AFgCb;AE5BG;;;EAAU,cAAA;AFiCb;AE7BG;;;EAAU,aAAA;AFkCb;AE9BG;;;EAAU,aAAA;AFmCb;;AE7BA;;;;;;;;;;EAAA;AAYA;;;EAGC;;IAAA;AFiCD;AEzBG;;;EAAU,iBAAA;AF8Bb;;AG/JA;EACC,WAAA;EACA,SAAA;AHkKD;;AG3JC;;EACC,uBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,sCAAA;EACA,UAAA;EACA,iBAAA;EACA,2BAAA;EACA,6BAAA;EACA,WAAA;EACA,UAAA;AH+JF;AG7JE;;EACC,cAAA;EACA,0BAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,QAAA;EACA,2BAAA;EACA,4BAAA;EAEA,mCAAA;EACA,kCAAA;AH+JH;AG5JE;;EAAmB,mBAAA;AHgKrB;AG7JG;;EACC,gBAAA;EACA,YAAA;AHgKJ;AG3JG;;EACC,gBAAA;EACA,YAAA;AH8JJ;;AGvJC;EACC,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;EACA,UAAA;AH0JF;AGxJE;EACC,cAAA;EACA,YAAA;AH0JH;AGxJG;EACC,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,WAAA;AH0JJ;AGpJE;EAAe,WAAA;AHuJjB;AGtJE;EAAe,YAAA;AHyJjB;;AGpJC;EAAoB,gBAAA;AHwJrB;;AGpJC;EACC,aAAA;AHuJF;AGrJE;EAAU,UAAA;AHwJZ;;AGpJA;EAAgC,qBAAA;AHwJhC;;AGnJE;;EACC,iBAAA;AHuJH;;ACzPC;;EACC,aAAA;AD6PF","file":"style.css"} \ No newline at end of file +{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_slider.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EAAA;ACEE;;;EACC,gBAAA;EACA,iBAAA;AFKH;AEKG;;;;;;;;;;;;;;;EAAU,YAAA;AFYb;AERG;;;EAAU,YAAA;AFab;AETG;;;EAAU,YAAA;AFcb;AEVG;;;EAAU,YAAA;AFeb;AEXG;;;EAAU,aAAA;AFgBb;AEZG;;;EAAU,YAAA;AFiBb;AEZG;;;;;EAAU,YAAA;AFmBb;AEfG;;;EAAU,YAAA;AFoBb;AEhBG;;;EAAU,YAAA;AFqBb;AEjBG;;;EAAU,YAAA;AFsBb;AElBG;;;EAAU,YAAA;AFuBb;AEnBG;;;EAAU,YAAA;AFwBb;AEpBG;;;EAAU,aAAA;AFyBb;AErBG;;;EAAU,aAAA;AF0Bb;AEtBG;;;EAAU,aAAA;AF2Bb;AEtBG;;;;;EAAU,aAAA;AF6Bb;AEzBG;;;EAAU,cAAA;AF8Bb;AE1BG;;;EAAU,cAAA;AF+Bb;AE3BG;;;EAAU,cAAA;AFgCb;AE5BG;;;EAAU,cAAA;AFiCb;AE7BG;;;EAAU,aAAA;AFkCb;AE9BG;;;EAAU,aAAA;AFmCb;;AE7BA;;;;;;;;;;EAAA;AAYA;;;EAGC;;IAAA;AFiCD;AE1BE;;;EACC,6BAAA;AF8BH;AE1BG;;;EAAU,iBAAA;AF+Bb;;AGpKA;EACC,WAAA;EACA,SAAA;AHuKD;;AGhKC;;EACC,uBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,sCAAA;EACA,UAAA;EACA,iBAAA;EACA,2BAAA;EACA,6BAAA;EACA,WAAA;EACA,UAAA;AHoKF;AGlKE;;EACC,cAAA;EACA,0BAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,QAAA;EACA,2BAAA;EACA,4BAAA;EAEA,mCAAA;EACA,kCAAA;AHoKH;AGjKE;;EAAmB,mBAAA;AHqKrB;AGlKG;;EACC,gBAAA;EACA,YAAA;AHqKJ;AGhKG;;EACC,gBAAA;EACA,YAAA;AHmKJ;;AG5JC;EACC,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;EACA,UAAA;AH+JF;AG7JE;EACC,cAAA;EACA,YAAA;AH+JH;AG7JG;EACC,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,WAAA;AH+JJ;AGzJE;EAAe,WAAA;AH4JjB;AG3JE;EAAe,YAAA;AH8JjB;;AGzJC;EAAoB,gBAAA;AH6JrB;;AGzJC;EACC,aAAA;AH4JF;AG1JE;EAAU,UAAA;AH6JZ;;AGzJA;EAAgC,qBAAA;AH6JhC;;AGxJE;;EACC,iBAAA;AH4JH;;AC9PC;;EACC,aAAA;ADkQF","file":"style.css"} \ No newline at end of file diff --git a/includes/classes/legacy/class-tour.php b/includes/classes/legacy/class-tour.php index 9428e235..1d519bc8 100644 --- a/includes/classes/legacy/class-tour.php +++ b/includes/classes/legacy/class-tour.php @@ -143,17 +143,25 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be $value = preg_replace( '/[^0-9,.]/', '', $value ); $value = ltrim( $value, '.' ); $value = str_replace( ',', '', $value ); - $value = number_format( (int) $value, 2 ); $tour_operator = tour_operator(); $currency = ''; + $letter_code = ''; + $value = number_format( (int) $value, 2 ); + // Get the currency settings if ( is_object( $tour_operator ) && isset( $tour_operator->options['currency'] ) && ! empty( $tour_operator->options['currency'] ) ) { - $currency = $tour_operator->options['currency']; - $currency = '' . $currency . ''; + $letter_code = $tour_operator->options['currency']; + $currency = ''; } $value = $currency . $value; - $html = $before . $value . $after; + + $sale_price = get_post_meta( get_the_ID(), 'sale_price', true ); + if ( false !== $sale_price && ! empty( $sale_price ) && 0 !== intval( $sale_price ) ) { + $value = '' . $value . '' . ' ' . $currency . number_format( intval( $sale_price ) , 2 ); + } + + $html = $before . $letter_code . $value . $after; } return $html; } From c51fbbd3763ffd5ff622e2902ecec278f33c80b7 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 13:26:02 +0200 Subject: [PATCH 04/77] Adding in the disable option for the currency code, #449 --- includes/classes/legacy/class-tour.php | 8 +++++++- includes/constants/settings-fields.php | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/includes/classes/legacy/class-tour.php b/includes/classes/legacy/class-tour.php index 1d519bc8..109c8ccb 100644 --- a/includes/classes/legacy/class-tour.php +++ b/includes/classes/legacy/class-tour.php @@ -156,12 +156,18 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be $value = $currency . $value; + // Get the Sale Price $sale_price = get_post_meta( get_the_ID(), 'sale_price', true ); if ( false !== $sale_price && ! empty( $sale_price ) && 0 !== intval( $sale_price ) ) { $value = '' . $value . '' . ' ' . $currency . number_format( intval( $sale_price ) , 2 ); } - $html = $before . $letter_code . $value . $after; + // Get the currency settings + if ( is_object( $tour_operator ) && ( isset( $tour_operator->options['country_code_disabled'] ) && 0 === intval( $tour_operator->options['country_code_disabled'] ) ) || ! isset( $tour_operator->options['country_code_disabled'] ) ) { + $value = $letter_code . $value; + } + + $html = $before . $value . $after; } return $html; } diff --git a/includes/constants/settings-fields.php b/includes/constants/settings-fields.php index 75a2ec83..1834c697 100644 --- a/includes/constants/settings-fields.php +++ b/includes/constants/settings-fields.php @@ -18,6 +18,12 @@ 'AUD' => esc_html__( 'AUD (australian dollar)', 'tour-operator' ), ), ), + 'country_code_disabled' => array( + 'label' => esc_html__( 'Disable Country Code', 'tour-operator' ), + 'desc' => esc_html__( 'This will disable the 3 letter code which outputs before the price.', 'tour-operator' ), + 'type' => 'checkbox', + 'default' => 0, + ), ), 'maps' => array( 'maps_disabled' => array( From c8dc50ccff3b74478f620a5c2ff95ec925060824 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 13:48:17 +0200 Subject: [PATCH 05/77] Fixing the currency selector #377 --- includes/classes/blocks/class-bindings.php | 12 +++++++++--- includes/classes/legacy/class-accommodation.php | 10 ++++++++-- includes/classes/legacy/class-tour.php | 10 ++++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/includes/classes/blocks/class-bindings.php b/includes/classes/blocks/class-bindings.php index 7b8c5cc5..df1567b8 100644 --- a/includes/classes/blocks/class-bindings.php +++ b/includes/classes/blocks/class-bindings.php @@ -499,15 +499,21 @@ public function build_unit_field( $build = '', $field = '', $count = 1 ) { break; case 'price': - $value = $rooms->item_price( '', '', false ); + $value = $rooms->item_price( '', '', false ); + $letter_code = ''; if ( is_object( $tour_operator ) && isset( $tour_operator->options['currency'] ) && ! empty( $tour_operator->options['currency'] ) ) { - $currency = $tour_operator->options['currency']; - $currency = '' . $currency . ''; + $letter_code = $tour_operator->options['currency']; + $currency = ''; } $value = $currency . $value; + // Get the currency settings + if ( is_object( $tour_operator ) && ( isset( $tour_operator->options['country_code_disabled'] ) && 0 === intval( $tour_operator->options['country_code_disabled'] ) || ! isset( $tour_operator->options['country_code_disabled'] ) ) ) { + $value = $letter_code . $value; + } + $pattern = '/(]*\bclass="[^"]*\bunit-price\b[^"]*"[^>]*>).*?(<\/p>)/is'; break; diff --git a/includes/classes/legacy/class-accommodation.php b/includes/classes/legacy/class-accommodation.php index 3d3af61f..ec5db571 100644 --- a/includes/classes/legacy/class-accommodation.php +++ b/includes/classes/legacy/class-accommodation.php @@ -133,10 +133,11 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be $value = number_format( (int) $value, 2 ); $tour_operator = tour_operator(); $currency = ''; + $letter_code = ''; if ( is_object( $tour_operator ) && isset( $tour_operator->options['currency'] ) && ! empty( $tour_operator->options['currency'] ) ) { - $currency = $tour_operator->options['currency']; - $currency = '' . $currency . ''; + $letter_code = $tour_operator->options['currency']; + $currency = ''; } $value = apply_filters( 'lsx_to_accommodation_price', $value, $price_type, $currency ); @@ -159,6 +160,11 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be break; } + // Get the currency settings + if ( is_object( $tour_operator ) && ( isset( $tour_operator->options['country_code_disabled'] ) && 0 === intval( $tour_operator->options['country_code_disabled'] ) || ! isset( $tour_operator->options['country_code_disabled'] ) ) ) { + $value = $letter_code . $value; + } + $html = $before . $value . $after; } diff --git a/includes/classes/legacy/class-tour.php b/includes/classes/legacy/class-tour.php index 109c8ccb..bc527179 100644 --- a/includes/classes/legacy/class-tour.php +++ b/includes/classes/legacy/class-tour.php @@ -157,13 +157,15 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be $value = $currency . $value; // Get the Sale Price - $sale_price = get_post_meta( get_the_ID(), 'sale_price', true ); - if ( false !== $sale_price && ! empty( $sale_price ) && 0 !== intval( $sale_price ) ) { - $value = '' . $value . '' . ' ' . $currency . number_format( intval( $sale_price ) , 2 ); + if ( 'price' === $meta_key ) { + $sale_price = get_post_meta( get_the_ID(), 'sale_price', true ); + if ( false !== $sale_price && ! empty( $sale_price ) && 0 !== intval( $sale_price ) ) { + $value = '' . $value . '' . ' ' . $currency . number_format( intval( $sale_price ) , 2 ); + } } // Get the currency settings - if ( is_object( $tour_operator ) && ( isset( $tour_operator->options['country_code_disabled'] ) && 0 === intval( $tour_operator->options['country_code_disabled'] ) ) || ! isset( $tour_operator->options['country_code_disabled'] ) ) { + if ( is_object( $tour_operator ) && ( isset( $tour_operator->options['country_code_disabled'] ) && 0 === intval( $tour_operator->options['country_code_disabled'] ) || ! isset( $tour_operator->options['country_code_disabled'] ) ) ) { $value = $letter_code . $value; } From 4bb968b0b4123e0b94b4af51da181d0439fb9555 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 14:09:11 +0200 Subject: [PATCH 06/77] Adding in the sale price that replaces the accommodation price. --- .../classes/legacy/class-accommodation.php | 8 ++++++++ .../post-types/accommodation.json | 19 +++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/includes/classes/legacy/class-accommodation.php b/includes/classes/legacy/class-accommodation.php index ec5db571..12882f4f 100644 --- a/includes/classes/legacy/class-accommodation.php +++ b/includes/classes/legacy/class-accommodation.php @@ -142,6 +142,14 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be $value = apply_filters( 'lsx_to_accommodation_price', $value, $price_type, $currency ); + // Get the Sale Price + if ( 'price' === $meta_key ) { + $sale_price = get_post_meta( get_the_ID(), 'sale_price', true ); + if ( false !== $sale_price && ! empty( $sale_price ) && 0 !== intval( $sale_price ) ) { + $value = number_format( intval( $sale_price ) , 2 ); + } + } + switch ( $price_type ) { case 'per_person_per_night': case 'per_person_sharing': diff --git a/vendor/content-models/post-types/accommodation.json b/vendor/content-models/post-types/accommodation.json index 2f448fcf..cae08349 100644 --- a/vendor/content-models/post-types/accommodation.json +++ b/vendor/content-models/post-types/accommodation.json @@ -26,13 +26,13 @@ "description": "Set the minimum price of the accommodation.", "visible": true }, - { - "slug": "single_supplement", - "type": "string", - "label": "Single Supplement", - "description": "Set the additional cost for a single person booking the accommodation.", + { + "slug": "sale_price", + "type": "string", + "label": "Sale Price", + "description": "Set the sale price of the accommodation.", "visible": true - }, + }, { "slug": "price_type", "type": "select", @@ -62,6 +62,13 @@ } ] }, + { + "slug": "single_supplement", + "type": "string", + "label": "Single Supplement", + "description": "Set the additional cost for a single person booking the accommodation.", + "visible": true + }, { "slug": "rating", "type": "select", From 12e17fba44283b6ab6c2bbcc5759b78d07a14463 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 4 Dec 2024 15:03:51 +0200 Subject: [PATCH 07/77] Adding in the onsale query checkbox --- assets/js/blocks/onsale-query.js | 0 assets/js/blocks/slider-query.js | 118 ++++++++++-------- .../classes/blocks/class-registration.php | 29 +++-- 3 files changed, 82 insertions(+), 65 deletions(-) create mode 100644 assets/js/blocks/onsale-query.js diff --git a/assets/js/blocks/onsale-query.js b/assets/js/blocks/onsale-query.js new file mode 100644 index 00000000..e69de29b diff --git a/assets/js/blocks/slider-query.js b/assets/js/blocks/slider-query.js index 76bf5ac3..2f5a92dd 100644 --- a/assets/js/blocks/slider-query.js +++ b/assets/js/blocks/slider-query.js @@ -1,53 +1,71 @@ (function (blocks, element, editor, components) { - var el = element.createElement; - var InspectorControls = editor.InspectorControls; - var PanelBody = components.PanelBody; - var CheckboxControl = components.CheckboxControl; - - var withInspectorControls = wp.compose.createHigherOrderComponent(function (BlockEdit) { - return function (props) { - if (props.name !== 'core/query') { - return el(BlockEdit, props); - } - - var hasCustomClass = props.attributes.hasCustomClass || false; - - return el( - element.Fragment, - {}, - el(BlockEdit, props), - el(InspectorControls, {}, - el(PanelBody, { title: 'Slider', initialOpen: true }, - el(CheckboxControl, { - label: 'Enable Slider', - checked: hasCustomClass, - onChange: function (value) { - props.setAttributes({ - hasCustomClass: value - }); - } - }) - ) - ) - ); - }; - }, 'withInspectorControls'); - - wp.hooks.addFilter( - 'editor.BlockEdit', - 'lsx-tour-operator/slider-panel', - withInspectorControls - ); - - wp.hooks.addFilter( - 'blocks.getSaveContent.extraProps', - 'lsx-tour-operator/save-slider-panel', - function (extraProps, blockType, attributes) { - if (blockType.name === 'core/query' && attributes.hasCustomClass) { - extraProps.className = (extraProps.className || '') + ' lsx-to-slider'; - } - return extraProps; - } - ); + var el = element.createElement; + var InspectorControls = editor.InspectorControls; + var PanelBody = components.PanelBody; + var CheckboxControl = components.CheckboxControl; + + var withInspectorControls = wp.compose.createHigherOrderComponent(function (BlockEdit) { + return function (props) { + if (props.name !== 'core/query') { + return el(BlockEdit, props); + } + + var hasCustomClass = props.attributes.hasCustomClass || false; + var filterByOnsale = props.attributes.filterByOnsale || false; + + return el( + element.Fragment, + {}, + el(BlockEdit, props), + el(InspectorControls, {}, + el(PanelBody, { title: 'Tour Operator', initialOpen: true }, + el(CheckboxControl, { + label: 'Enable Slider', + checked: hasCustomClass, + onChange: function (value) { + props.setAttributes({ + hasCustomClass: value + }); + } + }), + el(CheckboxControl, { + label: 'Filter by Onsale', + checked: filterByOnsale, + onChange: function (value) { + props.setAttributes({ + filterByOnsale: value + }); + } + }) + ) + ) + ); + }; + }, 'withInspectorControls'); + + wp.hooks.addFilter( + 'editor.BlockEdit', + 'lsx-tour-operator/settings-panel', + withInspectorControls + ); + + wp.hooks.addFilter( + 'blocks.getSaveContent.extraProps', + 'lsx-tour-operator/save-settings-panel', + function (extraProps, blockType, attributes) { + if ( blockType.name === 'core/query' ) { + + if (attributes.hasCustomClass) { + extraProps.className = (extraProps.className || '') + ' lsx-to-slider'; + } + + if (attributes.filterByOnsale) { + extraProps.className = (extraProps.className || '') + ' on-sale'; + } + + } + return extraProps; + } + ); })(window.wp.blocks, window.wp.element, window.wp.blockEditor, window.wp.components); diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 45f240ba..da0838ec 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -43,6 +43,12 @@ public function enqueue_block_variations_script() { 'query-loops' => '', ]; + $additional_scripts = [ + 'linked-cover' => array( 'wp-blocks', 'wp-element', 'wp-block-editor', 'wp-components', 'wp-compose', 'wp-data', 'wp-hooks' ), + 'slider-query' => array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-compose' ), + 'onsale-query' => array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-compose' ), + ]; + // Make sure the script is only enqueued in the block editor. if ( is_admin() && function_exists( 'register_block_type' ) ) { @@ -56,21 +62,14 @@ public function enqueue_block_variations_script() { ); } - // Enqueue linked-cover.js - wp_enqueue_script( - 'lsx-to-linked-cover', - LSX_TO_URL . 'assets/js/blocks/linked-cover.js', - array( 'wp-blocks', 'wp-element', 'wp-block-editor', 'wp-components', 'wp-compose', 'wp-data', 'wp-hooks' ), - filemtime( LSX_TO_PATH . 'assets/js/blocks/linked-cover.js' ) - ); - - // Enqueue linked-cover.js - wp_enqueue_script( - 'lsx-to-slider-query', - LSX_TO_URL . 'assets/js/blocks/slider-query.js', - array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components' ), - filemtime( LSX_TO_PATH . 'assets/js/blocks/slider-query.js' ) - ); + foreach ( $additional_scripts as $slug => $dependancies ) { + wp_enqueue_script( + 'lsx-to-' . $slug, + LSX_TO_URL . 'assets/js/blocks/' . $slug . '.js', + $dependancies, + filemtime( LSX_TO_PATH . 'assets/js/blocks/' . $slug . '.js' ) + ); + } if ( array_key_exists( get_post_type(), tour_operator()->get_post_types() ) ) { wp_enqueue_script( From f9e788394e5509d688a3ba21329b53358484932a Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 09:55:59 +0200 Subject: [PATCH 08/77] Fixing the saving of the slider and onsale values #377 --- assets/js/blocks/slider-query.js | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/assets/js/blocks/slider-query.js b/assets/js/blocks/slider-query.js index 2f5a92dd..807de78c 100644 --- a/assets/js/blocks/slider-query.js +++ b/assets/js/blocks/slider-query.js @@ -11,7 +11,22 @@ } var hasCustomClass = props.attributes.hasCustomClass || false; + if ( undefined === props.attributes.hasCustomClass ) { + if ( props.attributes.className && props.attributes.className.includes( 'lsx-to-slider' ) ) { + hasCustomClass = true; + } + } else { + hasCustomClass = props.attributes.hasCustomClass; + } + var filterByOnsale = props.attributes.filterByOnsale || false; + if ( undefined === props.attributes.filterByOnsale ) { + if ( props.attributes.className && props.attributes.className.includes( 'on-sale' ) ) { + filterByOnsale = true; + } + } else { + filterByOnsale = props.attributes.filterByOnsale; + } return el( element.Fragment, @@ -23,13 +38,14 @@ label: 'Enable Slider', checked: hasCustomClass, onChange: function (value) { + console.log(value); props.setAttributes({ hasCustomClass: value }); } }), el(CheckboxControl, { - label: 'Filter by Onsale', + label: 'Filter by On Sale', checked: filterByOnsale, onChange: function (value) { props.setAttributes({ @@ -55,12 +71,20 @@ function (extraProps, blockType, attributes) { if ( blockType.name === 'core/query' ) { - if (attributes.hasCustomClass) { + console.log(attributes.hasCustomClass); + + if ( true === attributes.hasCustomClass ) { extraProps.className = (extraProps.className || '') + ' lsx-to-slider'; + console.log('adding'); + } else if ( false === attributes.hasCustomClass && extraProps.className ) { + extraProps.className = extraProps.className.replace(/\blsx-to-slider\b\s*/g, '').trim(); + console.log('removing'); } - if (attributes.filterByOnsale) { + if ( true === attributes.filterByOnsale ) { extraProps.className = (extraProps.className || '') + ' on-sale'; + } else if ( false === attributes.filterByOnsale && extraProps.className ) { + extraProps.className = extraProps.className.replace(/\bon-sale\b\s*/g, '').trim(); } } From 24d69edae1e756b7c2fc923c981506bc70c61571 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 12:19:55 +0200 Subject: [PATCH 09/77] Adding in the jsEditor params to allow embedding of images in the plugin. --- assets/js/blocks/general.js | 8 ++-- .../classes/blocks/class-registration.php | 41 +++++++++++-------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index b768075c..3bdd34b2 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -139,9 +139,9 @@ wp.domReady(() => { }, [ ['core/image', { - width: 20, + width: '20px', sizeSlug: 'large', - url: 'http://localhost:8883/wp-content/themes/lsx-tour-operator/assets/images/Typetype-icon.png', + url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/06/image-1.png', alt: '' }], ['core/paragraph', { @@ -244,9 +244,9 @@ wp.domReady(() => { }, [ ['core/image', { - width: 20, + width: '20px', sizeSlug: 'large', - url: 'http://localhost:8883/wp-content/themes/lsx-tour-operator/assets/images/best-months-to-travel-TO-icon-black-20px-1-1.png', + url: lsxToEditor.homeUrl + 'wp-content/uploads/2024/11/booking-validity-icon-black-52px-1.svg', alt: '' }], ['core/paragraph', { diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index da0838ec..774de6d3 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -36,17 +36,16 @@ public function __construct() { public function enqueue_block_variations_script() { $scripts = [ - 'general' => '', - 'tour' => '', - 'accommodation' => '', - 'destination' => '', - 'query-loops' => '', + 'general' => array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post' ), + 'tour' => array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post', 'lsx-to-block-general-variations' ), + 'accommodation' => array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post', 'lsx-to-block-general-variations' ), + 'destination' => array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post', 'lsx-to-block-general-variations' ), + 'query-loops' => array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post', 'lsx-to-block-general-variations' ), ]; $additional_scripts = [ 'linked-cover' => array( 'wp-blocks', 'wp-element', 'wp-block-editor', 'wp-components', 'wp-compose', 'wp-data', 'wp-hooks' ), 'slider-query' => array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-compose' ), - 'onsale-query' => array( 'wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-compose' ), ]; // Make sure the script is only enqueued in the block editor. @@ -60,6 +59,14 @@ public function enqueue_block_variations_script() { filemtime( LSX_TO_PATH . 'assets/js/blocks/' . $slug . '.js' ), // Versioning with file modification time. true // Enqueue in the footer. ); + if ( 'general' === $slug ) { + $param_array = array( + 'homeUrl' => trailingslashit( home_url() ), + 'assetsUrl' => LSX_TO_URL . 'assets/img/' + ); + $param_array = apply_filters( 'lsx_to_editor_params', $param_array ); + wp_localize_script( 'lsx-to-block-' . $slug . '-variations', 'lsxToEditor', $param_array ); + } } foreach ( $additional_scripts as $slug => $dependancies ) { @@ -367,17 +374,17 @@ public function maybe_hide_varitaion( $block_content, $parsed_block, $block_obj } /** - * Determines if a post exists based on the ID. - * - * - * @global wpdb $wpdb WordPress database abstraction object. - * - * @param string $title Post title. - * @param string $content Optional. Post content. - * @param string $date Optional. Post date. - * @param string $type Optional. Post type. - * @param string $status Optional. Post status. - * @return int Post ID if post exists, 0 otherwise. + * Determines if a post exists based on the ID. + * + * + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param string $title Post title. + * @param string $content Optional. Post content. + * @param string $date Optional. Post date. + * @param string $type Optional. Post type. + * @param string $status Optional. Post status. + * @return int Post ID if post exists, 0 otherwise. */ protected function post_ids_exist( $ids ) { global $wpdb; From b661a364f6c52561d89f26ae648bcfe653da06e2 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 13:29:52 +0200 Subject: [PATCH 10/77] Finally added in the query vars to execute the "onsale" arguments. #377 --- .../classes/blocks/class-registration.php | 62 ++++++++++++++++++- .../classes/legacy/class-accommodation.php | 2 - 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 774de6d3..4b168c59 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -11,8 +11,20 @@ class Registration { protected $disabled = []; + /** + * Holds the array of featured queries. + * + * @var array + */ protected $featured = []; + /** + * True if the current query outputting needs to be onsale. + * + * @var boolean + */ + protected $onsale = false; + /** * Initialize the plugin by setting localization, filters, and administration functions. * @@ -22,10 +34,12 @@ class Registration { */ public function __construct() { add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_variations_script' ), 10 ); - add_filter( 'query_loop_block_query_vars', array( $this, 'query_args_filter' ), 10, 2 ); + add_filter( 'query_loop_block_query_vars', array( $this, 'query_args_filter' ), 1, 2 ); add_filter( 'render_block', array( $this, 'maybe_hide_varitaion' ), 10, 3 ); add_filter( 'posts_pre_query', array( $this, 'posts_pre_query' ), 10, 2 ); + + add_filter( 'render_block_data', array( $this, 'save_onsale_queries' ), 10, 1 ); } /** @@ -113,6 +127,7 @@ public function query_args_filter( $query, $block ) { // We only restric this on the destination post type, in case the block is used on a landing page. if ( 'destination' === get_post_type() ) { $query['post_parent__in'] = [ get_the_ID() ]; + $query['post__not_in'] = [ get_the_ID() ]; } break; @@ -240,6 +255,22 @@ public function query_args_filter( $query, $block ) { break; } + // Look for the "on sale" CSS class. + if ( true === $this->onsale ) { + if ( isset( $query['meta_query']['relation'] ) ) { + $query['meta_query']['relation'] = 'AND'; + } + $query['meta_query'][] = array( + 'key' => 'sale_price', + 'compare' => 'EXISTS', + ); + + // reset this to false for the next query. + $this->onsale = false; + } + + do_action( 'qm/debug', $query ); + return $query; } @@ -432,4 +463,33 @@ public function find_featured_items( $query ) { } return $items; } + + /** + * This function looks at the query blocks CSS classes to determine if it is onsale. + * + * @param array $parsed_block + * @return array + */ + public function save_onsale_queries( $parsed_block ) { + if ( ! isset( $parsed_block['blockName'] ) || ! isset( $parsed_block['attrs'] ) ) { + return $parsed_block; + } + $allowed_blocks = array( + 'core/query', + ); + + if ( ! in_array( $parsed_block['blockName'], $allowed_blocks, true ) ) { + return $parsed_block; + } + if ( ! isset( $parsed_block['attrs']['className'] ) || '' === $parsed_block['attrs']['className'] || false === $parsed_block['attrs']['className'] ) { + return $parsed_block; + } + + $this->onsale = false; + + if ( false !== stripos( $parsed_block['attrs']['className'], 'on-sale' ) ) { + $this->onsale = true; + } + return $parsed_block; + } } diff --git a/includes/classes/legacy/class-accommodation.php b/includes/classes/legacy/class-accommodation.php index 12882f4f..b52874f2 100644 --- a/includes/classes/legacy/class-accommodation.php +++ b/includes/classes/legacy/class-accommodation.php @@ -123,8 +123,6 @@ public function price_filter( $html = '', $meta_key = false, $value = false, $be 'single_supplement' ]; - do_action( 'qm/debug', [ get_post_type(), $meta_key ] ); - if ( get_post_type() === 'accommodation' && in_array( $meta_key, $currency_fields ) ) { $price_type = get_post_meta( get_the_ID(), 'price_type', true ); $value = preg_replace( '/[^0-9,.]/', '', $value ); From 69531aad1ddf6cbfccfc77774f25fd2cf8f6e2e0 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 13:39:04 +0200 Subject: [PATCH 11/77] Updating the PHP tag and Tested up to. #406 --- includes/classes/legacy/class-tour-operator.php | 2 -- readme.txt | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/includes/classes/legacy/class-tour-operator.php b/includes/classes/legacy/class-tour-operator.php index c9c13988..07bf4a4b 100644 --- a/includes/classes/legacy/class-tour-operator.php +++ b/includes/classes/legacy/class-tour-operator.php @@ -327,8 +327,6 @@ public function set_map_vars() { $this->map_post_types = array( 'accommodation', 'activity', 'destination' ); $this->markers = new \stdClass(); - do_action( 'qm/debug', $this->options['googlemaps_key'] ); - if ( ( false !== $this->options && isset( $this->options['googlemaps_key'] ) ) || defined( 'GOOGLEMAPS_API_KEY' ) ) { if ( ! defined( 'GOOGLEMAPS_API_KEY' ) ) { $this->google_api_key = $this->options['googlemaps_key']; diff --git a/readme.txt b/readme.txt index de929aea..610a4658 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Donate link: https://lsdev.biz/lsx/donate/ Tags: lsx, tour operator, tours, travel, travel-agency Requires at least: 6.1 Tested up to: 6.7 -Requires PHP: 7.2 +Requires PHP: 8.0 Stable tag: 2.0-beta-3 License: GPLv3 or later License URI: https://www.gnu.org/licenses/gpl-3.0.en.html From 151b0f5a527eb5639e4d4d7795ede040ecc879d2 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 13:46:24 +0200 Subject: [PATCH 12/77] Removing old files and fixing up the welcom page. --- includes/classes/blocks/class-patterns.php | 4 +- includes/pages/config-tour-operator.php | 3 ++ includes/partials/general.php | 55 ---------------------- includes/partials/navigation.php | 20 -------- includes/partials/post-type.php | 25 ---------- includes/partials/settings.php | 18 ------- 6 files changed, 5 insertions(+), 120 deletions(-) delete mode 100644 includes/partials/general.php delete mode 100644 includes/partials/navigation.php delete mode 100644 includes/partials/post-type.php delete mode 100644 includes/partials/settings.php diff --git a/includes/classes/blocks/class-patterns.php b/includes/classes/blocks/class-patterns.php index 10c63f06..7221591d 100644 --- a/includes/classes/blocks/class-patterns.php +++ b/includes/classes/blocks/class-patterns.php @@ -35,7 +35,7 @@ public function __construct() { public function register_block_category( $categories ) { $categories[] = array( 'slug' => $this->category, - 'title' => __( 'LSX Tour Operator', 'lsx-tour-operator' ) + 'title' => __( 'Tour Operator', 'lsx-tour-operator' ) ); return $categories; } @@ -48,7 +48,7 @@ public function register_block_category( $categories ) { public function register_block_pattern_category() { register_block_pattern_category( $this->category, - array( 'label' => __( 'LSX Tour Operator', 'lsx-tour-operator' ) ) + array( 'label' => __( 'Tour Operator', 'lsx-tour-operator' ) ) ); } diff --git a/includes/pages/config-tour-operator.php b/includes/pages/config-tour-operator.php index b0675ab0..8a14c0c7 100644 --- a/includes/pages/config-tour-operator.php +++ b/includes/pages/config-tour-operator.php @@ -16,6 +16,9 @@ 'menu_position' => 6, 'capability' => 'edit_posts', 'icon' => 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDIwIDIwO2ZpbGw6IzgyODc4YzsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnIGlkPSJYTUxJRF8xMV8iPjxwYXRoIGlkPSJYTUxJRF8xOF8iIGQ9Ik0xMCwwQzQuNSwwLDAsNC41LDAsMTBzNC41LDEwLDEwLDEwczEwLTQuNSwxMC0xMFMxNS41LDAsMTAsMHogTTEwLDE4LjNjLTQuNiwwLTguMy0zLjctOC4zLTguM2MwLTQuNiwzLjctOC4zLDguMy04LjNjNC42LDAsOC4zLDMuNyw4LjMsOC4zQzE4LjMsMTQuNiwxNC42LDE4LjMsMTAsMTguM3oiLz48cGF0aCBpZD0iWE1MSURfMTlfIiBkPSJNMTAuOCw4LjlMMTAuOCw4LjlMMTAuOCw4LjljLTAuMS0wLjEtMC4yLTAuMS0wLjMtMC4yTDYuMSw2LjFsMi43LDQuNWMwLDAuMSwwLjEsMC4xLDAuMSwwLjJsMCwwbDAsMGMwLjIsMC4zLDAuNiwwLjYsMS4xLDAuNmMwLjgsMCwxLjQtMC42LDEuNC0xLjRDMTEuNCw5LjYsMTEuMiw5LjIsMTAuOCw4Ljl6IE0xMCwxMC43Yy0wLjQsMC0wLjctMC4zLTAuNy0wLjdjMC0wLjQsMC4zLTAuNywwLjctMC43czAuNywwLjMsMC43LDAuN0MxMC43LDEwLjQsMTAuNCwxMC43LDEwLDEwLjd6Ii8+PGcgaWQ9IlhNTElEXzE2XyI+PHJlY3QgaWQ9IlhNTElEXzhfIiB4PSI5LjciIHk9IjIuOSIgd2lkdGg9IjAuNiIgaGVpZ2h0PSIxLjMiLz48cmVjdCBpZD0iWE1MSURfN18iIHg9IjUuMSIgeT0iNC44IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEgLTAuNzA3MSAwLjcwNzEgMC43MDcxIC0yLjI1OTQgNS40MTg2KSIgd2lkdGg9IjAuNiIgaGVpZ2h0PSIxLjMiLz48cmVjdCBpZD0iWE1MSURfNl8iIHg9IjEzLjkiIHk9IjUuMSIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIC0wLjcwNzEgMC43MDcxIDAuNzA3MSAwLjQxNjkgMTEuODc5NykiIHdpZHRoPSIxLjMiIGhlaWdodD0iMC42Ii8+PHJlY3QgaWQ9IlhNTElEXzVfIiB4PSIyLjkiIHk9IjkuNyIgd2lkdGg9IjEuMyIgaGVpZ2h0PSIwLjYiLz48cmVjdCBpZD0iWE1MSURfNF8iIHg9IjE1LjgiIHk9IjkuNyIgd2lkdGg9IjEuMyIgaGVpZ2h0PSIwLjYiLz48cmVjdCBpZD0iWE1MSURfM18iIHg9IjQuOCIgeT0iMTQuMyIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MDcxIC0wLjcwNzEgMC43MDcxIDAuNzA3MSAtOC43MjE0IDguMDk1MikiIHdpZHRoPSIxLjMiIGhlaWdodD0iMC42Ii8+PHJlY3QgaWQ9IlhNTElEXzJfIiB4PSIxNC4yIiB5PSIxMy45IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjcwNzEgLTAuNzA3MSAwLjcwNzEgMC43MDcxIC02LjA0NTEgMTQuNTU2MykiIHdpZHRoPSIwLjYiIGhlaWdodD0iMS4zIi8+PHJlY3QgaWQ9IlhNTElEXzFfIiB4PSI5LjciIHk9IjE1LjgiIHdpZHRoPSIwLjYiIGhlaWdodD0iMS4zIi8+PC9nPjxwYXRoIGlkPSJYTUxJRF80N18iIGQ9Ik0xMS4zLDkuNWMwLTAuMS0wLjEtMC4xLTAuMS0wLjJsMCwwbDAsMGMtMC4yLTAuMy0wLjYtMC42LTEuMS0wLjZjLTAuOCwwLTEuNCwwLjYtMS40LDEuNGMwLDAuNCwwLjIsMC44LDAuNSwxLjFsMCwwbDAsMGMwLjEsMC4xLDAuMiwwLjEsMC4zLDAuMmw0LjQsMi42TDExLjMsOS41eiBNMTAsMTAuN2MtMC40LDAtMC43LTAuMy0wLjctMC43YzAtMC40LDAuMy0wLjcsMC43LTAuN3MwLjcsMC4zLDAuNywwLjdDMTAuNywxMC40LDEwLjQsMTAuNywxMCwxMC43eiIvPjwvZz48L3N2Zz4=', + 'callback' => function () { + include( LSX_TO_PATH . 'includes/partials/welcome.php' ); + }, ); return $page; diff --git a/includes/partials/general.php b/includes/partials/general.php deleted file mode 100644 index 8bf3c5bd..00000000 --- a/includes/partials/general.php +++ /dev/null @@ -1,55 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- -
-
- - - diff --git a/includes/partials/navigation.php b/includes/partials/navigation.php deleted file mode 100644 index 8d41ed68..00000000 --- a/includes/partials/navigation.php +++ /dev/null @@ -1,20 +0,0 @@ -legacy->get_post_types(); -?> - diff --git a/includes/partials/post-type.php b/includes/partials/post-type.php deleted file mode 100644 index 7e0b6141..00000000 --- a/includes/partials/post-type.php +++ /dev/null @@ -1,25 +0,0 @@ -
- - - - - - - - - - - - - - -
- -
- -
-
\ No newline at end of file diff --git a/includes/partials/settings.php b/includes/partials/settings.php deleted file mode 100644 index 1be433a9..00000000 --- a/includes/partials/settings.php +++ /dev/null @@ -1,18 +0,0 @@ - -legacy->get_post_types(); -?> -
-

-
- $tab ) { - include( LSX_TO_PATH . 'includes/partials/post-type.php' ); - } - ?> - -
-
\ No newline at end of file From 2a32cc37168c560f0cb3844d1c4eb7d5c59e6ed6 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 14:51:37 +0200 Subject: [PATCH 13/77] Adding in some notes. --- assets/js/blocks/general.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index 3bdd34b2..b101f90f 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -1,3 +1,5 @@ +// metadata.bindings not handle correctly + wp.domReady(() => { // Gallery Block wp.blocks.registerBlockVariation("core/gallery", { From 646caf4fbc5e5095dd88cac4db64531f1b1054c1 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 15:27:16 +0200 Subject: [PATCH 14/77] Fixing the settings. --- includes/partials/general.php | 55 ++++++++++++++++++++++++++++++++ includes/partials/navigation.php | 20 ++++++++++++ includes/partials/post-type.php | 25 +++++++++++++++ includes/partials/settings.php | 18 +++++++++++ 4 files changed, 118 insertions(+) create mode 100644 includes/partials/general.php create mode 100644 includes/partials/navigation.php create mode 100644 includes/partials/post-type.php create mode 100644 includes/partials/settings.php diff --git a/includes/partials/general.php b/includes/partials/general.php new file mode 100644 index 00000000..8bf3c5bd --- /dev/null +++ b/includes/partials/general.php @@ -0,0 +1,55 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+
+ + + diff --git a/includes/partials/navigation.php b/includes/partials/navigation.php new file mode 100644 index 00000000..8d41ed68 --- /dev/null +++ b/includes/partials/navigation.php @@ -0,0 +1,20 @@ +legacy->get_post_types(); +?> + diff --git a/includes/partials/post-type.php b/includes/partials/post-type.php new file mode 100644 index 00000000..7e0b6141 --- /dev/null +++ b/includes/partials/post-type.php @@ -0,0 +1,25 @@ +
+ + + + + + + + + + + + + + +
+ +
+ +
+
\ No newline at end of file diff --git a/includes/partials/settings.php b/includes/partials/settings.php new file mode 100644 index 00000000..1be433a9 --- /dev/null +++ b/includes/partials/settings.php @@ -0,0 +1,18 @@ + +legacy->get_post_types(); +?> +
+

+
+ $tab ) { + include( LSX_TO_PATH . 'includes/partials/post-type.php' ); + } + ?> + +
+
\ No newline at end of file From eb6a7012a209ded4ae7d38692b4138a2314cb69d Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 5 Dec 2024 15:49:58 +0200 Subject: [PATCH 15/77] Removing the php templates. --- templates/content-map-marker.php | 27 ----- templates/content-modal.php | 29 ------ .../content-widget-accommodation-brand.php | 78 --------------- .../content-widget-accommodation-type.php | 78 --------------- templates/content-widget-accommodation.php | 99 ------------------- templates/content-widget-continent.php | 78 --------------- templates/content-widget-destination.php | 68 ------------- templates/content-widget-tour.php | 98 ------------------ templates/content-widget-travel-style.php | 78 --------------- templates/content-widget.php | 44 --------- templates/content.php | 55 ----------- 11 files changed, 732 deletions(-) delete mode 100644 templates/content-map-marker.php delete mode 100644 templates/content-modal.php delete mode 100644 templates/content-widget-accommodation-brand.php delete mode 100644 templates/content-widget-accommodation-type.php delete mode 100644 templates/content-widget-accommodation.php delete mode 100644 templates/content-widget-continent.php delete mode 100644 templates/content-widget-destination.php delete mode 100644 templates/content-widget-tour.php delete mode 100644 templates/content-widget-travel-style.php delete mode 100644 templates/content-widget.php delete mode 100644 templates/content.php diff --git a/templates/content-map-marker.php b/templates/content-map-marker.php deleted file mode 100644 index 0ce3ed02..00000000 --- a/templates/content-map-marker.php +++ /dev/null @@ -1,27 +0,0 @@ - -
> - - -
- -
-
diff --git a/templates/content-modal.php b/templates/content-modal.php deleted file mode 100644 index be8c8922..00000000 --- a/templates/content-modal.php +++ /dev/null @@ -1,29 +0,0 @@ - -
-
- - - -
- -

- - - -
- -
-
diff --git a/templates/content-widget-accommodation-brand.php b/templates/content-widget-accommodation-brand.php deleted file mode 100644 index b59e7023..00000000 --- a/templates/content-widget-accommodation-brand.php +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/templates/content-widget-accommodation-type.php b/templates/content-widget-accommodation-type.php deleted file mode 100644 index dd1c02a8..00000000 --- a/templates/content-widget-accommodation-type.php +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/templates/content-widget-accommodation.php b/templates/content-widget-accommodation.php deleted file mode 100644 index 00bbf27b..00000000 --- a/templates/content-widget-accommodation.php +++ /dev/null @@ -1,99 +0,0 @@ - - - - -
> - - - - -
- - - - - -
- - -
- - - -

- - - - - -

- - ', '

' ); - // } - ?> - - - - -

- - - - -
- - - -
- diff --git a/templates/content-widget-continent.php b/templates/content-widget-continent.php deleted file mode 100644 index 54cd573a..00000000 --- a/templates/content-widget-continent.php +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/templates/content-widget-destination.php b/templates/content-widget-destination.php deleted file mode 100644 index 693ddb30..00000000 --- a/templates/content-widget-destination.php +++ /dev/null @@ -1,68 +0,0 @@ - -
> - -
- - - - - -
- - -
-

- - - - - -

- - ', '

' ); - // } - ?> - - -

- -
-
diff --git a/templates/content-widget-tour.php b/templates/content-widget-tour.php deleted file mode 100644 index 004fc93a..00000000 --- a/templates/content-widget-tour.php +++ /dev/null @@ -1,98 +0,0 @@ - - - - -
> - - - - -
- - - - - -
- - -
- - - -

- - - - - -

- - ', '

' ); - // } - ?> - - - -

- - - -
- - - -
- diff --git a/templates/content-widget-travel-style.php b/templates/content-widget-travel-style.php deleted file mode 100644 index 99005b50..00000000 --- a/templates/content-widget-travel-style.php +++ /dev/null @@ -1,78 +0,0 @@ - - diff --git a/templates/content-widget.php b/templates/content-widget.php deleted file mode 100644 index 02a6defe..00000000 --- a/templates/content-widget.php +++ /dev/null @@ -1,44 +0,0 @@ - -
> - -
- - - -
- - -
-

- - - -

- ' . strip_tags( ob_get_clean(), array( 'a' ) ) . '

'; - - if ( empty( $disable_text ) && ! empty( $excerpt ) ) { - echo wp_kses_post( $excerpt ); - lsx_to_tagline( '

', '

' ); - } elseif ( $has_single ) { - ?> -

- -
-
diff --git a/templates/content.php b/templates/content.php deleted file mode 100644 index 47760c14..00000000 --- a/templates/content.php +++ /dev/null @@ -1,55 +0,0 @@ - - - - -
> - - -
- - - -
- -
-
-

- - - -

- -
> - -
-
-
- - archive_layout ) : ?> - - - -
- - Date: Fri, 6 Dec 2024 10:10:25 +0200 Subject: [PATCH 16/77] Commit of LightBox fixes --- assets/css/style.css | 33 +++++++++++++++++++++++++-------- assets/img/left-arrow-new.svg | 3 +++ assets/img/left-arrow.svg | 3 +++ assets/img/right-arrow.svg | 3 +++ 4 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 assets/img/left-arrow-new.svg create mode 100644 assets/img/left-arrow.svg create mode 100644 assets/img/right-arrow.svg diff --git a/assets/css/style.css b/assets/css/style.css index d51e7a6d..2183e0eb 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -165,15 +165,19 @@ } .slick-lightbox-close { - right: 32px; - top: 32px; + right: 52px; + top: 35px; } +.slick-lightbox-close:before{font-size:40px;} .lsx-to-slider .slick-arrow, .slick-lightbox-inner .slick-arrow { background: transparent; border-radius: 50%; + position:absolute; + top:50%; border-style: solid; + border-color: #fff; border-width: 2px; font: 0/0 a; height: 4rem; @@ -184,11 +188,15 @@ transition: border 300ms ease; width: 4rem; z-index: 3; + color: white; } +.slick-prev svg, .slick-next svg{color: white;} + .lsx-to-slider .slick-arrow:before, .slick-lightbox-inner .slick-arrow:before { display: block; - font-family: "FontAwesome"; + font-family: "slick"; + color: white; font-size: 3rem; line-height: 1; position: absolute; @@ -205,13 +213,21 @@ } .lsx-to-slider .slick-arrow.slick-prev:before, .slick-lightbox-inner .slick-arrow.slick-prev:before { - content: "\f104"; - left: 1.1rem; + content: ''; /* Remove font icon */ + background: url('../img/left-arrow-new.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 10px; } .lsx-to-slider .slick-arrow.slick-next:before, .slick-lightbox-inner .slick-arrow.slick-next:before { - content: "\f105"; - left: 1.5rem; + content: ''; /* Remove font icon */ + background: url('../img/right-arrow.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 12px; } .lsx-to-slider .slick-dots:not(.dropdown-menu) { @@ -268,4 +284,5 @@ .lsx-units-wrapper .hidden { display: none; } -/*# sourceMappingURL=style.css.map */ \ No newline at end of file +/*# sourceMappingURL=style.css.map */ + diff --git a/assets/img/left-arrow-new.svg b/assets/img/left-arrow-new.svg new file mode 100644 index 00000000..486ed234 --- /dev/null +++ b/assets/img/left-arrow-new.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/left-arrow.svg b/assets/img/left-arrow.svg new file mode 100644 index 00000000..486ed234 --- /dev/null +++ b/assets/img/left-arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/right-arrow.svg b/assets/img/right-arrow.svg new file mode 100644 index 00000000..9b5dbc1e --- /dev/null +++ b/assets/img/right-arrow.svg @@ -0,0 +1,3 @@ + + + From 70275d91f8d6396a2bcfdd7c2be06eda105200c4 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 11:22:46 +0200 Subject: [PATCH 17/77] Price updates --- assets/js/blocks/general.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index b101f90f..e49e3d04 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -42,12 +42,11 @@ wp.domReady(() => { isDefault: false }); - // Price Block wp.blocks.registerBlockVariation("core/group", { name: "lsx-tour-operator/price", title: "Price", category: 'lsx-tour-operator', - icon: "bank", + icon: 'bank', attributes: { metadata: { name: "Price", @@ -105,6 +104,9 @@ wp.domReady(() => { ], ], isDefault: false, + supports: { + renaming: false + } }); // Travel Styles Wrapper From c74826302409b450103d8bc073a1d418ac357281 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 11:41:58 +0200 Subject: [PATCH 18/77] Updating the block conditionals --- assets/js/blocks/accommodation.js | 64 +++++++++++++++++++++++------- assets/js/blocks/destination.js | 58 ++++++++++++++++++++++----- assets/js/blocks/general.js | 23 +++++++++-- assets/js/blocks/query-loops.js | 65 ++++++++++++++++++++++++------- assets/js/blocks/tour.js | 52 +++++++++++++++++++------ 5 files changed, 210 insertions(+), 52 deletions(-) diff --git a/assets/js/blocks/accommodation.js b/assets/js/blocks/accommodation.js index 16f7844c..2c71bbb7 100644 --- a/assets/js/blocks/accommodation.js +++ b/assets/js/blocks/accommodation.js @@ -81,7 +81,9 @@ wp.domReady(() => { }, ] ], - isDefault: false, + supports: { + renaming: false + } }); wp.blocks.registerBlockVariation("core/group", { @@ -109,9 +111,10 @@ wp.domReady(() => { slug: 'lsx-tour-operator/room-card' }] ], - isDefault: false, - scope: ["inserter"], parent: ["lsx-tour-operator/units"], // Restricts to "lsx-tour-operator/units" block + supports: { + renaming: false + } }); // Rating Wrapper @@ -298,7 +301,10 @@ wp.domReady(() => { ] ] ] - ] + ], + supports: { + renaming: false + } }); // Number of Units Wrapper @@ -384,7 +390,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Check In Time Wrapper @@ -474,7 +483,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Check Out Time Wrapper @@ -564,7 +576,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Minimum Child Age Wrapper @@ -654,7 +669,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Spoken Languages Wrapper @@ -751,7 +769,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Accommodation Type Wrapper @@ -838,7 +859,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Suggested Visitor Types (Friendly) Wrapper @@ -934,7 +958,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Special Interests Wrapper @@ -1032,7 +1059,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Facilities Wrapper @@ -1142,7 +1172,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Location Wrapper (Destination to Accommodation) @@ -1250,6 +1283,9 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); }); \ No newline at end of file diff --git a/assets/js/blocks/destination.js b/assets/js/blocks/destination.js index 6bab1652..736b0152 100644 --- a/assets/js/blocks/destination.js +++ b/assets/js/blocks/destination.js @@ -143,7 +143,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Electricity Wrapper @@ -289,7 +292,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Banking Wrapper @@ -453,7 +459,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Cuisine Wrapper @@ -599,7 +608,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Climate Wrapper @@ -745,7 +757,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Transport Wrapper @@ -891,7 +906,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Dress Wrapper @@ -1037,7 +1055,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Health Wrapper @@ -1183,7 +1204,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Travel Information - Safety Wrapper @@ -1339,6 +1363,9 @@ wp.domReady(() => { ], ], ], + supports: { + renaming: false + } } ); @@ -1495,6 +1522,9 @@ wp.domReady(() => { ], ], ], + supports: { + renaming: false + } } ); @@ -1502,6 +1532,7 @@ wp.domReady(() => { wp.blocks.registerBlockVariation('core/group', { name: 'lsx-tour-operator/facts-regions-wrapper', title: 'Regions List', + category: 'lsx-tour-operator', attributes: { metadata: { name: 'Regions List' @@ -1611,13 +1642,17 @@ wp.domReady(() => { ] ] ] - ] + ], + supports: { + renaming: false + } }); // Destination - Country List wp.blocks.registerBlockVariation('core/group', { name: 'lsx-tour-operator/facts-country-wrapper', title: 'Country', + category: 'lsx-tour-operator', attributes: { metadata: { name: 'Country' @@ -1727,6 +1762,9 @@ wp.domReady(() => { ] ] ] - ] + ], + supports: { + renaming: false + } }); }); \ No newline at end of file diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index e49e3d04..eb25033b 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -211,7 +211,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Best Months to Visit Wrapper @@ -312,7 +315,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Included Wrapper @@ -359,7 +365,10 @@ wp.domReady(() => { } } }] - ] + ], + supports: { + renaming: false + } }); // Not Included Wrapper @@ -406,7 +415,10 @@ wp.domReady(() => { } } }] - ] + ], + supports: { + renaming: false + } }); // View More Button Block @@ -433,6 +445,9 @@ wp.domReady(() => { backgroundColor: 'primary', width: 100, text: 'View More', + }, + supports: { + renaming: false } }); }); diff --git a/assets/js/blocks/query-loops.js b/assets/js/blocks/query-loops.js index 5d585f58..926c1d2a 100644 --- a/assets/js/blocks/query-loops.js +++ b/assets/js/blocks/query-loops.js @@ -72,7 +72,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // DESTINATION - REGION - RELATED REGIONS @@ -224,7 +227,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Featured Tours @@ -300,7 +306,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Featured Destinations @@ -376,7 +385,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); /** @@ -457,7 +469,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Related Tours - Tour @@ -535,7 +550,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); @@ -617,7 +635,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Related Accommodation - Accommodation @@ -695,7 +716,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); /** @@ -777,7 +801,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Related Tours - Destination @@ -854,7 +881,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); /** @@ -935,7 +965,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Related Reviews - Tours @@ -1012,7 +1045,10 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); // Related Reviews - Accommodation @@ -1089,6 +1125,9 @@ wp.domReady( function() { ] ] ]] - ] + ], + supports: { + renaming: false + } }); }); diff --git a/assets/js/blocks/tour.js b/assets/js/blocks/tour.js index 5b0c180b..7e3ab730 100644 --- a/assets/js/blocks/tour.js +++ b/assets/js/blocks/tour.js @@ -66,7 +66,9 @@ wp.domReady(() => { }, ] ], - isDefault: false, + supports: { + renaming: false + } }); // Itinerary Day by Day @@ -94,8 +96,9 @@ wp.domReady(() => { slug: 'lsx-tour-operator/itinerary-list' }] ], - isDefault: false, - scope: ["inserter"], + supports: { + renaming: false + }, parent: ["lsx-tour-operator/itinerary"], // Restricts to "lsx/itinerary" block }); @@ -156,7 +159,10 @@ wp.domReady(() => { ] ], isDefault: false, - allowedPostTypes: ['tour'] + allowedPostTypes: ['tour'], + supports: { + renaming: false + } }); // Single Supplement @@ -259,7 +265,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Destination to Tour @@ -372,7 +381,10 @@ wp.domReady(() => { ], ] ] - ] + ], + supports: { + renaming: false + } }); // Duration @@ -510,6 +522,9 @@ wp.domReady(() => { ], ], ], + supports: { + renaming: false + } }); // Group Size @@ -611,7 +626,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Booking Validity @@ -747,7 +765,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Departs From @@ -850,7 +871,10 @@ wp.domReady(() => { }], ] ] - ] + ], + supports: { + renaming: false + } }); // Ends In @@ -953,7 +977,10 @@ wp.domReady(() => { }] ] ] - ] + ], + supports: { + renaming: false + } }); // Price Included + Excluded @@ -1074,6 +1101,9 @@ wp.domReady(() => { ] ] ] - ] + ], + supports: { + renaming: false + } } ); }); From c6fabdb26961014a7a54bd110914ac542e45b367 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 12:19:21 +0200 Subject: [PATCH 19/77] Updating the image attributes --- assets/js/blocks/tour.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/assets/js/blocks/tour.js b/assets/js/blocks/tour.js index 7e3ab730..cd3d7575 100644 --- a/assets/js/blocks/tour.js +++ b/assets/js/blocks/tour.js @@ -426,7 +426,7 @@ wp.domReady(() => { [ "core/image", { - width: 20, + width: '20px', sizeSlug: "large", url: "https://tour-operator.lsx.design/wp-content/uploads/2024/09/duration-TO-black-20px-icon.png", alt: "", @@ -563,7 +563,7 @@ wp.domReady(() => { [ ['core/image', { id: 122731, - width: 20, + width: '20px', sizeSlug: 'large', linkDestination: 'none', url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/11/group-size-icon-black-52px-1.svg', @@ -668,7 +668,7 @@ wp.domReady(() => { [ ['core/image', { id: 122730, - width: 20, + width: '20px', sizeSlug: 'large', linkDestination: 'none', url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/11/booking-validity-icon-black-52px-1.svg', @@ -805,7 +805,7 @@ wp.domReady(() => { }, [ ['core/image', { - width: 20, + width: '20px', sizeSlug: 'large', url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/09/map-TO-black-20px-icon.png', alt: '' @@ -911,7 +911,7 @@ wp.domReady(() => { }, [ ['core/image', { - width: 20, + width: '20px', sizeSlug: 'large', url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/09/map-TO-black-20px-icon.png', alt: '' From d60a963a7bbd00dff3cfc3d91fdc134bb365df09 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 12:40:34 +0200 Subject: [PATCH 20/77] Adding in the travel styles and gallery placeholders. --- assets/css/scss/_icons.scss | 3 --- assets/css/style.css | 7 ------- assets/img/blocks/travel-styles.png | Bin 0 -> 2563 bytes assets/js/blocks/general.js | 12 ++++++++---- 4 files changed, 8 insertions(+), 14 deletions(-) create mode 100644 assets/img/blocks/travel-styles.png diff --git a/assets/css/scss/_icons.scss b/assets/css/scss/_icons.scss index 04f51352..67a72854 100644 --- a/assets/css/scss/_icons.scss +++ b/assets/css/scss/_icons.scss @@ -119,9 +119,6 @@ .lsx-price-wrapper, .lsx-single-supplement-wrapper, .unit-price-wrapper { - /*&:before { - background-image: url( ../img/icons/price-icon.png ); - }*/ & .amount { @extend %currency-icons; diff --git a/assets/css/style.css b/assets/css/style.css index 2183e0eb..fa499b57 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -146,13 +146,6 @@ background-position: center top; } }*/ -.lsx-price-wrapper, -.lsx-single-supplement-wrapper, -.unit-price-wrapper { - /*&:before { - background-image: url( ../img/icons/price-icon.png ); - }*/ -} .lsx-price-wrapper .amount .strike, .lsx-single-supplement-wrapper .amount .strike, .unit-price-wrapper .amount .strike { diff --git a/assets/img/blocks/travel-styles.png b/assets/img/blocks/travel-styles.png new file mode 100644 index 0000000000000000000000000000000000000000..3c4f383cc3e59cf2d12d6aec85ffa52ea1dbf2f8 GIT binary patch literal 2563 zcmbtWc{J3G8ve}~W<-3-GL>Z{%Saex8B3EbvQtu+hOuOcWJ!cU#ixnMzJxA=7)v5w z*|Us^!DYsjwX!eavy3%$=iGblpZBl($NN6#ywCeS=e*}V&pGd(w$@jUA3J>v0D$A> zX2$j$Eat>37!N1o_9m1$01CFhVhB_Zh%W&EZ;QF{{9bk!TLUyZO1%V4^BQ4ulg{7hZ&^ zb`Y{51UtIzE17l}m-`986lD~f49M{R&t~6FxQ$Ehx$fYj^q8dVu`Wfq=}!@9cCJOQ z^GYkmeK%^1>lQ_nP-%drs!~s`nwLyf zJqc!2N-1NOy~FPD;o*7j^`u1fF_};w$jnsb-Y=j1fXDAVFU>X86a-EP_|^Pae}0N6 zRvLhu*4=4ZvElQ%N>M2cRNiCE97Os;X1+WrFS9am6xSpI<c0Xllh94do#=anjGb_k}|PFt~DQt4WD8;(>9mz33wFLPizD!Oj(q^1@L6iVh> zHReNp7e?|XQk`abSmEvw=Ez&y_c5T&m`*uS8Fdxms3{1d<>!r`6^yeeHOBqnab|>z zv}9o;=^IT%&}KwpmbL$cwa0H~bH_eM_6eaUP^#G4;vdNswQh!SUi`-y zrCgBxIjaA=F{^#*%EFo5XW~WqE%)~298T{=26jM^qBB!s3;QZJe1|F55<7U1r#Z)a zzl$~YwUgfuE>?f`?6dAG#TpvTK%}L#qb0JCMl=OW;fp9r9+;*maI3jk)nRu9> z`n}mi4BkS8i*m}6cx^;13PyAzK&Uv?1HlvU_>M&_GaSD_aT|v)BSyz@2vjs!=S2T{ z%yY%48?kl=u{DU zJ^iXM?y_S~xMW~8`&coKl!1zFUWvF~zS#JHYj|6L@1-;a-&G^A*N5gB{pxD=>(|jg z9_PPK4w@dG?a2|kG$QAwVXilfT2N`N$}ub{Ibt-yk1K&`3f>GUBf~r@V1V z05L9_6~m!@>@NE866RHSXKahYW~+I`z=T+TdKzJmaDIOy$vaxEj=rq5%OReOy((c`FMJvL^n>H zp!dMj`rWX|gdkGnR&8`fzJ!UJIDzOr=9|s}-hOGfQ0kVAQFjqHC8X0V>THry^S$%F z`URMr*vm&3Xc`CXc!>%DxA@v4kBzy1rx*VO=lOo-#~g@ zrZ&91el~juVn6oy0mwrs=`VO{XRY9r3y4&7@jm5Z;ZJrR%fhTB?-a@?NptT*uwKWF z&=}Y!XJS0wj7~E2toXNmCkGxr7ea(4j9cxic@N(lZ0>=P0tid>_Vbi>oGO?sAkyU7 zH;{DM4Pw?rOJZTe9Qg%gFru>fGM5~`XVAzKT_~Aqqp^=AH~c=RFMdP0KV{-Qib68x z9=07Jys1a|ouOtY>6SeI+OzENHuZ7HDX@W`0DSN?^rIVsKy>tL0%H=cjm>Zr#lSHIIm%#3< zc&dvx{qQ%GCe4dv-&+`EJ;FxI89=FANbsz*eG>Z7!PimpxRoWYkHQ5H;@9!Ns&R1r zwxqEVqvxD(icM8TVvQIts#$HPT2?Yk#LJYR*Q}{qD732!5Oo;0>bz(XUdA}4lXD*E zEjCfx3qrHuWeN(xFRFT(biS1K#6V1~h#zA^9!a270$#Sy%7%0;NYhF5WrO^P;Jy*= z)w3ur{EPHtunww)EPNqzqM6m-+kBm6k`P;K*jt-`aGl(?m2<=?rH#ejZ3g8`!pDEV zv1LPh&r?Hx%(ve`xb7q7UZQ4JFkIg@D@c5)pZD`VZ>3sad+PaT4$3Bnx-g8nYG9zJ z=!j#sJCa|+Nb%6JaDyd%tje%A(vvXMVaDVPmQxBPAu { [ "core/image", { - href: "https://tour-operator.lsx.design/wp-content/plugins/tour-operator/assets/img/placeholders/placeholder-general-350x350.jpg", + sizeSlug: 'large', + url: lsxToEditor.assetsUrl + "placeholders/placeholder-general-350x350.jpg", } ], [ "core/image", { - href: "https://tour-operator.lsx.design/wp-content/plugins/tour-operator/assets/img/placeholders/placeholder-general-350x350.jpg", + sizeSlug: 'large', + url: lsxToEditor.assetsUrl + "placeholders/placeholder-general-350x350.jpg", } ], [ "core/image", { - href: "https://tour-operator.lsx.design/wp-content/plugins/tour-operator/assets/img/placeholders/placeholder-general-350x350.jpg", + sizeSlug: 'large', + url: lsxToEditor.assetsUrl + "placeholders/placeholder-general-350x350.jpg", } ] ], isDefault: false }); + // Price Block wp.blocks.registerBlockVariation("core/group", { name: "lsx-tour-operator/price", title: "Price", @@ -145,7 +149,7 @@ wp.domReady(() => { ['core/image', { width: '20px', sizeSlug: 'large', - url: 'https://tour-operator.lsx.design/wp-content/uploads/2024/06/image-1.png', + url: lsxToEditor.assetsUrl + 'blocks/travel-styles.png', alt: '' }], ['core/paragraph', { From 9bc2ca35e3543f8a94b0852c1c8cfe21bdfd6a3c Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 14:50:07 +0200 Subject: [PATCH 21/77] Adding in the custom category icon #401 --- assets/img/blocks/tour-operator-black.svg | 14 ++++ assets/img/blocks/tour-operator-white.svg | 13 ++++ assets/img/icons/destinations-icon.webp | Bin 1520 -> 0 bytes assets/img/icons/price-icon.png | Bin 1057 -> 0 bytes assets/js/blocks/general.js | 84 +++++++++++++++++++++- 5 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 assets/img/blocks/tour-operator-black.svg create mode 100644 assets/img/blocks/tour-operator-white.svg delete mode 100644 assets/img/icons/destinations-icon.webp delete mode 100644 assets/img/icons/price-icon.png diff --git a/assets/img/blocks/tour-operator-black.svg b/assets/img/blocks/tour-operator-black.svg new file mode 100644 index 00000000..837c5df4 --- /dev/null +++ b/assets/img/blocks/tour-operator-black.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/assets/img/blocks/tour-operator-white.svg b/assets/img/blocks/tour-operator-white.svg new file mode 100644 index 00000000..0c9f5f25 --- /dev/null +++ b/assets/img/blocks/tour-operator-white.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/img/icons/destinations-icon.webp b/assets/img/icons/destinations-icon.webp deleted file mode 100644 index 0e806b0737cb2c4dd1f5b15fedbeeaaeb9dc0eb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520 zcmV38khs<2`zs?bfi=HM-i7Hv1p@!o>Thw1e%EP>qHl)87XmPT*gq;d}} z(|_16dTg2Bg;hW z^{VE`u=48bNy!w7xlG15Ez@gd7d1T-uG7i&^?PSDZC3|p)PCXBYDyY-e9mtKWy(Vt z*LS<)tgh6Pv9QB9YSkZ}ixH!=i1(M&s-q7zCRK4Zcc`pBIubkOa#L0pd8w_+sjmxTNGURIs@}{Gjj57%ZUtegLP&EsTjgKUNhf8(-1*) zPLG4OLN@tHh~*GAIp^)?rCpp&K5Cv|wWqv`yWj4k@ZwKEykg#xLg*LW@T*t^QGrMO zWTaU#RU2bwlI*AkE1~y>B*O#@tyj7_Tjc^c5ZZEsKt7) ztYvil(}Fm+<%qwh$t{A9tYrC-MK7@HY3GKF+Fc%&2;6|>K7NPit6!fNA-mDtP4RTS z+XI@`IKj&CedsPO{C(GWZ(IRRut5BUwm5iX#rs9xvv-jou^Rl4zR(g`Nd_%E^ko`k zPa+Z*5mG^UBi|s$^jnWblDmb3R2XWklc!#GB??BzR`g<|xrP@#S_Cl~fWkOXyy!AP z7`V&dL$c5CfE63yTum;Hv~UDclt9ZMh}v~kHhAk`Cbq`TOg}nKI67KOq%L2;Va2Ga z-x@d}hFqzwReoz6c}QGO7TN->X^8BvO0d#@!D6PZ8h6Mqq+x&c4J!>QIl9U?GZBn1 z0ab>Vzv5>+Y;dMs$v0mb8WvaFx7r5yRrg=M@vDHvuc!v-O>;(-iRI*MmcXF+3Gs&a zN_~OIeN2eYx|^eHOO7+t4N@R3bRwi9)Lr|e#Kmyi!SNUB?=96hYJyYOGISiZB6n9P zb)myv=^OCQO*^Lu0qpNxLLE<`R09w8>(}5IR&YAdp&i%}z4$3r7&~8Hh6j8Kc(n2b zfF<&#cBtScK8EG_ai$I*r;CCZ7Eco=d7O?A2`^+mNy;LO4K%22P-qB2Ur&|?Mm+Xr z34+|t32J+SC`48?Ug9stQ-^;0F#OTo*y*9JL@qpbsr&<0Xygcj8H@CA)2 z9}RlR8BKgp;S6$&{WM_m=&D2;69t+DbFAR1MAK&u^|T-yGM$*F;+*Sb1{x6XyxUbe<5SeA}MQ!=Ur2 W*{{p_{O*j*%k{Pm=d1bm92o$iHShHR diff --git a/assets/img/icons/price-icon.png b/assets/img/icons/price-icon.png deleted file mode 100644 index 323ad47b5027c07d477b13c39ec24e5a036cbe02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1057 zcmV++1m63JP)Px#giuUWMMrQ<5FjuR7%UJNDi0Sc5Ew8J7b*`IDi9bb z5Ev^C7b_1JD-Rbc4i+mAARrJGD-ISa5Ev;C7%LDEFc20g5Ed;E7Ap@IDi0Sc4j3vB z7b_4KDG(bg5EU>G7b*}JDG(Pb4HYX88Z8eODi9bd4HzpB7b*}JD-akf5Em;D7%C4J zDkj~{4FCWDD|Av$QveV^fbSrX-ymR*zwe(AFn^%G5KvH`&(EKakT5W>aNl20uisy= z&!BLh0jVNm00097Nkl>rR~z)?ymm-|F+|VPBd3w z3ez{vOJ|t+awXZa4Bff&4LH9&be2D`-C^78=qA#wVV2m3hOQ*9M>W*UuaSG?GkjSx znK5vSWMepr^;g@DojYQP@8$kC<#h3T`PBqk4u% z3Xns|`7RpoQO~9{p*ChFB<+QYxmE3jDrGcbU0f7(a@5O6V1gMEWIWJ8t)-KICkY2g z;(1_3C-JCza}A{vxcLgpf9Gu9EYXt3simH5L-rRM~+qe1)*)6gj7 zgPjctiyTN#M7&Zmp3*2d^aSfjP)_z5y771tR^p_j)q*5mkGbN2*znDK!E6hRR63Odbt!vl5v;ZrltXhH#H^@ zsf;@A7sh1bw>ABJsjoI8bhzG%R#G zzYS{ez!Qw<_HLJaa)iVsEvuN!(Ur8QY5J6IqH6p7`x}4o_P+1EyZ=Oc b=NtGB8b234X_`9?00000NkvXXu0mjflibAm diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index f7f3c60b..b499c236 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -1,11 +1,93 @@ // metadata.bindings not handle correctly wp.domReady(() => { + + const svgElement = wp.element.createElement( + 'svg', + { + width: "52", + height: "52", + viewBox: "0 0 52 52", + fill: "none", + xmlns: "http://www.w3.org/2000/svg" + }, + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M25.8848 50.9803C39.6698 50.9803 50.8448 39.8053 50.8448 26.0203C50.8448 12.2353 39.6698 1.0603 25.8848 1.0603C12.0998 1.0603 0.924805 12.2353 0.924805 26.0203C0.924805 39.8053 12.0998 50.9803 25.8848 50.9803ZM25.9956 47.4606C37.8631 47.4606 47.4836 37.8401 47.4836 25.9726C47.4836 14.1051 37.8631 4.4846 25.9956 4.4846C14.1281 4.4846 4.50762 14.1051 4.50762 25.9726C4.50762 37.8401 14.1281 47.4606 25.9956 47.4606Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M24.375 10.2578C24.375 11.0992 25.0571 11.7812 25.8984 11.7812V11.7812C26.7398 11.7812 27.4219 11.0992 27.4219 10.2578V7.21094C27.4219 6.36957 26.7398 5.6875 25.8984 5.6875V5.6875C25.0571 5.6875 24.375 6.36957 24.375 7.21094V10.2578Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M13.4739 16.0447C14.0688 16.6396 15.0334 16.6396 15.6284 16.0447V16.0447C16.2233 15.4497 16.2233 14.4852 15.6284 13.8902L13.4739 11.7358C12.8789 11.1408 11.9144 11.1408 11.3194 11.7358V11.7358C10.7245 12.3307 10.7245 13.2953 11.3194 13.8902L13.4739 16.0447Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M36.4099 13.7583C35.815 14.3532 35.815 15.3178 36.4099 15.9128V15.9128C37.0048 16.5077 37.9694 16.5077 38.5644 15.9128L40.7188 13.7583C41.3138 13.1634 41.3138 12.1988 40.7188 11.6038V11.6038C40.1239 11.0089 39.1593 11.0089 38.5644 11.6038L36.4099 13.7583Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M9.95312 27.625C10.7945 27.625 11.4766 26.9429 11.4766 26.1016V26.1016C11.4766 25.2602 10.7945 24.5781 9.95312 24.5781H6.90625C6.06488 24.5781 5.38281 25.2602 5.38281 26.1016V26.1016C5.38281 26.9429 6.06488 27.625 6.90625 27.625H9.95312Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M44.9922 27.625C45.8336 27.625 46.5156 26.9429 46.5156 26.1016V26.1016C46.5156 25.2602 45.8336 24.5781 44.9922 24.5781H41.9453C41.1039 24.5781 40.4219 25.2602 40.4219 26.1016V26.1016C40.4219 26.9429 41.1039 27.625 41.9453 27.625H44.9922Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M11.9812 39.1257C11.3863 39.7207 11.3863 40.6853 11.9812 41.2802V41.2802C12.5761 41.8751 13.5407 41.8751 14.1357 41.2802L16.2901 39.1257C16.8851 38.5308 16.8851 37.5662 16.2901 36.9713V36.9713C15.6952 36.3763 14.7306 36.3763 14.1357 36.9713L11.9812 39.1257Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M38.2629 40.6555C38.8579 41.2505 39.8225 41.2505 40.4174 40.6555V40.6555C41.0124 40.0606 41.0124 39.096 40.4174 38.5011L38.2629 36.3466C37.668 35.7517 36.7034 35.7517 36.1085 36.3466V36.3466C35.5135 36.9415 35.5135 37.9061 36.1085 38.5011L38.2629 40.6555Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M24.8828 44.7891C24.8828 45.6304 25.5649 46.3125 26.4062 46.3125V46.3125C27.2476 46.3125 27.9297 45.6304 27.9297 44.7891V41.7422C27.9297 40.9008 27.2476 40.2188 26.4062 40.2188V40.2188C25.5649 40.2188 24.8828 40.9008 24.8828 41.7422V44.7891Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M28.6218 22.4428L28.6222 22.4426L28.6192 22.4407C28.3268 22.2199 28.0059 22.0334 27.6627 21.8875L13 13.4062L21.8155 27.8277C21.9285 28.0554 22.0616 28.2716 22.2115 28.4754L22.2174 28.4851L22.2181 28.4844C22.395 28.7237 22.5961 28.9449 22.8177 29.1446C22.9896 29.3271 23.1771 29.4954 23.3782 29.6475L23.3778 29.6477L23.3808 29.6495C23.6732 29.8704 23.9941 30.0569 24.3373 30.2028L39 38.684L30.1845 24.2626C30.0715 24.0349 29.9384 23.8187 29.7885 23.6149L29.7826 23.6052L29.7819 23.6058C29.605 23.3666 29.404 23.1454 29.1824 22.9457C29.0104 22.7632 28.8229 22.5949 28.6218 22.4428ZM24.3781 24.4125C23.9645 24.8126 23.7084 25.3675 23.7084 25.9808C23.7084 27.2003 24.7213 28.1889 25.9709 28.1889C26.5417 28.1889 27.0631 27.9826 27.4612 27.6422C27.8747 27.2421 28.1308 26.6872 28.1308 26.0739C28.1308 24.8544 27.118 23.8658 25.8685 23.8658C25.2976 23.8658 24.7762 24.0721 24.3781 24.4125Z", + fill: "#090909" + }), + wp.element.createElement('path', { + 'fill-rule': "evenodd", + 'clip-rule': "evenodd", + d: "M43.567 6.91088C43.3913 6.65906 43.2131 6.38092 43.0942 6.09685C42.6699 5.08228 42.7343 3.8416 43.1616 2.84063C43.1926 2.76922 43.2253 2.69875 43.2599 2.62913C43.2943 2.55942 43.3304 2.49059 43.3682 2.42266C43.4061 2.35473 43.4457 2.2878 43.4868 2.2217C43.5022 2.19713 43.5179 2.17271 43.5337 2.14836C43.5603 2.10759 43.5875 2.06721 43.6153 2.0272C43.6597 1.96332 43.7056 1.90064 43.7531 1.83904C43.8006 1.77739 43.8497 1.71711 43.9002 1.65803C43.9506 1.59885 44.0025 1.54098 44.056 1.48448C44.0751 1.46412 44.0945 1.44394 44.114 1.42386C44.1488 1.38829 44.1842 1.35331 44.22 1.31881C44.2761 1.26491 44.3336 1.21248 44.3923 1.16151C44.4509 1.11044 44.5109 1.0609 44.572 1.0129C44.6332 0.964895 44.6955 0.918498 44.7589 0.873496C44.8224 0.82852 44.8869 0.785151 44.9525 0.743478C44.9774 0.727538 45.0026 0.711935 45.0278 0.696495C45.069 0.671458 45.1104 0.646957 45.1523 0.62308C45.2198 0.584621 45.2883 0.547832 45.3578 0.512701C45.4271 0.477645 45.4973 0.444333 45.5684 0.412754C45.6394 0.381174 45.7113 0.351402 45.7838 0.323337C46.9073 -0.107222 48.1988 -0.125455 49.3033 0.375628C50.3912 0.869147 51.2751 1.85395 51.6838 2.97151C51.7096 3.04319 51.7337 3.11557 51.756 3.18855C51.7646 3.2165 51.7728 3.24452 51.7808 3.27261C51.7937 3.31778 51.8059 3.3632 51.8175 3.40885C51.8233 3.43194 51.829 3.45513 51.8345 3.47834C51.8466 3.52931 51.8579 3.58059 51.8682 3.6319C51.8834 3.70667 51.8966 3.78174 51.908 3.8571C51.9133 3.89208 51.9183 3.92719 51.9228 3.96231C51.9281 4.00289 51.9328 4.04346 51.937 4.08414C51.9447 4.15995 51.9506 4.23587 51.9546 4.31202C51.9587 4.38827 51.9609 4.46458 51.9612 4.54083C51.9616 4.61703 51.9601 4.69328 51.9567 4.76949C51.9534 4.84572 51.9482 4.92175 51.9411 4.99766C51.9388 5.02227 51.9363 5.04687 51.9337 5.07146C51.9281 5.12272 51.9216 5.17385 51.9143 5.22486C51.9107 5.25022 51.9068 5.27557 51.9028 5.30091C51.8949 5.35089 51.8861 5.40075 51.8765 5.45047C51.8621 5.52533 51.8458 5.5998 51.8279 5.67399C51.8098 5.74809 51.7899 5.82163 51.7683 5.89482C51.7467 5.96791 51.7232 6.04042 51.6981 6.11245C51.6729 6.18447 51.646 6.25582 51.6174 6.32646C51.5887 6.39709 51.5584 6.46709 51.5264 6.53637C51.0265 7.59911 50.0679 8.49389 48.9549 8.87753C47.5903 9.34807 46.3252 9.05145 45.0645 8.44598C45.0322 8.47617 44.9988 8.50644 44.9648 8.53711L44.9608 8.54076L44.9606 8.54093C44.7379 8.74234 44.4971 8.96006 44.4311 9.25287C44.4995 9.331 44.5707 9.36452 44.6414 9.39777L44.6415 9.39785C44.7261 9.43765 44.8097 9.47702 44.8869 9.59228C44.8499 10.0781 43.9245 10.8797 43.312 11.4103C43.2279 11.4832 43.1497 11.551 43.0805 11.6121C42.6465 11.1226 42.1952 10.6432 41.7265 10.1745C41.2678 9.71577 40.7988 9.27372 40.3203 8.84835C40.4071 8.75939 40.4938 8.67004 40.5806 8.5806L40.5806 8.58059C40.9383 8.21189 41.2975 7.84173 41.67 7.49145C41.6894 7.47332 41.7121 7.45102 41.7373 7.42615C41.8936 7.27233 42.149 7.02091 42.319 7.05068C42.5395 7.08935 42.6356 7.21956 42.7526 7.37811L42.7935 7.43314C43.0228 7.38867 43.2379 7.19892 43.4285 7.03071L43.4295 7.02979C43.4769 6.98793 43.5228 6.94742 43.567 6.91088ZM49.8764 4.49387C49.8764 5.83988 48.7852 6.93104 47.4392 6.93104C46.0932 6.93104 45.002 5.83988 45.002 4.49387C45.002 3.14785 46.0932 2.05669 47.4392 2.05669C48.7852 2.05669 49.8764 3.14785 49.8764 4.49387Z", + fill: "#090909" + }) + ); + + wp.blocks.updateCategory( 'lsx-tour-operator', { + icon: svgElement + } ); + // Gallery Block wp.blocks.registerBlockVariation("core/gallery", { name: "lsx-tour-operator/gallery", title: "TO Gallery", - icon: "gallery", + icon: "format-gallery", category: "lsx-tour-operator", attributes: { metadata: { From 986382583309e7bae66e85ebfd8af1cde34d2fe4 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 16:23:40 +0200 Subject: [PATCH 22/77] Updating the room and the itinerary cards --- assets/img/blocks/drinks.png | Bin 0 -> 1286 bytes assets/img/blocks/itinerary-accommodation.png | Bin 0 -> 2843 bytes assets/img/blocks/location.png | Bin 0 -> 4598 bytes assets/img/blocks/placeholder.png | Bin 0 -> 38150 bytes assets/img/blocks/rooms.png | Bin 0 -> 1229 bytes assets/img/blocks/unit-price.png | Bin 0 -> 2333 bytes assets/img/blocks/unit-type.png | Bin 0 -> 1388 bytes includes/patterns/itinerary-list.php | 23 ++++++++++-------- includes/patterns/room-card.php | 13 +++++----- 9 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 assets/img/blocks/drinks.png create mode 100644 assets/img/blocks/itinerary-accommodation.png create mode 100644 assets/img/blocks/location.png create mode 100644 assets/img/blocks/placeholder.png create mode 100644 assets/img/blocks/rooms.png create mode 100644 assets/img/blocks/unit-price.png create mode 100644 assets/img/blocks/unit-type.png diff --git a/assets/img/blocks/drinks.png b/assets/img/blocks/drinks.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9797b2444a97c8391df5560275cb4027b86a1c GIT binary patch literal 1286 zcmV+h1^N1kP)Px(z)3_wRCr$PT>sV0KoFg;13I7rbU+7GfC^9nDnJFO02R;yDxd>8;N5eQbKd)8 z=hvOhm-Vv$zDzQEb9d(MP4X^e9~1%?RP-J!JAfn!b^vz(Nd(C7oq;=mBm!jk&cGD_ z{3RmS$m@(6{#!(@Ysq^U_(Mc)jEVr6_csx_!vgq0MDCM`j2iw$MDDQwz7vs$qar}& z{YFHdvH;=)ugFA34S#t^`~?f(BN2H!DgtEQ4@Bf63*c=L`Pw)Mx|DhWasq3FgCMPe z`iDB$9G)(W4vbFR8ffzXa>N072AS3xH$~(p3n1eEFc;Y{vfAoG+9tuw1E$GqTF|T$ z8wT*MhhJ=H8i>2KG#(#>Hl)soLsJ;026Rz$LPgVpW~<*YvXCgx8~J_m zY#_W0e0?akPZ}2jxM1OkgC>R-Kurs}?$k!nMg2n^TpG^~CJKmCQUkFU#-4a-xQeZn z$QAvrHAhneMrxp@1x?H6ioo$)R+DFNVc^D;Fwhd5BZ}#gIeBX!?t*5ly6%>BH&^~$ z(}3<(6#?*n6VqByD*Ml zQwtt%57!j&p>1iDf!YSVk_}5N(4JpZUfZn!GYniq3*t=&>;#s^8gGh)thp!yEfbPu z0we?&(0UsH*M}15`MzSv9F77AfO@{M>e&HcONpk^qcgjW)U1p_TrV*lDc-%BirYwK z0PInRw7SRt;B)Irq4%BAc!QW*wTFQ3TLy$oh`E+G+} zWniV44sF~URIFUeZX=apV5PAdPIv)C?eS!^7KTK0mVs4bI$W?7G^$wWkx?gUWON`- zP+_cAzE@bq!Z04;fC+w93s%&=%Y^Z zSuGecQkk6yVk?Z*uxM2PWN#==9Wqi`01?mXu8f7%!Vq7RY99?+6(DS+RshI~>A4xb zw`OPj&NeihK5V2`09awH;?ARZn{UH6K&-O&(=|EUg)tviOdn&Ckr4QD%KQ+<$?mi& zU;t#5|K+)Xg#c3hzEpjj z3xCcb?MpHYtTa|Ltf`DiiD;IA722y31m;|6P0BD330D}a%*3l=(>SC9r_3v~U=;}2 z^Q4T_3LS`ZRA|BM#H-@c8j!7lJv(s~IG*!R)*8EnksxdDdnVcI7;5=eFc9ZJH-?qe z^Odt60A^n)ImxAhfis9OG)MWDH`F~WUG-myJa?@M!1-EWA>3;08n!sFy8(Dv^WvX5 wRRg$1(7NWd14zQV1Goc7B0z@k3?u>k3k}iVQ9TVpTmS$707*qoM6N<$g3YBonE(I) literal 0 HcmV?d00001 diff --git a/assets/img/blocks/itinerary-accommodation.png b/assets/img/blocks/itinerary-accommodation.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b4d650241e1ffbf24bc929bb072f7be2b65614 GIT binary patch literal 2843 zcmdT`S5%XU68=LcfD&5bMFBx65+rOE={393kr&W zl%Q;oPUs6#11v>q1OgJg?8AM(=iI0JF!RlsneWWYobP-OuUi`Nf&T>t0D#ZL7-e&c z#i#L{i{mt77~ig*0w~1BNFS)~Kfek9;87Elo?WEdMuEG%Xr}3YdM_^{Nb z(m$NVYpScukJkRq3$!@k6+C&aD*?VM5hTGYs~Zd9XDbFUyd^?hY>48l{m*eNcu(7tw&IwT{ zpYisFUMY!r9YctI=Q8A1`dIIm#_6i5E@Ef<-6|GCizDWVieGm=s@eFn)72rSx9ZJXzubrVLM!XLOYs3Ye>U*U-s%B4rFa0=cxlsJwk?d&S_=u9}oSczrp-S_5 zo4z*_b@-4Ik)=SQ1^Kj5mlL3Yvez|a?>frv= z12YG0pjh5}fGI*Jw@b_#=M>$j<(I2=0b~!gU;D|20@QQzz~Go5gmyiJz-6118{xZo zU#4SfyW!^GxlTDR#+G9;3>^049EPN807pslZ`JR$xJDS@=n$QJihc*Xl0nf5@xkQL zkzUhd9*BVnE(b*UBZJN|_txlr<1fGL6XrYDP68JOUP=BC1l90NU(D^(%B6jw%@rmS zpZrzLt}X>RbV(NSxffX^J4^pyOSx+KEGpj_h7F)9UT!HBf0Ytq@%JtI){`F;lD3JHF&Z#qa#r{b+L2cRQ%)ML2#X5(7A?o%ZhYWxywjb=vjL(6 z?fu3$_{|4XG4T@r$I7T8%Dm)!EEV`&P|y}uioN(UHyA(*4)F$TCQx6=!*1&17O)qC zPof2u%5}+QiaT$l0u!uM)bm!9Ey_*pMn5#R`0RmQ%$33NJZOJ$0(DXDx^Q947z-L-$|C>f-W)WfZJS#JUF7nEwe&MC@*kZGR%+t~qk)xd zBy)5Cs(m(coZ{Clf#Jobw6@B^^e(wdPhKv>W)`?dCqQ`8azJAJigh#dh0;Byw|;y) z=OAT5s_#9FK#d5`gpzkrH*%@uI3edRtVVJbB8hjWs(>`x!+a3iix8M)!rQjE1#9z17}Shyg^RtakVA^lTbEl|ds_WH|)&Ajo=NwmLZ1sz$SpBFR0=77{g^&5@8Eq&`OeHK?K%%_Y&WB&urSpji z6Hi}bhTm3DzyK7&-f%zqUc+sVnt${!N0q=Q)KEoU-ARM^pwUvD^jJtn=5;cJ*i-Y+ z>jO#?_S+jUSD2;MV|()sqbmn%kxof5ssu2^`uBTgyoj-y+f+0!tXKid6ksLp zRXV+guu^=@T-rJSPo}>Jwj)+)a%fCZiR{>xXDF)lU(@iccB9-X4Z$}PPTekGVrYq~ I*2l#E8#fSD3;+NC literal 0 HcmV?d00001 diff --git a/assets/img/blocks/location.png b/assets/img/blocks/location.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb659cae1c1b00aa30a034cf64e36be8ed232c3 GIT binary patch literal 4598 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 Dc_Xth literal 0 HcmV?d00001 diff --git a/assets/img/blocks/placeholder.png b/assets/img/blocks/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..fabf2f75ec700fb11493dda34c5fa98549f4fb31 GIT binary patch literal 38150 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

%W3hTS>ryml_XTNP!>sqsh$u-_%nkB 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 DZahvM literal 0 HcmV?d00001 diff --git a/assets/img/blocks/unit-type.png b/assets/img/blocks/unit-type.png new file mode 100644 index 0000000000000000000000000000000000000000..af10771f520374f4af88f0cfdd15630302f3fe39 GIT binary patch literal 1388 zcmV-y1(W)TP)Px)CP_p=RCr$Po9l5@F${&34xj_*fD)hsr~s${r~s${r~s${I)D=BAe2A{kdwI% zT1B$#E8EwZwf|&h*AMwySvr2?f>sF;xCpggjcEZ4I>7?C00s#Jn=cPs0D}aA&1d(( zx7+;Q2j|(X`OE-66VZ!p<{ydZO*aaGj%NgTkBGhz(PJ^MUqtkTi2elT+q~&)03Q(1 z4K**GL%4~lU(KD7Xti*z*Xn&Z@IT9e3DV*V_D{!w37lOCJ zV`Vu^<{SYq=S}b=?vW|>@vMvQlfdR650N>e0p?^1lEN28B-O=7(0?2vJoG~*ZVr<< zBLP}61sN6b4skCPnU%FV=nu(7%iI!px1=%(U{0pU$y!+%5Ms$z|nS?2=j$ zb%)EG9sp})O78H$3;x=^*pfLKaIb&&`yK!RL>@)K5KE?bhX>vyG>DeW0YoINW~B!} z8PrQ;N_0Y&%)tQ#7vs(4O%H&8krTl=nGywQ$sA3LN5{Hu-wR-Zh`+TmB|0%p=14oD zW8Adw2~ZkYBU7Ri9Co-c0^nYm5{1|$>q?_W0KClHaYP|`?GZj6dX*yIj{x{LVqk-| zUFX=f^KJ6A06m*p_ZRw&JYz$hZ;fl0uxC>ZK@WOt!Kv`$Mf zo_AV;(;it6Hn0!omr|&+*FJCFVSrewFitKNYhXOVz;PCTS!G=c6&t@*M6$rufQ-3O z`-<$?)ux0fz)PbIi8hiTiNGAtOc061>;Kyo(T^qxpLeKQQPbG zurCX-24L^P+=gOFzOwnFYX<1M6082z`z;Q{A%kmU6`PIM-_FY5NJTSN9O5diWU#RBZ zRs#-O;KkgNXR_}Wz)~5I%d(nQlUX`>SBcEw{Y_^d_rMz2VP!ol-NSd+oS!`2SAQD&G=MEK*We80#7m))HPz*iEC$16#%{ z1^0@9cRdEWYpAk9>m^q?yj#7wjB!V-tgrx90+ZDjz;g!}od0<>_m<0f(bzHD1#ky6 u-edt>0D}aA&6fu*fI$Mm=F0 __( '', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), - 'content' => ' - + 'blockTypes' => [ 'Day by day' ], + 'content' => ' +

-
-
+
+
@@ -26,7 +27,9 @@
-
+ + +
@@ -39,7 +42,7 @@
-
+
@@ -55,7 +58,7 @@
-
+
@@ -71,7 +74,7 @@
-
+
@@ -87,7 +90,7 @@
-
+
@@ -103,7 +106,7 @@
-
+
diff --git a/includes/patterns/room-card.php b/includes/patterns/room-card.php index 56953c26..9f384ceb 100644 --- a/includes/patterns/room-card.php +++ b/includes/patterns/room-card.php @@ -4,12 +4,11 @@ 'description' => __( '', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), - 'content' => ' - + 'content' => '
-
-
+
+
@@ -38,7 +37,7 @@
-
+
@@ -54,7 +53,7 @@
-
+
@@ -64,7 +63,7 @@
- +
From 1646ac12f40426e3b51490113fd8e32b383615d6 Mon Sep 17 00:00:00 2001 From: Warwick Date: Tue, 10 Dec 2024 16:38:49 +0200 Subject: [PATCH 23/77] Adding in the tour and accommodation cards. --- assets/img/blocks/duration.png | Bin 0 -> 2376 bytes includes/patterns/accommodation-card.php | 70 +++++++++++++++++++++++ includes/patterns/destination-card.php | 24 ++++++-- includes/patterns/tour-card.php | 60 +++++++++++++++++++ 4 files changed, 148 insertions(+), 6 deletions(-) create mode 100644 assets/img/blocks/duration.png create mode 100644 includes/patterns/accommodation-card.php create mode 100644 includes/patterns/tour-card.php diff --git a/assets/img/blocks/duration.png b/assets/img/blocks/duration.png new file mode 100644 index 0000000000000000000000000000000000000000..de1b0fc96b04874bc1e2a67b73906c5f7f534718 GIT binary patch literal 2376 zcmV-O3Agr%P)Px;0!c(cRCr$PT~S)wMi8En6B_qxL3s$~(Rpid`o)|eaDs#rgq(nIg1`v^Cjd?m zI6>$M;(V>0zC|zXXQvMlSt8~ zXm#{zaHs&VtOOMR6#$kcV0rk;0xAG3OThB*l?7A)SeAh0;Y)1+ZnN#e=|9VWPBS2S zfQU^1Y7S*K`gizW^a02NK%a;_2k{LccHq{Hj_-AR%W{?uUpfHXh5O4u^oW2S1Hcs_ zrxs&}2s@60`+onoqtv|^c(4=zTnZi50LV4)p5tA5M0ivdFsuUL&j0+FFjxnmWy3<3 zb>Bh69lzh*voyY)tq6Di-eW?1kt4-qm7j-*TQ-0w)B*(65Ycms8lMD|hd8t1_d8xv z!@T}p2mm6Q2|k}cN1$iA6GsFgj3Xd?1LSx>fd{n<-|zoEAtZOIO-pTv!Q{Dbm?Q;bnS@ZML`iSB%jH(D= zFAwc>8~2_OI3i4zuEz7WgxmmNaK48DuKIstK)#Uk5oeaNu9`DXc&@SdP7zak zSU+9LQ}{waMF0>w=VTB(tj{cEId8}WKmzZ3h`~x;v@@>pMFB91kW@Y)t5Z%5z;KH} zXn)KPeZ-3;6T&aj0>0AGomQJ15Ofq99U(d^X%Bi*1E8WF1llmUd@s@hzJd^jsNoiR zoWdO)54tO99C9iEhO5WjxB&@a@1)<$b+K}F92)=(E$<~j{DvM9t@`iZ9_WIQ3IK)n z8{>UjK42m|jhym32^D$AgWg@^0I0Md5uX-us$|OoLZ_^tBCOR`{Xc)zvI1=jm}|5| z%pZ5ikxBz}HO7V$j-fzF=#ARGKnsBANHGx0^lQJOw7(1hs98WSBGLn3zO_s7JDr7T ze;EK6&LP$c5OBvIblFF*S^&tLZ;{$x769CZ#Z4j*Cu>)KT6i6ilaN5 zPWbD(AdHC4KE%^8pN9AVNazOv4*fw-=de4C-<^1-3;;xy*b=MbYe{7~G{go#7X1`W zKV_kyC?st?BcQm|G217y0El)4W#(2a{ges-m0apGw>i6{JOHHOCw7hp-KET&qS--N zC@8Xm#dlwhM6YFWa~EYi03@bnga6B90U-bj_x9or^SK+6JODBdqN(7C&C6v0@qU22 zDaisr>g`kPeI!bk(V$cSgemqHVwZH{C(jmoAJfY`*WJPbheQ2~%7NyScN(xZug*V)Gzb!MD`q^mtk zPI$NvvrPa`m>+*63SNBRjYvDX`K1ac%(5gF1xW$06oxXSSy&T!7|PqGVF6IKg;-(I zWegO3>uh)-mUX{_@g7s#M7AZJ>sCb8L8ex^jETFA#g`P5td;L(oW#rkfVJ9VyvNiw zksnm?jwM+>KzSg;Jb0K|2`eV9N>E0oTvz}^VV~sS!EhpOnSqn%2k{~x@opLbw6+Oo z{klN(v%$(NRGqoW_@C>5^#D+1#WBrI=jF=YR!Kh^-wUuUAlh__--AiBgIIO}C(Tch zo~RX=XaV3hWHj{cMMJVIK^^+hqM*$6f&2p%e)Ka^ z5-kb}tw6pg1Mce2w1%4OKkpAzv;l~$K>BU4kM)_moQyD&LNe8NLh&gr=bPFBlB@s# z4vq)CRZ~K+*{>`AJ_6F_$fmM@1YhvKq@sj+7^$>hI|>@tK2<~{&QcZ(SweCl)Uip0 zHKYM<9+{%1u#Eoc+4`4~_<}|l_tS__6E;ki;4un7WC_WIP-8UX01*%K03*DK>GSy- z0X)*YIHHi^Q^oz(b;qG)4D# z-OF290pOCBT5CYCp5~sHtS=r#H+Td=uwz5;qxo9};1Y=Y%K#T^MEEcbXX}9xmeAh^ ztQ{0dHL^LD0)R<+iogJJ9^_>i;Z00Lhh-7^`1_U)fC(^~O&9+Dp$$ZBKzbmqr2+ys zs!lRlMtFGLl^_-`ywr1a?bY`mkBW$9^sMl*b*TYJ`%=^NTm^t-v?>5904z(u^6-@f uQ~+3(faT#U3#b6FECI{IR~BFyfd2ql1`@2~^Ve+v0000 __( 'Accommodation Card', 'tour-operator' ), + 'description' => __( '', 'tour-operator' ), + 'categories' => array( $this->category ), + 'content' => ' +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

price

+
+ + + +
+
+
+ + + +

Type:

+
+ + + +
+
+ + + +
+
+
+ + + +

Rooms:

+
+ + + +

+
+
+ + + +
+
+
+ ' +); \ No newline at end of file diff --git a/includes/patterns/destination-card.php b/includes/patterns/destination-card.php index f631e797..cedc7e30 100644 --- a/includes/patterns/destination-card.php +++ b/includes/patterns/destination-card.php @@ -5,12 +5,24 @@ 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'content' => ' - -
-
-
-
-
+ +
+ + +
+
+ + + + +
+ + + + +
', ); \ No newline at end of file diff --git a/includes/patterns/tour-card.php b/includes/patterns/tour-card.php new file mode 100644 index 00000000..7235cc39 --- /dev/null +++ b/includes/patterns/tour-card.php @@ -0,0 +1,60 @@ + __( 'Tour Card', 'tour-operator' ), + 'description' => __( 'Display the tours', 'tour-operator' ), + 'categories' => array( $this->category ), + 'content' => ' +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

price

+
+ + + +
+
+
+ + + +

Duration:

+
+ + + +
+

+ + + +

Days

+
+
+
+ + + +
+
+
+' +); \ No newline at end of file From 95095de04514f36f341a2879f4267d91eae6455e Mon Sep 17 00:00:00 2001 From: Justinabes007 <103206213+Justinabes007@users.noreply.github.com> Date: Tue, 10 Dec 2024 16:46:29 +0200 Subject: [PATCH 24/77] Collapsible Sections Functionality to allow Collapsible sections for Mobile + Facility styles --- assets/css/style.css | 120 ++++++++++++++++++++++++++++++++++++++++ assets/img/tick.svg | 1 + assets/js/src/custom.js | 48 ++++++++++++++++ 3 files changed, 169 insertions(+) create mode 100644 assets/img/tick.svg diff --git a/assets/css/style.css b/assets/css/style.css index fa499b57..6994d15c 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -278,4 +278,124 @@ display: none; } /*# sourceMappingURL=style.css.map */ +/* Main wrapper for groups in fast facts section */ +.fast-facts-wrapper > .wp-block-group { + display: flex; + flex-wrap: nowrap; /* Ensure content stays on one line unless it overflows */ + align-items: flex-start; /* Align all content to the top */ + justify-content: flex-start; + gap: 10px; /* Space between icon and text groups */ + overflow: visible; /* Ensure all content is visible */ +} + +/* Inner group for icon and label */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { + display: flex; + align-items: flex-start; /* Align content in this group to the top */ + gap: 5px; /* Space between icon and text */ + flex-shrink: 0; /* Prevent group from shrinking */ +} + +/* Style the image icon */ +.fast-facts-wrapper > .wp-block-group .wp-block-image img { + width: 20px; /* Fixed width */ + height: 20px; /* Fixed height */ + display: inline-block; + object-fit: contain; /* Ensure image doesn't stretch or distort */ +} + +/* Styling for the label (e.g., "Special Interests:") */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { + margin: 0; + white-space: nowrap; /* Prevent wrapping for label */ + vertical-align: middle; /* Align text with the middle of the icon */ + line-height: 1.2; /* Improve readability */ + display: inline-block; /* Keep text inline */ +} + +/* Styling for the flowing text */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { + display: flex; + flex-wrap: nowrap; /* Keep the text flowing inline */ + white-space: normal; /* Allow wrapping for text if it overflows */ + overflow-wrap: break-word; /* Ensure long words wrap correctly */ + word-break: break-word; /* Break long words when needed */ + flex: 1; /* Allow the container to use available space */ + align-items: flex-start; /* Ensure text starts at the top */ +} + +/* Specific styling for the text content */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { + white-space: normal; /* Allow wrapping for long text */ + overflow-wrap: break-word; /* Break words when needed */ + word-break: break-word; /* Break words on legacy browsers */ + line-height: 1.4; /* Improve readability */ + text-transform: capitalize; /* Capitalize text */ + padding: 0; /* Ensure no unnecessary padding */ + margin: 0; /* Remove extra margins */ + display: inline; /* Ensure the text flows inline with the label */ +} + +.facilities-list li::marker{display:none;} +.facilities-list{padding-left:0!important;} + +.facilities-list li { + margin-left: 10px; + list-style: none; /* Remove default list marker */ + position: relative; /* Position for pseudo-element */} + +.facilities-list li::before{ + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); /* Center the icon vertically */ + width: 20px; /* Adjust the size of the tick icon */ + height: 20px; + background-image: url('../img/tick.svg'); /* Replace with the path to your tick.svg */ + background-size: contain; + background-repeat: no-repeat; + left:-28px +} +@media (min-width: 800px) { +.single-tour-operator .toggle-button {display:none;} +} + +/* Optional: Responsive adjustments for smaller screens */ +@media (max-width: 768px) { + + /* Styling for the toggle button */ +.single-tour-operator .toggle-button { + display: inline-flex; + align-items: center; + padding: 5px; + background: none; + border: none; + cursor: pointer; + font-size: 14px; + color: var(--wp--preset--color--contrast); +} + +/* Styling for the SVG icons */ +.single-tour-operator .toggle-icon { + width: 16px; + height: 16px; + fill: var(--wp--preset--color--contrast); + margin-left: 5px; +} + +/* Collapsed state for the second wp-block-group */ +.single-tour-operator section.wp-block-group .wp-block-group.collapsed { + display: none; /* Hide the content */ +} + + + .fast-facts-wrapper > .wp-block-group { + flex-wrap: wrap; /* Allow wrapping for better readability */ + gap: 5px; + } + .fast-facts-wrapper > .wp-block-group .wp-block-group.is-layout-flex:last-child { + flex-wrap: wrap; /* Allow text to wrap on smaller screens */ + } +} \ No newline at end of file diff --git a/assets/img/tick.svg b/assets/img/tick.svg new file mode 100644 index 00000000..4f5503de --- /dev/null +++ b/assets/img/tick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/js/src/custom.js b/assets/js/src/custom.js index de2b1c5f..48bd6ddf 100755 --- a/assets/js/src/custom.js +++ b/assets/js/src/custom.js @@ -368,4 +368,52 @@ if ( window.location.hash ) { lsx_to.build_slider_lightbox(); } ); + document.addEventListener('DOMContentLoaded', function () { + // Select all sections within `.single-tour-operator` + const sections = document.querySelectorAll('.single-tour-operator section.wp-block-group'); + + sections.forEach(section => { + // Locate the first

within the section + const heading = section.querySelector('h2'); + // Locate the second div with the class wp-block-group + const toggleTarget = section.querySelectorAll('.wp-block-group')[1]; + + console.log('Processing Section:', section); // Debug + console.log('Found Heading:', heading); // Debug + console.log('Toggle Target:', toggleTarget); // Debug + + if (heading && toggleTarget) { + // Create a toggle button + const toggleButton = document.createElement('button'); + toggleButton.classList.add('toggle-button'); + toggleButton.innerHTML = ` + + + + + `; + + // Insert the button after the heading + heading.insertAdjacentElement('afterend', toggleButton); + + // Add click event listener to toggle visibility of the second wp-block-group + toggleButton.addEventListener('click', function () { + toggleTarget.classList.toggle('collapsed'); // Add or remove the collapsed class + + // Toggle the display of the up/down icons + const iconDown = toggleButton.querySelector('.icon-down'); + const iconUp = toggleButton.querySelector('.icon-up'); + + if (toggleTarget.classList.contains('collapsed')) { + iconDown.style.display = 'none'; + iconUp.style.display = 'inline'; + } else { + iconDown.style.display = 'inline'; + iconUp.style.display = 'none'; + } + }); + } + }); + }); + } )( jQuery, window, document ); From 0351ad929998ad82dc5c5a34701e4affd9552290 Mon Sep 17 00:00:00 2001 From: Warwick Booth Date: Wed, 11 Dec 2024 10:46:38 +0200 Subject: [PATCH 25/77] Adding in the missing slider code. Code was removed due to a merge failure Signed-off-by: Warwick Booth --- assets/js/src/custom.js | 102 +++++++++------------------------------- 1 file changed, 22 insertions(+), 80 deletions(-) diff --git a/assets/js/src/custom.js b/assets/js/src/custom.js index de2b1c5f..59795b2d 100755 --- a/assets/js/src/custom.js +++ b/assets/js/src/custom.js @@ -198,106 +198,48 @@ if ( window.location.hash ) { */ lsx_to.build_slider = function( window_width ) { $( '.lsx-to-slider .wp-block-post-template:not(.slider-disabled)' ).each( function() { - var $this = $( this ), - interval = $this.data( 'interval' ), - currentSettings = $this.data( 'slick' ), - autoplay = false, - autoplay_speed = 0; + var $this = $( this ); lsx_to.pre_build_slider( $this ); - if ( 'undefined' !== typeof interval && 'boolean' !== typeof interval ) { - interval = parseInt( interval ); - - if ( ! isNaN( interval ) ) { - autoplay = true; - autoplay_speed = interval; - } - } - - - let tabletSlidesToShow = lsx_to_params.slickSlider.tablet.slidesToShow; - let tabletSlidesToScroll = lsx_to_params.slickSlider.tablet.slidesToScroll; - - if ( 'undefined' !== typeof currentSettings && 'boolean' !== typeof currentSettings ) { - - // Tablet Settings. - if ( 'undefined' !== typeof currentSettings.tablet ) { - if ( 'undefined' !== typeof currentSettings.tablet.slidesToShow ) { - tabletSlidesToShow = currentSettings.tablet.slidesToShow; - } - if ( 'undefined' !== typeof currentSettings.tablet.slidesToShow ) { - tabletSlidesToScroll = currentSettings.tablet.slidesToScroll; - } - } - } - if ( 1 < $this.children.length ) { - console.log($this); $this.slick( { - draggable: lsx_to_params.slickSlider.desktop.draggable, - infinite: lsx_to_params.slickSlider.desktop.infinite, - swipe: lsx_to_params.slickSlider.desktop.swipe, - cssEase: lsx_to_params.slickSlider.desktop.cssEase, - dots: lsx_to_params.slickSlider.desktop.dots, - slidesToShow: lsx_to_params.slickSlider.desktop.slidesToShow, - slidesToScroll: lsx_to_params.slickSlider.desktop.slidesToScroll, - autoplay: autoplay, - autoplaySpeed: autoplay_speed, - appendArrows: $this.parent(), - appendDots: $this.parent(), + draggable: false, + infinite: true, + swipe: false, + dots: true, + slidesToShow: 3, + slidesToScroll: 1, + autoplay: false, + autoplaySpeed: 0, + //appendArrows: $this.parent(), + //appendDots: $this.parent(), responsive: [ { - breakpoint: lsx_to_params.slickSlider.tablet.breakpoint, + breakpoint: 1279, settings: { - slidesToShow: tabletSlidesToShow, - slidesToScroll: tabletSlidesToScroll, - draggable: lsx_to_params.slickSlider.tablet.draggable, - arrows: lsx_to_params.slickSlider.tablet.arrows, - swipe: lsx_to_params.slickSlider.tablet.swipe, + slidesToShow: 2, + slidesToScroll: 1, + draggable: false, + arrows: true, + swipe: false, } }, { breakpoint: lsx_to_params.slickSlider.mobile.breakpoint, settings: { - slidesToShow: lsx_to_params.slickSlider.mobile.slidesToShow, - slidesToScroll: lsx_to_params.slickSlider.mobile.slidesToScroll, - draggable: lsx_to_params.slickSlider.mobile.draggable, - arrows: lsx_to_params.slickSlider.mobile.arrows, - swipe: lsx_to_params.slickSlider.mobile.swipe + slidesToShow: 1, + slidesToScroll: 1, + draggable: true, + arrows: false, + swipe: true, } } ] } ); } } ); - - if ( window_width < 768 ) { - $( '.gallery' ).not('.slick-initialized').slick( { - slide: 'dl', - arrows: false, - draggable: true, - infinite: true, - swipe: true, - cssEase: 'ease-out', - dots: true, - autoplay: false, - responsive: [ - { - breakpoint: 99999, - settings: 'unslick' - }, - { - breakpoint: 768, - setting: { - slidesToShow: 1, - slidesToScroll: 1 - } - } - ] - } ); - } }; /** From 899f94451968a38b4097cda490aceeb0bf9eb2e7 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 12:38:12 +0200 Subject: [PATCH 26/77] Removing the destinations uneeded functions. --- .../classes/legacy/class-accommodation.php | 18 - includes/classes/legacy/class-tour.php | 24 -- includes/template-tags/accommodation.php | 44 --- includes/template-tags/destination.php | 314 ------------------ includes/template-tags/general.php | 117 +++---- includes/template-tags/tour.php | 241 -------------- tour-operator-bootstrap.php | 1 - 7 files changed, 55 insertions(+), 704 deletions(-) delete mode 100644 includes/template-tags/destination.php diff --git a/includes/classes/legacy/class-accommodation.php b/includes/classes/legacy/class-accommodation.php index b52874f2..803d2a07 100644 --- a/includes/classes/legacy/class-accommodation.php +++ b/includes/classes/legacy/class-accommodation.php @@ -73,16 +73,11 @@ private function __construct() { 'villa' => esc_html__( 'Villa', 'tour-operator' ), ); - add_filter( 'lsx_to_entry_class', array( $this, 'entry_class' ) ); - add_filter( 'lsx_to_custom_field_query', array( $this, 'price_filter' ), 5, 10 ); add_filter( 'lsx_to_custom_field_query', array( $this, 'rating' ), 5, 10 ); include( 'class-unit-query.php' ); - - add_action( 'lsx_to_map_meta', 'lsx_to_accommodation_meta' ); - add_action( 'lsx_to_modal_meta', 'lsx_to_accommodation_meta' ); } /** @@ -101,19 +96,6 @@ public static function get_instance() { return self::$instance; } - /** - * A filter to set the content area to a small column on single - */ - function entry_class( $classes ) { - global $post; - - if ( is_main_query() && is_singular( $this->slug ) ) { - $classes[] = 'col-xs-12 col-sm-12 col-md-7'; - } - - return $classes; - } - /** * Adds in additional info for the price custom field */ diff --git a/includes/classes/legacy/class-tour.php b/includes/classes/legacy/class-tour.php index bc527179..28bdb48f 100644 --- a/includes/classes/legacy/class-tour.php +++ b/includes/classes/legacy/class-tour.php @@ -73,8 +73,6 @@ private function __construct() { add_filter( 'lsx_to_custom_field_query', array( $this, 'rating' ), 10, 5 ); - add_action( 'lsx_to_modal_meta', array( $this, 'content_meta' ) ); - add_filter( 'body_class', array( $this, 'tour_classes' ), 10, 1 ); } @@ -207,28 +205,6 @@ public function rating( $html = '', $meta_key = false, $value = false, $before = return $html; } - /** - * Outputs the tour meta on the modal - */ - public function content_meta() { - if ( 'tour' === get_post_type() ) { - ?> - ', '' ); - lsx_to_duration( ' ', '' ); - the_terms( get_the_ID(), 'travel-style', ' ', ', ', '' ); - lsx_to_connected_countries( ' ', '', true ); - - if ( function_exists( 'lsx_to_connected_activities' ) ) { - lsx_to_connected_activities( ' ', '' ); - } - ?> - 'post', - 'to' => 'accommodation', - 'column' => '3', - 'before' => '

' . esc_html__( 'Featured Posts', 'tour-operator' ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); -} /** * Outputs the current accommodations room total @@ -293,30 +273,6 @@ function lsx_to_accommodation_activity_friendly( $before = '', $after = '', $ech } } -/** - * Outputs the accommodation meta - * - * @package tour-operator - * @subpackage template-tags - * @category accommodation - */ -function lsx_to_accommodation_meta() { - if ( 'accommodation' === get_post_type() ) { - $meta_class = 'lsx-to-meta-data lsx-to-meta-data-'; - - lsx_to_price( ' ', '' ); - lsx_to_accommodation_room_total( ' ', '' ); - lsx_to_accommodation_rating( ' ', '' ); - the_terms( get_the_ID(), 'travel-style', ' ', ', ', '' ); - the_terms( get_the_ID(), 'accommodation-brand', ' ', ', ', '' ); - the_terms( get_the_ID(), 'accommodation-type', ' ', ', ', '' ); - lsx_to_accommodation_spoken_languages( ' ', '' ); - lsx_to_accommodation_activity_friendly( ' ', '' ); - lsx_to_accommodation_special_interests( ' ', '' ); - lsx_to_connected_countries( ' ', '' ); - } -} - /** * Gets the current specials connected accommodation * diff --git a/includes/template-tags/destination.php b/includes/template-tags/destination.php deleted file mode 100644 index 57449a30..00000000 --- a/includes/template-tags/destination.php +++ /dev/null @@ -1,314 +0,0 @@ - 'post', - 'to' => 'destination', - 'column' => '3', - 'before' => '

' . esc_html__( 'Featured Posts', 'tour-operator' ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); -} - -/** - * Outputs the connected accommodation only on a "region" - * - * @package tour-operator - * @subpackage template-tags - * @category destination - */ -function lsx_to_region_accommodation() { - global $lsx_to_archive; - - if ( post_type_exists( 'accommodation' ) && is_singular( 'destination' ) && ! lsx_to_item_has_children( get_the_ID(), 'destination' ) ) { - $args = array( - 'from' => 'accommodation', - 'to' => 'destination', - 'column' => '3', - 'before' => '

' . lsx_to_get_post_type_section_title( 'accommodation', '', esc_html__( 'Featured Accommodation', 'tour-operator' ) ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); - } -} - -/** - * Outputs the destinations attached tours - * - * @package tour-operator - * @subpackage template-tags - * @category destination - */ -function lsx_to_destination_tours() { - global $lsx_to_archive, $wp_query; - - if ( post_type_exists( 'tour' ) && is_singular( 'destination' ) ) { - $args = array( - 'from' => 'tour', - 'to' => 'destination', - 'column' => '3', - 'before' => '

' . lsx_to_get_post_type_section_title( 'tour', '', esc_html__( 'Featured Tours', 'tour-operator' ) ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); - } -} - -/** - * Outputs the destinations attached activites - * - * @package tour-operator - * @subpackage template-tags - * @category destination - */ -function lsx_to_destination_activities() { - global $lsx_to_archive; - - if ( post_type_exists( 'activity' ) && is_singular( 'destination' ) && ! lsx_to_item_has_children( get_the_ID(), 'destination' ) ) { - $args = array( - 'from' => 'activity', - 'to' => 'destination', - // 'content_part' => 'widget-activity', - 'column' => '3', - 'before' => '

' . lsx_to_get_post_type_section_title( 'activity', '', esc_html__( 'Featured Activities', 'tour-operator' ) ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); - } -} - -/** - * Outputs the destination travel info - * - * @package tour-operator - * @subpackage template-tags - * @category destination - */ -function lsx_to_destination_travel_info() { - $electricity = get_post_meta( get_the_ID(), 'electricity', true ); - $banking = get_post_meta( get_the_ID(), 'banking', true ); - $cuisine = get_post_meta( get_the_ID(), 'cuisine', true ); - $climate = get_post_meta( get_the_ID(), 'climate', true ); - $transport = get_post_meta( get_the_ID(), 'transport', true ); - $dress = get_post_meta( get_the_ID(), 'dress', true ); - $health = get_post_meta( get_the_ID(), 'health', true ); - $safety = get_post_meta( get_the_ID(), 'safety', true ); - $visa = get_post_meta( get_the_ID(), 'visa', true ); - $general = get_post_meta( get_the_ID(), 'additional_info', true ); - - if ( ! empty( $electricity ) || ! empty( $banking ) || ! empty( $cuisine ) || ! empty( $climate ) || ! empty( $transport ) || ! empty( $dress ) || ! empty( $health ) || ! empty( $safety ) || ! empty( $visa ) || ! empty( $general ) ) : - $limit_words = 20; - $limit_chars = 150; - $more_button = "\n\n" . 'Read More' . "\n\n"; - - $items = array( - esc_html__( 'Electricity', 'tour-operator' ) => $electricity, - esc_html__( 'Banking', 'tour-operator' ) => $banking, - esc_html__( 'Cuisine', 'tour-operator' ) => $cuisine, - esc_html__( 'Climate', 'tour-operator' ) => $climate, - esc_html__( 'Transport', 'tour-operator' ) => $transport, - esc_html__( 'Dress', 'tour-operator' ) => $dress, - esc_html__( 'Health', 'tour-operator' ) => $health, - esc_html__( 'Safety', 'tour-operator' ) => $safety, - esc_html__( 'Visa', 'tour-operator' ) => $visa, - esc_html__( 'General', 'tour-operator' ) => $general, - ); - ?> -
-

>

- -
-
-
-
-
-
- $value ) : ?> - -
-
> - - -
-

- -

', ' - ', $value ); - $value = str_replace( array( '

', '

' ), '', $value ); - $value = str_replace( '
', ' - ', $value ); - - // if ( str_word_count( $value, 0 ) > $limit_chars ) { - // $tokens = array(); - // $value_output = ''; - // $has_more = false; - // $count = 0; - - // preg_match_all( '/(<[^>]+>|[^<>\s]+)\s*/u', $value, $tokens ); - - // foreach ( $tokens[0] as $token ) { - // if ( $count >= $limit_words ) { - // $value_output .= trim( $token ); - // $has_more = true; - // break; - // } - - // $count++; - // $value_output .= $token; - // } - - // $value = trim( force_balance_tags( $value_output . '...' ) ); - // } - - if ( strlen( $value ) > $limit_chars ) { - $position = strpos( $value, ' ', $limit_chars ); - $value_output = substr( $value, 0, $position ); - - $value = trim( force_balance_tags( $value_output . '...' ) ); - } - - $value = trim( force_balance_tags( $value . $more_button ) ); - - echo wp_kses_post( apply_filters( 'the_content', $value ) ); - ?> -

-
-
- - -
-
-
-
-
-
-
- $theid, - 'post_type' => 'destination', - ) ); - $meta_class = 'lsx-to-meta-data lsx-to-meta-data-'; - if ( $child->have_posts() ) { - $list_destinations = array(); - $final_list_destinations = ''; - echo ''; - while ( $child->have_posts() ) { - $child->the_post(); - $childtitle = get_the_title(); - $childlink = get_the_permalink(); - $list_destinations[] = ' ' . esc_attr( $childtitle ) . ''; - } - $final_list_destinations = implode( ', ', $list_destinations ); - echo wp_kses_post( $final_list_destinations ); - } else { - echo ''; - $parent_title = get_the_title( wp_get_post_parent_id( $theid ) ); - $parent_link = get_the_permalink( wp_get_post_parent_id( $theid ) ); - echo ' ' . esc_attr( $parent_title ) . ''; - } - echo ''; - wp_reset_postdata(); -} - -/** - * Gets the current best months to visit - * - * - * @package tour-operator - * @subpackage template-tags - * @category connections - */ - -function months_to_visit() { - $meta_class = 'lsx-to-meta-data lsx-to-meta-data-'; - $months = get_post_meta( get_the_ID(), 'best_time_to_visit', true ); - $month_list = array(); - - foreach ( (array) $months as $single_month ) { - $single_month = str_split( $single_month, 3 ); - $month_list[] = '' . $single_month[0] . - ''; - } - - if ( ! empty( $months ) ) { - echo ''; - echo ( implode( ', ', $month_list ) ); - echo ''; - } - -} diff --git a/includes/template-tags/general.php b/includes/template-tags/general.php index aeb27d07..d9773973 100644 --- a/includes/template-tags/general.php +++ b/includes/template-tags/general.php @@ -8,94 +8,87 @@ * @license GPL3 */ -/* ================== LAYOUT ================== */ +/** + * Used Functions + */ /** - * Returns the CSS class for the archive panels + * Outputs The current Itinerary connected destinations, can only be used in + * the itinerary loop. * - * @package tour-operator - * @subpackage template-tags - * @category class + * @package tour-operator + * @subpackage template-tags + * @category itinerary */ -function lsx_to_archive_class( $classes = array() ) { - $layout = tour_operator()->archive_layout; - - if ( ! is_array( $classes ) ) { - $classes = explode( ' ', $classes ); - } - - $new_classes = $classes; - - if ( 'grid' === $layout ) { - $new_classes[] = 'col-xs-12 col-sm-6 col-md-4'; - } else { - $new_classes[] = 'col-xs-12'; +function lsx_to_itinerary_room_basis( $before = '', $after = '', $echo = true ) { + global $tour_itinerary; + if ( $tour_itinerary && $tour_itinerary->has_itinerary && ! empty( $tour_itinerary->itinerary ) ) { + if ( ! empty( $tour_itinerary->itinerary['room_basis'] ) && 'None' !== $tour_itinerary->itinerary['room_basis'] ) { + $label = lsx_to_room_basis_label( $tour_itinerary->itinerary['room_basis'] ); + if ( $echo ) { + echo wp_kses_post( $before . $label . $after ); + } else { + return $before . $label . $after; + } + } } - - $new_classes = apply_filters( 'lsx_to_archive_class', $new_classes, $classes, $layout ); - - return implode( ' ', $new_classes ); + return ''; } /** - * Outputs the CSS class for the widget panels + * Return the Room basis Label. * - * @package tour-operator - * @subpackage template-tags - * @category class + * @param string $index + * @return string */ -function lsx_to_widget_class( $type = '', $return = false ) { - global $columns; - - $cols = 'col-xs-12 col-sm-'; - $cols .= '5' == $columns ? '15' : 12 / $columns; - - $class = 'lsx-to-widget-item-wrap lsx-' . $type . ' ' . $cols; - - if ( false === $return ) { - echo 'class="' . esc_attr( $class ) . '"'; - } else { - return 'class="' . $class . '"'; +function lsx_to_room_basis_label( $index = '' ) { + $label = $index; + if ( isset( tour_operator()->legacy->tour->room_basis[ $index ] ) ) { + $label = tour_operator()->legacy->tour->room_basis[ $index ]; } + return $label; } /** - * Outputs the 'content' class. + * Return the Drinks basis Label. * - * @param $classes string or array + * @param string $index + * @return string */ -function lsx_to_entry_class( $classes = false ) { - global $post; - - if ( false !== $classes ) { - if ( ! is_array( $classes ) ) { - $classes = explode( ' ', $classes ); - } - - $classes = apply_filters( 'lsx_to_entry_class', $classes, $post->ID ); +function lsx_to_drinks_basis_label( $index = '' ) { + $label = $index; + if ( isset( tour_operator()->legacy->tour->drinks_basis[ $index ] ) ) { + $label = tour_operator()->legacy->tour->drinks_basis[ $index ]; } - - echo wp_kses_post( 'class="' . implode( ' ', $classes ) . '"' ); + return $label; } /** - * Outputs the 'content' class. + * Outputs The current Itinerary connected destinations, can only be used in + * the itinerary loop. * - * @param $classes string or array + * @package tour-operator + * @subpackage template-tags + * @category itinerary */ -function lsx_to_column_class( $classes = false ) { - global $post; - - if ( false !== $classes ) { - if ( ! is_array( $classes ) ) { - $classes = explode( ' ', $classes ); +function lsx_to_itinerary_drinks_basis( $before = '', $after = '', $echo = true ) { + global $tour_itinerary; + if ( $tour_itinerary && $tour_itinerary->has_itinerary && ! empty( $tour_itinerary->itinerary ) ) { + if ( ! empty( $tour_itinerary->itinerary['drinks_basis'] ) && 'None' !== $tour_itinerary->itinerary['drinks_basis'] ) { + $label = lsx_to_drinks_basis_label( $tour_itinerary->itinerary['drinks_basis'] ); + if ( $echo ) { + echo wp_kses_post( $before . $label . $after ); + } else { + return $before . $label . $after; + } } - $classes = apply_filters( 'lsx_to_column_class', $classes, $post->ID ); } - - echo wp_kses_post( 'class="' . implode( ' ', $classes ) . '"' ); + return ''; } + +// ============ OLD Functions ============ + /** * Returns the collapsible class if it is active. * diff --git a/includes/template-tags/tour.php b/includes/template-tags/tour.php index b5082698..9ecb2b3a 100644 --- a/includes/template-tags/tour.php +++ b/includes/template-tags/tour.php @@ -8,27 +8,6 @@ * @license GPL3 */ -/** - * Outputs the posts attached tours - * - * @package tour-operator - * @subpackage template-tags - * @category tour - */ -function lsx_to_tour_posts() { - global $lsx_to_archive; - - $args = array( - 'from' => 'post', - 'to' => 'tour', - 'column' => '3', - 'before' => '

' . esc_html__( 'Featured Posts', 'tour-operator' ) . '

', - 'after' => '
', - ); - - lsx_to_connected_panel_query( $args ); -} - /** * Gets the current tours price * @@ -155,226 +134,6 @@ function lsx_to_end_point( $before = '', $after = '', $echo = true ) { } } -/** - * Outputs the tours included / not included block - * - * @package tour-operator - * @subpackage template-tags - * @category tour - */ -function lsx_to_included_block() { - $tour_included = lsx_to_included( '', '', false ); - $tour_not_included = lsx_to_not_included( '', '', false ); - - if ( null !== $tour_included || null !== $tour_not_included ) { - $class = 'col-xs-12 col-sm-6'; - - if ( ( null === $tour_included && null !== $tour_not_included ) || ( null !== $tour_included && null === $tour_not_included ) ) { - $class = 'col-xs-12'; - } - ?> -
- - -
-
-
- -
-

-
- -
-
- -
-

-
- -
-
- -
-
-
-
- ' . apply_filters( 'the_content', wpautop( $highlights ) ) . '

' . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - -/** - * Outputs the Best Time to Visit HTML - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category tour - */ -function lsx_to_best_time_to_visit( $before = '', $after = '', $echo = true ) { - $best_time_to_visit = get_post_meta( get_the_ID(), 'best_time_to_visit', true ); - - if ( false !== $best_time_to_visit && '' !== $best_time_to_visit && is_array( $best_time_to_visit ) && ! empty( $best_time_to_visit ) ) { - $this_year = array( - 'january' => esc_html__( 'January', 'tour-operator' ), - 'february' => esc_html__( 'February', 'tour-operator' ), - 'march' => esc_html__( 'March', 'tour-operator' ), - 'april' => esc_html__( 'April', 'tour-operator' ), - 'may' => esc_html__( 'May', 'tour-operator' ), - 'june' => esc_html__( 'June', 'tour-operator' ), - 'july' => esc_html__( 'July', 'tour-operator' ), - 'august' => esc_html__( 'August', 'tour-operator' ), - 'september' => esc_html__( 'September', 'tour-operator' ), - 'october' => esc_html__( 'October', 'tour-operator' ), - 'november' => esc_html__( 'November', 'tour-operator' ), - 'december' => esc_html__( 'December', 'tour-operator ' ), - ); - - foreach ( $this_year as $month => $label ) { - $checked = ''; - $checked_class = ''; - - if ( in_array( $month, $best_time_to_visit ) ) { - $checked = ''; - $checked_class = 'lsx-to-month-check'; - } - - $shortname = str_split( $label, 3 ); - $best_times[] = '
' . $shortname[0] . '' . $checked . '
'; - }; - - $return = $before . implode( $best_times ) . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - -/** - * Gets the current specials connected tours - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category connections - */ -function lsx_to_connected_tours( $before = '', $after = '', $echo = true ) { - lsx_to_connected_items_query( 'tour', get_post_type(), $before, $after, $echo ); -} - -/** - * Return the Room basis Label. - * - * @param string $index - * @return string - */ -function lsx_to_room_basis_label( $index = '' ) { - $label = $index; - if ( isset( tour_operator()->legacy->tour->room_basis[ $index ] ) ) { - $label = tour_operator()->legacy->tour->room_basis[ $index ]; - } - return $label; -} - -/** - * Outputs The current Itinerary connected destinations, can only be used in - * the itinerary loop. - * - * @package tour-operator - * @subpackage template-tags - * @category itinerary - */ -function lsx_to_itinerary_room_basis( $before = '', $after = '', $echo = true ) { - global $tour_itinerary; - if ( $tour_itinerary && $tour_itinerary->has_itinerary && ! empty( $tour_itinerary->itinerary ) ) { - if ( ! empty( $tour_itinerary->itinerary['room_basis'] ) && 'None' !== $tour_itinerary->itinerary['room_basis'] ) { - $label = lsx_to_room_basis_label( $tour_itinerary->itinerary['room_basis'] ); - if ( $echo ) { - echo wp_kses_post( $before . $label . $after ); - } else { - return $before . $label . $after; - } - } - } - return ''; -} - -/** - * Return the Drinks basis Label. - * - * @param string $index - * @return string - */ -function lsx_to_drinks_basis_label( $index = '' ) { - $label = $index; - if ( isset( tour_operator()->legacy->tour->drinks_basis[ $index ] ) ) { - $label = tour_operator()->legacy->tour->drinks_basis[ $index ]; - } - return $label; -} - -/** - * Outputs The current Itinerary connected destinations, can only be used in - * the itinerary loop. - * - * @package tour-operator - * @subpackage template-tags - * @category itinerary - */ -function lsx_to_itinerary_drinks_basis( $before = '', $after = '', $echo = true ) { - global $tour_itinerary; - if ( $tour_itinerary && $tour_itinerary->has_itinerary && ! empty( $tour_itinerary->itinerary ) ) { - if ( ! empty( $tour_itinerary->itinerary['drinks_basis'] ) && 'None' !== $tour_itinerary->itinerary['drinks_basis'] ) { - $label = lsx_to_drinks_basis_label( $tour_itinerary->itinerary['drinks_basis'] ); - if ( $echo ) { - echo wp_kses_post( $before . $label . $after ); - } else { - return $before . $label . $after; - } - } - } - return ''; -} - /** * Retrieves the accommodation ids from the itinerary, mostly for use in the map. * the itinerary loop. diff --git a/tour-operator-bootstrap.php b/tour-operator-bootstrap.php index 2a399c4d..508bb1c9 100644 --- a/tour-operator-bootstrap.php +++ b/tour-operator-bootstrap.php @@ -27,7 +27,6 @@ require_once( LSX_TO_PATH . 'includes/template-tags/helpers.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/addons.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/accommodation.php' ); - require_once( LSX_TO_PATH . 'includes/template-tags/destination.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/tour.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/maps.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/videos.php' ); From 6bf43de40998a58067511da538e1b8de51519fcd Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 12:41:40 +0200 Subject: [PATCH 27/77] Removing the uneeded general functions --- includes/classes/legacy/class-frontend.php | 1 - .../classes/legacy/class-tour-operator.php | 45 -- includes/template-tags/general.php | 500 ------------------ 3 files changed, 546 deletions(-) diff --git a/includes/classes/legacy/class-frontend.php b/includes/classes/legacy/class-frontend.php index e0ebbe06..7abd75d9 100644 --- a/includes/classes/legacy/class-frontend.php +++ b/includes/classes/legacy/class-frontend.php @@ -63,7 +63,6 @@ public function __construct() { add_filter( 'lsx_to_connected_list_item', array( $this, 'add_modal_attributes' ), 10, 3 ); add_action( 'wp_footer', array( $this, 'output_modals' ), 10 ); - add_filter( 'lsx_to_tagline', array( $this, 'get_tagline' ), 1, 3 ); // add_filter( 'the_terms', array( $this, 'links_new_window' ), 10, 2 ); $this->maps = Maps::get_instance(); diff --git a/includes/classes/legacy/class-tour-operator.php b/includes/classes/legacy/class-tour-operator.php index 07bf4a4b..37a3ea4d 100644 --- a/includes/classes/legacy/class-tour-operator.php +++ b/includes/classes/legacy/class-tour-operator.php @@ -470,51 +470,6 @@ public function taxonomies_filter( $taxonomies ) { return $taxonomies; } - /** - * A filter that outputs the tagline for the current page. - * - * @param string|bool $tagline Tagline to use or false to use internal. - * @param string $before Before code. - * @param string $after After code. - * - * @return string HTML tagline string. - */ - public function get_tagline( $tagline = false, $before = '', $after = '' ) { - $post_id = get_the_ID(); - - if ( ! empty( $post_id ) ) { - $post_id = get_the_ID(); - $tagline_value = get_post_meta( $post_id, 'banner_subtitle', true ); - - if ( false !== $tagline_value ) { - $tagline = $tagline_value; - } else { - $tagline_value = get_post_meta( $post_id, 'tagline', true ); - - if ( false !== $tagline_value ) { - $tagline = $tagline_value; - } - } - } else { - $post_type = get_query_var( 'post_type' ); - - if ( is_post_type_archive( $this->active_post_types ) && isset( $this->options[ $post_type ] ) && isset( $this->options[ $post_type ]['tagline'] ) ) { - $tagline = $this->options[ $post_type ]['tagline']; - } elseif ( is_tax( array_keys( $this->taxonomies ) ) ) { - $taxonomy_tagline = get_term_meta( get_queried_object_id(), 'tagline', true ); - if ( false !== $taxonomy_tagline && '' !== $taxonomy_tagline ) { - $tagline = $taxonomy_tagline; - } - } - } - - if ( false !== $tagline && '' !== $tagline ) { - $tagline = $before . $tagline . $after; - } - - return $tagline; - } - /** * checks which plugin is active, and grabs those forms. */ diff --git a/includes/template-tags/general.php b/includes/template-tags/general.php index d9773973..bb946a53 100644 --- a/includes/template-tags/general.php +++ b/includes/template-tags/general.php @@ -85,503 +85,3 @@ function lsx_to_itinerary_drinks_basis( $before = '', $after = '', $echo = true } return ''; } - - -// ============ OLD Functions ============ - -/** - * Returns the collapsible class if it is active. - * - * @param bool $post_type - * @param bool $return - * @return string - */ -function lsx_to_collapsible_class( $post_type = false, $return = true ) { - if ( false === $post_type ) { - $post_type = get_post_type(); - } - if ( ! lsx_to_is_collapsible( $post_type ) ) { - - $output = 'lsx-to-collapse-section'; - if ( false === $return ) { - echo esc_attr( $output ); - } else { - return $output; - } - } -} - -/** - * Returns the collapsible class if it is active. - * - * @param bool $target - * @param bool $post_type - * @param bool $return - * @return string - */ -function lsx_to_collapsible_attributes( $target = false, $post_type = false, $return = true ) { - if ( false === $post_type ) { - $post_type = get_post_type(); - } - if ( ! lsx_to_is_collapsible( $post_type ) ) { - $output = 'data-toggle="collapse" data-target="#' . $target . '"'; - if ( false === $return ) { - echo esc_attr( $output ); - } else { - return $output; - } - } -} - -function lsx_to_collapsible_attributes_not_post( $target = false, $return = true ) { - //$output = 'data-toggle="collapse" data-target="#' . $target . '"'; - $output = 'data-toggle='; - $output .= 'collapse'; - $output .= ' '; - $output .= 'data-target='; - $output .= '#' . $target; - echo esc_attr( $output ); -} - -/* ================== HEADER ================== */ - -/** - * Global header. - * - * @package tour-operator - * @subpackage template-tag - * @category header - */ -function lsx_to_global_header() { - $default_size = 'sm'; - $size = apply_filters( 'lsx_bootstrap_column_size', $default_size ); - ?> -
-
-

- -

- - ', '

' ); ?> -
- - -
-
', '
' ) ); -} - - -/* ================== SINGLE ================== */ - -/** - * Outputs the Single pages navigation - * - * @param $echo - * @return string - * - * @package tour-operator - * @subpackage template-tag - * @category navigation - */ -function lsx_to_page_navigation( $echo = true ) { - $page_links = array(); - - if ( is_single() ) { - $page_links['summary'] = esc_html__( 'Summary', 'tour-operator' ); - } - - // Allow 3rd party plugins and themes to disable the page links. - if ( apply_filters( 'lsx_to_page_navigation_disable', false, get_post_type() ) ) { - return false; - } - - $page_links = apply_filters( 'lsx_to_page_navigation', $page_links ); - - if ( ! empty( $page_links ) && count( $page_links ) > 1 ) { - $return = '
'; - $return .= ''; - $return .= '
'; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - -/** - * outputs the sharing - * - * @package tour-operator - * @subpackage setup - * @category helper - */ -function lsx_to_sharing() { - echo '
'; - - if ( class_exists( 'LSX_Sharing' ) ) { - global $lsx_sharing; - echo wp_kses_post( $lsx_sharing->sharing_buttons() ); - } else { - if ( function_exists( 'sharing_display' ) ) { - sharing_display( '', true ); - } - - if ( class_exists( 'Jetpack_Likes' ) ) { - $custom_likes = new Jetpack_Likes(); - echo wp_kses_post( $custom_likes->post_likes( '' ) ); - } - } - - echo '
'; -} - -/* ================== TAXONOMIES ================== */ - -/** - * Outputs the widget with some styling - * - * @package tour-operator - * @subpackage template-tags - * @category helper - */ -function lsx_to_safari_brands( $before = '', $after = '', $echo = true ) { - $args = array( - 'name' => 'Home', - 'id' => 'sidebar-home', - 'description' => '', - 'class' => '', - 'before_widget' => '', - 'before_title' => '

', - 'after_title' => '

', - 'widget_id' => 'lsx_to_taxonomy_widget-6', - 'widget_name' => 'LSX Taxonomies', - ); - $instance = array( - 'title' => '', - 'title_link' => '', - 'columns' => '4', - 'orderby' => 'menu_order', - 'order' => 'ASC', - 'limit' => '100', - 'include' => '', - 'size' => '100', - 'buttons' => '', - 'button_text' => '', - 'responsive' => '1', - 'carousel' => '1', - 'taxonomy' => 'accommodation-brand', - 'class' => '', - 'interval' => '7000', - 'indicators' => '1', - ); - $safari_brands = new \lsx\legacy\Taxonomy_Widget(); - ob_start(); - $safari_brands->widget( $args, $instance ); - $return = ob_get_clean(); - $return = $before . $return . $after; - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } -} - -/** - * Outputs the travel styles widget with some styling - * - * @package tour-operator - * @subpackage template-tags - * @category helper - */ -function lsx_to_travel_styles( $before = '', $after = '', $echo = true ) { - $args = array( - 'name' => 'Home', - 'id' => 'sidebar-home', - 'description' => '', - 'class' => '', - 'before_widget' => '', - 'before_title' => '

', - 'after_title' => '

', - 'widget_id' => 'lsx_to_taxonomy_widget-6', - 'widget_name' => 'LSX Taxonomies', - ); - $instance = array( - 'title' => '', - 'title_link' => '', - 'columns' => '3', - 'orderby' => 'rand', - 'order' => 'DESC', - 'limit' => '100', - 'include' => '', - 'size' => '100', - 'buttons' => '', - 'button_text' => '', - 'responsive' => '1', - 'carousel' => '1', - 'taxonomy' => 'travel-style', - 'class' => '', - 'interval' => '7000', - 'indicators' => '1', - ); - $travel_styles = new \lsx\legacy\Taxonomy_Widget(); - ob_start(); - $travel_styles->widget( $args, $instance ); - $return = ob_get_clean(); - $return = $before . $return . $after; - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } -} - -/* ================== ENQUIRE ================== */ -/** - * Test if Enquire Contact exists - * - * @return boolean - * @package tour-operator - */ -function lsx_to_has_enquiry_contact() { - $tour_operator = tour_operator(); - - $has_enquiry_contact = false; - - if ( function_exists( 'lsx_to_has_team_member' ) ) { - $has_enquiry_contact = lsx_to_has_team_member(); - } - - if ( false === $has_enquiry_contact && isset( $tour_operator->options['general'] ) ) { - if ( isset( $tour_operator->options['general']['enquiry_contact_name'] ) && '' !== $tour_operator->options['general']['enquiry_contact_name'] ) { - $has_enquiry_contact = true; - } - - // First set the general form - if ( isset( $tour_operator->options['general']['enquiry'] ) && '' !== $tour_operator->options['general']['enquiry'] ) { - $has_enquiry_contact = true; - } - } - - return $has_enquiry_contact; -} -/** - * Display Enquire Contact - * - * @return void - * @package tour-operator - */ -function lsx_to_enquiry_contact( $before = '', $after = '' ) { - $tour_operator = tour_operator(); - - $fields = array( - 'enquiry_contact_name' => '', - 'enquiry_contact_email' => '', - 'enquiry_contact_phone' => '', - 'enquiry_contact_image_id' => '', - 'enquiry_contact_image' => '', - ); - - foreach ( $fields as $key => $field ) { - if ( isset( $tour_operator->options['general'] ) && isset( $tour_operator->options['general'][ $key ] ) ) { - $fields[ $key ] = $tour_operator->options['general'][ $key ]; - } - } - - if ( ! empty( $fields['enquiry_contact_image_id'] ) ) { - $temp_src_array = wp_get_attachment_image_src( $fields['enquiry_contact_image_id'], 'medium' ); - - if ( is_array( $temp_src_array ) && count( $temp_src_array ) > 0 ) { - $fields['enquiry_contact_image'] = $temp_src_array[0]; - } - } - - echo wp_kses_post( $before ); - ?> -
> - -
- ' ); ?> -
- - -
- Your travel expert: -

-
- - -
- options['general'] ) && isset( $tour_operator->options['general']['enquiry'] ) && '' !== $tour_operator->options['general']['enquiry'] ) { - $form_id = $tour_operator->options['general']['enquiry']; - } - - if ( is_singular( $tour_operator->active_post_types ) ) { - if ( isset( $tour_operator->options[ get_post_type() ] ) && isset( $tour_operator->options[ get_post_type() ]['enquiry'] ) && '' !== $tour_operator->options[ get_post_type() ]['enquiry'] ) { - $form_id = $tour_operator->options[ get_post_type() ]['enquiry']; - } - } - if ( is_archive( $tour_operator->active_post_types ) ) { - if ( isset( $tour_operator->options[ get_post_type() ] ) && isset( $tour_operator->options[ get_post_type() ]['enquiry'] ) && '' !== $tour_operator->options[ get_post_type() ]['enquiry'] ) { - $form_id = $tour_operator->options[ get_post_type() ]['enquiry']; - } - } - } - - $link = '#'; - - if ( isset( $tour_operator->options['general'] ) && isset( $tour_operator->options['general']['disable_enquire_modal'] ) && 'on' === $tour_operator->options['general']['disable_enquire_modal'] ) { - if ( isset( $tour_operator->options['general']['enquire_link'] ) && '' !== $tour_operator->options['general']['enquire_link'] ) { - $link = $tour_operator->options['general']['enquire_link']; - } - } - - if ( is_singular( $tour_operator->active_post_types ) ) { - if ( isset( $tour_operator->options[ get_post_type() ] ) && isset( $tour_operator->options[ get_post_type() ]['disable_enquire_modal'] ) && 'on' === $tour_operator->options[ get_post_type() ]['disable_enquire_modal'] ) { - $disable_modal = true; - if ( isset( $tour_operator->options[ get_post_type() ]['enquire_link'] ) && '' !== $tour_operator->options[ get_post_type() ]['enquire_link'] ) { - $link = $tour_operator->options[ get_post_type() ]['enquire_link']; - } - } - } - - if ( false !== $form_id ) { - ?> - - 'post_type', - 'label' => __( 'Destinations', 'lsx' ), - 'heirarchy' => true, - ); - - return $sitemap_loops; - } - add_filter( 'lsx_sitemap_loops_list', 'to_sitemap_loops', 1 ); -} From 2c447b815489e5785a4a8b97674ca37ac0c4a4dd Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 12:58:30 +0200 Subject: [PATCH 28/77] Removing the uneeded function --- includes/template-tags/addons.php | 25 ----- includes/template-tags/general.php | 108 ++++++++++++++++++ includes/template-tags/tour.php | 173 ----------------------------- includes/template-tags/videos.php | 115 ------------------- 4 files changed, 108 insertions(+), 313 deletions(-) delete mode 100644 includes/template-tags/addons.php delete mode 100644 includes/template-tags/tour.php delete mode 100644 includes/template-tags/videos.php diff --git a/includes/template-tags/addons.php b/includes/template-tags/addons.php deleted file mode 100644 index ced10d49..00000000 --- a/includes/template-tags/addons.php +++ /dev/null @@ -1,25 +0,0 @@ -has_itinerary() ) { + $itinerary_count = 1; + while ( $tour_itinerary->while_itinerary() ) { + $tour_itinerary->current_itinerary_item(); + + if ( ! empty( $tour_itinerary->itinerary[ $meta_key ] ) && '' !== $tour_itinerary->itinerary[ $meta_key] ) { + if ( ! is_array( $tour_itinerary->itinerary[ $meta_key ] ) ) { + $d_ids = array( $tour_itinerary->itinerary[ $meta_key ] ); + } else { + $d_ids = $tour_itinerary->itinerary[ $meta_key ]; + } + $itinerary_ids = array_merge( $itinerary_ids, array_values( $d_ids ) ); + } + } + } + return $itinerary_ids; +} + +// ============== Accommodation ================ +/** + * Outputs the accommodations facilities + * + * @param $before | string + * @param $after | string + * @param $echo | boolean + * @return string + * + * @package tour-operator + * @subpackage template-tags + * @category accommodation + */ +function lsx_to_accommodation_facilities( $before = '', $after = '', $echo = true ) { + $args = []; + $facilities = wp_get_object_terms( get_the_ID(), 'facility' ); + $main_facilities = []; + $child_facilities = []; + $return = ''; + + if ( ! empty( $facilities ) && ! is_wp_error( $facilities ) ) { + foreach ( $facilities as $facility ) { + if ( 0 === $facility->parent ) { + $main_facilities[] = $facility; + } else { + $child_facilities[ $facility->parent ][] = $facility; + } + } + + //Output in the order we want + if ( count( $main_facilities ) > 0 && count( $child_facilities ) > 0 ) { + $return .= '
'; + foreach ( $main_facilities as $heading ) { + if ( isset( $child_facilities[ $heading->term_id ] ) ) { + $return .= '
+

' . esc_html( $heading->name ) . ''; + $return .= '

'; + $return .= '
'; + } + } + $return .= '
'; + + if ( ! empty( $return ) ) { + $return = $before . $return . $after; + + if ( $echo ) { + echo wp_kses_post( $return ); + } else { + return $return; + } + } + } else { + return false; + } + } else { + return false; + } +} diff --git a/includes/template-tags/tour.php b/includes/template-tags/tour.php deleted file mode 100644 index 9ecb2b3a..00000000 --- a/includes/template-tags/tour.php +++ /dev/null @@ -1,173 +0,0 @@ - 0 ) { - $connected_list = lsx_to_connected_list( $departs_from, 'destination', true, ', ' ); - if ( false !== $options && isset( $options[ 'destination' ] ) && isset( $options[ 'destination' ]['disable_single_region'] ) ) { - $connected_list = strip_tags( $connected_list ); - } - $return = $before . $connected_list . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - -/** - * Gets the current tours end points - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category tour - */ -function lsx_to_end_point( $before = '', $after = '', $echo = true ) { - $end_point = get_post_meta( get_the_ID(), 'ends_in', false ); - $options = get_option( '_lsx-to_settings', false ); - - if ( ! empty( $end_point ) && is_array( $end_point ) && count( $end_point ) > 0 ) { - $connected_list = lsx_to_connected_list( $end_point, 'destination', true, ', ' ); - if ( false !== $options && isset( $options[ 'destination' ] ) && isset( $options[ 'destination' ]['disable_single_region'] ) ) { - $connected_list = strip_tags( $connected_list ); - } - $return = $before . $connected_list . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - -/** - * Retrieves the accommodation ids from the itinerary, mostly for use in the map. - * the itinerary loop. - * - * @package tour-operator - * @subpackage template-tags - * @category itinerary - * - * @param string $meta_key - * @param string $supress_filters - * @return array - */ -function lsx_to_get_tour_itinerary_ids( $meta_key = 'accommodation_to_tour', $supress_filters = false ) { - $tour_itinerary = new \lsx\legacy\Itinerary_Query(); - $itinerary_ids = array(); - - if ( false === $supress_filters ) { - $meta_key = apply_filters( 'lsx_to_get_itinerary_ids_meta_key', $meta_key ); - } - - if ( $tour_itinerary->has_itinerary() ) { - $itinerary_count = 1; - while ( $tour_itinerary->while_itinerary() ) { - $tour_itinerary->current_itinerary_item(); - - if ( ! empty( $tour_itinerary->itinerary[ $meta_key ] ) && '' !== $tour_itinerary->itinerary[ $meta_key] ) { - if ( ! is_array( $tour_itinerary->itinerary[ $meta_key ] ) ) { - $d_ids = array( $tour_itinerary->itinerary[ $meta_key ] ); - } else { - $d_ids = $tour_itinerary->itinerary[ $meta_key ]; - } - $itinerary_ids = array_merge( $itinerary_ids, array_values( $d_ids ) ); - } - } - } - return $itinerary_ids; -} diff --git a/includes/template-tags/videos.php b/includes/template-tags/videos.php deleted file mode 100644 index 1856639d..00000000 --- a/includes/template-tags/videos.php +++ /dev/null @@ -1,115 +0,0 @@ -'; - $content .= '
'; - $content .= '
'; - $content .= '
'; - - foreach ( $videos as $video ) { - $content .= '
'; - $content .= '
'; - - if ( isset( $video['url'] ) && '' !== $video['url'] ) { - $content .= '
'; - - $embed_key = 'to_videos_embed_' . sanitize_title( $video['url'] ); - $embed = get_transient( $embed_key ); - - if ( false === $embed ) { - $embed = wp_oembed_get( $video['url'], array( - 'class' => 'embed-responsive-item', - ) ); - - if ( ! empty( $embed ) ) { - set_transient( $embed_key, $embed, ( 24 * 60 * 60 ) ); - } - } - - $content .= $embed; - $content .= '
'; - - $has_content = ( isset( $video['title'] ) && '' !== $video['title'] ) || ( isset( $video['description'] ) && '' !== $video['description'] ); - - if ( $has_content ) { - $content .= '
'; - - if ( isset( $video['title'] ) && '' !== $video['title'] ) { - $content .= '

' . $video['title'] . '

'; - } - - if ( isset( $video['description'] ) && '' !== $video['description'] ) { - $content .= apply_filters( 'the_content', $video['description'] ); - } - - $content .= '
'; - } - } - - $content .= '
'; - $content .= '
'; - } - - $content .= '
'; - $content .= '
'; - $content .= '
'; - $content .= '
'; - - $return = $content; - } - - $protocol = is_ssl() ? 'https' : 'http'; - $return = preg_replace( '/href="\/\//i', 'href="' . $protocol . '://', $return ); - - $return = $before . $return . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } - } -} From 54aea351e6dfbc9edc0b087b904130db051924ec Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 14:18:46 +0200 Subject: [PATCH 29/77] Removing the uneeded code. --- includes/classes/legacy/class-frontend.php | 77 ------ includes/template-tags/accommodation.php | 290 --------------------- includes/template-tags/helpers.php | 2 +- tour-operator-bootstrap.php | 4 - 4 files changed, 1 insertion(+), 372 deletions(-) delete mode 100644 includes/template-tags/accommodation.php diff --git a/includes/classes/legacy/class-frontend.php b/includes/classes/legacy/class-frontend.php index 7abd75d9..87b499e3 100644 --- a/includes/classes/legacy/class-frontend.php +++ b/includes/classes/legacy/class-frontend.php @@ -53,7 +53,6 @@ public function __construct() { $this->set_vars(); add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_stylescripts' ), 1 ); - add_action( 'wp_head', array( $this, 'wp_head' ), 10 ); add_filter( 'body_class', array( $this, 'body_class' ), 15, 1 ); if ( ! is_admin() ) { @@ -61,9 +60,6 @@ public function __construct() { add_filter( 'posts_orderby', array( $this, 'enable_continent_taxonomy_order' ), 10, 2 ); } - add_filter( 'lsx_to_connected_list_item', array( $this, 'add_modal_attributes' ), 10, 3 ); - add_action( 'wp_footer', array( $this, 'output_modals' ), 10 ); - // add_filter( 'the_terms', array( $this, 'links_new_window' ), 10, 2 ); $this->maps = Maps::get_instance(); @@ -75,78 +71,6 @@ public function __construct() { add_filter( 'wpseo_breadcrumb_links', array( $this, 'wpseo_breadcrumb_links' ), 20 ); } - /** - * Initate some boolean flags - */ - public function wp_head() { - if ( ( is_singular( $this->active_post_types ) || is_post_type_archive( $this->active_post_types ) ) - && false !== $this->options - && isset( $this->options['display']['enable_modals'] ) - && 'on' === $this->options['display']['enable_modals'] - ) { - $this->enable_modals = true; - } - } - - /** - * a filter to overwrite the links with modal tags. - */ - public function add_modal_attributes( $html, $post_id, $link ) { - if ( true === $this->enable_modals && true === $link ) { - $html = '' . get_the_title( $post_id ) . ''; - - if ( ! in_array( $post_id, $this->modal_ids ) ) { - $this->modal_ids[] = $post_id; - } - } - - return $html; - } - - /** - * a filter to overwrite the links with modal tags. - */ - public function output_modals() { - global $lsx_to_archive, $post; - - if ( true === $this->enable_modals && ! empty( $this->modal_ids ) ) { - $temp = $lsx_to_archive; - $lsx_to_archive = 1; - - foreach ( $this->modal_ids as $post_id ) { - $post = get_post( $post_id ); - ?> - - - - post_types && is_singular( array_keys( $this->post_types ) ) ) { $classes[] = 'single-tour-operator'; } elseif ( false !== $this->post_types && is_post_type_archive( array_keys( $this->post_types ) ) ) { diff --git a/includes/template-tags/accommodation.php b/includes/template-tags/accommodation.php deleted file mode 100644 index 83e7bb99..00000000 --- a/includes/template-tags/accommodation.php +++ /dev/null @@ -1,290 +0,0 @@ -parent ) { - $main_facilities[] = $facility; - } else { - $child_facilities[ $facility->parent ][] = $facility; - } - } - - set_transient( get_the_ID() . '_facilities', $location, 30 ); - } - } else { - return false; - } -} - -/** - * Outputs the accommodations facilities - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category accommodation - */ -function lsx_to_accommodation_facilities( $before = '', $after = '', $echo = true ) { - $args = []; - $facilities = wp_get_object_terms( get_the_ID(), 'facility' ); - $main_facilities = []; - $child_facilities = []; - $return = ''; - - if ( ! empty( $facilities ) && ! is_wp_error( $facilities ) ) { - foreach ( $facilities as $facility ) { - if ( 0 === $facility->parent ) { - $main_facilities[] = $facility; - } else { - $child_facilities[ $facility->parent ][] = $facility; - } - } - - //Output in the order we want - if ( count( $main_facilities ) > 0 && count( $child_facilities ) > 0 ) { - $return .= '
'; - foreach ( $main_facilities as $heading ) { - if ( isset( $child_facilities[ $heading->term_id ] ) ) { - $return .= '
-

' . esc_html( $heading->name ) . ''; - $return .= '

'; - $return .= '
'; - } - } - $return .= '
'; - - if ( ! empty( $return ) ) { - $return = $before . $return . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } - } else { - return false; - } - } else { - return false; - } -} - -/** - * Outputs the Spoken Languages HTML - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category accommodation - */ -function lsx_to_accommodation_spoken_languages( $before = '', $after = '', $echo = true ) { - $spoken_languages = get_post_meta( get_the_ID(), 'spoken_languages', true ); - - if ( is_string( $spoken_languages ) && ! empty( $spoken_languages ) ) { - $spoken_languages = array( $spoken_languages ); - } - - $return = ''; - - if ( ! empty( $spoken_languages ) && ! is_wp_error( $spoken_languages ) ) { - foreach ( $spoken_languages as $i => $spoken_language ) { - $return .= ucwords( str_replace( '_', ' / ', str_replace( '-', ' ', str_replace( '-and-', ' & ', $spoken_language ) ) ) ); - - if ( ( $i + 1 ) < count( $spoken_languages ) ) { - $return .= ', '; - } - } - $return = $before . $return . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } else { - return false; - } -} - -/** - * Outputs the Special Interests HTML - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category accommodation - */ -function lsx_to_accommodation_special_interests( $before = '', $after = '', $echo = true, $post_id = false ) { - if ( false === $post_id ) { - $post_id = get_the_ID(); - } - - $special_interests = get_post_meta( $post_id, 'special_interests', true ); - - if ( is_string( $special_interests ) && ! empty( $special_interests ) ) { - $special_interests = array( $special_interests ); - } - - $return = ''; - - if ( ! empty( $special_interests ) && ! is_wp_error( $special_interests ) ) { - foreach ( $special_interests as $i => $special_interest ) { - $return .= ucwords( str_replace( '_', ' / ', str_replace( '-', ' ', str_replace( '-and-', ' & ', $special_interest ) ) ) ); - - if ( ( $i + 1 ) < count( $special_interests ) ) { - $return .= ', '; - } - } - $return = $before . $return . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } else { - return false; - } -} - -/** - * Outputs the Friendly HTML - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category accommodation - * @category activity - */ -function lsx_to_accommodation_activity_friendly( $before = '', $after = '', $echo = true ) { - $friendly = get_post_meta( get_the_ID(), 'suggested_visitor_types', true ); - - if ( is_string( $friendly ) && ! empty( $friendly ) ) { - $friendly = array( $friendly ); - } - - $return = ''; - - if ( ! empty( $friendly ) && ! is_wp_error( $friendly ) ) { - foreach ( $friendly as $i => $friendly_item ) { - $return .= ucwords( str_replace( '_', ' / ', str_replace( '-', ' ', str_replace( '-and-', ' & ', $friendly_item ) ) ) ); - - if ( ( $i + 1 ) < count( $friendly ) ) { - $return .= ', '; - } - } - $return = $before . $return . $after; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } else { - return false; - } -} - -/** - * Gets the current specials connected accommodation - * - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category connections - */ -function lsx_to_connected_accommodation( $before = '', $after = '', $echo = true ) { - lsx_to_connected_items_query( 'accommodation', get_post_type(), $before, $after, $echo ); -} diff --git a/includes/template-tags/helpers.php b/includes/template-tags/helpers.php index af69f52c..50940951 100644 --- a/includes/template-tags/helpers.php +++ b/includes/template-tags/helpers.php @@ -763,7 +763,7 @@ function to_continent_region_label( $country_code = '' ) { * @return string */ function lsx_to_get_price_type_label( $label_index = '' ) { - $label = ''; + $label = ''; switch ( $label_index ) { case '': $label = ''; diff --git a/tour-operator-bootstrap.php b/tour-operator-bootstrap.php index 508bb1c9..2c65349c 100644 --- a/tour-operator-bootstrap.php +++ b/tour-operator-bootstrap.php @@ -25,11 +25,7 @@ // Template Tags. require_once( LSX_TO_PATH . 'includes/template-tags/general.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/helpers.php' ); - require_once( LSX_TO_PATH . 'includes/template-tags/addons.php' ); - require_once( LSX_TO_PATH . 'includes/template-tags/accommodation.php' ); - require_once( LSX_TO_PATH . 'includes/template-tags/tour.php' ); require_once( LSX_TO_PATH . 'includes/template-tags/maps.php' ); - require_once( LSX_TO_PATH . 'includes/template-tags/videos.php' ); // include context helper & autoloader. require_once( LSX_TO_PATH . 'includes/tour-operator.php' ); From 15f831a36281a11eae8745ef5144a42ae78393b8 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 15:07:54 +0200 Subject: [PATCH 30/77] Fixing the code errors and removing functions. --- includes/classes/class-metaboxes.php | 79 --- includes/classes/legacy/class-scpo-engine.php | 486 ------------------ .../classes/legacy/class-tour-operator.php | 3 - includes/partials/help.php | 6 +- includes/patterns/accommodation-card.php | 2 +- includes/patterns/destination-card.php | 2 +- includes/patterns/gallery.php | 2 +- includes/patterns/itinerary-list.php | 2 +- includes/patterns/room-card.php | 2 +- includes/patterns/tour-card.php | 2 +- includes/template-tags/helpers.php | 291 ----------- 11 files changed, 11 insertions(+), 866 deletions(-) delete mode 100644 includes/classes/class-metaboxes.php delete mode 100644 includes/classes/legacy/class-scpo-engine.php diff --git a/includes/classes/class-metaboxes.php b/includes/classes/class-metaboxes.php deleted file mode 100644 index d39d1d09..00000000 --- a/includes/classes/class-metaboxes.php +++ /dev/null @@ -1,79 +0,0 @@ -object ); - } - - /** - * Register a taxonomy for the plugin. - * - * @since 1.1.0 - * - * @param string $slug The taxonomy slug. - * @param array $config The taxonomy config arguments. - */ - protected function register_object( $slug, $config ) { - $this->object[ $slug ] = $config; - } - - /** - * Remove Duplicate IDS from the post select fields. - * - * @param array $values - * @return array - */ - public function unique_arrays( $values ) { - - if ( ! empty( $values ) && is_array( $values ) ) { - $values = array_unique( $values ); - } - - return $values; - } -} diff --git a/includes/classes/legacy/class-scpo-engine.php b/includes/classes/legacy/class-scpo-engine.php deleted file mode 100644 index 1c531c9e..00000000 --- a/includes/classes/legacy/class-scpo-engine.php +++ /dev/null @@ -1,486 +0,0 @@ -lsx_to_scporder_install(); - } - - add_action( 'admin_init', array( $this, 'refresh' ) ); - add_action( 'admin_init', array( $this, 'load_script_css' ) ); - - add_action( 'wp_ajax_update-menu-order', array( - $this, - 'update_menu_order', - ) ); - add_action( 'wp_ajax_update-menu-order-tags', array( - $this, - 'update_menu_order_tags', - ) ); - - add_action( 'pre_get_posts', array( - $this, - 'lsx_to_scporder_pre_get_posts', - ) ); - - add_filter( 'get_previous_post_where', array( - $this, - 'lsx_to_scporder_previous_post_where', - ) ); - add_filter( 'get_previous_post_sort', array( - $this, - 'lsx_to_scporder_previous_post_sort', - ) ); - add_filter( 'get_next_post_where', array( - $this, - 'lsx_to_scporder_next_post_where', - ) ); - add_filter( 'get_next_post_sort', array( - $this, - 'lsx_to_scporder_next_post_sort', - ) ); - - add_filter( 'get_terms_orderby', array( - $this, - 'lsx_to_scporder_get_terms_orderby', - ), 10, 3 ); - add_filter( 'wp_get_object_terms', array( - $this, - 'lsx_to_scporder_get_object_terms', - ), 10, 4 ); - add_filter( 'get_terms', array( - $this, - 'lsx_to_scporder_get_object_terms', - ), 10, 4 ); - } - - function lsx_to_scporder_install() { - global $wpdb; - $result = $wpdb->query( "DESCRIBE $wpdb->terms `lsx_to_term_order`" ); - - if ( ! $result ) { - $result = $wpdb->query( "ALTER TABLE $wpdb->terms ADD `lsx_to_term_order` INT(4) NULL DEFAULT '0'" ); - } - - update_option( 'lsx_to_scporder_install', 1 ); - } - - function _check_load_script_css() { - $active = false; - - $objects = $this->get_to_scporder_options_objects(); - $tags = $this->get_to_scporder_options_tags(); - - if ( empty( $objects ) && empty( $tags ) ) { - return false; - } - - if ( isset( $_GET['orderby'] ) || strstr( sanitize_text_field( $_SERVER['REQUEST_URI'] ), 'action=edit' ) || strstr( sanitize_text_field( $_SERVER['REQUEST_URI'] ), 'wp-admin/post-new.php' ) ) { - return false; - } - - if ( ! empty( $objects ) ) { - if ( isset( $_GET['post_type'] ) && ! isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( $_GET['post_type'] ), $objects ) ) { // if page or custom post types - $active = true; - } - if ( ! isset( $_GET['post_type'] ) && strstr( sanitize_text_field( $_SERVER['REQUEST_URI'] ), 'wp-admin/edit.php' ) && array_key_exists( 'post', $objects ) ) { // if post - $active = true; - } - } - - if ( ! empty( $tags ) ) { - if ( isset( $_GET['taxonomy'] ) && array_key_exists( sanitize_text_field( $_GET['taxonomy'] ), $tags ) ) { - $active = true; - } - } - - return $active; - } - - function load_script_css() { - if ( $this->_check_load_script_css() ) { - wp_enqueue_script( 'scporderjs', LSX_TO_URL . '/assets/js/scporder.min.js', array( 'jquery', 'jquery-ui-sortable' ), null, true ); - - $scporderjs_params = array( - 'ajax_url' => admin_url( 'admin-ajax.php' ), - 'ajax_nonce' => wp_create_nonce( 'scporder' ), - ); - - wp_localize_script( 'scporderjs', 'scporderjs_params', $scporderjs_params ); - - wp_enqueue_style( 'scporder', LSX_TO_URL . '/assets/css/scporder.css', array(), null ); - wp_style_add_data( 'scporder', 'rtl', 'replace' ); - } - } - - function refresh() { - global $wpdb; - $objects = $this->get_to_scporder_options_objects(); - $tags = $this->get_to_scporder_options_tags(); - - if ( ! empty( $objects ) ) { - foreach ( $objects as $object => $object_data ) { - $result = $wpdb->get_results( $wpdb->prepare( " - SELECT count(*) as cnt, max(menu_order) as max, min(menu_order) as min - FROM $wpdb->posts - WHERE post_type = '%s' AND post_status IN ('publish', 'pending', 'draft', 'private', 'future') - ", $object ) ); - - if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max ) { - continue; - } - - $results = $wpdb->get_results( $wpdb->prepare( " - SELECT ID - FROM $wpdb->posts - WHERE post_type = '%s' AND post_status IN ('publish', 'pending', 'draft', 'private', 'future') - ORDER BY menu_order ASC - ", $object ) ); - - foreach ( $results as $key => $result ) { - $wpdb->update( - $wpdb->posts, - array( - 'menu_order' => $key + 1, - ), - array( - 'ID' => $result->ID, - ) - ); - } - } - } - - if ( ! empty( $tags ) ) { - foreach ( $tags as $taxonomy => $taxonomy_data ) { - $result = $wpdb->get_results( $wpdb->prepare( " - SELECT count(*) as cnt, max(lsx_to_term_order) as max, min(lsx_to_term_order) as min - FROM $wpdb->terms AS terms - INNER JOIN $wpdb->term_taxonomy AS term_taxonomy ON ( terms.term_id = term_taxonomy.term_id ) - WHERE term_taxonomy.taxonomy = '%s' - ", $taxonomy ) ); - - if ( 0 == $result[0]->cnt || $result[0]->cnt == $result[0]->max ) { - continue; - } - - $results = $wpdb->get_results( $wpdb->prepare( " - SELECT terms.term_id - FROM $wpdb->terms AS terms - INNER JOIN $wpdb->term_taxonomy AS term_taxonomy ON ( terms.term_id = term_taxonomy.term_id ) - WHERE term_taxonomy.taxonomy = '%s' - ORDER BY lsx_to_term_order ASC - ", $taxonomy ) ); - - foreach ( $results as $key => $result ) { - $wpdb->update( - $wpdb->terms, - array( - 'lsx_to_term_order' => $key + 1, - ), - array( - 'term_id' => $result->term_id, - ) - ); - } - } - } - } - - function update_menu_order() { - check_ajax_referer( 'scporder', 'security' ); - - global $wpdb; - - parse_str( sanitize_text_field( $_POST['order'] ), $data ); - - if ( ! is_array( $data ) ) { - return false; - } - - /*$id_arr = array(); - - foreach ( $data as $key => $values ) { - foreach ( $values as $position => $id ) { - $id_arr[] = $id; - } - } - - $menu_order_arr = array(); - - foreach ( $id_arr as $key => $id ) { - $results = $wpdb->get_results( "SELECT menu_order FROM $wpdb->posts WHERE ID = " . intval( $id ) ); - foreach ( $results as $result ) { - $menu_order_arr[] = $result->menu_order; - } - } - - sort( $menu_order_arr );*/ - - foreach ( $data as $key => $values ) { - foreach ( $values as $position => $id ) { - $wpdb->update( - $wpdb->posts, - array( - 'menu_order' => $position, - ), - array( - 'ID' => intval( $id ), - ) - ); - } - } - } - - function update_menu_order_tags() { - check_ajax_referer( 'scporder', 'security' ); - - global $wpdb; - - parse_str( sanitize_text_field( $_POST['order'] ), $data ); - - if ( ! is_array( $data ) ) { - return false; - } - - /*$current_user = wp_get_current_user(); - if ( false === $current_user || 'lightspeed' !== $current_user->data->user_login ) { - return false; - }*/ - - /*$id_arr = array(); - - foreach ( $data as $key => $values ) { - foreach ( $values as $position => $id ) { - $id_arr[] = $id; - } - } - - $menu_order_arr = array(); - - foreach ( $id_arr as $key => $id ) { - $results = $wpdb->get_results( "SELECT lsx_to_term_order FROM $wpdb->terms WHERE term_id = " . intval( $id ) ); - foreach ( $results as $result ) { - $menu_order_arr[] = $result->lsx_to_term_order; - } - } - - sort( $menu_order_arr );*/ - - foreach ( $data as $key => $values ) { - $term_ids = array(); - foreach ( $values as $position => $id ) { - $wpdb->update( - $wpdb->terms, - array( - 'lsx_to_term_order' => $position + 1, - ), - array( - 'term_id' => intval( $id ), - ) - ); - $term_ids[] = intval( $id ); - } - clean_term_cache( $term_ids ); - } - } - - function lsx_to_scporder_previous_post_where( $where ) { - global $post; - $objects = $this->get_to_scporder_options_objects(); - - if ( empty( $objects ) ) { - return $where; - } - - if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) { - $current_menu_order = $post->menu_order; - $where = "WHERE p.menu_order > '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'"; - } - - return $where; - } - - function lsx_to_scporder_previous_post_sort( $orderby ) { - global $post; - $objects = $this->get_to_scporder_options_objects(); - - if ( empty( $objects ) ) { - return $orderby; - } - - if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) { - $orderby = 'ORDER BY p.menu_order ASC LIMIT 1'; - } - - return $orderby; - } - - function lsx_to_scporder_next_post_where( $where ) { - global $post; - $objects = $this->get_to_scporder_options_objects(); - - if ( empty( $objects ) ) { - return $where; - } - - if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) { - $current_menu_order = $post->menu_order; - $where = "WHERE p.menu_order < '" . $current_menu_order . "' AND p.post_type = '" . $post->post_type . "' AND p.post_status = 'publish'"; - } - - return $where; - } - - function lsx_to_scporder_next_post_sort( $orderby ) { - global $post; - $objects = $this->get_to_scporder_options_objects(); - - if ( empty( $objects ) ) { - return $orderby; - } - - if ( isset( $post->post_type ) && array_key_exists( $post->post_type, $objects ) ) { - $orderby = 'ORDER BY p.menu_order DESC LIMIT 1'; - } - - return $orderby; - } - - function lsx_to_scporder_pre_get_posts( $wp_query ) { - $objects = $this->get_to_scporder_options_objects(); - - if ( empty( $objects ) ) { - return false; - } - - if ( is_admin() ) { - if ( isset( $wp_query->query['post_type'] ) && ! isset( $_GET['orderby'] ) ) { - if ( ! is_array( $wp_query->query['post_type'] ) ) { - if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) { - $wp_query->set( 'orderby', 'menu_order' ); - $wp_query->set( 'order', 'ASC' ); - } - } - } - } else { - $active = false; - - if ( isset( $wp_query->query['post_type'] ) ) { - if ( ! is_array( $wp_query->query['post_type'] ) ) { - if ( array_key_exists( $wp_query->query['post_type'], $objects ) ) { - $active = true; - } - } - } else { - if ( array_key_exists( 'post', $objects ) ) { - $active = true; - } - } - - if ( ! $active ) { - return false; - } - - if ( isset( $wp_query->query['disabled_custom_post_order'] ) ) { - return false; - } - - if ( isset( $wp_query->query['suppress_filters'] ) ) { - if ( $wp_query->get( 'orderby' ) == 'date' ) { - $wp_query->set( 'orderby', 'menu_order' ); - } - if ( $wp_query->get( 'order' ) == 'DESC' ) { - $wp_query->set( 'order', 'ASC' ); - } - } else { - if ( ! $wp_query->get( 'orderby' ) ) { - $wp_query->set( 'orderby', 'menu_order' ); - } - if ( ! $wp_query->get( 'order' ) ) { - $wp_query->set( 'order', 'ASC' ); - } - } - } - } - - function lsx_to_scporder_get_terms_orderby( $orderby, $args ) { - - if ( is_admin() ) { - return $orderby; - } - - if ( isset( $args['disabled_custom_post_order'] ) ) { - return $orderby; - } - - $tags = $this->get_to_scporder_options_tags(); - - if ( ! isset( $args['taxonomy'] ) ) { - return $orderby; - } - - $taxonomy = $args['taxonomy']; - if ( is_array( $taxonomy ) && count( $taxonomy ) == 1 ) { - $taxonomy = $taxonomy[0]; - } - if ( ! is_array( $taxonomy ) && ! array_key_exists( $taxonomy, $tags ) ) { - return $orderby; - } - - $orderby = 't.lsx_to_term_order'; - - return $orderby; - } - - function lsx_to_scporder_get_object_terms( $terms, $not_used, $args_1, $args_2 = null ) { - $tags = $this->get_to_scporder_options_tags(); - - if ( is_admin() && isset( $_GET['orderby'] ) ) { - return $terms; - } - - $args = is_null( $args_2 ) || ! is_array( $args_2 ) ? $args_1 : $args_2; - - if ( isset( $args['disabled_custom_post_order'] ) ) { - return $terms; - } - - foreach ( $terms as $key => $term ) { - if ( is_object( $term ) && isset( $term->taxonomy ) ) { - $taxonomy = $term->taxonomy; - if ( ! array_key_exists( $taxonomy, $tags ) ) { - return $terms; - } - } else { - return $terms; - } - } - usort( $terms, array( $this, 'taxcmp' ) ); - return $terms; - } - - function taxcmp( $a, $b ) { - if ( $a->lsx_to_term_order == $b->lsx_to_term_order ) { - return 0; - } - - return ( $a->lsx_to_term_order < $b->lsx_to_term_order ) ? - 1 : 1; - } - - function get_to_scporder_options_objects() { - $tour_operator = tour_operator()->legacy; - - return apply_filters( 'lsx_to_scpo_engine_objects', $tour_operator->post_types ); - } - - function get_to_scporder_options_tags() { - $tour_operator = tour_operator()->legacy; - - return apply_filters( 'lsx_to_scpo_engine_taxonomies', $tour_operator->taxonomies ); - } - -} diff --git a/includes/classes/legacy/class-tour-operator.php b/includes/classes/legacy/class-tour-operator.php index 37a3ea4d..2fced2cf 100644 --- a/includes/classes/legacy/class-tour-operator.php +++ b/includes/classes/legacy/class-tour-operator.php @@ -166,9 +166,6 @@ private function __construct() { add_action( 'init', array( $this, 'disable_deprecated' ), 0 ); add_action( 'plugins_loaded', array( $this, 'trigger_schema' ), 10 ); - // Start sort engine. - new SCPO_Engine(); - // Set the options. $this->options = get_option( 'lsx_to_settings', array() ); $this->set_vars(); diff --git a/includes/partials/help.php b/includes/partials/help.php index ef312dfd..0fcc463e 100644 --- a/includes/partials/help.php +++ b/includes/partials/help.php @@ -20,7 +20,11 @@
- +

diff --git a/includes/patterns/accommodation-card.php b/includes/patterns/accommodation-card.php index aa842f7c..abf8b699 100644 --- a/includes/patterns/accommodation-card.php +++ b/includes/patterns/accommodation-card.php @@ -2,7 +2,7 @@ return array( 'title' => __( 'Accommodation Card', 'tour-operator' ), - 'description' => __( '', 'tour-operator' ), + 'description' => __( 'A grid display for accommodation.', 'tour-operator' ), 'categories' => array( $this->category ), 'content' => '
diff --git a/includes/patterns/destination-card.php b/includes/patterns/destination-card.php index cedc7e30..b921eddc 100644 --- a/includes/patterns/destination-card.php +++ b/includes/patterns/destination-card.php @@ -1,7 +1,7 @@ __( 'Destination Card', 'tour-operator' ), - 'description' => __( '', 'tour-operator' ), + 'description' => __( 'A grid display for destinations.', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'content' => ' diff --git a/includes/patterns/gallery.php b/includes/patterns/gallery.php index 54e5d746..fabe0d10 100644 --- a/includes/patterns/gallery.php +++ b/includes/patterns/gallery.php @@ -2,7 +2,7 @@ return array( 'title' => __( 'TO Gallery', 'tour-operator' ), - 'description' => __( '', 'tour-operator' ), + 'description' => __( 'Display the attached images, with a lightbox gallery.', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'content' => ' diff --git a/includes/patterns/itinerary-list.php b/includes/patterns/itinerary-list.php index 9087d91d..72ce2ab2 100644 --- a/includes/patterns/itinerary-list.php +++ b/includes/patterns/itinerary-list.php @@ -1,7 +1,7 @@ __( 'Itinerary (list)', 'tour-operator' ), - 'description' => __( '', 'tour-operator' ), + 'description' => __( 'A list display for the tour itineraries.', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'blockTypes' => [ 'Day by day' ], diff --git a/includes/patterns/room-card.php b/includes/patterns/room-card.php index 9f384ceb..b00ea6eb 100644 --- a/includes/patterns/room-card.php +++ b/includes/patterns/room-card.php @@ -1,7 +1,7 @@ __( 'Room Card', 'tour-operator' ), - 'description' => __( '', 'tour-operator' ), + 'description' => __( 'A list display for the accommodation units.', 'tour-operator' ), 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'content' => ' diff --git a/includes/patterns/tour-card.php b/includes/patterns/tour-card.php index 7235cc39..649325d7 100644 --- a/includes/patterns/tour-card.php +++ b/includes/patterns/tour-card.php @@ -2,7 +2,7 @@ return array( 'title' => __( 'Tour Card', 'tour-operator' ), - 'description' => __( 'Display the tours', 'tour-operator' ), + 'description' => __( 'A grid display for tours.', 'tour-operator' ), 'categories' => array( $this->category ), 'content' => '
diff --git a/includes/template-tags/helpers.php b/includes/template-tags/helpers.php index 50940951..72344769 100644 --- a/includes/template-tags/helpers.php +++ b/includes/template-tags/helpers.php @@ -308,297 +308,6 @@ function lsx_to_custom_field_query( $meta_key = false, $before = '', $after = '' } } -/** - * Gets the list of connections requested - * - * @param $from | string - * @param $to | string - * @param $before | string - * @param $after | string - * @param $echo | boolean - * @param $parent | boolean - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category helper - */ -function lsx_to_connected_items_query( $from = false, $to = false, $before = '', $after = '', $echo = false, $parents = false, $extra = false ) { - if ( post_type_exists( $from ) && post_type_exists( $to ) ) { - $connected_ids = get_post_meta( get_the_ID(), $from . '_to_' . $to, false ); - - if ( $parents ) { - $connected_ids = apply_filters( 'lsx_to_parents_only', $connected_ids, $from . '_to_' . $to ); - } - - if ( false !== $connected_ids && '' !== $connected_ids && ! empty( $connected_ids ) ) { - if ( ! is_array( $connected_ids ) ) { - $connected_ids = array( $connected_ids ); - } - - $return = $before . lsx_to_connected_list( $connected_ids, $from, true, ', ' ) . $after; - - if ( false !== $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } else { - return false; - } - } -} - -/** - * Gets the list of connections items, and displays them using the the specified content part. - * - * @param $args | array - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category helper - */ -function lsx_to_connected_panel_query( $args = false ) { - global $lsx_to_archive, $columns; - - if ( false !== $args && is_array( $args ) ) { - $defaults = array( - 'from' => false, - 'to' => false, - 'content_part' => false, - 'id' => false, - 'column' => false, - 'before' => '', - 'after' => '', - 'featured' => false, - 'orderby' => false, - 'items' => array(), - ); - - $args = wp_parse_args( $args, $defaults ); - - if ( false === $args['content_part'] ) { - $args['content_part'] = $args['from']; - } - - if ( empty( $args['items'] ) ) { - $items_array = get_post_meta( get_the_ID(), $args['from'] . '_to_' . $args['to'], false ); - } else { - $items_array = $args['items']; - } - - if ( false !== $items_array && is_array( $items_array ) && ! empty( $items_array ) ) { - $items_query_args = array( - 'post_type' => $args['from'], - 'post_status' => 'publish', - 'post__in' => $items_array, - ); - - if ( false !== $args['orderby'] ) { - $items_query_args['orderby'] = $args['orderby']; - } - - if ( true === $args['featured'] || 'true' === $args['featured'] ) { - $items_query_args['meta_query'] = array( - 'relation' => 'OR', - array( - 'key' => 'featured', - 'value' => true, - 'compare' => '=', - ), - ); - - if ( 'accommodation' === $args['from'] ) { - $items_query_args['meta_query'][] = array( - 'key' => 'featured', - 'compare' => 'NOT EXISTS', - ); - $items_query_args['orderby'] = array( - 'meta_value' => 'DESC', - 'title' => 'RAND', - ); - } - } - - $items = new WP_Query( $items_query_args ); - - if ( $items->have_posts() ) : - $lsx_to_archive = 1; - - $carousel_id = rand( 20, 20000 ); - $columns = intval( esc_attr( $args['column'] ) ); - $interval = '6000'; - $post_type = $args['content_part']; - - echo wp_kses_post( $args['before'] ); - - if ( 1 < $items->post_count ) { - echo '
'; - echo '
'; - echo '
'; - echo '
'; - } - - while ( $items->have_posts() ) : - $items->the_post(); - - global $disable_placeholder, $disable_text; - - $disable_placeholder = apply_filters( 'lsx_to_widget_disable_placeholder', false, $args['to'], $post_type ); - $disable_text = apply_filters( 'lsx_to_widget_disable_text', false, $args['to'], $post_type ); - - $class = ''; - if ( 1 === $items->post_count ) { - $class = 'singular-item'; - } else if ( 2 === $items->post_count ) { - $class = 'dual-item'; - } - - echo '
'; - lsx_to_content( 'content-widget', $args['content_part'] ); - echo '
'; - endwhile; - - wp_reset_postdata(); - $lsx_to_archive = 0; - - if ( 1 < $items->post_count ) { - echo '
'; - } - do_action( 'lsx_to_connected_panel_query_bottom', $args ); - - if ( 1 < $items->post_count ) { - echo '
'; - echo '
'; - echo '
'; - } - - echo wp_kses_post( $args['after'] ); - - endif; - } - } -} - -/** - * Returns items tagged in the same terms for the taxonomy you select. - * - * @param $taxonomy | string - * @return string - * - * @package tour-operator - * @subpackage template-tags - * @category helper - */ -function lsx_to_related_items( $taxonomy = false, $before = '', $after = '', $echo = true, $post_type = false ) { - if ( false !== $taxonomy ) { - $return = false; - $filters = array(); - - if ( false === $post_type ) { - $post_type = get_post_type(); - } - - $filters['post_type'] = $post_type; - - if ( is_array( $taxonomy ) ) { - $filters['post__in'] = $taxonomy; - } else { - //Get the settings from the customizer options - $filters['posts_per_page'] = 15; - //Exclude the current post - $filters['post__not_in'] = array( get_the_ID() ); - //if its set to related then we need to check by the type. - $filters['orderby'] = 'rand'; - $terms = wp_get_object_terms( get_the_ID(), $taxonomy ); - - //only allow relation by 1 property type term - if ( is_array( $terms ) && ! empty( $terms ) ) { - $filters['tax_query'] = array( - array( - 'taxonomy' => $taxonomy, - 'field' => 'slug', - 'terms' => array(), - ), - ); - - foreach ( $terms as $term ) { - $filters['tax_query'][0]['terms'][] = $term->slug; - } - } - } - - $related_query = new WP_Query( $filters ); - - if ( $related_query->have_posts() ) : - global $wp_query, $columns; - - $wp_query->is_single = 0; - $wp_query->is_singular = 0; - $wp_query->is_post_type_archive = 1; - - if ( null === $columns || empty( $columns ) || '' === $columns ) { - $columns = 3; - } - - ob_start(); - - //Setting some carousel variables - $carousel_id = rand( 20, 20000 ); - $interval = '6000'; - $post_type = get_post_type(); - - $slider_atts = array( - 'slidesToShow' => esc_attr( $columns ), - 'slidesToScroll' => esc_attr( $columns ), - ); - $slider_atts = apply_filters( 'lsx_to_related_slider_attributes', $slider_atts ); - - echo '
'; - echo '
'; - echo '
'; - - //echo '
'; - echo "
"; - - while ( $related_query->have_posts() ) : - $related_query->the_post(); - - global $disable_placeholder, $disable_text; - - $disable_placeholder = apply_filters( 'lsx_to_widget_disable_placeholder', false, $post_type, false, $taxonomy ); - $disable_text = apply_filters( 'lsx_to_widget_disable_text', false, $post_type, false, $taxonomy ); - - echo '
'; - lsx_to_content( 'content-widget', $post_type ); - echo '
'; - endwhile; - - echo '
'; - echo '
'; - echo '
'; - echo '
'; - - $return = ob_get_clean(); - - $wp_query->is_single = 1; - $wp_query->is_singular = 1; - $wp_query->is_post_type_archive = 0; - - wp_reset_postdata(); - - $return = $before . $return . $after; - endif; - - if ( $echo ) { - echo wp_kses_post( $return ); - } else { - return $return; - } - } -} - /** * Outputs a list of the ids you give it * From 5b25d2eebf07a26e61c1bdc5077e6c0c4ce109c3 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 15:21:12 +0200 Subject: [PATCH 31/77] Fixing the PHPcs errors --- .../placeholder-post-750x350 copy.jpg | Bin 3587 -> 0 bytes includes/classes/blocks/class-bindings.php | 14 +-- .../classes/blocks/class-registration.php | 1 + includes/classes/class-share.php | 100 ------------------ includes/classes/legacy/class-maps.php | 4 +- vendor/cmb2/includes/CMB2.php | 2 +- 6 files changed, 11 insertions(+), 110 deletions(-) delete mode 100644 assets/img/placeholders/placeholder-post-750x350 copy.jpg delete mode 100644 includes/classes/class-share.php diff --git a/assets/img/placeholders/placeholder-post-750x350 copy.jpg b/assets/img/placeholders/placeholder-post-750x350 copy.jpg deleted file mode 100644 index 6001631cd20353545f67a3935688081a2a91a478..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3587 zcmeHGeN>WJ8h;VB?94PVq|Q!$G+LxK<3@ah@9sUj0SE*DKD7_PHUUIO7Nn8^0E-0z003ACK*~}9N4sS|0(@xy z007zq0igCBvgB)W_$}(7Yl8k}Lk=$;v}u8m&r&jTGHEH9pRY#+ZUI7e?7=!NvDvX~ zZ(KIl411oIF@f(LHUDs7&6;kl7Nci85tlf&Mc6Iad&1$~lP9Wu; z`d|Ypc-xNbvqSdmwSOf2g?`Bk`@>bgdPjkGpb)zzC=7@I7L$MRzFpsT;Qy=xf00>4 z)fccx@Yq3-eyVFyiuIV&_vZA5Wv?z*k#rbg9c|*sluF5c-lBEg{}dkB_unYscFE<> zXQ$VFOG$khW({4)lyjMIIU&!7ezwbZ^$Ed1$EohljJ(+S(JLnw`==NM?AqCA^XoM( zI{Lo?&psIel^YLUm&}C`u_N4ymo!&=Sd+p-x-B2Oy|?1YEe|S)imC&J6~;mu$q|?&uPOX z_s=wp|HO^?iCx24rRZbTPNrJ}$PEQ*9|jo|vfJhin@Osp`gby~9=a`N8iIU;KAHnfk+z@k*pl(j$S)m(IuB6b26xODjq@4mW%`TO~-^M3k9>jc1Z#y5eFGyEo~; zs&88PtcEeT*n_6`vNj(+ji4k`zm8D4()W&_8JD=4LvBuk_(ONQD$b-0=4VLO;yla@ z^2tKtC?$S7uAK_Ipt0ya$)5)O*tKA-56Bty2QOAqr!-sddH!|S$hc^-0Vdx<%EQvG ztD9+roCKj;iZI)!hC9zDg|flPMlVt=g@GW)xmibU)SDEo=QyeE#^WFJKbFK{W{c)i zc!79$&;k~{O9~H11Wd6kbL%CltronpmNBcjIzg2pwAuix3ZEcGV|k<0Rz79QV-RU9 zPi=aWzvhE7$ptQPA)~*egvG1WE7>5GK_X=wsHkAp@5}TLY|o*++W#mA6K`aW(03+) zQ^(SsIcOf}W-b}#SA zV`27F8VVa8Zlb9v<>loDRL@R@B>am>y`n^9e1P7}M_gmB9r}}7o33)QQGkLGTqAK_ zp)Hp);qOnTCIV7Z;tmm!un-(GE)s!(xKd=$0gzwJeuBj-ykmSD>*wx$x*Owe1NuJX zy!_Gz?3I^l{;3sq3|~@psC;T&E^Gx1#8*rinj!|^n zK_Ojn$k?cIFo5Z`snNr!LzsIS15KfxxL=HmY(JTHO@b~eU>7h|sGeOX)d!gm>5CDP zhxD%S2Oc({<;5Yx zTQ@WO1sA1qllEF#jrB)@QdYO!27nl1y2;mFMWPC&S)nuC83BU)PCg=_1tb?v@_i5m zx;fpD_w2v}8=woZ0kXR`U|OGxZ!IE%<~Yrx&^bfaBuPZLd^0M%fYs=V7x&YDK3WqC zd*H>3=NOB5&1%txf(or*3}&W_rsUS7uYwQ*8s&YB8g0d#FPjf7L`UZPP9}6KVxwST zkHI#k_ZQSt#wn6aqn4k!nYMMl7@sYW{(0<`iJ0VJ131k3dyDv6Z}P;Kav}BGI%Ou8 zGXfe~d448DqIrqmHB@$PY62UCkDgz^#qNsk5m&a3$y#q6#bhR1YNzA8r(f%bzY7`+ zp6yAh@}lxs7CanHSD}aChSb5b@2@f%v3)-#<}Gik Q_ig^$4*ah=;BAxr8=ULFF8}}l diff --git a/includes/classes/blocks/class-bindings.php b/includes/classes/blocks/class-bindings.php index df1567b8..b8d9526d 100644 --- a/includes/classes/blocks/class-bindings.php +++ b/includes/classes/blocks/class-bindings.php @@ -77,7 +77,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/post-connection', array( - 'label' => __( 'Post Connection', 'lsx-wetu-importer' ), + 'label' => __( 'Post Connection', 'tour-operator' ), 'get_value_callback' => array( $this, 'post_connections_callback' ) ) ); @@ -85,7 +85,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/post-meta', array( - 'label' => __( 'Post Meta', 'lsx-wetu-importer' ), + 'label' => __( 'Post Meta', 'tour-operator' ), 'get_value_callback' => array( $this, 'post_meta_callback' ) ) ); @@ -93,7 +93,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/tour-itinerary', array( - 'label' => __( 'Itinerary', 'lsx-wetu-importer' ), + 'label' => __( 'Itinerary', 'tour-operator' ), 'get_value_callback' => array( $this, 'empty_callback' ) ) ); @@ -101,7 +101,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/accommodation-units', array( - 'label' => __( 'Units', 'lsx-wetu-importer' ), + 'label' => __( 'Units', 'tour-operator' ), 'get_value_callback' => array( $this, 'empty_callback' ) ) ); @@ -109,7 +109,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/gallery', array( - 'label' => __( 'Gallery', 'lsx-wetu-importer' ), + 'label' => __( 'Gallery', 'tour-operator' ), 'get_value_callback' => array( $this, 'empty_callback' ) ) ); @@ -117,7 +117,7 @@ public function register_block_bindings() { register_block_bindings_source( 'lsx/map', array( - 'label' => __( 'Map', 'lsx-wetu-importer' ), + 'label' => __( 'Map', 'tour-operator' ), 'get_value_callback' => array( $this, 'empty_callback' ) ) ); @@ -474,7 +474,7 @@ public function build_unit_field( $build = '', $field = '', $count = 1 ) { switch ( $field ) { case 'title': - $value = strip_tags( $rooms->item_title( '', '', false ) ); + $value = wp_strip_all_tags( $rooms->item_title( '', '', false ) ); $pattern = '/(]*\bclass="[^"]*\bunit-title\b[^"]*"[^>]*>).*?(<\/h[1-6]>)/is'; break; diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 4b168c59..97a0ce78 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -432,6 +432,7 @@ protected function post_ids_exist( $ids ) { AND ID IN (%s) AND post_status IN ('draft', 'publish')"; + // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared (the code is prepared) return (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); } diff --git a/includes/classes/class-share.php b/includes/classes/class-share.php deleted file mode 100644 index 42be9d70..00000000 --- a/includes/classes/class-share.php +++ /dev/null @@ -1,100 +0,0 @@ -active_styles .= $styles; - } - - /** - * Runs after active assets have been set. - * - * @since 1.1.0 - * @access protected - */ - public function render_active_styles() { - - if ( ! empty( $this->active_styles ) ) { - echo ''; - } - } - - /** - * Return an instance of this class. - * - * @codeCoverageIgnore - * @since 1.1.0 - * @return self A single instance of the share class. - */ - public static function init() { - - // If the single instance hasn't been set, set it now. - if ( ! isset( self::$instance ) ) { - self::$instance = new self(); - } - - return self::$instance; - - } - - /** - * Constructor. Sets up action to render styles. - * - * @since 1.1.0 - */ - public function __construct() { - add_action( 'admin_enqueue_scripts', array( - $this, - 'render_active_styles', - ), 100 ); - add_action( 'wp_print_styles', array( - $this, - 'render_active_styles', - ), 100 ); - } -} diff --git a/includes/classes/legacy/class-maps.php b/includes/classes/legacy/class-maps.php index d6ea76bc..b960c481 100644 --- a/includes/classes/legacy/class-maps.php +++ b/includes/classes/legacy/class-maps.php @@ -230,7 +230,7 @@ public function map_output( $post_id = false, $args = array() ) { $tooltip = $args['search']; if ( 'excerpt' === $args['content'] ) { - $tooltip = strip_tags( get_the_excerpt( $post_id ) ); + $tooltip = wp_strip_all_tags( get_the_excerpt( $post_id ) ); } $icon = $this->set_icon( $post_id ); @@ -257,7 +257,7 @@ public function map_output( $post_id = false, $args = array() ) { $tooltip = $location['address']; if ( 'excerpt' === $args['content'] ) { - $tooltip = strip_tags( get_the_excerpt( $connection ) ); + $tooltip = wp_strip_all_tags( get_the_excerpt( $connection ) ); } $icon = $this->set_icon( $connection ); diff --git a/vendor/cmb2/includes/CMB2.php b/vendor/cmb2/includes/CMB2.php index 33fdc180..961fea3a 100644 --- a/vendor/cmb2/includes/CMB2.php +++ b/vendor/cmb2/includes/CMB2.php @@ -382,7 +382,7 @@ public function box_classes() { foreach ( array_filter( $classes ) as $class ) { foreach ( explode( ' ', $class ) as $_class ) { // Clean up & sanitize. - $split[] = sanitize_html_class( strip_tags( $_class ) ); + $split[] = sanitize_html_class( wp_strip_all_tags( $_class ) ); } } $classes = $split; From 736f34addad608841268ec5664fa3908301ec47b Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 11 Dec 2024 15:32:20 +0200 Subject: [PATCH 32/77] Fixing the fail nonce verification warning --- includes/classes/admin/class-admin.php | 1 + includes/classes/admin/class-settings.php | 9 +++++++-- includes/classes/blocks/class-patterns.php | 4 ++-- includes/classes/blocks/class-registration.php | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/includes/classes/admin/class-admin.php b/includes/classes/admin/class-admin.php index 526b7249..ca02c079 100644 --- a/includes/classes/admin/class-admin.php +++ b/includes/classes/admin/class-admin.php @@ -42,6 +42,7 @@ public function allow_svgimg_types( $mimes ) { * feature images */ public function change_attachment_field_button( $html ) { + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_GET['feature_image_text_button'] ) ) { $html = str_replace( 'value="Insert into Post"', sprintf( 'value="%s"', esc_html__( 'Select featured image', 'tour-operator' ) ), $html ); } diff --git a/includes/classes/admin/class-settings.php b/includes/classes/admin/class-settings.php index edf28680..00f6cf02 100644 --- a/includes/classes/admin/class-settings.php +++ b/includes/classes/admin/class-settings.php @@ -45,7 +45,9 @@ class Settings { public function __construct() { $this->options = tour_operator()->options; + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_GET['welcome-page'] ) ) { + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended $display_page = sanitize_text_field( $_GET['welcome-page'] ); $display_page = ! empty( $display_page ) ? $display_page : ''; } @@ -530,8 +532,9 @@ public function save_settings() { if ( 'post_types' !== $section ) { foreach ( $fields as $key => $field ) { $save = ''; + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST[ $key ] ) ) { - $save = $_POST[ $key ]; + $save = sanitize_text_field( $_POST[ $key ] ); } else if ( isset( $field['default'] ) ) { $save = $field['default']; } @@ -551,8 +554,9 @@ public function save_settings() { //Loop through each of the fields in the section. foreach ( $fields as $key => $field ) { $save = ''; + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST[ $tab_index . '_' . $key ] ) ) { - $save = $_POST[ $tab_index . '_' . $key ]; + $save = wp_unslash( $_POST[ $tab_index . '_' . $key ] ); } else if ( isset( $field['default'] ) ) { $save = $field['default']; } @@ -565,6 +569,7 @@ public function save_settings() { if ( ! empty( $settings_values ) ) { update_option( 'lsx_to_settings', $settings_values ); + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended wp_safe_redirect( $_POST[ '_wp_http_referer' ] ); exit; } diff --git a/includes/classes/blocks/class-patterns.php b/includes/classes/blocks/class-patterns.php index 7221591d..909dcc3b 100644 --- a/includes/classes/blocks/class-patterns.php +++ b/includes/classes/blocks/class-patterns.php @@ -35,7 +35,7 @@ public function __construct() { public function register_block_category( $categories ) { $categories[] = array( 'slug' => $this->category, - 'title' => __( 'Tour Operator', 'lsx-tour-operator' ) + 'title' => __( 'Tour Operator', 'tour-operator' ) ); return $categories; } @@ -48,7 +48,7 @@ public function register_block_category( $categories ) { public function register_block_pattern_category() { register_block_pattern_category( $this->category, - array( 'label' => __( 'Tour Operator', 'lsx-tour-operator' ) ) + array( 'label' => __( 'Tour Operator', 'tour-operator' ) ) ); } diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 97a0ce78..628e1cec 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -432,7 +432,7 @@ protected function post_ids_exist( $ids ) { AND ID IN (%s) AND post_status IN ('draft', 'publish')"; - // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared (the code is prepared) + // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared return (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); } From 3fe9116bb9f46687a47f4f21799dc177f084d2eb Mon Sep 17 00:00:00 2001 From: Justinabes007 <103206213+Justinabes007@users.noreply.github.com> Date: Thu, 12 Dec 2024 08:34:16 +0200 Subject: [PATCH 33/77] TO - Additional Info Read More JS Styling fixes to slider Block Additional Info Read More JS --- assets/css/style.css | 146 ++++++++++++++++++++++++++++++++ assets/img/left-arrow-dark.svg | 3 + assets/img/right-arrow-dark.svg | 3 + assets/js/src/custom.js | 43 +++++++++- 4 files changed, 194 insertions(+), 1 deletion(-) create mode 100644 assets/img/left-arrow-dark.svg create mode 100644 assets/img/right-arrow-dark.svg diff --git a/assets/css/style.css b/assets/css/style.css index fa499b57..1895e53a 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -222,6 +222,26 @@ display: inline-block; left: 12px; } +.wp-block-query.lsx-to-slider{position:relative;} +.wp-block-query.lsx-to-slider .slick-arrow:before, +.wp-block-query .slick-lightbox-inner .slick-arrow:before{ border-color: #000!important; +height:30px; width:30px;} + +.wp-block-query.lsx-to-slider .slick-arrow, +.slick-lightbox-inner .slick-arrow {cursor: pointer; + border-color: #000!important;height:30px; width:30px;} + +.wp-block-query.lsx-to-slider .slick-arrow.slick-prev:before, +.wp-block-query .slick-lightbox-inner .slick-arrow.slick-prev:before{background: url('../img/left-arrow-dark.svg') no-repeat center center; + width: 20px;left: 3px; + height: 20px;} + +.wp-block-query.lsx-to-slider .slick-arrow.slick-next:before, +.wp-block-query .slick-lightbox-inner .slick-arrow.slick-next:before{background: url('../img/right-arrow-dark.svg') no-repeat center center; + width: 20px;left: 3px; + height: 20px;} + + .wp-block-query.lsx-to-slider .slick-slide{padding:15px!important;} .lsx-to-slider .slick-dots:not(.dropdown-menu) { align-items: center; @@ -277,5 +297,131 @@ .lsx-units-wrapper .hidden { display: none; } +.wp-block-query.lsx-to-slider{gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--small);} + /*# sourceMappingURL=style.css.map */ +/* Inner group for icon and label */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { + display: flex; + align-items: flex-start; /* Align content in this group to the top */ + gap: 5px; /* Space between icon and text */ + flex-shrink: 0; /* Prevent group from shrinking */ +} + +/* Style the image icon */ +.fast-facts-wrapper > .wp-block-group .wp-block-image img { + width: 20px; /* Fixed width */ + height: 20px; /* Fixed height */ + display: inline-block; + object-fit: contain; /* Ensure image doesn't stretch or distort */ +} + +/* Styling for the label (e.g., "Special Interests:") */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { + margin: 0; + white-space: nowrap; /* Prevent wrapping for label */ + vertical-align: middle; /* Align text with the middle of the icon */ + line-height: 1.2; /* Improve readability */ + display: inline-block; /* Keep text inline */ +} + +/* Styling for the flowing text */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { + display: flex; + flex-wrap: nowrap; /* Keep the text flowing inline */ + white-space: normal; /* Allow wrapping for text if it overflows */ + overflow-wrap: break-word; /* Ensure long words wrap correctly */ + word-break: break-word; /* Break long words when needed */ + flex: 1; /* Allow the container to use available space */ + align-items: flex-start; /* Ensure text starts at the top */ +} + +/* Specific styling for the text content */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { + white-space: normal; /* Allow wrapping for long text */ + overflow-wrap: break-word; /* Break words when needed */ + word-break: break-word; /* Break words on legacy browsers */ + line-height: 1.4; /* Improve readability */ + text-transform: capitalize; /* Capitalize text */ + padding: 0; /* Ensure no unnecessary padding */ + margin: 0; /* Remove extra margins */ + display: inline; /* Ensure the text flows inline with the label */ +} + +.facilities-list li::marker{display:none;} +.facilities-list{padding-left:0!important;} + +.facilities-list li { + margin-left: 10px; + list-style: none; /* Remove default list marker */ + position: relative; /* Position for pseudo-element */} + +.facilities-list li::before{ + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); /* Center the icon vertically */ + width: 20px; /* Adjust the size of the tick icon */ + height: 20px; + background-image: url('../img/tick.svg'); /* Replace with the path to your tick.svg */ + background-size: contain; + background-repeat: no-repeat; + left:-28px +} + +.additional-info .wp-block-group.content .read-more-btn,.additional-info .wp-block-group.content .read-less-btn{ + color: #0073aa; + cursor: pointer; + font-weight: bold; +} + +.additional-info .wp-block-group.content .read-more-btn:hover { + text-decoration: underline; +} + +.additional-info .wp-block-group.content .read-less-btn{display:none;} + +@media (min-width: 800px) { +.single-tour-operator .toggle-button {display:none;} +} + +/* Optional: Responsive adjustments for smaller screens */ +@media (max-width: 768px) { + + /* Styling for the toggle button */ +.single-tour-operator .toggle-button { + display: inline-flex; + align-items: center; + padding: 5px; + background: none; + border: none; + cursor: pointer; + font-size: 14px; + color: var(--wp--preset--color--contrast); +} + +/* Styling for the SVG icons */ +.single-tour-operator .toggle-icon { + width: 16px; + height: 16px; + fill: var(--wp--preset--color--contrast); + margin-left: 5px; +} + +/* Collapsed state for the second wp-block-group */ +.single-tour-operator section.wp-block-group .wp-block-group.collapsed { + display: none; /* Hide the content */ +} + + + .fast-facts-wrapper > .wp-block-group { + flex-wrap: wrap; /* Allow wrapping for better readability */ + gap: 5px; + } + + .fast-facts-wrapper > .wp-block-group .wp-block-group.is-layout-flex:last-child { + flex-wrap: wrap; /* Allow text to wrap on smaller screens */ + } +} \ No newline at end of file diff --git a/assets/img/left-arrow-dark.svg b/assets/img/left-arrow-dark.svg new file mode 100644 index 00000000..24b52a97 --- /dev/null +++ b/assets/img/left-arrow-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/right-arrow-dark.svg b/assets/img/right-arrow-dark.svg new file mode 100644 index 00000000..e4eb09b8 --- /dev/null +++ b/assets/img/right-arrow-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/js/src/custom.js b/assets/js/src/custom.js index 59795b2d..6545dc53 100755 --- a/assets/js/src/custom.js +++ b/assets/js/src/custom.js @@ -310,4 +310,45 @@ if ( window.location.hash ) { lsx_to.build_slider_lightbox(); } ); -} )( jQuery, window, document ); + document.addEventListener('DOMContentLoaded', function () { + const paragraphs = document.querySelectorAll('.additional-info .wp-block-group.content p'); + + paragraphs.forEach(function (p) { + const text = p.innerText.trim(); + + if (text.split(' ').length > 30) { // Check if paragraph exceeds 30 words + const fullText = p.innerText.trim(); + const truncatedText = fullText.split(' ').slice(0, 30).join(' ') + '...'; + p.innerHTML = `${truncatedText}`; + + // Create Read More button + const readMoreBtn = document.createElement('span'); + readMoreBtn.textContent = ' Read More'; + readMoreBtn.classList.add('read-more-btn'); + p.appendChild(readMoreBtn); + + // Create Read Less button + const readLessBtn = document.createElement('span'); + readLessBtn.textContent = ' Read Less'; + readLessBtn.classList.add('read-less-btn'); + p.appendChild(readLessBtn); + + // Add functionality to toggle text + readMoreBtn.addEventListener('click', function () { + p.querySelector('.truncated-text').style.display = 'none'; + p.querySelector('.full-text').style.display = 'inline'; + readMoreBtn.style.display = 'none'; + readLessBtn.style.display = 'inline'; + }); + + readLessBtn.addEventListener('click', function () { + p.querySelector('.truncated-text').style.display = 'inline'; + p.querySelector('.full-text').style.display = 'none'; + readMoreBtn.style.display = 'inline'; + readLessBtn.style.display = 'none'; + }); + } + }); + }); + +} )( jQuery, window, document ); \ No newline at end of file From 7fa4557f8ede967993b3723cee88774209742d0e Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 12 Dec 2024 12:01:12 +0200 Subject: [PATCH 34/77] Adding in the files needed for the scss --- assets/css/scss/_additional.scss | 0 assets/css/style.css.map | 2 +- assets/css/style.scss | 3 +-- assets/js/src/custom.js | 14 ++++++++------ 4 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 assets/css/scss/_additional.scss diff --git a/assets/css/scss/_additional.scss b/assets/css/scss/_additional.scss new file mode 100644 index 00000000..e69de29b diff --git a/assets/css/style.css.map b/assets/css/style.css.map index e28c0f80..3e9b98be 100644 --- a/assets/css/style.css.map +++ b/assets/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_slider.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EAAA;ACEE;;;EACC,gBAAA;EACA,iBAAA;AFKH;AEKG;;;;;;;;;;;;;;;EAAU,YAAA;AFYb;AERG;;;EAAU,YAAA;AFab;AETG;;;EAAU,YAAA;AFcb;AEVG;;;EAAU,YAAA;AFeb;AEXG;;;EAAU,aAAA;AFgBb;AEZG;;;EAAU,YAAA;AFiBb;AEZG;;;;;EAAU,YAAA;AFmBb;AEfG;;;EAAU,YAAA;AFoBb;AEhBG;;;EAAU,YAAA;AFqBb;AEjBG;;;EAAU,YAAA;AFsBb;AElBG;;;EAAU,YAAA;AFuBb;AEnBG;;;EAAU,YAAA;AFwBb;AEpBG;;;EAAU,aAAA;AFyBb;AErBG;;;EAAU,aAAA;AF0Bb;AEtBG;;;EAAU,aAAA;AF2Bb;AEtBG;;;;;EAAU,aAAA;AF6Bb;AEzBG;;;EAAU,cAAA;AF8Bb;AE1BG;;;EAAU,cAAA;AF+Bb;AE3BG;;;EAAU,cAAA;AFgCb;AE5BG;;;EAAU,cAAA;AFiCb;AE7BG;;;EAAU,aAAA;AFkCb;AE9BG;;;EAAU,aAAA;AFmCb;;AE7BA;;;;;;;;;;EAAA;AAYA;;;EAGC;;IAAA;AFiCD;AE1BE;;;EACC,6BAAA;AF8BH;AE1BG;;;EAAU,iBAAA;AF+Bb;;AGpKA;EACC,WAAA;EACA,SAAA;AHuKD;;AGhKC;;EACC,uBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,sCAAA;EACA,UAAA;EACA,iBAAA;EACA,2BAAA;EACA,6BAAA;EACA,WAAA;EACA,UAAA;AHoKF;AGlKE;;EACC,cAAA;EACA,0BAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,QAAA;EACA,2BAAA;EACA,4BAAA;EAEA,mCAAA;EACA,kCAAA;AHoKH;AGjKE;;EAAmB,mBAAA;AHqKrB;AGlKG;;EACC,gBAAA;EACA,YAAA;AHqKJ;AGhKG;;EACC,gBAAA;EACA,YAAA;AHmKJ;;AG5JC;EACC,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;EACA,UAAA;AH+JF;AG7JE;EACC,cAAA;EACA,YAAA;AH+JH;AG7JG;EACC,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,WAAA;AH+JJ;AGzJE;EAAe,WAAA;AH4JjB;AG3JE;EAAe,YAAA;AH8JjB;;AGzJC;EAAoB,gBAAA;AH6JrB;;AGzJC;EACC,aAAA;AH4JF;AG1JE;EAAU,UAAA;AH6JZ;;AGzJA;EAAgC,qBAAA;AH6JhC;;AGxJE;;EACC,iBAAA;AH4JH;;AC9PC;;EACC,aAAA;ADkQF","file":"style.css"} \ No newline at end of file +{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_slider.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EAAA;ACEE;;;EACC,gBAAA;EACA,iBAAA;AFKH;AEKG;;;;;;;;;;;;;;;EAAU,YAAA;AFYb;AERG;;;EAAU,YAAA;AFab;AETG;;;EAAU,YAAA;AFcb;AEVG;;;EAAU,YAAA;AFeb;AEXG;;;EAAU,aAAA;AFgBb;AEZG;;;EAAU,YAAA;AFiBb;AEZG;;;;;EAAU,YAAA;AFmBb;AEfG;;;EAAU,YAAA;AFoBb;AEhBG;;;EAAU,YAAA;AFqBb;AEjBG;;;EAAU,YAAA;AFsBb;AElBG;;;EAAU,YAAA;AFuBb;AEnBG;;;EAAU,YAAA;AFwBb;AEpBG;;;EAAU,aAAA;AFyBb;AErBG;;;EAAU,aAAA;AF0Bb;AEtBG;;;EAAU,aAAA;AF2Bb;AEtBG;;;;;EAAU,aAAA;AF6Bb;AEzBG;;;EAAU,cAAA;AF8Bb;AE1BG;;;EAAU,cAAA;AF+Bb;AE3BG;;;EAAU,cAAA;AFgCb;AE5BG;;;EAAU,cAAA;AFiCb;AE7BG;;;EAAU,aAAA;AFkCb;AE9BG;;;EAAU,aAAA;AFmCb;;AE7BA;;;;;;;;;;EAAA;AAmBE;;;EACC,6BAAA;AF0BH;AEtBG;;;EAAU,iBAAA;AF2Bb;;AG7JA;EACC,WAAA;EACA,SAAA;AHgKD;;AGzJC;;EACC,uBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,sCAAA;EACA,UAAA;EACA,iBAAA;EACA,2BAAA;EACA,6BAAA;EACA,WAAA;EACA,UAAA;AH6JF;AG3JE;;EACC,cAAA;EACA,0BAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,QAAA;EACA,2BAAA;EACA,4BAAA;EAEA,mCAAA;EACA,kCAAA;AH6JH;AG1JE;;EAAmB,mBAAA;AH8JrB;AG3JG;;EACC,gBAAA;EACA,YAAA;AH8JJ;AGzJG;;EACC,gBAAA;EACA,YAAA;AH4JJ;;AGrJC;EACC,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;EACA,UAAA;AHwJF;AGtJE;EACC,cAAA;EACA,YAAA;AHwJH;AGtJG;EACC,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,WAAA;AHwJJ;AGlJE;EAAe,WAAA;AHqJjB;AGpJE;EAAe,YAAA;AHuJjB;;AGlJC;EAAoB,gBAAA;AHsJrB;;AGlJC;EACC,aAAA;AHqJF;AGnJE;EAAU,UAAA;AHsJZ;;AGlJA;EAAgC,qBAAA;AHsJhC;;AGjJE;;EACC,iBAAA;AHqJH;;ACvPC;;EACC,aAAA;AD2PF","file":"style.css"} \ No newline at end of file diff --git a/assets/css/style.scss b/assets/css/style.scss index 047822cb..78f72409 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -4,7 +4,7 @@ @import 'scss/icons'; @import 'scss/slider'; - +@import 'scss/additional'; .lsx-itinerary-wrapper, .lsx-units-wrapper { @@ -12,4 +12,3 @@ display: none; } } - \ No newline at end of file diff --git a/assets/js/src/custom.js b/assets/js/src/custom.js index 6545dc53..2ce8c27d 100755 --- a/assets/js/src/custom.js +++ b/assets/js/src/custom.js @@ -208,7 +208,7 @@ if ( window.location.hash ) { draggable: false, infinite: true, swipe: false, - dots: true, + dots: false, slidesToShow: 3, slidesToScroll: 1, autoplay: false, @@ -217,23 +217,25 @@ if ( window.location.hash ) { //appendDots: $this.parent(), responsive: [ { - breakpoint: 1279, + breakpoint: 1028, settings: { slidesToShow: 2, slidesToScroll: 1, - draggable: false, - arrows: true, - swipe: false, + draggable: true, + arrows: false, + swipe: true, + dots: true, } }, { - breakpoint: lsx_to_params.slickSlider.mobile.breakpoint, + breakpoint: 782, settings: { slidesToShow: 1, slidesToScroll: 1, draggable: true, arrows: false, swipe: true, + dots: true, } } ] From ccabb3ad4d5b9d5adbdf7bdc0ff7d9d2f1d1ade0 Mon Sep 17 00:00:00 2001 From: Justinabes007 <103206213+Justinabes007@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:21:21 +0200 Subject: [PATCH 35/77] Updates to SCSS file --- assets/css/scss/_additional.scss | 94 +++++++++ assets/css/scss/_slider.scss | 318 +++++++++++++++++++++---------- 2 files changed, 313 insertions(+), 99 deletions(-) diff --git a/assets/css/scss/_additional.scss b/assets/css/scss/_additional.scss index e69de29b..b5dac513 100644 --- a/assets/css/scss/_additional.scss +++ b/assets/css/scss/_additional.scss @@ -0,0 +1,94 @@ +/* Additional information specific styles */ + +/* Fast Facts Wrapper */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { + display: flex; + align-items: flex-start; /* Align content in this group to the top */ + gap: 5px; /* Space between icon and text */ + flex-shrink: 0; /* Prevent group from shrinking */ + } + + /* Style the image icon */ + .fast-facts-wrapper > .wp-block-group .wp-block-image img { + width: 20px; /* Fixed width */ + height: 20px; /* Fixed height */ + display: inline-block; + object-fit: contain; /* Ensure image doesn't stretch or distort */ + } + + /* Styling for the label (e.g., "Special Interests:") */ + .fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { + margin: 0; + white-space: nowrap; /* Prevent wrapping for label */ + vertical-align: middle; /* Align text with the middle of the icon */ + line-height: 1.2; /* Improve readability */ + display: inline-block; /* Keep text inline */ + } + + /* Styling for the flowing text */ + .fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { + display: flex; + flex-wrap: nowrap; /* Keep the text flowing inline */ + white-space: normal; /* Allow wrapping for text if it overflows */ + overflow-wrap: break-word; /* Ensure long words wrap correctly */ + word-break: break-word; /* Break long words when needed */ + flex: 1; /* Allow the container to use available space */ + align-items: flex-start; /* Ensure text starts at the top */ + } + + /* Specific styling for the text content */ + .fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { + white-space: normal; /* Allow wrapping for long text */ + overflow-wrap: break-word; /* Break words when needed */ + word-break: break-word; /* Break words on legacy browsers */ + line-height: 1.4; /* Improve readability */ + text-transform: capitalize; /* Capitalize text */ + padding: 0; /* Ensure no unnecessary padding */ + margin: 0; /* Remove extra margins */ + display: inline; /* Ensure the text flows inline with the label */ + } + + /* Facilities List */ + .facilities-list li::marker { + display: none; + } + + .facilities-list { + padding-left: 0 !important; + } + + .facilities-list li { + margin-left: 10px; + list-style: none; /* Remove default list marker */ + position: relative; /* Position for pseudo-element */ + } + + .facilities-list li::before { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); /* Center the icon vertically */ + width: 20px; /* Adjust the size of the tick icon */ + height: 20px; + background-image: url('../../img/tick.svg'); /* Replace with the path to your tick.svg */ + background-size: contain; + background-repeat: no-repeat; + left: -28px; + } + + /* Additional Info */ + .additional-info .wp-block-group.content .read-more-btn, + .additional-info .wp-block-group.content .read-less-btn { + color: #0073aa; + cursor: pointer; + font-weight: bold; + } + + .additional-info .wp-block-group.content .read-more-btn:hover { + text-decoration: underline; + } + + .additional-info .wp-block-group.content .read-less-btn { + display: none; + } \ No newline at end of file diff --git a/assets/css/scss/_slider.scss b/assets/css/scss/_slider.scss index c8f98a3c..d87455a5 100644 --- a/assets/css/scss/_slider.scss +++ b/assets/css/scss/_slider.scss @@ -1,112 +1,232 @@ -.slick-lightbox-close { - right: 32px; - top: 32px; -} - - +/* Slider specific code */ +/* Slick Slider Arrows and Lightbox styles */ .lsx-to-slider, .slick-lightbox-inner { - .slick-arrow { - background: transparent; - border-radius: 50%; - border-style: solid; - border-width: 2px; - font: 0/0 a; - height: 4rem; - margin-top: calc((2.25rem - 17px) / 2); - padding: 0; - text-shadow: none; - transform: translateY(-50%); - transition: border 300ms ease; - width: 4rem; - z-index: 3; - - &:before { - display: block; - font-family: 'FontAwesome'; - font-size: 3rem; - line-height: 1; - position: absolute; - text-rendering: auto; - top: 47%; - transform: translateY(-50%); - transition: color 300ms ease; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - &.slick-disabled { cursor: not-allowed; } - - &.slick-prev { - &:before { - content: '\f104'; - left: 1.1rem; - } - } - - &.slick-next { - &:before { - content: '\f105'; - left: 1.5rem; - } - } - } -} - -.lsx-to-slider { - .slick-dots:not(.dropdown-menu) { - align-items: center; - display: flex; - flex-flow: row wrap; - height: auto; - justify-content: center; - list-style: none; - margin: 2rem 0 0; - padding: 0; - - & > li { - line-height: 1; - padding: 5px; - - & > button { - background: transparent; - border-style: solid; - border-width: 1px; - font: 0/0 a; - height: 12px; - transition: all 300ms ease-in-out; - width: 4rem; - } - } - } - - .slick-arrow { - &.slick-prev { left: -4rem; } - &.slick-next { right: -4rem; } - } -} - -.lsx-to-slider { - &.slider-disabled { overflow: hidden; } + .slick-arrow { + background: transparent; + border-radius: 50%; + position: absolute; + top: 50%; + border-style: solid; + border-color: #fff; + border-width: 2px; + font: 0/0 a; + height: 4rem; + margin-top: calc((2.25rem - 17px) / 2); + padding: 0; + text-shadow: none; + transform: translateY(-50%); + transition: border 300ms ease; + width: 4rem; + z-index: 3; + color: white; + + &:before { + display: block; + font-family: "slick"; + color: white; + font-size: 3rem; + line-height: 1; + position: absolute; + text-rendering: auto; + top: 47%; + transform: translateY(-50%); + transition: color 300ms ease; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + &.slick-disabled { + cursor: not-allowed; + } + + &.slick-prev { + &:before { + content: ''; /* Remove font icon */ + background: url('../../img/left-arrow-new.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 10px; + } + } + + &.slick-next { + &:before { + content: ''; /* Remove font icon */ + background: url('../../img/right-arrow.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 12px; + } + } + } + + .slick-dots:not(.dropdown-menu) { + align-items: center; + display: flex; + flex-flow: row wrap; + height: auto; + justify-content: center; + list-style: none; + margin: 2rem 0 0; + padding: 0; + + & > li { + line-height: 1; + padding: 5px; + + & > button { + background: transparent; + border-style: solid; + border-width: 1px; + font: 0/0 a; + height: 12px; + transition: all 300ms ease-in-out; + width: 4rem; + } + } + } + + .slick-arrow { + &.slick-prev { left: -4rem; } + &.slick-next { right: -4rem; } + } + + &.slider-disabled { + overflow: hidden; + } } +/* Lightbox Arrow */ .slick-lightbox-inner { - .slick-arrow { - opacity: .75; + .slick-arrow { + opacity: 0.75; - &:hover { opacity: 1; } - } + &:hover { opacity: 1; } + } } -.slick-lightbox-slick-caption { display: inline-block; } +.slick-lightbox-slick-caption { + display: inline-block; +} .lsx-to-slider, .lsx-post-carousel-items { - .slick-slide { - .lazy-hidden { - max-height: 154px; - } - } + .slick-slide { + .lazy-hidden { + max-height: 154px; + } + } +} + +/* Additional Slider Styles */ +.slick-lightbox-close { + right: 32px; + top: 32px; +} + +/* Slick Slider Arrows and Lightbox styles */ +.wp-block-query.lsx-to-slider{ + .slick-arrow { + background: transparent; + border-radius: 50%; + position: absolute; + top: 50%; + border-style: solid; + border-color: #fff; + border-width: 2px; + font: 0/0 a; + height: 4rem; + margin-top: calc((2.25rem - 17px) / 2); + padding: 0; + text-shadow: none; + transform: translateY(-50%); + transition: border 300ms ease; + width: 4rem; + z-index: 3; + color: white; + + &:before { + display: block; + font-family: "slick"; + color: white; + font-size: 3rem; + line-height: 1; + position: absolute; + text-rendering: auto; + top: 47%; + transform: translateY(-50%); + transition: color 300ms ease; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + + &.slick-disabled { + cursor: not-allowed; + } + + &.slick-prev { + &:before { + content: ''; /* Remove font icon */ + background: url('../../img/left-arrow-new.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 10px; + } + } + + &.slick-next { + &:before { + content: ''; /* Remove font icon */ + background: url('../../img/right-arrow.svg') no-repeat center center; + width: 40px; + height: 40px; + display: inline-block; + left: 12px; + } + } + } + + .slick-dots:not(.dropdown-menu) { + align-items: center; + display: flex; + flex-flow: row wrap; + height: auto; + justify-content: center; + list-style: none; + margin: 2rem 0 0; + padding: 0; + + & > li { + line-height: 1; + padding: 5px; + + & > button { + background: transparent; + border-style: solid; + border-width: 1px; + font: 0/0 a; + height: 12px; + transition: all 300ms ease-in-out; + width: 4rem; + } + } + } + + .slick-arrow { + &.slick-prev { + left: -4rem; + } + &.slick-next { + right: -4rem; + } + } + + &.slider-disabled { + overflow: hidden; + } } \ No newline at end of file From 14d62aaa7c181aec8bc312f2459317c47f0a65f9 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 12 Dec 2024 14:47:51 +0200 Subject: [PATCH 36/77] Updating the SASS files --- assets/css/scss/_slider.scss | 344 ++++++++++++++++------------------- assets/css/style.css | 321 ++++++++++++++++---------------- assets/css/style.css.map | 2 +- assets/css/style.scss | 2 +- 4 files changed, 311 insertions(+), 358 deletions(-) diff --git a/assets/css/scss/_slider.scss b/assets/css/scss/_slider.scss index d87455a5..17acd340 100644 --- a/assets/css/scss/_slider.scss +++ b/assets/css/scss/_slider.scss @@ -1,42 +1,96 @@ -/* Slider specific code */ +.wp-block-query { + &.lsx-to-slider { + gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--small); + position: relative; + + .slick-arrow { + cursor: pointer; + border-color: #000 !important; + height: 30px; + width: 30px; + + &:before { + border-color: #000 !important; + height: 30px; + width: 30px; + } + + &.slick-prev:before { + background: url('../img/left-arrow-dark.svg') no-repeat center center; + width: 20px; + left: 3px; + height: 20px; + } + + &.slick-next:before { + background: url('../img/right-arrow-dark.svg') no-repeat center center; + width: 20px; + left: 3px; + height: 20px; + } + } + + .slick-slide { + padding: 15px !important; + } + } +} + +.slick-lightbox-close { + right: 52px; + top: 35px; + + &:before { + font-size: 40px; + } +} -/* Slick Slider Arrows and Lightbox styles */ .lsx-to-slider, .slick-lightbox-inner { .slick-arrow { - background: transparent; - border-radius: 50%; - position: absolute; - top: 50%; - border-style: solid; - border-color: #fff; - border-width: 2px; - font: 0/0 a; - height: 4rem; - margin-top: calc((2.25rem - 17px) / 2); - padding: 0; - text-shadow: none; - transform: translateY(-50%); - transition: border 300ms ease; - width: 4rem; - z-index: 3; - color: white; - - &:before { - display: block; - font-family: "slick"; - color: white; - font-size: 3rem; - line-height: 1; - position: absolute; - text-rendering: auto; - top: 47%; - transform: translateY(-50%); - transition: color 300ms ease; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } + background: transparent; + border-radius: 50%; + position: absolute; + top: 50%; + border-style: solid; + border-color: #fff; + border-width: 2px; + font: 0/0 a; + height: 4rem; + margin-top: calc((2.25rem - 17px) / 2); + padding: 0; + text-shadow: none; + transform: translateY(-50%); + transition: border 300ms ease; + width: 4rem; + z-index: 3; + color: white; + + &:before { + display: block; + font-family: "slick"; + color: white; + font-size: 3rem; + line-height: 1; + position: absolute; + text-rendering: auto; + top: 47%; + transform: translateY(-50%); + transition: color 300ms ease; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + } +} +.slick-prev svg, +.slick-next svg { + color: white; +} + +.lsx-to-slider, +.slick-lightbox-inner { + .slick-arrow { &.slick-disabled { cursor: not-allowed; } @@ -44,7 +98,6 @@ &.slick-prev { &:before { content: ''; /* Remove font icon */ - background: url('../../img/left-arrow-new.svg') no-repeat center center; width: 40px; height: 40px; display: inline-block; @@ -55,7 +108,6 @@ &.slick-next { &:before { content: ''; /* Remove font icon */ - background: url('../../img/right-arrow.svg') no-repeat center center; width: 40px; height: 40px; display: inline-block; @@ -63,170 +115,82 @@ } } } +} - .slick-dots:not(.dropdown-menu) { - align-items: center; - display: flex; - flex-flow: row wrap; - height: auto; - justify-content: center; - list-style: none; - margin: 2rem 0 0; - padding: 0; - - & > li { - line-height: 1; - padding: 5px; - - & > button { - background: transparent; - border-style: solid; - border-width: 1px; - font: 0/0 a; - height: 12px; - transition: all 300ms ease-in-out; - width: 4rem; - } - } - } - - .slick-arrow { - &.slick-prev { left: -4rem; } - &.slick-next { right: -4rem; } - } - - &.slider-disabled { - overflow: hidden; - } +.lsx-to-slider { + .slick-dots:not(.dropdown-menu) { + align-items: center; + display: flex; + flex-flow: row wrap; + height: auto; + justify-content: center; + list-style: none; + margin: 2rem 0 0; + padding: 0; + + > li { + line-height: 1; + padding: 5px; + + > button { + background: transparent; + border-style: solid; + border-width: 1px; + font: 0/0 a; + height: 12px; + transition: all 300ms ease-in-out; + width: 4rem; + } + } + } + + .slick-arrow { + &.slick-prev { + left: -4rem; + } + + &.slick-next { + right: -4rem; + } + } + + &.slider-disabled { + overflow: hidden; + } + + .slick-slide { + .lazy-hidden { + max-height: 154px; + } + } } -/* Lightbox Arrow */ .slick-lightbox-inner { - .slick-arrow { - opacity: 0.75; - - &:hover { opacity: 1; } - } + .slick-arrow { + opacity: 0.75; + + &:hover { + opacity: 1; + } + } } .slick-lightbox-slick-caption { - display: inline-block; + display: inline-block; } -.lsx-to-slider, .lsx-post-carousel-items { - .slick-slide { - .lazy-hidden { - max-height: 154px; - } - } + .slick-slide { + .lazy-hidden { + max-height: 154px; + } + } } -/* Additional Slider Styles */ -.slick-lightbox-close { - right: 32px; - top: 32px; +.lsx-itinerary-wrapper, +.lsx-units-wrapper { + .hidden { + display: none; + } } - -/* Slick Slider Arrows and Lightbox styles */ -.wp-block-query.lsx-to-slider{ - .slick-arrow { - background: transparent; - border-radius: 50%; - position: absolute; - top: 50%; - border-style: solid; - border-color: #fff; - border-width: 2px; - font: 0/0 a; - height: 4rem; - margin-top: calc((2.25rem - 17px) / 2); - padding: 0; - text-shadow: none; - transform: translateY(-50%); - transition: border 300ms ease; - width: 4rem; - z-index: 3; - color: white; - - &:before { - display: block; - font-family: "slick"; - color: white; - font-size: 3rem; - line-height: 1; - position: absolute; - text-rendering: auto; - top: 47%; - transform: translateY(-50%); - transition: color 300ms ease; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - &.slick-disabled { - cursor: not-allowed; - } - - &.slick-prev { - &:before { - content: ''; /* Remove font icon */ - background: url('../../img/left-arrow-new.svg') no-repeat center center; - width: 40px; - height: 40px; - display: inline-block; - left: 10px; - } - } - - &.slick-next { - &:before { - content: ''; /* Remove font icon */ - background: url('../../img/right-arrow.svg') no-repeat center center; - width: 40px; - height: 40px; - display: inline-block; - left: 12px; - } - } - } - - .slick-dots:not(.dropdown-menu) { - align-items: center; - display: flex; - flex-flow: row wrap; - height: auto; - justify-content: center; - list-style: none; - margin: 2rem 0 0; - padding: 0; - - & > li { - line-height: 1; - padding: 5px; - - & > button { - background: transparent; - border-style: solid; - border-width: 1px; - font: 0/0 a; - height: 12px; - transition: all 300ms ease-in-out; - width: 4rem; - } - } - } - - .slick-arrow { - &.slick-prev { - left: -4rem; - } - &.slick-next { - right: -4rem; - } - } - - &.slider-disabled { - overflow: hidden; - } -} \ No newline at end of file + \ No newline at end of file diff --git a/assets/css/style.css b/assets/css/style.css index 1895e53a..d8d306af 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -157,18 +157,146 @@ margin-right: 0px; } +/* Additional information specific styles */ +/* Fast Facts Wrapper */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { + display: flex; + align-items: flex-start; /* Align content in this group to the top */ + gap: 5px; /* Space between icon and text */ + flex-shrink: 0; /* Prevent group from shrinking */ +} + +/* Style the image icon */ +.fast-facts-wrapper > .wp-block-group .wp-block-image img { + width: 20px; /* Fixed width */ + height: 20px; /* Fixed height */ + display: inline-block; + -o-object-fit: contain; + object-fit: contain; /* Ensure image doesn't stretch or distort */ +} + +/* Styling for the label (e.g., "Special Interests:") */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { + margin: 0; + white-space: nowrap; /* Prevent wrapping for label */ + vertical-align: middle; /* Align text with the middle of the icon */ + line-height: 1.2; /* Improve readability */ + display: inline-block; /* Keep text inline */ +} + +/* Styling for the flowing text */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { + display: flex; + flex-wrap: nowrap; /* Keep the text flowing inline */ + white-space: normal; /* Allow wrapping for text if it overflows */ + overflow-wrap: break-word; /* Ensure long words wrap correctly */ + word-break: break-word; /* Break long words when needed */ + flex: 1; /* Allow the container to use available space */ + align-items: flex-start; /* Ensure text starts at the top */ +} + +/* Specific styling for the text content */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { + white-space: normal; /* Allow wrapping for long text */ + overflow-wrap: break-word; /* Break words when needed */ + word-break: break-word; /* Break words on legacy browsers */ + line-height: 1.4; /* Improve readability */ + text-transform: capitalize; /* Capitalize text */ + padding: 0; /* Ensure no unnecessary padding */ + margin: 0; /* Remove extra margins */ + display: inline; /* Ensure the text flows inline with the label */ +} + +/* Facilities List */ +.facilities-list li::marker { + display: none; +} + +.facilities-list { + padding-left: 0 !important; +} + +.facilities-list li { + margin-left: 10px; + list-style: none; /* Remove default list marker */ + position: relative; /* Position for pseudo-element */ +} + +.facilities-list li::before { + content: ""; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); /* Center the icon vertically */ + width: 20px; /* Adjust the size of the tick icon */ + height: 20px; + background-image: url("../../img/tick.svg"); /* Replace with the path to your tick.svg */ + background-size: contain; + background-repeat: no-repeat; + left: -28px; +} + +/* Additional Info */ +.additional-info .wp-block-group.content .read-more-btn, +.additional-info .wp-block-group.content .read-less-btn { + color: #0073aa; + cursor: pointer; + font-weight: bold; +} + +.additional-info .wp-block-group.content .read-more-btn:hover { + text-decoration: underline; +} + +.additional-info .wp-block-group.content .read-less-btn { + display: none; +} + +.wp-block-query.lsx-to-slider { + gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--small); + position: relative; +} +.wp-block-query.lsx-to-slider .slick-arrow { + cursor: pointer; + border-color: #000 !important; + height: 30px; + width: 30px; +} +.wp-block-query.lsx-to-slider .slick-arrow:before { + border-color: #000 !important; + height: 30px; + width: 30px; +} +.wp-block-query.lsx-to-slider .slick-arrow.slick-prev:before { + background: url("../img/left-arrow-dark.svg") no-repeat center center; + width: 20px; + left: 3px; + height: 20px; +} +.wp-block-query.lsx-to-slider .slick-arrow.slick-next:before { + background: url("../img/right-arrow-dark.svg") no-repeat center center; + width: 20px; + left: 3px; + height: 20px; +} +.wp-block-query.lsx-to-slider .slick-slide { + padding: 15px !important; +} + .slick-lightbox-close { right: 52px; top: 35px; } -.slick-lightbox-close:before{font-size:40px;} +.slick-lightbox-close:before { + font-size: 40px; +} .lsx-to-slider .slick-arrow, .slick-lightbox-inner .slick-arrow { background: transparent; border-radius: 50%; - position:absolute; - top:50%; + position: absolute; + top: 50%; border-style: solid; border-color: #fff; border-width: 2px; @@ -183,8 +311,6 @@ z-index: 3; color: white; } -.slick-prev svg, .slick-next svg{color: white;} - .lsx-to-slider .slick-arrow:before, .slick-lightbox-inner .slick-arrow:before { display: block; @@ -200,48 +326,32 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + +.slick-prev svg, +.slick-next svg { + color: white; +} + .lsx-to-slider .slick-arrow.slick-disabled, .slick-lightbox-inner .slick-arrow.slick-disabled { cursor: not-allowed; } .lsx-to-slider .slick-arrow.slick-prev:before, .slick-lightbox-inner .slick-arrow.slick-prev:before { - content: ''; /* Remove font icon */ - background: url('../img/left-arrow-new.svg') no-repeat center center; - width: 40px; - height: 40px; - display: inline-block; - left: 10px; + content: ""; /* Remove font icon */ + width: 40px; + height: 40px; + display: inline-block; + left: 10px; } .lsx-to-slider .slick-arrow.slick-next:before, .slick-lightbox-inner .slick-arrow.slick-next:before { - content: ''; /* Remove font icon */ - background: url('../img/right-arrow.svg') no-repeat center center; - width: 40px; - height: 40px; - display: inline-block; - left: 12px; -} -.wp-block-query.lsx-to-slider{position:relative;} -.wp-block-query.lsx-to-slider .slick-arrow:before, -.wp-block-query .slick-lightbox-inner .slick-arrow:before{ border-color: #000!important; -height:30px; width:30px;} - -.wp-block-query.lsx-to-slider .slick-arrow, -.slick-lightbox-inner .slick-arrow {cursor: pointer; - border-color: #000!important;height:30px; width:30px;} - -.wp-block-query.lsx-to-slider .slick-arrow.slick-prev:before, -.wp-block-query .slick-lightbox-inner .slick-arrow.slick-prev:before{background: url('../img/left-arrow-dark.svg') no-repeat center center; - width: 20px;left: 3px; - height: 20px;} - -.wp-block-query.lsx-to-slider .slick-arrow.slick-next:before, -.wp-block-query .slick-lightbox-inner .slick-arrow.slick-next:before{background: url('../img/right-arrow-dark.svg') no-repeat center center; - width: 20px;left: 3px; - height: 20px;} - - .wp-block-query.lsx-to-slider .slick-slide{padding:15px!important;} + content: ""; /* Remove font icon */ + width: 40px; + height: 40px; + display: inline-block; + left: 12px; +} .lsx-to-slider .slick-dots:not(.dropdown-menu) { align-items: center; @@ -272,10 +382,12 @@ height:30px; width:30px;} .lsx-to-slider .slick-arrow.slick-next { right: -4rem; } - .lsx-to-slider.slider-disabled { overflow: hidden; } +.lsx-to-slider .slick-slide .lazy-hidden { + max-height: 154px; +} .slick-lightbox-inner .slick-arrow { opacity: 0.75; @@ -288,7 +400,6 @@ height:30px; width:30px;} display: inline-block; } -.lsx-to-slider .slick-slide .lazy-hidden, .lsx-post-carousel-items .slick-slide .lazy-hidden { max-height: 154px; } @@ -297,131 +408,9 @@ height:30px; width:30px;} .lsx-units-wrapper .hidden { display: none; } -.wp-block-query.lsx-to-slider{gap: var(--wp--preset--spacing--small) var(--wp--preset--spacing--small);} - -/*# sourceMappingURL=style.css.map */ - -/* Inner group for icon and label */ -.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { - display: flex; - align-items: flex-start; /* Align content in this group to the top */ - gap: 5px; /* Space between icon and text */ - flex-shrink: 0; /* Prevent group from shrinking */ -} - -/* Style the image icon */ -.fast-facts-wrapper > .wp-block-group .wp-block-image img { - width: 20px; /* Fixed width */ - height: 20px; /* Fixed height */ - display: inline-block; - object-fit: contain; /* Ensure image doesn't stretch or distort */ -} -/* Styling for the label (e.g., "Special Interests:") */ -.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { - margin: 0; - white-space: nowrap; /* Prevent wrapping for label */ - vertical-align: middle; /* Align text with the middle of the icon */ - line-height: 1.2; /* Improve readability */ - display: inline-block; /* Keep text inline */ -} - -/* Styling for the flowing text */ -.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { - display: flex; - flex-wrap: nowrap; /* Keep the text flowing inline */ - white-space: normal; /* Allow wrapping for text if it overflows */ - overflow-wrap: break-word; /* Ensure long words wrap correctly */ - word-break: break-word; /* Break long words when needed */ - flex: 1; /* Allow the container to use available space */ - align-items: flex-start; /* Ensure text starts at the top */ -} - -/* Specific styling for the text content */ -.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { - white-space: normal; /* Allow wrapping for long text */ - overflow-wrap: break-word; /* Break words when needed */ - word-break: break-word; /* Break words on legacy browsers */ - line-height: 1.4; /* Improve readability */ - text-transform: capitalize; /* Capitalize text */ - padding: 0; /* Ensure no unnecessary padding */ - margin: 0; /* Remove extra margins */ - display: inline; /* Ensure the text flows inline with the label */ -} - -.facilities-list li::marker{display:none;} -.facilities-list{padding-left:0!important;} - -.facilities-list li { - margin-left: 10px; - list-style: none; /* Remove default list marker */ - position: relative; /* Position for pseudo-element */} - -.facilities-list li::before{ - content: ''; - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); /* Center the icon vertically */ - width: 20px; /* Adjust the size of the tick icon */ - height: 20px; - background-image: url('../img/tick.svg'); /* Replace with the path to your tick.svg */ - background-size: contain; - background-repeat: no-repeat; - left:-28px -} - -.additional-info .wp-block-group.content .read-more-btn,.additional-info .wp-block-group.content .read-less-btn{ - color: #0073aa; - cursor: pointer; - font-weight: bold; -} - -.additional-info .wp-block-group.content .read-more-btn:hover { - text-decoration: underline; -} - -.additional-info .wp-block-group.content .read-less-btn{display:none;} - -@media (min-width: 800px) { -.single-tour-operator .toggle-button {display:none;} -} - -/* Optional: Responsive adjustments for smaller screens */ -@media (max-width: 768px) { - - /* Styling for the toggle button */ -.single-tour-operator .toggle-button { - display: inline-flex; - align-items: center; - padding: 5px; - background: none; - border: none; - cursor: pointer; - font-size: 14px; - color: var(--wp--preset--color--contrast); -} - -/* Styling for the SVG icons */ -.single-tour-operator .toggle-icon { - width: 16px; - height: 16px; - fill: var(--wp--preset--color--contrast); - margin-left: 5px; -} - -/* Collapsed state for the second wp-block-group */ -.single-tour-operator section.wp-block-group .wp-block-group.collapsed { - display: none; /* Hide the content */ +.lsx-itinerary-wrapper .hidden, +.lsx-units-wrapper .hidden { + display: none; } - - - .fast-facts-wrapper > .wp-block-group { - flex-wrap: wrap; /* Allow wrapping for better readability */ - gap: 5px; - } - - .fast-facts-wrapper > .wp-block-group .wp-block-group.is-layout-flex:last-child { - flex-wrap: wrap; /* Allow text to wrap on smaller screens */ - } -} \ No newline at end of file +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/assets/css/style.css.map b/assets/css/style.css.map index 3e9b98be..4b9562ef 100644 --- a/assets/css/style.css.map +++ b/assets/css/style.css.map @@ -1 +1 @@ -{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_slider.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;EAAA;ACEE;;;EACC,gBAAA;EACA,iBAAA;AFKH;AEKG;;;;;;;;;;;;;;;EAAU,YAAA;AFYb;AERG;;;EAAU,YAAA;AFab;AETG;;;EAAU,YAAA;AFcb;AEVG;;;EAAU,YAAA;AFeb;AEXG;;;EAAU,aAAA;AFgBb;AEZG;;;EAAU,YAAA;AFiBb;AEZG;;;;;EAAU,YAAA;AFmBb;AEfG;;;EAAU,YAAA;AFoBb;AEhBG;;;EAAU,YAAA;AFqBb;AEjBG;;;EAAU,YAAA;AFsBb;AElBG;;;EAAU,YAAA;AFuBb;AEnBG;;;EAAU,YAAA;AFwBb;AEpBG;;;EAAU,aAAA;AFyBb;AErBG;;;EAAU,aAAA;AF0Bb;AEtBG;;;EAAU,aAAA;AF2Bb;AEtBG;;;;;EAAU,aAAA;AF6Bb;AEzBG;;;EAAU,cAAA;AF8Bb;AE1BG;;;EAAU,cAAA;AF+Bb;AE3BG;;;EAAU,cAAA;AFgCb;AE5BG;;;EAAU,cAAA;AFiCb;AE7BG;;;EAAU,aAAA;AFkCb;AE9BG;;;EAAU,aAAA;AFmCb;;AE7BA;;;;;;;;;;EAAA;AAmBE;;;EACC,6BAAA;AF0BH;AEtBG;;;EAAU,iBAAA;AF2Bb;;AG7JA;EACC,WAAA;EACA,SAAA;AHgKD;;AGzJC;;EACC,uBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,sCAAA;EACA,UAAA;EACA,iBAAA;EACA,2BAAA;EACA,6BAAA;EACA,WAAA;EACA,UAAA;AH6JF;AG3JE;;EACC,cAAA;EACA,0BAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,oBAAA;EACA,QAAA;EACA,2BAAA;EACA,4BAAA;EAEA,mCAAA;EACA,kCAAA;AH6JH;AG1JE;;EAAmB,mBAAA;AH8JrB;AG3JG;;EACC,gBAAA;EACA,YAAA;AH8JJ;AGzJG;;EACC,gBAAA;EACA,YAAA;AH4JJ;;AGrJC;EACC,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,YAAA;EACA,uBAAA;EACA,gBAAA;EACA,gBAAA;EACA,UAAA;AHwJF;AGtJE;EACC,cAAA;EACA,YAAA;AHwJH;AGtJG;EACC,uBAAA;EACA,mBAAA;EACA,iBAAA;EACA,WAAA;EACA,YAAA;EACA,iCAAA;EACA,WAAA;AHwJJ;AGlJE;EAAe,WAAA;AHqJjB;AGpJE;EAAe,YAAA;AHuJjB;;AGlJC;EAAoB,gBAAA;AHsJrB;;AGlJC;EACC,aAAA;AHqJF;AGnJE;EAAU,UAAA;AHsJZ;;AGlJA;EAAgC,qBAAA;AHsJhC;;AGjJE;;EACC,iBAAA;AHqJH;;ACvPC;;EACC,aAAA;AD2PF","file":"style.css"} \ No newline at end of file +{"version":3,"sources":["style.css","style.scss","scss/_icons.scss","scss/_additional.scss","scss/_slider.scss"],"names":[],"mappings":"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","file":"style.css"} \ No newline at end of file diff --git a/assets/css/style.scss b/assets/css/style.scss index 78f72409..e7f0bb64 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -3,8 +3,8 @@ */ @import 'scss/icons'; -@import 'scss/slider'; @import 'scss/additional'; +@import 'scss/slider'; .lsx-itinerary-wrapper, .lsx-units-wrapper { From 96d78ba297fa04b3e424e06a9d0f3715f44e8655 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 12 Dec 2024 16:21:43 +0200 Subject: [PATCH 37/77] Adding in the fixes for the facilities, gallery and unit sections. --- assets/js/blocks/accommodation.js | 28 ++++++++++++++++++++++------ includes/patterns/gallery.php | 20 +++++++++++--------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/assets/js/blocks/accommodation.js b/assets/js/blocks/accommodation.js index 2c71bbb7..bbd53fa1 100644 --- a/assets/js/blocks/accommodation.js +++ b/assets/js/blocks/accommodation.js @@ -29,7 +29,8 @@ wp.domReady(() => { bottom: 0 } } - } + }, + tagName: "section" }, innerBlocks: [ ['core/group', @@ -73,12 +74,26 @@ wp.domReady(() => { ] ] ], - [ - "core/paragraph", + ['core/group', { - placeholder: "Replace this with the Rooms block, and select a pattern.", - align: "center", + align: 'wide', + style: { + spacing: { + blockGap: 'var:preset|spacing|small' + } + }, + layout: { + type: 'constrained', + } }, + [ + ["core/paragraph", + { + placeholder: "Replace this with the Rooms block, and select a pattern.", + align: "center", + } + ] + ] ] ], supports: { @@ -1091,7 +1106,8 @@ wp.domReady(() => { }, layout: { type: 'constrained' - } + }, + tagName: "section" }, innerBlocks: [ ['core/group', { diff --git a/includes/patterns/gallery.php b/includes/patterns/gallery.php index 54e5d746..aa4e53f0 100644 --- a/includes/patterns/gallery.php +++ b/includes/patterns/gallery.php @@ -6,8 +6,8 @@ 'categories' => array( $this->category ), 'templateTypes' => array( 'single' ), 'content' => ' - - @@ -59,7 +59,7 @@
@@ -81,7 +81,7 @@
@@ -103,7 +103,7 @@
@@ -125,7 +125,7 @@
@@ -147,7 +147,7 @@
@@ -169,7 +169,7 @@
@@ -191,7 +191,7 @@
@@ -213,7 +213,7 @@
@@ -235,7 +235,7 @@
diff --git a/includes/tour-operator.php b/includes/tour-operator.php index e742ad41..c021c715 100644 --- a/includes/tour-operator.php +++ b/includes/tour-operator.php @@ -19,11 +19,14 @@ */ function tour_operator_autoload_class( $class ) { $parts = explode( '\\', $class ); + if ( 'lsx' === $parts[0] ) { $path = LSX_TO_PATH . 'includes/classes/'; array_shift( $parts ); $name = array_shift( $parts ); + + if ( 'Settings' === $name ) { $name = 'admin\\' . $name; } From 1300da927756bd705100c986bb83b09c9bc1687a Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 18 Dec 2024 11:16:25 +0200 Subject: [PATCH 50/77] Adding in the destination facet filters. --- includes/classes/class-post-connections.php | 88 +++++++++++++++++---- 1 file changed, 72 insertions(+), 16 deletions(-) diff --git a/includes/classes/class-post-connections.php b/includes/classes/class-post-connections.php index ea995416..7d7c99f4 100644 --- a/includes/classes/class-post-connections.php +++ b/includes/classes/class-post-connections.php @@ -78,28 +78,76 @@ public function facetwp_index_row_data( $rows, $params ) { case 'cf/destination_to_accommodation': $countries = array(); + $new_rows = []; + // First lets process our new rows, depending of if its a serialized array or not. foreach ( $rows as $r_index => $row ) { - $parent = wp_get_post_parent_id( $row['facet_value'] ); - $rows[ $r_index ]['parent_id'] = $parent; - if ( 0 === $parent || '0' === $parent ) { - if ( ! isset( $countries[ $r_index ] ) ) { - $countries[ $r_index ] = $row['facet_value']; - } + // first lets check if we have an array as the values. + if ( is_array( $row['facet_value'] ) ) { + foreach ( $row['facet_value'] as $r_index => $pid ) { - if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { - $rows[ $r_index ]['depth'] = 1; - } else { - $rows[ $r_index ]['depth'] = 0; + $title = get_the_title( $pid ); + if ( '' === $title ) { + continue; + } + + $template_row = $row; + $template_row['facet_value'] = $pid; + $template_row['facet_display_value'] = $title; + $parent = wp_get_post_parent_id( $template_row['facet_value'] ); + $template_row['parent_id'] = $parent; + + + if ( 0 === $parent || '0' === $parent ) { + if ( ! isset( $countries[ $r_index ] ) ) { + $countries[ $r_index ] = $row['facet_value']; + } + + if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { + $template_row['depth'] = 1; + } else { + $template_row['depth'] = 0; + } + } else { + if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { + $template_row['depth'] = 2; + } else { + $template_row['depth'] = 1; + } + } + + $new_rows[ $r_index ] = $template_row; } + } else { - if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { - $rows[ $r_index ]['depth'] = 2; + $parent = wp_get_post_parent_id( ); + $rows[ $r_index ]['parent_id'] = $parent; + + if ( 0 === $parent || '0' === $parent ) { + if ( ! isset( $countries[ $r_index ] ) ) { + $countries[ $r_index ] = $row['facet_value']; + } + + if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { + $rows[ $r_index ]['depth'] = 1; + } else { + $rows[ $r_index ]['depth'] = 0; + } } else { - $rows[ $r_index ]['depth'] = 1; + if ( ! empty( $this->options['display']['engine_search_continent_filter'] ) ) { + $rows[ $r_index ]['depth'] = 2; + } else { + $rows[ $r_index ]['depth'] = 1; + } } } } + + // Replace the old rows with the new once used. + if ( ! empty( $new_rows ) ) { + $rows = $new_rows; + } + if ( ! empty( $this->options['display']['enable_search_continent_filter'] ) ) { if ( ! empty( $countries ) ) { foreach ( $countries as $row_index => $country ) { @@ -146,9 +194,11 @@ public function facetwp_index_row( $params, $class ) { if ( ! empty( $custom_field ) && ! empty( $meta_key ) ) { - if ( ( 'cf/destination_to_accommodation' === $class->facet['source'] || 'cf/destination_to_tour' === $class->facet['source'] ) && ! empty( $this->options['display']['engine_search_continent_filter'] ) && ( '0' === (string) $params['depth'] ) ) { - $title = ''; - } else { + $values = (array) $params['facet_value']; + foreach ( $values as $val ) { + $params['facet_value'] = $val; + $params['facet_display_value'] = $val; + $title = get_the_title( $params['facet_value'] ); if ( '' !== $title ) { $params['facet_display_value'] = $title; @@ -156,7 +206,11 @@ public function facetwp_index_row( $params, $class ) { if ( '' === $title && ! empty( $meta_key ) ) { $params['facet_value'] = ''; } + // Insert into the DB + $class->insert( $params ); } + + return false; // skip default indexing } // If its a price, save the value as a standard number. @@ -328,6 +382,8 @@ public function destination_facet_render( $params ) { $output = implode( '', $options ); } + $output = '' . $output . ''; + return $output; } From adad50d9d5b75445381216bef7505fce4f4ad298 Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 18 Dec 2024 11:50:53 +0200 Subject: [PATCH 51/77] Restricting the facets --- includes/classes/class-post-connections.php | 30 ++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/includes/classes/class-post-connections.php b/includes/classes/class-post-connections.php index 7d7c99f4..13ab817d 100644 --- a/includes/classes/class-post-connections.php +++ b/includes/classes/class-post-connections.php @@ -250,7 +250,7 @@ public function destination_facet_html( $output, $params ) { 'cf/destination_to_review', 'cf/destination_to_vehicle', ); - if ( in_array( $params['facet']['source'], $possible_keys ) ) { + if ( in_array( $params['facet']['source'], $possible_keys ) && 'checkboxes' === $params['facet']['type'] ) { $output = $this->destination_facet_render( $params ); } return $output; @@ -262,6 +262,10 @@ public function destination_facet_html( $output, $params ) { public function destination_facet_render( $params ) { $facet = $params['facet']; + if ( 'checkboxes' !== $params['facet']['type'] ) { + return; + } + $output = ''; $values = (array) $params['values']; $selected_values = (array) $params['selected_values']; @@ -374,7 +378,12 @@ public function destination_facet_render( $params ) { } if ( $facet['depth'] <= $current_depth ) { - $options[] = $this->format_single_facet( $key, $facet, $selected_values, $depth_type ); + if ( 'checkboxes' === $params['facet']['type'] ) { + $options[] = $this->format_checkbox_facet( $key, $facet, $selected_values, $depth_type ); + } else if ( 'fselect' === $params['facet']['type'] ) { + $options[] = $this->format_fselect_facet( $key, $facet, $selected_values, $depth_type ); + } + } } @@ -422,7 +431,7 @@ public function get_regions( $values, $parent, $depth ) { return $children; } - public function format_single_facet( $key, $result, $selected_values, $region = '' ) { + public function format_checkbox_facet( $key, $result, $selected_values, $region = '' ) { $temp_html = ''; $selected = in_array( $result['facet_value'], $selected_values ) ? ' checked' : ''; @@ -435,4 +444,19 @@ public function format_single_facet( $key, $result, $selected_values, $region = return $temp_html; } + + public function format_fselect_facet( $key, $result, $selected_values, $region = '' ) { + $temp_html = ''; + + $selected = in_array( $result['facet_value'], $selected_values ) ? ' checked' : ''; + $selected .= ( 0 == $result['counter'] && '' == $selected ) ? ' disabled' : ''; + $selected .= ' ' . $region; + + $temp_html .= '
+ +
' . $result['facet_display_value'] . ' (' . $result['counter'] . ')
+
'; + + return $temp_html; + } } From 5708d70d3b133e3e1ddfd620a7a8cfd38a19025a Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 18 Dec 2024 12:19:26 +0200 Subject: [PATCH 52/77] Upping the display --- assets/js/src/custom.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/assets/js/src/custom.js b/assets/js/src/custom.js index d6dbcf1c..9fa83b7b 100755 --- a/assets/js/src/custom.js +++ b/assets/js/src/custom.js @@ -69,11 +69,9 @@ if ( window.location.hash ) { } ); }; - lsx_to.readMoreSet = function( button, contentWrapper ) { + lsx_to.readMoreSet = function( button, contentWrapper, limit = 1 ) { if ( 0 < contentWrapper.length ) { if ( 1 < contentWrapper.children().length ) { - - var limit = 1; let counter = 0; contentWrapper.children().each( function() { @@ -117,7 +115,7 @@ if ( window.location.hash ) { $( '.single-tour-operator .additional-info .lsx-to-more-link' ).each( function() { lsx_to.readMoreTIText = $(this).find('a').text(); - lsx_to.readMoreSet( $(this).find('a'), $(this).closest( '.additional-info' ).find('.content') ); + lsx_to.readMoreSet( $(this).find('a'), $(this).closest( '.additional-info' ).find('.content'), 2 ); } ); $( '.single-tour-operator .additional-info .lsx-to-more-link' ).on( 'click', function( event ) { @@ -125,7 +123,7 @@ if ( window.location.hash ) { $( this ).hide(); if ( $( this ).find('a').hasClass( 'less-link' ) ) { - lsx_to.readMoreSet( $(this).find('a'), $(this).closest( '.additional-info' ).find('.content') ); + lsx_to.readMoreSet( $(this).find('a'), $(this).closest( '.additional-info' ).find('.content'), 2 ); } else { lsx_to.readMoreOpen( $(this).find('a'), $(this).closest( '.additional-info' ).find('.content') ); } From 0ac589f922b12596495654c291f927ca6795cb86 Mon Sep 17 00:00:00 2001 From: Justinabes007 <103206213+Justinabes007@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:14:02 +0200 Subject: [PATCH 53/77] Styling adjustments --- assets/css/scss/_additional.scss | 349 +++++++++++++++++++++++-------- assets/css/scss/_slider.scss | 13 ++ 2 files changed, 271 insertions(+), 91 deletions(-) diff --git a/assets/css/scss/_additional.scss b/assets/css/scss/_additional.scss index b5dac513..23b748bc 100644 --- a/assets/css/scss/_additional.scss +++ b/assets/css/scss/_additional.scss @@ -1,94 +1,261 @@ /* Additional information specific styles */ - /* Fast Facts Wrapper */ .fast-facts-wrapper > .wp-block-group .wp-block-group:first-child { - display: flex; - align-items: flex-start; /* Align content in this group to the top */ - gap: 5px; /* Space between icon and text */ - flex-shrink: 0; /* Prevent group from shrinking */ - } - - /* Style the image icon */ - .fast-facts-wrapper > .wp-block-group .wp-block-image img { - width: 20px; /* Fixed width */ - height: 20px; /* Fixed height */ - display: inline-block; - object-fit: contain; /* Ensure image doesn't stretch or distort */ - } - - /* Styling for the label (e.g., "Special Interests:") */ - .fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { - margin: 0; - white-space: nowrap; /* Prevent wrapping for label */ - vertical-align: middle; /* Align text with the middle of the icon */ - line-height: 1.2; /* Improve readability */ - display: inline-block; /* Keep text inline */ - } - - /* Styling for the flowing text */ - .fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { - display: flex; - flex-wrap: nowrap; /* Keep the text flowing inline */ - white-space: normal; /* Allow wrapping for text if it overflows */ - overflow-wrap: break-word; /* Ensure long words wrap correctly */ - word-break: break-word; /* Break long words when needed */ - flex: 1; /* Allow the container to use available space */ - align-items: flex-start; /* Ensure text starts at the top */ - } - - /* Specific styling for the text content */ - .fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { - white-space: normal; /* Allow wrapping for long text */ - overflow-wrap: break-word; /* Break words when needed */ - word-break: break-word; /* Break words on legacy browsers */ - line-height: 1.4; /* Improve readability */ - text-transform: capitalize; /* Capitalize text */ - padding: 0; /* Ensure no unnecessary padding */ - margin: 0; /* Remove extra margins */ - display: inline; /* Ensure the text flows inline with the label */ - } - - /* Facilities List */ - .facilities-list li::marker { - display: none; - } - - .facilities-list { - padding-left: 0 !important; - } - - .facilities-list li { - margin-left: 10px; - list-style: none; /* Remove default list marker */ - position: relative; /* Position for pseudo-element */ - } - - .facilities-list li::before { - content: ''; - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); /* Center the icon vertically */ - width: 20px; /* Adjust the size of the tick icon */ - height: 20px; - background-image: url('../../img/tick.svg'); /* Replace with the path to your tick.svg */ - background-size: contain; - background-repeat: no-repeat; - left: -28px; - } - - /* Additional Info */ - .additional-info .wp-block-group.content .read-more-btn, - .additional-info .wp-block-group.content .read-less-btn { - color: #0073aa; - cursor: pointer; - font-weight: bold; - } - - .additional-info .wp-block-group.content .read-more-btn:hover { - text-decoration: underline; - } - - .additional-info .wp-block-group.content .read-less-btn { - display: none; - } \ No newline at end of file + display: flex; + align-items: flex-start; + /* Align content in this group to the top */ + gap: 5px; + /* Space between icon and text */ + flex-shrink: 0; + /* Prevent group from shrinking */ +} +/* Style the image icon */ +.fast-facts-wrapper > .wp-block-group .wp-block-image img { + width: 20px; + /* Fixed width */ + height: 20px; + /* Fixed height */ + display: inline-block; + object-fit: contain; + /* Ensure image doesn't stretch or distort */ +} +/* Styling for the label (e.g., "Special Interests:") */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:first-child p { + margin: 0; + white-space: nowrap; + /* Prevent wrapping for label */ + vertical-align: middle; + /* Align text with the middle of the icon */ + line-height: 1.2; + /* Improve readability */ + display: inline-block; + /* Keep text inline */ +} +/* Styling for the flowing text */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child { + display: flex; + flex-wrap: nowrap; + /* Keep the text flowing inline */ + white-space: normal; + /* Allow wrapping for text if it overflows */ + overflow-wrap: break-word; + /* Ensure long words wrap correctly */ + word-break: break-word; + /* Break long words when needed */ + flex: 1; + /* Allow the container to use available space */ + align-items: flex-start; + /* Ensure text starts at the top */ +} +/* Specific styling for the text content */ +.fast-facts-wrapper > .wp-block-group .wp-block-group:last-child p { + white-space: normal; + /* Allow wrapping for long text */ + overflow-wrap: break-word; + /* Break words when needed */ + word-break: break-word; + /* Break words on legacy browsers */ + line-height: 1.4; + /* Improve readability */ + text-transform: capitalize; + /* Capitalize text */ + padding: 0; + /* Ensure no unnecessary padding */ + margin: 0; + /* Remove extra margins */ + display: inline; + /* Ensure the text flows inline with the label */ +} +/* Facilities List */ +.facilities-list li::marker { + display: none; +} +.facilities-list { + padding-left: 0 !important; +} +.facilities-list li { + margin-left: 10px; + list-style: none; + /* Remove default list marker */ + position: relative; + /* Position for pseudo-element */ +} +.facilities-list li::before { + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + /* Center the icon vertically */ + width: 20px; + /* Adjust the size of the tick icon */ + height: 20px; + background-image: url('../../img/tick.svg'); + /* Replace with the path to your tick.svg */ + background-size: contain; + background-repeat: no-repeat; + left: -28px; +} +/* Additional Info */ +.additional-info .wp-block-group.content .read-more-btn,.additional-info .wp-block-group.content .read-less-btn { + color: #0073aa; + cursor: pointer; + font-weight: bold; +} +.additional-info .wp-block-group.content .read-more-btn:hover { + text-decoration: underline; +} +.additional-info .wp-block-group.content .read-less-btn { + display: none; +} +/* FacetWP --------------------------------------------- */ +.facetwp-facet input.facetwp-search{ + border: 1px solid #757575; + padding: 8px 14px 10px; + font-size: 18px; + min-width: 85%; +} +.facetwp-icon{ + background:#a29f9f; + padding:0 4px; +} +.facetwp-icon:hover{ + background-color: #4F4F4F; +} +.facetwp-facet select{ + -webkit-appearance: none; + -moz-appearance: none; + background: transparent; + background-image: url("data:image/svg+xml;utf8,"); + background-repeat: no-repeat; + background-position-x: 100%; + background-position-y: 5px; + border-radius: 4px; + color: var(--wp--preset--color--contrast); + font-family: var(--wp--preset--font-family--primary); + font-size: var(--wp--preset--font-size--x-small); + font-weight: var(--wp--custom--font-weight--regular); + padding: 12px 22px 12px 12px; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + position: relative; + background-color: #fff; + border: 1px solid #757575!important; + cursor: default; +} +body .fs-label-wrap .fs-label{ + padding: 12px 22px 12px 12px!important; +} +body .fs-arrow{ + right:12px!important; +} +.archive .fs-label-wrap{ + border: 1px solid #757575!important; + border-radius: 4px; +} +.fs-wrap .fs-search input::placeholder { + font-size: var(--wp--preset--font-size--x-small); +} +.facetwp-selections{ + max-width:27%; +} +.facet-row .wp-block-group{ + width:100%; +} +button.facetwp-reset{ + background-color: var(--wp--preset--color--primary); + border-width: 0; + color: var(--wp--preset--color--base); + font-family: inherit; + font-size: var(--wp--preset--font-size--x-small); + font-weight: 500; + line-height: inherit; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; + margin-left: 0px; + padding-top: 9px; + padding-right: 8px; + padding-bottom: 10px; + padding-left: 8px; + text-decoration: none; + width:150px; + border-radius: 4px; +} +@media only screen and (min-width:1240px){ + body .facetwp-facet .facetwp-dropdown,body .facetwp-facet .facetwp-checkboxes,body .facetwp-facet .facetwp-range,body .facetwp-facet .facetwp-radio { + min-width: 220px; + /* Adjust this value as needed */ + } + .archive .facetwp-facet{ + margin-top:4px!important; + } + .archive .facetwp-type-reset{ + margin-top:-2px!important; + } + .archive .fs-wrap { + width: 292px; + } +} +@media only screen and (min-width:768px) and (max-width:1199px){ + .archive .fs-wrap { + width: auto!important; + } + body .facetwp-facet .facetwp-dropdown,body .facetwp-facet .facetwp-checkboxes,body .facetwp-facet .facetwp-range,body .facetwp-facet .facetwp-radio { + min-width: 220px; + /* Adjust this value as needed */ + } +} +@media only screen and (max-width:480px){ + .facet-row .wp-block-group{ + flex-wrap: wrap!important; + } + .facet-row .wp-block-group p{ + width:100%!important; + } + .facet-row .wp-block-group .facetwp-facet{ + width:100%!important; + } + body .facetwp-facet .facetwp-dropdown,body .facetwp-facet .facetwp-checkboxes,body .facetwp-facet .facetwp-range,body .facetwp-facet .facetwp-radio { + min-width: 100%!important; + /* Adjust this value as needed */ + } + .facet-row{ + flex-wrap: wrap!important; + margin-left: -20px !important; + margin-right: -20px !important; + } + .facetwp-selections{ + max-width:100%!important; + } + .facetwp-input-wrap,.fs-wrap{ + width:100%!important; + } + .facetwp-facet input.facetwp-search{ + min-width: 88%!important; + } + .facetwp-selections ul li{ + margin-left:0!important; + } + button.facetwp-reset{ + background-color: var(--wp--preset--color--primary); + border-width: 0; + color: var(--wp--preset--color--base); + font-family: inherit; + font-size: var(--wp--preset--font-size--x-small); + font-weight: 500; + line-height: inherit; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; + margin-left: 0px; + padding-top: 7px; + padding-right: 8px; + padding-bottom: 7px; + padding-left: 8px; + text-decoration: none; + width:100%; + border-radius: 4px; + } +} diff --git a/assets/css/scss/_slider.scss b/assets/css/scss/_slider.scss index f7640308..9b45b83a 100644 --- a/assets/css/scss/_slider.scss +++ b/assets/css/scss/_slider.scss @@ -99,6 +99,19 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } + &.slick-prev:before { + background: url('../img/left-arrow.svg') no-repeat center center; + width: 20px; + left: 3px; + height: 20px; + } + + &.slick-next:before { + background: url('../img/right-arrow.svg') no-repeat center center; + width: 20px; + left: 3px; + height: 20px; + } } } From 8a0b3a318f8f3b5f3739048bfcd1468f25787b52 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 19 Dec 2024 14:06:07 +0200 Subject: [PATCH 54/77] Updating the phpdoc tags --- assets/js/blocks/general.js | 30 +++++++++++ includes/classes/blocks/class-bindings.php | 58 ++++++++++++++++++++++ tour-operator.php | 1 - 3 files changed, 88 insertions(+), 1 deletion(-) diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index b499c236..31af16f8 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -536,5 +536,35 @@ wp.domReady(() => { renaming: false } }); + + // View More Button Block + wp.blocks.registerBlockVariation('core/button', { + name: 'lsx-tour-operator/permalink-button', + title: 'Permalink', + name: 'core/button', + category: "lsx-tour-operator", + attributes: { + className: 'lsx-to-link', + metadata: { + name: 'Permalink' + }, + style: { + border: { + radius: { + topLeft: '0px 8px 8px 0px', + topRight: '0px 8px 8px 0px', + bottomLeft: '8px', + bottomRight: '8px' + } + } + }, + backgroundColor: 'primary', + width: 100, + text: 'View More', + }, + supports: { + renaming: false + } + }); }); diff --git a/includes/classes/blocks/class-bindings.php b/includes/classes/blocks/class-bindings.php index b8d9526d..e4abf123 100644 --- a/includes/classes/blocks/class-bindings.php +++ b/includes/classes/blocks/class-bindings.php @@ -70,6 +70,11 @@ public function __construct() { add_filter( 'render_block', array( $this, 'render_map_block' ), 10, 3 ); } + /** + * Registers the custom block bindings. + * + * @return void + */ public function register_block_bindings() { if ( ! function_exists( 'register_block_bindings_source' ) ) { return; @@ -123,6 +128,13 @@ public function register_block_bindings() { ); } + /** + * Registers the post connections callback. + * + * @param array $source_args + * @param object $block_instance + * @return string|int|array + */ public function post_connections_callback( $source_args, $block_instance ) { if ( 'core/image' === $block_instance->parsed_block['blockName'] ) { return 'test_image'; @@ -199,6 +211,13 @@ public function post_connections_callback( $source_args, $block_instance ) { } } + /** + * Register our post meta callback. + * + * @param array $source_args + * @param object $block_instance + * @return string|int|array + */ public function post_meta_callback( $source_args, $block_instance ) { if ( 'core/image' === $block_instance->parsed_block['blockName'] ) { return 'test_image'; @@ -408,6 +427,19 @@ public function build_image( $build = '', $classname = 'itinerary-image' ) { return $build; } + /** + * Renders the units block with custom content. + * + * This function processes the block content by checking if it belongs to a specific + * custom block variation and then iteratively builds the units content based on + * predefined fields and templates. It returns the final rendered block content. + * + * @param string $block_content The original content of the block. + * @param array $parsed_block Parsed data for the block, including type and attributes. + * @param object $block_obj Block object instance for the current block being processed. + * + * @return string Returns the modified block content after processing units data. + */ public function render_units_block( $block_content, $parsed_block, $block_obj ) { // Determine if this is the custom block variation. if ( ! isset( $parsed_block['blockName'] ) || ! isset( $parsed_block['attrs'] ) ) { @@ -588,6 +620,19 @@ public function empty_callback( $source_args, $block_instance ) { } } + /** + * Renders the gallery block with custom content. + * + * This function processes the block content by checking if it belongs to a specific + * custom block variation and then iteratively builds the gallery content based on + * predefined fields and templates. It returns the final rendered block content. + * + * @param string $block_content The original content of the block. + * @param array $parsed_block Parsed data for the block, including type and attributes. + * @param object $block_obj Block object instance for the current block being processed. + * + * @return string Returns the modified block content after processing gallery data. + */ public function render_gallery_block( $block_content, $parsed_block, $block_obj ) { // Determine if this is the custom block variation. if ( ! isset( $parsed_block['blockName'] ) || ! isset( $parsed_block['attrs'] ) ) { @@ -680,6 +725,19 @@ public function find_gallery_classes( $content ) { return $classes; } + /** + * Renders the map block with custom content. + * + * This function processes the block content by checking if it belongs to a specific + * custom block variation and then iteratively builds the map content based on + * predefined fields and templates. It returns the final rendered block content. + * + * @param string $block_content The original content of the block. + * @param array $parsed_block Parsed data for the block, including type and attributes. + * @param object $block_obj Block object instance for the current block being processed. + * + * @return string Returns the modified block content after processing map data. + */ public function render_map_block( $block_content, $parsed_block, $block_obj ) { // Determine if this is the custom block variation. if ( ! isset( $parsed_block['blockName'] ) || ! isset( $parsed_block['attrs'] ) ) { diff --git a/tour-operator.php b/tour-operator.php index c9711b4a..7fe0677c 100644 --- a/tour-operator.php +++ b/tour-operator.php @@ -13,7 +13,6 @@ * License URI: https://www.gnu.org/licenses/gpl-3.0.html * Text Domain: tour-operator * Domain Path: /languages/ - * Update URI: https://lsx.design/products/tour-operator/ * Tags: lsx, tour operator, travel, tourism, itinerary */ From e07f7293e87cb95a007da15c366021ed7b5b4af2 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 19 Dec 2024 14:23:19 +0200 Subject: [PATCH 55/77] Adding in a permalink button. --- assets/js/blocks/general.js | 105 +++++++++++---------- includes/classes/blocks/class-bindings.php | 38 ++++++++ 2 files changed, 91 insertions(+), 52 deletions(-) diff --git a/assets/js/blocks/general.js b/assets/js/blocks/general.js index 31af16f8..f05ad695 100644 --- a/assets/js/blocks/general.js +++ b/assets/js/blocks/general.js @@ -12,68 +12,68 @@ wp.domReady(() => { xmlns: "http://www.w3.org/2000/svg" }, wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M25.8848 50.9803C39.6698 50.9803 50.8448 39.8053 50.8448 26.0203C50.8448 12.2353 39.6698 1.0603 25.8848 1.0603C12.0998 1.0603 0.924805 12.2353 0.924805 26.0203C0.924805 39.8053 12.0998 50.9803 25.8848 50.9803ZM25.9956 47.4606C37.8631 47.4606 47.4836 37.8401 47.4836 25.9726C47.4836 14.1051 37.8631 4.4846 25.9956 4.4846C14.1281 4.4846 4.50762 14.1051 4.50762 25.9726C4.50762 37.8401 14.1281 47.4606 25.9956 47.4606Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M24.375 10.2578C24.375 11.0992 25.0571 11.7812 25.8984 11.7812V11.7812C26.7398 11.7812 27.4219 11.0992 27.4219 10.2578V7.21094C27.4219 6.36957 26.7398 5.6875 25.8984 5.6875V5.6875C25.0571 5.6875 24.375 6.36957 24.375 7.21094V10.2578Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M13.4739 16.0447C14.0688 16.6396 15.0334 16.6396 15.6284 16.0447V16.0447C16.2233 15.4497 16.2233 14.4852 15.6284 13.8902L13.4739 11.7358C12.8789 11.1408 11.9144 11.1408 11.3194 11.7358V11.7358C10.7245 12.3307 10.7245 13.2953 11.3194 13.8902L13.4739 16.0447Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M36.4099 13.7583C35.815 14.3532 35.815 15.3178 36.4099 15.9128V15.9128C37.0048 16.5077 37.9694 16.5077 38.5644 15.9128L40.7188 13.7583C41.3138 13.1634 41.3138 12.1988 40.7188 11.6038V11.6038C40.1239 11.0089 39.1593 11.0089 38.5644 11.6038L36.4099 13.7583Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M9.95312 27.625C10.7945 27.625 11.4766 26.9429 11.4766 26.1016V26.1016C11.4766 25.2602 10.7945 24.5781 9.95312 24.5781H6.90625C6.06488 24.5781 5.38281 25.2602 5.38281 26.1016V26.1016C5.38281 26.9429 6.06488 27.625 6.90625 27.625H9.95312Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M44.9922 27.625C45.8336 27.625 46.5156 26.9429 46.5156 26.1016V26.1016C46.5156 25.2602 45.8336 24.5781 44.9922 24.5781H41.9453C41.1039 24.5781 40.4219 25.2602 40.4219 26.1016V26.1016C40.4219 26.9429 41.1039 27.625 41.9453 27.625H44.9922Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M11.9812 39.1257C11.3863 39.7207 11.3863 40.6853 11.9812 41.2802V41.2802C12.5761 41.8751 13.5407 41.8751 14.1357 41.2802L16.2901 39.1257C16.8851 38.5308 16.8851 37.5662 16.2901 36.9713V36.9713C15.6952 36.3763 14.7306 36.3763 14.1357 36.9713L11.9812 39.1257Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M38.2629 40.6555C38.8579 41.2505 39.8225 41.2505 40.4174 40.6555V40.6555C41.0124 40.0606 41.0124 39.096 40.4174 38.5011L38.2629 36.3466C37.668 35.7517 36.7034 35.7517 36.1085 36.3466V36.3466C35.5135 36.9415 35.5135 37.9061 36.1085 38.5011L38.2629 40.6555Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M24.8828 44.7891C24.8828 45.6304 25.5649 46.3125 26.4062 46.3125V46.3125C27.2476 46.3125 27.9297 45.6304 27.9297 44.7891V41.7422C27.9297 40.9008 27.2476 40.2188 26.4062 40.2188V40.2188C25.5649 40.2188 24.8828 40.9008 24.8828 41.7422V44.7891Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M28.6218 22.4428L28.6222 22.4426L28.6192 22.4407C28.3268 22.2199 28.0059 22.0334 27.6627 21.8875L13 13.4062L21.8155 27.8277C21.9285 28.0554 22.0616 28.2716 22.2115 28.4754L22.2174 28.4851L22.2181 28.4844C22.395 28.7237 22.5961 28.9449 22.8177 29.1446C22.9896 29.3271 23.1771 29.4954 23.3782 29.6475L23.3778 29.6477L23.3808 29.6495C23.6732 29.8704 23.9941 30.0569 24.3373 30.2028L39 38.684L30.1845 24.2626C30.0715 24.0349 29.9384 23.8187 29.7885 23.6149L29.7826 23.6052L29.7819 23.6058C29.605 23.3666 29.404 23.1454 29.1824 22.9457C29.0104 22.7632 28.8229 22.5949 28.6218 22.4428ZM24.3781 24.4125C23.9645 24.8126 23.7084 25.3675 23.7084 25.9808C23.7084 27.2003 24.7213 28.1889 25.9709 28.1889C26.5417 28.1889 27.0631 27.9826 27.4612 27.6422C27.8747 27.2421 28.1308 26.6872 28.1308 26.0739C28.1308 24.8544 27.118 23.8658 25.8685 23.8658C25.2976 23.8658 24.7762 24.0721 24.3781 24.4125Z", fill: "#090909" }), wp.element.createElement('path', { - 'fill-rule': "evenodd", - 'clip-rule': "evenodd", + 'fillRule': "evenodd", + 'clipRule': "evenodd", d: "M43.567 6.91088C43.3913 6.65906 43.2131 6.38092 43.0942 6.09685C42.6699 5.08228 42.7343 3.8416 43.1616 2.84063C43.1926 2.76922 43.2253 2.69875 43.2599 2.62913C43.2943 2.55942 43.3304 2.49059 43.3682 2.42266C43.4061 2.35473 43.4457 2.2878 43.4868 2.2217C43.5022 2.19713 43.5179 2.17271 43.5337 2.14836C43.5603 2.10759 43.5875 2.06721 43.6153 2.0272C43.6597 1.96332 43.7056 1.90064 43.7531 1.83904C43.8006 1.77739 43.8497 1.71711 43.9002 1.65803C43.9506 1.59885 44.0025 1.54098 44.056 1.48448C44.0751 1.46412 44.0945 1.44394 44.114 1.42386C44.1488 1.38829 44.1842 1.35331 44.22 1.31881C44.2761 1.26491 44.3336 1.21248 44.3923 1.16151C44.4509 1.11044 44.5109 1.0609 44.572 1.0129C44.6332 0.964895 44.6955 0.918498 44.7589 0.873496C44.8224 0.82852 44.8869 0.785151 44.9525 0.743478C44.9774 0.727538 45.0026 0.711935 45.0278 0.696495C45.069 0.671458 45.1104 0.646957 45.1523 0.62308C45.2198 0.584621 45.2883 0.547832 45.3578 0.512701C45.4271 0.477645 45.4973 0.444333 45.5684 0.412754C45.6394 0.381174 45.7113 0.351402 45.7838 0.323337C46.9073 -0.107222 48.1988 -0.125455 49.3033 0.375628C50.3912 0.869147 51.2751 1.85395 51.6838 2.97151C51.7096 3.04319 51.7337 3.11557 51.756 3.18855C51.7646 3.2165 51.7728 3.24452 51.7808 3.27261C51.7937 3.31778 51.8059 3.3632 51.8175 3.40885C51.8233 3.43194 51.829 3.45513 51.8345 3.47834C51.8466 3.52931 51.8579 3.58059 51.8682 3.6319C51.8834 3.70667 51.8966 3.78174 51.908 3.8571C51.9133 3.89208 51.9183 3.92719 51.9228 3.96231C51.9281 4.00289 51.9328 4.04346 51.937 4.08414C51.9447 4.15995 51.9506 4.23587 51.9546 4.31202C51.9587 4.38827 51.9609 4.46458 51.9612 4.54083C51.9616 4.61703 51.9601 4.69328 51.9567 4.76949C51.9534 4.84572 51.9482 4.92175 51.9411 4.99766C51.9388 5.02227 51.9363 5.04687 51.9337 5.07146C51.9281 5.12272 51.9216 5.17385 51.9143 5.22486C51.9107 5.25022 51.9068 5.27557 51.9028 5.30091C51.8949 5.35089 51.8861 5.40075 51.8765 5.45047C51.8621 5.52533 51.8458 5.5998 51.8279 5.67399C51.8098 5.74809 51.7899 5.82163 51.7683 5.89482C51.7467 5.96791 51.7232 6.04042 51.6981 6.11245C51.6729 6.18447 51.646 6.25582 51.6174 6.32646C51.5887 6.39709 51.5584 6.46709 51.5264 6.53637C51.0265 7.59911 50.0679 8.49389 48.9549 8.87753C47.5903 9.34807 46.3252 9.05145 45.0645 8.44598C45.0322 8.47617 44.9988 8.50644 44.9648 8.53711L44.9608 8.54076L44.9606 8.54093C44.7379 8.74234 44.4971 8.96006 44.4311 9.25287C44.4995 9.331 44.5707 9.36452 44.6414 9.39777L44.6415 9.39785C44.7261 9.43765 44.8097 9.47702 44.8869 9.59228C44.8499 10.0781 43.9245 10.8797 43.312 11.4103C43.2279 11.4832 43.1497 11.551 43.0805 11.6121C42.6465 11.1226 42.1952 10.6432 41.7265 10.1745C41.2678 9.71577 40.7988 9.27372 40.3203 8.84835C40.4071 8.75939 40.4938 8.67004 40.5806 8.5806L40.5806 8.58059C40.9383 8.21189 41.2975 7.84173 41.67 7.49145C41.6894 7.47332 41.7121 7.45102 41.7373 7.42615C41.8936 7.27233 42.149 7.02091 42.319 7.05068C42.5395 7.08935 42.6356 7.21956 42.7526 7.37811L42.7935 7.43314C43.0228 7.38867 43.2379 7.19892 43.4285 7.03071L43.4295 7.02979C43.4769 6.98793 43.5228 6.94742 43.567 6.91088ZM49.8764 4.49387C49.8764 5.83988 48.7852 6.93104 47.4392 6.93104C46.0932 6.93104 45.002 5.83988 45.002 4.49387C45.002 3.14785 46.0932 2.05669 47.4392 2.05669C48.7852 2.05669 49.8764 3.14785 49.8764 4.49387Z", fill: "#090909" }) @@ -83,6 +83,37 @@ wp.domReady(() => { icon: svgElement } ); + // Permalink Button Block + wp.blocks.registerBlockVariation('core/button', { + name: 'lsx-tour-operator/permalink-button', + title: 'Permalink', + description: 'Add a button with a link to the current item.', + category: "lsx-tour-operator", + attributes: { + className: 'lsx-to-link permalink', + metadata: { + name: 'Permalink' + }, + style: { + border: { + radius: { + topLeft: '0px 8px 8px 0px', + topRight: '0px 8px 8px 0px', + bottomLeft: '8px', + bottomRight: '8px' + } + } + }, + backgroundColor: 'primary', + width: 100, + text: 'View More', + url: '#permalink', + }, + supports: { + renaming: false + } + }); + // Gallery Block wp.blocks.registerBlockVariation("core/gallery", { name: "lsx-tour-operator/gallery", @@ -536,35 +567,5 @@ wp.domReady(() => { renaming: false } }); - - // View More Button Block - wp.blocks.registerBlockVariation('core/button', { - name: 'lsx-tour-operator/permalink-button', - title: 'Permalink', - name: 'core/button', - category: "lsx-tour-operator", - attributes: { - className: 'lsx-to-link', - metadata: { - name: 'Permalink' - }, - style: { - border: { - radius: { - topLeft: '0px 8px 8px 0px', - topRight: '0px 8px 8px 0px', - bottomLeft: '8px', - bottomRight: '8px' - } - } - }, - backgroundColor: 'primary', - width: 100, - text: 'View More', - }, - supports: { - renaming: false - } - }); }); diff --git a/includes/classes/blocks/class-bindings.php b/includes/classes/blocks/class-bindings.php index e4abf123..22b4fa9b 100644 --- a/includes/classes/blocks/class-bindings.php +++ b/includes/classes/blocks/class-bindings.php @@ -68,6 +68,7 @@ public function __construct() { add_filter( 'render_block', array( $this, 'render_units_block' ), 10, 3 ); add_filter( 'render_block', array( $this, 'render_gallery_block' ), 10, 3 ); add_filter( 'render_block', array( $this, 'render_map_block' ), 10, 3 ); + add_filter( 'render_block', array( $this, 'render_permalink_block' ), 10, 3 ); } /** @@ -802,4 +803,41 @@ public function prep_links( $items ) { } return implode( ', ', $item_links ); } + + /** + * Renders the p block with custom content. + * + * @param string $block_content The original content of the block. + * @param array $parsed_block Parsed data for the block, including type and attributes. + * @param object $block_obj Block object instance for the current block being processed. + * + * @return string Returns block with the permalink added. + */ + public function render_permalink_block( $block_content, $parsed_block, $block_obj ) { + // Determine if this is the custom block variation. + if ( ! isset( $parsed_block['blockName'] ) || ! isset( $parsed_block['attrs'] ) ) { + return $block_content; + } + $allowed_blocks = array( + 'core/button' + ); + + if ( ! in_array( $parsed_block['blockName'], $allowed_blocks, true ) ) { + return $block_content; + } + + if ( ! isset( $parsed_block['attrs']['metadata']['name'] ) ) { + return $block_content; + } + + if ( 'Permalink' !== $parsed_block['attrs']['metadata']['name'] ) { + return $block_content; + } + + $url = get_permalink(); + $pattern = '/#permalink/s'; + $block_content = preg_replace( $pattern, $url, $block_content ); + + return $block_content; + } } From 426fc4b765806b68674d0fc98740cda21710ddb0 Mon Sep 17 00:00:00 2001 From: Justinabes007 <103206213+Justinabes007@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:33:32 +0200 Subject: [PATCH 56/77] Update _icons.scss --- assets/css/scss/_icons.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/css/scss/_icons.scss b/assets/css/scss/_icons.scss index 67a72854..a17fa85d 100644 --- a/assets/css/scss/_icons.scss +++ b/assets/css/scss/_icons.scss @@ -128,7 +128,7 @@ } .currency-icon { - &:after { margin-right: 0px; } + &:after { margin-right: 0px;margin-left: 0px; } } } } From 3208de2132ae017bbeea240571fe1a7e8d32413a Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 19 Dec 2024 15:33:49 +0200 Subject: [PATCH 57/77] Fixing the phpcs errors. --- includes/classes/blocks/class-registration.php | 4 ++-- includes/patterns/accommodation-card.php | 1 + includes/patterns/destination-card.php | 1 + includes/patterns/gallery.php | 2 +- includes/patterns/itinerary-list.php | 1 + includes/patterns/room-card.php | 1 + includes/patterns/tour-card.php | 2 +- includes/patterns/travel-information.php | 1 + includes/template-tags/helpers.php | 3 ++- 9 files changed, 11 insertions(+), 5 deletions(-) diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 06486a2f..5218d376 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -441,8 +441,8 @@ protected function post_ids_exist( $ids ) { AND ID IN (%s) AND post_status IN ('draft', 'publish')"; - // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared - return (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); + // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + return (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery } /** diff --git a/includes/patterns/accommodation-card.php b/includes/patterns/accommodation-card.php index abf8b699..96628549 100644 --- a/includes/patterns/accommodation-card.php +++ b/includes/patterns/accommodation-card.php @@ -1,4 +1,5 @@ __( 'Accommodation Card', 'tour-operator' ), diff --git a/includes/patterns/destination-card.php b/includes/patterns/destination-card.php index b921eddc..a912af6b 100644 --- a/includes/patterns/destination-card.php +++ b/includes/patterns/destination-card.php @@ -1,4 +1,5 @@ __( 'Destination Card', 'tour-operator' ), 'description' => __( 'A grid display for destinations.', 'tour-operator' ), diff --git a/includes/patterns/gallery.php b/includes/patterns/gallery.php index 611ec625..cd9b33e2 100644 --- a/includes/patterns/gallery.php +++ b/includes/patterns/gallery.php @@ -1,5 +1,5 @@ __( 'TO Gallery', 'tour-operator' ), 'description' => __( 'Display the attached images, with a lightbox gallery.', 'tour-operator' ), diff --git a/includes/patterns/itinerary-list.php b/includes/patterns/itinerary-list.php index 72ce2ab2..0776267d 100644 --- a/includes/patterns/itinerary-list.php +++ b/includes/patterns/itinerary-list.php @@ -1,4 +1,5 @@ __( 'Itinerary (list)', 'tour-operator' ), 'description' => __( 'A list display for the tour itineraries.', 'tour-operator' ), diff --git a/includes/patterns/room-card.php b/includes/patterns/room-card.php index b00ea6eb..f24f32c5 100644 --- a/includes/patterns/room-card.php +++ b/includes/patterns/room-card.php @@ -1,4 +1,5 @@ __( 'Room Card', 'tour-operator' ), 'description' => __( 'A list display for the accommodation units.', 'tour-operator' ), diff --git a/includes/patterns/tour-card.php b/includes/patterns/tour-card.php index 649325d7..bbb5b186 100644 --- a/includes/patterns/tour-card.php +++ b/includes/patterns/tour-card.php @@ -1,5 +1,5 @@ __( 'Tour Card', 'tour-operator' ), 'description' => __( 'A grid display for tours.', 'tour-operator' ), diff --git a/includes/patterns/travel-information.php b/includes/patterns/travel-information.php index 4386b021..cf99bdab 100644 --- a/includes/patterns/travel-information.php +++ b/includes/patterns/travel-information.php @@ -1,4 +1,5 @@ __( 'Travel Information', 'tour-operator' ), 'description' => __( 'Display the travel information like banking and cusine.', 'tour-operator' ), diff --git a/includes/template-tags/helpers.php b/includes/template-tags/helpers.php index 72344769..c8eb97d5 100644 --- a/includes/template-tags/helpers.php +++ b/includes/template-tags/helpers.php @@ -95,7 +95,8 @@ function lsx_to_item_has_children( $post_id = false, $post_type = false ) { $post_type = 'page'; } - $children = $wpdb->get_results( + // phpcs:ignore WordPress.DB.DirectDatabaseQuery + $children = $wpdb->get_results( // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} From 9b5b379de4469714d351afa2d5ba9b99519f8ae2 Mon Sep 17 00:00:00 2001 From: Warwick Date: Thu, 19 Dec 2024 15:49:07 +0200 Subject: [PATCH 58/77] Fixing the phpcs errors and warnings --- includes/classes/admin/class-settings.php | 10 +- .../classes/blocks/class-registration.php | 8 +- includes/classes/legacy/class-admin.php | 9 +- .../classes/legacy/class-tour-operator.php | 115 +----------------- includes/partials/navigation.php | 4 +- includes/template-tags/helpers.php | 8 +- 6 files changed, 25 insertions(+), 129 deletions(-) diff --git a/includes/classes/admin/class-settings.php b/includes/classes/admin/class-settings.php index 00f6cf02..1cb3b112 100644 --- a/includes/classes/admin/class-settings.php +++ b/includes/classes/admin/class-settings.php @@ -48,7 +48,7 @@ public function __construct() { // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_GET['welcome-page'] ) ) { // @phpcs:ignore WordPress.Security.NonceVerification.Recommended - $display_page = sanitize_text_field( $_GET['welcome-page'] ); + $display_page = sanitize_text_field( wp_unslash( $_GET['welcome-page'] ) ); $display_page = ! empty( $display_page ) ? $display_page : ''; } @@ -534,7 +534,7 @@ public function save_settings() { $save = ''; // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST[ $key ] ) ) { - $save = sanitize_text_field( $_POST[ $key ] ); + $save = sanitize_text_field( wp_unslash( $_POST[ $key ] ) ); } else if ( isset( $field['default'] ) ) { $save = $field['default']; } @@ -556,7 +556,7 @@ public function save_settings() { $save = ''; // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST[ $tab_index . '_' . $key ] ) ) { - $save = wp_unslash( $_POST[ $tab_index . '_' . $key ] ); + $save = sanitize_text_field( wp_unslash( $_POST[ $tab_index . '_' . $key ] ) ); } else if ( isset( $field['default'] ) ) { $save = $field['default']; } @@ -569,8 +569,8 @@ public function save_settings() { if ( ! empty( $settings_values ) ) { update_option( 'lsx_to_settings', $settings_values ); - // @phpcs:ignore WordPress.Security.NonceVerification.Recommended - wp_safe_redirect( $_POST[ '_wp_http_referer' ] ); + // @phpcs:ignore WordPress.Security + wp_safe_redirect( wp_unslash( $_POST[ '_wp_http_referer' ] ) ); exit; } } diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index 5218d376..d704156a 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -434,15 +434,15 @@ protected function post_ids_exist( $ids ) { } $ids = wp_unslash( sanitize_post_field( 'id', $ids, 0, 'db' ) ); - + // phpcs:disable WordPress.DB -- Start ignoring $query = "SELECT COUNT(ID) FROM $wpdb->posts WHERE 1=1 AND ID IN (%s) AND post_status IN ('draft', 'publish')"; - - // @phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared - return (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery + $result = (int) $wpdb->get_var( $wpdb->prepare( $query, $ids ) ); + // phpcs:enable -- Stop ignoring + return $result; } /** diff --git a/includes/classes/legacy/class-admin.php b/includes/classes/legacy/class-admin.php index 5472d68f..53fbdbd8 100644 --- a/includes/classes/legacy/class-admin.php +++ b/includes/classes/legacy/class-admin.php @@ -102,6 +102,7 @@ public function enqueue_admin_stylescripts( $hook ) { } //deregister scripts + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_GET['post'] ) && in_array( get_post_type( $_GET['post'] ), array( 'team', 'special', 'review', 'destination', 'accommodation', 'tour' ) ) ) { wp_deregister_script( 'sgpbSelect2.js' ); wp_deregister_script( 'select2.min.js' ); @@ -276,14 +277,15 @@ public function save_meta( $term_id = 0, $taxonomy = '' ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } - + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( ! isset( $_POST['thumbnail'] ) || ! isset( $_POST['tagline'] ) ) { return; } if ( check_admin_referer( 'lsx_to_save_term_thumbnail', 'lsx_to_term_thumbnail_nonce' ) ) { + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST['thumbnail'] ) && ! empty( $_POST['thumbnail'] ) ) { - $thumbnail_meta = sanitize_text_field( $_POST['thumbnail'] ); + $thumbnail_meta = sanitize_text_field( wp_unslash( $_POST['thumbnail'] ) ); $thumbnail_meta = ! empty( $thumbnail_meta ) ? $thumbnail_meta : ''; if ( empty( $thumbnail_meta ) ) { @@ -293,8 +295,9 @@ public function save_meta( $term_id = 0, $taxonomy = '' ) { } } + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( isset( $_POST['tagline'] ) && ! empty( $_POST['tagline'] ) ) { - $meta = sanitize_text_field( $_POST['tagline'] ); + $meta = sanitize_text_field( wp_unslash( $_POST['tagline'] ) ); $meta = ! empty( $meta ) ? $meta : ''; if ( empty( $meta ) ) { diff --git a/includes/classes/legacy/class-tour-operator.php b/includes/classes/legacy/class-tour-operator.php index 2fced2cf..37b4b835 100644 --- a/includes/classes/legacy/class-tour-operator.php +++ b/includes/classes/legacy/class-tour-operator.php @@ -220,11 +220,11 @@ public function trigger_schema() { */ public static function register_activation_hook() { self::compatible_version_check_on_activation(); - + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( ! is_network_admin() && ! isset( $_GET['activate-multi'] ) ) { set_transient( '_tour_operators_flush_rewrite_rules', 1, 30 ); } - + // @phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( ! is_network_admin() && ! isset( $_GET['activate-multi'] ) ) { set_transient( '_tour_operators_welcome_redirect', 1, 30 ); } @@ -467,117 +467,6 @@ public function taxonomies_filter( $taxonomies ) { return $taxonomies; } - /** - * checks which plugin is active, and grabs those forms. - */ - public function show_default_form() { - if ( class_exists( 'Caldera_Forms_Forms' ) || class_exists( 'GFForms' ) || class_exists( 'Ninja_Forms' ) || class_exists( 'WPForms' ) ) { - return true; - } else { - return false; - } - } - - /** - * checks which plugin is active, and grabs those forms. - */ - public function get_activated_forms() { - $all_forms = false; - - if ( class_exists( 'WPForms' ) ) { - $all_forms = $this->get_wpforms(); - } elseif ( class_exists( 'Ninja_Forms' ) ) { - $all_forms = $this->get_ninja_forms(); - } elseif ( class_exists( 'GFForms' ) ) { - $all_forms = $this->get_gravity_forms(); - } elseif ( class_exists( 'Caldera_Forms_Forms' ) ) { - $all_forms = $this->get_caldera_forms(); - } - - return $all_forms; - } - - /** - * gets the current wpforms - */ - public function get_wpforms() { - global $wpdb; - $forms = false; - - $args = array( - 'post_type' => 'wpforms', - 'orderby' => 'id', - 'order' => 'ASC', - 'no_found_rows' => true, - 'nopaging' => true, - ); - - $posts = get_posts( $args ); - - if ( ! empty( $posts ) ) { - foreach ( $posts as $post ) { - $forms[ $post->ID ] = $post->post_title; - } - } else { - $forms = false; - } - return $forms; - } - - /** - * gets the currenct ninja forms - */ - public function get_ninja_forms() { - global $wpdb; - - $results = $wpdb->get_results( "SELECT id,title FROM {$wpdb->prefix}nf3_forms" ); - $forms = false; - - if ( ! empty( $results ) ) { - foreach ( $results as $form ) { - $forms[ $form->id ] = $form->title; - } - } - - return $forms; - } - - /** - * gets the currenct gravity forms - */ - public function get_gravity_forms() { - global $wpdb; - - $results = \RGFormsModel::get_forms( null, 'title' ); - $forms = false; - - if ( ! empty( $results ) ) { - foreach ( $results as $form ) { - $forms[ $form->id ] = $form->title; - } - } - - return $forms; - } - - /** - * gets the currenct caldera forms - */ - public function get_caldera_forms() { - global $wpdb; - - $results = \Caldera_Forms_Forms::get_forms( true ); - $forms = false; - - if ( ! empty( $results ) ) { - foreach ( $results as $form => $form_data ) { - $forms[ $form ] = $form_data['name']; - } - } - - return $forms; - } - /** * Make TO last plugin to load. */ diff --git a/includes/partials/navigation.php b/includes/partials/navigation.php index 8d41ed68..c70dc7e4 100644 --- a/includes/partials/navigation.php +++ b/includes/partials/navigation.php @@ -4,8 +4,10 @@
- -
+ +

Discover our diverse collection of destinations, each offering a unique escape. Browse through stunning locales, from exotic retreats to bustling metropolises, and find the perfect spot for your next adventure. With options to suit every traveller, our destinations archive is your gateway to endless possibilities.

@@ -29,8 +29,8 @@ -
-
+
+
@@ -42,7 +42,13 @@
-
+ + + + +
@@ -64,4 +70,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/templates/archive-review.html b/templates/archive-review.html new file mode 100644 index 00000000..8e60c379 --- /dev/null +++ b/templates/archive-review.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/archive-special.html b/templates/archive-special.html new file mode 100644 index 00000000..22d91e96 --- /dev/null +++ b/templates/archive-special.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/archive-team.html b/templates/archive-team.html new file mode 100644 index 00000000..386d4b45 --- /dev/null +++ b/templates/archive-team.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/archive-tour-list.html b/templates/archive-tour-list.html new file mode 100644 index 00000000..f6281413 --- /dev/null +++ b/templates/archive-tour-list.html @@ -0,0 +1,31 @@ + + + + + + + +
+
+
+ + + +
+
+ + + + +
+ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/templates/archive-tour.html b/templates/archive-tour.html index 24ac74f1..dcb73731 100644 --- a/templates/archive-tour.html +++ b/templates/archive-tour.html @@ -1,107 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-

Browse through our extensive collection of tours and find the perfect journey for your next adventure. Whether you're drawn to historical explorations, nature-filled escapes, or vibrant cultural experiences, our range of tours has something to suit every interest. Start planning your next memorable trip with options tailored to every type of traveller.

-
-
- - - -
-
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - -
-
-
- - - - - -

Unfortunately, there are no tours listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/archive-travel-style.html b/templates/archive-travel-style.html new file mode 100644 index 00000000..8c6bee64 --- /dev/null +++ b/templates/archive-travel-style.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/archive.html b/templates/archive.html index 09289cc2..b79900e9 100644 --- a/templates/archive.html +++ b/templates/archive.html @@ -1,5 +1,5 @@ - -
+ +
@@ -20,28 +20,16 @@
- -
-
+ +
+
-
- -
- - -
-
- - - - -
-
- +
+ @@ -62,4 +50,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/templates/no-title.html b/templates/no-title.html index 72e96ff7..9a197092 100644 --- a/templates/no-title.html +++ b/templates/no-title.html @@ -1,9 +1,9 @@ -
+
- \ No newline at end of file + \ No newline at end of file diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 00000000..620194a5 --- /dev/null +++ b/templates/page.html @@ -0,0 +1,13 @@ + +
+ + + +
+
+ +
+
+ + + \ No newline at end of file diff --git a/templates/pages.html b/templates/pages.html index c0f222cd..620194a5 100644 --- a/templates/pages.html +++ b/templates/pages.html @@ -1,5 +1,5 @@ -
+
@@ -10,4 +10,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/templates/search-results.html b/templates/search-results.html index 51a57e1a..812bf543 100644 --- a/templates/search-results.html +++ b/templates/search-results.html @@ -1,85 +1 @@ - -
- - - -
-
-
-
-
- - - - - - - -
-

Search again

- - -
- - - -
-
- -
- - -
-
- - - -
-
-
-
- - - -

Category:

-
- - -
-
- - - -
-
-
- - - - -
- - - - - -
- - - -
- -

No Results Found

- - - -

Oops! It looks like we couldn't find any matches for your search. But don't worry, there's plenty more to explore! Try adjusting your search terms.

- -
-
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/search.html b/templates/search.html new file mode 100644 index 00000000..33314015 --- /dev/null +++ b/templates/search.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/single-accommodation.html b/templates/single-accommodation.html index 6cdf0dad..177f0a3e 100644 --- a/templates/single-accommodation.html +++ b/templates/single-accommodation.html @@ -1,509 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- -
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Rating:

-
- - - -
- - - - -
- - - - - - - - - -
-
-
- - - -
-
-
- - - -

Location:

-
- - - -
- -
-
- - - -
-
-
- - - -

Spoken Languages:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Accommodation Type:

-
- - - -
-
- - - -
-
-
- - - -

Number of units:

-
- - - -
- -
-
- - - -
-
-
- - - -

Friendly:

-
- - - -
- -
-
-
- - - - -
-
-
-
- - - -
-
-
- - - -

Units

- - - -
-
- - - -
-
-
-
-
-
- - - -
-
-
- -
-
- - - -
-
- -
- - - -
-
-

Information

- - - -
-
-
- - - -

Unit Type:

-
- - - - -
- - - -
-
-
- - - -

Price:

-
- - - -
- - - - - -
-
-
-
-
-
-
-
-
-
- - - -
-
-
- - - -

Facilities

- - - -
-
- - - -
-
- - - -
-
-
- - - -

Gallery

- - - -
-
- - - - -
- - - -
-
-
- - - -

Rates

- - - -
-
- - - -
-
-
- - - - - -
- - - - -
-
- - - -
-
-
- - - - -

-
- - - -
- - - - -

-
-
-
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - -
-
-
- - - -

Related Accommodation

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Type:

-
- - - -
-
- - - -
-
-
- - - -

Rooms:

-
- - - -

-
-
- - - - -
- - - - -
- -
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/single-activity.html b/templates/single-activity.html new file mode 100644 index 00000000..429dd8bd --- /dev/null +++ b/templates/single-activity.html @@ -0,0 +1,59 @@ + + + +
+
+
+ + + + +
+
+ + + + + + + +
+ + + +
+
+
+ + + +

Related Activities

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + + +
+
+ +
+
+ + + \ No newline at end of file diff --git a/templates/single-country.html b/templates/single-country.html index d3341412..93850afe 100644 --- a/templates/single-country.html +++ b/templates/single-country.html @@ -1,547 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- -
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Regions:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit

-
- - - - -
-
- - - - -
-
-
-
- - - -
-
-
- - - -

Regions

- - - -
-
- - - - - - - -
- -
- - -
-
- - - - -
-
- -
-
- - - -
-
-
- - - -

Travel Information

- - - -
-
- - - - - - - -
-
-
-
-
-

General

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Electricity

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Banking

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Cuisine

-
- - - -
-

-
-
- - - - -
-
-
- - - -
-
-
-
-
-

Climate

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Transport

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Dress

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Health

-
- - - -
-

-
-
- - - - -
-
-
- - - -
-
-
-
-
-

Safety

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Visa

-
- - - -
-

-
-
- - - - -
-
- - - -
- - - -
-
-
- - - -
-
-
- - - -

Gallery

- - - -
-
- - - - -
- - - -
-
-
- - - -

Related Tours

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - - -
-
- -
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/single-destination.html b/templates/single-destination.html index a07fcbff..7f8d804a 100644 --- a/templates/single-destination.html +++ b/templates/single-destination.html @@ -1,319 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- -
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Country

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit

-
- - - - -
-
- - - - -
-
-
-
- - - -
-
-
- - - -

Featured Tours

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - -
-
-
- -
-
- - - -
-
-
- - - -

Gallery

- - - -
-
- - - - -
- - - -
-
-
- - - -

Featured Accommodation

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Type:

-
- - - -
-
- - - -
-
-
- - - -

Rooms:

-
- - - -

-
-
- - - - -
-
- -
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/single-region.html b/templates/single-region.html index bfa34d22..3d79b066 100644 --- a/templates/single-region.html +++ b/templates/single-region.html @@ -1,319 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- -
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Country

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit

-
- - - - -
-
- - - - -
-
-
-
- - - -
-
-
- - - -

Featured Tours

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - -
-
-
- -
-
- - - -
-
-
- - - -

Gallery

- - - -
-
- - - - -
- - - -
-
-
- - - -

Featured Accommodation

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Type:

-
- - - -
-
- - - -
-
-
- - - -

Rooms:

-
- - - -

-
-
- - - - -
-
- -
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/single-review.html b/templates/single-review.html new file mode 100644 index 00000000..e3af2190 --- /dev/null +++ b/templates/single-review.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/single-special.html b/templates/single-special.html new file mode 100644 index 00000000..a56ba28f --- /dev/null +++ b/templates/single-special.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/single-team.html b/templates/single-team.html new file mode 100644 index 00000000..1a356f70 --- /dev/null +++ b/templates/single-team.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/single-tour.html b/templates/single-tour.html index 566b4837..97651f26 100644 --- a/templates/single-tour.html +++ b/templates/single-tour.html @@ -1,513 +1 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- - - - - -
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

From:

-
- - - -
- -
-
- - - -
-
-
- - - -

Duration:

-
- - - -
- - - - - -
-
- - - -
-
-
- - - -

Destinations:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Departs From:

-
- - - - -
- - - -
-
-
- - - -

Ends In:

-
- - - - -
- - - -
-
-
- - - -

Best Months to Visit

-
- - - - -
-
- - - - -
-
-
-
- - - -
- - - - -
-
- - - -
-
-
- - - -

Tour Itinerary

- - - -
-
- - - -
-
-
-
-
-
-
- -
- - - - -
- - - -
-
-
- - - -
-

Information

- - - -
-
-
- - - -

Location:

-
- - - - -
- - - -
-
-
- - - -

Accommodation:

-
- - - - -
- - - -
-
-
- - - -

Type:

-
- - - - -
- - - -
-
-
- - - -

Drinks Basis:

-
- - - - -
- - - -
-
-
- - - -

Room Basis:

-
- - - - -
-
-
-
-
-
-
-
-
-
- - - -
-
-
- - - -

Gallery

- - - -
-
- - - - -
- - - -
-
-
- - - -

Rates

- - - -
-
- - - -
-
-
- - - - - -
- - - - -
-
- - - -
-
-
- - - - -

-
- - - -
- - - - -

-
-
-
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - -
-
-
- - - -

Related Tours

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - -
-
-
- -
-
- - - \ No newline at end of file + \ No newline at end of file diff --git a/templates/single.html b/templates/single.html new file mode 100644 index 00000000..1a74f8d5 --- /dev/null +++ b/templates/single.html @@ -0,0 +1,85 @@ + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+ + +
+ + + +
+
+ + + +
+
+
+ + + +

Recent Posts

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + +
+ + +

—

+ + + +

by

+ + + + +
+ + + +
+
+
+ +
+
+ + + \ No newline at end of file diff --git a/templates/taxonomy-travel-style-adventure.html b/templates/taxonomy-travel-style-adventure.html new file mode 100644 index 00000000..d9cb8889 --- /dev/null +++ b/templates/taxonomy-travel-style-adventure.html @@ -0,0 +1 @@ + \ No newline at end of file From 63ec61eef7cfd9175be0eec5ef26b773fd7ef942 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 10:57:05 +0200 Subject: [PATCH 69/77] PHPCS fixes --- includes/classes/admin/class-settings.php | 1 + includes/classes/blocks/class-bindings.php | 1 + includes/classes/blocks/class-registration.php | 13 ++++++++----- includes/classes/legacy/class-accommodation.php | 1 + includes/classes/legacy/class-admin.php | 5 +++-- includes/partials/add-ons.php | 1 + includes/partials/help.php | 1 + includes/template-tags/helpers.php | 1 + includes/template-tags/maps.php | 1 + 9 files changed, 18 insertions(+), 7 deletions(-) diff --git a/includes/classes/admin/class-settings.php b/includes/classes/admin/class-settings.php index 1cb3b112..ef908d51 100644 --- a/includes/classes/admin/class-settings.php +++ b/includes/classes/admin/class-settings.php @@ -481,6 +481,7 @@ public function image_field( $field_id, $args = array(), $post_type = '' ) { $field[] = ''; // Image Previews + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage $field[] = '
'; // Action Buttons diff --git a/includes/classes/blocks/class-bindings.php b/includes/classes/blocks/class-bindings.php index 22b4fa9b..4387fe4c 100644 --- a/includes/classes/blocks/class-bindings.php +++ b/includes/classes/blocks/class-bindings.php @@ -693,6 +693,7 @@ public function render_gallery_block( $block_content, $parsed_block, $block_obj } $build = '
'; + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage $build .= $link_prefix . '' . $link_suffix; $build .= '
'; $images[] = $build; diff --git a/includes/classes/blocks/class-registration.php b/includes/classes/blocks/class-registration.php index d704156a..c7f490e3 100644 --- a/includes/classes/blocks/class-registration.php +++ b/includes/classes/blocks/class-registration.php @@ -71,7 +71,7 @@ public function enqueue_block_variations_script() { LSX_TO_URL . 'assets/js/blocks/' . $slug . '.js', // Path to your JavaScript file. array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-post' ), // Dependencies. filemtime( LSX_TO_PATH . 'assets/js/blocks/' . $slug . '.js' ), // Versioning with file modification time. - true // Enqueue in the footer. + [ 'in_footer' => true ] ); if ( 'general' === $slug ) { $param_array = array( @@ -88,7 +88,8 @@ public function enqueue_block_variations_script() { 'lsx-to-' . $slug, LSX_TO_URL . 'assets/js/blocks/' . $slug . '.js', $dependancies, - filemtime( LSX_TO_PATH . 'assets/js/blocks/' . $slug . '.js' ) + filemtime( LSX_TO_PATH . 'assets/js/blocks/' . $slug . '.js' ), + [ 'in_footer' => true ] ); } @@ -98,7 +99,7 @@ public function enqueue_block_variations_script() { LSX_TO_URL . 'assets/js/blocks/slotfills.js', // Path to your JavaScript file. array( 'wp-plugins', 'wp-edit-post', 'wp-element', 'wp-components', 'wp-data' ), // Dependencies. filemtime( LSX_TO_PATH . 'assets/js/blocks/slotfills.js' ), // Versioning with file modification time. - true // Enqueue in the footer. + [ 'in_footer' => true ] ); } } @@ -127,6 +128,7 @@ public function query_args_filter( $query, $block ) { // We only restric this on the destination post type, in case the block is used on a landing page. if ( 'destination' === get_post_type() ) { $query['post_parent__in'] = [ get_the_ID() ]; + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in $query['post__not_in'] = [ get_the_ID() ]; } break; @@ -136,6 +138,7 @@ public function query_args_filter( $query, $block ) { $parent = wp_get_post_parent_id(); if ( 'destination' === get_post_type() ) { $query['post_parent'] = $parent; + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in $query['post__not_in'] = [ get_the_ID() ]; } break; @@ -143,7 +146,7 @@ public function query_args_filter( $query, $block ) { case 'featured-accommodation': case 'featured-tours': case 'featured-destinations': - + // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query $query['meta_query'] = array( 'relation' => 'OR', array( @@ -217,7 +220,7 @@ public function query_args_filter( $query, $block ) { if ( ! isset( $query['post__in'] ) ) { $this->disabled[ $key ] = true; } - + // phpcs:ignore WordPressVIPMinimum.Performance.WPQueryParams.PostNotIn_post__not_in $query['post__not_in'] = $excluded_items; break; diff --git a/includes/classes/legacy/class-accommodation.php b/includes/classes/legacy/class-accommodation.php index 803d2a07..becc9e16 100644 --- a/includes/classes/legacy/class-accommodation.php +++ b/includes/classes/legacy/class-accommodation.php @@ -170,6 +170,7 @@ public function rating( $html = '', $meta_key = false, $value = false, $before = if ( 0 !== (int) $value ) { while ( $counter > 0 ) { $ratings_array[] = '
'; + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage $ratings_array[] = ''; } } else { diff --git a/includes/partials/add-ons.php b/includes/partials/add-ons.php index 8ac00a67..323f7b8d 100644 --- a/includes/partials/add-ons.php +++ b/includes/partials/add-ons.php @@ -1,4 +1,5 @@
+ '; $img = apply_filters( 'lsx_lazyload_slider_images', $img, $term_thumbnail_id, $size, false, $image_url ); return $img; diff --git a/includes/template-tags/maps.php b/includes/template-tags/maps.php index 4f698bc0..0218fb58 100644 --- a/includes/template-tags/maps.php +++ b/includes/template-tags/maps.php @@ -152,6 +152,7 @@ function lsx_to_map( $before = '', $after = '', $echo = true ) { ); if ( isset( get_queried_object()->term_id ) ) { + // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query $country_args['tax_query'] = array( array( 'taxonomy' => 'continent', From 7591f22493556b82777a3fad52824835feb8812f Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 12:37:30 +0200 Subject: [PATCH 70/77] Adding in the accommodation and review archive. --- includes/patterns/archive-accommodation.php | 64 +++++++++++ includes/patterns/archive-review.php | 120 ++++++++++++++++++++ templates/archive-tour-list.html | 31 ----- 3 files changed, 184 insertions(+), 31 deletions(-) create mode 100644 includes/patterns/archive-accommodation.php create mode 100644 includes/patterns/archive-review.php delete mode 100644 templates/archive-tour-list.html diff --git a/includes/patterns/archive-accommodation.php b/includes/patterns/archive-accommodation.php new file mode 100644 index 00000000..1c2e7930 --- /dev/null +++ b/includes/patterns/archive-accommodation.php @@ -0,0 +1,64 @@ + __( 'Accommodation Archive', 'tour-operator' ), + 'description' => __( 'A grid display for Accommodation.', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'archive' ), + 'content' => ' + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+

Discover a wide variety of accommodation options designed to suit every traveller’s needs and preferences. Whether you\'re seeking the indulgence of a five-star resort, the charm of a boutique hotel, or the simplicity of a rustic cabin, our collection has something for everyone. Each accommodation is carefully chosen to provide comfort, convenience, and a seamless blend with the local surroundings, ensuring that your stay is as memorable as the destinations themselves.

+
+
+ + + +
+
+ + + + + + +

Unfortunately, there is no accommodation listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + +' ); diff --git a/includes/patterns/archive-review.php b/includes/patterns/archive-review.php new file mode 100644 index 00000000..8b4d07cf --- /dev/null +++ b/includes/patterns/archive-review.php @@ -0,0 +1,120 @@ + __( 'Reviews Archive', 'tour-operator' ), + 'description' => __( 'A display for reviews.', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'archive' ), + 'content' => ' +
+ + + +
+
+
+
+
+ + + + + + + +
+
+

Hear what our travellers have to say about their experiences with us. From breathtaking destinations to seamless service, our guests share their stories and insights to help you plan your next adventure. Read through reviews and discover why so many travellers choose us for their unforgettable journeys.

+
+
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

Tours:

+
+ + + +

+
+ + + +
+
+
+ + + +

Rating:

+
+ + + +

+
+ + + +
+
+
+ + + +

Accommodation:

+
+ + + +

+
+
+ + + +
+
+
+ + + + + +

Unfortunately, there are no reviews listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + +' ); diff --git a/templates/archive-tour-list.html b/templates/archive-tour-list.html deleted file mode 100644 index f6281413..00000000 --- a/templates/archive-tour-list.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - -
-
-
- - - -
-
- - - - -
- - - - - -
-
-
- - - \ No newline at end of file From e9f9864a8ef082fe8dbe1e985b7bb5ceba3233b1 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 14:37:14 +0200 Subject: [PATCH 71/77] fixing the block refs --- .DS_Store | Bin 10244 -> 8196 bytes includes/patterns/archive-tour.php | 116 ++++ includes/patterns/search-results.php | 95 ++++ includes/patterns/single-accommodation.php | 615 +++++++++++++++++++++ includes/patterns/single-country.php | 559 +++++++++++++++++++ includes/patterns/single-destination.php | 225 ++++++++ includes/patterns/single-region.php | 225 ++++++++ 7 files changed, 1835 insertions(+) create mode 100644 includes/patterns/archive-tour.php create mode 100644 includes/patterns/search-results.php create mode 100644 includes/patterns/single-accommodation.php create mode 100644 includes/patterns/single-country.php create mode 100644 includes/patterns/single-destination.php create mode 100644 includes/patterns/single-region.php diff --git a/.DS_Store b/.DS_Store index 3aa8d31c874e60462ebd396f4d1c0cf5f60e6a4f..37ea5456de8f52ebe8f833f9472fc1a68126ba91 100644 GIT binary patch delta 97 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$h9$GH$NlSW*z}e#?2mrm)HcE lfzm)A!3`u_K`J*EerKM{uM)_?2+_|lIi6?gW&u%lW&jxW5LW;I delta 124 zcmZp1XbF&DU|?W$DortDU{C-uIe-{M3-C-V6q~50$jH4hU^hP__hudeO-6QRhGK>y zhUCqfg7?@qHng)(Y)BJi2C4=E1#TeW3evc-@H_KlewjcKCWvtwAZbPh1_Ka1xj?3O J^E(k{W&m|;7B~O^ diff --git a/includes/patterns/archive-tour.php b/includes/patterns/archive-tour.php new file mode 100644 index 00000000..93d5ea7e --- /dev/null +++ b/includes/patterns/archive-tour.php @@ -0,0 +1,116 @@ + __( 'Tour Archive', 'tour-operator' ), + 'description' => __( 'Displays an archive with tours in it', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'archive' ), + 'content' => ' +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+

Browse through our extensive collection of tours and find the perfect journey for your next adventure. Whether you\'re drawn to historical explorations, nature-filled escapes, or vibrant cultural experiences, our range of tours has something to suit every interest. Start planning your next memorable trip with options tailored to every type of traveller.

+
+
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

+
+ + + +
+
+
+ + + +

Duration:

+
+ + + +
+

+ + + +

Days

+
+
+
+ + + +
+
+
+ + + + + +

Unfortunately, there are no tours listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + + + ' +); \ No newline at end of file diff --git a/includes/patterns/search-results.php b/includes/patterns/search-results.php new file mode 100644 index 00000000..cc83904d --- /dev/null +++ b/includes/patterns/search-results.php @@ -0,0 +1,95 @@ + __( 'Search Results', 'tour-operator' ), + 'description' => __( 'Displays the results when a user searches using the global search', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'archive' ), + 'content' => ' + +
+ + + +
+
+
+
+
+ + + + + + + +
+

Search again

+ + +
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

Category:

+
+ + +
+
+ + + +
+
+
+ + + + +
+ + + + + +
+ + + +
+ +

No Results Found

+ + + +

Oops! It looks like we couldn\'t find any matches for your search. But don\'t worry, there\'s plenty more to explore! Try adjusting your search terms.

+ +
+
+
+ + + +' +); \ No newline at end of file diff --git a/includes/patterns/single-accommodation.php b/includes/patterns/single-accommodation.php new file mode 100644 index 00000000..e4689576 --- /dev/null +++ b/includes/patterns/single-accommodation.php @@ -0,0 +1,615 @@ + __( 'Single Accommodation', 'tour-operator' ), + 'description' => __( 'Displays a single accommodation page', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'single' ), + 'content' => ' + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+
+ + +
+

From:

+ + + + +
+
+ + + +
+ +
+ + + +
+

Share this accommodation:

+ + + + +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+
+ + + +

Rating:

+
+ + + +
+ + + + +
+ + + + + + + + + +
+
+
+ + + +
+
+
+ + + +

Number of units:

+
+ + + +
+

+
+
+ + + +
+
+
+ + + +

Single supplement:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Check in time:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Check out time:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Minimum child age:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Location:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Spoken
Languages:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Accommodation Type:

+
+ + + +
+
+ + + +
+
+
+ + + +

Friendly:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Special
interests:

+
+ + + +
+ +
+
+
+
+ + + + +
+
+
+
+ + + +
+
+
+ + + +

Units

+ + + +
+
+ + + +
+
+
+
+
+
+
+ + + +
+
+
+ +
+
+ + + +
+
+ +
+ + + +
+
+

Information

+ + + +
+
+
+ + + +

Unit Type:

+
+ + + + +
+ + + +
+
+
+ + + +

From:

+
+ + + +
+ +
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+ + + +

Facilities

+ + + +
+
+ + + +
+ +
+
+ + + + + + + +
+
+
+ + + +

Rates

+ + + +
+
+ + + +
+
+
+ + + + + +
+ + + +
+
+ + + +
+ +
+ + + +
+
+
+ + + +
+
+
+ + + + +

+
+ + + +
+ + + + +

+
+
+
+
+
+ + + +
+
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + + +
+ +
+
+
+ + + + + + + + + + + +' +); \ No newline at end of file diff --git a/includes/patterns/single-country.php b/includes/patterns/single-country.php new file mode 100644 index 00000000..e47487c8 --- /dev/null +++ b/includes/patterns/single-country.php @@ -0,0 +1,559 @@ + __( 'Single Country', 'tour-operator' ), + 'description' => __( 'Displays a single country page', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'single' ), + 'content' => ' + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Regions:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit:

+
+ + + + +
+
+ + + + +
+
+
+
+ + + +
+
+
+
+ + + +

Regions

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + + +
+
+ +
+
+
+ + + +
+
+
+ + + +

Travel Information

+ + + +
+
+ + + + + + + +
+
+
+
+
+

General

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Electricity

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Banking

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Cuisine

+
+ + + +
+

+
+
+ + + + +
+
+
+ + + +
+
+
+
+
+

Climate

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Transport

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Dress

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Health

+
+ + + +
+

+
+
+ + + + +
+
+
+ + + +
+
+
+
+
+

Safety

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Visa

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +

Related Tours

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

+
+ + + +
+
+
+ + + +

Duration:

+
+ + + +
+

+ + + +

Days

+
+
+
+ + + + +
+
+ +
+
+ + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + +' +); \ No newline at end of file diff --git a/includes/patterns/single-destination.php b/includes/patterns/single-destination.php new file mode 100644 index 00000000..3cb50cb6 --- /dev/null +++ b/includes/patterns/single-destination.php @@ -0,0 +1,225 @@ + __( 'Single Destination', 'tour-operator' ), + 'description' => __( 'Displays a single destination page', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'single' ), + 'content' => ' + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Country:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit

+
+ + + +
+ +
+
+
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + + ' +); \ No newline at end of file diff --git a/includes/patterns/single-region.php b/includes/patterns/single-region.php new file mode 100644 index 00000000..bb145202 --- /dev/null +++ b/includes/patterns/single-region.php @@ -0,0 +1,225 @@ + __( 'Single Region', 'tour-operator' ), + 'description' => __( 'Displays a single region page', 'tour-operator' ), + 'categories' => array( $this->category ), + 'templateTypes' => array( 'single' ), + 'content' => ' + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Country:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit

+
+ + + +
+ +
+
+
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + + ' +); \ No newline at end of file From 409cfd31b69edb01ff25ef59e7e3cc9dddc74dc4 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 14:45:53 +0200 Subject: [PATCH 72/77] Removing the uneeded templates --- templates/archive-activity.html | 67 --------------- templates/archive-special.html | 1 - templates/archive-team.html | 1 - templates/archive.html | 53 ------------ templates/index.html | 85 ------------------- templates/no-title.html | 9 -- templates/page.html | 13 --- templates/pages.html | 13 --- templates/single-activity.html | 59 ------------- templates/single-special.html | 1 - templates/single-team.html | 1 - .../taxonomy-travel-style-adventure.html | 1 - 12 files changed, 304 deletions(-) delete mode 100644 templates/archive-activity.html delete mode 100644 templates/archive-special.html delete mode 100644 templates/archive-team.html delete mode 100644 templates/archive.html delete mode 100644 templates/index.html delete mode 100644 templates/no-title.html delete mode 100644 templates/page.html delete mode 100644 templates/pages.html delete mode 100644 templates/single-activity.html delete mode 100644 templates/single-special.html delete mode 100644 templates/single-team.html delete mode 100644 templates/taxonomy-travel-style-adventure.html diff --git a/templates/archive-activity.html b/templates/archive-activity.html deleted file mode 100644 index ea6723fa..00000000 --- a/templates/archive-activity.html +++ /dev/null @@ -1,67 +0,0 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-

Dive into an array of exciting activities that make each destination truly unforgettable. Whether you're seeking adventure, cultural immersion, or relaxation, our activities offer something for everyone. From thrilling outdoor experiences to enriching local encounters, find the perfect activities to enhance your journey and create lasting memories.

-
-
- - - -
-
- -
- - -
-
- - - - -
-
- - - - - -

Unfortunately, there are no activities listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
- - - \ No newline at end of file diff --git a/templates/archive-special.html b/templates/archive-special.html deleted file mode 100644 index 22d91e96..00000000 --- a/templates/archive-special.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/templates/archive-team.html b/templates/archive-team.html deleted file mode 100644 index 386d4b45..00000000 --- a/templates/archive-team.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/templates/archive.html b/templates/archive.html deleted file mode 100644 index b79900e9..00000000 --- a/templates/archive.html +++ /dev/null @@ -1,53 +0,0 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- - - -
-
- - - - - -

Sorry, there are no results matching your search at the moment. Check back later for new updates and exciting options.

- - - - -
- - - - - -
-
-
- - - \ No newline at end of file diff --git a/templates/index.html b/templates/index.html deleted file mode 100644 index 2437057b..00000000 --- a/templates/index.html +++ /dev/null @@ -1,85 +0,0 @@ - -
- - - -
-
-
-

Latest News

-
- - - - -
-
- - - - - - - -
-
-

Welcome to our blog, your gateway to the world of travel, exploration, and adventure. Here, we share captivating stories, expert travel tips, and inspiring experiences from our journeys. Whether you're seeking insights for your next trip or simply wish to explore new destinations from afar, our articles are designed to inform, inspire, and ignite your wanderlust. Dive into our latest posts below, and let your adventure begin.

-
- - - -
-
- -
- - -
-
- - - -
- - -

- - - -

by

- - - - -
- - - -
-
-
- - - - - -

Unfortunately, there are no blog posts listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
-
- - - \ No newline at end of file diff --git a/templates/no-title.html b/templates/no-title.html deleted file mode 100644 index 9a197092..00000000 --- a/templates/no-title.html +++ /dev/null @@ -1,9 +0,0 @@ - -
- - - -
- - - \ No newline at end of file diff --git a/templates/page.html b/templates/page.html deleted file mode 100644 index 620194a5..00000000 --- a/templates/page.html +++ /dev/null @@ -1,13 +0,0 @@ - -
- - - -
-
- -
-
- - - \ No newline at end of file diff --git a/templates/pages.html b/templates/pages.html deleted file mode 100644 index 620194a5..00000000 --- a/templates/pages.html +++ /dev/null @@ -1,13 +0,0 @@ - -
- - - -
-
- -
-
- - - \ No newline at end of file diff --git a/templates/single-activity.html b/templates/single-activity.html deleted file mode 100644 index 429dd8bd..00000000 --- a/templates/single-activity.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -
-
-
- - - - -
-
- - - - - - - -
- - - -
-
-
- - - -

Related Activities

- - - -
-
- - - -
- -
- - -
-
- - - - -
-
- -
-
- - - \ No newline at end of file diff --git a/templates/single-special.html b/templates/single-special.html deleted file mode 100644 index a56ba28f..00000000 --- a/templates/single-special.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/templates/single-team.html b/templates/single-team.html deleted file mode 100644 index 1a356f70..00000000 --- a/templates/single-team.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/templates/taxonomy-travel-style-adventure.html b/templates/taxonomy-travel-style-adventure.html deleted file mode 100644 index d9cb8889..00000000 --- a/templates/taxonomy-travel-style-adventure.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From e02c5fe176f352f828b3cdca62aeb3645e23e69a Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 14:54:19 +0200 Subject: [PATCH 73/77] Removing the patterns --- includes/patterns/archive-accommodation.php | 64 -- includes/patterns/archive-review.php | 120 ---- includes/patterns/archive-tour.php | 116 ---- includes/patterns/search-results.php | 95 --- includes/patterns/single-accommodation.php | 615 -------------------- includes/patterns/single-country.php | 559 ------------------ includes/patterns/single-destination.php | 225 ------- includes/patterns/single-region.php | 225 ------- templates/archive-accommodation.html | 57 +- templates/archive-review.html | 114 +++- templates/archive-tour.html | 108 +++- templates/search-results.html | 86 ++- templates/search.html | 1 - templates/single-accommodation.html | 606 ++++++++++++++++++- templates/single-country.html | 550 ++++++++++++++++- templates/single-destination.html | 216 ++++++- templates/single-region.html | 216 ++++++- templates/single-tour.html | 446 +++++++++++++- templates/single.html | 85 --- 19 files changed, 2390 insertions(+), 2114 deletions(-) delete mode 100644 includes/patterns/archive-accommodation.php delete mode 100644 includes/patterns/archive-review.php delete mode 100644 includes/patterns/archive-tour.php delete mode 100644 includes/patterns/search-results.php delete mode 100644 includes/patterns/single-accommodation.php delete mode 100644 includes/patterns/single-country.php delete mode 100644 includes/patterns/single-destination.php delete mode 100644 includes/patterns/single-region.php delete mode 100644 templates/search.html delete mode 100644 templates/single.html diff --git a/includes/patterns/archive-accommodation.php b/includes/patterns/archive-accommodation.php deleted file mode 100644 index 1c2e7930..00000000 --- a/includes/patterns/archive-accommodation.php +++ /dev/null @@ -1,64 +0,0 @@ - __( 'Accommodation Archive', 'tour-operator' ), - 'description' => __( 'A grid display for Accommodation.', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'archive' ), - 'content' => ' - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-

Discover a wide variety of accommodation options designed to suit every traveller’s needs and preferences. Whether you\'re seeking the indulgence of a five-star resort, the charm of a boutique hotel, or the simplicity of a rustic cabin, our collection has something for everyone. Each accommodation is carefully chosen to provide comfort, convenience, and a seamless blend with the local surroundings, ensuring that your stay is as memorable as the destinations themselves.

-
-
- - - -
-
- - - - - - -

Unfortunately, there is no accommodation listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
- - -' ); diff --git a/includes/patterns/archive-review.php b/includes/patterns/archive-review.php deleted file mode 100644 index 8b4d07cf..00000000 --- a/includes/patterns/archive-review.php +++ /dev/null @@ -1,120 +0,0 @@ - __( 'Reviews Archive', 'tour-operator' ), - 'description' => __( 'A display for reviews.', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'archive' ), - 'content' => ' -
- - - -
-
-
-
-
- - - - - - - -
-
-

Hear what our travellers have to say about their experiences with us. From breathtaking destinations to seamless service, our guests share their stories and insights to help you plan your next adventure. Read through reviews and discover why so many travellers choose us for their unforgettable journeys.

-
-
- - - -
-
- -
- - -
-
- - - -
-
-
-
- - - -

Tours:

-
- - - -

-
- - - -
-
-
- - - -

Rating:

-
- - - -

-
- - - -
-
-
- - - -

Accommodation:

-
- - - -

-
-
- - - -
-
-
- - - - - -

Unfortunately, there are no reviews listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
- - -' ); diff --git a/includes/patterns/archive-tour.php b/includes/patterns/archive-tour.php deleted file mode 100644 index 93d5ea7e..00000000 --- a/includes/patterns/archive-tour.php +++ /dev/null @@ -1,116 +0,0 @@ - __( 'Tour Archive', 'tour-operator' ), - 'description' => __( 'Displays an archive with tours in it', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'archive' ), - 'content' => ' -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-

Browse through our extensive collection of tours and find the perfect journey for your next adventure. Whether you\'re drawn to historical explorations, nature-filled escapes, or vibrant cultural experiences, our range of tours has something to suit every interest. Start planning your next memorable trip with options tailored to every type of traveller.

-
-
- - - -
-
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - -
-
-
- - - - - -

Unfortunately, there are no tours listed at the moment. Please check back soon as we regularly update our offerings.

- - - - -
- - - - - -
-
-
- - - - ' -); \ No newline at end of file diff --git a/includes/patterns/search-results.php b/includes/patterns/search-results.php deleted file mode 100644 index cc83904d..00000000 --- a/includes/patterns/search-results.php +++ /dev/null @@ -1,95 +0,0 @@ - __( 'Search Results', 'tour-operator' ), - 'description' => __( 'Displays the results when a user searches using the global search', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'archive' ), - 'content' => ' - -
- - - -
-
-
-
-
- - - - - - - -
-

Search again

- - -
- - - -
-
- -
- - -
-
- - - -
-
-
-
- - - -

Category:

-
- - -
-
- - - -
-
-
- - - - -
- - - - - -
- - - -
- -

No Results Found

- - - -

Oops! It looks like we couldn\'t find any matches for your search. But don\'t worry, there\'s plenty more to explore! Try adjusting your search terms.

- -
-
-
- - - -' -); \ No newline at end of file diff --git a/includes/patterns/single-accommodation.php b/includes/patterns/single-accommodation.php deleted file mode 100644 index e4689576..00000000 --- a/includes/patterns/single-accommodation.php +++ /dev/null @@ -1,615 +0,0 @@ - __( 'Single Accommodation', 'tour-operator' ), - 'description' => __( 'Displays a single accommodation page', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'single' ), - 'content' => ' - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
-
- - -
-

From:

- - - - -
-
- - - -
- -
- - - -
-

Share this accommodation:

- - - - -
-
- - - -
-
-

Fast Facts

- - - -
-
-
-
-
- - - -

Rating:

-
- - - -
- - - - -
- - - - - - - - - -
-
-
- - - -
-
-
- - - -

Number of units:

-
- - - -
-

-
-
- - - -
-
-
- - - -

Single supplement:

-
- - - -
- -
-
- - - -
-
-
- - - -

Check in time:

-
- - - -
- -
-
- - - -
-
-
- - - -

Check out time:

-
- - - -
- -
-
- - - -
-
-
- - - -

Minimum child age:

-
- - - -
- -
-
- - - -
-
-
- - - -

Location:

-
- - - -
- -
-
- - - -
-
-
- - - -

Spoken
Languages:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Accommodation Type:

-
- - - -
-
- - - -
-
-
- - - -

Friendly:

-
- - - -
- -
-
- - - -
-
-
- - - -

Special
interests:

-
- - - -
- -
-
-
-
- - - - -
-
-
-
- - - -
-
-
- - - -

Units

- - - -
-
- - - -
-
-
-
-
-
-
- - - -
-
-
- -
-
- - - -
-
- -
- - - -
-
-

Information

- - - -
-
-
- - - -

Unit Type:

-
- - - - -
- - - -
-
-
- - - -

From:

-
- - - -
- -
-
-
-
-
-
-
-
-
-
-
- - - -
-
-
- - - -

Facilities

- - - -
-
- - - -
- -
-
- - - - - - - -
-
-
- - - -

Rates

- - - -
-
- - - -
-
-
- - - - - -
- - - -
-
- - - -
- -
- - - -
-
-
- - - -
-
-
- - - - -

-
- - - -
- - - - -

-
-
-
-
-
- - - -
-
-
-
- - - - - - - -
-
-
- - - -
-
- -
-
- - - - -
- -
-
-
- - - - - - - - - - - -' -); \ No newline at end of file diff --git a/includes/patterns/single-country.php b/includes/patterns/single-country.php deleted file mode 100644 index e47487c8..00000000 --- a/includes/patterns/single-country.php +++ /dev/null @@ -1,559 +0,0 @@ - __( 'Single Country', 'tour-operator' ), - 'description' => __( 'Displays a single country page', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'single' ), - 'content' => ' - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- - -
- -
-
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Regions:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit:

-
- - - - -
-
- - - - -
-
-
-
- - - -
-
-
-
- - - -

Regions

- - - -
-
- - - -
- -
- - -
-
- - - - -
-
- -
-
-
- - - -
-
-
- - - -

Travel Information

- - - -
-
- - - - - - - -
-
-
-
-
-

General

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Electricity

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Banking

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Cuisine

-
- - - -
-

-
-
- - - - -
-
-
- - - -
-
-
-
-
-

Climate

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Transport

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Dress

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Health

-
- - - -
-

-
-
- - - - -
-
-
- - - -
-
-
-
-
-

Safety

-
- - - -
-

-
-
- - - - -
-
- - - -
-
-
-
-

Visa

-
- - - -
-

-
-
- - - - -
-
- - - -
- - - -
-
-
- - - - - - - -
-
-
- - - -

Related Tours

- - - -
-
- - - -
- -
- - -
-
- - - -
-
-
-
- - - -

From:

-
- - - -

-
- - - -
-
-
- - - -

Duration:

-
- - - -
-

- - - -

Days

-
-
-
- - - - -
-
- -
-
- - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - -' -); \ No newline at end of file diff --git a/includes/patterns/single-destination.php b/includes/patterns/single-destination.php deleted file mode 100644 index 3cb50cb6..00000000 --- a/includes/patterns/single-destination.php +++ /dev/null @@ -1,225 +0,0 @@ - __( 'Single Destination', 'tour-operator' ), - 'description' => __( 'Displays a single destination page', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'single' ), - 'content' => ' - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- - -
- -
-
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Country:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit

-
- - - -
- -
-
-
- - - - -
-
-
-
- - - - - - - - - - - - - - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - - ' -); \ No newline at end of file diff --git a/includes/patterns/single-region.php b/includes/patterns/single-region.php deleted file mode 100644 index bb145202..00000000 --- a/includes/patterns/single-region.php +++ /dev/null @@ -1,225 +0,0 @@ - __( 'Single Region', 'tour-operator' ), - 'description' => __( 'Displays a single region page', 'tour-operator' ), - 'categories' => array( $this->category ), - 'templateTypes' => array( 'single' ), - 'content' => ' - -
- - - -
-
-
- - - - -
-
- - - - - - - -
-
-
- - -
- -
-
- - - -
-
-

Fast Facts

- - - -
-
-
-
- - - -

Country:

-
- - - -
- -
-
- - - -
-
-
- - - -

Travel Styles:

-
- - - -
-
- - - -
-
-
- - - -

Best Months to Visit

-
- - - -
- -
-
-
- - - - -
-
-
-
- - - - - - - - - - - - - - - -
-
-
-
- - - - - - - -
-
- - - -
- -
-
- - - - -
- -
-
-
- - - - ' -); \ No newline at end of file diff --git a/templates/archive-accommodation.html b/templates/archive-accommodation.html index 4b0948bb..723666e6 100644 --- a/templates/archive-accommodation.html +++ b/templates/archive-accommodation.html @@ -1 +1,56 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+

Discover a wide variety of accommodation options designed to suit every traveller’s needs and preferences. Whether you\'re seeking the indulgence of a five-star resort, the charm of a boutique hotel, or the simplicity of a rustic cabin, our collection has something for everyone. Each accommodation is carefully chosen to provide comfort, convenience, and a seamless blend with the local surroundings, ensuring that your stay is as memorable as the destinations themselves.

+
+
+ + + +
+
+ + + + + + +

Unfortunately, there is no accommodation listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/templates/archive-review.html b/templates/archive-review.html index 8e60c379..9aaf5932 100644 --- a/templates/archive-review.html +++ b/templates/archive-review.html @@ -1 +1,113 @@ - \ No newline at end of file + +
+ + + +
+
+
+
+
+ + + + + + + +
+
+

Hear what our travellers have to say about their experiences with us. From breathtaking destinations to seamless service, our guests share their stories and insights to help you plan your next adventure. Read through reviews and discover why so many travellers choose us for their unforgettable journeys.

+
+
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

Tours:

+
+ + + +

+
+ + + +
+
+
+ + + +

Rating:

+
+ + + +

+
+ + + +
+
+
+ + + +

Accommodation:

+
+ + + +

+
+
+ + + +
+
+
+ + + + + +

Unfortunately, there are no reviews listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/templates/archive-tour.html b/templates/archive-tour.html index dcb73731..387ee6a4 100644 --- a/templates/archive-tour.html +++ b/templates/archive-tour.html @@ -1 +1,107 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+

Browse through our extensive collection of tours and find the perfect journey for your next adventure. Whether you\'re drawn to historical explorations, nature-filled escapes, or vibrant cultural experiences, our range of tours has something to suit every interest. Start planning your next memorable trip with options tailored to every type of traveller.

+
+
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

+
+ + + +
+
+
+ + + +

Duration:

+
+ + + +
+

+ + + +

Days

+
+
+
+ + + +
+
+
+ + + + + +

Unfortunately, there are no tours listed at the moment. Please check back soon as we regularly update our offerings.

+ + + + +
+ + + + + +
+
+
+ + + \ No newline at end of file diff --git a/templates/search-results.html b/templates/search-results.html index 812bf543..cb700b0b 100644 --- a/templates/search-results.html +++ b/templates/search-results.html @@ -1 +1,85 @@ - \ No newline at end of file + +
+ + + +
+
+
+
+
+ + + + + + + +
+

Search again

+ + +
+ + + +
+
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

Category:

+
+ + +
+
+ + + +
+
+
+ + + + +
+ + + + + +
+ + + +
+ +

No Results Found

+ + + +

Oops! It looks like we couldn\'t find any matches for your search. But don\'t worry, there\'s plenty more to explore! Try adjusting your search terms.

+ +
+
+
+ + + \ No newline at end of file diff --git a/templates/search.html b/templates/search.html deleted file mode 100644 index 33314015..00000000 --- a/templates/search.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/templates/single-accommodation.html b/templates/single-accommodation.html index 177f0a3e..fda13914 100644 --- a/templates/single-accommodation.html +++ b/templates/single-accommodation.html @@ -1 +1,605 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+
+ + +
+

From:

+ + + + +
+
+ + + +
+ +
+ + + +
+

Share this accommodation:

+ + + + +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+
+ + + +

Rating:

+
+ + + +
+ + + + +
+ + + + + + + + + +
+
+
+ + + +
+
+
+ + + +

Number of units:

+
+ + + +
+

+
+
+ + + +
+
+
+ + + +

Single supplement:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Check in time:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Check out time:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Minimum child age:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Location:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Spoken
Languages:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Accommodation Type:

+
+ + + +
+
+ + + +
+
+
+ + + +

Friendly:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Special
interests:

+
+ + + +
+ +
+
+
+
+ + + + +
+
+
+
+ + + +
+
+
+ + + +

Units

+ + + +
+
+ + + +
+
+
+
+
+
+
+ + + +
+
+
+ +
+
+ + + +
+
+ +
+ + + +
+
+

Information

+ + + +
+
+
+ + + +

Unit Type:

+
+ + + + +
+ + + +
+
+
+ + + +

From:

+
+ + + +
+ +
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+ + + +

Facilities

+ + + +
+
+ + + +
+ +
+
+ + + + + + + +
+
+
+ + + +

Rates

+ + + +
+
+ + + +
+
+
+ + + + + +
+ + + +
+
+ + + +
+ +
+ + + +
+
+
+ + + +
+
+
+ + + + +

+
+ + + +
+ + + + +

+
+
+
+
+
+ + + +
+
+
+
+ + + + + + + +
+
+
+ + + +
+
+ +
+
+ + + + +
+ +
+
+
+ + + + + + + + + + + \ No newline at end of file diff --git a/templates/single-country.html b/templates/single-country.html index 93850afe..e4ce3d44 100644 --- a/templates/single-country.html +++ b/templates/single-country.html @@ -1 +1,549 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Regions:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit:

+
+ + + + +
+
+ + + + +
+
+
+
+ + + +
+
+
+
+ + + +

Regions

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + + +
+
+ +
+
+
+ + + +
+
+
+ + + +

Travel Information

+ + + +
+
+ + + + + + + +
+
+
+
+
+

General

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Electricity

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Banking

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Cuisine

+
+ + + +
+

+
+
+ + + + +
+
+
+ + + +
+
+
+
+
+

Climate

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Transport

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Dress

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Health

+
+ + + +
+

+
+
+ + + + +
+
+
+ + + +
+
+
+
+
+

Safety

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+
+
+
+

Visa

+
+ + + +
+

+
+
+ + + + +
+
+ + + +
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +

Related Tours

+ + + +
+
+ + + +
+ +
+ + +
+
+ + + +
+
+
+
+ + + +

From:

+
+ + + +

+
+ + + +
+
+
+ + + +

Duration:

+
+ + + +
+

+ + + +

Days

+
+
+
+ + + + +
+
+ +
+
+ + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + \ No newline at end of file diff --git a/templates/single-destination.html b/templates/single-destination.html index 7f8d804a..06b8a14e 100644 --- a/templates/single-destination.html +++ b/templates/single-destination.html @@ -1 +1,215 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Country:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit

+
+ + + +
+ +
+
+
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + \ No newline at end of file diff --git a/templates/single-region.html b/templates/single-region.html index 3d79b066..70a7e4c0 100644 --- a/templates/single-region.html +++ b/templates/single-region.html @@ -1 +1,215 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+ + +
+ +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Country:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit

+
+ + + +
+ +
+
+
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + \ No newline at end of file diff --git a/templates/single-tour.html b/templates/single-tour.html index 97651f26..0469bb0e 100644 --- a/templates/single-tour.html +++ b/templates/single-tour.html @@ -1 +1,445 @@ - \ No newline at end of file + +
+ + + +
+
+
+ + + + +
+
+ + + + + + + +
+
+
+
+ + +
+

From:

+ + + +

+
+
+ + + +
+ +
+ + + +
+

Share this tour:

+ + + + +
+
+ + + +
+
+

Fast Facts

+ + + +
+
+
+
+ + + +

Duration:

+
+ + + +
+ + + + + +
+
+ + + +
+
+
+ + + +

Group size:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Single supplement:

+
+ + + +
+ +
+
+ + + +
+
+
+
+ + + +
+

Booking validity:

+ + + + + + + +

-

+ + + +

End

+
+
+ + + +
+
+
+ + + +

Destinations:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Departs From:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Ends In:

+
+ + + +
+ +
+
+ + + +
+
+
+ + + +

Travel Styles:

+
+ + + +
+
+ + + +
+
+
+ + + +

Best Months to Visit

+
+ + + +
+ +
+
+
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ + + +
+
+
+ + + +

Tour Itinerary

+ + + +
+
+ + + +
+
+
+
+ + + + + + + +
+
+
+ + + +

Rates

+ + + +
+
+ + + +
+
+
+ +
+ + + +
+
+ + + +
+ +
+ + + +
+
+
+ + + +
+
+
+ + + + +

+
+ + + +
+ + + + +

+
+
+
+
+
+ + + +
+
+
+
+ + + + + + + +
+
+ + + +
+ +
+
+ + + + +
+ +
+
+
+ + + + + + + \ No newline at end of file diff --git a/templates/single.html b/templates/single.html deleted file mode 100644 index 1a74f8d5..00000000 --- a/templates/single.html +++ /dev/null @@ -1,85 +0,0 @@ - -
- - - -
-
-
- - - - -
-
- - - - - - - -
- - -
- - - -
-
- - - -
-
-
- - - -

Recent Posts

- - - -
-
- - - -
- -
- - -
-
- - - -
- - -

—

- - - -

by

- - - - -
- - - -
-
-
- -
-
- - - \ No newline at end of file From c5479a61c7b8e9d8fa90c7ff6ca98ce116223f36 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 14:56:25 +0200 Subject: [PATCH 74/77] Fixing the tour --- templates/single-tour.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/single-tour.html b/templates/single-tour.html index 0469bb0e..35da3fa7 100644 --- a/templates/single-tour.html +++ b/templates/single-tour.html @@ -273,7 +273,7 @@

Tour Itinerary

-
+
@@ -435,7 +435,7 @@

Related Accommodation

-
+
From d8c387ad6678f4add728ed676c64ce296a3078a6 Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 15:07:30 +0200 Subject: [PATCH 75/77] Fixing the image urls. --- templates/archive-accommodation.html | 4 ++-- templates/archive-review.html | 6 +++--- templates/archive-tour.html | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/templates/archive-accommodation.html b/templates/archive-accommodation.html index 723666e6..300f5a03 100644 --- a/templates/archive-accommodation.html +++ b/templates/archive-accommodation.html @@ -2,8 +2,8 @@
- -
+ +
diff --git a/templates/archive-review.html b/templates/archive-review.html index 9aaf5932..103d7787 100644 --- a/templates/archive-review.html +++ b/templates/archive-review.html @@ -2,8 +2,8 @@
- -
+ +
@@ -39,7 +39,7 @@
-
+
diff --git a/templates/archive-tour.html b/templates/archive-tour.html index 387ee6a4..0f79712c 100644 --- a/templates/archive-tour.html +++ b/templates/archive-tour.html @@ -2,8 +2,8 @@
- -
+ +
From 4950859f54f24708b9b831354cdeed139128423a Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 15:22:51 +0200 Subject: [PATCH 76/77] Updating the templates and patterns --- ...TO-accommodation-rooms-icon-black-52px.png | Bin 0 -> 385 bytes assets/img/Typeaccommodation-icon.png | Bin 0 -> 1048 bytes assets/img/Typecalendar-icon.png | Bin 0 -> 839 bytes assets/img/Typelocation-icon.png | Bin 0 -> 1869 bytes assets/img/Typetours-icon.png | Bin 0 -> 1151 bytes assets/img/Typetype-icon.png | Bin 0 -> 650 bytes ...ccommodation-type-TO-icon-black-20px-2.png | Bin 0 -> 756 bytes .../accommodation-type-TO-icon-black-20px.png | Bin 0 -> 347 bytes ...onths-to-travel-TO-icon-black-20px-1-1.png | Bin 0 -> 679 bytes ...st-months-to-travel-TO-icon-black-20px.png | Bin 0 -> 408 bytes .../booking-validity-icon-black-52px-1.svg | 1 + ...ck-in-check-out-time-icon-black-52px-1.svg | 1 + .../img/dates-travelled-icon-black-20px.png | Bin 0 -> 295 bytes assets/img/destinations-icon-black-20px.png | Bin 0 -> 416 bytes assets/img/duration-TO-black-20px-icon.png | Bin 0 -> 1108 bytes assets/img/duration-icon-black-20px.png | Bin 0 -> 397 bytes assets/img/friendly-TO-icon-black-20px-1.png | Bin 0 -> 854 bytes .../img/from-price-TO-icon-black-20px-1.png | Bin 0 -> 1136 bytes assets/img/from-price-TO-icon-black-20px.png | Bin 0 -> 446 bytes assets/img/group-size-icon-black-52px-1.svg | 1 + assets/img/image-1.png | Bin 0 -> 650 bytes assets/img/map-TO-black-20px-icon.png | Bin 0 -> 1129 bytes assets/img/map-TO-icon-black-20px.png | Bin 0 -> 322 bytes .../minimum-child-age-icon-black-52px-1.svg | 1 + assets/img/rating-icon-TO-black-20px-1.png | Bin 0 -> 899 bytes ...testominal-quote-mark-TO-tertiary-32px.png | Bin 0 -> 562 bytes .../single-supplement-icon-black-52px-1.svg | 1 + .../special-interests-icon-black-52px-1.svg | 1 + .../spoken-languages-TO-icon-black-20px-1.png | Bin 0 -> 717 bytes assets/img/type-icon-black-20px.png | Bin 0 -> 300 bytes templates/archive-review.html | 4 +-- templates/archive-tour.html | 4 +-- templates/search-results.html | 6 ++-- templates/single-accommodation.html | 32 +++++++++--------- templates/single-country.html | 18 +++++----- templates/single-destination.html | 8 ++--- templates/single-region.html | 8 ++--- templates/single-tour.html | 24 ++++++------- 38 files changed, 58 insertions(+), 52 deletions(-) create mode 100644 assets/img/TO-accommodation-rooms-icon-black-52px.png create mode 100644 assets/img/Typeaccommodation-icon.png create mode 100644 assets/img/Typecalendar-icon.png create mode 100644 assets/img/Typelocation-icon.png create mode 100644 assets/img/Typetours-icon.png create mode 100644 assets/img/Typetype-icon.png create mode 100644 assets/img/accommodation-type-TO-icon-black-20px-2.png create mode 100644 assets/img/accommodation-type-TO-icon-black-20px.png create mode 100644 assets/img/best-months-to-travel-TO-icon-black-20px-1-1.png create mode 100644 assets/img/best-months-to-travel-TO-icon-black-20px.png create mode 100644 assets/img/booking-validity-icon-black-52px-1.svg create mode 100644 assets/img/check-in-check-out-time-icon-black-52px-1.svg create mode 100644 assets/img/dates-travelled-icon-black-20px.png create mode 100644 assets/img/destinations-icon-black-20px.png create mode 100644 assets/img/duration-TO-black-20px-icon.png create mode 100644 assets/img/duration-icon-black-20px.png create mode 100644 assets/img/friendly-TO-icon-black-20px-1.png create mode 100644 assets/img/from-price-TO-icon-black-20px-1.png create mode 100644 assets/img/from-price-TO-icon-black-20px.png create mode 100644 assets/img/group-size-icon-black-52px-1.svg create mode 100644 assets/img/image-1.png create mode 100644 assets/img/map-TO-black-20px-icon.png create mode 100644 assets/img/map-TO-icon-black-20px.png create mode 100644 assets/img/minimum-child-age-icon-black-52px-1.svg create mode 100644 assets/img/rating-icon-TO-black-20px-1.png create mode 100644 assets/img/review-testominal-quote-mark-TO-tertiary-32px.png create mode 100644 assets/img/single-supplement-icon-black-52px-1.svg create mode 100644 assets/img/special-interests-icon-black-52px-1.svg create mode 100644 assets/img/spoken-languages-TO-icon-black-20px-1.png create mode 100644 assets/img/type-icon-black-20px.png diff --git a/assets/img/TO-accommodation-rooms-icon-black-52px.png b/assets/img/TO-accommodation-rooms-icon-black-52px.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1c58b1a52dfa4e70fdaae44b4649adac974c55 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^ra)}M!3-p2QyQKFDVB6cUq=Rpjs4tz5?O(K#^NA% zCx&(BWL^R}oCO|{#S9GG!XV7ZFl&wkP|zm8C&bmgzz4`A545lUcMYghxFpCgm|?wx zK!U>j{r4LJCiK6rKW`Afz~$qEBB1noPZ!4!kK=Er-sU@`z|(fxV(R5(-~Qge>SNY! zC2)nix5nI8YTt!FCX5R%pEQ!VsmHnKz-(P#mq*`qR)68UXBX9c$n&U$XsSbDdhf>i zo{ecA&98lZqPT5S&q~v^v8)ZM-EBv1xz(rboW5p4#I7o*Nxw6%L?@X#+_YLzE$!6$wNY|;d&qbhDGRXzVhnt;hmp^H-C-Ro;&%k^t+l_ Y#$CnMoJ*cxj{=2>r>mdKI;Vst0H*JRApigX literal 0 HcmV?d00001 diff --git a/assets/img/Typeaccommodation-icon.png b/assets/img/Typeaccommodation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e3b4f2ef9289bd722f8c25b784c3d0c0b1ed6cd2 GIT binary patch literal 1048 zcmeAS@N?(olHy`uVBq!ia0vp^i-C9n2Q!ciSJROJQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|I14-?iy0Vnyg`_8sqM6tK*6E_pAc8~0v~>HZ2<)XJ~1tRaUjwbkkA$o z*AkG>;gbN8KsHcTK>)}GNofd37zl`K0+sQJX$y#I3rK5&b!iCzxghnLKoV$_fS4x8 z5D1dchHf#xbHB3e}O;C_*|L$~H z_ax;QJ%R1t|HeEH-Z`0hQ4mLy0uXt;+vxgM@8{CfD*21F!{2W|6P{f@HA|aUr}Sg` zTlqED^Y8j{MLyWIL#H-HcFFSS#nn@ozj2@3$(ug)Zo@?n(TC4}RlR&ar_^q#QB*9y z&fO=;drD4*#u*!a+qGo=uG5Dy{I`A6*0k^%f?#-@RIg*rosaie)d^y=3Fs11}X$%~<2Tq(^hN%aIv7 zyjglm1noMQBHe^u%z7TSGPQT<#;c9NRZbywv-d^|G>j z>OBjaZ~Mg;W**)|Bc?q7*REYAm+2m&wcFXPkcA2PosZk&zBqi_3merm+WqtQ~uoWQnGzzs73!o zx!*v0#2!aX4{1CqliahzLhhxIV)BurA1kJJNa%jmvwx|_seLG8aT>qL%#ozbYE|>{bn3I!)Q^uTHoJ4Zh%#AciKiAz%wrsn-ypi)>)3zBKgXU(&++~@wUED-%*L5D{9)m+1AmT^AboTwZ8P(^GMwC7_kDhKe zNnB=qq{Pdse326Fb)SQtC&X~BV}L6M>wyvfI}N+5tG^fYUzvE@Xx=9Sxz5-wtLf?T z?zVfLZr-9eU+MOYlyp<&BXYiPH+AOsFDsNhsDaKH@yQc~3(NQ03V-t` tpZDW?#w<1NgbQ-MERF&|l+yW!?dM97RqMFt{sm?o22WQ%mvv4FO#lMTzOn!S literal 0 HcmV?d00001 diff --git a/assets/img/Typecalendar-icon.png b/assets/img/Typecalendar-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5ad6902d30f5addb6b3568f6b56cc2b7530e6599 GIT binary patch literal 839 zcmeAS@N?(olHy`uVBq!ia0vp^i-C9n2Q!ciSJROJQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|I14-?iy0Vnyg`_8sqM6tK*72IpAc8~0v`bh13ob=0dZ{s2^|3mO+E=N z0SOHO2`zqcEdd1s0dXKhn-3(b4P*#N14%6bQEfgkZ2@sjkO)Ybf`9-}C6KKxAf^iv zkpMD)vOosVWH6G_1#^MsXbFe`wS&z6bXx8|&?TBBL4Lsu3iSmJ3+5{{+!vVezCYo- z!FhxE1^e#{2=t#1Sie8u{r&SB0@g2>zhHi5l&CTT1Cy+$i(^Q|t+#h><~17#um&_| z_C_*$-dc0l{QrOcXGtb@mbV|0Z z+syr)tv|cuB5W_U8*SF?X}=Zwb>gX%$HLm5C#QJKe7n)dbf2NUn1A~e&;Ha;AA7@- zrPn962)aom{`u~vYA=I=KSxi-*(?AZ!^r3R=+gIZTtN0jfuUdC!0M|omJi58e9wYE(}z0bUT&$W)qL$vMt9VueE9Y`<~LeXC^`Wmzd70`aUm5e(ImSG1n^B z#m)AeyisTI;k38B-cw7CTv~m8?e*`j?K-t?-&-QS#)mFYp7cKH^7{)Rhw>G7-;MRH z);~Wb=2zeDGVYUBA6HF%pW9$pes6otrycfp?(OWbn|sBQ|D)*#&iZNMzp5Wkc%LU* zVCUgE)m6%5*Fr6$r^!-wF_%u=O?!0xhfU5sm5=`F;20KAv6vrcJ>{(G0bL(p>SFM8 L^>bP0l+XkK`%6O+ literal 0 HcmV?d00001 diff --git a/assets/img/Typelocation-icon.png b/assets/img/Typelocation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..948e5c7c2494751d2985347b7cd72e57066bed37 GIT binary patch literal 1869 zcmV-T2eSByP)Px#32;bRa{vG=O8@{YO97=lmZ<;$0E$pdR7FQ{Ob-_; z5Ev>D7b*}KFb@|i5Ev^D7b*}KC=eJd5FjuR7%L7IDi9Yb5Em;D5HJuRAP*NS5F0BF z7%C4JDi0Sb5Ev;C6)O-IDh?Mb5Ed&A7Ap@IDi9Va5Ed;E7b*}KDh?Mc5Ed&A7Ag=G zFc2Co5Em&B7b_4LDi9Yd4;L&A7%LDLDi0SbqeFE*0000jbW%=J0Kb5cAn#z`AV3hm ze{gUR5YI55ukWBRuaBRf&rnd`-*2FwFi?=spO3F!usZtZ%K!id6G=otRCwC$Tx)l# zIuK33kOUO9rE0BO`#5dSIhX(c_ikI;RUm=POai*jVt>R3n|Wo}6JTt_h!G=3j2JOu z#6O1gD#@P;E@k-%DS7cb+FxA^zpMP|i<*gDk)NGtniryUKorU3d<3Vw1Y(y@&SF6@ z!4r5gxCupxhP)fln3HWu#852h42NQw-j<%|o#lfly&-$eo@ZVLf$Yze4`nb+d&(7F z21GBW+>0_OdWgzt861KAo&GU8g{bf*S)?ID(P+Nn#o@Ao(x8|r#^gn1PLrb4;o>t8 z$tJ~k@p15?YEXmXrx6+3UQ(fKQ2dC*cO;io%^MWsufsBEHTNt*yV}3a`YGt#i(;)= z6#Cn^p;w&SP>qgQe;+P_FN-sJFxn|5;g{|ks#1_jE5(Tn&yk!rwP4it!)FdjZ4a19 z*$=d@r=y?a9V<+9$cFWHwFVZI7%jMbe54aJRZQ1Rc9%inP1*sG|&xw8FK4WwR|{oN^O*i!Z9Wn@^mOOvSt5^ zjqHv_T;GXoB=H$@%?1rec-Cw^&B!($9Am7jm$c^CN2$EQx|$|qnu?lui=tJd9}+&! zj(uIdG=;#=`T|M3ms)M77!SbX=*`kiRhDD3OB@&Udy%=(xRC#DL_G0*)Dk zba`V%>njAnNhsZ{OD0i*QX%JnKYs|#HPbZ;CPGHN5n+#QH4o@W3==24Ag{Fwy8VWrSX_?;TCj zI=JR-7*hIj%<1jx1ZYSnM_02+zb$ReSHqBSj#r`YRazIh8JVLBDmQg@hB1|+4t~$q zz7Rj6INtXck6q_}q~-Om(0Scin;#JzT{WCuA055IBfN%lSIxbrQoM#XT$y)I5fLfw z7SQ`BXHW6-)&JmKX#k3qg5lKn5@+a=8XviUCxUaBeQ=jtN*Q;nIEe2m_dVBKhAlhI zdf^r-gxlr{P13y=A;GA75Dj3yLUMHLBU_9T2Gdd!88{pzMoWQeQb`t);{>Hi&B0Nm zRx%jJ1SiZc5$X`sm>Ql1APqi7$(69c)NogWv}TRlzN8?#rc$`8VFMb095K50CM@Cc zB|)dGIvaLT&c!i?yBauI)7Yt#b8%GQ0uG*F3z&9jy(&U?Tbo5gCoBQ)xax=l!0<3gAA#R?j81fGEgZ8od2HusyGo~3|+Akm# z;+MEtG)HbsROC$@l4!>I)!lkZJ&MNAl7l9JjyDZtx`xWdSiQX6fW z2`6$CuG9YU+Ur_x6s9ze5h57fN`|YP{H1VoCCr1zCQ{qlp$Qxvzj-F?J?iwf*-GoMu15wbT3h(NZd(e$avi(1+p~ODbk-!X@um>9@FJ^=d>09g3)^F8N8{O z!85wtc~NZMPC;kovOA@3aZRwZIM+$?34o-CIG#=`P0 zX=#a6()K#68S4w}LpZ^UDA8Byv%aTF=_GpEwF*_)n)QezzyrBr#`=X?`BID*tatda zyjE-w&{+<}@Whf3myWiwkL*D{A)MtyGdxx2S1`fo90b3M^v3;8z)gNWg5OF(zG=1R z@hxAoOTqdOy==1M@r&9q+q~t;dcj7F7%^hRh!G=3{9E`RAM~S<#t$v&00000NkvXX Hu0mjf9EVQe literal 0 HcmV?d00001 diff --git a/assets/img/Typetours-icon.png b/assets/img/Typetours-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3418240e38d766fddaa822a110efc58a6f33a78c GIT binary patch literal 1151 zcmeAS@N?(olHy`uVBq!ia0vp^3xRk62Q!cizWhfKNU@|l`Z_W&Z0zU$lgJ9>GZqKA zJ29*~C-V}>;VkfoEM{QP@djbWrMA;n0tHQ`=hyAIV~Ug3H4`@8$5L0lWYy3abnaPMy?&sE_c;o6)B4$fn$a(}p~#zKBV7JtQO zN8c-qx8;vWBz&GC!TM#ARl?)q84NeR=`CmYHLbxuh`~Nu?Ujhb`IXGK+P2*FH^V{))d!{GVSxE~?w$#~;SaVsXv-F8{T^dOM{` zd>vLhuA5)GX`VdOT&{|nE~?Mk>m&ZlG=(3q{Q6!!<3Ka>?^2FQjH*fxPP5Pc)m^Q8 zAm!{Viw94$(pNHTy=ur=#CO7?)FDmd{-fn#uNr)~bq=WRmONf4F?~__N0#}b-M?e9 z8rSNE#&D)=$-b$!A>;a&QiY4_a&1<-OE0hwHoxV-yCmykne?3<8@#s2zS(j6#G{PE z=1tyNX29-m7q{V(x=G8OePn zo?XJD(=|@(F>md*tHusfZS!6;umvTpoNlz~Qrs1m=S$B7rM`V(qI&H^(8=x>2c7pf zRIS|dSmK)u*A7Q@;YrCVKdmhEr&h@*&vR}vf8kT|OVV#2+d@Zi>%NIkv<;+65|4R& znj0Wha`3T)=RS4KjlW{FK0N7Ez0bPRQGK&*yHnPMx%Mv?pS-Skc4@`7=My4=i;?%&2}jzzF0a^TkN6dv71GG1{Z2Vo=szKH%s0& z^Qq&a-ftml3y(#Y3e3D0zTj<=OihR9{|~K?b-Q&c^Bbm{Fzi12X>so*yw)h(b~IE@VVOng0sa4P_Dr2s d3Id9+)qm`2e)5(lV;87I@O1TaS?83{1ORp0_5%O_ literal 0 HcmV?d00001 diff --git a/assets/img/Typetype-icon.png b/assets/img/Typetype-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e88da5c950eeb74531e1e74d3089ef060214bd36 GIT binary patch literal 650 zcmV;50(JdTNk&G30ssJ4MM6+kP&iC>0ssInqQEB*N1>pNq^SHjz`sKbz}i62wr!jd z7=N()8AXy5DYu-l9wNfMN2FbM1aJEJ{=I)Vu}dlylVgf9wI0v}oOgeVF{ ziC?&M9bY2H*;Iy{FhoT%BFc~Tax>+fc)r*+@mvQaN|NNXQny%ngVE!82U;Zk|0kXS z#O(C>i-`U^awAERGCfSUS>6ZWe`<}z%OddRhSl?Z=QZbM$qBo<_c@nw;)Z*7sRIof zI$vpM)Y4O)Y1YP1o=ABbQl5&Grwi1lA?4|qLZ4DknMC-UcmnllNqq_m^iF}66lhL? z$h0`ix`;q~AEvfACz;!yBj?lelY79Bm*nW}VR}9i(4Q-(=OV8d=*qoGUQZtA-3@#9 z?`%O}7`o(h7+!57^~}zLuUL$@x*vbiJ&x={Umi(2Zk`)Fk^bHCuH^}cMIZ&>?NxvZ zQ6VZsg{Tk}qC!-N3ek;|z;I@X3Q-{{G*@Uzfp!$Apf{C8BHi`D!b+in0$nqON-DHc zC}s-Xdko9TJy<)4#*P#eInA4^g4OgfIJ~Wp9+vC2jp2J z!Csf??Ich3Wss)=g0erSp~Q?=_S=!e>uNvlbu7HtOnFsM?jqtfHq^(Zm>%=}cAMX~7yQ#+09On$fB*mh literal 0 HcmV?d00001 diff --git a/assets/img/accommodation-type-TO-icon-black-20px-2.png b/assets/img/accommodation-type-TO-icon-black-20px-2.png new file mode 100644 index 0000000000000000000000000000000000000000..2c2a1ce4a67a3bc119347720e41cce8184c214e1 GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?slj7I;J!Gca%qgD@k*tT_@uL8kzp5LfpCA0U$wP<(mIZ=inBk|4ie27~kQ z?*$qZ?$A_Z>Qhh)~vwevUO2YX!Y6u|6i@- zWJ(GV*zG4jXZp5vg(90cO-}pG{WWWfmDzi)3-S`-+df=eYNNG&TEnEThLtNDoZR7H8d9~woi+2vi_F~*!`Bo{ z56L;?YO?Fn4^{Es!qV0Hp;Fp0?~k=R>1|!PW!;Ck8XdhzemCdV)8FN4s+zmkZ4t9m zl#>@1=M?tr_LuJSfBk^zfQpb^u1Eu$czjELPqTaRAEvOmr7h}y1s|8X9iQj5`PFyx zHrA~ld7TceN-0su(apMP5vge+FtIde!i*yaO=0k z)aNG;vRD6Kl|Qdse`VA4#8vNtYhKK~R%@p>wer!?chf2^2S1qVdtYSwIr{~>e@scV z;}`$lFz<2qS?&#Qi@oA4xSd7h#1`7IGar33t!R(tmE~^?!#Dn3e@y9$yRcQ#gVRZY zt-m(7h%v`2iwW*KpMG3!bBxZSntT5(xBYkh&9!mQ;%=pT%dhcsYF!hrdBb5hug3I4 rM|S!H$r(~VerrE9XZD}_EB!BHU;6gVS6^-^1SLaHS3j3^P6!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-piO{Jh%1oB1nvbsn1Yxh#T&jh14V^Pg8YK- z8_Z8Q-=M%y?+{-wK_EZi{etz&d~22fr8_-c977~7*G}-{V>0Anx!rj^^2V?K^-l$O zg#|9KuZ{`wo+cRIB>p!3$+}nbFKv|k6U+5x65GtDP4iN|-7cLJZ8|Au)7es0&!FYI zc25#qvP=FFW95dfa>g2uM#&={(jtu!7mTgNqWQU0R!v+xK|N7d)pPAv6_#VB9g_uQ luAh0lU8TQP;9q^+Dd8kpKJmM&Vs3$a;_2$=vd$@?2>`<4Wv&1K literal 0 HcmV?d00001 diff --git a/assets/img/best-months-to-travel-TO-icon-black-20px-1-1.png b/assets/img/best-months-to-travel-TO-icon-black-20px-1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e49b3cf7b8ab72685aa632fb9e1d77191d7857cf GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?slj7I;J!Gcf3QgD~S#+i5F-f<*y7A+GKPJ^~Ut0uma0Vp{y-S_0yl0ulxS z5XC(K`OU@(9FlgUcYf&S_Bba4!cIQ(`-Y;lu;fU7u%N<+i8sNAb{^Z)-B|E$P8Zq6s^Yb1t!IdQ@3GZLYeEYt7 zaVdM$uh4AUhG}(I?I+x2+VW-fwO?xz>-SsT`v2itG5a&dz$d-)tfzA&gjFzJeZM{H zb{xZv-yeh+*3DbWqEL8DwE9>0>bY`PujvZaZ!Z_QzC8F+;qj-zTfSZ@GN{{qy2@94 ueQm+&vj^r~4ScsvvoiGb63>Od7?0`*zxz^sb1E<<89ZJ6T-G@yGywp^HUOgl literal 0 HcmV?d00001 diff --git a/assets/img/best-months-to-travel-TO-icon-black-20px.png b/assets/img/best-months-to-travel-TO-icon-black-20px.png new file mode 100644 index 0000000000000000000000000000000000000000..a525f987763d1394f55fdf6dec1d8b6943c02956 GIT binary patch literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAv7|ftIx;Y9?C1WI$O_~$76-XI zF|0c$^AgD6EbxddW?Yw`Ng#b6b!%&EddD)0SN=3ho!6$9A<1_I)m0uq`6V%k7ud=gq9W#U?V;yMDN1_ENb zKyF0TtuUZ1vL!)&!Ta9}B-~d}*w4^lus&eDK|%infr16|=g)t?A>SZiwq95SP~kjJ z7sn8d^Szg@^Bq>;VGZbEZ=Epr-KYQiZ)!MCT^L$5Uq^nU;c|IH_5jmrgE?JaxOWJh5o`!tDBJP%ri7V>-+QAM?>v}%IoBVs*izLJ zvMoz4`OPz@g8{|z#|^I(FI=9bd&-#WSvPyap3f_h9WJ7J$54g izt-tJ>^~pyjCb>U@c`lSw_ZS(GI+ZBxvX \ No newline at end of file diff --git a/assets/img/check-in-check-out-time-icon-black-52px-1.svg b/assets/img/check-in-check-out-time-icon-black-52px-1.svg new file mode 100644 index 00000000..d708d063 --- /dev/null +++ b/assets/img/check-in-check-out-time-icon-black-52px-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/dates-travelled-icon-black-20px.png b/assets/img/dates-travelled-icon-black-20px.png new file mode 100644 index 0000000000000000000000000000000000000000..8c53e3bde59ad47c5da0bb6b28d04f97020bdf15 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-pjm)Vh^v5v2EVwL01!!P0~vhcKvLViz(+tr zM?k?qKwMiuT3bNEfKOaUKwMKm42X1r%6zYM{RNsJSQ6wHtZ;uq!TbLA3=RSX1`7EF z0Rf?tmv#UpV?A9QLnJPrz2M2$V8Fo|5M|x)dH?@Z(=A%LCGX=Wd^p6k;E&KHt#EBN zL(#_tiw)SW^*q@5ph<0YQZ`4CQYptTH-EK#N~Yca8H&5g&cFEb?e5L$OJV;r)#t01 aTQX!X<=L`BXZtFkMGT&!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-U~GU-h^u>nkAQ>@zqpowgf%U?3o&B_OT|5|`E%5YrX_ic4q;Na+dyMHCeH#B~HjwfR75wE4uqy2Nw^#6ap} zt8U5xEs`q<@(X5gIKMwZ;l9HD_W}Y96W$xlKffSgfa|{q%OkgQL~nu@ngSF6P`?+{Y+45Php0wzSWmw zQ=fm=6XiV@kh literal 0 HcmV?d00001 diff --git a/assets/img/duration-TO-black-20px-icon.png b/assets/img/duration-TO-black-20px-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f3898d78a91905349eaac57fdb39c5bcab96701c GIT binary patch literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#B(j9#r85lP9bN@+X1@ak-gWR1M z)}51i3FL4VctjR6Fz9%LFym6&X)A$(69RlfT-^(N1jIE36buB!wFM+J1SE6>Bnnn4v(R zK*2%be!}~P{S)4wKi?lvFCef#V1dE>`3CFn-_H*?zkdGw`TZLvtdEa3Sg_y%AL|4L z24*2o7srr{dv7CePP?tZqsqqqSoiUoc{;|EeJ<_&`u~6IZ3*?l<_Qen=TvsY9o%(k zs=%g%H;Vj~C)y`wob;bL<*a;QYT2VglO^ANT#hV`KUHcorR*w$68nJ_n~rIv3N5MA zlnz;9?=r_!Wn%LFJ(aIAZ^~ANcJJq2wC+dZ{pdMWFXZoU+WcU1{dLzOj-p4uO-oa( zjNc2MyxNiUWLdpe&qLl8VPElIqFFaYA9b#)zgxR`?!(zfSKZ!Qw)K9(zmS#H&hDqq zw)fRX&R%%AT78MPOx$iIg?HD_EfeE$`{8z?{%wBdqW!T(I%m|aqCb9KkUR0%hb9Jb z7RifD3arJ;M#vcipDZ_N2_V=T|GEqD6#70eC{ z0S%SjlU!sQPS2KIp!|~ej=@142L==71d*gOj3Npf)h}5;W8hj4dt&WsPY#D$3|C*Z zDGD+fY%jcG^krr%!-g}5F0!O{FdTSjajvk9gCWYBr7hvmA%+{=71u1}n79sbt(m5s zEvw30upuVRLspR~BzHZh+C?>y1#Fi+9(o?>xm&$ISV)24pcUI6g(WJsj0{H;7+%#g zFG*{dv*dZJK*}`fnt+$J6SxHugn!+SZWe7Xx}afy?SbRsDO^nlmNwn4)>|dxV6FY- zl=?}QJ;u7>t*75_bv=Drz|lkJdRU+N@hbv0w{K0$U}#H~D=po1ZNIciY?Uv(|p6OY58K%X W;-`KYh+PC`ECx?kKbLh*2~7Zg3&4f| literal 0 HcmV?d00001 diff --git a/assets/img/duration-icon-black-20px.png b/assets/img/duration-icon-black-20px.png new file mode 100644 index 0000000000000000000000000000000000000000..d0da9d630506cec6005fc565abfeaf8cda1869a0 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-U|@hxh%3LimVmgXfP{g7w6=f*5NQaAYr7Zt z2uSGgi)#yrf&~=}Kx_#u0R;sC0RsUsO^_}zT>&5|r3(@lHQ*D|;u8mI(Nc7CNdy`$ zRTAVEe7``!V822EgTsD<1cCPr0s;Z=1MUahH>l57S^B5|sA|5ai(`m{BVI%2mJi**h@EC6_cXFdVR-tj6Eaj?arkY-&1uaFJfYJVy1a9b|Nnnw z=Eg1~UxkSI&rJGt_p09Bs~GxqW4~@1;}*6J;R#oZ42lizb5*eOx|#34Q6c7gvdnF* zWqWzKapGak^s_!u^@na3`bEUfyZNIk?bXtMh8MTn$6G}9lv}&4pBnh}W|ZjTQtMg5 zul{9?)=u`gw82>au2fcem_ta(X{RwsD%qik4 zeq0{?KR$r{OO=DM^p&SC&WLQBd{^j3n%;>Liw74O!K>B->Rtz+yMtZpG-b4VAZBn6?eQkkAqz; zc~M}X@8XW8PObpc1s_zpr++gq-N!JoIC{Q|XPEbw*k;eZ8r$WY8g8%8Uq4B>k}2Zy z5(Z|azy>Mp#4D-d%36yU!W|AwQY!STQ}T0R^x_fFpUtsxG1mt7*>7H+3wKp2Q(<0b z^Y!^<&iuW%o~q}xmzDWnco^^E8TeP+FMgAkGFQ+YmDvgX9k#w-9ctDEb<7hpcQ;() zafU;K*(=K?qPDEd<%r}30Xg>htY0r2_-La0e8P^Tr3@in2_;T5yW?g%d+{&$vvuWV zrn_m+MGqx@~?6_?b^RLePr@JV4rY<;jm(f_^ogT{ni57+*6(^ap(6Lr#io9gLP jTNtZPsy$Ese_$VDa$}+74sU;ZP(t@~^>bP0l+XkKNcBvq literal 0 HcmV?d00001 diff --git a/assets/img/from-price-TO-icon-black-20px-1.png b/assets/img/from-price-TO-icon-black-20px-1.png new file mode 100644 index 0000000000000000000000000000000000000000..84b0123dacea0215469c479af13734b02c985b3f GIT binary patch literal 1136 zcmV-$1dscPP)Px#32;bRa{vG=O8@{YO97=lmZ<;$0EAFXR7FQ{Ob{S2 z5Ev{F7%C4JD-akk5Em*B7b*}KC=eJc4i_sA7b_1JDh?Ja5Fj8B6)O%FDi9bc5Ev^E z5HJuHDG(Md5Ed&B7b*`ID-IYc5Em;D7by@MD-abh5Em*C7by@IDh(AY5E?BH7b*}K zDh(Jb5Em*C7b_4LD-ahe5Ev>C7b+&*%?$tm04sD-PE!C7K!EQckl!F+kH7Dq5HNqB zzYtJRpU=;qkB~4huW;XAP_N%#u+N}yp8=^NV*mgHK1oDDR9M69SlfEyAP~-h1TZ#H z6B}zzuZX z(mGXmxye6^JvVu|{IvJ^TE&YUVuEWixr!b)9(Um3fYaw)$bdPhIfB2nZ%VD_E~RBT zC{45KHOEf3(yMeKFV%RMV@_@5Y2g!)>AVkECH96jWa;q;_+rS1m6<)FbP*?DK`}rh z9$SL?@kA5~xKK66_!$vT&mrC#v7q=5(y2J)XK^;hy;huM4vklc#j{IbpK1bS=EVw$ zwTmanQfE8=OT-clupvq%YQ)`{ z`-zmnanAjKLXqDVcY`@!)zHcdC=}UP+;_~ft(hrL9IaDKRE?+-nnevD=v{|W9Axt1 zKEO-Aya;(8;892#LPYPPPEkQWcnYG+DI#oKV}Jls1Blg>GBj*gq&VjHY2uF=3Q z9Yx5pQZ=P_=qg9PL;y3SR#jNmO3Rw%D@l1*Sbl^amE{YVpFks?dKB#pmJLo5^1s z2_`2gyC~OOV*a!DG&xLB<{Gk!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-U~+&@h%3Li7QeW*fVifBf&qvj0c2~t7x)NB z=mf&B>u3=Rqn3i|~N4C*JG7YKOYe?GwA{{8g<3-a&k zh8+j0-Qnrt7$PCbda%9mjsp+NhCr6^U4Ksgyjee$jS1*AiBN8b1D`y~%gq!%7}wss zpS{1tkK>%?(eGz;<;z)4E{L;~Jn3}f*SW>JtC#&!cyeg#|2_NW`L9u2XIuRC{8y%L za*K9-SiiiV_ug)oulzTbtqc#DE@7LzF|Kdl=I=^>;#StJS$|$`jiOAf&F \ No newline at end of file diff --git a/assets/img/image-1.png b/assets/img/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e88da5c950eeb74531e1e74d3089ef060214bd36 GIT binary patch literal 650 zcmV;50(JdTNk&G30ssJ4MM6+kP&iC>0ssInqQEB*N1>pNq^SHjz`sKbz}i62wr!jd z7=N()8AXy5DYu-l9wNfMN2FbM1aJEJ{=I)Vu}dlylVgf9wI0v}oOgeVF{ ziC?&M9bY2H*;Iy{FhoT%BFc~Tax>+fc)r*+@mvQaN|NNXQny%ngVE!82U;Zk|0kXS z#O(C>i-`U^awAERGCfSUS>6ZWe`<}z%OddRhSl?Z=QZbM$qBo<_c@nw;)Z*7sRIof zI$vpM)Y4O)Y1YP1o=ABbQl5&Grwi1lA?4|qLZ4DknMC-UcmnllNqq_m^iF}66lhL? z$h0`ix`;q~AEvfACz;!yBj?lelY79Bm*nW}VR}9i(4Q-(=OV8d=*qoGUQZtA-3@#9 z?`%O}7`o(h7+!57^~}zLuUL$@x*vbiJ&x={Umi(2Zk`)Fk^bHCuH^}cMIZ&>?NxvZ zQ6VZsg{Tk}qC!-N3ek;|z;I@X3Q-{{G*@Uzfp!$Apf{C8BHi`D!b+in0$nqON-DHc zC}s-Xdko9TJy<)4#*P#eInA4^g4OgfIJ~Wp9+vC2jp2J z!Csf??Ich3Wss)=g0erSp~Q?=_S=!e>uNvlbu7HtOnFsM?jqtfHq^(Zm>%=}cAMX~7yQ#+09On$fB*mh literal 0 HcmV?d00001 diff --git a/assets/img/map-TO-black-20px-icon.png b/assets/img/map-TO-black-20px-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c073c18e527e5f80e7fc09eb9a755dccaf3d2ca2 GIT binary patch literal 1129 zcmeAS@N?(olHy`uVBq!ia0vp^i-C9n2Q!ciSJROJQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|I14-?iy0Vnyg`_8sqM6tK*8z&pAc8~0v`bhZ2<`besOIe01mcQo z3W(_fP38kJG{Jf`f#R9-<{tn$L!%_fFPI@g;r;&o_Z1xOHwet1Kfiu~z=VQ+1B3JH z@1I{U5P!b^{e*x8`2iaWT%PFsWnf@-_H=O!skrs_&dZ|N1|qBp6BIZKa+<&2h@54j z`~H7R??&r`X&3iSibyLuxBtwEN5Vo}A6>407GQA%q1;Ovv$o}no_M6~Uu+t%JqQgt0}(}jeE~ua)^ja7d1Bj{hqJ#*z;|C-%n*tEa9J-DxzCn zC>Cj-6Fd2k(XlY6O`qy+7WC{}J7LKh{hYpy_jdoesw1+#P?7n*!_6-*40~3o`D}W( zy#DOo>1Ss%AD$uHI`6{%$!1!&x9PVTF5t|U%6sv8Q*EMg&u*{F{cDojS8efL;qQNa z@o@t?f%`W_e};PL#-Fm}43B*NUc)%q#iZ@lUX3oJ+{qhzTMlq2_Za+hSj?63(L_Ah z?417Edv?pSWB%lS+ctAmpuqmk(wAp|$%wz3JbkZ7fYl!YX~Igpxb-7_(J|qV|Cbyy z30p7gdv(XuCATeBU98@(WWVR7)ZUDrK_>#f??3lgDzj10O(OA6r<<2;gJJKLDhBUG zg|F{;tY@Ea!OG|Pm*PT|#R*rKZv@@De);IxgNrWQIb+M*O)8J2~Sd#R5b2#zQ6ajQufwW<_9U+8ah+OzA{9djJAHWRjy(3 z&38NH81$FVeVSRlxQZbrB~MvJ)A=`3h57Xfn@?rV1`2{cwGI+ZB KxvX!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-pjm)Vh^v5vj)17PfV8%NgqDDWHorIsxfl3= z*;;&JKtT-wacw?v9RURc0R;sCaZP@4t+y`^w*gHMED7=pb}%rQzkmOGhJ^d`6$Ewy07gobIjJVQ?}gT8lNv%pY%eJ+4{QfruFaj zt5RI;_p)iLRHSszGhcr&`qK%kM;-nr=P$ch-6wtSAJ?|8wXa_T-N4}K>gTe~DWM4f D?XhH~ literal 0 HcmV?d00001 diff --git a/assets/img/minimum-child-age-icon-black-52px-1.svg b/assets/img/minimum-child-age-icon-black-52px-1.svg new file mode 100644 index 00000000..8a4a5e12 --- /dev/null +++ b/assets/img/minimum-child-age-icon-black-52px-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/rating-icon-TO-black-20px-1.png b/assets/img/rating-icon-TO-black-20px-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8355e89f1ec951310928538ea2bceb6cf099d57c GIT binary patch literal 899 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?slj7I;J!Gcf3QgD~S#+i5F-f(ZdWA+GKPJ{%kzTwuV-$tfTp03;y*C=LWb zHa8gX@bCcHKoM3}R)~6_FpvQh1d>3Fa4tj(kOYF&GNKcJcFC6n`2{mL%x`!vP;h_0 zLc#=t1c&tv1_9?M)b}q?h+n_qe1HD`**7B@7?>J8T^vIq4!@1KnbfQxu!d<>?y zW$gd|PdA-+r_tm7CjDiJ)@^g|CVqMRSoZyo^(%}++*^_l9ABU#CHFKqK#0@evG)Rx zh7#5zg&&IcxeBoglsR-baf&bMVVH4_=kd!TyFT|cFTIRqtw$EMO#C^^_0`Ohr_T&@ zzh2Y#oO3Qxqq64B@_yeb^H#QSst6vF@V9aSx-V(9Te~lL zBDg%9?N`{f(6&n=FSMFV;*Y!zw>8l`wQAQM%P5Q7s;-@K({0%$rx~*TSXsi$kjMQn zN9o# zdgSyc$=W6t^3@j^P1<=bV}@K|oe}5X6@HCLn@ZV3#dfVtZE>HXs9e(TN^f!AS?MzqFjbC=X z?DhHSFSkzUU3-$JdV18NV^vJz=Uq}b1yRd@J`R2;&awnwNdrYCiNKRZjMb$H{NuszrLh;(WX^iYdh|pm)M%6^ZfbK zww3EnZts{G<7AZJd-A;_zpg^+_1}@_GQS219{p=@bm~%{g5&ebc8g46KYRRvPp0u-j`_>AKXX;OA8Qd)SA^dF%=@|CSAxs_ z6z#in=w77GZc(d0>vY2IojRcF=6+-QdOMGXR!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-U{Qcih^u>n&-b+q-`9iDI)-mx1mdn^_`jav z$2ze1T83|H8NRM(_z4#I1tixqya$pS8NRG%_y!gSYW%tmBo5^M04fHW2^3ia)&f+p z2E+!c0ScD4%s&CNU9}|0FPI@A!D0XV2@3ZG&d+Zs2$=ugpkE;0prC%kg7xdyH!N5X zP!JGsKIp)rSfGC-JY5_^EKZjOAD`A@z!R*{dZEq8`1bE#|LY6+H#Q$`%J2K4vy(+5 z$;|mcrG&RjuuXIRw2qDpn}h2)m#OW);+$S26fd#;(ZMY)F3jl*JvXd=()hKev)Ztt zbd9*lyR3_^%c{aQH{RGZPol!&*ycEooj07LZ?Q%cJS)+B{gmm7&fjttpHo-djugJK zTGpnQb;M7QNqX6K-u0sYI<`*a+@ohRb+=N_BZZ^Da9$s$)bF#Xli}X>KjI6FbQOPfIGp+usXfRA&wOvkdo6zK(BKHZ^%BxEKUmY=CeE5|Y zlfJIaMz \ No newline at end of file diff --git a/assets/img/special-interests-icon-black-52px-1.svg b/assets/img/special-interests-icon-black-52px-1.svg new file mode 100644 index 00000000..2c4d8676 --- /dev/null +++ b/assets/img/special-interests-icon-black-52px-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/spoken-languages-TO-icon-black-20px-1.png b/assets/img/spoken-languages-TO-icon-black-20px-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2460aba7ec7f0898764c9acec29dfa9627627ed7 GIT binary patch literal 717 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?slj7I;J!Gcf3QgD~S#+i5F-g7yJEA+GKPK0qefV3+WtSfFN+k|4ie28Z_o z_va@x>{lo_Kfxei{et@b4F|cr8h~#3?&;zf5^?zLjJriG3Oubpg*z6#%d7mKo+};` zE^ybu_-*g=Rmz9WRaDw@BzI3)ZLaZEhC4(~b7^Pez56R0>lU$TWi5Dq#o;oS%r5!P zzu(u1O86z|D+pPi=>Fs4R(|&9YHGqONV{RJbtXX?{ zv-{52#p)h-xAmy#rK?OaS-0s=AZD2VzZ+`c> z#KbH8Tj#YMH#wA^@WYC8r9c=6g81 znQSlVzBz!|z|BT?G23~sjf^WMcN^&F9%WNdS(>!@Y1M+WX^bApc{@dXR>vJ^emPU9 z!>mfjz>q=c!MEv*yaGQZLK!4?EcbjaH)kcA#MHjXS%0HWespu=+A?V(lkD03k3P+8 z;_{fZkGFuqjjIGGR((vPvB@|{A@SFu*B)grFWJA4{?mHW(_lsWO;GysboFyt=akR{ E06*y%0{{R3 literal 0 HcmV?d00001 diff --git a/assets/img/type-icon-black-20px.png b/assets/img/type-icon-black-20px.png new file mode 100644 index 0000000000000000000000000000000000000000..019894ba2218152b6ffd24f99cae95f079ced888 GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQaEa{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaMM3p^r=85p>QL70(Y)*K0-pk;thh^u>nkAS$AfVeh4h}7g4*A|e_5|Gf~ z6Vny|A_*M;WD5hLM1_d!3+}$&KJCIP?*2KA)sGC zVE_F9f$9UgK-oA?7sn8Z%e@yO`5F{>TrYAR?b@9GzgyH)h1KiPUz>$2URS(>sy)LG zT#kCsx!&_U)4f(NVI$eAH(Ne@i7n_a5&O^CPpzVwcp dUmvynx_h~rd$#QHI#Zxc44$rjF6*2UngFoASrGsL literal 0 HcmV?d00001 diff --git a/templates/archive-review.html b/templates/archive-review.html index 103d7787..1f181449 100644 --- a/templates/archive-review.html +++ b/templates/archive-review.html @@ -55,7 +55,7 @@
-
+
@@ -71,7 +71,7 @@
-
+
diff --git a/templates/archive-tour.html b/templates/archive-tour.html index 0f79712c..6f7b85e9 100644 --- a/templates/archive-tour.html +++ b/templates/archive-tour.html @@ -43,7 +43,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
diff --git a/templates/search-results.html b/templates/search-results.html index cb700b0b..10979b4c 100644 --- a/templates/search-results.html +++ b/templates/search-results.html @@ -2,8 +2,8 @@
- -
+ +
@@ -39,7 +39,7 @@

Search again
-
+
diff --git a/templates/single-accommodation.html b/templates/single-accommodation.html index fda13914..96fde6f8 100644 --- a/templates/single-accommodation.html +++ b/templates/single-accommodation.html @@ -69,7 +69,7 @@

Fast Facts

-
+
@@ -101,7 +101,7 @@

Fast Facts

-
+
@@ -119,7 +119,7 @@

Fast Facts

-
+
@@ -137,7 +137,7 @@

Fast Facts

-
+
@@ -155,7 +155,7 @@

Fast Facts

-
+
@@ -173,7 +173,7 @@

Fast Facts

-
+
@@ -191,7 +191,7 @@

Fast Facts

-
+
@@ -209,7 +209,7 @@

Fast Facts

-
+
@@ -227,7 +227,7 @@

Fast Facts

-
+
@@ -243,7 +243,7 @@

Fast Facts

-
+
@@ -259,7 +259,7 @@

Fast Facts

-
+
@@ -277,7 +277,7 @@

Fast Facts

-
+
@@ -325,7 +325,7 @@

Units

-
+
@@ -354,7 +354,7 @@

Information

-
+
@@ -370,7 +370,7 @@

Information

-
+
@@ -542,7 +542,7 @@

-
+
diff --git a/templates/single-country.html b/templates/single-country.html index e4ce3d44..e29c44e3 100644 --- a/templates/single-country.html +++ b/templates/single-country.html @@ -42,7 +42,7 @@

Fast Facts

-
+
@@ -60,7 +60,7 @@

Fast Facts

-
+
@@ -76,7 +76,7 @@

Fast Facts

-
+
@@ -427,15 +427,15 @@

Gallery

@@ -469,7 +469,7 @@

Related Tours

-
+
@@ -485,7 +485,7 @@

Related Tours

-
+
@@ -534,7 +534,7 @@

-
+
diff --git a/templates/single-destination.html b/templates/single-destination.html index 06b8a14e..f02b2dd9 100644 --- a/templates/single-destination.html +++ b/templates/single-destination.html @@ -42,7 +42,7 @@

Fast Facts

-
+
@@ -60,7 +60,7 @@

Fast Facts

-
+
@@ -76,7 +76,7 @@

Fast Facts

-
+
@@ -200,7 +200,7 @@

-
+
diff --git a/templates/single-region.html b/templates/single-region.html index 70a7e4c0..37f0ab2a 100644 --- a/templates/single-region.html +++ b/templates/single-region.html @@ -42,7 +42,7 @@

Fast Facts

-
+
@@ -60,7 +60,7 @@

Fast Facts

-
+
@@ -76,7 +76,7 @@

Fast Facts

-
+
@@ -200,7 +200,7 @@

-
+
diff --git a/templates/single-tour.html b/templates/single-tour.html index 35da3fa7..7c0b8e03 100644 --- a/templates/single-tour.html +++ b/templates/single-tour.html @@ -68,7 +68,7 @@

Fast Facts

-
+
@@ -90,7 +90,7 @@

Fast Facts

-
+
@@ -108,7 +108,7 @@

Fast Facts

-
+
@@ -126,7 +126,7 @@

Fast Facts

-
+
@@ -152,7 +152,7 @@

Fast Facts

-
+
@@ -170,7 +170,7 @@

Fast Facts

-
+
@@ -188,7 +188,7 @@

Fast Facts

-
+
@@ -206,7 +206,7 @@

Fast Facts

-
+
@@ -222,7 +222,7 @@

Fast Facts

-
+
@@ -251,7 +251,7 @@

Fast Facts

-
+
@@ -404,7 +404,7 @@

-
+
@@ -434,7 +434,7 @@

Related Accommodation

- +
From 476a33b8b147d92b93e8724e5c9408cd4e8f2f2e Mon Sep 17 00:00:00 2001 From: Warwick Date: Fri, 20 Dec 2024 15:43:23 +0200 Subject: [PATCH 77/77] fixing the contributors --- readme.txt | 2 +- tour-operator.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/readme.txt b/readme.txt index ac1232d6..22262a1d 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ === LSX Tour Operator === -Contributors: LightSpeed +Contributors: lightspeedwp, wetudev Donate link: https://lsdev.biz/lsx/donate/ Tags: lsx, tour operator, travel, tourism, itinerary Requires at least: 6.7 diff --git a/tour-operator.php b/tour-operator.php index 7fe0677c..0d9dfa64 100644 --- a/tour-operator.php +++ b/tour-operator.php @@ -3,12 +3,12 @@ * Plugin Name: LSX Tour Operator * Plugin URI: https://touroperator.solutions/ * Description: Showcase tours, destinations, and accommodations with digital itineraries, galleries, and integrated maps. - * Author: LightSpeed + * Author: lightspeedwp + * Author URI: https://lightspeedwp.agency/ * Version: 2.0.0 * Requires at least: 6.7 * Tested up to: 6.7 * Requires PHP: 8.0 - * Author URI: https://lightspeedwp.agency/ * License: GPLv3 or later * License URI: https://www.gnu.org/licenses/gpl-3.0.html * Text Domain: tour-operator