Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 14. Januar 2013 16:39
- jojo
- probiert CMS/ms aus
- Registriert: 17. April 2012
- Beiträge: 20
[GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Hallo CMSMS-User
vielleicht könnt ihr mir bei einer Frage bezüglich der Anpassung der Seitentitel bei Detailseiten eines mit dem CTL Module Maker erstellten Moduls weiterhelfen. Bei einer älteren Website (CMS-Version 1.9.4.1 und CTLModuleMaker 1.8.9.3) funktionierte das mit dem unter FAQ beschriebenen Ansatz mittels UDT einwandfrei (siehe FAQ: Could I show the name of the selected item in, say, the page's <title> tag?).
Mit der CMS-Version 1.11.4 funktioniert dieser Anstz aber leider nicht mehr.
Aus diesem Grund habe ich nun am Ende des Detail-Templates (final_default) folgenden Befehl eingetragen:
{assign var='alt_title' value=$item->name}
Und im Pagetemplate beim Seitentitel den folgenden Abschnitt:
{if isset($alt_title)}
{$alt_title}
{else}
{title}
{/if}
Leider wieder ohne Resultat ... Als Seitentitel wird weiterhin der ursprüngliche Titel (z.B. Home) angezeigt.
Im Head-Bereich des Pagetemplates habe ich außerdem den folgenden Abschnitt eingefügt und dort funktioniert die Anzeige des Titels der Detailseite:
{if isset($alt_title)}
<title>{$alt_title} | {sitename}</title>
{else}
<title>{title} | {sitename}</title>
{/if}
Über Rückmeldungen und/oder Vorschläge zur Lösung des Problems würde ich mich sehr freuen!
Schöne Grüße,
Jojo
Offline
#2 14. Januar 2013 17:39
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Ich vermute mal, dass dein Seitentitel VOR dem Aufruf des Moduls(final_default) kommt.
Dann wäre die Variable $alt_title noch nicht zugewiesen, und somit auch noch nicht bekannt.
Da der BODY zuerst verarbeitet wird und danach der HEAD, ist $alt_title oben auch bekannt.
Warum es allerdings vorher funktioniert hatte, weis ich aber auch nicht.
Offline
#3 14. Januar 2013 20:29
- jojo
- probiert CMS/ms aus
- Registriert: 17. April 2012
- Beiträge: 20
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Danke für deine Hilfe! Daran scheint es wahrscheinlich zu liegen, auch wenn ich noch keine passende Lösung gefunden habe, damit die Überschriften ausschließlich dann angepasst werden, wenn eine Detailseite des mit dem CTL ModuleMaker erstellten Moduls geladen wird. Mir ist dabei noch nicht ganz klar, wie ich das Template des Moduls vor dem Seitentitel laden kann.
Bei meiner Recherche zu diesem Thema bin ich auch noch auf den folgenden Link gestoßen:
I do this
Dort wird noch auf den folgenden Eintrag in der config.php hingewiesen:
$config['process_whole_template'] = false;
Dieser fehlt in meiner config.php völlig. Kann es sein, dass es deshalb nicht so funktioniert wie bei der älteren Website?
Offline
#4 14. Januar 2013 20:36
- Klenkes
- Server-Pate
- Ort: 89428 Syrgenstein
- Registriert: 17. Dezember 2010
- Beiträge: 1.437
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Unschön... aber du könntest vor dem Seitentitel das Modul ausführen, dabei einer Variablen zuweisen. Damit ist $alt_title der Template bekannt.
1.
{capture assign="moduleoutput"}{* Hier dein Modul aufrufen *}{/capture}
2. Dann in deinen Seitentitel einfügen
3. Dann das Modul dann an der richtigen Stelle ausgeben: {$moduleoutput}
So lange der Moduloutput nicht riesige Dateimengen beeinhaltet geht das schon.
Beitrag geändert von Klenkes (14. Januar 2013 20:38)
Offline
#5 14. Januar 2013 21:01
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Bei meiner Recherche zu diesem Thema bin ich auch noch auf den folgenden Link gestoßen:
I do thisDort wird noch auf den folgenden Eintrag in der config.php hingewiesen:
$config['process_whole_template'] = false;
Dieser fehlt in meiner config.php völlig. Kann es sein, dass es deshalb nicht so funktioniert wie bei der älteren Website?
Diese Einstellung ist seit der 1.11er nicht mehr im Core enthalten. Wenn Global gültige Einstellungen gemacht werden sollen, baut man den Aufruf des Inhalts mit Vorteil vor dem <head> Tag ein:
{process_pagedata}
{title assign="pageTitle"}
{content assign="myContent"}
<html>
<head>
....
</head>
<body>
<h1>{$pageTitle}</h1>
{$myContent}
</body>
Dazwischen kann man dann die Aufrufe entsprechend anpassen
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#6 14. Januar 2013 22:14
- czarnowski
- kennt CMS/ms
- Registriert: 18. Oktober 2012
- Beiträge: 457
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
title ist ein Plugin das überhaupt keine Speicherung bei normalem Einsatz vornimmt - es erfolgt direkt eine Ausgabe.
Wenn man den Titel aufgreifen möchte dann muss man es mit assign zuweisen auch das macht das Plugin.
<title>{title assign='titel'} {$titel} | {sitename}</title>
capture ist immer die allerschlechteste Möglichkeit aber hier seit langem offenbar immer sehr beliebt.
Man kann jeden unter Smarty vorhandenen Wert auch einer anderen Smartyvariablen zuweisen wenn man ihn irgendwo benötigt.
Beispiel:
<title>{title assign='titel'} {$titel} | {sitename}</title>
Zuweisung: {$laberbum=$titel}
Ausgabe: {$laberbum}
Wenn man sich nicht sicher ist unter welchem Namen man eine Variable bei Smarty findet - es gibt unverändert get_template_vars um sich das anzeigen zu lassen.
Man muss manchmal auch die Stelle suchen ab wann eine Variable vorhanden ist, dann setzt man get_template_vars einfach an verschiedene aber mögliche Stellen ein.
Offline
#7 15. Januar 2013 00:00
- jojo
- probiert CMS/ms aus
- Registriert: 17. April 2012
- Beiträge: 20
Re: [GELÖST] Seitentitel bei Modul-Detailseiten anpassen
Super, ganz vielen Dank für die ausführlichen Antworten, mit deren Hilfe ich nun eine gute Lösung hinbekommen habe. Ganz am Anfang des Seitentemplates habe ich die folgende Zeile eingefügt:
{title assign="pageTitle"}
Im Detail-Template des mit dem CTL ModuleMaker erstellten Moduls habe ich dann folgendes eingetragen:
{assign var='alt_title' value=$item->name}
Und dann noch die Seitenüberschrift wiederum im Seitentemplate folgendermaßen angepasst:
{if isset($alt_title)}
{$alt_title}
{else}
{title}
{/if}
Also, wirklich nochmal vielen Dank für die Antworten und vielleicht hilft das ja auch noch anderen weiter!
Offline
Seiten: 1