home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Blogs / wordpress2.6.exe / wordpress2.6 / wp-admin / options-permalink.php < prev    next >
Encoding:
PHP Script  |  2008-07-17  |  7.6 KB  |  194 lines

  1. <?php
  2. require_once('admin.php');
  3.  
  4. $title = __('Permalink Settings');
  5. $parent_file = 'options-general.php';
  6.  
  7. function add_js() {
  8. ?>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. function GetElementsWithClassName(elementName, className) {
  12. var allElements = document.getElementsByTagName(elementName);
  13. var elemColl = new Array();
  14. for (i = 0; i < allElements.length; i++) {
  15. if (allElements[i].className == className) {
  16. elemColl[elemColl.length] = allElements[i];
  17. }
  18. }
  19. return elemColl;
  20. }
  21.  
  22. function upit() {
  23. var inputColl = GetElementsWithClassName('input', 'tog');
  24. var structure = document.getElementById('permalink_structure');
  25. var inputs = '';
  26. for (i = 0; i < inputColl.length; i++) {
  27. if ( inputColl[i].checked && inputColl[i].value != '') {
  28. inputs += inputColl[i].value + ' ';
  29. }
  30. }
  31. inputs = inputs.substr(0,inputs.length - 1);
  32. if ( 'custom' != inputs )
  33. structure.value = inputs;
  34. }
  35.  
  36. function blurry() {
  37. if (!document.getElementById) return;
  38.  
  39. var structure = document.getElementById('permalink_structure');
  40. structure.onfocus = function () { document.getElementById('custom_selection').checked = 'checked'; }
  41.  
  42. var aInputs = document.getElementsByTagName('input');
  43.  
  44. for (var i = 0; i < aInputs.length; i++) {
  45. aInputs[i].onclick = aInputs[i].onkeyup = upit;
  46. }
  47. }
  48.  
  49. window.onload = blurry;
  50. //]]>
  51. </script>
  52. <?php
  53. }
  54. add_filter('admin_head', 'add_js');
  55.  
  56. include('admin-header.php');
  57.  
  58. $home_path = get_home_path();
  59.  
  60. if ( isset($_POST['permalink_structure']) || isset($_POST['category_base']) ) {
  61.     check_admin_referer('update-permalink');
  62.  
  63.     if ( isset($_POST['permalink_structure']) ) {
  64.         $permalink_structure = $_POST['permalink_structure'];
  65.         if (! empty($permalink_structure) )
  66.             $permalink_structure = preg_replace('#/+#', '/', '/' . $_POST['permalink_structure']);
  67.         $wp_rewrite->set_permalink_structure($permalink_structure);
  68.     }
  69.  
  70.     if ( isset($_POST['category_base']) ) {
  71.         $category_base = $_POST['category_base'];
  72.         if (! empty($category_base) )
  73.             $category_base = preg_replace('#/+#', '/', '/' . $_POST['category_base']);
  74.         $wp_rewrite->set_category_base($category_base);
  75.     }
  76.  
  77.     if ( isset($_POST['tag_base']) ) {
  78.         $tag_base = $_POST['tag_base'];
  79.         if (! empty($tag_base) )
  80.             $tag_base = preg_replace('#/+#', '/', '/' . $_POST['tag_base']);
  81.         $wp_rewrite->set_tag_base($tag_base);
  82.     }
  83. }
  84.  
  85. $permalink_structure = get_option('permalink_structure');
  86. $category_base = get_option('category_base');
  87. $tag_base = get_option( 'tag_base' );
  88.  
  89. if ( (!file_exists($home_path.'.htaccess') && is_writable($home_path)) || is_writable($home_path.'.htaccess') )
  90.     $writable = true;
  91. else
  92.     $writable = false;
  93.  
  94. if ($wp_rewrite->using_index_permalinks())
  95.     $usingpi = true;
  96. else
  97.     $usingpi = false;
  98.  
  99. $wp_rewrite->flush_rules();
  100. ?>
  101.  
  102. <?php if (isset($_POST['submit'])) : ?>
  103. <div id="message" class="updated fade"><p><?php
  104. if ( $permalink_structure && !$usingpi && !$writable )
  105.     _e('You should update your .htaccess now.');
  106. else
  107.     _e('Permalink structure updated.');
  108. ?></p></div>
  109. <?php endif; ?>
  110.  
  111. <div class="wrap">
  112.   <h2><?php _e('Customize Permalink Structure') ?></h2>
  113. <form name="form" action="options-permalink.php" method="post">
  114. <?php wp_nonce_field('update-permalink') ?>
  115.   <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>
  116.  
  117. <?php
  118. $prefix = '';
  119.  
  120. if ( ! got_mod_rewrite() )
  121.     $prefix = '/index.php';
  122.  
  123. $structures = array(
  124.     '',
  125.     $prefix . '/%year%/%monthnum%/%day%/%postname%/',
  126.     $prefix . '/%year%/%monthnum%/%postname%/',
  127.     $prefix . '/archives/%post_id%'
  128.     );
  129. ?>
  130. <h3><?php _e('Common settings'); ?></h3>
  131. <table class="form-table">
  132.     <tr>
  133.         <th><label><input name="selection" type="radio" value="" class="tog" <?php checked('', $permalink_structure); ?> /> <?php _e('Default'); ?></label></th>
  134.         <td><code><?php echo get_option('home'); ?>/?p=123</code></td>
  135.     </tr>
  136.     <tr>
  137.         <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>
  138.         <td><code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/sample-post/'; ?></code></td>
  139.     </tr>
  140.     <tr>
  141.         <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>
  142.         <td><code><?php echo get_option('home') . $prefix . '/' . date('Y') . '/' . date('m') . '/sample-post/'; ?></code></td>
  143.     </tr>
  144.     <tr>
  145.         <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>
  146.         <td><code><?php echo get_option('home') . $prefix  ; ?>/archives/123</code></td>
  147.     </tr>
  148.     <tr>
  149.         <th>
  150.             <label><input name="selection" id="custom_selection" type="radio" value="custom" class="tog"
  151.             <?php if ( !in_array($permalink_structure, $structures) ) { ?>
  152.             checked="checked"
  153.             <?php } ?>
  154.              />
  155.             <?php _e('Custom Structure'); ?>
  156.             </label>
  157.         </th>
  158.         <td>
  159.             <input name="permalink_structure" id="permalink_structure" type="text" class="code" style="width: 60%;" value="<?php echo attribute_escape($permalink_structure); ?>" size="50" />
  160.         </td>
  161.     </tr>
  162. </table>
  163.  
  164. <h3><?php _e('Optional'); ?></h3>
  165. <?php if ($is_apache) : ?>
  166.     <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/topics/uncategorized/</code>. If you leave these blank the defaults will be used.') ?></p>
  167. <?php else : ?>
  168.     <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>
  169. <?php endif; ?>
  170.  
  171. <table class="form-table">
  172.     <tr>
  173.         <th><label for="category_base"><?php _e('Category base'); ?></label></th>
  174.         <td><input name="category_base" id="category_base" type="text" class="code"  value="<?php echo attribute_escape($category_base); ?>" size="30" /></td>
  175.     </tr>
  176.     <tr>
  177.         <th><label for="tag_base"><?php _e('Tag base'); ?></label></th>
  178.         <td><input name="tag_base" id="tag_base" type="text" class="code"  value="<?php echo attribute_escape($tag_base); ?>" size="30" /></td>
  179.     </tr>
  180. </table>
  181. <p class="submit"><input type="submit" name="submit" class="button" value="<?php _e('Save Changes') ?>" /></p>
  182.   </form>
  183. <?php if ( $permalink_structure && !$usingpi && !$writable ) : ?>
  184.   <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>
  185. <form action="options-permalink.php" method="post">
  186. <?php wp_nonce_field('update-permalink') ?>
  187.     <p><textarea rows="5" style="width: 98%;" name="rules" id="rules"><?php echo wp_specialchars($wp_rewrite->mod_rewrite_rules()); ?></textarea></p>
  188. </form>
  189. <?php endif; ?>
  190.  
  191. </div>
  192.  
  193. <?php require('./admin-footer.php'); ?>
  194.