PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Secondary Links - 2 Themes, nur bei einem SekLinks angezeigt



kwon
02.02.2009, 02:28
Hi,

habe mehrere Themes auf Basis der simple-Vorlage erstellt.

Problem:
Nur eines der Themes zeigt die Secondary-Links in der TopNav an, die anderen nicht.

Lösungsversuche:
1. vergleichen aller Dateien des Themes (mit Beyond Compare, erkennt selbst Unterschiede bei den Leerstellen)
Ergebnis: keine Unterschiedde (außer den Farben)

2. Löschen aller Dateien des Themes bei dem die Anzeige der Sec.Links nicht funktioniert. Nur die .info-Datei belassen, die bis auf den Namen identisch ist mit der .info des Themes bei dem die Sek.Links funktionieren. Dann alle Dateien des funktionierenden Themes in das nicht funktionierende kopiert.
Ergebnis: immernoch werden beim einen Theme die Sek.Links oben angezeigt und beim anderen nicht. Dabei sollten jetzt die Themes identisch sein. ???

3. kopieren des gesamten funktionierenden Themes, dann umbenannt. Selbes Ergebnis. WTF?
4. andere Drupal-installation versucht. Selbes Ergebnis. Kopf -> Wand


Kann doch nicht am Namen liegen ob das Theme funktioniert, oder?
Irgendjemand einen ähnlichen Fehler schonmal gehabt?

Hinweise:
Im Ausgabequelltext unterscheiden sich die beiden Themes ebenfalls nur an einer Stelle, natürlich dort wo die SekLinks angezeigt werden sollten:

<span class="links secondary-links"><a href="http://www.web.de" title="testlink">testSekA</a> | <a href="http://www.wer.de" title="">testSekb</a></span>

Diese Zeile fehlt bei dem nicht funktionierenden Theme.
Danke schonmal. Ich geh jetzt in die Ecke und heul.

kwon
02.02.2009, 02:59
Nachtrag:

Da sich die funktionierenden und nicht-funktinierenden Themes nur durch den Namen unterscheiden:

kann es sein, dass dieser Eintrag in der template.php das Problem verursacht:


function yaml_simple_theme() {
return array(
'links_secondary' => array(
'arguments' => array(
'links' => NULL,
'attributes' => array('class' => 'links'),
'settings' => array(
'delimiter' => ' | ',
'leftcab' => NULL,
'rightcab' => NULL,
)
),
'template' => 'links-secondary',
),
);
}


Habe keinen blassen von PHP aber sieht so aus als könnte hier das Problem liegen und wenn alle anderen Erklärungen ausgeschlossen werden müssen...

Wenn ja, wo und an welchen Stellen muss ich basteln, damit ich die Themes umbenennen kann?
Da ich mehrere Themes in einer Drupal Installation nutzen möchte ist die Benennung yaml simple wenig handy.

Oder habe ich beim Erstellen meines Themes etwas anders gemacht als vorgesehen?

hass
02.02.2009, 12:12
Du musst in jedem Deiner umbenannten Themes des Namen THEME anpassen und dann die Theme Registry clearen (z.b. dir URL "admin/build/themes" aufrufen). Das Umbenennen musst Du übrigens auch mit allen anderen Hooks im Theme machen. Hoffe das wars was Du gebraucht hast...



function THEME_theme() {
return array(
'links_secondary' => array(
'arguments' => array(
'links' => NULL,
'attributes' => array('class' => 'links'),
'settings' => array(
'delimiter' => ' | ',
'leftcab' => NULL,
'rightcab' => NULL,
)
),
'template' => 'links-secondary',
),
);
}

kwon
02.02.2009, 12:51
Das Umbenennen musst Du übrigens auch mit allen anderen Hooks im Theme machen. Hoffe das wars was Du gebraucht hast...

noch nicht ganz.
Was sind Hooks und wo bekomme ich die? :))
Tut's das wenn ich alle Dateien auf "THEME" (bzw. yaml_simple_theme) durchsuche und diese Stellen ersetze mit dem Namen meines Themes nach dem Schema BEISPIEL_theme?

Sorry, aber mein Name ist DAU.

Danke schonmal!

kwon
02.02.2009, 12:52
noch ne doofe Frage:
warum ist das so? :) Wozu braucht das Theme den Namen?

hass
02.02.2009, 19:12
Von blindem Suchen und Ersetzen kann ich nur abraten...

http://drupal.org/theme-guide

http://api.drupal.org/api/group/themeable/6