Projects : mp-wp : mp-wp_genesis
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'); ?> |