Control Panel en otros idiomas

En dias anteriores habia instalado el modulo de control panel para que tenga una interaccion mas amigable de la administracion de drupal el cual funcionaba a toda maquina hasta que instale el modulo de multilenguaje i18n con el cual se danio todo es decir l a presentacion porque ya no aparecian los iconos personalizados para cada seccion en el control panel excepto el icono por defecto para lo cual buscando y buscando di con una solucion implementada en el sitio de drupal cabe destacar que esta correccion sirve para la version 5.x que es con la que estoy trabajando segun tengo entendido todavia no hay nada para la version 6.x en este sentido.

Bueno basta de palabreria y vamos con la solucion:

En la solucion debemos ubicar la funcion control_panel_view y reemplazarla con lo siguiente podran observar que se hace una comprobacion de que existe el modulo i18n.


function theme_controlpanel_panel_view($pid, $block = NULL) {
$content = '';
$menu = menu_get_menu();
$menu_visible = $menu['visible'];
$theme_path = path_to_theme() . '/controlpanel/' . variable_get('controlpanel_icon_size' . $block, '48x48');

if (file_exists($theme_path . '/control_panel_default.png')) {
$image_directory = $theme_path;
} else {
$image_directory = drupal_get_path('module', 'controlpanel') . '/images/' . variable_get('controlpanel_icon_size' . $block, '48x48');
}

$content .= '<div id="control-panel-' . $pid . '" class="control-panel">';
if (isset(
$menu_visible[$pid]) && $menu_visible[$pid]['children']) {
foreach (
$menu_visible[$pid]['children'] as $mid) {
if (
$menu_visible[$mid]['children'] && (variable_get('controlpanel_build_children' . $block, 0) != 0)) {
//do nothing
}
else {
$content .= '<div class="control-panel-item control-panel-icon-size-' . variable_get('controlpanel_icon_size' . $block, '48x48') . '">';
$content .= '<a href="' . url($menu_visible[$mid]['path']) . '">';
$working_path = drupal_get_path_alias($menu_visible[$mid]['path']);
if (
module_exists('i18n')) {
global
$i18n_langpath;
$current_lang = is_null($i18n_langpath) ? i18n_default_language() : $i18n_langpath;
$working_path_parts = explode('/', $working_path);
if (
$working_path_parts[0] == $current_lang) {
unset(
$working_path_parts[0]);
}
$working_path = implode('/', $working_path_parts);
}
if (
is_numeric(substr($working_path, strrpos($working_path, "/") + 1))) {
$working_path = substr($working_path, 0, strrpos($working_path, "/"));
}
$file_name = $image_directory . '/' . str_replace('/', '_', $working_path) . '.png';
//drupal_set_message($file_name);
if (file_exists($file_name)) {
$src = $file_name;
}
else {
$src = $image_directory . '/control_panel_default.png';
}
$content .= '<span style="display:block;">';
$content .= '<img src="' . base_path() . $src . '" alt="'. $menu_visible[$mid]['title'] .'" title="'. $menu_visible[$mid]['title'] .'" />';
$content .= '<br />' . $menu_visible[$mid]['title'];
$content .= '</span>';
$content .= '</a>';
$content .= '</div>';
}
}
}
$content .= '</div>';
return
$content;
}

Espero les sea de mucha ayuda y saludos.

Anuncios