TWORZYMY STRONY WWW, DEDYKOWANE BAZY DANYCH.

ADMINISTRUJEMY SIECIAMI KOMPUTEROWYMI.

 

Zmiana ikony RSS w Drupalu

Czasami podczas tworzenia kolejnej skórki do drupala, zachodzi potrzeba podmiany ikony RSS.
Oczywiście można to zrobić w sposób "brzydki" i po prostu znaleźć położenie tej ikony w instalacji systemu (plik /misc/feed.png), jest to jednak rozwiązanie mało satysfakcjonujące zarówno programistę jak i administratora strony - bo byle aktualizacja CMS'a i znów trzeba pamiętać o podmianie grafik.
 
Na szczeście skórki drupala, umozliwiają w prosty sposób zmianę ścieżki do takiego pliku.
Wystarczy znaleźć funkcję theme_feed_icon (można i należy posiłkować się tutaj stroną http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_feed_icon/7), dla właściwej wersji drupala i ją skopiować do pliku template.php w naszej skórce, nastepnie lekko ją zmieniając.
 
Źródłowo dla Drupala 7 funkcja ta wygląda tak:
 
function theme_feed_icon($variables) {
  $text = t('Subscribe to @feed-title', array('@feed-title' => $variables['title']));
  if ($image = theme('image', array('path' => 'misc/feed.png', 'width' => 16, 'height' => 16, 'alt' => $text))) {
    return l($image, $variables['url'], array('html' => TRUE, 'attributes' => array('class' => array('feed-icon'), 'title' => $text)));
  }
}
 
Aby zadziałała poprawnie, musimy w niej jednak wprowadzić kilka niemal kosmetycznych zmian, zaznaczonych dla ułatwienia na czerwono.
Po pierwsze zmienić nazwę na zgodną z nazwą naszego theme (skórki), a po drugie zmienić ścieżkę do naszej ikony na prawidłową.
Po wprowadzeniu pożądanych "usprawnień" nasza funkcja będzie wygladała tak:
 
function nazwaskorki_feed_icon($variables) {
  $text = t('Subscribe to @feed-title', array('@feed-title' => $variables['title']));
  if ($image = theme('image', array('path' => base_path() . path_to_theme() . '/img/feed.png', 'width' => 16, 'height' => 16, 'alt' => $text))) {
    return l($image, $variables['url'], array('html' => TRUE, 'attributes' => array('class' => array('feed-icon'), 'title' => $text)));
  }
}
 
Potem pozostaje załadować nowy plik template.php do katalogu ze skórką i zaktualizować naszego drupala. Oczywiście jeśli obrazki umieszczamy w naszej templatce w innym miejscu niż /img, należy pamiętać o prawidłowej zmianie w kodzie.
Jeszcze parę słów o funkcjach base_path() i path_to_theme() :
  • base_path() zwraca ścieżkę do instalacji drupala
  • path_to_theme() zwraca zaś ścieżkę do naszej skórki.

Obie funkcje są dość często używane, gdy trzeba nadpisać którąś z domyślnych ścieżek, tak więc warto o nich pamietać.

Polski

Copyright © 2011 Hieroglif Tomasz Misterka