Changeset 3261532
- Timestamp:
- 03/25/2025 12:26:27 PM (12 months ago)
- Location:
- activityhub/trunk
- Files:
-
- 19 edited
-
README.txt (modified) (2 diffs)
-
assets/js/widgets_calender.min.js (modified) (2 diffs)
-
fieldday.php (modified) (1 diff)
-
inc/ClassActions.php (modified) (5 diffs)
-
inc/ClassFielddayhubCore.php (modified) (3 diffs)
-
inc/ClassShortcodes.php (modified) (1 diff)
-
inc/Classfieldday.php (modified) (4 diffs)
-
inc/widgets/Elementor/classActivitySessions.php (modified) (6 diffs)
-
inc/widgets/Elementor/classActivitySessionsCopy.php (modified) (3 diffs)
-
inc/widgets/Elementor/classFeaturedActivities.php (modified) (4 diffs)
-
inc/widgets/Elementor/classFeaturedSessions.php (modified) (1 diff)
-
inc/widgets/Elementor/classFieldDayGiftcards.php (modified) (4 diffs)
-
inc/widgets/Elementor/classParties.php (modified) (4 diffs)
-
inc/widgets/Elementor/classfielddayCalender.php (modified) (2 diffs)
-
inc/widgets/Elementor/classfielddayContact.php (modified) (2 diffs)
-
inc/widgets/Elementor/classfielddayMembership.php (modified) (2 diffs)
-
inc/widgets/Elementor/classfielddayReviews.php (modified) (6 diffs)
-
inc/widgets/classWidgets.php (modified) (1 diff)
-
lib/FielddayApi/FielddayApi.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
activityhub/trunk/README.txt
r3259599 r3261532 4 4 Requires at least: 5.0 5 5 Tested up to: 6.7.2 6 Stable tag: 3.4. 16 Stable tag: 3.4.2 7 7 Requires PHP: 7.2 or Greater 8 8 License: GPLv2 or later … … 151 151 == Changelog == 152 152 153 = 3.4.2 = 154 * Fix Deprecated Scheme Parameter for typography controls for Elementor Widgets 155 * Resolved PHP 8.x deprecation warnings 156 153 157 = 3.4.1 = 154 158 * UI Changes for Filter and Sessions -
activityhub/trunk/assets/js/widgets_calender.min.js
r2695200 r3261532 74 74 var eventweekcount= eventweek.getDay(); 75 75 76 if (dateevent <= doc[i].end && dateevent >= doc[i].start 77 && jQuery.inArray(eventweekcount, doc[i].days) !== -1) { 76 if (dateevent <= doc[i].end && dateevent >= doc[i].start && jQuery.inArray(eventweekcount, doc[i].days) !== -1) { 78 77 jQuery(this).find('.fc-day-number').after('<div class="eventtitle km_session_single_item" data-time-stamp-from=\"' + doc[i].starttimestamp + '\" data-time-stamp-to=\"' + doc[i].endtimestamp + '\" ><a class="km_eventclick km_primary_color" href="javascript:void(0);" data_eventid=\"' + doc[i].id + '\" ><span style="display: block;font-weight: bold;">' + doc[i].title + '</span></a><span class="km_event_time"></span></div>'); 79 78 … … 140 139 }, 141 140 giftCardSlider:function(){ 142 $('.km_gift_image_slider').slick({143 dots: false,144 infinite: true,145 arrows:true,146 speed: 300,147 slidesToShow: 1,148 adaptiveHeight: false149 })141 $('.km_gift_image_slider').slick({ 142 dots: false, 143 infinite: true, 144 arrows: true, 145 speed: 300, 146 slidesToShow: 1, 147 adaptiveHeight: false 148 }); 150 149 }, 151 150 -
activityhub/trunk/fieldday.php
r3259599 r3261532 5 5 * Plugin URI: https://activityhub.com 6 6 * Description: A wordpress plugin for Field Day API 7 * Version: 3.4. 17 * Version: 3.4.2 8 8 * Author: Field Day 9 9 * Author URI: https://profiles.wordpress.org/fieldday/ -
activityhub/trunk/inc/ClassActions.php
r3259599 r3261532 1159 1159 $GcartId = fieldday()->engine->getCookieStorage('GcartId', false); 1160 1160 $GparentId = fieldday()->engine->getCookieStorage('GparentId', false); 1161 $singlecartitem = fieldday()->api->UpdateSingleCartItemApi($cartItemKey, $ GcartId, $GparentId, $apidata);1161 $singlecartitem = fieldday()->api->UpdateSingleCartItemApi($cartItemKey, $apidata, $GcartId, $GparentId); 1162 1162 //print_r($singlecartitem); 1163 1163 if ($singlecartitem->statusCode === 200) { … … 2191 2191 $queryParams['parentId'] = $GparentId; 2192 2192 $status = 'applycoupon'; 2193 $applycoupon = fieldday()->api->ApplyCouponAPI($ couponapidata, $queryParams, $status);2193 $applycoupon = fieldday()->api->ApplyCouponAPI($queryParams, $status, $couponapidata); 2194 2194 if ($applycoupon->statusCode != 200) { 2195 2195 wp_send_json(['status' => 'fail', 'message' => $applycoupon->message]); … … 2208 2208 $queryParams['parentId'] = $GparentId; 2209 2209 $status = 'removecoupon'; 2210 $removecoupon = fieldday()->api->ApplyCouponAPI( '',$queryParams, $status);2210 $removecoupon = fieldday()->api->ApplyCouponAPI($queryParams, $status); 2211 2211 wp_send_json(['status' => 'success', 'message' => '']); 2212 2212 } … … 3275 3275 global $post; 3276 3276 global $KmUser; 3277 $redirectpage = fieldday()->engine->LoginRedirect();3277 /*$redirectpage = fieldday()->engine->LoginRedirect(); 3278 3278 if (is_user_logged_in() && has_shortcode($post->post_content, 'fieldday_login') && current_user_can(fieldday_ROLE) && $redirectpage && $KmUser) { 3279 3279 3280 3280 wp_redirect($redirectpage); 3281 3281 die; 3282 }*/ 3283 if ($post && property_exists($post, 'post_content')) { 3284 $redirectpage = fieldday()->engine->LoginRedirect(); 3285 if (is_user_logged_in() && has_shortcode($post->post_content, 'fieldday_login') && current_user_can(fieldday_ROLE) && $redirectpage && $KmUser) { 3286 wp_redirect($redirectpage); 3287 exit; // It's recommended to use exit() instead of die() for clarity 3288 } 3282 3289 } 3283 3290 } … … 3422 3429 $start = $_POST['start']; 3423 3430 $end = $_POST['end']; 3424 $mobiledata = $_POST['mobiledata'];3431 $mobiledata = isset($_POST['mobiledata']) ? $_POST['mobiledata'] : null; 3425 3432 3426 3433 if ($mobiledata) { -
activityhub/trunk/inc/ClassFielddayhubCore.php
r3176609 r3261532 2866 2866 { 2867 2867 global $fielddaySetting; 2868 2868 $html =''; 2869 2869 $bookingTypesAvailable = $this->_sessionBookingTypes(); 2870 $fullWeekPrice = null; 2870 2871 /*if($is_single==true){ 2871 2872 $fullWeekPrice = $this->getValue('price', $session->fullCampDetails, false); 2872 2873 }else{*/ 2873 if ( $session->oneDayType != 'fullDay') {2874 if (isset($session->oneDayType) && $session->oneDayType != 'fullDay') { 2874 2875 $fullWeekPrice = $this->getValue('price', $session, false); 2875 2876 } … … 2886 2887 $duration = $bookingType['duration']; 2887 2888 $Pricekey = $bookingType['apikey']; 2888 if ( $is_single == true) {2889 if (isset($is_single) && $is_single == true) { 2889 2890 $singlesessionkey = $bookingType['singlesessionkey']; 2890 2891 $PriceValue = $this->getValue('price', $session->$singlesessionkey, false); … … 2897 2898 $html .= '</span>'; 2898 2899 } else { 2899 if ( $session->oneDayType != 'fullDay') {2900 if (isset($session->oneDayType) && $session->oneDayType != 'fullDay') { 2900 2901 $html = '<span class="km_session_prices km_noavail_seat">No Available Seats</span>'; 2901 2902 } -
activityhub/trunk/inc/ClassShortcodes.php
r3176609 r3261532 337 337 $authKey = $fielddaySetting['fieldday_api_auth_key']; 338 338 $orderId = $_REQUEST['orderid']; 339 $orderData = fieldday()->api->GetOrderDetailsByOrderId( [],$orderId);339 $orderData = fieldday()->api->GetOrderDetailsByOrderId($orderId); 340 340 return fieldday()->engine->getView('checkout/thankyou', ['data' => $orderData]); 341 341 } -
activityhub/trunk/inc/Classfieldday.php
r3259599 r3261532 15 15 * @var string 16 16 */ 17 public $version = '3.4. 1';17 public $version = '3.4.2'; 18 18 19 19 /** … … 441 441 global $post; 442 442 global $fielddaySetting; 443 $post_id = isset($post) ? $post->ID : 0; 444 443 445 $activetheme = $this->engine->getvalue('fieldday_theme_mode', $fielddaySetting, false); 444 446 … … 508 510 wp_localize_script('fieldday_script', 'fieldday_ajax', array( 509 511 'ajax_url' => admin_url('admin-ajax.php'), 510 "permalink" => get_permalink($post ->ID),511 '_wpnonce' => wp_create_nonce('km_nonce_' . $post ->ID),512 "permalink" => get_permalink($post_id), 513 '_wpnonce' => wp_create_nonce('km_nonce_' . $post_id), 512 514 'isKmUser' => $this->engine->isKmLogin(), 513 515 'fieldday_stripe_token' => $this->engine->getStripeToken(), … … 522 524 'confirm_pop_text' => $this->engine->displayText('confirm_pop_text', false), 523 525 'global_popup_key' => $fielddaySetting['global_popup_key'], 524 'isEnabledLocationPopUpPurchasePage' => $fielddaySetting['fieldday_sticky_location_widget'] ,526 'isEnabledLocationPopUpPurchasePage' => $fielddaySetting['fieldday_sticky_location_widget'] ?? '', 525 527 'fieldday_provider_country_code' => $fielddaySetting['fieldday_provider_country_code'] ?? 'US', 526 528 'fieldday_provider_dial_code' => $fielddaySetting['fieldday_provider_dial_code'] ?? '1', -
activityhub/trunk/inc/widgets/Elementor/classActivitySessions.php
r3176609 r3261532 429 429 [ 430 430 'name' => 'title_typography', 431 'label' => __('Typography', ' plugin-domain'),432 'scheme' => Typography::TYPOGRAPHY_1,431 'label' => __('Typography', 'fieldday'), 432 //'scheme' => Typography::TYPOGRAPHY_1, 433 433 'selector' => '{{WRAPPER}} .km_featured_activity_title', 434 434 ] … … 490 490 [ 491 491 'name' => 'heading_typography', 492 'label' => __('Heading Typography', ' plugin-domain'),493 'scheme' => Typography::TYPOGRAPHY_1,492 'label' => __('Heading Typography', 'fieldday'), 493 //'scheme' => Typography::TYPOGRAPHY_1, 494 494 'selector' => '{{WRAPPER}} .km_act_heading', 495 495 ] … … 541 541 [ 542 542 'name' => 'text_typography', 543 'label' => __('Text Typography', ' plugin-domain'),544 'scheme' => Typography::TYPOGRAPHY_1,543 'label' => __('Text Typography', 'fieldday'), 544 //'scheme' => Typography::TYPOGRAPHY_1, 545 545 'selector' => '{{WRAPPER}} .km_activity_text', 546 546 ] … … 654 654 'type' => Controls_Manager::SELECT2, 655 655 'multiple' => true, 656 'options' => $this->SessionsList( $control),656 'options' => $this->SessionsList(), 657 657 'default' => [], 658 658 'dynamic' => [ … … 671 671 * @return array list of all sessions 672 672 */ 673 private function SessionsList( $control)673 private function SessionsList() 674 674 { 675 675 $tagsOptions = ['all' => 'all']; $filters =[]; $activity_id=[]; 676 676 $control = (array) $this; 677 677 foreach($control as $cont){ 678 if(is_array($cont)){ 678 //if(is_array($cont)){ 679 if (is_array($cont) && isset($cont['settings']['activity_ids'])) { 679 680 $activity_id[] = $cont['settings']['activity_ids']; 680 681 } … … 682 683 } 683 684 $trimmed_array = array_map('trim', array_filter($activity_id)); 684 685 $filter_value = ""; 685 686 foreach($trimmed_array as $trimmed_arr){ 686 687 if($trimmed_arr!=''){ -
activityhub/trunk/inc/widgets/Elementor/classActivitySessionsCopy.php
r3176609 r3261532 444 444 [ 445 445 'name' => 'title_typography', 446 'label' => __('Typography', ' plugin-domain'),447 'scheme' => Typography::TYPOGRAPHY_1,446 'label' => __('Typography', 'fieldday'), 447 //'scheme' => Typography::TYPOGRAPHY_1, 448 448 'selector' => '{{WRAPPER}} .km_featured_activity_title', 449 449 ] … … 505 505 [ 506 506 'name' => 'heading_typography', 507 'label' => __('Heading Typography', ' plugin-domain'),508 'scheme' => Typography::TYPOGRAPHY_1,507 'label' => __('Heading Typography', 'fieldday'), 508 //'scheme' => Typography::TYPOGRAPHY_1, 509 509 'selector' => '{{WRAPPER}} .km_act_heading', 510 510 ] … … 556 556 [ 557 557 'name' => 'text_typography', 558 'label' => __('Text Typography', ' plugin-domain'),559 'scheme' => Typography::TYPOGRAPHY_1,558 'label' => __('Text Typography', 'fieldday'), 559 //'scheme' => Typography::TYPOGRAPHY_1, 560 560 'selector' => '{{WRAPPER}} .km_activity_text', 561 561 ] -
activityhub/trunk/inc/widgets/Elementor/classFeaturedActivities.php
r3000133 r3261532 708 708 'name' => 'title_typography', 709 709 'label' => __('Typography', 'plugin-domain'), 710 'scheme' => Typography::TYPOGRAPHY_1,710 //'scheme' => Typography::TYPOGRAPHY_1, 711 711 'selector' => '{{WRAPPER}} .km_featured_activity_title', 712 712 ] … … 769 769 'name' => 'heading_typography', 770 770 'label' => __('Heading Typography', 'plugin-domain'), 771 'scheme' => Typography::TYPOGRAPHY_1,771 //'scheme' => Typography::TYPOGRAPHY_1, 772 772 'selector' => '{{WRAPPER}} .km_act_heading', 773 773 ] … … 819 819 'name' => 'text_typography', 820 820 'label' => __('Text Typography', 'plugin-domain'), 821 'scheme' => Typography::TYPOGRAPHY_1,821 //'scheme' => Typography::TYPOGRAPHY_1, 822 822 'selector' => '{{WRAPPER}} .km_activity_text', 823 823 ] … … 899 899 'name' => 'btn_text_typography', 900 900 'label' => __('Typography', 'plugin-domain'), 901 'scheme' => Typography::TYPOGRAPHY_1,901 //'scheme' => Typography::TYPOGRAPHY_1, 902 902 'selector' => '{{WRAPPER}} .km_activity_pu_btn .km_purchase_btn', 903 903 ] -
activityhub/trunk/inc/widgets/Elementor/classFeaturedSessions.php
r3079857 r3261532 699 699 private function SessionSpots($session) 700 700 { 701 $spots =''; 701 702 $availspot = fieldday()->engine->getValue('availableSpots', $session, false); 702 703 $alert_class = ''; -
activityhub/trunk/inc/widgets/Elementor/classFieldDayGiftcards.php
r2645786 r3261532 192 192 [ 193 193 'name' => 'title_typography', 194 'label' => __('Typography', ' plugin-domain'),195 'scheme' => Typography::TYPOGRAPHY_1,194 'label' => __('Typography', 'fieldday'), 195 //'scheme' => Typography::TYPOGRAPHY_1, 196 196 'selector' => '{{WRAPPER}} .km_giftcard_title', 197 197 ] … … 246 246 [ 247 247 'name' => 'btn_text_typography', 248 'label' => __('Typography', ' plugin-domain'),249 'scheme' => Typography::TYPOGRAPHY_1,248 'label' => __('Typography', 'fieldday'), 249 //'scheme' => Typography::TYPOGRAPHY_1, 250 250 'selector' => '{{WRAPPER}} a.km_btn.km_purchase_btn', 251 251 ] … … 555 555 [ 556 556 'name' => 'heading_typography', 557 'label' => __('Heading Typography', ' plugin-domain'),558 'scheme' => Typography::TYPOGRAPHY_1,557 'label' => __('Heading Typography', 'fieldday'), 558 //'scheme' => Typography::TYPOGRAPHY_1, 559 559 'selector' => '{{WRAPPER}} .km_act_heading', 560 560 ] … … 605 605 [ 606 606 'name' => 'text_typography', 607 'label' => __('Text Typography', ' plugin-domain'),608 'scheme' => Typography::TYPOGRAPHY_1,607 'label' => __('Text Typography', 'fieldday'), 608 //'scheme' => Typography::TYPOGRAPHY_1, 609 609 'selector' => '{{WRAPPER}} .km_activity_text', 610 610 ] -
activityhub/trunk/inc/widgets/Elementor/classParties.php
r2772112 r3261532 450 450 [ 451 451 'name' => 'title_typography', 452 'label' => __('Typography', ' plugin-domain'),453 'scheme' => Typography::TYPOGRAPHY_1,452 'label' => __('Typography', 'fieldday'), 453 //'scheme' => Typography::TYPOGRAPHY_1, 454 454 'selector' => '{{WRAPPER}} .km_featured_activity_title', 455 455 ] … … 511 511 [ 512 512 'name' => 'heading_typography', 513 'label' => __('Heading Typography', ' plugin-domain'),514 'scheme' => Typography::TYPOGRAPHY_1,513 'label' => __('Heading Typography', 'fieldday'), 514 //'scheme' => Typography::TYPOGRAPHY_1, 515 515 'selector' => '{{WRAPPER}} .km_act_heading', 516 516 ] … … 561 561 [ 562 562 'name' => 'text_typography', 563 'label' => __('Text Typography', ' plugin-domain'),564 'scheme' => Typography::TYPOGRAPHY_1,563 'label' => __('Text Typography', 'fieldday'), 564 //'scheme' => Typography::TYPOGRAPHY_1, 565 565 'selector' => '{{WRAPPER}} .km_activity_text', 566 566 ] … … 640 640 [ 641 641 'name' => 'btn_text_typography', 642 'label' => __('Typography', ' plugin-domain'),643 'scheme' => Typography::TYPOGRAPHY_1,642 'label' => __('Typography', 'fieldday'), 643 //'scheme' => Typography::TYPOGRAPHY_1, 644 644 'selector' => '{{WRAPPER}} .km_activity_pu_btn .km_purchase_btn', 645 645 ] -
activityhub/trunk/inc/widgets/Elementor/classfielddayCalender.php
r2890270 r3261532 81 81 'name' => 'event_time_design', 82 82 'label' => __('Event Time Typography', 'fieldday'), 83 'scheme' => Typography::TYPOGRAPHY_1,83 //'scheme' => Typography::TYPOGRAPHY_1, 84 84 'selector' => '{{WRAPPER}} span.km_event_time', 85 85 ] … … 101 101 'name' => 'event_design', 102 102 'label' => __('Event Typography', 'fieldday'), 103 'scheme' => Typography::TYPOGRAPHY_1,103 //'scheme' => Typography::TYPOGRAPHY_1, 104 104 'selector' => '{{WRAPPER}} a.km_eventclick span', 105 105 ] -
activityhub/trunk/inc/widgets/Elementor/classfielddayContact.php
r2811866 r3261532 97 97 'name' => 'heading_design', 98 98 'label' => __('HeadingTypography', 'fieldday'), 99 'scheme' => Typography::TYPOGRAPHY_1,99 //'scheme' => Typography::TYPOGRAPHY_1, 100 100 'selector' => '{{WRAPPER}} .email_login_wrap .km_contact_heading', 101 101 ] … … 139 139 'name' => 'subheading_design', 140 140 'label' => __('Sub Heading Typography', 'fieldday'), 141 'scheme' => Typography::TYPOGRAPHY_1,141 //'scheme' => Typography::TYPOGRAPHY_1, 142 142 'selector' => '{{WRAPPER}} .email_login_wrap .km_contact_subheading', 143 143 ] -
activityhub/trunk/inc/widgets/Elementor/classfielddayMembership.php
r2762415 r3261532 109 109 'name' => 'event_list_title_design', 110 110 'label' => __('Membership Lists Title Typography', 'fieldday'), 111 'scheme' => Typography::TYPOGRAPHY_1,111 //'scheme' => Typography::TYPOGRAPHY_1, 112 112 'selector' => '{{WRAPPER}} .km_featured_membershipsession_tilte', 113 113 ] … … 129 129 'name' => 'event_list_content_design', 130 130 'label' => __('List Content Typography', 'fieldday'), 131 'scheme' => Typography::TYPOGRAPHY_1,131 //'scheme' => Typography::TYPOGRAPHY_1, 132 132 'selector' => '{{WRAPPER}} .membership_section span', 133 133 ] -
activityhub/trunk/inc/widgets/Elementor/classfielddayReviews.php
r3000133 r3261532 9 9 class ElementorfielddayReviews extends Widget_Base 10 10 { 11 private $settings; 12 private $properties = []; 11 13 12 14 public function get_name() … … 108 110 ); 109 111 110 $this->add_group_control(112 /*$this->add_group_control( 111 113 \Elementor\Group_Control_Typography::get_type(), 112 114 [ … … 116 118 'selector' => '{{WRAPPER}} .km_review_description', 117 119 ] 118 ); 120 );*/ 121 122 $this->add_group_control( 123 \Elementor\Group_Control_Typography::get_type(), 124 [ 125 'name' => 'testimonial_desc_design', 126 'label' => __('Testimonial Typography', 'fieldday'), 127 'global' => [ 128 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Typography::TYPOGRAPHY_PRIMARY, 129 ], 130 'selector' => '{{WRAPPER}} .km_review_description', 131 ] 132 ); 133 119 134 120 135 $this->add_control( … … 128 143 ] 129 144 ); 130 $this->add_group_control(145 /*$this->add_group_control( 131 146 \Elementor\Group_Control_Typography::get_type(), 132 147 [ … … 136 151 'selector' => '{{WRAPPER}} .km_review_username', 137 152 ] 138 ); 153 );*/ 154 155 $this->add_group_control( 156 \Elementor\Group_Control_Typography::get_type(), 157 [ 158 'name' => 'testimonial_username_design', 159 'label' => __('Username Typography', 'fieldday'), 160 'global' => [ 161 'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Typography::TYPOGRAPHY_PRIMARY, 162 ], 163 'selector' => '{{WRAPPER}} .km_review_username', 164 ] 165 ); 166 139 167 $this->end_controls_section(); 140 168 } … … 284 312 */ 285 313 private function displayDetailedSummary($reviews, $totalRate) 286 { $html ;314 { $html =''; 287 315 $k = array_keys($reviews); 288 316 $v = array_values($reviews); -
activityhub/trunk/inc/widgets/classWidgets.php
r2982598 r3261532 108 108 wp_enqueue_script('fieldday-addon-main-script'); 109 109 110 wp_register_script('fieldday-addon-calender-new-script', fieldday_URL . '/assets/js/widgets_calender ' . $this->suffix . '.js', ['jquery'], fieldday_VERSION);110 wp_register_script('fieldday-addon-calender-new-script', fieldday_URL . '/assets/js/widgets_calender.min.js', ['jquery'], fieldday_VERSION); 111 111 wp_enqueue_script('fieldday-addon-calender-new-script'); 112 112 } -
activityhub/trunk/lib/FielddayApi/FielddayApi.php
r3176609 r3261532 223 223 * @return mixed 224 224 */ 225 public function GetOrderDetailsByOrderId($ queryOptions = [],$orderId)225 public function GetOrderDetailsByOrderId($orderId,$queryOptions = []) 226 226 { 227 227 $this->setVersion(); … … 889 889 * Update Single cart item to API 890 890 */ 891 public function UpdateSingleCartItemApi($itemId, $ cartId = null, $parentId = null, $postData)891 public function UpdateSingleCartItemApi($itemId, $postData, $cartId = null, $parentId = null) 892 892 { 893 893 global $fielddaySetting;global $KmUser; … … 963 963 } 964 964 965 public function ApplyCouponAPI($ postData = null, $queryParams, $status)965 public function ApplyCouponAPI($queryParams, $status, $postData = null) 966 966 { 967 967 global $fielddaySetting;global $KmUser;
Note: See TracChangeset
for help on using the changeset viewer.