Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 06. April 2011 21:06

Steffen
Gast

[GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Hallo zusammen.

Ich arbeite noch nicht sehr lang mit CMSMS und habe schon eine Frage. smile
Ich habe folgendes Template (Auszug) in dem ich eine Variable parent_page mit einem bestimmten Seitenalias füllen möchte, was an sich auch funktioniert. Ich lasse mir den Wert mit {$parent_page} an 2 verschiedenen Stellen anzeigen - einmal funktioniert es - beim 2ten Aufruf nicht. Hat jemand eine Idee woran das liegen könnte bzw. was ich falsch mache?

<!-- {process_pagedata} -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" >
<head>

{foreach from=$nodelist item=node}
{if $node->depth == 2 and ($node->parent == true or $node->current == true)}
  {assign var="parent_page" value=$node->alias}
{/if}
{/foreach}

{$parent_page} <!-- Wert wird angezeigt -->

<title>{sitename} - {title}</title>
{metadata}
{cms_stylesheet}
{literal}
<script type='text/javascript' src='uploads/js/jquery.js' ></script>
{/literal}
</head>

<body>
{$parent_page} <!-- Wert wird NICHT angezeigt, bei {debug} ist die Variable gar nicht mehr aufgeführt -->

<!-- hier kommt natürlich noch was - ist aber nicht von Bedeutung denke ich -->

<body>

Danke schon einmal für Eure Mühe
Steffen

Beitrag geändert von Steffen (07. April 2011 22:56)

#2 06. April 2011 21:21

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

schreib mal das assign in die erste zeile

Offline

#3 06. April 2011 21:22

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Ich bin mir nicht ganz sicher, aber ich glaube, dass BODY und HEAD getrennt verarbeitet werden und der BODY zuerst kommt. Daher ist deine Variable im BODY auch nocht nicht bekannt.

Offline

#4 06. April 2011 21:32

Steffen
Gast

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

nicmare schrieb:

schreib mal das assign in die erste zeile

Das scheint auf jeden Fall die Variable im ganzen Template bekannt zu machen. Nächstes Problem: Die $nodelist scheint an dieser Stelle noch nicht verfügbar zu sein. Muss dafür vorher {menu} aufgerufen werden?

#5 06. April 2011 21:40

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Genau die variablen aus MenuManager sind so nicht verfügbar.
Mit CGSimpleSmarty Modul geht aber dein vorhaben ziemlich einfach.

[== smarty ==]
{$cgsimple->get_page_title($cgsimple->get_parent_alias(), 'parent_page')}

Und so hättest Du {$parent_page} verfügbar.

Offline

#6 06. April 2011 21:46

Steffen
Gast

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

uniqu3 schrieb:

Genau die variablen aus MenuManager sind so nicht verfügbar.
Mit CGSimpleSmarty Modul geht aber dein vorhaben ziemlich einfach.

[== smarty ==]
{$cgsimple->get_page_title($cgsimple->get_parent_alias(), 'parent_page')}

Und so hättest Du {$parent_page} verfügbar.

Danke, aber mit CGSimpleSmarty habe ich es auch schon versucht, es ist leider etwas komplizierter. Der Titel $parent_page ist etwas verwirrend: ich benötige den Seitenalias der Seite auf Level 2 wenn ich entweder auf genau dieser seite oder einer ihrer unterseiten bin.

Home
-->ebene1
---->ebene2 seite1
---->ebene2 seite2       ($parent_page = ebene2 seite2) |
------>ebene3 seite1    ($parent_page = ebene2 seite2)  > Diese Seiten verwenden alle das gleiche Seitentemplate
------>ebene3 seite1    ($parent_page = ebene2 seite2) |
-->Punkt2

#7 07. April 2011 22:17

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Hoffentlich habe ich es jetzt verstanden.

[== smarty ==]
{if ($position|substr_count:'.' eq '0') or ($position|substr_count:'.' eq '1')} 
  {title} 
{else} 
  {$cgsimple->get_page_title($cgsimple->get_parent_alias(), 'parent_page')} 
  {$parent_page} 
{/if}

Im Fall Seite ebene 1 oder 2 wird titel normal ausgegeben ist Seite in ebene 3 wird titel der ebene 2 ausgegeben?

Offline

#8 07. April 2011 22:54

Steffen
Gast

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

uniqu3 schrieb:

Hoffentlich habe ich es jetzt verstanden.

[== smarty ==]
{if ($position|substr_count:'.' eq '0') or ($position|substr_count:'.' eq '1')} 
  {title} 
{else} 
  {$cgsimple->get_page_title($cgsimple->get_parent_alias(), 'parent_page')} 
  {$parent_page} 
{/if}

Im Fall Seite ebene 1 oder 2 wird titel normal ausgegeben ist Seite in ebene 3 wird titel der ebene 2 ausgegeben?

Hallo uniqu3,

So würde es sicher funktionieren, allerdings habe ich dann immer noch das Problem, dass es ab der 4ten Ebene nicht funktioniert, da auch diese den Alias aus Ebene 2 anzeigen müsste. (vielleicht stimmt auch etwas mit meiner Struktur nicht, aber ich weiß ja nicht wieviele Unterseiten derjenige anlegt, der die Seite nachher verwalten muss)

Ich habe es jetzt gelöst indem ich die UDT eines anderen abgewandelt habe. (wiki.cmsmadesimple.org)

Sobald ich das Tag soweit habe, dass es ohne fehler funktioniert werde ich es auch "sharen".

Danke dennoch an alle für eure Hilfe
Steffen

Edit:
Wieso ist da ein Bogenschütze neben dem Link und kein Spiegel?

Beitrag geändert von Steffen (07. April 2011 22:58)

#9 07. April 2011 23:08

mörml
Server-Pate
Registriert: 23. Januar 2011
Beiträge: 443

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Steffen schrieb:

Wieso ist da ein Bogenschütze neben dem Link und kein Spiegel?


... weil es "der Link" heißt   tongue


kann CMSms buchstabieren...

CMSms 1.11.12
PHP 5.5.14

Offline

#10 07. April 2011 06:59

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Klenkes schrieb:

Ich bin mir nicht ganz sicher, aber ich glaube, dass BODY und HEAD getrennt verarbeitet werden und der BODY zuerst kommt. Daher ist deine Variable im BODY auch nocht nicht bekannt.

Das lässt sich in der config.php einstellen wink

$config['process_whole_template'] = false;

Offline

#11 07. April 2011 07:36

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: [GELÖST] Assign in Seitentemplate - Geltungsbereich der Variablen

Steffen schrieb:
uniqu3 schrieb:

Hoffentlich habe ich es jetzt verstanden.

[== smarty ==]
{if ($position|substr_count:'.' eq '0') or ($position|substr_count:'.' eq '1')} 
  {title} 
{else} 
  {$cgsimple->get_page_title($cgsimple->get_parent_alias(), 'parent_page')} 
  {$parent_page} 
{/if}

Im Fall Seite ebene 1 oder 2 wird titel normal ausgegeben ist Seite in ebene 3 wird titel der ebene 2 ausgegeben?

Hallo uniqu3,

So würde es sicher funktionieren, allerdings habe ich dann immer noch das Problem, dass es ab der 4ten Ebene nicht funktioniert, da auch diese den Alias aus Ebene 2 anzeigen müsste. (vielleicht stimmt auch etwas mit meiner Struktur nicht, aber ich weiß ja nicht wieviele Unterseiten derjenige anlegt, der die Seite nachher verwalten muss)

Ich habe es jetzt gelöst indem ich die UDT eines anderen abgewandelt habe. (wiki.cmsmadesimple.org)

Sobald ich das Tag soweit habe, dass es ohne fehler funktioniert werde ich es auch "sharen".

Danke dennoch an alle für eure Hilfe
Steffen

Edit:
Wieso ist da ein Bogenschütze neben dem Link und kein Spiegel?

Hast Du es auch mit meinem Vorschlag probiert? Es steht ja {else} heißt ist ebene 1 oder 2 zeige titel sonst zeige parent titel.
Und dein UDT fund zeigt ja immer root page titel, sprich ebene 1 wo wir wieder beim CGSimpleSmarty wäre mit {$cgsimple->get_root_alias()}

Offline