Page 1 of 1

[Workaround] Dynamischer UDT nach $page_alias

Posted: Tue Mar 09, 2010 9:54 pm
by antiheld2000
Hi,

ich würde gerne in einem Template $page_alias abhängige UDTs aufrufen. Also wenn ich z. B. auf der Seite mit dem Alias "hirnstrom" bin, dann sollte folgender UDT aufgerufen werden: {roentgenbild-hirnstrom} bzw. {roentgenbild-$page_alias}. Ist dies möglich? Wenn ja, wie?

Gruß
anti

Re: Dynamischer UDT nach $page_alias

Posted: Tue Mar 09, 2010 10:11 pm
by uniqu3
UDT für Page alias findest du hier: http://wiki.cmsmadesimple.org/index.php ... _tags_here

Alias UDT:

Code: Select all

global $gCms;
global $smarty;

$manager =& $gCms->GetHierarchyManager();

$var = 'alias';
if( isset($params['assign']) && $params['assign'] != '' )
{
  $var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
while( isset($currentNode) && $currentNode->getLevel() >= 0 )
{
    $currentContent =& $currentNode->getContent();
    $result = $currentContent->Alias();
    $currentNode =& $currentNode->getParentNode();
}
$smarty->assign($var,$result);

Code: Select all


Template aufruf:
{alias assign="alias"}
             
		{if $alias == "home"}
		the content to show
		{elseif $alias == "other page"}
                other content
                {else}
                default content
                {/if}

Re: Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 8:06 am
by cyberman
@antiheld2000

Ich weiß ja nicht, wie viele UDTs du planst, aber IMHO wäre es einfacher, den Page-Alias als Parameter zu übergeben und diesen via PHP switch / case auszuwerten, also eher so {roentgenbild page=$page_alias} - guckst du hier

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

@uniqu3

Keine Ahnung, warum dieser UDT noch im Wiki ist, denn der Seiten-Alias kann eigentlich immer via {$page_alias} aufgerufen oder abgefragt werden - da muss man das Rad nicht zwei Mal erfinden ;).

Re: Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 8:10 am
by antiheld2000
@ cyberman

generell gebe ich dir recht, jedoch sollen im udt seitenspezifisch mehrere imagemaps ausgegeben werden. auf sieben verschiedenen seiten je 7 komplexe imagemaps. diese werden sehr umfangreich und dürfen auf keinen fall durch einen wysiwyg oder so etwas abgeändert werden. ich habe angst, dass bei eingabe als globale inhaltsblöcke das ganze zerschossen wird.

Re: Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 8:22 am
by cyberman
Ähmm, an welcher Stelle hab ich was von Globalen Inhaltsblöcken gesagt ::)?

Und die Image-Maps könntest du dir auch im UDT aus separaten Dateien via include() laden, damit er nicht so groß wird ...

PS: In der Administration kann man übrigens die Verwendung von WYSIWYG für die GCBs deaktivieren ;).

Re: Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 8:31 am
by antiheld2000
du hast davon nichts gesagt, aber ich habe dran gedacht ;)

mit deaktiviertem wysiwyg ist auch nicht das optimale… ach, ich bin verwirrt…

habe gerade festgestellt, dass ich viel zu kompliziert gedacht habe, denn ich habe nun einfach in das template einen zweiten contentblock ohne wysiwyg eingefügt. also manchmal…

danke euch zwei beiden.

Re: [Workaround] Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 10:14 am
by uniqu3
@cyberman

Ah danke wusste ich gar nicht, das kommt davon wenn Mann etwas verwendet und nicht weiter liest :-)

Re: Dynamischer UDT nach $page_alias

Posted: Wed Mar 10, 2010 11:11 am
by cyberman
antiheld2000 wrote: du hast davon nichts gesagt, aber ich habe dran gedacht ;)
Ich merk schon, dass du eine gewisse Affinität zu den GCB's hast  ;D ...
uniqu3 wrote: Ah danke wusste ich gar nicht, das kommt davon wenn Mann etwas verwendet und nicht weiter liest :-)
Auch auf die Gefahr hin, mich zu wiederholen - der mitgelieferte Tag {get_template_vars} ist 'ne dolle Sache ;).

Wenn man genau hinschaut, verbergen sich da noch 'ne ganze Menge andere nützliche Sachen, die per default schon vorhanden sind.