*/
class WP_Filesystem_Base {
/**
- * Whether to display debug data for the connection or not.
+ * Whether to display debug data for the connection.
*
* @since 2.5
* @access public
*/
var $verbose = false;
/**
- * Cached list of local filepaths to maped remote filepaths.
+ * Cached list of local filepaths to mapped remote filepaths.
*
* @since 2.7
* @access private
* @return string The location of the remote path.
*/
function wp_themes_dir() {
- return $this->wp_content_dir() . '/themes';
+ return $this->wp_content_dir() . 'themes/';
+ }
+ /**
+ * Returns the path on the remote filesystem of WP_LANG_DIR
+ *
+ * @since 3.2.0
+ * @access public
+ *
+ * @return string The location of the remote path.
+ */
+ function wp_lang_dir() {
+ return $this->find_folder(WP_LANG_DIR);
}
/**
function find_folder($folder) {
if ( strpos($this->method, 'ftp') !== false ) {
- $constant_overrides = array( 'FTP_BASE' => ABSPATH, 'FTP_CONTENT_DIR' => WP_CONTENT_DIR, 'FTP_PLUGIN_DIR' => WP_PLUGIN_DIR );
+ $constant_overrides = array( 'FTP_BASE' => ABSPATH, 'FTP_CONTENT_DIR' => WP_CONTENT_DIR, 'FTP_PLUGIN_DIR' => WP_PLUGIN_DIR, 'FTP_LANG_DIR' => WP_LANG_DIR );
foreach ( $constant_overrides as $constant => $dir )
if ( defined($constant) && $folder === $dir )
return trailingslashit(constant($constant));
} elseif ( 'direct' == $this->method ) {
+ $folder = str_replace('\\', '/', $folder); //Windows path sanitisation
return trailingslashit($folder);
}
- $folder = preg_replace('|^([a-z]{1}):|i', '', $folder); //Strip out windows driveletter if its there.
- $folder = str_replace('\\', '/', $folder); //Windows path sanitiation
+ $folder = preg_replace('|^([a-z]{1}):|i', '', $folder); //Strip out windows drive letter if it's there.
+ $folder = str_replace('\\', '/', $folder); //Windows path sanitisation
if ( isset($this->cache[ $folder ] ) )
return $this->cache[ $folder ];
$this->cache[ $folder ] = $folder;
return $folder;
}
- if( $return = $this->search_for_folder($folder) )
+ if ( $return = $this->search_for_folder($folder) )
$this->cache[ $folder ] = $return;
return $return;
}
}
}
- //Only check this as a last resort, to prevent locating the incorrect install. All above proceeedures will fail quickly if this is the right branch to take.
+ //Only check this as a last resort, to prevent locating the incorrect install. All above procedures will fail quickly if this is the right branch to take.
if (isset( $files[ $last_path ] ) ) {
if ( $this->verbose )
printf( __('Found %s') . '<br/>', $base . $last_path );
return trailingslashit($base . $last_path);
}
if ( $loop )
- return false;//Prevent tihs function looping again.
- //As an extra last resort, Change back to / if the folder wasnt found. This comes into effect when the CWD is /home/user/ but WP is at /var/www/.... mainly dedicated setups.
+ return false; //Prevent this function from looping again.
+ //As an extra last resort, Change back to / if the folder wasn't found. This comes into effect when the CWD is /home/user/ but WP is at /var/www/.... mainly dedicated setups.
return $this->search_for_folder($folder, '/', true);
}
$info = 'd';
elseif (($perms & 0x2000) == 0x2000) // Character special
$info = 'c';
- elseif (($perms & 0x1000) == 0x1000)// FIFO pipe
+ elseif (($perms & 0x1000) == 0x1000) // FIFO pipe
$info = 'p';
else // Unknown
$info = 'u';
$legal = array('', 'w', 'r', 'x', '-');
$attarray = preg_split('//', $mode);
- for($i=0; $i < count($attarray); $i++)
- if($key = array_search($attarray[$i], $legal))
+ for ($i=0; $i < count($attarray); $i++)
+ if ($key = array_search($attarray[$i], $legal))
$realmode .= $legal[$key];
$mode = str_pad($realmode, 9, '-');
return (bool) preg_match('|[^\x20-\x7E]|', $text); //chr(32)..chr(127)
}
}
-
-?>