home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Blogs / wordpress2.6.exe / wordpress2.6 / wp-admin / includes / misc.php < prev    next >
Encoding:
PHP Script  |  2008-07-02  |  4.4 KB  |  164 lines

  1. <?php
  2.  
  3. function got_mod_rewrite() {
  4.     $got_rewrite = apache_mod_loaded('mod_rewrite', true);
  5.     return apply_filters('got_rewrite', $got_rewrite);
  6. }
  7.  
  8. // Returns an array of strings from a file (.htaccess ) from between BEGIN
  9. // and END markers.
  10. function extract_from_markers( $filename, $marker ) {
  11.     $result = array ();
  12.  
  13.     if (!file_exists( $filename ) ) {
  14.         return $result;
  15.     }
  16.  
  17.     if ( $markerdata = explode( "\n", implode( '', file( $filename ) ) ));
  18.     {
  19.         $state = false;
  20.         foreach ( $markerdata as $markerline ) {
  21.             if (strpos($markerline, '# END ' . $marker) !== false)
  22.                 $state = false;
  23.             if ( $state )
  24.                 $result[] = $markerline;
  25.             if (strpos($markerline, '# BEGIN ' . $marker) !== false)
  26.                 $state = true;
  27.         }
  28.     }
  29.  
  30.     return $result;
  31. }
  32.  
  33. // Inserts an array of strings into a file (.htaccess ), placing it between
  34. // BEGIN and END markers.  Replaces existing marked info.  Retains surrounding
  35. // data.  Creates file if none exists.
  36. // Returns true on write success, false on failure.
  37. function insert_with_markers( $filename, $marker, $insertion ) {
  38.     if (!file_exists( $filename ) || is_writeable( $filename ) ) {
  39.         if (!file_exists( $filename ) ) {
  40.             $markerdata = '';
  41.         } else {
  42.             $markerdata = explode( "\n", implode( '', file( $filename ) ) );
  43.         }
  44.  
  45.         $f = fopen( $filename, 'w' );
  46.         $foundit = false;
  47.         if ( $markerdata ) {
  48.             $state = true;
  49.             foreach ( $markerdata as $n => $markerline ) {
  50.                 if (strpos($markerline, '# BEGIN ' . $marker) !== false)
  51.                     $state = false;
  52.                 if ( $state ) {
  53.                     if ( $n + 1 < count( $markerdata ) )
  54.                         fwrite( $f, "{$markerline}\n" );
  55.                     else
  56.                         fwrite( $f, "{$markerline}" );
  57.                 }
  58.                 if (strpos($markerline, '# END ' . $marker) !== false) {
  59.                     fwrite( $f, "# BEGIN {$marker}\n" );
  60.                     if ( is_array( $insertion ))
  61.                         foreach ( $insertion as $insertline )
  62.                             fwrite( $f, "{$insertline}\n" );
  63.                     fwrite( $f, "# END {$marker}\n" );
  64.                     $state = true;
  65.                     $foundit = true;
  66.                 }
  67.             }
  68.         }
  69.         if (!$foundit) {
  70.             fwrite( $f, "\n# BEGIN {$marker}\n" );
  71.             foreach ( $insertion as $insertline )
  72.                 fwrite( $f, "{$insertline}\n" );
  73.             fwrite( $f, "# END {$marker}\n" );
  74.         }
  75.         fclose( $f );
  76.         return true;
  77.     } else {
  78.         return false;
  79.     }
  80. }
  81.  
  82. /**
  83.  * Updates the htaccess file with the current rules if it is writable.
  84.  *
  85.  * Always writes to the file if it exists and is writable to ensure that we blank out old rules.
  86.  */
  87.  
  88. function save_mod_rewrite_rules() {
  89.     global $wp_rewrite;
  90.  
  91.     $home_path = get_home_path();
  92.     $htaccess_file = $home_path.'.htaccess';
  93.  
  94.     // If the file doesn't already exists check for write access to the directory and whether of not we have some rules.
  95.     // else check for write access to the file.
  96.     if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {
  97.         if ( got_mod_rewrite() ) {
  98.             $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );
  99.             return insert_with_markers( $htaccess_file, 'WordPress', $rules );
  100.         }
  101.     }
  102.  
  103.     return false;
  104. }
  105.  
  106. function update_recently_edited( $file ) {
  107.     $oldfiles = (array ) get_option( 'recently_edited' );
  108.     if ( $oldfiles ) {
  109.         $oldfiles = array_reverse( $oldfiles );
  110.         $oldfiles[] = $file;
  111.         $oldfiles = array_reverse( $oldfiles );
  112.         $oldfiles = array_unique( $oldfiles );
  113.         if ( 5 < count( $oldfiles ))
  114.             array_pop( $oldfiles );
  115.     } else {
  116.         $oldfiles[] = $file;
  117.     }
  118.     update_option( 'recently_edited', $oldfiles );
  119. }
  120.  
  121. // If siteurl or home changed, flush rewrite rules.
  122. function update_home_siteurl( $old_value, $value ) {
  123.     global $wp_rewrite;
  124.  
  125.     if ( defined( "WP_INSTALLING" ) )
  126.         return;
  127.  
  128.     // If home changed, write rewrite rules to new location.
  129.     $wp_rewrite->flush_rules();
  130. }
  131.  
  132. add_action( 'update_option_home', 'update_home_siteurl', 10, 2 );
  133. add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 );
  134.  
  135. function url_shorten( $url ) {
  136.     $short_url = str_replace( 'http://', '', stripslashes( $url ));
  137.     $short_url = str_replace( 'www.', '', $short_url );
  138.     if ('/' == substr( $short_url, -1 ))
  139.         $short_url = substr( $short_url, 0, -1 );
  140.     if ( strlen( $short_url ) > 35 )
  141.         $short_url = substr( $short_url, 0, 32 ).'...';
  142.     return $short_url;
  143. }
  144.  
  145. function wp_reset_vars( $vars ) {
  146.     for ( $i=0; $i<count( $vars ); $i += 1 ) {
  147.         $var = $vars[$i];
  148.         global $$var;
  149.  
  150.         if (!isset( $$var ) ) {
  151.             if ( empty( $_POST["$var"] ) ) {
  152.                 if ( empty( $_GET["$var"] ) )
  153.                     $$var = '';
  154.                 else
  155.                     $$var = $_GET["$var"];
  156.             } else {
  157.                 $$var = $_POST["$var"];
  158.             }
  159.         }
  160.     }
  161. }
  162.  
  163. ?>
  164.