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

#1 09. Januar 2014 13:59

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

[GELÖST] tbtools: alle vorhandenen Seiten ausgeben

Ich wollte gerade versuchen, den  page_alias aller vorhanden Seiten in einer Liste aufzuschlüsseln.
Versucht habe ich es mit "getPageContent" aber das setzt einen page_alias vorraus bzw. arbeitet es ab der aktuellen Seite. Also gibt mir nicht alle Seiten aus, sondern immer nur beginnend von dem entsprechenden page_alias. Gibt es auch ne Möglichkeit einfach alle Seiten auszugeben, unabhängig vom gerade aktuellen page_alias?

Offline

#2 09. Januar 2014 14:29

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] tbtools: alle vorhandenen Seiten ausgeben

Kannst Du das nicht auch mit dem Menumanager machen oder wäre der dafür zu fett?
Soweit ich das sehe, gibt es da in ToolBox nichts fertiges.
Was genau hast Du denn mit den Aliases vor?
Alle Seiten bzw. deren Alias auszulesen, ist meiner Meinung nach einfacher, wenn man sich dazu einen UDT oder ein Plugin schreibt.

Der offizielle Weg wäre z.B. der:

$content_ops =& cmsms()->GetContentOperations();
$all_content = $content_ops->GetAllContent();
$all_aliases = array();
foreach($all_content as $content_obj)
{
    $all_aliases[] = $content_obj->Alias();
}
cmsms()->GetSmarty()->assign('all_aliases', $all_aliases);

Dann hast Du im Template ein array namens {$all_aliases} mit allen Seiten-Aliases - egal ob aktiv oder sichtbar. Wenn Du es differenzierter willst, musst Du in der foreach-Schleife mit Hilfe von if-Bedingungen aussortieren.
Z.B.:

$content_ops =& cmsms()->GetContentOperations();
$all_content = $content_ops->GetAllContent();
$all_aliases = array();
foreach($all_content as $content_obj)
{
    if(!$content_obj->Active())
        continue;
    $all_aliases[] = $content_obj->Alias();
}
cmsms()->GetSmarty()->assign('all_aliases', $all_aliases);

Jenachdem was Du am Ende damit vor hast bzw. wie viele Seiten es sind, könnte man evtl. auch eine eigene DB-Abfrage in Betracht ziehen. Das könnte vielleicht performanter sein.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 09. Januar 2014 15:05

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

Re: [GELÖST] tbtools: alle vorhandenen Seiten ausgeben

naja. will dem anwender eine multiple_select liste anbieten, bei der er die seiten auswählt, die dann auf der startseite mit vorschaubild und titel ausgegeben werden sollen. ich nehme jetzt erstmal content_dump. da geht die abfrage mit einer zeile: {content_dump assign="dump"} ;-).

aber was mir gerade viel mehr sorgen macht: template inheritance. da sind solche spielereien anscheinend nicht möglich

Offline

#4 09. Januar 2014 17:46

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] tbtools: alle vorhandenen Seiten ausgeben

aber was mir gerade viel mehr sorgen macht: template inheritance. da sind solche spielereien anscheinend nicht möglich

Wie sieht denn Dein Szenario aus?
Inhaltsblöcke kann man schon auf einzelne Templates aufteilen.
Ich kann das aber nicht so einfach nachstellen.
Dazu fehlt mir gerade die Fantasie.
Kannst Du das mal beispielhaft skizzieren?
(Welches Template wird in welches eingebunden, welche Variablen werden wo gebraucht  etc.)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 09. Januar 2014 17:53

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

Re: [GELÖST] tbtools: alle vorhandenen Seiten ausgeben

ja, das ist eben das problem. das hier abzubilden. ich habe ein mastertemplate. dort steht alles wesentliche drin. dann habe ich ein weiteres template in das ich zB einen block mit multiple_select ausgeben will. aber das gibt mir ständig internal error 500 zurück. mangels zeit, unterlasse ich derartige spielereien erstmal. eventuell veröffentliche ich mal ne anleitung. ist eigentlich ne feine sache diese methode.

Offline