[ Index ] |
|
Code source de Serendipity 1.2 |
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 : */
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Nov 24 09:00:37 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |