Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
#1 28. Oktober 2011 11:04
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
[GELÖST] Inhalt von Unterseite auslesen
Hallo!
Wie der Titel sagt, möchte ich den Content einer Unterseite auslesen und in der übergeordneten Seite ausgeben.
Hab jetzt schon ein wenig über parent, has children, get_page_content usw. gelesen aber weiß nicht genau wie ich solches einbaue.
Kann mir da jemand einer weiterhelfen?
Vielen Dank!
Offline
#2 28. Oktober 2011 12:28
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Hat CGSimpleSmarty nicht eine derartige Funktion?
Offline
#3 28. Oktober 2011 12:29
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: [GELÖST] Inhalt von Unterseite auslesen
Hast Du das schon probiert: http://www.cmsmadesimple.de/forum/viewtopic.php?id=1299
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
#4 28. Oktober 2011 20:03
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Ja gut - aber wie lese ich nicht eine bestimmte Seite aus, sondern nur die Untergeordnete?
Vielen Dank!
Offline
#5 28. Oktober 2011 20:46
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Schau dir mal die Hilfe von CGSimpleSmarty an.
Damit listest du dir die Unterseiten einer bestimten Seite auf:
{$cgsimple->get_children('','',$children)}
{if count($children)}
{foreach from=$children item='child'}
{if $child.show_in_menu}
Untergeordnete Seite: id = {$child.id} Alias = {$child.alias}
{/if}
{/foreach}
{/if}
Mit folgendem Code kannst du den Inhalt auslesen:
{$cgsimple->get_page_content(home)}
Zusammengesetzt:
{$cgsimple->get_children('','',$children)}
{if count($children)}
{foreach from=$children item='child'}
{$cgsimple->get_page_content($child.alias)}
{/foreach}
{/if}
Das ganze ist ungetestet, müsste aber in etwa so funktionieren
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#6 29. Oktober 2011 22:25
- nhaack
- Server-Pate
- Ort: Bonn
- Registriert: 12. Dezember 2010
- Beiträge: 171
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Content Dump könnte dafür herhalten. Habe gestern eine für 1.10 kompatible Version hochgeladen. In der Hilfe, bzw im Wiki steht was man damit so alles machen kann (http://wiki.cmsmadesimple.org/index.php … ntent_dump). Ich weiß aber offen gestanden nicht, ob cgsimplesmarty das nicht auch schon alles kann.
Offline
#7 29. Oktober 2011 23:19
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
content_dump kann einiges mehr
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#8 02. November 2011 11:11
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Hab jetzt probiert (auch mit Hilfe von Content_Dump) den Smarty Code in eine normale Seite einzubauen. Das funktioniert mal nicht - bekomme immer einen Smarty Error ausgegeben.
Offline
#9 02. November 2011 11:32
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Hab jetzt probiert (auch mit Hilfe von Content_Dump) den Smarty Code in eine normale Seite einzubauen. Das funktioniert mal nicht - bekomme immer einen Smarty Error ausgegeben.
Wie sieht deine Fehlermeldung und dein Code aus?
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#10 03. November 2011 10:02
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Also hier die Fehlermeldung von dem Code vom nockenfell:
string(159) "Smarty error: [in content:content_en line 1]: syntax error: unrecognized tag:
$cgsimple->get_children('','',$children) (Smarty_Compiler.class.php, line 446)" string(117) "Smarty error: [in
content:content_en line 1]: syntax error: unrecognized tag '' (Smarty_Compiler.class.php, line 590)" string(160) "Smarty
error: [in content:content_en line 1]: syntax error: unrecognized tag: $cgsimple->get_page_content($child.alias)
(Smarty_Compiler.class.php, line 446)" string(117) "Smarty error: [in content:content_en line 1]: syntax error:
unrecognized tag '' (Smarty_Compiler.class.php, line 590)"
Ok mit {content_dump do_smarty="compile"} komm ich auf keinen grünen Zweig...
Beitrag geändert von brandy (03. November 2011 10:07)
Offline
#11 03. November 2011 11:17
- nhaack
- Server-Pate
- Ort: Bonn
- Registriert: 12. Dezember 2010
- Beiträge: 171
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Wie sieht der Smarty Code zum Aufruf von Content-Dump aus und wir das Smarty mit dem du die Daten gestaltest und welche Fehler bekommst du angezeigt?
Mit {content_dump do_smarty="compile"} alleine passiert ja auch nicht viel ...
Offline
#12 03. November 2011 13:21
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
ich fand den einstieg in content_dump recht kompliziert da etwas ungewohnt. und das wiki ist zwar umfangreich aber ist nicht sehr verständlich für unerfahrene user.
aber grundsätzlich kommst du so zum ziel {content_dump start_id=15}. bei der start_id kannst du die content_id von jeder seite benutzen. in dem Fall wir dann der Inhalt von dieser Seite und dessen untergeordneten Seiten geholt.
um da ranzukommen musst du dann {$dump} benutzen. Das ist ein Array. Am schnellsten erzielst du ergebnisse indem du zB den Inhalt so abrufst:
{content_dump start_id=15}
{$dump[0]->content->data}.
Das sollte dir dann den normalen Inhalt von der Seite ausgeben.
Oder
{content_dump start_id=15}
{$dump[0]->content->title} für den Titel.
Nils, bitte korrigiere mich wenn ich mich geirrt habe ^^
Beitrag geändert von nicmare (03. November 2011 13:22)
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#13 03. November 2011 13:25
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Also hier die Fehlermeldung von dem Code vom nockenfell:
Hast du den Code direkt in TinyMCE eingefügt? Dieses wandelt ein paar Zeichen falsch um... Der von mir geschickte Code funktioniert so zwar noch nicht, ergibt aber auch keine Fehlermeldung wenn er korrekt eingefügt ist. Falls ich heute Abend nochmals Zeit habe, schaue ich es mir nochmals an und teste es selber.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#14 17. November 2011 23:19
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
@nockenfell: Vielen Dank, aber nur in den TinyMCE eingefügt bewirkt das bei mir gar nichts... Vielleicht bist du schon zum Testen gekommen?
Vielen Dank!
Offline
#15 17. November 2011 21:32
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Mit CGSimplySmarty scheint es unter 1.10.1 nicht zu funktionieren. Zumindest liefert mir auch {$cgsimple->has_children('',$has_children)} nichts zurück.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#16 21. Dezember 2011 10:26
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Mit CGSimplySmarty scheint es unter 1.10.1 nicht zu funktionieren. Zumindest liefert mir auch {$cgsimple->has_children('',$has_children)} nichts zurück.
Der Code in der Hilfe war falsch geschrieben. Hier die korrekte Schreibweise. Damit funktioniert das auslesen der Children:
{$cgsimple->get_children('','','children')}
{if count($children)}
{foreach from=$children item='child'}
{$cgsimple->get_page_content($child.alias)}
{/foreach}
{/if}
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#17 27. Dezember 2011 13:52
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Vielen Dank!
Kann man den Code so erweitern, dass er ausschließlich das 1. Child ausliest - so wie der Code jetzt arbeitet, liest er mir nur einen bestimmten Alias aus...
Offline
#18 27. Dezember 2011 17:21
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Mit dem von mir geposteten Snipplet wird jeweils der Hauptinhalt {content} aller Children der aktuellen Seite ausgelesen. (nicht von einem bestimmten Alias)
Wenn du nur die erste Unterseite haben willst, kannst du die foreach-Schleife entsprechend anpassen, damit du weisst, welches der erste Durchgang war:
{$cgsimple->get_children('','','children')}
{if count($children)}
{foreach from=$children item='child' name='child'}
{if $smarty.foreach.child.first}
{$cgsimple->get_page_content($child.alias)}
{/if}
{/foreach}
{/if}
Damit liest er dir nur den Inhalt der ersten Unterseite aus.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#19 28. Dezember 2011 13:45
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
weiß jetzt nicht wie das array aussieht aber ne foreach schleife brauch man dafür nicht. das müsste doch auch einfacher gehen indem man direkt den ersten eintrag selektiert oder?
{$cgsimple->get_children('','','children')}
{if count($children)}
{$cgsimple->get_page_content($children[0].alias)}
{/if}
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#20 28. Dezember 2011 14:49
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Und wie füg ich den Smarty-Code auf den Seiten ein - bekomm immer nur den von mir eingegebenen Text ausgegeben!
Offline
#21 28. Dezember 2011 15:56
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Und wie füg ich den Smarty-Code auf den Seiten ein - bekomm immer nur den von mir eingegebenen Text ausgegeben!
Wie fügst du dies genau ein? Bei mir habe ich es direkt im Template getestet. Da funktioniert es prima.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#22 29. Dezember 2011 15:45
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Und wie füg ich den Smarty-Code auf den Seiten ein - bekomm immer nur den von mir eingegebenen Text ausgegeben!
Falls es Probleme gibt, den Code in der Quelltext-Ansicht oder mit deaktiviertem WYSIWYG-Editor eingeben und speichern.
Offline
#23 29. Dezember 2011 20:14
- brandy
- Server-Pate
- Registriert: 05. Juni 2011
- Beiträge: 799
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Ja im Template wirds schon funktionieren - ich muss es aber ja in einer Seite einbauen. Der Parent soll den Inhalt vom 1. child holen, damit immer das aktuellste Projekt zu sehen ist - aktuell muss es per Hand eingefügt werden.
Wie kann ich den Smarty-Code in den Seiten einfügen?
Offline
#24 29. Dezember 2011 22:36
- nicmare
- Server-Pate
- Registriert: 15. Dezember 2010
- Beiträge: 1.314
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
mit einem globalen content block ohne wysiwyg
Meine Projekte:
Dashcam-Test | Babyphone-Testberichte | Türspionkameras
Offline
#25 30. Dezember 2011 23:19
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: [GELÖST] Inhalt von Unterseite auslesen
Oder mit einem UDT (Erweiterungen->Benutzerdefinierter Tag):
Name des UDT: getFirstChildContent
$gCms = cmsms();
$smarty = $gCms->GetSmarty();
if (isset($params['alias']))
$alias = $params['alias'];
else
$alias = $smarty->get_template_vars('page_alias');
if(!$alias) return false;
$hm = cmsms()->GetHierarchyManager();
$parent = $hm->getNodeByAlias($alias);
if( !$parent ) { return false; }
$child_nodes = $parent->getChildren(false,$showall);
if( !is_array($child_nodes) || count($child_nodes) == 0 ) return false;
$results = array();
foreach( $child_nodes as $node ) {
$content = $node->getContent();
if( !is_object($content) ) continue;
$row = array('alias'=>$content->Alias(),'id'=>$content->Id(),
'title'=>$content->Name(),'menutext'=>$content->MenuText(),
'show_in_menu'=>$content->ShowInMenu(),'type'=>$content->Type());
$children[] = $row;
}
if( !count($children) ) return false;
$alias = $children[0]['alias'];
$contentops = $gCms->GetContentOperations();
if(!isset($params['block']) or $params['block'] == '' ) $block = 'content_en';
$content = $contentops->LoadContentFromAlias($alias);
if( is_object($content) ) {
$result = $content->GetPropertyValue($block);
}
if (isset($params['assign']) and $params['assign'] != '')
$smarty->assign(trim($params['assign']),$result);
else
echo $result;
Nun musst du nur noch {getFirstChildContent} in deine Seite einfügen, und schon wird der Inhalt der ersten Unterseite angezeigt.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline