[ Index ] |
PHP Cross Reference of Textpattern 4.0.8 |
[Summary view] [Print] [Text view]
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 ?>
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 |