Standartseite in einer if / else Abfrage

Diskussionen zur Smarty-Template-Engine
Post Reply
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Standartseite in einer if / else Abfrage

Post by nockenfell »

Nach längerem Suchen bin ich noch nicht wirklich schlau geworden. Wie finde ich heraus, ob die aufgerufene Seite als "Standart"-Seite definiert wurde. Ich möchte auf der Startseite im Template einiges ändern. Nur will ich dies nicht über $page_alias machen, da der Alias ja mal ändern könnte.
[this message is written with 100% recycled bits]
nhaack

Re: Standartseite in einer if / else Abfrage

Post by nhaack »

Mhh... auf die Schnelle fiele mir da ein eigenes UDT ein. Im Table content gibt es die Spalte default_content, diese enthält den Wert "1", wenn es die Standardseite ist.

Das UDT müsste etwa so aussehen (nennen wir es "is_default"):

Code: Select all


global $gCms;
$db = &$gCms->db;

$sql="

	SELECT
		default_content
	FROM
		cms_content
	WHERE
		content_id = ".$params['id']."
	
";

$dbresult = $db->Execute( $sql );

if( !$dbresult ){
	echo 'DB error: '. $db->ErrorMsg()."<br/>";			
}

while ($dbresult && $dbresultrow = $dbresult->FetchRow()){
	if ($dbresultrow['default_content'] == 1) {
		$smarty->assign($params['assign'], true );
	} else {
		$smarty->assign($params['assign'], false );
	}
}

(Die Konstruktion hätte etwas eleganter sein können, aber mein Hirn ist schon fast im Idle-Mode und der Kernel schmeißt schon am laufenden Band Exceptions... Feierabend-Blödsinn)... Achtung, ggf. Table-Prefix anpassen!

Im Template kannst du jetzt den Aufruf wie folgt verwenden

{is_content id=$content_id assign="irgendwas"}

Danach einfach mit ner If/else Anweisung verarbeiten:

Code: Select all


{is_content id=$content_id assign="irgendwas"}
 {if $irgendwas == true}
   Standard-Content
 {else}
   Nicht der Standard-Content
 {/if}

Beste Grüße
Nils
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Standartseite in einer if / else Abfrage

Post by nockenfell »

Besten Dank! Hat gut geklappt.
[this message is written with 100% recycled bits]
cyberman

Re: Standartseite in einer if / else Abfrage

Post by cyberman »

Warum das Rad zwei mal erfinden 8)?

Code: Select all

 {if $content_obj->mDefaultContent == '1'}
   Standard-Content
 {else}
   Nicht der Standard-Content
 {/if}
That's all!

PS: {get_template_vars} ist ein richtig guter Freund  ;D ;D ;D ...
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Standartseite in einer if / else Abfrage

Post by nockenfell »

Danke Cyberman. Bisher habe ich die Objekte von get_template_vars nie angeschaut. Sonst wäre ich möglicherweise selber draufgekommen.
[this message is written with 100% recycled bits]
cyberman

Re: Standartseite in einer if / else Abfrage

Post by cyberman »

Hmm, wenn schon die Pro's die vorhandenen Tools nicht nutzen  ::) ...
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Standartseite in einer if / else Abfrage

Post by nockenfell »

Auch die Pro's kennen nicht alles. Ich entdecke immer wieder mal etwas das ich noch nicht kenne. Dafür gibt es dann die OberPro's.
[this message is written with 100% recycled bits]
cyberman

Re: Standartseite in einer if / else Abfrage

Post by cyberman »

Da frag ich mich allerdings, warum ich Seiten dazu erstelle ;)

http://www.cmsmadesimple.de/cmsms-suppo ... suche.html
nockenfell
Power Poster
Power Poster
Posts: 751
Joined: Fri Sep 12, 2008 2:34 pm
Location: Schweiz / Switzerland

Re: Standartseite in einer if / else Abfrage

Post by nockenfell »

Ehrlich gesagt war ich schon länger nicht mehr auf der deutschen Seite.  :(

Danke für die guten Dokumentationen  :D :D Gerade die Ausführungen unter Programmierhilfen finde ich sehr gut.
[this message is written with 100% recycled bits]
nhaack

Re: Standartseite in einer if / else Abfrage

Post by nhaack »

cyberman wrote: Warum das Rad zwei mal erfinden 8)?
...
That's all!
PS: {get_template_vars} ist ein richtig guter Freund  ;D ;D ;D ...
Sauber! Warum in die Ferne schweifen, wenn das gute liegt so nah. Danke für den Hinweis. Ich glaube ich muss mich mal mehr mit der Dokumentation beschäftigen...

Grüße aus Hamburg
Nils
Post Reply

Return to “Smarty-Tipps und -Tricks”