[ Index ]

PHP Cross Reference of Textpattern 4.0.8

title

Body

[close]

/textpattern/include/ -> txp_form.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 of the Textpattern license agreement
  11  
  12  $HeadURL: https://textpattern.googlecode.com/svn/releases/4.0.8/source/textpattern/include/txp_form.php $
  13  $LastChangedRevision: 3069 $
  14  
  15  */
  16  
  17      if (!defined('txpinterface')) die('txpinterface is undefined.');
  18  
  19      global $vars;
  20      $vars = array('Form','type','name','savenew','oldname');
  21      $essential_forms = array('comments','comments_display','comment_form','default','Links','files');
  22  
  23      if ($event == 'form') {
  24          require_privs('form');
  25  
  26          if(!$step or !in_array($step, array('form_list','form_create','form_delete','form_edit','form_multi_edit','form_save'))){
  27              form_edit();
  28          } else $step();
  29      }
  30  
  31  // -------------------------------------------------------------
  32  	function form_list($curname)
  33      {
  34          global $step,$essential_forms;
  35          $out[] = startTable('list');
  36          $out[] = tr(tda(sLink('form','form_create',gTxt('create_new_form')),' colspan="3" style="height:30px"'));
  37  
  38          $out[] = assHead('form','type','');
  39  
  40          $methods = array('delete'=>gTxt('delete'));
  41  
  42  
  43          $rs = safe_rows_start("*", "txp_form", "1 order by type asc, name asc");
  44  
  45          if ($rs) {
  46              while ($a = nextRow($rs)){
  47                  extract($a);
  48                      $editlink = ($curname!=$name)
  49                      ?    eLink('form','form_edit','name',$name,$name)
  50                      :    htmlspecialchars($name);
  51                      $modbox = (!in_array($name, $essential_forms))
  52                      ?    '<input type="checkbox" name="selected_forms[]" value="'.$name.'" />'
  53                      :    sp;
  54                  $out[] = tr(td($editlink).td(small($type)).td($modbox));
  55              }
  56  
  57              $out[] = endTable();
  58              $out[] = eInput('form').sInput('form_multi_edit');
  59              $out[] = graf(selectInput('edit_method',$methods,'',1).sp.gTxt('selected').sp.
  60                  fInput('submit','form_multi_edit',gTxt('go'),'smallerbox')
  61                  , ' align="right"');
  62  
  63              return form( join('',$out),'',"verify('".gTxt('are_you_sure')."')" );
  64          }
  65      }
  66  
  67  // -------------------------------------------------------------
  68  
  69  	function form_multi_edit()
  70      {
  71          global $essential_forms;
  72  
  73          $method = ps('edit_method');
  74          $forms = ps('selected_forms');
  75  
  76          if ($forms and is_array($forms))
  77          {
  78              if ($method == 'delete')
  79              {
  80                  foreach ($forms as $name)
  81                  {
  82                      if (!in_array($name, $essential_forms) && form_delete($name))
  83                      {
  84                          $deleted[] = $name;
  85                      }
  86                  }
  87  
  88                  $message = gTxt('forms_deleted', array('{list}' => join(', ', $deleted)));
  89  
  90                  form_edit($message);
  91              }
  92          }
  93  
  94          else
  95          {
  96              form_edit();
  97          }
  98      }
  99  
 100  // -------------------------------------------------------------
 101  	function form_create()
 102      {
 103          form_edit();
 104      }
 105  
 106  // -------------------------------------------------------------
 107  	function form_edit($message='')
 108      {
 109          global $step,$essential_forms;
 110          pagetop(gTxt('edit_forms'),$message);
 111  
 112          extract(gpsa(array('Form','name','type')));
 113          $name = trim(preg_replace('/[<>&"\']/', '', $name));
 114  
 115          if ($step=='form_create') {
 116              $inputs = fInput('submit','savenew',gTxt('save_new'),'publish').
 117                  eInput("form").sInput('form_save');
 118          } else {
 119              $name = (!$name or $step=='form_delete') ? 'default' : $name;
 120              $rs = safe_row("*", "txp_form", "name='".doSlash($name)."'");
 121  //            if ($rs)
 122   {
 123                  extract($rs);
 124                  $inputs = fInput('submit','save',gTxt('save'),'publish').
 125                      eInput("form").sInput('form_save').hInput('oldname',$name);
 126              }
 127          }
 128  
 129          if (!in_array($name, $essential_forms))
 130              $changename = graf(gTxt('form_name').br.fInput('text','name',$name,'edit','','',15));
 131          else
 132              $changename = graf(gTxt('form_name').br.tag($name, 'em').hInput('name',$name));
 133  
 134          $out =
 135              startTable('edit').
 136              tr(
 137                  tdtl(
 138                      hed(gTxt('tagbuilder'), 2).
 139  
 140                      hed('<a href="#article-tags" onclick="toggleDisplay(\'article-tags\'); return false;">'.gTxt('articles').'</a>'.
 141                          sp.popHelp('form_articles'), 3, ' class="plain"').
 142                          '<div id="article-tags" class="toggle on" style="display:block">'.popTagLinks('article').'</div>'.
 143  
 144                      hed('<a href="#link-tags" onclick="toggleDisplay(\'link-tags\'); return false;">'.gTxt('links').'</a>'.
 145                          sp.popHelp('form_place_link'), 3, ' class="plain"').
 146                          '<div id="link-tags" class="toggle" style="display:none">'.popTagLinks('link').'</div>'.
 147  
 148                      hed('<a href="#comment-tags" onclick="toggleDisplay(\'comment-tags\'); return false;">'.gTxt('comments').'</a>'.
 149                          sp.popHelp('form_comments'), 3, ' class="plain"').
 150                          '<div id="comment-tags" class="toggle" style="display:none">'.popTagLinks('comment').'</div>'.
 151  
 152                      hed('<a href="#comment-detail-tags" onclick="toggleDisplay(\'comment-detail-tags\'); return false;">'.gTxt('comment_details').'</a>'.
 153                          sp.popHelp('form_comment_details'), 3, ' class="plain"').
 154                          '<div id="comment-detail-tags" class="toggle" style="display:none">'.popTagLinks('comment_details').'</div>'.
 155  
 156                      hed('<a href="#comment-form-tags" onclick="toggleDisplay(\'comment-form-tags\'); return false;">'.gTxt('comment_form').'</a>'.
 157                          sp.popHelp('form_comment_form'), 3, ' class="plain"').
 158                          '<div id="comment-form-tags" class="toggle" style="display:none">'.popTagLinks('comment_form').'</div>'.
 159  
 160                      hed('<a href="#search-result-tags" onclick="toggleDisplay(\'search-result-tags\'); return false;">'.gTxt('search_results_form').'</a>'.
 161                          sp.popHelp('form_search_results'), 3, ' class="plain"').
 162                          '<div id="search-result-tags" class="toggle" style="display:none">'.popTagLinks('search_result').'</div>'.
 163  
 164                      hed('<a href="#file-tags" onclick="toggleDisplay(\'file-tags\'); return false;">'.gTxt('file_download_tags').'</a>'.
 165                          sp.popHelp('form_file_download_tags'), 3, ' class="plain"').
 166                          '<div id="file-tags" class="toggle" style="display:none">'.popTagLinks('file_download').'</div>'.
 167  
 168                      hed('<a href="#category-tags" onclick="toggleDisplay(\'category-tags\'); return false;">'.gTxt('category_tags').'</a>'.
 169                          sp.popHelp('form_category_tags'), 3, ' class="plain"').
 170                          '<div id="category-tags" class="toggle" style="display:none">'.popTagLinks('category').'</div>'.
 171  
 172                      hed('<a href="#section-tags" onclick="toggleDisplay(\'section-tags\'); return false;">'.gTxt('section_tags').'</a>'.
 173                          sp.popHelp('form_section_tags'), 3, ' class="plain"').
 174                          '<div id="section-tags" class="toggle" style="display:none">'.popTagLinks('section').'</div>'
 175                          ).
 176                  tdtl(
 177                      '<form action="index.php" method="post">'.
 178                          '<textarea id="form" class="code" name="Form" cols="60" rows="20">'.htmlspecialchars($Form).'</textarea>'.
 179  
 180                      $changename.
 181  
 182                      graf(gTxt('form_type').br.
 183                          formtypes($type)).
 184                      graf(gTxt('only_articles_can_be_previewed')).
 185                      fInput('submit','form_preview',gTxt('preview'),'smallbox').
 186                      graf($inputs).
 187                      '</form>'
 188  
 189                  ).
 190                  tdtl(
 191                      form_list($name)
 192                  )
 193              ).endTable().
 194              n.'<script type="text/javascript">'.
 195              n.'if(jQuery.browser.mozilla){$("#form").attr("spellcheck", false);}'.
 196              n.'</script>';
 197  
 198          echo $out;
 199      }
 200  
 201  // -------------------------------------------------------------
 202  
 203  	function form_save()
 204      {
 205          global $vars, $step, $essential_forms;
 206  
 207          extract(doSlash(gpsa($vars)));
 208          $name = doSlash(trim(preg_replace('/[<>&"\']/', '', gps('name'))));
 209  
 210          if (!$name)
 211          {
 212              $step = 'form_create';
 213              $message = gTxt('form_name_invalid');
 214  
 215              return form_edit($message);
 216          }
 217  
 218          if (!in_array($type, array('article','category','comment','file','link','misc','section')))
 219          {
 220              $step = 'form_create';
 221              $message = gTxt('form_type_missing');
 222  
 223              return form_edit($message);
 224          }
 225  
 226          if ($savenew)
 227          {
 228              $exists = safe_field('name', 'txp_form', "name = '$name'");
 229  
 230              if ($exists)
 231              {
 232                  $step = 'form_create';
 233                  $message = gTxt('form_already_exists', array('{name}' => $name));
 234  
 235                  return form_edit($message);
 236              }
 237  
 238              safe_insert('txp_form', "Form = '$Form', type = '$type', name = '$name'");
 239  
 240              update_lastmod();
 241  
 242              $message = gTxt('form_created', array('{name}' => $name));
 243  
 244              return form_edit($message);
 245          }
 246  
 247          safe_update('txp_form', "Form = '$Form', type = '$type', name = '$name'", "name = '$oldname'");
 248  
 249          update_lastmod();
 250  
 251          $message = gTxt('form_updated', array('{name}' => $name));
 252  
 253          form_edit($message);
 254      }
 255  
 256  // -------------------------------------------------------------
 257  	function form_delete($name)
 258      {
 259          global $essential_forms;
 260          if (in_array($name, $essential_forms)) return false;
 261          $name = doSlash($name);
 262          if (safe_delete("txp_form","name='$name'")) {
 263              return true;
 264          }
 265          return false;
 266      }
 267  
 268  // -------------------------------------------------------------
 269  	function formTypes($type)
 270      {
 271           $types = array(''=>'','article'=>'article','category'=>'category','comment'=>'comment',
 272               'file'=>'file','link'=>'link','misc'=>'misc','section'=>'section');
 273          return selectInput('type',$types,$type);
 274      }
 275  
 276  ?>


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