• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Smarty in User-defined-Tag ausführen
PostPosted: Tue Aug 11, 2009 11:40 am 
Offline
Forum Members
Forum Members

Joined: Tue Sep 09, 2008 2:17 pm
Posts: 10
Hallo Leute,
da ich aus der Doku nicht schlau geworden bin post ichs mal hier.

Ich würde gern in einem UDT auf das $node Element des Menü-Managers zugreifen.
Gwünschte Funktion: Falls eine dritte Menüebene existiert, soll der dazugehörige Parent ausgegeben werden.
( Die Kinder integrier ich ins Template über {menu start_level="3" template=""} )

Mein bescheidener Ansatz:
Code:
if ($node->depth = 3) {
  echo "$node->parent";
}


Vielleicht kann mir jemand auf die Sprünge helfen.
Grüße


Last edited by medicus on Tue Aug 11, 2009 11:42 am, edited 1 time in total.

Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Tue Aug 11, 2009 11:56 am 
Das sind ja gleich zwei Fragen in einem :).

1. Wie greife ich in PHP auf Smarty-Variablen zu?

http://smarty.net/manual/de/api.get.template.vars.php

2. Dein Ansatz

echo $node->parent wird nicht funktionieren da $node->parent allenfalls true ist und nicht den Menütext des Parents enthält.

Allerdings sollte dir das CGSimpleSmarty-Modul weiterhelfen können, damit kannst du auch auf den parent zugreifen.

Falls du nicht weiterkommst, einfach hier fragen :) ...


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Tue Aug 11, 2009 2:43 pm 
Offline
Forum Members
Forum Members

Joined: Tue Sep 09, 2008 2:17 pm
Posts: 10
cyberman wrote:
Falls du nicht weiterkommst, einfach hier fragen :) ...


Das ist leider der Fall. Da ich leider bisher wenig mit PHP gearbeitet hab und Smarty auch neu ist, bin ich mir deren Funktionsumfang nicht wirklich bewusst.

$node bietet mir (aus meiner Sicht) leider keine verwertbare Eigenschaft für diese wohl primitive Aufgabe.

Wie könnte man, sobald ein Link im Menü auf zweiter Ebene (1.1) angeklickt wird UND über Kinder verfügt (1.1.2) etwas HTML-Code ausgeben?

Meine Idee war ein User-Defined-Tag, der schlussendlich im Markuptemplate platziert wird. Nur is mir das offenbar zu hoch.
Kann mir jemand helfen?


Last edited by medicus on Tue Aug 11, 2009 5:36 pm, edited 1 time in total.

Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Thu Aug 13, 2009 7:55 am 
Die Frage ist, was genau du ausgeben möchtest (Text, Menü, Grafik, ...?).

Weiter oben hattest du von einem Menü in der dritten Ebene gesprochen ... für eine derartige Anwendung enthält das mitgelieferte Template "Top simple navigation + left subnavigation + 1 column" ein Beispiel (für die erste und die zweite Ebene - die erste Ebene als Top-Menü und die zweite Ebene in der linken Sidebar).


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Thu Aug 13, 2009 1:50 pm 
Offline
Forum Members
Forum Members

Joined: Tue Sep 09, 2008 2:17 pm
Posts: 10
Quote:
Die Frage ist, was genau du ausgeben möchtest (Text, Menü, Grafik, ...?).


Einfacher Text.
Es ist so gedacht, dass die dritte Ebene in der Sidebar geöffnet wird (das is mit {menu start_level="3"..} gelöst).
Dieser dritten Ebene soll als Überschrift der jeweilige Parent dienen.
Ich weiß bis heute nicht wie ich das am besten löse... hab aber mittlerweile einfach das Menü umstrukturiert.


Allerdings bin ich heute auf ein neues Problem gestoßen :(

Und zwar möchte ich in einem UD-Tag Parameter übergeben wies bei den vielen tollen Modulen üblich ist.

Als Aufruf im Quellcode z.B. {import page="adress"}

Ich dachte an sowas im UD-Tag:

$smarty->assign('page', $adress);

Geht das?
Und wenn ja, wie handle ich das dann im UD-Tag?
z.B. so?

if ( $smarty->get_template_vars('page'); ) {
    Blablabla ..? 
}


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Fri Aug 14, 2009 1:07 pm 
medicus wrote:
Es ist so gedacht, dass die dritte Ebene in der Sidebar geöffnet wird (das is mit {menu start_level="3"..} gelöst).
Dieser dritten Ebene soll als Überschrift der jeweilige Parent dienen.
Ich weiß bis heute nicht wie ich das am besten löse... hab aber mittlerweile einfach das Menü umstrukturiert.


Du könntest evtl. auch im Menü-Template für die erste und zweite Ebene den Menü-Text des aktiven Menü-Eintrags einer separaten Smarty-Variablen zuweisen und diese Variable dann im Menü-Template der dritten Ebene als Überschrift verwenden.

Hier mal der (zu ergänzende) Ausschnitt aus dem Menü-Template für die 1. und 2. Ebene

Code:
{if $node->current == true}
<li class="currentpage"><h3><dfn>Current page is {$node->hierarchy}: </dfn>{$node->menutext}</h3>

   {assign var="sub3header" value=$node->menutext}


Im Menü-Template für die 3. Ebene fügst du an passender Stelle nur noch {$sub3header} ein.

Quote:
Und zwar möchte ich in einem UD-Tag Parameter übergeben wies bei den vielen tollen Modulen üblich ist.


Evtl. hilft dir das etwas weiter

http://wiki.cmsmadesimple.org/index.php ... ed_Tags/de


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Sat Sep 05, 2009 12:16 am 
Ich verstehe leider immer noch nicht genau was Du vorhast.
Wie soll das ganze von statten gehen?
Rufst Du Deinen UDT im News-Template auf oder im Seiten-Template?
Welche Parameter werden an den UDT übergeben?
Was soll der UDT zurückgeben?

Soll der UDT nur Newseinträge mit einem bestimmen Extrafeld ausgeben?
Ist es das?
Oder soll er die Extrafelder zurückgeben?
Die sind normalerweise schon im News-Template verfügbar.
Wie sieht denn Deine Datenbankabfrage bisher aus?


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Smarty in User-defined-Tag ausführen
PostPosted: Mon Sep 07, 2009 12:17 am 
Lightstoner wrote:
Hat sich heut morgen erledigt. Bin per Zufal auf die lösung gestossen.

Die da wäre?


Top
   
 
Share On:
Share on Facebook Share on Twitter Share on Google+
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Hosting Nation - Managed CMSMS Hosting