[ Index ] |
PHP Cross Reference of Textpattern 4.0.8 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 This is Textpattern 5 6 Copyright 2005 by Dean Allen 7 www.textpattern.com 8 All rights reserved 9 10 Use of this software indicates acceptance ofthe Textpattern license agreement 11 12 $HeadURL: https://textpattern.googlecode.com/svn/releases/4.0.8/source/textpattern/include/txp_section.php $ 13 $LastChangedRevision: 3072 $ 14 15 */ 16 17 if (!defined('txpinterface')) die('txpinterface is undefined.'); 18 19 if ($event == 'section') { 20 require_privs('section'); 21 22 if(!$step or !function_exists($step) or !in_array($step, array('sec_section_list','section_create','section_delete','section_save'))){ 23 sec_section_list(); 24 } else $step(); 25 } 26 27 // ------------------------------------------------------------- 28 29 function sec_section_list($message = '') 30 { 31 global $wlink; 32 33 pagetop(gTxt('sections'), $message); 34 35 $default = safe_row('page, css', 'txp_section', "name = 'default'"); 36 37 $pages = safe_column('name', 'txp_page', "1 = 1"); 38 $styles = safe_column('name', 'txp_css', "1 = 1"); 39 40 echo n.n.startTable('list'). 41 42 n.n.tr( 43 tda( 44 n.n.hed(gTxt('section_head').sp.popHelp('section_category'), 1). 45 46 n.n.form( 47 fInput('text', 'name', '', 'edit', '', '', 10). 48 fInput('submit', '', gTxt('create'), 'smallerbox'). 49 eInput('section'). 50 sInput('section_create') 51 ) 52 , ' colspan="3"') 53 ). 54 55 n.n.tr( 56 td(gTxt('default')). 57 58 td( 59 form( 60 '<table>'. 61 62 tr( 63 fLabelCell(gTxt('uses_page').':'). 64 td( 65 selectInput('page', $pages, $default['page']).sp.popHelp('section_uses_page') 66 , '', 'noline') 67 ). 68 69 tr( 70 fLabelCell(gTxt('uses_style').':') . 71 td( 72 selectInput('css', $styles, $default['css']).sp.popHelp('section_uses_css') 73 , '', 'noline') 74 ). 75 76 tr( 77 tda( 78 fInput('submit', '', gTxt('save_button'), 'smallerbox'). 79 eInput('section'). 80 sInput('section_save'). 81 hInput('name','default') 82 , ' colspan="2" class="noline"') 83 ). 84 85 endTable() 86 ) 87 ). 88 89 td() 90 ); 91 92 $rs = safe_rows_start('*', 'txp_section', "name != 'default' order by name"); 93 94 if ($rs) 95 { 96 while ($a = nextRow($rs)) 97 { 98 extract($a); 99 100 echo n.n.tr( 101 n.td($name). 102 103 n.td( 104 form( 105 '<table>'. 106 107 n.n.tr( 108 fLabelCell(gTxt('section_name').':'). 109 fInputCell('name', $name, 1, 20) 110 ). 111 112 n.n.tr( 113 fLabelCell(gTxt('section_longtitle').':'). 114 fInputCell('title', $title, 1, 20) 115 ). 116 117 n.n.tr( 118 fLabelCell(gTxt('uses_page').':'). 119 td( 120 selectInput('page', $pages, $page).sp.popHelp('section_uses_page') 121 , '', 'noline') 122 ). 123 124 n.n.tr( 125 fLabelCell(gTxt('uses_style').':'). 126 td( 127 selectInput('css', $styles, $css).sp.popHelp('section_uses_css') 128 , '', 'noline') 129 ). 130 131 n.n.tr( 132 fLabelCell(gTxt('selected_by_default')). 133 td( 134 yesnoradio('is_default', $is_default, '', $name).sp.popHelp('section_is_default') 135 , '', 'noline') 136 ). 137 138 n.n.tr( 139 fLabelCell(gTxt('on_front_page')). 140 td( 141 yesnoradio('on_frontpage', $on_frontpage, '', $name).sp.popHelp('section_on_frontpage') 142 , '', 'noline') 143 ). 144 145 n.n.tr( 146 fLabelCell(gTxt('syndicate')) . 147 td( 148 yesnoradio('in_rss', $in_rss, '', $name).sp.popHelp('section_syndicate') 149 , '', 'noline') 150 ). 151 152 n.n.tr( 153 fLabelCell(gTxt('include_in_search')). 154 td( 155 yesnoradio('searchable', $searchable, '', $name).sp.popHelp('section_searchable') 156 , '', 'noline') 157 ). 158 159 n.n.tr( 160 tda( 161 fInput('submit', '', gTxt('save_button'), 'smallerbox'). 162 eInput('section'). 163 sInput('section_save'). 164 hInput('old_name', $name) 165 , ' colspan="2" class="noline"') 166 ). 167 168 endTable(), 169 '', '', 'post', '', 'section-'.$name 170 ) 171 ). 172 173 td( 174 dLink('section', 'section_delete', 'name', $name, '', 'type', 'section') 175 ), 176 " id=\"section-$name\"" 177 ); 178 } 179 } 180 181 echo n.n.endTable(); 182 } 183 184 //------------------------------------------------------------- 185 function section_create() 186 { 187 global $txpcfg; 188 $name = ps('name'); 189 190 //Prevent non url chars on section names 191 include_once txpath.'/lib/classTextile.php'; 192 $textile = new Textile(); 193 $title = $textile->TextileThis($name,1); 194 $name = strtolower(sanitizeForUrl($name)); 195 196 $chk = fetch('name','txp_section','name',$name); 197 198 if (!$chk) 199 { 200 if ($name) 201 { 202 $rs = safe_insert( 203 "txp_section", 204 "name = '".doSlash($name) ."', 205 title = '".doSlash($title)."', 206 page = 'default', 207 css = 'default', 208 is_default = 0, 209 in_rss = 1, 210 on_frontpage = 1" 211 ); 212 213 if ($rs) 214 { 215 update_lastmod(); 216 217 $message = gTxt('section_created', array('{name}' => $name)); 218 219 sec_section_list($message); 220 } 221 } 222 223 else 224 { 225 sec_section_list(); 226 } 227 } 228 229 else 230 { 231 $message = gTxt('section_name_already_exists', array('{name}' => $name)); 232 233 sec_section_list($message); 234 } 235 } 236 237 //------------------------------------------------------------- 238 239 function section_save() 240 { 241 global $txpcfg; 242 243 extract(doSlash(psa(array('page','css','old_name')))); 244 extract(psa(array('name', 'title'))); 245 246 if (empty($title)) 247 { 248 $title = $name; 249 } 250 251 // Prevent non url chars on section names 252 include_once txpath.'/lib/classTextile.php'; 253 254 $textile = new Textile(); 255 $title = doSlash($textile->TextileThis($title,1)); 256 $name = doSlash(sanitizeForUrl($name)); 257 258 if ($old_name && (strtolower($name) != strtolower($old_name))) 259 { 260 if (safe_field('name', 'txp_section', "name='$name'")) 261 { 262 $message = gTxt('section_name_already_exists', array('{name}' => $name)); 263 264 sec_section_list($message); 265 return; 266 } 267 } 268 269 if ($name == 'default') 270 { 271 safe_update('txp_section', "page = '$page', css = '$css'", "name = 'default'"); 272 273 update_lastmod(); 274 } 275 276 else 277 { 278 extract(array_map('assert_int',psa(array('is_default','on_frontpage','in_rss','searchable')))); 279 // note this means 'selected by default' not 'default page' 280 if ($is_default) 281 { 282 safe_update("txp_section", "is_default = 0", "name != '$old_name'"); 283 } 284 285 safe_update('txp_section', " 286 name = '$name', 287 title = '$title', 288 page = '$page', 289 css = '$css', 290 is_default = $is_default, 291 on_frontpage = $on_frontpage, 292 in_rss = $in_rss, 293 searchable = $searchable 294 ", "name = '$old_name'"); 295 296 safe_update('textpattern', "Section = '$name'", "Section = '$old_name'"); 297 298 update_lastmod(); 299 } 300 301 $message = gTxt('section_updated', array('{name}' => $name)); 302 303 sec_section_list($message); 304 } 305 306 // ------------------------------------------------------------- 307 308 function section_delete() 309 { 310 $name = ps('name'); 311 $count = safe_count('textpattern', "section = '".doSlash($name)."'"); 312 313 if ($count) 314 { 315 $message = gTxt('section_used_by_article', array('{name}' => $name, '{count}' => $count)); 316 } 317 318 else 319 { 320 safe_delete('txp_section', "name = '".doSlash($name)."'"); 321 322 $message = gTxt('section_deleted', array('{name}' => $name)); 323 } 324 325 sec_section_list($message); 326 } 327 328 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu May 21 23:03:01 2009 | Cross-referenced by PHPXref 0.7 |