[ Index ]

PHP Cross Reference of Textpattern 4.0.8

title

Body

[close]

/textpattern/include/ -> txp_section.php (source)

   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  ?>


Generated: Thu May 21 23:03:01 2009 Cross-referenced by PHPXref 0.7