[ Index ] |
|
Code source de CMS made simple 1.0.5 |
1 <?php 2 #CMS - CMS Made Simple 3 #(c)2004-6 by Ted Kulp (ted@cmsmadesimple.org) 4 #This project's homepage is: http://cmsmadesimple.org 5 # 6 #This program is free software; you can redistribute it and/or modify 7 #it under the terms of the GNU General Public License as published by 8 #the Free Software Foundation; either version 2 of the License, or 9 #(at your option) any later version. 10 # 11 #This program is distributed in the hope that it will be useful, 12 #BUT withOUT ANY WARRANTY; without even the implied warranty of 13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 #GNU General Public License for more details. 15 #You should have received a copy of the GNU General Public License 16 #along with this program; if not, write to the Free Software 17 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 # 19 #$Id$ 20 21 /** 22 * Class for doing template related functions. Many of the Template object functions are just wrappers around these. 23 * 24 * @since 0.6 25 * @package CMS 26 */ 27 28 include_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'class.template.inc.php'); 29 30 class TemplateOperations 31 { 32 function LoadTemplates() 33 { 34 global $gCms; 35 $db = &$gCms->GetDb(); 36 37 $result = array(); 38 39 $query = "SELECT template_id, template_name, template_content, stylesheet, encoding, active, default_template, modified_date FROM ".cms_db_prefix()."templates ORDER BY template_name"; 40 $dbresult = &$db->Execute($query); 41 42 while ($dbresult && !$dbresult->EOF) 43 { 44 $onetemplate = new Template(); 45 $onetemplate->id = $dbresult->fields['template_id']; 46 $onetemplate->name = $dbresult->fields['template_name']; 47 $onetemplate->active = $dbresult->fields['active']; 48 $onetemplate->default = $dbresult->fields['default_template']; 49 $onetemplate->content = $dbresult->fields['template_content']; 50 $onetemplate->encoding = $dbresult->fields['encoding']; 51 $onetemplate->stylesheet = $dbresult->fields['stylesheet']; 52 $onetemplate->modified_date = $db->UnixTimeStamp($dbresult->fields['modified_date']); 53 $result[] = $onetemplate; 54 $dbresult->MoveNext(); 55 } 56 57 if ($dbresult) $dbresult->Close(); 58 59 return $result; 60 } 61 62 function & LoadTemplateByID($id) 63 { 64 $result = false; 65 66 global $gCms; 67 $db = &$gCms->GetDb(); 68 $cache = &$gCms->TemplateCache; 69 70 if (isset($cache[$id])) 71 { 72 return $cache[$id]; 73 } 74 75 $query = "SELECT template_id, template_name, template_content, stylesheet, encoding, active, default_template, modified_date FROM ".cms_db_prefix()."templates WHERE template_id = ?"; 76 $row = &$db->GetRow($query, array($id)); 77 78 if($row) 79 { 80 $onetemplate =& new Template(); 81 $onetemplate->id = $row['template_id']; 82 $onetemplate->name = $row['template_name']; 83 $onetemplate->content = $row['template_content']; 84 $onetemplate->stylesheet = $row['stylesheet']; 85 $onetemplate->encoding = $row['encoding']; 86 $onetemplate->default = $row['default_template']; 87 $onetemplate->active = $row['active']; 88 $onetemplate->modified_date = $db->UnixTimeStamp($row['modified_date']); 89 $result =& $onetemplate; 90 91 if (!isset($cache[$onetemplate->id])) 92 { 93 $cache[$onetemplate->id] =& $onetemplate; 94 } 95 } 96 97 return $result; 98 } 99 100 function LoadTemplateByContentAlias($alias) 101 { 102 $result = false; 103 104 global $gCms; 105 $db = &$gCms->GetDb(); 106 107 $query = "SELECT t.template_id, t.template_name, t.template_content, t.stylesheet, t.encoding, t.active, t.default_template, t.modified_date FROM ".cms_db_prefix()."templates t INNER JOIN ".cms_db_prefix()."content c ON c.template_id = t.template_id WHERE (c.content_alias = ? OR c.content_id = ?) AND c.active = 1"; 108 $row = &$db->GetRow($query, array($alias, $alias)); 109 110 if ($row) 111 { 112 $onetemplate = new Template(); 113 $onetemplate->id = $row['template_id']; 114 $onetemplate->name = $row['template_name']; 115 $onetemplate->content = $row['template_content']; 116 $onetemplate->stylesheet = $row['stylesheet']; 117 $onetemplate->encoding = $row['encoding']; 118 $onetemplate->default = $row['default_template']; 119 $onetemplate->active = $row['active']; 120 $onetemplate->modified_date = $db->UnixTimeStamp($row['modified_date']); 121 $result = $onetemplate; 122 } 123 124 return $result; 125 } 126 127 function LoadTemplateAndContentDates($alias) 128 { 129 $result = array(); 130 131 global $gCms; 132 $db = &$gCms->GetDb(); 133 134 $query = "SELECT c.modified_date AS c_date, t.modified_date AS t_date FROM ".cms_db_prefix()."templates t INNER JOIN ".cms_db_prefix()."content c ON c.template_id = t.template_id WHERE (c.content_alias = ? OR c.content_id = ?) AND c.active = 1"; 135 $dbresult = &$db->Execute($query, array($alias, $alias)); 136 137 while ($dbresult && !$dbresult->EOF) 138 { 139 $result[] = $dbresult->fields['c_date']; 140 $result[] = $dbresult->fields['t_date']; 141 $dbresult->MoveNext(); 142 } 143 144 if ($dbresult) $dbresult->Close(); 145 146 return $result; 147 } 148 149 function LoadDefaultTemplate() 150 { 151 $result = false; 152 153 global $gCms; 154 $db = &$gCms->GetDb(); 155 156 $query = "SELECT template_id, template_name, template_content, stylesheet, encoding, active, default_template FROM ".cms_db_prefix()."templates WHERE default_template = 1"; 157 $row = &$db->GetRow($query); 158 159 if($row) 160 { 161 $onetemplate = new Template(); 162 $onetemplate->id = $row['template_id']; 163 $onetemplate->name = $row['template_name']; 164 $onetemplate->content = $row['template_content']; 165 $onetemplate->stylesheet = $row['stylesheet']; 166 $onetemplate->encoding = $row['encoding']; 167 $onetemplate->default = $row['default_template']; 168 $onetemplate->active = $row['active']; 169 $result = $onetemplate; 170 } 171 172 return $result; 173 } 174 175 function UsageCount($id) 176 { 177 $result = 0; 178 179 global $gCms; 180 $db = &$gCms->GetDb(); 181 182 $query = "SELECT count(*) as the_count FROM ".cms_db_prefix()."content WHERE template_id = ?"; 183 $row = &$db->GetRow($query, array($id)); 184 185 if($row) 186 { 187 $result = $row['the_count']; 188 } 189 190 return $result; 191 } 192 193 function InsertTemplate($template) 194 { 195 $result = -1; 196 197 global $gCms; 198 $db = &$gCms->GetDb(); 199 200 $time = $db->DBTimeStamp(time()); 201 $new_template_id = $db->GenID(cms_db_prefix()."templates_seq"); 202 $query = "INSERT INTO ".cms_db_prefix()."templates (template_id, template_name, template_content, stylesheet, encoding, active, default_template, create_date, modified_date) VALUES (?,?,?,?,?,?,?,".$time.",".$time.")"; 203 $dbresult = $db->Execute($query, array($new_template_id, $template->name, $template->content, $template->stylesheet, $template->encoding, $template->active, $template->default)); 204 if ($dbresult !== false) 205 { 206 $result = $new_template_id; 207 do_cross_reference($new_template_id, 'template', $template->content); 208 } 209 210 return $result; 211 } 212 213 function UpdateTemplate($template) 214 { 215 $result = false; 216 217 global $gCms; 218 $db = &$gCms->GetDb(); 219 220 $time = $db->DBTimeStamp(time()); 221 $query = "UPDATE ".cms_db_prefix()."templates SET template_name = ?, template_content = ?, stylesheet = ?, encoding = ?, active = ?, default_template = ?, modified_date = ".$time." WHERE template_id = ?"; 222 $dbresult = $db->Execute($query,array($template->name,$template->content,$template->stylesheet,$template->encoding,$template->active,$template->default,$template->id)); 223 if ($dbresult !== false) 224 { 225 $result = true; 226 do_cross_reference($template->id, 'template', $template->content); 227 } 228 229 return $result; 230 } 231 232 function DeleteTemplateByID($id) 233 { 234 $result = false; 235 236 global $gCms; 237 $db = &$gCms->GetDb(); 238 239 $query = "DELETE FROM ".cms_db_prefix()."css_assoc WHERE assoc_type = 'template' AND assoc_to_id = ?"; 240 $dbresult = $db->Execute($query,array($id)); 241 242 $query = "DELETE FROM ".cms_db_prefix()."templates where template_id = ?"; 243 $dbresult = $db->Execute($query,array($id)); 244 245 if ($dbresult !== false) 246 { 247 $result = true; 248 remove_cross_references($id, 'template'); 249 } 250 251 return $result; 252 } 253 254 function CountPagesUsingTemplateByID($id) 255 { 256 $result = 0; 257 258 global $gCms; 259 $db = &$gCms->GetDb(); 260 261 $query = "SELECT count(*) AS count FROM ".cms_db_prefix()."content WHERE template_id = ?"; 262 $row = &$db->GetRow($query,array($id)); 263 264 if ($row) 265 { 266 if (isset($row["count"])) 267 { 268 $result = $row["count"]; 269 } 270 } 271 272 return $result; 273 } 274 275 function StylesheetsUsed() 276 { 277 $result = 0; 278 279 global $gCms; 280 $db = &$gCms->GetDb(); 281 282 $query = "SELECT count(*) AS count FROM ".cms_db_prefix()."templates WHERE stylesheet is not null and stylesheet != ''"; 283 $row = &$db->GetRow($query); 284 285 if ($row) 286 { 287 if (isset($row["count"])) 288 { 289 $result = $row["count"]; 290 } 291 } 292 293 return $result; 294 } 295 296 function TouchAllTemplates($blob_name='') 297 { 298 $result = false; 299 300 global $gCms; 301 $db = &$gCms->GetDb(); 302 303 $dbresult = false; 304 305 $time = $db->DBTimeStamp(time()); 306 if ($blob_name != '') 307 { 308 $query = "UPDATE ".cms_db_prefix()."templates SET modified_date = ".$time." WHERE template_content like ?"; 309 $dbresult = $db->Execute($query,array('%{html_blob name="'.$blob_name.'"}%')); 310 } 311 else 312 { 313 $query = "UPDATE ".cms_db_prefix()."templates SET modified_date = ".$time; 314 $dbresult = $db->Execute($query); 315 } 316 317 if ($dbresult !== false) 318 { 319 $result = true; 320 } 321 322 return $result; 323 } 324 325 function CheckExistingTemplateName($name) 326 { 327 $result = false; 328 329 global $gCms; 330 $db = &$gCms->GetDb(); 331 332 $query = "SELECT template_id from ".cms_db_prefix()."templates WHERE template_name = ?"; 333 $row = &$db->GetRow($query,array($name)); 334 335 if ($row) 336 { 337 $result = true; 338 } 339 340 return $result; 341 } 342 343 function TemplateDropdown($id = 'template_id', $selected_id = -1, $othertext = '', $show_hidden = false) 344 { 345 $result = ""; 346 347 global $gCms; 348 $templateops =& $gCms->GetTemplateOperations(); 349 350 $alltemplates = $templateops->LoadTemplates(); 351 352 if (count($alltemplates) > 0) 353 { 354 $result .= '<select name="'.$id.'"'; 355 if ($othertext != '') 356 { 357 $result .= ' ' . $othertext; 358 } 359 $result .= '>'; 360 #$result .= '<option value="">Select Template</option>'; 361 foreach ($alltemplates as $onetemplate) 362 { 363 if ($onetemplate->active == true || $show_hidden == true) 364 { 365 $result .= '<option value="'.$onetemplate->id.'"'; 366 if ($onetemplate->id == $selected_id || ($selected_id == -1 && $onetemplate->default == true)) 367 { 368 $result .= ' selected="selected"'; 369 } 370 $result .= '>'.$onetemplate->name.'</option>'; 371 } 372 } 373 $result .= '</select>'; 374 } 375 376 return $result; 377 } 378 } 379 380 381 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Tue Apr 3 18:50:37 2007 | par Balluche grâce à PHPXref 0.7 |