Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 08. April 2011 22:07
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
[gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Update:
Die Lösung mittels "ToolBox" ist hier:
http://www.cmsmadesimple.de/forum/viewt … 370#p15370
Ich stell mich grad mal wieder etwas doof an, oder sehe den wald vor lauter Bäumen nicht; folgendes möchte ich im Seitentemplate realisieren:
Wenn ich auf einer Hauptseite bin
{$page_alias}
ausgeben, wenn ich auf einer Kindseite bin, möchte ich den Pagealias des Elternelementes ausgeben.
Gescheitert bin ich schon auf der Hälfte der Strecke:
{if $node->haschildren == true}{$page_alias}{else}blubb{/if}
müsste nach meinem Verständnis auf einer Hauptseite den page_alias ausgeben. Es gibt aber auf allen Seiten blubb aus, egal welche Hierarchie.
Wie frage ich den page_alias der jeweiligen Hauptseite ab?
Mal noch als Beispiel, wies aussehen soll:
Home -> Home (page_alias)
Kind von Home -> Home (page_alias vom Elternteil)
Bananen -> Bananen (page_alias)
usw.
Beitrag geändert von mike-r (30. Januar 2012 17:32)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#2 08. April 2011 22:15
- mörml
- Server-Pate
- Registriert: 23. Januar 2011
- Beiträge: 443
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Da ich CMSMS nur buchstabieren kann, verzeih mir im Zweifelsfall die Frage: Meinst du die Breadcrumbs?
kann CMSms buchstabieren...
CMSms 1.11.12
PHP 5.5.14
Offline
#3 08. April 2011 22:37
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Nein, ich möchte im Template eine allgemeingültige (=dynamische) Abfrage auf den "starken" Seitenname machen, den ich dann anderweitig weiterverarbeite.
Ich benötige nur den Namen, keine Links und dergleichen.
(Speziell möchte ich verschiedene Grafiken ausgeben, die auf allen Hauptseiten und jeweils ihren Kindern per CSS eingebunden wird.
Generell is das easy: <img ... {page_alias}.jpg />
Nur brauch ich auf den Kindern die Grafiken der Eltern.)
Beitrag geändert von mike-r (08. April 2011 22:42)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#4 08. April 2011 23:39
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.437
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Nodelist ist da der falsche Ansatz. Das kommt vom Menümanager und dürfte nach dem Durchlauf der foreach Schleife immer nur das letzte Element enthalten oder garnichts. Je nachdem ob das vor oder nach dem Menü kommt.
Schonmal CGSimpleSmarty ausprobiert? Damit sollte das gehen:
http://dev.cmsmadesimple.org/project/files/418
http://wiki.cmsmadesimple.org/index.php … ple_Smarty
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 08. April 2011 01:32
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Schonmal CGSimpleSmarty ausprobiert?
Nöö, aber sieht gut aus:
* get_parent_alias([$alias],[$assign])
Kuck ich morgen mal, vielen Dank.
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#6 08. April 2011 13:01
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Mhh, sah gut aus, nun hänge ich aber wieder fest.
Hab ein paar Sachen rumprobiert die nicht liefen, dann hab ich testweise mal ein Beispiel aus der Hilfe getestet: geht nicht.
Dieses Beispiel:
{$cgsimple->has_children('',$has_children)}
{if $has_children}
Die aktuelle Seite hat untergeordnete Seiten
{else}Die aktuelle Seite hat keine untergeordneten Seiten
{/if}
gibt mir auf ausnahmslos allen Seiten:
Die aktuelle Seite hat keine untergeordneten Seiten
aus.
Interessanterweise passiert auf der Startseite etwas, dort steht eine "1" vor der Ausgabe.
Bug oder Brett vorm Kopf?
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#7 08. April 2011 13:21
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Hmm, eine etwas zweideutige Formulierung in der Original-Doku, die ich mitübersetzt habe?
[$assign] - (optional) der Name der Variable, der das Ergebnis zugewiesen werden soll.
Probier mal
[== Smarty ==]
{$cgsimple->has_children('',has_children)}
{if $has_children}
Die aktuelle Seite hat untergeordnete Seiten
{else}Die aktuelle Seite hat keine untergeordneten Seiten
{/if}
Die Zuweisung an Smarty-Variablen erfolgt im Normalfall immer ohne $ ...
Offline
#8 08. April 2011 13:48
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Das isses, has_children noch in Anführungszeichen, so:
[== Smarty ==]
{$cgsimple->has_children('','has_children')}
{if $has_children}
Die aktuelle Seite hat untergeordnete Seiten
{else}Die aktuelle Seite hat keine untergeordneten Seiten
{/if}
Danke!
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#9 08. April 2011 14:20
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Arg, warum einfach machen, wenn's auch umständlich geht:
{$cgsimple->get_root_alias()}
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#10 27. Januar 2012 01:04
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Da ich grad an was ähnlichem an der Mache bin, vielleicht brauchts mal jemand:
{$cgsimple->get_parent_alias('','eltern')}
{if $eltern == 'bananen' or $page_alias == 'bananen'}
Bananen
{else}
{if $eltern == 'birnen' or $page_alias == 'birnen'}
Birnen
{else}
Nix.
{/if}{/if}
Der Schnipsel gibt je nach Seiten-alias der aktuellen Seite oder der übergeordneten Kategorie einen bestimmten Text (oder Code/Grafiken/etc.) aus.
Brauch ich grad nicht, aber rein interessehalber: kann man das vernünftig für tiefer verschachtelte Strukturen machen? Also dass auch das dritte Kind noch weiss, dass es ein Kind von "Bananen" ist?
Beitrag geändert von mike-r (27. Januar 2012 01:08)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#11 27. Januar 2012 07:10
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Brauch ich grad nicht, aber rein interessehalber: kann man das vernünftig für tiefer verschachtelte Strukturen machen? Also dass auch das dritte Kind noch weiss, dass es ein Kind von "Bananen" ist?
Wenn der Parent immer im Root (oberste Ebene) liegt, kannst du das wie folgt machen:
{$cgsimple->get_root_alias('','eltern')}
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#12 27. Januar 2012 11:30
- serialpark
- probiert CMS/ms aus
- Ort: Berlin
- Registriert: 24. Januar 2012
- Beiträge: 52
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
ich hänge gerade an einem ähnlichen problem.
ich brauche eine if last child abfrage, jemand ne idee?
1.parent
1.1 child
2.1 child
3.1 child <---
Offline
#13 27. Januar 2012 17:14
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
@nockenfell: soweit so klar, allerdings ist die entsprechende Kategorie nicht immer im root.
@serialpark: get_sibling kann sowas. Du prüfst ob die Seite einen "Nachfolger" hat und gibst davon abhängig Deinen Inhalt aus. In der Hilfe zum Modul ist ein Beispiel, was schon sehr nah dran ist.
Edit: Alternativ, falls es Dir nur ums Menü geht gibt's da was für den Menümanager. Hatten wir hier im Forum schon mal.
Beitrag geändert von mike-r (27. Januar 2012 17:17)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#14 27. Januar 2012 17:22
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
@nockenfell: soweit so klar, allerdings ist die entsprechende Kategorie nicht immer im root.
Ok. Im ToolBox-Modul (kommende Version) sind die meisten Funktionen von CGSimpleSmarty auch enthalten. (heissen leicht anders und können auch content_ids verarbeiten). Ich überlege mir mal, ob man hier auch eine Ebene mitgeben könnte. So im Sinne von $tbtools->getLevelAlias('1','levelalias').
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#15 27. Januar 2012 17:24
- serialpark
- probiert CMS/ms aus
- Ort: Berlin
- Registriert: 24. Januar 2012
- Beiträge: 52
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
@mike fürs menü weiß ich wies geht, danke. ich gucks mir mal an!
Offline
#16 28. Januar 2012 08:51
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Brauch ich grad nicht, aber rein interessehalber: kann man das vernünftig für tiefer verschachtelte Strukturen machen? Also dass auch das dritte Kind noch weiss, dass es ein Kind von "Bananen" ist?
Tada! Ich brauch es nun doch
Ich überlege mir mal, ob man hier auch eine Ebene mitgeben könnte. So im Sinne von $tbtools->getLevelAlias('1','levelalias').
Klingt gut, wann kann man damit rechnen?
Oder irgendeine Idee, wie ich das möglichst gestern schon mit cgsimple löse?
Zur Erklärung meiner Struktur:
Home
- de
-- Bananen [x]
--- Grün [x]
--- Gelb [x]
---- Hellgelb [x]
- Birnen
Die [x] wäre jeweils der Punkt, wo "Bananen" ausgegeben werden müsste (bzw. ich einen Code ausgeben kann, der bei "Birnen" nicht matcht)
Beitrag geändert von mike-r (28. Januar 2012 09:25)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#17 28. Januar 2012 20:47
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Hole die aktuellste Version von ToolBox aus dem SVN. Hier habe ich die Funktion ergänzt. (In der Hilfe steht die Beschreibung dazu)
Einsetzen kannst du diese wie folgt:
{$tbtools->getLevelAlias(2,'','levelalias')}
Damit steht in der Variable $levelalias der Alias der Parentseite in Ebene 2. (in deinem Beispiel "bananen")
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#18 28. Januar 2012 21:19
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Herrlich, teste ich gleich aus, danke.
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#19 28. Januar 2012 22:16
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Mhh, leider nein
Entweder ich hab ein Brett vorm Kopf, oder der Fix im Modul macht nicht was er soll. (dass wir uns falsch verstehen würde ich auch nicht ausschliessen)
Ich habe meinen Code von oben folgendermassen abgeändert:
{$tbtools->getLevelAlias(2,'','eltern')}
{if $eltern == 'bananen'}
Bananen
{else}
{if $eltern == 'birnen'}
Birnen
{else}
Nix.
{/if}{/if}
Hierbei bekomme ich als Ausgabe in der 4. Ebene den Alias der dritten.
in der dritten Ebene bekomme ich auch den dritten. €: Is Quatsch, ich bekomme nur auf der aktuellen Ebene den Alias, hatte noch anderen Markup drin./€
In der 2. Ebene bekomme ich tatsächlich korrekt den alias der 2. Ebene.
Ich will aber zusätzlich auf allen der 2. Ebene untergeordneten Punkte den alias der 2. Ebene haben.
Btw: in der Modulhilfe stimmt das Beispiel zu getLevelAlias noch nicht.
Beitrag geändert von mike-r (28. Januar 2012 22:29)
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#20 28. Januar 2012 22:50
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Danke für die Rückmeldung. Da war wirklich der Wurm drin. Ich hatte die while Schlaufe zu früh abgebrochen (bevor das korrekte Level kam).
In meinen Tests funktioniert es nun.
Das Beispiel der Hilfe ist auch angepasst. Danke für's aufmerksame Lesen. Kommt vom schnellen kopieren
Ist im SVN korrigiert.
Übrigens:
{$tbtools->getLevelAlias(2,'','eltern')}
{if $eltern == 'bananen'}
Bananen
{elseif $eltern == 'birnen'}
Birnen
{else}
Nix.
{/if}
mit {elseif} ist der Code sauberer
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#21 29. Januar 2012 00:17
- mike-r
- arbeitet mit CMS/ms
- Registriert: 21. Dezember 2010
- Beiträge: 898
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Läuft hervorragend, vielen Dank.
Die Hilfe ist allerdings immer noch nicht 100% korrekt, wenn ich das richtig verstehe:
$level - Nummer der Ebene von welcher der Alias zurückgegeben werden soll (0 = oberste Ebene, 1= 1. Ebene, etc.)
vs
Beispiel:
Der Seiten-Alias der obersten, übergeordneten Seite ist {$tbtools->getLevelAlias(1,'','parentlevelalias')}
Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz
Offline
#22 29. Januar 2012 16:21
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
Asche auf mein Haupt. Ich habe die Hilfe nochmals durchgelesen und noch mehr Ungereimtheiten entdeckt. Jetzt stimmts aus meiner Sicht.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#23 30. Januar 2012 17:12
- serialpark
- probiert CMS/ms aus
- Ort: Berlin
- Registriert: 24. Januar 2012
- Beiträge: 52
Re: [gelöst] Im Template haschildren und/oder hasparent(?) abfragen
auch von mir noch die lösung:
{if $cgsimple->get_sibling(1)}
<p>text wird beim last child nicht angezeigt</p>
{/if}
Beitrag geändert von serialpark (30. Januar 2012 17:13)
Offline
Seiten: 1