Page 1 of 1

Standartseite in einer if / else Abfrage

Posted: Tue Mar 02, 2010 2:30 pm
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.

Re: Standartseite in einer if / else Abfrage

Posted: Wed Mar 03, 2010 9:05 pm
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

Re: Standartseite in einer if / else Abfrage

Posted: Thu Mar 04, 2010 9:06 am
by nockenfell
Besten Dank! Hat gut geklappt.

Re: Standartseite in einer if / else Abfrage

Posted: Thu Mar 04, 2010 11:07 am
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 ...

Re: Standartseite in einer if / else Abfrage

Posted: Thu Mar 04, 2010 12:01 pm
by nockenfell
Danke Cyberman. Bisher habe ich die Objekte von get_template_vars nie angeschaut. Sonst wäre ich möglicherweise selber draufgekommen.

Re: Standartseite in einer if / else Abfrage

Posted: Thu Mar 04, 2010 8:04 pm
by cyberman
Hmm, wenn schon die Pro's die vorhandenen Tools nicht nutzen  ::) ...

Re: Standartseite in einer if / else Abfrage

Posted: Thu Mar 04, 2010 9:58 pm
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.

Re: Standartseite in einer if / else Abfrage

Posted: Fri Mar 05, 2010 7:06 am
by cyberman
Da frag ich mich allerdings, warum ich Seiten dazu erstelle ;)

http://www.cmsmadesimple.de/cmsms-suppo ... suche.html

Re: Standartseite in einer if / else Abfrage

Posted: Fri Mar 05, 2010 7:37 am
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.

Re: Standartseite in einer if / else Abfrage

Posted: Fri Mar 05, 2010 8:47 am
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