WordPress.org

Plugin Directory

Changeset 1665315


Ignore:
Timestamp:
05/26/17 09:57:40 (6 months ago)
Author:
slimndap
Message:

Release 0.15.24.

Location:
theatre/tags/0.15
Files:
3 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • theatre/tags/0.15/functions/wpt_calendar.php

    r1625856 r1665315  
    354354         
    355355        /** 
    356          * Handle the [wpt_calendar] shortcode. 
    357          * @see WPT_Calendar::check_dependencies()  To check if all dependencies are set. 
    358          * @see WPT_Calendar::html()                To generate the HTML output. 
    359          * @see WPT_Transients::get()               To retrieve a cached version of the output. 
    360          * @see WPT_Transients::set()               To store a cached version of the output. 
    361          * @since 0.8 
    362          */ 
    363          
     356         * Gets the output for the [wpt_calendar] shortcode. 
     357         * 
     358         * @uses    WPT_Calendar::check_dependencies()  To check if all dependencies are set. 
     359         * @uses    WPT_Calendar::html()                To generate the HTML output. 
     360         * @uses    Theater_Transient::get()            To retrieve a cached version of the output. 
     361         * @uses    Theater_Transient::set()            To store a cached version of the output. 
     362         * 
     363         * @since   0.8 
     364         * @since   0.15.24     Now uses the new Theater_Transient object. 
     365         * 
     366         * @return  string 
     367         */ 
    364368        function shortcode() { 
    365369            $html = ''; 
     
    368372                global $wp_theatre; 
    369373     
    370                 if ( ! ( $html = $wp_theatre->transient->get('c', array()) ) ) { 
     374                $transient = new Theater_Transient( 'c' ); 
     375     
     376                if ( ! ( $html = $transient->get() ) ) { 
    371377                    $html = $wp_theatre->calendar->html(); 
    372                     $wp_theatre->transient->set('c', array(), $html); 
     378                    $transient->set( $html ); 
    373379                } 
    374380            } 
  • theatre/tags/0.15/functions/wpt_frontend.php

    r1591061 r1665315  
    188188     *                  Fixes #128. 
    189189     * @since   0.14.4  Support for 'production'. 
     190     * @since   0.15.24 Now uses the new Theater_Transient object. 
     191     * 
     192     * @uses    Theater_Transient::get() to get the transient value of the [wpt_events] shortcode. 
     193     * @uses    Theater_Transient::set() to set the transient value of the [wpt_events] shortcode. 
    190194     * 
    191195     * @param   array   $atts 
     
    324328            array( 'wp_query' => $wp_query->query_vars ) 
    325329        ); 
    326  
    327         if ( ! ( $html = $wp_theatre->transient->get( 'e', $unique_args ) ) ) { 
     330         
     331        $transient = new Theater_Transient( 'e', $unique_args ); 
     332         
     333        if ( ! ( $html = $transient->get() ) ) { 
     334 
    328335            $html = $wp_theatre->events->get_html( $atts ); 
    329             $wp_theatre->transient->set( 'e', $unique_args, $html ); 
    330         } 
     336            $transient->set( $html ); 
     337             
     338        } 
     339         
    331340        return $html; 
    332341    } 
     
    443452        ); 
    444453 
    445         if ( ! ( $html = $wp_theatre->transient->get( 'p', $unique_args ) ) ) { 
     454        $transient = new Theater_Transient( 'p', $unique_args ); 
     455 
     456        if ( ! ( $html = $transient->get() ) ) { 
     457 
    446458            $html = $wp_theatre->productions->get_html( $atts ); 
    447             $wp_theatre->transient->set( 'p', $unique_args, $html ); 
     459            $transient->set( $html ); 
     460             
    448461        } 
    449462 
  • theatre/tags/0.15/functions/wpt_importer.php

    r1615586 r1665315  
    99     * Always make backups! 
    1010     * 
    11      * @since 0.10 
     11     * @since   0.10 
     12     * @since   0.15.24 Events are no longer marked in the database during import. 
    1213     */ 
    1314    class WPT_Importer { 
     15         
     16        /** 
     17         * Marked events tracker. 
     18         *  
     19         * @since   0.15.24 
     20         * @var     array 
     21         * @access  private 
     22         */ 
     23        private $marked_events = array(); 
    1424         
    1525        /** 
     
    271281         */ 
    272282        function create_event($args) { 
    273              
    274283            $defaults = array( 
    275284                'production' => false, 
     
    572581            } 
    573582 
     583            $this->set('marked_events', array_diff( $this->get('marked_events'), array( $event->ID ) ) ); 
     584 
    574585            delete_post_meta($event->ID, $this->get('marker')); 
    575586 
     
    638649         * @since   0.10 
    639650         * @since   0.15.15 Fixed missing timezone support for import start and end times. 
     651         * @since   0.15.24 No longer unmarks events after an unsuccessful import. 
     652         *                  This is no longer neccessary because events are no longer marked in the database. 
     653         *                  Added action hooks right before and after imports. 
    640654         * 
    641655         * @uses    WPT_Importer::mark_upcoming_events() 
     
    655669            $this->stats['errors'] = array(); 
    656670             
     671            /** 
     672             * Fires right before an import starts. 
     673             * 
     674             * @since 0.15.24 
     675             * 
     676             * @param   WPT_Importer    $importer   The importer object. 
     677             */ 
     678            do_action( 'wpt/importer/execute/before', $this ); 
     679            do_action( 'wpt/importer/execute/before/importer='.$this->get( 'slug' ), $this ); 
     680 
    657681            $this->mark_upcoming_events(); 
    658682             
    659683            if ($this->process_feed()) { 
    660684                $this->remove_marked_events();           
    661             } else { 
    662                 $this->unmark_events(); 
    663685            } 
    664686             
     
    666688             
    667689            $this->save_stats(); 
     690 
     691            /** 
     692             * Fires right after an import ends. 
     693             * 
     694             * @since 0.15.24 
     695             * 
     696             * @param   WPT_Importer    $importer   The importer object. 
     697             */ 
     698            do_action( 'wpt/importer/execute/after', $this ); 
     699            do_action( 'wpt/importer/execute/after/importer='.$this->get( 'slug' ), $this ); 
     700 
    668701        } 
    669702         
     
    678711         * 
    679712         * @since   0.14.5 
     713         * @since   0.15.24 No longer unmarks production events after an unsuccessful import. 
     714         *                  This is no longer neccessary because events are no longer marked in the database. 
     715         * 
    680716         * @param   int $production_id  The production ID. 
    681717         */ 
     
    689725            if ($reimport_result) { 
    690726                $this->remove_marked_events();           
    691             } else { 
    692                 $this->unmark_events(); 
    693727            }            
    694         } 
    695  
    696         /** 
    697          * Gets all events that are marked. 
    698          * 
    699          * @since   0.10 
    700          * @since   0.14.3  Bugfix: Added 'posts_per_page' argument to ensure that all marked events are returned. 
    701          *                  Fixes #182. 
    702          * 
    703          * @see WPT_Importer::mark_upcoming_events() 
    704          * @see WPT_Importer::unmark_events() 
    705          * @see WPT_Importer::remove_marked_events() 
    706          *  
    707          * @access private 
    708          * @return void 
    709          */ 
    710         private function get_marked_events() { 
    711             $args = array( 
    712                 'post_type' => WPT_Event::post_type_name, 
    713                 'post_status' => 'any', 
    714                 'posts_per_page' => -1, 
    715                 'meta_query' => array( 
    716                     array( 
    717                         'key' => $this->get('marker'), 
    718                         'value' => 1, 
    719                     ), 
    720                 ), 
    721             ); 
    722             return get_posts($args); 
    723728        } 
    724729 
     
    750755         * Marks all upcoming events of a production. 
    751756         *  
    752          * @see     WPT_Importer::execute_reimport() 
     757         * @since   0.14.5 
     758         * @since   0.15.24 Now uses the new internal marked events tracker. 
     759         * 
     760         * @uses    WPT_Importer::set() to add events to the marked events tracker. 
     761         * 
    753762         * @access  private 
    754          * @since   0.14.5 
    755763         * @param   int     $production_id  The production ID. 
    756764         */ 
     
    781789             
    782790            $events = get_posts($args); 
    783              
    784             foreach($events as $event) { 
    785                 add_post_meta($event->ID, $this->get('marker'), 1, true); 
    786             }            
     791 
     792            $this->set('marked_events', wp_list_pluck( $events, 'ID') ); 
    787793        } 
    788794         
     
    793799         * @since   0.14.3  Bugfix: Added 'posts_per_page' argument to ensure that all events are marked. 
    794800         *                  Fixes #182. 
    795          * 
    796          * @see WPT_Importer::execute() 
     801         * @since   0.15.24 Now uses the new internal marked events tracker. 
     802         * 
     803         * @uses    WPT_Importer::set() to add events to the marked events tracker. 
    797804         *  
    798805         * @access private 
     
    822829            $events = get_posts($args); 
    823830             
    824             foreach($events as $event) { 
    825                 add_post_meta($event->ID, $this->get('marker'), 1, true); 
    826             } 
     831            $this->set('marked_events', wp_list_pluck( $events, 'ID') ); 
    827832             
    828833        } 
     
    873878         * Removes all previously imported events that are still marked. 
    874879         *  
    875          * @see WPT_Importer::execute() 
    876          * @see WPT_Importer::get_marked_events() 
    877          * 
    878          * @access private 
    879          * @return void 
     880         * @since   0.? 
     881         * @since   0.15.24 Now uses the new internal marked events tracker. 
     882         * 
     883         * @access  private 
     884         * @uses    WPT_Importer::get() to get all remaining marked events. 
     885         * @return  void 
    880886         */ 
    881887        private function remove_marked_events() { 
    882             foreach($this->get_marked_events() as $event) { 
    883                 wp_delete_post($event->ID, true); 
     888            foreach($this->get('marked_events') as $event_id) { 
     889                wp_delete_post($event_id, true); 
    884890            } 
    885891        } 
     
    935941        } 
    936942 
    937         /** 
    938          * Cleans up, unmarks all previously imported events that are still marked. 
    939          *  
    940          * @see WPT_Importer::execute() 
    941          * @see WPT_Importer::get_marked_events() 
    942          * 
    943          * @access private 
    944          * @return void 
    945          */ 
    946         private function unmark_events() { 
    947             foreach($this->get_marked_events() as $event) { 
    948                 delete_post_meta($event->ID, $this->get('marker')); 
    949             } 
    950         } 
    951          
    952943        /** 
    953944         * Runs after the settings are updated. 
  • theatre/tags/0.15/readme.txt

    r1625856 r1665315  
    136136    * Events can now be filtered by tags (0.15.5). 
    137137    * Activated events archive pages (0.15.10). 
    138     * You can now set until what time events should fall on the previous days using the `Theater/Helpers/Time/Next_Day_Start_Time_Offset` filter (0.15.11). 
     138    * You can now set until what time events should fall on the previous days using the `theater/helpers/time/next_day_start_time_offset` filter (0.15.11). 
    139139    * You can now create event calendars with custom filters (0.15.16). 
    140140    * Added the 'end_after' filter to production lists. 
     
    142142    * Added the `wpt/importer/get/value` filter to alter the default behaviour of an importer (0.15.20). 
    143143    * The calendar widget now jumps to the active month if you show the widget on you events page (0.15.23). 
    144  
    145          
     144    * The use of transients for event lists and calendar can now be switched off using the `theater/transient/active` filter (0.15.24). Thank you [joost de keijzer](https://dekeijzer.org/)! 
     145 
    146146* Bugfix 
    147147    * The translation setting for the header above events on the productions page was also being used in other places (eg. the admin menu) (0.15.2). Thank you [Bob Morris](https://wordpress.org/support/profile/bob-morris)! 
     
    156156    * Fixed a problem with the event editor in WordPress 4.7 (0.15.15). 
    157157    * Fixed the day-filter in event lists (0.15.16). 
    158     * Fixed an ecoding problem in the upcoming event feeds (0.15.16). 
     158    * Fixed an encoding problem in the upcoming event feeds (0.15.16). 
    159159    * Fixed a sorting issue on archive/search pages with mixed post types (0.15.16). 
    160160    * Fixed a timezone problem when using something like  `starttime|date('Y-m-d H:i:s')` inside a shortcode (0.15.18). 
    161161    * Fixed performance issues with some websites that use full page caching plugins and services (0.15.22). 
    162  
    163  
    164      
     162    * Fixed several performance issues of during imports (0.15.24). 
     163    * Fixed a conflict with WP-CLI. (0.15.24). 
    165164     
    166165* Deprecations 
     
    244243 
    245244== Upgrade Notice == 
     245 
     246= 0.15.24 =  
     247Performance improvements, especially noticeable during imports. 
     248 
    246249= 0.15.23 = 
    247250The calendar widget now jumps to the active month if you show the widget on you events page. 
  • theatre/tags/0.15/theater.php

    r1625856 r1665315  
    66    Description: Turn your Wordpress website into a theater website. 
    77    Author: Jeroen Schmit 
    8     Version: 0.15.23 
     8    Version: 0.15.24 
    99    Author URI: http://slimndap.com/ 
    1010    Text Domain: theatre 
     
    2929if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 
    3030     
    31 $wpt_version = '0.15.23'; 
     31$wpt_version = '0.15.24'; 
    3232 
    3333class WP_Theatre { 
     
    4747        $this->status = new WPT_Status(); 
    4848        $this->feeds = new WPT_Feeds(); 
    49         $this->transient = new WPT_Transient(); 
     49        Theater_Transients::init(); 
     50         
    5051        $this->listing_page = new WPT_Listing_Page(); 
    5152        Theater_Event_Archive::init(); 
     
    142143        require_once(dirname(__FILE__) . '/functions/wpt_status.php'); 
    143144        require_once(dirname(__FILE__) . '/functions/wpt_feeds.php');    
    144         require_once(dirname(__FILE__) . '/functions/wpt_transient.php');    
     145         
     146        require_once(dirname(__FILE__) . '/functions/transient/class-theater-transient.php');    
     147        require_once(dirname(__FILE__) . '/functions/transient/class-theater-transients.php');   
     148             
    145149        require_once(dirname(__FILE__) . '/functions/wpt_listing_page.php');     
    146150        require_once(dirname(__FILE__) . '/functions/wpt_calendar.php');     
     
    271275/** 
    272276 * Init WP_Theatre class 
     277 * 
     278 * @since   0.? 
     279 * @since   0.15.24 Explicitly register $wp_theatre as a global variable. 
     280 *                  See: https://github.com/slimndap/wp-theatre/issues/245  
    273281 */ 
     282global $wp_theatre; 
    274283$wp_theatre = new WP_Theatre(); 
    275284 
Note: See TracChangeset for help on using the changeset viewer.