Si trabajas realizando proyectos en WordPress en el que el código se aloja en un servidor usando SVN, una forma sencilla de actualizar tu theme con los últimos cambios es mediante este sencillo y no-seguro plugin.
El plugin añade una opción de menú al Settings del Dashboard de WP, el cual te servirá para indicar el servidor SVN, usuario, contraseña y el path que corresponde a la carpeta themes de WP. El plugin se conectará al repositorio SVN y recuperará las carpetas que se encuentran en el path anterior y comprobará si las carpetas corresponden a themes instalados, mostrarás una lista con los themes encontrados junto a un botón que permite actualizar todo el theme.
Digo que no es seguro porque no controlo los permisos de los usuarios ni otras cuestiones, pero si estás interesado en ello supongo que no te costará mucho meterle mano al código:
// Adding Admin menu
if ( is_admin() ){
add_action('admin_menu', 'svn_update_menu');
add_action( 'admin_init', 'svn_update_register_settings' );
}
function svn_update_register_settings() {
register_setting( 'svn_up_option-group', 'svn_username' );
register_setting( 'svn_up_option-group', 'svn_password' );
register_setting( 'svn_up_option-group', 'svn_repository' );
register_setting( 'svn_up_option-group', 'svn_theme_path' );
if ($_GET['page'] == 'svn-update/svn-update.php') {
require ('phpsvnclient/phpsvnclient.php');
$phpsvnclient = new phpsvnclient(get_option('svn_repository'), get_option('svn_username'), get_option('svn_password'));
$files = $phpsvnclient->getDirectoryFiles('/');
$svn_themes = array();
$themes = array();
foreach(get_themes() as $k=>$t) $themes[$t['Template']] = array($k, $t["Template Dir"]);
if (is_array($files)) {
foreach($files as $f) {
if ($f['type'] == 'directory') {
if (isset($themes[$f['path']])) $svn_themes[$f['path']] = $themes[$f['path']];
}
}
}
update_option('svn_themes', $svn_themes);
if (isset($_GET['svn_update'])) {
$path = $_GET['svn_update'];
$theme_path = WP_CONTENT_DIR . '/themes/';
$files = $phpsvnclient->getDirectoryFiles($path);
foreach($files as $f) {
if ($f['type'] == 'file') {
file_put_contents($theme_path.$f['path'], $phpsvnclient->getFile($f['path']));
}
}
add_action('admin_notices', 'showSVNUpdated');
}
}
}
function showSVNUpdated() {
echo '';
}
function svn_update_menu() {
add_options_page('SVN Update Options', 'SVN Update', 8, __FILE__, 'svn_update_options');
}
function svn_update_options() {
?>
Available Themes
No themes found in SVN repository instaled in WordPress';
} else {
echo '';
foreach($themes as $k=>$t) {
echo '- /'.$k.' => '.$t[0].' Update
';
}
echo '
';
}
?>
Este plugin necesita la librería PHP SVN Client para acceder al SVN, tan solo hay que meterlo en el mismo directorio que el plugin. Le faltan muchas cosas al plugin, pero ni tengo ganas ni tengo tiempo.
Yo uso otro funcion como reemplazo de var_dump (extraida de CakePHP) que aunque no tiene colores presenta la informacion bastante ordenada:
[code]
function debug($var = false, $showFrom = true) {
if ($showFrom) {
$calledFrom = debug_backtrace();
$file = str_replace(‘\\’, ‘/’, $calledFrom[0][‘file’]);
echo ‘‘ . $file . ‘‘;
echo ‘ (line ‘ . $calledFrom[0][‘line’] . ‘)’;
}
echo “\n\n”;
$var = print_r($var, true);
echo $var . “\n\n”;
}
[/code]
Bueno la clase esta interesante y muy practica, gracias por publicar un post con la info.
Saludos.
Gracias Gabriel por el script.
Domingo, espero que te sea de utilidad
Yo suelo utilizar la función fb de FirePHP, un complemento de Firebug:
http://www.firephp.org/