[ Index ] [ Index ]     [ Classes ]     [ Functions ]     [ Variables ]     [ Constants ]

PHP Cross Reference of TXP stable 4.0.6

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: http://svn.textpattern.com/releases/4.0.6/source/textpattern/include/txp_form.php $
  13  $LastChangedRevision: 1913 $
  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 (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">'.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" 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" 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" 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" 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" 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" style="display: none;">'.popTagLinks('file_download').'</div>'
 167                  ).
 168                  tdtl(
 169                      '<form action="index.php" method="post">'.
 170                          '<textarea id="form" class="code" name="Form" cols="60" rows="20">'.htmlspecialchars($Form).'</textarea>'.
 171  
 172                      $changename.
 173  
 174                      graf(gTxt('form_type').br.
 175                          formtypes($type)).
 176                      graf(gTxt('only_articles_can_be_previewed')).
 177                      fInput('submit','form_preview',gTxt('preview'),'smallbox').
 178                      graf($inputs).
 179                      '</form>'
 180  
 181                  ).
 182                  tdtl(
 183                      form_list($name)
 184                  )
 185              ).endTable();
 186              
 187          echo $out;
 188      }
 189  
 190  // -------------------------------------------------------------
 191  
 192  	function form_save()
 193      {
 194          global $vars, $step, $essential_forms;
 195  
 196          extract(doSlash(gpsa($vars)));
 197          $name = doSlash(trim(preg_replace('/[<>&"\']/', '', gps('name'))));
 198  
 199          if (!$name)
 200          {
 201              $step = 'form_create';
 202              $message = gTxt('form_name_invalid');
 203  
 204              return form_edit($message);
 205          }
 206  
 207          if (!in_array($type, array('article','comment','link','misc','file')))
 208          {
 209              $step = 'form_create';
 210              $message = gTxt('form_type_missing');
 211  
 212              return form_edit($message);
 213          }
 214  
 215          if ($savenew)
 216          {
 217              $exists = safe_field('name', 'txp_form', "name = '$name'");
 218  
 219              if ($exists)
 220              {
 221                  $step = 'form_create';
 222                  $message = gTxt('form_already_exists', array('{name}' => $name));
 223  
 224                  return form_edit($message);
 225              }
 226  
 227              safe_insert('txp_form', "Form = '$Form', type = '$type', name = '$name'");
 228  
 229              update_lastmod();
 230  
 231              $message = gTxt('form_created', array('{name}' => $name));
 232  
 233              return form_edit($message);
 234          }
 235  
 236          safe_update('txp_form', "Form = '$Form', type = '$type', name = '$name'", "name = '$oldname'");
 237  
 238          update_lastmod();
 239  
 240          $message = gTxt('form_updated', array('{name}' => $name));
 241  
 242          form_edit($message);
 243      }
 244  
 245  // -------------------------------------------------------------
 246  	function form_delete($name)
 247      {
 248          global $essential_forms;
 249          if (in_array($name, $essential_forms)) return false;
 250          $name = doSlash($name);
 251          if (safe_delete("txp_form","name='$name'")) {
 252              return true;
 253          }
 254          return false;
 255      }
 256      
 257  // -------------------------------------------------------------
 258  	function formTypes($type) 
 259      {
 260           $types = array(''=>'','article'=>'article','comment'=>'comment','link'=>'link','misc'=>'misc','file'=>'file'); 
 261          return selectInput('type',$types,$type);
 262      }
 263  
 264  ?>


Generated: Mon Feb 18 03:42:45 2008 Cross-referenced by PHPXref 0.7