[ Index ]

PHP Cross Reference of Textpattern 4.0.8

title

Body

[close]

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

   1  <?php
   2  /*
   3      This is Textpattern
   4  
   5      Copyright 2005 by Dean Allen
   6      www.textpattern.com
   7      All rights reserved
   8  
   9      Use of this software indicates acceptance of the Textpattern license agreement
  10  
  11  $HeadURL: https://textpattern.googlecode.com/svn/releases/4.0.8/source/textpattern/include/txp_page.php $
  12  $LastChangedRevision: 3056 $
  13  
  14  */
  15      if (!defined('txpinterface')) die('txpinterface is undefined.');
  16  
  17      if ($event == 'page') {
  18          require_privs('page');
  19  
  20          if(!$step or !in_array($step, array('page_edit','page_save','page_delete','page_list'))){
  21              page_edit();
  22          } else $step();
  23      }
  24  
  25  //-------------------------------------------------------------
  26  
  27  	function page_edit($message = '') {
  28          global $step;
  29  
  30          pagetop(gTxt('edit_pages'), $message);
  31  
  32          extract(gpsa(array('name', 'newname', 'copy')));
  33  
  34          if (!$name or $step == 'page_delete')
  35          {
  36              $name = safe_field('page', 'txp_section', "name = 'default'");
  37          }
  38  
  39          $name = ( $copy && trim(preg_replace('/[<>&"\']/', '', $newname)) ) ? $newname : $name;
  40  
  41          echo
  42              startTable('edit').
  43              tr(
  44                  tda(
  45  
  46                      n.hed(
  47                          gTxt('tagbuilder')
  48                      , 2).
  49  
  50                      n.n.hed(
  51                          '<a href="#article-tags" onclick="toggleDisplay(\'article-tags\'); return false;">'.gTxt('page_article_hed').'</a>'
  52                      , 3, ' class="plain"').
  53                          n.'<div id="article-tags" class="toggle on" style="display:block">'.taglinks('page_article').'</div>'.
  54  
  55                      n.n.hed('<a href="#article-nav-tags" onclick="toggleDisplay(\'article-nav-tags\'); return false;">'.gTxt('page_article_nav_hed').'</a>'
  56                      , 3, ' class="plain"').
  57                          n.'<div id="article-nav-tags" class="toggle" style="display:none">'.taglinks('page_article_nav').'</div>'.
  58  
  59                      n.n.hed('<a href="#nav-tags" onclick="toggleDisplay(\'nav-tags\'); return false;">'.gTxt('page_nav_hed').'</a>'
  60                      , 3, ' class="plain"').
  61                          n.'<div id="nav-tags" class="toggle" style="display:none">'.taglinks('page_nav').'</div>'.
  62  
  63                      n.n.hed('<a href="#xml-tags" onclick="toggleDisplay(\'xml-tags\'); return false;">'.gTxt('page_xml_hed').'</a>'
  64                      , 3, ' class="plain"').
  65                          n.'<div id="xml-tags" class="toggle" style="display:none">'.taglinks('page_xml').'</div>'.
  66  
  67                      n.n.hed('<a href="#misc-tags" onclick="toggleDisplay(\'misc-tags\'); return false;">'.gTxt('page_misc_hed').'</a>'
  68                      , 3, ' class="plain"').
  69                          n.'<div id="misc-tags" class="toggle" style="display:none">'.taglinks('page_misc').'</div>'.
  70  
  71                      n.n.hed('<a href="#file-tags" onclick="toggleDisplay(\'file-tags\'); return false;">'.gTxt('page_file_hed').'</a>'
  72                      , 3, ' class="plain"').
  73                          n.'<div id="file-tags" class="toggle" style="display:none">'.taglinks('page_file').'</div>'
  74  
  75                  ,' class="column"').
  76  
  77                  tda(
  78                      page_edit_form($name)
  79                  , ' class="column"').
  80  
  81                  tda(
  82                      hed(gTxt('all_pages'), 2).
  83                      page_list($name)
  84                  , ' class="column"')
  85              ).
  86  
  87              endTable();
  88      }
  89  
  90  //-------------------------------------------------------------
  91  	function page_edit_form($name)
  92      {
  93          global $step;
  94          $html = safe_field('user_html','txp_page',"name='".doSlash($name)."'");
  95  
  96          $out[] = '<p>'.gTxt('you_are_editing_page').sp.strong($name).br.
  97                      '<textarea id="html" class="code" name="html" cols="84" rows="36">'.htmlspecialchars($html).'</textarea>'.br.
  98                      n.fInput('submit','save',gTxt('save'),'publish').
  99                      n.eInput('page').
 100                      n.sInput('page_save').
 101                      n.hInput('name',$name);
 102  
 103          $out[] =
 104                  n.'<label for="copy-page">'.gTxt('copy_page_as').'</label>'.sp.
 105                  n.fInput('text', 'newname', '', 'edit', '', '', '', '', 'copy-page').
 106                  n.fInput('submit','copy',gTxt('copy'),'smallerbox').'</p>';
 107          $out[] = 
 108                  n.'<script type="text/javascript">'.
 109                  n.'if(jQuery.browser.mozilla){$("#html").attr("spellcheck", false);}'.
 110                  n.'</script>';
 111          return form(join('',$out));
 112      }
 113  
 114  //-------------------------------------------------------------
 115  
 116  	function page_list($current)
 117      {
 118          $protected = safe_column('DISTINCT page', 'txp_section', '1=1') + array('error_default');
 119  
 120          $rs = safe_rows_start('name', 'txp_page', "1 order by name asc");
 121  
 122          while ($a = nextRow($rs))
 123          {
 124              extract($a);
 125  
 126              $link  = eLink('page', '', 'name', $name, $name);
 127              $dlink = !in_array($name, $protected) ? dLink('page', 'page_delete', 'name', $name) : '';
 128  
 129              $out[] = ($current == $name) ?
 130                  tr(td($name).td($dlink)) :
 131                  tr(td($link).td($dlink));
 132          }
 133  
 134          return startTable('list').join(n, $out).endTable();
 135      }
 136  
 137  //-------------------------------------------------------------
 138  
 139  	function page_delete()
 140      {
 141          $name  = ps('name');
 142          $count = safe_count('txp_section', "page = '".doSlash($name)."'");
 143  
 144          if ($name == 'error_default')
 145          {
 146              return page_edit();
 147          }
 148  
 149          if ($count)
 150          {
 151              $message = gTxt('page_used_by_section', array('{name}' => $name, '{count}' => $count));
 152          }
 153  
 154          else
 155          {
 156              safe_delete('txp_page', "name = '".doSlash($name)."'");
 157  
 158              $message = gTxt('page_deleted', array('{name}' => $name));
 159          }
 160  
 161          page_edit($message);
 162      }
 163  
 164  // -------------------------------------------------------------
 165  
 166  	function page_save()
 167      {
 168          extract(doSlash(gpsa(array('name', 'html', 'copy'))));
 169  
 170          if ($copy)
 171          {
 172              $newname = doSlash(trim(preg_replace('/[<>&"\']/', '', gps('newname'))));
 173  
 174              if ($newname and safe_field('name', 'txp_page', "name = '$newname'"))
 175              {
 176                  $message = gTxt('page_already_exists', array('{name}' => $newname));
 177              }
 178              elseif ($newname)
 179              {
 180                  safe_insert('txp_page', "name = '$newname', user_html = '$html'");
 181                  update_lastmod();
 182  
 183                  $message = gTxt('page_created', array('{name}' => $newname));
 184              }
 185              else
 186              {
 187                  $message = gTxt('page_name_invalid');
 188              }
 189  
 190               page_edit($message);
 191          }
 192  
 193          else
 194          {
 195              safe_update('txp_page', "user_html = '$html'", "name = '$name'");
 196  
 197              update_lastmod();
 198  
 199              $message = gTxt('page_updated', array('{name}' => $name));
 200  
 201              page_edit($message);
 202          }
 203      }
 204  
 205  //-------------------------------------------------------------
 206  	function taglinks($type)
 207      {
 208          return popTagLinks($type);
 209      }
 210  ?>


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