Morzsa kiegészítése

Ügyféligény: a morzsa elején jelenjen meg a „Hol vagyok?” kérdés, a végén pedig legyen ott az aktuális oldal címe „inaktív link”-ként, magyarán sima szövegként. Erre a témára több variáció is szerepel a Drupal.hu kézikönyvben – itt egy újabb.

template.php fájlunkban felülírjuk a theme_breadcrumb() függvényt:

<?php
function sminkneve_breadcrumb($breadcrumb) {
 
$output = '';
  if (!empty(
$breadcrumb)) {
   
$output .= '<ul class="breadcrumb">';
   
$output .= '<li>' . t('Where am I?') . '</li>';
    foreach (
$breadcrumb as $link) {
     
$output .= '<li>' . $link . '</li>';
    }
   
$title = drupal_get_title();
    if (!empty(
$title)) {
     
$output .= '<li class="inactive">' . $title . '</li>';
    }
   
$output .= '</ul>';
  }
  return
$output;
}
?>

Az .inactive osztályt CSS-ben szürkítsük ki, hogy egyértelmű legyen, ez nem egy link:

.inactive {
  color: #ccc;
  }

(Szemantikailag helyesebb lenne a „Hol vagyok?” feliratot a listán kívül elhelyezni, így viszont jóval egyszerűbb a CSS.)

A drupal_get_title() nem kevésbé hasznos párja a drupal_set_title(), ezzel tudjuk szükség esetén módosítani az oldal címét.

Comments

A Zen smink a beállításoknál

A Zen smink a beállításoknál megkérdezi akarod-e feltüntetni az aktuális oldal nevét a morzsa végén.

vagy így

<?php
function THEMENAME_breadcrumb($breadcrumb) {
  if (!empty(
$breadcrumb)) {
   
array_unshift($breadcrumb, t('Where am I?'));
   
$title = drupal_get_title();
    if (!empty(
$title)) {
     
$breadcrumb[] = $title;
    }
  }
  return
theme('item_list', $breadcrumb, NULL, 'ul', array('class'=>'breadcrumb'));
}
?>

terjengős CSS

Igen, a theme_item_list() a legdrupalosabb megoldás, bár én ritkán használom, mert a design miatt többnyire felül kell írni hozzá a rendszerszintű CSS-t. Arra még nem sikerült rájönnöm, miért hiszik azt a core fejlesztők, hogy a core dolga lenne margók és hasonlók beállítása. :)

function mymodule_init() {

<?php
function mymodule_init() {
 
$bc = drupal_get_breadcrumb();
 
array_unshift($bc, t('Where am I?'));
  if (
$title = drupal_get_title()) {
   
$bc[] = $title;
  }
}
?>

Majd CSS-ben .last.

Syndicate content