WordPress.org

Plugin Directory

Changeset 413101 for feedwordpress


Ignore:
Timestamp:
07/21/11 11:06:37 (6 years ago)
Author:
radgeek
Message:

Bugfix: some users were getting automatic page-load updates initiating when they did not want them. Now they won't be.

Location:
feedwordpress/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • feedwordpress/trunk/diagnostics-page.php

    r405329 r413101  
    239239        $fields = apply_filters('feedwordpress_diagnostics', array( 
    240240            'Update Diagnostics' => array( 
     241                'update_schedule:check' => 'whenever a FeedWordPress checks in on the update schedule',  
    241242                'updated_feeds' => 'as each feed is checked for updates', 
    242243                'updated_feeds:errors:persistent' => 'when attempts to update a feed have resulted in errors</label> <label>for at least <input type="number" min="1" max="360" step="1" name="diagnostics_persistent_error_hours" value="'.$hours.'" /> hours', 
  • feedwordpress/trunk/feeds-page.php

    r409685 r413101  
    176176 
    177177    /*static*/ function global_feeds_box ($page, $box = NULL) { 
    178         $automatic_updates = get_option('feedwordpress_automatic_updates'); 
     178        global $feedwordpress; 
     179        $automatic_updates = $feedwordpress->automatic_update_hook(array('setting only' => true)); 
    179180        $update_time_limit = (int) get_option('feedwordpress_update_time_limit'); 
    180181 
     
    930931             
    931932            if (!isset($post['automatic_updates']) or !in_array($post['automatic_updates'], array('init', 'shutdown'))) : 
    932                 $automatic_updates = false; 
     933                $automatic_updates = NULL; 
    933934            else : 
    934935                $automatic_updates = $post['automatic_updates']; 
     
    966967 
    967968        if (isset($post['update_minimum'])) : 
    968             /*DBG*/ var_dump($post['update_minimum']); 
    969969            $this->update_setting('update/minimum', $post['update_minimum']); 
    970970        endif; 
  • feedwordpress/trunk/feedwordpress.php

    r409706 r413101  
    984984            $uri = trim($uri); 
    985985        else : // Update all 
     986            if ($this->update_hooked) : 
     987                $diag = $this->update_hooked; 
     988            else : 
     989                $diag = 'Initiating a MANUAL check-in on the update schedule at '.date('r', time()); 
     990            endif; 
     991            $this->diagnostic('update_schedule:check', $diag); 
     992 
    986993            update_option('feedwordpress_last_update_all', time()); 
    987994        endif; 
     
    10681075     
    10691076    function has_secret () { 
    1070         return (isset($_REQUEST['feedwordpress_key']) and ($_REQUEST['feedwordpress_key']==$this->secret_key())); 
    1071     } 
    1072  
    1073     function automatic_update_hook () { 
     1077        return ($this->by_request('feedwordpress_key', $this->secret_key())); 
     1078    } 
     1079 
     1080    // Utility function so I don't have to repeat myself w/ 1,000,003 isset()'s 
     1081    function by_request ($param, $eq = NULL) { 
     1082        $match = false; 
     1083        if (isset($_REQUEST[$param])) : 
     1084            $match = (is_null($eq) ? $_REQUEST[$param] : ($eq==$_REQUEST[$param])); 
     1085        endif; 
     1086        return $match; 
     1087    } 
     1088     
     1089    var $update_hooked = NULL; 
     1090    function automatic_update_hook ($params = array()) { 
     1091        $params = wp_parse_args($params, array( // Defaults 
     1092            'setting only' => false, 
     1093        )); 
    10741094        $hook = get_option('feedwordpress_automatic_updates', NULL); 
    1075         if ($this->has_secret() and isset($_REQUEST['automatic_update'])) : // For forced behavior in testing. 
     1095        $method = 'FeedWordPress option'; 
     1096 
     1097        // Allow for forced behavior in testing. 
     1098        if ( 
     1099            !$params['setting only'] 
     1100            and $this->has_secret() 
     1101            and $this->by_request('automatic_update') 
     1102        ) : 
    10761103            $hook = $_REQUEST['automatic_update']; 
    1077         endif; 
    1078          
    1079         if (!is_null($hook)) : 
     1104            $method = 'URL parameter'; 
     1105        endif; 
     1106         
     1107        $exact = $hook; // Before munging 
     1108         
     1109        if (!!$hook) : 
    10801110            if ($hook != 'init') : // Constrain values. 
    10811111                $hook = 'shutdown'; 
    10821112            endif; 
    10831113        endif; 
     1114         
     1115        if ($hook) : 
     1116            $this->update_hooked = "Initiating an AUTOMATIC CHECK FOR UPDATES ON PAGE LOAD ".$hook." due to ".$method." = ".trim($this->val($exact)); 
     1117        endif; 
     1118         
    10841119        return $hook;  
    10851120    } 
    10861121    function last_update_all () { 
    10871122        $last = get_option('feedwordpress_last_update_all'); 
    1088         if ($this->has_secret() and isset($_REQUEST['automatic_update']) and ((strlen($_REQUEST['automatic_update']) > 0))) : 
     1123        if ($this->has_secret() and $this->by_request('automatic_update')) : 
    10891124            $last = 1; // A long, long time ago. 
     1125        elseif ($this->has_secret() and $this->by_request('last_update_all')) : 
     1126            $last = $_REQUEST['last_update_all']; 
    10901127        endif; 
    10911128        return $last; 
    10921129    } 
    10931130    function force_update_all () { 
    1094         return ($this->has_secret() and isset($_REQUEST['force_update_feeds']) and !!$_REQUEST['force_update_feeds']); 
     1131        return ($this->has_secret() and $this->by_request('force_update_feeds')); 
    10951132    } 
    10961133     
     
    11971234        // Explicit update request in the HTTP request (e.g. from a cron job) 
    11981235        if ($this->update_requested()) : 
     1236            $this->update_hooked = "Initiating a CRON JOB CHECK-IN ON UPDATE SCHEDULE due to URL parameter = ".trim($this->val($_REQUEST['update_feedwordpress'])); 
     1237 
    11991238            $this->update($this->update_requested_url()); 
    12001239             
     
    12401279 
    12411280    function update_requested () { 
    1242         return ( 
    1243             isset($_REQUEST['update_feedwordpress']) 
    1244             and $_REQUEST['update_feedwordpress'] 
    1245         ); 
     1281        return FeedWordPress::by_request('update_feedwordpress'); 
    12461282    } // FeedWordPress::update_requested() 
    12471283 
     
    17531789                // there are some messages to send. 
    17541790                $body = NULL; 
     1791                if (!isset($dlog['mesg'])) : $dlog['mesg'] = array(); endif; 
     1792                 
    17551793                foreach ($dlog['mesg'] as $sect => $mesgs) : 
    17561794                    if (count($mesgs) > 0) : 
Note: See TracChangeset for help on using the changeset viewer.