[ Index ]
 

Code source de b2evolution 2.1.0-beta

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/blogs/plugins/ -> _archives.plugin.php (source)

   1  <?php
   2  /**

   3   * This file implements the Archives plugin.

   4   *

   5   * Displays a list of post archives.

   6   *

   7   * This file is part of the b2evolution project - {@link http://b2evolution.net/}

   8   *

   9   * @copyright (c)2003-2007 by Francois PLANQUE - {@link http://fplanque.net/}

  10   * Parts of this file are copyright (c)2004-2006 by Daniel HAHLER - {@link http://thequod.de/contact}.

  11   *

  12   * {@internal License choice

  13   * - If you have received this file as part of a package, please find the license.txt file in

  14   *   the same folder or the closest folder above for complete license terms.

  15   * - If you have received this file individually (e-g: from http://evocms.cvs.sourceforge.net/)

  16   *   then you must choose one of the following licenses before using the file:

  17   *   - GNU General Public License 2 (GPL) - http://www.opensource.org/licenses/gpl-license.php

  18   *   - Mozilla Public License 1.1 (MPL) - http://www.opensource.org/licenses/mozilla1.1.php

  19   * }}

  20   *

  21   * {@internal Open Source relicensing agreement:

  22   * Daniel HAHLER grants Francois PLANQUE the right to license

  23   * Daniel HAHLER's contributions to this file and the b2evolution project

  24   * under any OSI approved OSS license (http://www.opensource.org/licenses/).

  25   * }}

  26   *

  27   * @package plugins

  28   *

  29   * {@internal Below is a list of authors who have contributed to design/coding of this file: }}

  30   * @author blueyed: Daniel HAHLER.

  31   * @author fplanque: Francois PLANQUE - {@link http://fplanque.net/}

  32   * @author cafelog (group)

  33   *

  34   * @version $Id: _archives.plugin.php,v 1.43 2007/06/25 11:02:31 fplanque Exp $

  35   */
  36  if( !defined('EVO_MAIN_INIT') ) die( 'Please, do not access this page directly.' );
  37  
  38  
  39  load_funcs('_core/ui/results/_results.class.php');
  40  
  41  
  42  
  43  /**

  44   * Archives Plugin

  45   *

  46   * This plugin displays

  47   */
  48  class archives_plugin extends Plugin
  49  {
  50      /**

  51       * Variables below MUST be overriden by plugin implementations,

  52       * either in the subclass declaration or in the subclass constructor.

  53       */
  54  
  55      var $name = 'Archives Widget';
  56      var $code = 'evo_Arch';
  57      var $priority = 50;
  58      var $version = '1.9-dev';
  59      var $author = 'The b2evo Group';
  60      var $group = 'widget';
  61  
  62  
  63      /**

  64       * Init

  65       */
  66  	function PluginInit( & $params )
  67      {
  68          $this->short_desc = T_('This skin tag displays a list of post archives.');
  69          $this->long_desc = T_('Archives can be grouped monthly, daily, weekly or post by post.');
  70  
  71          $this->dbtable = 'T_items__item';
  72          $this->dbprefix = 'post_';
  73          $this->dbIDname = 'post_ID';
  74      }
  75  
  76  
  77      /**

  78       * Event handler: SkinTag

  79       *

  80       * @param array Associative array of parameters. Valid keys are:

  81       *                - 'block_start' : (Default: '<div class="bSideItem">')

  82       *                - 'block_end' : (Default: '</div>')

  83       *                - 'title' : (Default: T_('Archives'))

  84       *                - 'mode' : 'monthly'|'daily'|'weekly'|'postbypost' (Default: conf.)

  85       *                - 'sort_order' : 'date'|'title' (Default: date - used only if the mode is 'postbypost')

  86       *                - 'link_type' : 'canonic'|'context' (default: canonic)

  87       *                - 'context_isolation' : what params need override when changing date/range (Default: 'm,w,p,title,unit,dstart' )

  88       *                - 'form' : true|false (default: false)

  89       *                - 'limit' : # of archive entries to display or '' (Default: 12)

  90       *                - 'more_link' : more link text (Default: 'More...')

  91       *                - 'list_start' : (Default '<ul>')

  92       *                - 'list_end' : (Default '</ul>')

  93       *                - 'line_start' : (Default '<li>')

  94       *                - 'line_end' : (Default '</li>')

  95       *                - 'day_date_format' : (Default: conf.)

  96       * @return boolean did we display?

  97       */
  98  	function SkinTag( $params )
  99      {
 100           global $month;
 101  
 102          /**

 103           * @todo get rid of this global:

 104           */
 105          global $m;
 106  
 107          /**

 108           * @var Blog

 109           */
 110          global $Blog;
 111  
 112          if( empty($Blog) )
 113          {
 114              return false;
 115          }
 116  
 117          /**

 118           * Default params:

 119           */
 120          // This is what will enclose the block in the skin:

 121          if(!isset($params['block_start'])) $params['block_start'] = '<div class="bSideItem">';
 122          if(!isset($params['block_end'])) $params['block_end'] = "</div>\n";
 123  
 124          // Title:

 125          if(!isset($params['block_title_start'])) $params['block_title_start'] = '<h3>';
 126          if(!isset($params['block_title_end'])) $params['block_title_end'] = '</h3>';
 127          if(!isset($params['title'])) $params['title'] = T_('Archives');
 128  
 129          // Archive mode:

 130          if(!isset($params['mode']))
 131              $params['mode'] = $Blog->get_setting('archive_mode');
 132  
 133          //Sort order (used only in postbypost mode):

 134          if($params['mode'] !='postbypost'){
 135              $params['sort_order'] = 'date';
 136          }
 137          elseif(!isset($params['sort_order']) || $params['sort_order'] == '') {
 138              $params['sort_order'] = 'date';
 139          }
 140  
 141          // Link type:

 142          if(!isset($params['link_type'])) $params['link_type'] = 'canonic';
 143          if(!isset($params['context_isolation'])) $params['context_isolation'] = 'm,w,p,title,unit,dstart';
 144  
 145          // Add form fields?:

 146          if(!isset($params['form']))
 147              $params['form'] = false;
 148  
 149          // Number of archive entries to display:

 150          if(!isset($params['limit'])) $params['limit'] = 12;
 151  
 152          // More link text:

 153          if(!isset($params['more_link'])) $params['more_link'] = T_('More...');
 154  
 155          // This is what will enclose the list:

 156          if(!isset($params['list_start'])) $params['list_start'] = '<ul>';
 157          if(!isset($params['list_end'])) $params['list_end'] = "</ul>\n";
 158  
 159          // This is what will separate the archive links:

 160          if(!isset($params['line_start'])) $params['line_start'] = '<li>';
 161          if(!isset($params['line_end'])) $params['line_end'] = "</li>\n";
 162  
 163          // Daily archive date format?

 164          if( (!isset($params['day_date_format'])) || ($params['day_date_format'] == '') )
 165          {
 166               $dateformat = locale_datefmt();
 167              $params['day_date_format'] = $dateformat;
 168          }
 169  
 170          $ArchiveList = & new ArchiveList( $params['mode'], $params['limit'], $params['sort_order'], ($params['link_type'] == 'context'),
 171                                                                              $this->dbtable, $this->dbprefix, $this->dbIDname );
 172  
 173          echo $params['block_start'];
 174  
 175          if( !empty($params['title']) )
 176          {    // We want to display a title for the widget block:
 177              echo $params['block_title_start'];
 178              echo $params['title'];
 179              echo $params['block_title_end'];
 180          }
 181  
 182          echo $params['list_start'];
 183          while( $ArchiveList->get_item( $arc_year, $arc_month, $arc_dayofmonth, $arc_w, $arc_count, $post_ID, $post_title) )
 184          {
 185              echo $params['line_start'];
 186              switch( $params['mode'] )
 187              {
 188                  case 'monthly':
 189                      // --------------------------------- MONTHLY ARCHIVES -------------------------------------

 190                      $arc_m = $arc_year.zeroise($arc_month,2);
 191  
 192                      if( $params['form'] )
 193                      { // We want a radio button:
 194                          echo '<input type="radio" name="m" value="'.$arc_m.'" class="checkbox"';
 195                          if( $m == $arc_m ) echo ' checked="checked"' ;
 196                          echo ' /> ';
 197                      }
 198  
 199                      echo '<a href="';
 200                      if( $params['link_type'] == 'context' )
 201                      {    // We want to preserve current browsing context:
 202                          echo regenerate_url( $params['context_isolation'], 'm='.$arc_m );
 203                      }
 204                      else
 205                      {    // We want to link to the absolute canonical URL for this archive:
 206                          echo $Blog->gen_archive_url( $arc_year, $arc_month );
 207                      }
 208                      echo '">';
 209  
 210                      echo T_($month[zeroise($arc_month,2)]),' ',$arc_year;
 211                      echo '</a> <span class="dimmed">('.$arc_count.')</span>';
 212                      break;
 213  
 214                  case 'daily':
 215                      // --------------------------------- DAILY ARCHIVES ---------------------------------------

 216                      $arc_m = $arc_year.zeroise($arc_month,2).zeroise($arc_dayofmonth,2);
 217  
 218                      if( $params['form'] )
 219                      { // We want a radio button:
 220                          echo '<input type="radio" name="m" value="'. $arc_m. '" class="checkbox"';
 221                          if( $m == $arc_m ) echo ' checked="checked"' ;
 222                          echo ' /> ';
 223                      }
 224  
 225                      echo '<a href="';
 226                      if( $params['link_type'] == 'context' )
 227                      {    // We want to preserve current browsing context:
 228                          echo regenerate_url( $params['context_isolation'], 'm='.$arc_m );
 229                      }
 230                      else
 231                      {    // We want to link to the absolute canonical URL for this archive:
 232                          echo $Blog->gen_archive_url( $arc_year, $arc_month, $arc_dayofmonth );
 233                      }
 234                      echo '">';
 235  
 236                      echo mysql2date($params['day_date_format'], $arc_year.'-'.zeroise($arc_month,2).'-'.zeroise($arc_dayofmonth,2).' 00:00:00');
 237                      echo '</a> <span class="dimmed">('.$arc_count.')</span>';
 238                      break;
 239  
 240                  case 'weekly':
 241                      // --------------------------------- WEEKLY ARCHIVES --------------------------------------

 242                      echo '<a href="';
 243                      if( $params['link_type'] == 'context' )
 244                      {    // We want to preserve current browsing context:
 245                          echo regenerate_url( $params['context_isolation'], 'm='.$arc_year.'&amp;w='.$arc_w );
 246                      }
 247                      else
 248                      {    // We want to link to the absolute canonical URL for this archive:
 249                          echo $Blog->gen_archive_url( $arc_year, NULL, NULL, $arc_w );
 250                      }
 251                      echo '">';
 252                      echo $arc_year.', '.T_('week').' '.$arc_w;
 253                      echo '</a> <span class="dimmed">('.$arc_count.')</span>';
 254                      break;
 255  
 256                  case 'postbypost':
 257                  default:
 258                      // -------------------------------- POST BY POST ARCHIVES ---------------------------------

 259                      echo '<a href="';
 260                      if( $params['link_type'] == 'context' )
 261                      {    // We want to preserve current browsing context:
 262                          echo regenerate_url( $params['context_isolation'], 'p='.$post_ID );
 263                      }
 264                      else
 265                      {    // We want to link to the absolute (canonical) URL for this archive:
 266                          // fp> TODO: This is NOT canonical. To go to the canonical, we'd need a 'light' itemlist (which does not load too much data)

 267                          // fp> Note: there may be a "redirect to canonical" anyway. Not optimal, but at least this is less broken than it was before.

 268                          echo url_add_param( $Blog->get('url'), 'p='.$post_ID.'&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1' );
 269                      }
 270                      echo '">';
 271                      if ($post_title)
 272                      {
 273                          echo strip_tags($post_title);
 274                      }
 275                      else
 276                      {
 277                          echo $post_ID;
 278                      }
 279                      echo '</a>';
 280              }
 281  
 282              echo $params['line_end'];
 283          }
 284  
 285          // Display more link:

 286          if( !empty($params['more_link']) )
 287          {
 288              echo $params['line_start'];
 289              echo '<a href="';
 290              $Blog->disp( 'arcdirurl', 'raw' );
 291              echo '">'.format_to_output($params['more_link']).'</a>';
 292              echo $params['line_end'];
 293          }
 294  
 295          echo $params['list_end'];
 296  
 297          echo $params['block_end'];
 298  
 299          return true;
 300      }
 301  }
 302  
 303  
 304  /**

 305   * Archive List Class

 306   *

 307   * @package evocore

 308   */
 309  class ArchiveList extends Results
 310  {
 311      var $archive_mode;
 312      var $arc_w_last;
 313  
 314      /**

 315       * Constructor

 316       *

 317       * Note: Weekly archives use MySQL's week numbering and MySQL default if applicable.

 318       * In MySQL < 4.0.14, WEEK() always uses mode 0: Week starts on Sunday;

 319       * Value range is 0 to 53; week 1 is the first week that starts in this year.

 320       *

 321       * @link http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html

 322       *

 323       * @todo categories combined with 'ALL' are not supported (will output too many archives,

 324       * some of which will resolve to no results). We need subqueries to support this efficiently.

 325       *

 326       * @param string

 327       * @param integer

 328       * @param boolean

 329       */
 330  	function ArchiveList(
 331          $archive_mode = 'monthly',
 332          $limit = 100,
 333          $sort_order = 'date',
 334          $preserve_context = false,
 335          $dbtable = 'T_items__item',
 336          $dbprefix = 'post_',
 337          $dbIDname = 'ID' )
 338      {
 339          global $DB;
 340          global $blog, $cat, $catsel;
 341          global $show_statuses;
 342          global $author, $assgn, $status;
 343          global $timestamp_min, $timestamp_max;
 344          global $s, $sentence, $exact;
 345  
 346          $this->dbtable = $dbtable;
 347          $this->dbprefix = $dbprefix;
 348          $this->dbIDname = $dbIDname;
 349          $this->archive_mode = $archive_mode;
 350  
 351  
 352          /*

 353           * WE ARE GOING TO CONSTRUCT THE WHERE CLOSE...

 354           */
 355          $this->ItemQuery = & new ItemQuery( $this->dbtable, $this->dbprefix, $this->dbIDname ); // TEMPORARY OBJ

 356  
 357          // - - Select a specific Item:

 358          // $this->ItemQuery->where_ID( $p, $title );

 359  
 360          if( $preserve_context )
 361          {    // We want to preserve the current context:
 362              // * - - Restrict to selected blog/categories:

 363              $this->ItemQuery->where_chapter( $blog, $cat, $catsel );
 364  
 365              // * Restrict to the statuses we want to show:

 366              $this->ItemQuery->where_visibility( $show_statuses );
 367  
 368              // Restrict to selected authors:

 369              $this->ItemQuery->where_author( $author );
 370  
 371              // Restrict to selected assignees:

 372              $this->ItemQuery->where_assignees( $assgn );
 373  
 374              // Restrict to selected satuses:

 375              $this->ItemQuery->where_statuses( $status );
 376  
 377              // - - - + * * timestamp restrictions:

 378              $this->ItemQuery->where_datestart( '', '', '', '', $timestamp_min, $timestamp_max );
 379  
 380              // Keyword search stuff:

 381              $this->ItemQuery->where_keywords( $s, $sentence, $exact );
 382          }
 383          else
 384          {    // We want to preserve only the minimal context:
 385              // * - - Restrict to selected blog/categories:

 386              $this->ItemQuery->where_chapter( $blog, '', array() );
 387  
 388              // * Restrict to the statuses we want to show:

 389              $this->ItemQuery->where_visibility( $show_statuses );
 390  
 391              // - - - + * * timestamp restrictions:

 392              $this->ItemQuery->where_datestart( '', '', '', '', $timestamp_min, $timestamp_max );
 393          }
 394  
 395  
 396          $this->from = $this->ItemQuery->get_from();
 397          $this->where = $this->ItemQuery->get_where();
 398          $this->group_by = $this->ItemQuery->get_group_by();
 399  
 400          switch( $this->archive_mode )
 401          {
 402              case 'monthly':
 403                  // ------------------------------ MONTHLY ARCHIVES ------------------------------------

 404                  $sql = 'SELECT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart) AS year, EXTRACT(MONTH FROM '.$this->dbprefix.'datestart) AS month,
 405                                                                      COUNT(DISTINCT postcat_post_ID) AS count '
 406                                                      .$this->from
 407                                                      .$this->where.'
 408                                                      GROUP BY year, month
 409                                                      ORDER BY year DESC, month DESC';
 410                  break;
 411  
 412              case 'daily':
 413                  // ------------------------------- DAILY ARCHIVES -------------------------------------

 414                  $sql = 'SELECT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart) AS year, MONTH('.$this->dbprefix.'datestart) AS month,
 415                                                                      DAYOFMONTH('.$this->dbprefix.'datestart) AS day,
 416                                                                      COUNT(DISTINCT postcat_post_ID) AS count '
 417                                                      .$this->from
 418                                                      .$this->where.'
 419                                                      GROUP BY year, month, day
 420                                                      ORDER BY year DESC, month DESC, day DESC';
 421                  break;
 422  
 423              case 'weekly':
 424                  // ------------------------------- WEEKLY ARCHIVES -------------------------------------

 425                  $sql = 'SELECT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart) AS year, '.
 426                                                              $DB->week( $this->dbprefix.'datestart', locale_startofweek() ).' AS week,
 427                                                              COUNT(DISTINCT postcat_post_ID) AS count '
 428                                                      .$this->from
 429                                                      .$this->where.'
 430                                                      GROUP BY year, week
 431                                                      ORDER BY year DESC, week DESC';
 432                  break;
 433  
 434              case 'postbypost':
 435              default:
 436                  // ----------------------------- POSY BY POST ARCHIVES --------------------------------

 437                  $sql = 'SELECT DISTINCT '.$this->dbIDname.', '.$this->dbprefix.'datestart, '.$this->dbprefix.'title '
 438                                                      .$this->from
 439                                                      .$this->where
 440                                                      .$this->group_by.'
 441                                                      ORDER BY ';
 442                  if($sort_order == 'title'){
 443                      $sql .= $this->dbprefix.'title ASC';
 444                  }
 445                  else if($sort_order == 'date'){
 446                      $sql .= $this->dbprefix.'datestart DESC';
 447                  }
 448          }
 449  
 450  
 451          // dh> Temp fix for MySQL bug - apparently in/around 4.1.21/5.0.24.

 452          // See http://forums.b2evolution.net/viewtopic.php?p=42529#42529

 453          if( in_array($this->archive_mode, array('monthly', 'daily', 'weekly')) )
 454          {
 455              $sql_version = $DB->get_var('SELECT VERSION()'); // fp> TODO: $DB->get_mysql_version()

 456              if( version_compare($sql_version, '4', '>') )
 457              {
 458                  $sql = 'SELECT SQL_CALC_FOUND_ROWS '.substr( $sql, 7 ); // "SQL_CALC_FOUND_ROWS" available since MySQL 4

 459              }
 460          }
 461  
 462  
 463          parent::Results( $sql, 'archivelist_', '', $limit );
 464  
 465          $this->restart();
 466      }
 467  
 468  
 469      /**

 470       * Count the number of rows of the SQL result

 471       *

 472       * These queries are complex enough for us not to have to rewrite them:

 473       * dh> ???

 474       */
 475  	function count_total_rows()
 476      {
 477          global $DB;
 478  
 479          switch( $this->archive_mode )
 480          {
 481              case 'monthly':
 482                  // ------------------------------ MONTHLY ARCHIVES ------------------------------------

 483                  $sql_count = 'SELECT COUNT( DISTINCT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart), EXTRACT(MONTH FROM '.$this->dbprefix.'datestart) ) '
 484                                                      .$this->from
 485                                                      .$this->where;
 486                  break;
 487  
 488              case 'daily':
 489                  // ------------------------------- DAILY ARCHIVES -------------------------------------

 490                  $sql_count = 'SELECT COUNT( DISTINCT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart), EXTRACT(MONTH FROM '.$this->dbprefix.'datestart),
 491                                                                      EXTRACT(DAY FROM '.$this->dbprefix.'datestart) ) '
 492                                                      .$this->from
 493                                                      .$this->where;
 494                  break;
 495  
 496              case 'weekly':
 497                  // ------------------------------- WEEKLY ARCHIVES -------------------------------------

 498                  $sql_count = 'SELECT COUNT( DISTINCT EXTRACT(YEAR FROM '.$this->dbprefix.'datestart), '
 499                                                      .$DB->week( $this->dbprefix.'datestart', locale_startofweek() ).' ) '
 500                                                      .$this->from
 501                                                      .$this->where;
 502                  break;
 503  
 504              case 'postbypost':
 505              default:
 506                  // ----------------------------- POSY BY POST ARCHIVES --------------------------------

 507                  $sql_count = 'SELECT COUNT( DISTINCT '.$this->dbIDname.' ) '
 508                                                      .$this->from
 509                                                      .$this->where
 510                                                      .$this->group_by;
 511          }
 512  
 513          // echo $sql_count;

 514  
 515          $this->total_rows = $DB->get_var( $sql_count ); //count total rows

 516  
 517          // echo 'total rows='.$this->total_rows;

 518      }
 519  
 520  
 521      /**

 522       * Rewind resultset

 523       */
 524  	function restart()
 525      {
 526          // Make sure query has executed at least once:

 527          $this->query();
 528  
 529          $this->current_idx = 0;
 530          $this->arc_w_last = '';
 531      }
 532  
 533      /**

 534       * Getting next item in archive list

 535       *

 536       * WARNING: these are *NOT* Item objects!

 537       */
 538  	function get_item( & $arc_year, & $arc_month, & $arc_dayofmonth, & $arc_w, & $arc_count, & $post_ID, & $post_title )
 539      {
 540          // echo 'getting next item<br />';

 541  
 542          if( $this->current_idx >= $this->result_num_rows )
 543          {    // No more entry
 544              return false;
 545          }
 546  
 547          $arc_row = $this->rows[ $this->current_idx++ ];
 548  
 549          switch( $this->archive_mode )
 550          {
 551              case 'monthly':
 552                  $arc_year  = $arc_row->year;
 553                  $arc_month = $arc_row->month;
 554                  $arc_count = $arc_row->count;
 555                  return true;
 556  
 557              case 'daily':
 558                  $arc_year  = $arc_row->year;
 559                  $arc_month = $arc_row->month;
 560                  $arc_dayofmonth = $arc_row->day;
 561                  $arc_count = $arc_row->count;
 562                  return true;
 563  
 564              case 'weekly':
 565                  $arc_year  = $arc_row->year;
 566                  $arc_w = $arc_row->week;
 567                  $arc_count = $arc_row->count;
 568                  return true;
 569  
 570              case 'postbypost':
 571              default:
 572                  $post_ID = $arc_row->post_ID;
 573                  $post_title = $arc_row->{$this->dbprefix.'title'};
 574                  return true;
 575          }
 576      }
 577  }
 578  
 579  
 580  
 581  
 582  /*

 583   * $Log: _archives.plugin.php,v $

 584   * Revision 1.43  2007/06/25 11:02:31  fplanque

 585   * MODULES (refactored MVC)

 586   *

 587   * Revision 1.42  2007/05/14 02:43:06  fplanque

 588   * Started renaming tables. There probably won't be a better time than 2.0.

 589   *

 590   * Revision 1.41  2007/05/07 18:03:27  fplanque

 591   * cleaned up skin code a little

 592   *

 593   * Revision 1.40  2007/05/04 01:55:59  waltercruz

 594   * Changing the MySQL date functions to the standart ones.

 595   * Adding a sort_order parameter to archives plugins, to be used in postbypost mode, with two options: date (posts sorted by date DESC) and title (posts sorted by title ASC).

 596   *

 597   * Revision 1.39  2007/04/26 00:11:04  fplanque

 598   * (c) 2007

 599   *

 600   * Revision 1.38  2007/03/25 10:20:02  fplanque

 601   * cleaned up archive urls

 602   *

 603   * Revision 1.37  2007/01/13 18:36:24  fplanque

 604   * renamed "Skin Tag" plugins into "Widget" plugins

 605   * but otherwise they remain basically the same & compatible

 606   *

 607   * Revision 1.36  2007/01/13 16:55:00  blueyed

 608   * Removed $DB member of Results class and use global $DB instead

 609   *

 610   * Revision 1.35  2006/12/26 03:19:12  fplanque

 611   * assigned a few significant plugin groups

 612   *

 613   * Revision 1.34  2006/12/04 19:41:11  fplanque

 614   * Each blog can now have its own "archive mode" settings

 615   *

 616   * Revision 1.33  2006/11/24 18:27:27  blueyed

 617   * Fixed link to b2evo CVS browsing interface in file docblocks

 618   *

 619   * Revision 1.32  2006/11/02 19:49:22  fplanque

 620   * no message

 621   *

 622   * Revision 1.31  2006/10/26 19:04:07  blueyed

 623   * Make the SQL fix work..

 624   *

 625   * Revision 1.30  2006/10/25 22:27:44  blueyed

 626   * Fix for MySQL bug

 627   *

 628   * Revision 1.29  2006/09/10 20:59:19  fplanque

 629   * extended extra path info setting

 630   *

 631   * Revision 1.28  2006/08/29 00:26:11  fplanque

 632   * Massive changes rolling in ItemList2.

 633   * This is somehow the meat of version 2.0.

 634   * This branch has gone officially unstable at this point! :>

 635   *

 636   * Revision 1.27  2006/07/10 20:19:30  blueyed

 637   * Fixed PluginInit behaviour. It now gets called on both installed and non-installed Plugins, but with the "is_installed" param appropriately set.

 638   *

 639   * Revision 1.26  2006/07/08 12:33:50  blueyed

 640   * Fixed regression with Results' class adding an additional ORDER column to ItemList2's query

 641   *

 642   * Revision 1.25  2006/07/07 21:26:49  blueyed

 643   * Bumped to 1.9-dev

 644   *

 645   * Revision 1.24  2006/06/20 00:53:07  blueyed

 646   * require results class (through global)!

 647   *

 648   * Revision 1.23  2006/06/20 00:38:42  blueyed

 649   * require results class!

 650   *

 651   * Revision 1.22  2006/06/16 21:30:57  fplanque

 652   * Started clean numbering of plugin versions (feel free do add dots...)

 653   *

 654   * Revision 1.21  2006/05/30 19:39:55  fplanque

 655   * plugin cleanup

 656   *

 657   * Revision 1.20  2006/04/19 20:14:03  fplanque

 658   * do not restrict to :// (does not catch subdomains, not even www.)

 659   *

 660   * Revision 1.19  2006/03/12 23:09:27  fplanque

 661   * doc cleanup

 662   *

 663   * Revision 1.18  2006/02/05 19:04:49  blueyed

 664   * doc fixes

 665   *

 666   * Revision 1.17  2006/02/05 14:07:18  blueyed

 667   * Fixed 'postbypost' archive mode.

 668   *

 669   * Revision 1.16  2006/01/04 20:34:51  fplanque

 670   * allow filtering on extra statuses

 671   *

 672   * Revision 1.15  2005/12/22 23:13:40  blueyed

 673   * Plugins' API changed and handling optimized

 674   *

 675   * Revision 1.14  2005/12/12 19:22:04  fplanque

 676   * big merge; lots of small mods; hope I didn't make to many mistakes :]

 677   *

 678   * Revision 1.13  2005/11/01 17:47:37  yabs

 679   * minor corrections to postbypost

 680   *

 681   * Revision 1.12  2005/10/03 18:10:08  fplanque

 682   * renamed post_ID field

 683   *

 684   * Revision 1.11  2005/09/14 19:23:45  fplanque

 685   * doc

 686   *

 687   * Revision 1.10  2005/09/06 19:38:29  fplanque

 688   * bugfixes

 689   *

 690   * Revision 1.9  2005/09/06 17:14:12  fplanque

 691   * stop processing early if referer spam has been detected

 692   *

 693   * Revision 1.8  2005/09/01 17:11:46  fplanque

 694   * no message

 695   *

 696   *

 697   * Merged in the contents of _archivelist.class.php; history below:

 698   *

 699   * Revision 1.11  2005/06/10 18:25:43  fplanque

 700   * refactoring

 701   *

 702   * Revision 1.10  2005/05/24 15:26:52  fplanque

 703   * cleanup

 704   *

 705   * Revision 1.9  2005/03/08 20:32:07  fplanque

 706   * small fixes; slightly enhanced WEEK() handling

 707   *

 708   * Revision 1.8  2005/03/07 17:36:10  fplanque

 709   * made more generic

 710   *

 711   * Revision 1.7  2005/02/28 09:06:32  blueyed

 712   * removed constants for DB config (allows to override it from _config_TEST.php), introduced EVO_CONFIG_LOADED

 713   *

 714   * Revision 1.6  2005/01/03 15:17:52  fplanque

 715   * no message

 716   *

 717   * Revision 1.5  2004/12/27 18:37:58  fplanque

 718   * changed class inheritence

 719   *

 720   * Changed parent to Results!!

 721   *

 722   * Revision 1.4  2004/12/13 21:29:58  fplanque

 723   * refactoring

 724   *

 725   * Revision 1.3  2004/11/09 00:25:11  blueyed

 726   * minor translation changes (+MySQL spelling :/)

 727   *

 728   * Revision 1.2  2004/10/14 18:31:24  blueyed

 729   * granting copyright

 730   *

 731   * Revision 1.1  2004/10/13 22:46:32  fplanque

 732   * renamed [b2]evocore/*

 733   *

 734   * Revision 1.19  2004/10/11 19:02:04  fplanque

 735   * Edited code documentation.

 736   *

 737   */
 738  ?>


Généré le : Thu Nov 29 23:58:50 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics