[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/plugins/serendipity_plugin_history/ -> serendipity_plugin_history.php (source)

   1  <?php # $Id: serendipity_plugin_history.php 1743 2007-06-30 11:31:15Z garvinhicking $
   2  
   3  // Probe for a language include with constants. Still include defines later on, if some constants were missing
   4  $probelang = dirname(__FILE__) . '/' . $serendipity['charset'] . 'lang_' . $serendipity['lang'] . '.inc.php';
   5  if (file_exists($probelang)) {
   6      include $probelang;
   7  }
   8  
   9  include dirname(__FILE__) . '/lang_en.inc.php';
  10  
  11  class serendipity_plugin_history extends serendipity_plugin
  12  {
  13      var $title = PLUGIN_HISTORY_NAME;
  14  
  15      function introspect(&$propbag)
  16      {
  17          global $serendipity;
  18  
  19          $this->title = $this->get_config('title', $this->title);
  20  
  21          $propbag->add('name',          PLUGIN_HISTORY_NAME);
  22          $propbag->add('description',   PLUGIN_HISTORY_DESC);
  23          $propbag->add('stackable',     true);
  24          $propbag->add('author',        'Jannis Hermanns');
  25          $propbag->add('version',       '1.3');
  26          $propbag->add('requirements',  array(
  27              'serendipity' => '0.8',
  28              'smarty'      => '2.6.7',
  29              'php'         => '4.1.0'
  30          ));
  31          $propbag->add('groups', array('FRONTEND_VIEWS'));
  32          $propbag->add('configuration', array('title',
  33                                               'intro',
  34                                               'outro',
  35                                               'maxlength',
  36                                               'specialage',
  37                                               'min_age',
  38                                               'max_age',
  39                                               'max_entries',
  40                                               'full',
  41                                               'amount',
  42                                               'displaydate',
  43                                               'displayauthor',
  44                                               'dateformat'));
  45      }
  46  
  47      function introspect_config_item($name, &$propbag)
  48      {
  49          switch($name) {
  50              case 'title':
  51                  $propbag->add('type', 'string');
  52                  $propbag->add('name', TITLE);
  53                  $propbag->add('description', '');
  54                  $propbag->add('default', PLUGIN_HISTORY_NAME);
  55              break;
  56              case 'intro':
  57                  $propbag->add('type', 'string');
  58                  $propbag->add('name', PLUGIN_HISTORY_INTRO);
  59                  $propbag->add('description', PLUGIN_HISTORY_INTRO_DESC);
  60                  $propbag->add('default', '');
  61              break;
  62              case 'outro':
  63                  $propbag->add('type', 'string');
  64                  $propbag->add('name', PLUGIN_HISTORY_OUTRO);
  65                  $propbag->add('description', PLUGIN_HISTORY_OUTRO_DESC);
  66                  $propbag->add('default', '');
  67              break;
  68              case 'maxlength':
  69                  $propbag->add('type', 'string');
  70                  $propbag->add('name', PLUGIN_HISTORY_MAXLENGTH);
  71                  $propbag->add('description', PLUGIN_HISTORY_MAXLENGTH_DESC);
  72                  $propbag->add('default', 30);
  73              break;
  74              case 'specialage':
  75                  $propbag->add('type', 'select');
  76                  $propbag->add('name', PLUGIN_HISTORY_SPECIALAGE);
  77                  $propbag->add('description', PLUGIN_HISTORY_SPECIALAGE_DESC);
  78                  $propbag->add('default', 'year');
  79                  $propbag->add('select_values', array('year'=>PLUGIN_HISTORY_OYA,'custom'=>PLUGIN_HISTORY_MYSELF));
  80              break;
  81              case 'min_age':
  82                  $propbag->add('type', 'string');
  83                  $propbag->add('name', PLUGIN_HISTORY_MIN_AGE);
  84                  $propbag->add('description', PLUGIN_HISTORY_MIN_AGE_DESC);
  85                  $propbag->add('default', 365);
  86              break;
  87              case 'max_age':
  88                  $propbag->add('type', 'string');
  89                  $propbag->add('name', PLUGIN_HISTORY_MAX_AGE);
  90                  $propbag->add('description', PLUGIN_HISTORY_MAX_AGE_DESC);
  91                  $propbag->add('default', 365);
  92              break;
  93              case 'max_entries':
  94                  $propbag->add('type', 'string');
  95                  $propbag->add('name', PLUGIN_HISTORY_MAX_ENTRIES);
  96                  $propbag->add('description', PLUGIN_HISTORY_MAX_ENTRIES_DESC);
  97                  $propbag->add('default', 5);
  98              break;
  99              case 'full':
 100                  $propbag->add('type',         'select');
 101                  $propbag->add('name',         PLUGIN_HISTORY_SHOWFULL);
 102                  $propbag->add('description',  PLUGIN_HISTORY_SHOWFULL_DESC);
 103                  $propbag->add('select_values', array('false','true'));
 104                  $propbag->add('default',     'false');
 105              break;
 106              case 'displaydate':
 107                  $propbag->add('type',         'select');
 108                  $propbag->add('name',         PLUGIN_HISTORY_DISPLAYDATE);
 109                  $propbag->add('description',  PLUGIN_HISTORY_DISPLAYDATE_DESC);
 110                  $propbag->add('select_values', array('false','true'));
 111                  $propbag->add('default',     'true');
 112              break;
 113              case 'displayauthor':
 114                  $propbag->add('type',         'select');
 115                  $propbag->add('name',         PLUGIN_HISTORY_DISPLAYAUTHOR);
 116                  $propbag->add('description',  '');
 117                  $propbag->add('select_values', array('false','true'));
 118                  $propbag->add('default',     'false');
 119              break;
 120              case 'dateformat':
 121                  $propbag->add('type', 'string');
 122                  $propbag->add('name', GENERAL_PLUGIN_DATEFORMAT);
 123                  $propbag->add('description', sprintf(GENERAL_PLUGIN_DATEFORMAT_BLAHBLAH, '%a, %d.%m.%Y %H:%M'));
 124                  $propbag->add('default', '%a, %d.%m.%Y %H:%M');
 125              break;
 126              default:
 127                      return false;
 128          }
 129          return true;
 130      }
 131  
 132      function generate_content(&$title)
 133      {
 134       global $serendipity;
 135          $title       = $this->get_config('title', $this->title);
 136          $intro       = $this->get_config('intro');
 137          $outro       = $this->get_config('outro');
 138          $maxlength   = $this->get_config('maxlength');
 139          $max_entries = $this->get_config('max_entries');
 140          $min_age     = $this->get_config('min_age');
 141          $max_age     = $this->get_config('max_age');
 142          $specialage  = $this->get_config('specialage');
 143          $displaydate = $this->get_config('displaydate', 'true');
 144          $dateformat  = $this->get_config('dateformat');
 145          $full        = ($this->get_config('full', 'false') != 'true') ? false : true;
 146          $displayauthor = serendipity_db_bool($this->get_config('displayauthor', false));
 147  
 148          if (!is_numeric($min_age) || $min_age < 0 || $specialage == 'year') {
 149              $min_age = 365 + date('L', serendipity_serverOffsetHour());
 150          }
 151  
 152          if (!is_numeric($max_age) || $max_age < 1 || $specialage == 'year') {
 153              $max_age = 365 + date('L', serendipity_serverOffsetHour());
 154          }
 155  
 156          if (!is_numeric($max_entries) || $max_entries < 1) {
 157              $max_entries = 5;
 158          }
 159  
 160          if (!is_numeric($maxlength) ||$maxlength <0)
 161              $maxlength = 30;
 162  
 163          if (strlen($dateformat) < 1) {
 164              $dateformat = '%a, %d.%m.%Y %H:%M';
 165          }
 166  
 167          $nowts = serendipity_serverOffsetHour();
 168          $maxts = mktime(23, 59, 59,  date('m', $nowts), date('d', $nowts), date('Y', $nowts));
 169          $mints = mktime(0, 0, 0, date('m', $nowts), date('d', $nowts), date('Y', $nowts));
 170          $e     = serendipity_fetchEntries(array(($mints-$max_age*86400),
 171                                              ($maxts-$min_age*86400)), $full, $max_entries);
 172          echo (empty($intro)) ? '' : "$intro<br />";
 173  
 174          if (!is_array($e)) {
 175              return false;
 176          }
 177  
 178          if ( ($e_c = count($e)) == 0 ) {
 179              return false;
 180          }
 181  
 182          for($x=0; $x < $e_c; $x++) {
 183              $url = serendipity_archiveURL($e[$x]['id'],
 184                                            $e[$x]['title'],
 185                                            'serendipityHTTPPath',
 186                                            true,
 187                                            array('timestamp' => $e[$x]['timestamp'])
 188              );
 189              $date   = ($displaydate=='0') ? '' : serendipity_strftime($dateformat,$e[$x]['timestamp']);
 190              $author = ($displayauthor) ? $e[$x]['author'] . ': ' : '';
 191              $t = ($maxlength==0 || strlen($e[$x]['title'])<=$maxlength) ?
 192                      $e[$x]['title'] :
 193                      (trim(serendipity_mb('substr', $e[$x]['title'], 0, $maxlength-3)).' [...]');
 194              echo $author . $date . "<a href='$url' title='".str_replace("'", '`', htmlspecialchars($e[$x]['title']))."'>". htmlspecialchars($t) ."</a> " .
 195                   strip_tags($e[$x]['body']) . '<br />';
 196          }
 197          echo $outro;
 198      }
 199  }
 200  
 201  /* vim: set sts=4 ts=4 expandtab : */


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics