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

#1 13. November 2012 13:05

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

[GELÖST] "default" status einer Seite herausfinden

Kann man irgendwie bei einer Seite im Frontend herausfinden ob diese den "default" status besitzt? Also ob sie die Startseite ist. über {get_template_vars} habe ich dazu nichts gefunden. ebenso wenig bei CGSimpleSmarty

Offline

#2 13. November 2012 13:30

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] "default" status einer Seite herausfinden

Via $content_obj->mDefaultContent

--> In der 1.11er funktioniert der Code doppelt nicht. Das $content_obj ist nicht mehr wirklich vorhanden und der Wert muss anders abgefragt werden.

Du kannst die ToolBox dafür verwenden. In der Datei ./ToolBox/lib/class.tbtools.php musst du folgendes ergänzen:

/**
	 *
	 * Gibt zurück ob eine bestimmte Seite die Defaultseite ist
	 * @copyright Lukas Blatter
	 * @param string $alias - alias or id of a page
	 * @param string $assign - name of assign variable
	 */

	public final function isDefaultPage($alias = '', $assign = '')
	{
		$default = false;
		$gCms = cmsms();

		$alias = $this->getAlias($alias);
		if(!$alias) return false;

		$contentops = $gCms->GetContentOperations();
		$smarty = $gCms->GetSmarty();
		
		$content = $contentops->LoadContentFromAlias($alias);
		if( is_object($content) ) {
			$default = $content->DefaultContent();
		}

		if(!empty($assign)) {
			$smarty->assign(trim($assign),$default);
			return;
		}
		return $default;
	}

Diese Erweiterung lasse ich in der nächsten ToolBox Version einfliessen.

abgefragt wird das mit

{if $tbtools->isDefaultPage()}ich bin die Startseite{else}ich bin eine normale Seite{/if}

Beitrag geändert von nockenfell (13. November 2012 13:31)


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 13. November 2012 13:31

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

Re: [GELÖST] "default" status einer Seite herausfinden

das ist nett. danke

Offline

#4 13. November 2012 13:35

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] "default" status einer Seite herausfinden

Hab den Code nochmals ein klein wenig angepasst. (übrigens, die Funktion ist ungetestet)


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#5 13. November 2012 14:25

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

Re: [GELÖST] "default" status einer Seite herausfinden

glaube das haut nicht hin: $alias = $this->getAlias($alias);
oder?

ansonsten lasse ich es erstmal als udt laufen:

$default = false;
$gCms = cmsms();

$alias = $params["alias"];
if(!$alias) return false;
$contentops = $gCms->GetContentOperations();
$smarty = $gCms->GetSmarty();
		
$content = $contentops->LoadContentFromAlias($alias);
if( is_object($content) ) {
	$default = $content->DefaultContent();
}
if(!empty($assign)) {
	$smarty->assign(trim($assign),$default);
	return;
}
return $default;

{isdefault alias=$page_alias}

Offline

#6 13. November 2012 14:38

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] "default" status einer Seite herausfinden

Das $this->getAlias($alias); ist eine interne Prüfung von tbtools. Damit kann sowohl ein Alias wie auch eine PageId angegeben werden. Aber klar, du kannst das auch als UDT laufen lassen. (auch wenn es mit der ToolBox als Standard kommt)


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline