Make WordPress Core

Ticket #3155: hotfix-20060921-1928.diff

File hotfix-20060921-1928.diff, 32.4 KB (added by quix0r, 19 years ago)
  • var/www/wp-dev/trunk/wp-includes/post-template.php

     
    3232       $post = &get_post($id);
    3333
    3434       $title = $post->post_title;
    35        if ( !empty($post->post_password) )
     35       if ( !empty($post->post_password) ) {
    3636              $title = sprintf(__('Protected: %s'), $title);
    37        else if ( 'private' == $post->post_status )
    38               $title = sprintf(__('Private: %s'), $title);
    39 
     37       } else if (isset($post->post_status)) {
     38              if ( 'private' == $post->post_status ) {
     39                     $title = sprintf(__('Private: %s'), $title);
     40              }
     41       }
    4042       return $title;
    4143}
    4244
  • var/www/wp-dev/trunk/wp-includes/bookmark.php

     
    9797              $recently_updated_test = '';
    9898       }
    9999
     100       $get_updated = '';
    100101       if ($show_updated) {
    101102              $get_updated = ", UNIX_TIMESTAMP(link_updated) AS link_updated_f ";
    102103       }
  • var/www/wp-dev/trunk/wp-includes/query.php

     
    347347                     return;
    348348              }
    349349
    350               if ('404' == $qv['error']) {
    351                      $this->is_404 = true;
    352                      if ( !empty($query) ) {
    353                             do_action_ref_array('parse_query', array(&$this));
     350              if (isset($qv['error'])) {
     351                     if ('404' == $qv['error']) {
     352                            $this->is_404 = true;
     353                            if ( !empty($query) ) {
     354                                   do_action_ref_array('parse_query', array(&$this));
     355                            }
     356                            return;
    354357                     }
    355                      return;
    356358              }
    357359
    358               $qv['m'] =  (int) $qv['m'];
    359               $qv['p'] =  (int) $qv['p'];
     360              if (isset($qv['m'])) {
     361                     $qv['m'] =  (int) $qv['m'];
     362              } else {
     363                     $qv['m'] = 0;
     364              }
     365              if (isset($qv['p'])) {
     366                     $qv['p'] =  (int) $qv['p'];
     367              } else {
     368                     $qv['p'] = 0;
     369              }
    360370
    361371              // Compat.  Map subpost to attachment.
    362               if ( '' != $qv['subpost'] )
    363                      $qv['attachment'] = $qv['subpost'];
    364               if ( '' != $qv['subpost_id'] )
    365                      $qv['attachment_id'] = $qv['subpost_id'];
     372              if (isset($qv['subpost'])) {
     373                     if ( '' != $qv['subpost'] )
     374                            $qv['attachment'] = $qv['subpost'];
     375              }
     376              if (isset($qv['subpost_id'])) {
     377                     if ( '' != $qv['subpost_id'] )
     378                            $qv['attachment_id'] = $qv['subpost_id'];
     379              }
    366380
     381              // Fixes a lot warnings
     382              if (!isset($qv['attachment_id'])) $qv['attachment_id'] = '';
     383              if (!isset($qv['attachment']))    $qv['attachment']    = '';
     384              if (!isset($qv['name']))          $qv['name']          = '';
     385              if (!isset($qv['hour']))          $qv['hour']          = '';
     386              if (!isset($qv['static']))        $qv['static']        = '';
     387              if (!isset($qv['pagename']))      $qv['pagename']      = '';
     388              if (!isset($qv['page_id']))       $qv['page_id']       = '';
     389
    367390              if ( ('' != $qv['attachment']) || (int) $qv['attachment_id'] ) {
    368391                     $this->is_single = true;
    369392                     $this->is_attachment = true;
     
    381404              } elseif (!empty($qv['s'])) {
    382405                     $this->is_search = true;
    383406              } else {
    384               // Look for archive queries.  Dates, categories, authors.
     407                     // Look for archive queries.  Dates, categories, authors.
    385408
     409                     // Fixes a lot warnings
     410                     if (!isset($qv['second']))         $qv['second']         = '';
     411                     if (!isset($qv['minute']))         $qv['minute']         = '';
     412                     if (!isset($qv['day']))            $qv['day']            = '';
     413                     if (!isset($qv['monthnum']))       $qv['monthnum']       = '';
     414                     if (!isset($qv['year']))           $qv['year']           = '';
     415                     if (!isset($qv['w']))              $qv['w']              = '';
     416                     if (!isset($qv['category_name']))  $qv['category_name']  = '';
     417                     if (!isset($qv['author_name']))    $qv['author_name']    = '';
     418                     if (!isset($qv['show_post_type'])) $qv['show_post_type'] = '';
     419
    386420                     if ( (int) $qv['second']) {
    387421                            $this->is_time = true;
    388422                            $this->is_date = true;
     
    465499                     }
    466500              }
    467501
     502              // Fixes some warnings
     503              if (!isset($qv['feed']))           $qv['feed']           = '';
     504              if (!isset($qv['tb']))             $qv['tb']             = '';
     505              if (!isset($qv['paged']))          $qv['paged']          = '';
     506              if (!isset($qv['comments_popup'])) $qv['comments_popup'] = '';
     507              if (!isset($qv['preview']))        $qv['preview']        = '';
     508
    468509              if ('' != $qv['feed']) {
    469510                     $this->is_feed = true;
    470511              }
     
    587628              $add_minutes = intval(60 * (get_option('gmt_offset') - $add_hours));
    588629              $wp_posts_post_date_field = "post_date"; // "DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)";
    589630
     631              // Fixes a lot warnings
     632              if (!isset($q['m']))              $q['m']              = '';
     633              if (!isset($q['w']))              $q['w']              = '';
     634              if (!isset($q['p']))              $q['p']              = '';
     635              if (!isset($q['hour']))           $q['hour']           = '';
     636              if (!isset($q['minute']))         $q['minute']         = '';
     637              if (!isset($q['second']))         $q['second']         = '';
     638              if (!isset($q['year']))           $q['year']           = '';
     639              if (!isset($q['monthnum']))       $q['monthnum']       = '';
     640              if (!isset($q['day']))            $q['day']            = '';
     641              if (!isset($q['subpost']))        $q['subpost']        = '';
     642              if (!isset($q['subpost_id']))     $q['subpost_id']     = '';
     643              if (!isset($q['name']))           $q['name']           = '';
     644              if (!isset($q['pagename']))       $q['pagename']       = '';
     645              if (!isset($q['attachment']))     $q['attachment']     = '';
     646              if (!isset($q['comments_popup'])) $q['comments_popup'] = '';
     647              if (!isset($q['attachment_id']))  $q['attachment_id']  = '';
     648              if (!isset($q['page_id']))        $q['page_id']        = '';
     649              if (!isset($q['category_name']))  $q['category_name']  = '';
     650              if (!isset($q['author_name']))    $q['author_name']    = '';
     651
    590652              // If a month is specified in the querystring, load that month
    591653              if ( (int) $q['m'] ) {
    592654                     $q['m'] = '' . preg_replace('|[^0-9]|', '', $q['m']);
     
    725787                     }
    726788              }
    727789
     790              // Fixes a warning
     791              if (!isset($search)) $search = '';
     792
    728793              // Category stuff
    729794
    730795              if ((empty($q['cat'])) || ($q['cat'] == '0') ||
     
    903968
    904969              // Paging
    905970              if (empty($q['nopaging']) && ! $this->is_single && ! $this->is_page) {
    906                      $page = abs(intval($q['paged']));
    907                      if (empty($page)) {
     971                     // Fixes a warning
     972                     if (!isset($q['paged'])) {
    908973                            $page = 1;
     974                     } else {
     975                            $page = abs(intval($q['paged']));
     976                            if (empty($page)) {
     977                                   $page = 1;
     978                            }
    909979                     }
    910980
    911981                     if (($q['what_to_show'] == 'posts')) {
     982                            // Fixes a notice
     983                            if (!isset($q['offset'])) $q['offset'] = '';
     984
    912985                            $q['offset'] = abs(intval($q['offset']));
    913986                            if ( empty($q['offset']) ) {
    914987                                   $pgstrt = '';
  • var/www/wp-dev/trunk/wp-includes/link-template.php

     
    235235
    236236function edit_comment_link($link = 'Edit This', $before = '', $after = '') {
    237237       global $post, $comment;
    238 
     238       if (!isset($post->post_type)) $post->post_type = '';
     239       if (!isset($post->ID)) $post->ID = 0;
    239240       if( $post->post_type == 'page' ){
    240241              if ( ! current_user_can('edit_page', $post->ID) )
    241242                     return;
  • var/www/wp-dev/trunk/wp-includes/wp-db.php

     
    215215                     $this->query($query);
    216216
    217217              if ( $output == OBJECT ) {
    218                      return $this->last_result[$y] ? $this->last_result[$y] : null;
     218                     if (isset($this->last_result[$y])) {
     219                            return $this->last_result[$y];
     220                     } else {
     221                            return null;
     222                     }
    219223              } elseif ( $output == ARRAY_A ) {
    220224                     return $this->last_result[$y] ? get_object_vars($this->last_result[$y]) : null;
    221225              } elseif ( $output == ARRAY_N ) {
     
    289293              }
    290294       }
    291295
     296       // ==================================================================
     297       // Function to close the database connection (really simple one)
     298       function close() {
     299              if ($this->dbh !== false) {
     300                     if (@mysql_close($this->dbh) === false) {
     301                            // Something has failed
     302                            die("Failed closing connection to database!");
     303                     } else {
     304                            // Remove the link resource
     305                            unset($this->dbh);
     306                     }
     307              }
     308       }
     309
     310       // Simple getter function
     311       function getNumQueries() {
     312              return $this->num_queries;
     313       }
     314
    292315       function timer_start() {
    293316              $mtime = microtime();
    294317              $mtime = explode(' ', $mtime);
     
    363386       }
    364387}
    365388
    366 if ( ! isset($wpdb) )
    367        $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
    368 ?>
    369  No newline at end of file
     389if ( ! isset($wpdb) ) {
     390       if (defined('ENABLE_SQL_CACHE')) {
     391              require_once(ABSPATH . WPINC . "/wp-db_cache.php");
     392              $wpdb = new wpdb_cache(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
     393       } else {
     394              $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
     395       }
     396}
     397?>
  • var/www/wp-dev/trunk/wp-includes/category.php

     
    119119       }
    120120       reset ( $categories );
    121121
    122        return apply_filters('get_categories', $categories, $r);
     122       // Apply all filters
     123       $category = apply_filters('get_categories', $categories, $r);
     124       return $category;
    123125}
    124126
    125127// Retrieves category data given a category ID or category object.
  • var/www/wp-dev/trunk/wp-includes/general-template.php

     
    199199       $prefix = '';
    200200       if ( isset($title) )
    201201              $prefix = " $sep ";
     202       else
     203              $title = '';
    202204
    203205       $title = $prefix . $title;
    204206       $title = apply_filters('wp_title', $title, $sep);
  • var/www/wp-dev/trunk/wp-includes/capabilities.php

     
    354354                     $args = array_merge(array('edit_page', $user_id), $args);
    355355                     return call_user_func_array('map_meta_cap', $args);   
    356356              }
    357               $post_author_data = get_userdata($post->post_author);
     357              if (isset($post->post_author)) {
     358                     $post_author_data = get_userdata($post->post_author);
     359              } else {
     360                     // Does this really fix the notice?
     361                     return $caps;
     362              }
    358363              //echo "current user id : $user_id, post author id: " . $post_author_data->ID . "<br/>";
    359364              // If the user is the author...
    360365              if ($user_id == $post_author_data->ID) {
  • var/www/wp-dev/trunk/wp-includes/wp-db_cache.php

     
     1<?php
     2
     3// SQL query caching system
     4// WARNING: This code has developer status and will (currently) not work!
     5
     6class wpdb_cache extends wpdb {
     7       //***** Local variables *****
     8       // The relative path for all cache files with trailing slash
     9       var $cache_dir = "wp-content/cache/sql/";
     10
     11       // The array for all cache firectories we want to create
     12       var $cache_dirs = array('a' => "arrays", 'o' => "objects", 's' => "single");
     13
     14       // Number of rows while the query
     15       var $query_nums = 0;
     16
     17       // All cached tables
     18       var $hashList = array();
     19
     20       // Tables which needs fetching from cache/database
     21       var $waitingList = array();
     22
     23       // Current extracted tables from query string
     24       var $currTables = array();
     25
     26       // Counter for all cache hits
     27       var $cache_hits = 0;
     28
     29       // Here is the usage of all directories
     30       //   arrays  - For caching simple arrays (indexed and asosiative; incl. multi-dimension arrays)
     31       //   objects - For caching whole objects (e.g. from mysql_fetch_object() )
     32       //   single  - For caching single data (one column or result of COUNT/SUM() )
     33
     34       // Cache initialization part
     35       function wpdb_cache ($dbuser, $dbpassword, $dbname, $dbhost) {
     36              // Make the cache dir absolute
     37              $this->cache_dir = ABSPATH . $this->cache_dir;
     38
     39              // Make all paths absolute
     40              foreach ($this->cache_dirs as $type=>$dir) {
     41                     $this->cache_dirs[$type] = $this->cache_dir . $dir . "/";
     42              }
     43
     44              // Check if the main directory does exist
     45              if (!is_dir($this->cache_dir)) {
     46                     // Try to create it
     47                     @mkdir($this->cache_dir);
     48                     @chmod($this->cache_dir, 0777);
     49
     50                     // Re-check it
     51                     if (!is_dir($this->cache_dir)) {
     52                            // Please create it on your own
     53                            die("Cannot create SQL cache directory (default: wp-content/cache/sql/)! Please create and CHMOD it to 0777.");
     54                     } else {
     55                            // Create more directories...
     56                            foreach ($this->cache_dirs as $dir) {
     57                                   @mkdir($this->cache_dir. $dir);  @chmod($this->cache_dir . $dir , 0777);
     58                            }
     59
     60                            // Create the missing .htaccess file
     61                            $this->create_htaccess();
     62                     }
     63              } elseif (!file_exists($this->cache_dir . ".htaccess")) {
     64                     // Create missing .htaccess file
     65                     $this->create_htaccess();
     66              }
     67
     68              // Initialize the database layer
     69              parent::wpdb($dbuser, $dbpassword, $dbname, $dbhost);
     70              // When you remove the line above the database will no longer be accessible
     71              // and the sky turns pitch dark! ;-)
     72       }
     73
     74       // private: create .htaccess files for securing the directories against direct calls
     75       function create_htaccess() {
     76              $checkDirs = $this->cache_dirs;
     77              $checkDirs[] = $this->cache_dir;
     78              foreach ($checkDirs as $dir) {
     79                     $fp = @fopen($dir . ".htaccess", 'w') or die("SQL-CACHE: Cannot create .htaccess file in $dir.");
     80                     fwrite($fp, "Deny from all\n");
     81                     fclose($fp);
     82              }
     83       }
     84
     85       // Query the database or cache file
     86       // returns number of entries
     87       function query ($qstring) {
     88              global $table_prefix;
     89
     90              // Initialize counter
     91              $this->query_nums = 0;
     92
     93              // Create MD5 checksum of current query + WP_SECRET (we will later use this)
     94              if (defined('WP_SECRET')) {
     95                     // WP_SECRET adds some more security to it. :-)
     96                     $this->currQueryHash = md5(WP_SECRET.":".$qstring);
     97              } else {
     98                     // Bad, when WP_SECRET is not defined!
     99                     $this->currQueryHash = md5($qstring);
     100              }
     101
     102              // Extract all tables from the string. The ?: is for "non-capturing subpatterns"
     103              // Thanx to Hinrich Sager <hinrich [DOT] sager [AT] web [DOT] de> from the PHPUG-Hamburg
     104              // to help me here. :-)
     105              preg_match_all(sprintf('/(?:FROM|JOIN|,)[\s](%s[\d\w]+)/i', $table_prefix), $qstring, $this->currTables);
     106
     107              // Take the 2nd array, so now we have all tables together :-)
     108              $this->currTables = $this->currTables[1];
     109
     110              // Do we have a SELECT command where we can take the cache?
     111              $test = trim(strtoupper($qstring));
     112              if (substr($test, 0, 6) == "SELECT") {
     113                     // A SELECT query was send. Check if every table is cached
     114                     // We need $this->hashList for deleting cache files when UPDATE, INSERT et cetera is queried
     115                     foreach ($this->currTables as $table) {
     116                            if (!isset($this->hashList[$table])) {
     117                                   // The table was not found in the hash list so we add it + the query
     118                                   $this->hashList[$table] = array($this->currQueryHash);
     119                            } elseif (!in_array($this->currQueryHash, $this->hashList[$table])) {
     120                                   // The table was been added to the hash list before but not this query string
     121                                   $this->hashList[$table][] = $this->currQueryHash;
     122                            } else {
     123                                   // Count the cache hit
     124                                   $this->cache_hits++;
     125                            }
     126                     }
     127              } else {
     128                     // Check for existing cahes by analyzing the query string
     129                     //die("OK");
     130                     //$this->query_nums = $this->cache_flush_by_query($qstring);
     131              }
     132
     133              // Dummy:
     134              return parent::query($qstring);
     135       }
     136
     137       // Shuts the caching system down
     138       function close() {
     139              // Shall we output debugging info? (useful for development)
     140              if (defined('DEBUG_SQL_CACHE')) {
     141                     // Output cache debug informations
     142                     $this->cache_debug_output();
     143              }
     144
     145              // Close the database connection
     146              parent::close();
     147       }
     148
     149       // Debug informations for the cache
     150       function cache_debug_output() {
     151              echo "Cache hits: <strong>".$this->cache_hits."</strong><br />
     152Database queries: <strong>".wpdb::getNumQueries()."</strong><br />
     153<br />
     154<pre>".print_r($this->hashList, true)."</pre>";
     155       }
     156}
     157
     158?>
  • var/www/wp-dev/trunk/wp-includes/classes.php

     
    401401       
    402402                            continue;     
    403403                     }
    404        
     404
     405                     // Fixes two notices
     406                     if (!isset($previous_element->$parent_field)) $previous_element->$parent_field = 0;
     407                     if (!isset($previous_element->$id_field))     $previous_element->$id_field     = 0;
     408
    405409                     // Walk the tree.
    406410                     if ( !empty($previous_element) && ($element->$parent_field == $previous_element->$id_field) ) {
    407411                            // Previous element is my parent. Descend a level.
     
    446450       
    447451                     // Start the element.
    448452                     if ( !$to_depth || ($depth <= $to_depth) ) {
     453                            // Fixes a notice
     454                            if (!isset($element->$id_field)) $element->$id_field = 0;
    449455                            if ( $element->$id_field != 0 ) {
    450456                                   $cb_args = array_merge( array($output, $element, $depth - 1), $args);
    451457                                   $output = call_user_func_array(array(&$this, 'start_el'), $cb_args);
  • var/www/wp-dev/trunk/wp-includes/rss.php

     
    376376require_once( dirname(__FILE__) . '/class-snoopy.php');
    377377
    378378function fetch_rss ($url) {
     379       // Check if disabled
     380       if (defined('__DISABLE_RSS')) return false;
     381
    379382       // initialize constants
    380383       init();
    381384
  • var/www/wp-dev/trunk/wp-includes/script-loader.php

     
    9292                     if ( isset($handle[1]) )
    9393                            $this->args[$handle[0]] = $handle[1];
    9494                     $handle = $handle[0];
     95                     if (!isset($return[$handle])) $return[$handle] = true;
    9596                     if ( is_null($return[$handle]) ) // Prime the return array with $handles
    9697                            $return[$handle] = true;
    9798                     if ( $this->scripts[$handle]->deps ) {
  • var/www/wp-dev/trunk/wp-includes/bookmark-template.php

     
    251251       $r = array_merge($defaults, $r);
    252252       extract($r);
    253253
     254       $output = '';
    254255       foreach ( (array) $bookmarks as $bookmark ) {
    255256              if ( !isset($bookmark->recently_updated) )
    256257                     $bookmark->recently_updated = false;
  • var/www/wp-dev/trunk/wp-content/element-cache.php

    Property changes on: /var/www/wp-dev/trunk/wp-content
    ___________________________________________________________________
    Name: svn:ignore
       + cache
    
     
     1<?php
     2// Caches small elements from many core functions
     3class Element_Cache {
     4       // The big cache array for all elements
     5       var $elementCache = array();
     6
     7       // Current loaded element
     8       var $currentElement = false;
     9       var $currentGroup = false;
     10
     11       // The cache directory
     12       var $cache_dir = "wp-content/cache/element/";
     13
     14       // Flush these caches to disc
     15       var $flushThis = array();
     16
     17       // Do some (maybe) initialization work
     18       // public
     19       function Element_Cache($newCacheDir = "") {
     20              // Is a new relative paht name set?
     21              if (!empty($newCacheDir)) $this->cache_dir = $newCacheDir;
     22
     23              // Generate full-qualified path name
     24              $this->cache_dir = sprintf("%s%s", ABSPATH, $this->cache_dir);
     25
     26              // Is our working directory up?
     27              if (!is_dir($this->cache_dir)) {
     28                     // Try to create it
     29                     @mkdir($this->cache_dir);
     30                     @chmod($this->cache_dir, 0777);
     31
     32                     // Re-check it
     33                     if (!is_dir($this->cache_dir)) {
     34                            // FATAL ERROR!
     35                            die("ELEMENT-CACHE: Cannot create my directory ".$this->cache_dir.". Please do so and CHMOD it to 0777.");
     36                     } else {
     37                            // Create .htaccess file
     38                            $fp = @fopen($this->cache_dir . ".htaccess", 'w') or die("Cannot create .htaccess file!");
     39                            fwrite($fp, "Deny from all\n");
     40                            fclose($fp);
     41                     }
     42              }
     43       }
     44
     45       // Check if element is in the array
     46       // private
     47       function isHashInArray ($elgroup, $hash) {
     48              if (isset($this->elementCache[$elgroup][$hash])) {
     49                     // Element is already cached!
     50                     $this->currentElement = $this->elementCache[$elgroup][$hash];
     51                     $this->currentGroup   = $elgroup;
     52                     $this->currentHash    = $hash;
     53                     return true;
     54              }
     55              return false;
     56       }
     57
     58       // Generate a hash useable for all elements
     59       // private
     60       function hash($element) {
     61              // Generate hash
     62              return md5(WP_SECRET.$element);
     63       }
     64
     65       // Check if element is cached or not and gets the requested element
     66       // public
     67       function isElementCached ($elgroup, $element) {
     68              // Generate hash
     69              $this->currentHash = $this->hash($element);
     70
     71              // Do we have it in cache?
     72              $status = $this->isHashInArray($elgroup, $this->currentHash);
     73              if (!$status) {
     74                     // Generate filename
     75                     $name = sprintf("%s%s.cache", $this->cache_dir, $elgroup);
     76                     if (file_exists($name)) {
     77                            // Load the cache file
     78                            $this->elementCache[$elgroup] = unserialize(file_get_contents($name));
     79
     80                            // Check again...
     81                            $status = $this->isHashInArray($elgroup, $this->currentHash);
     82                     }
     83              }
     84
     85              // If file exists or not makes no difference the element must be inside
     86              return $status;
     87       }
     88
     89       // Add an element to the cache (does not write it to disc!)
     90       // public
     91       function addElement($elgroup, $element, $data) {
     92              // Is the element already added?
     93              if (isset($this->elementCache[$elgroup][$this->currentHash])) return;
     94
     95              // Do we need to flush this group to disc?
     96              if (!isset($this->flushThis[$elgroup])) $this->flushThis[$elgroup] = 1;
     97
     98              // Add it to the memory cache
     99              $this->elementCache[$elgroup][$this->currentHash] = $data;
     100       }
     101
     102       // Get the current loaded element
     103       // public
     104       function getCurrentElement() {
     105              // Do we have it?
     106              if (!$this->currentElement) return false; // Not set!
     107
     108              // Okay, look it up in our array...
     109              $element = false;
     110              if (isset($this->elementCache[$this->currentGroup][$this->currentHash])) {
     111                     // Load the element
     112                     $element = $this->elementCache[$this->currentGroup][$this->currentHash];
     113
     114                     // And remove the current element
     115                     $this->currentElement = false;
     116                     $this->currentHash = false;
     117              }
     118
     119              // Return fetched element
     120              return $element;
     121       }
     122
     123       // Flush all changed/new caches to disc
     124       function flushCache() {
     125              foreach ($this->flushThis as $cache=>$dummy) {
     126                     // Serialize the cache
     127                     $output = serialize($this->elementCache[$cache]);
     128                     // Generate file name
     129                     $cacheFile = sprintf("%s%s.cache", $this->cache_dir, $cache);
     130                     // And put it out to the file
     131                     file_put_contents($cacheFile, $output);
     132              }
     133       }
     134}
     135
     136// The initializer function
     137function element_cache_init() {
     138       global $elCache;
     139       $elCache = new Element_Cache();
     140
     141       // Shutdown function
     142       register_shutdown_function('element_cache_shutdown');
     143}
     144
     145// Shutdown function
     146function element_cache_shutdown() {
     147       global $elCache;
     148       // Flush (maybe) added/changed caches
     149       $elCache->flushCache();
     150       // Do something more...
     151}
     152
     153?>
  • var/www/wp-dev/trunk/wp-content/themes/default/functions.php

     
    7373add_action('admin_menu', 'kubrick_add_theme_page');
    7474 
    7575function kubrick_add_theme_page() {
     76       if (!isset($_GET['page'])) $_GET['page'] = "";
    7677       if ( $_GET['page'] == basename(__FILE__) ) {
    7778              if ( 'save' == $_REQUEST['action'] ) {
    7879                     if ( isset($_REQUEST['njform']) ) {
  • var/www/wp-dev/trunk/wp-settings.php

     
    7474timer_start();
    7575
    7676// Change to E_ALL for development/debugging
    77 error_reporting(E_ALL ^ E_NOTICE);
     77error_reporting(E_ALL);
    7878
    7979// For an advanced caching plugin to use, static because you would only want one
    8080if ( defined('WP_CACHE') )
     
    109109// To be removed in 2.2
    110110$tableposts = $tableusers = $tablecategories = $tablepost2cat = $tablecomments = $tablelink2cat = $tablelinks = $tablelinkcategories = $tableoptions = $tablepostmeta = '';
    111111
    112 if ( file_exists(ABSPATH . 'wp-content/object-cache.php') )
     112if ( file_exists(ABSPATH . 'wp-content/object-cache.php') ) {
    113113       require (ABSPATH . 'wp-content/object-cache.php');
    114 else
     114} else {
    115115       require (ABSPATH . WPINC . '/cache.php');
     116       // You have to define ENABLE_ELEMENT_CACHE in your wp-config.php to get the element cacher working:
     117       // define('ENABLE_ELEMENT_CACHE', true);
     118       if ( file_exists(ABSPATH . 'wp-content/element-cache.php') && defined('ENABLE_ELEMENT_CACHE') ) {
     119              require (ABSPATH . 'wp-content/element-cache.php');
     120              element_cache_init();
     121       }
     122}     
    116123
     124// Initialize WordPress' cache
    117125wp_cache_init();
    118126
    119127require (ABSPATH . WPINC . '/functions.php');
     
    239247}
    240248register_shutdown_function('shutdown_action_hook');
    241249
     250function shutdown_database_connection() {
     251       global $wpdb;
     252       $wpdb->close();
     253}
     254
     255// Add a shutdown function for the database connection
     256register_shutdown_function('shutdown_database_connection');
     257
    242258// Everything is loaded and initialized.
    243259do_action('init');
    244260