| [ Index ] |
PHP Cross Reference of Wordpress 2.7.1 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Permalink settings administration panel. 4 * 5 * @package WordPress 6 * @subpackage Administration 7 */ 8 9 /** WordPress Administration Bootstrap */ 10 require_once ('admin.php'); 11 12 $title = __('Permalink Settings'); 13 $parent_file = 'options-general.php'; 14 15 /** 16 * Display JavaScript on the page. 17 * 18 * @package WordPress 19 * @subpackage Permalink_Settings_Panel 20 */ 21 function add_js() { 22 ?> 23 <script type="text/javascript"> 24 //<![CDATA[ 25 function GetElementsWithClassName(elementName, className) { 26 var allElements = document.getElementsByTagName(elementName); 27 var elemColl = new Array(); 28 for (i = 0; i < allElements.length; i++) { 29 if (allElements[i].className == className) { 30 elemColl[elemColl.length] = allElements[i]; 31 } 32 } 33 return elemColl; 34 } 35 36 function upit() { 37 var inputColl = GetElementsWithClassName('input', 'tog'); 38 var structure = document.getElementById('permalink_structure'); 39 var inputs = ''; 40 for (i = 0; i < inputColl.length; i++) { 41 if ( inputColl[i].checked && inputColl[i].value != '') { 42 inputs += inputColl[i].value + ' '; 43 } 44 } 45 inputs = inputs.substr(0,inputs.length - 1); 46 if ( 'custom' != inputs ) 47 structure.value = inputs; 48 } 49 50 function blurry() { 51 if (!document.getElementById) return; 52 53 var structure = document.getElementById('permalink_structure'); 54 structure.onfocus = function () { document.getElementById('custom_selection').checked = 'checked'; } 55 56 var aInputs = document.getElementsByTagName('input'); 57 58 for (var i = 0; i < aInputs.length; i++) { 59 aInputs[i].onclick = aInputs[i].onkeyup = upit; 60 } 61 } 62 63 window.onload = blurry; 64 //]]> 65 </script> 66 <?php 67 } 68 add_filter('admin_head', 'add_js'); 69 70 include ('admin-header.php'); 71 72 $home_path = get_home_path(); 73 74 if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) { 75 check_admin_referer('update-permalink'); 76 77 if ( isset($_POST['permalink_structure']) ) { 78 $permalink_structure = $_POST['permalink_structure']; 79 if (! empty($permalink_structure) ) 80 $permalink_structure = preg_replace('#/+#', '/', '/' . $_POST['permalink_structure']); 81 $wp_rewrite->set_permalink_structure($permalink_structure); 82 } 83 84 if ( isset($_POST['category_base']) ) { 85 $category_base = $_POST['category_base']; 86 if (! empty($category_base) ) 87 $category_base = preg_replace('#/+#', '/', '/' . $_POST['category_base']); 88 $wp_rewrite->set_category_base($category_base); 89 } 90 91 if ( isset($_POST['tag_base']) ) { 92 $tag_base = $_POST['tag_base']; 93 if (! empty($tag_base) ) 94 $tag_base = preg_replace('#/+#', '/', '/' . $_POST['tag_base']); 95 $wp_rewrite->set_tag_base($tag_base); 96 } 97 } 98 99 $permalink_structure = get_option('permalink_structure'); 100 $category_base = get_option('category_base'); 101 $tag_base = get_option( 'tag_base' ); 102 103 if ( (!file_exists($home_path.'.htaccess') && is_writable($home_path)) || is_writable($home_path.'.htaccess') ) 104 $writable = true; 105 else 106 $writable = false; 107 108 if ($wp_rewrite->using_index_permalinks()) 109 $usingpi = true; 110 else 111 $usingpi = false; 112 113 $wp_rewrite->flush_rules(); 114 ?> 115 116 <?php if (isset($_POST['submit'])) : ?> 117 <div id="message" class="updated fade"><p><?php 118 if ( $permalink_structure && !$usingpi && !$writable ) 119 _e('You should update your .htaccess now.'); 120 else 121 _e('Permalink structure updated.'); 122 ?></p></div> 123 <?php endif; ?> 124 125 <div class="wrap"> 126 <?php screen_icon(); ?> 127 <h2><?php echo wp_specialchars( $title ); ?></h2> 128 129 <form name="form" action="options-permalink.php" method="post"> 130 <?php wp_nonce_field('update-permalink') ?> 131 132 <p><?php _e('By default WordPress uses web <abbr title="Universal Resource Locator">URL</abbr>s which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href="http://codex.wordpress.org/Using_Permalinks">number of tags are available</a>, and here are some examples to get you started.'); ?></p> 133 134 <?php 135 $prefix = ''; 136 137 if ( ! got_mod_rewrite() ) 138 $prefix = '/index.php'; 139 140 $structures = array( 141 '', 142 $prefix . '/%year%/%monthnum%/%day%/%postname%/', 143 $prefix . '/%year%/%monthnum%/%postname%/', 144 $prefix . '/archives/%post_id%' 145 ); 146 ?> 147 <h3><?php _e('Common settings'); ?></h3> 148 <table class="form-table"> 149 <tr> 150 <th><label><input name="selection" type="radio" value="" class="tog" <?php checked('', $permalink_structure); ?> /> <?php _e('Default'); ?></label></th> 151 <td><code><?php echo get_option('home'); ?>/?p=123</code></td> 152 </tr> 153 <tr> 154 <th><label><input name="selection" type="radio" value="<?php echo $structures[1]; ?>" class="tog" <?php checked($structures[1], $permalink_structure); ?> /> <?php _e('Day and name'); ?></label></th> 155 <td><code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></td> 156 </tr> 157 <tr> 158 <th><label><input name="selection" type="radio" value="<?php echo $structures[2]; ?>" class="tog" <?php checked($structures[2], $permalink_structure); ?> /> <?php _e('Month and name'); ?></label></th> 159 <td><code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/sample-post/'; ?></code></td> 160 </tr> 161 <tr> 162 <th><label><input name="selection" type="radio" value="<?php echo $structures[3]; ?>" class="tog" <?php checked($structures[3], $permalink_structure); ?> /> <?php _e('Numeric'); ?></label></th> 163 <td><code><?php echo get_option('home') . $prefix ; ?>/archives/123</code></td> 164 </tr> 165 <tr> 166 <th> 167 <label><input name="selection" id="custom_selection" type="radio" value="custom" class="tog" 168 <?php if ( !in_array($permalink_structure, $structures) ) { ?> 169 checked="checked" 170 <?php } ?> 171 /> 172 <?php _e('Custom Structure'); ?> 173 </label> 174 </th> 175 <td> 176 <input name="permalink_structure" id="permalink_structure" type="text" value="<?php echo attribute_escape($permalink_structure); ?>" class="regular-text code" /> 177 </td> 178 </tr> 179 </table> 180 181 <h3><?php _e('Optional'); ?></h3> 182 <?php if ($is_apache) : ?> 183 <p><?php _e('If you like, you may enter custom structures for your category and tag <abbr title="Universal Resource Locator">URL</abbr>s here. For example, using <kbd>topics</kbd> as your category base would make your category links like <code>http://example.org/topics/uncategorized/</code>. If you leave these blank the defaults will be used.') ?></p> 184 <?php else : ?> 185 <p><?php _e('If you like, you may enter custom structures for your category and tag <abbr title="Universal Resource Locator">URL</abbr>s here. For example, using <code>topics</code> as your category base would make your category links like <code>http://example.org/index.php/topics/uncategorized/</code>. If you leave these blank the defaults will be used.') ?></p> 186 <?php endif; ?> 187 188 <table class="form-table"> 189 <tr> 190 <th><label for="category_base"><?php _e('Category base'); ?></label></th> 191 <td><input name="category_base" id="category_base" type="text" value="<?php echo attribute_escape($category_base); ?>" class="regular-text code" /></td> 192 </tr> 193 <tr> 194 <th><label for="tag_base"><?php _e('Tag base'); ?></label></th> 195 <td><input name="tag_base" id="tag_base" type="text" value="<?php echo attribute_escape($tag_base); ?>" class="regular-text code" /></td> 196 </tr> 197 <?php do_settings_fields('permalink', 'optional'); ?> 198 </table> 199 200 <?php do_settings_sections('permalink'); ?> 201 202 <p class="submit"> 203 <input type="submit" name="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> 204 </p> 205 </form> 206 <?php if ( $permalink_structure && !$usingpi && !$writable ) : ?> 207 <p><?php _e('If your <code>.htaccess</code> file were <a href="http://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn’t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all.') ?></p> 208 <form action="options-permalink.php" method="post"> 209 <?php wp_nonce_field('update-permalink') ?> 210 <p><textarea rows="6" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo wp_specialchars($wp_rewrite->mod_rewrite_rules()); ?></textarea></p> 211 </form> 212 <?php endif; ?> 213 214 </div> 215 216 <?php require ('./admin-footer.php'); ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Mar 23 16:23:02 2009 | Cross-referenced by PHPXref 0.7 |