Добавляем свои иконки на панель управления Ubercart

Главные вкладки

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 29 сентября 2010 в 1:41

Недавно задался целью добавить свои иконки (по дефолту там только основные и уродские по виду) на так называемый dashboard, т.е страницу с адресом admin/store, а заодно и заменить таблицу на дивы

Поскольку прямой темизирующей функции, которая напрямую бы отвечала за добавление иконок я не нашёл, соорудил вот такое рабочее решение, которое позволяет довольно удобно добавлять свои иконки. Сниппет не претендует на особую элегантность - я не программист.

В template.php добавляем:

<?php

function НАЗВАНИЕВАШЕЙТЕМЫ_uc_admin_dashboard($type$menus) {  
  
$output '<div class="uc-store-admin-table">';
  
$panel 0;
  if (
is_array($menus)) {
    foreach (
$menus as $menu) {
      
$panel++;
      
$panel_title $menu['title'];
      
$href $menu['href'];      
      list(
$img_name, ) = explode('/'$href0);
      
$img_name administrator_id_safe($img_name);
      
$img_path path_to_theme() . '/images/admin-dashboard/' $img_name '.png';
      if (
file_exists($img_path)) {
      
$dash_img theme_image($img_path$panel_title$panel_title$attributes = array ('class' => 'admin-dashboard'), FALSE);
      } else {
      
$dash_img '';
      }  
      
$panel_links theme('admin_block_content'system_admin_menu_block(menu_get_item($menu['href'])));
      
$panel_table '<div class="panel-title">'l($menu['title'], $menu['href']) .'</div>';
      
$panel_table .= $dash_img;
      if (
strlen($panel_links) > 0) {
      
$panel_table .= '<div class="panel-links" style="'$disp .'">'$panel_links .'</div>';
      }
      
$output .= '<div class="uc-store-admin-panel" id="panel-'$panel .'">'$panel_table .'</div>';
    }
  }
  
$output .= '</div>';
  return 
$output;
}

?>

Как видно, это стандартная функция темизации дашборда уберкарта, таблицы заменены дивами, выброшены условия по режиму отображения (соответствующие настройки отображения дашборда я скрыл через form_alter - по мне это лишнее)

Собственно идея состоит в том, что берётся основная ссылка в группе ссылок, её URL потрошится на части , которые образуют название файла иконки. Иконки должны лежать в папочке images/admin-dashboard/. Если иконка с соответствующим URL названием есть в этой папочке, она вставляется в соответствующую группу ссылок

Пример:

Группа ссылок "Товары", родительский пункт имеет URL admin/store/products, следовательно, чтобы добавить иконку в группу ссылок "Товары", нам нужно положить в папочку images/admin-dashboard картинку с названием admin-store-products.png

Ну и так далее

Комментарии