"Onepager" mit Contendio
"Onepager" mit Contendio
Ich habe schon ein wenig gesucht, aber zu meiner Idee eigentlich nur diesen Artikel gefunden, der mir nur ansatzweise weiter hilft.
Im konkreten geht es darum, mit Contenido Websites zu erstellen "wie es in Wordpress so einfach geht". Der große Vorteil von Wordpress gegenüber Contenido sind Editoren, die es ermöglichen sich eine Seite ganz einfach selbst "zusammenzubauen" (mit allen Nachteilen) und verschiedene Inhaltselmente selbst zu positionieren und zu verwenden, oder auch nicht.
Die Idee ist nun, pro Kategorie mit mehreren Artikeln zu arbeiten, die im Startartikel "zusammengefasst" werden und über die Sortierreihenfolge sortiert werden können. Die Artikel selber (stellen dann die einzelnen sections dar) können dann je nach Wunsch konfiguriert werden - für die Konfigurationen werden verschiedenste Vorlagen zur Verfügung gestellt.
Das funktioniert grundsätzlich so auch schon ganz gut - aber die Perfomance ist nicht wirklich der Hammer. Im Moment löse ich es so, dass ich alle einzelnen Artiekl über file_get_contents auslese und anzeige. Nur einzelne Inhaltselemente auszulesen reicht nicht aus - weil die Artikelkonfigurationen auch Layouts behinhalten, die beibehalten werden sollen.
Gibt es eine Mölgichkeit "Contenido intern" den Inhalt eines Artikels zu genieren, ohne diese über den Umweg von file_get_contents zu gehen? Ich könnte mir vorstellen, das könnte wesentlich schneller sein - oder gibt es einen anderen Ansatz? Hat von euch schon jemand ein Modul oder Plugin entwickelt, dass das kann?
Vielen Dank für eure Antworten.
Im konkreten geht es darum, mit Contenido Websites zu erstellen "wie es in Wordpress so einfach geht". Der große Vorteil von Wordpress gegenüber Contenido sind Editoren, die es ermöglichen sich eine Seite ganz einfach selbst "zusammenzubauen" (mit allen Nachteilen) und verschiedene Inhaltselmente selbst zu positionieren und zu verwenden, oder auch nicht.
Die Idee ist nun, pro Kategorie mit mehreren Artikeln zu arbeiten, die im Startartikel "zusammengefasst" werden und über die Sortierreihenfolge sortiert werden können. Die Artikel selber (stellen dann die einzelnen sections dar) können dann je nach Wunsch konfiguriert werden - für die Konfigurationen werden verschiedenste Vorlagen zur Verfügung gestellt.
Das funktioniert grundsätzlich so auch schon ganz gut - aber die Perfomance ist nicht wirklich der Hammer. Im Moment löse ich es so, dass ich alle einzelnen Artiekl über file_get_contents auslese und anzeige. Nur einzelne Inhaltselemente auszulesen reicht nicht aus - weil die Artikelkonfigurationen auch Layouts behinhalten, die beibehalten werden sollen.
Gibt es eine Mölgichkeit "Contenido intern" den Inhalt eines Artikels zu genieren, ohne diese über den Umweg von file_get_contents zu gehen? Ich könnte mir vorstellen, das könnte wesentlich schneller sein - oder gibt es einen anderen Ansatz? Hat von euch schon jemand ein Modul oder Plugin entwickelt, dass das kann?
Vielen Dank für eure Antworten.
Re: "Onepager" mit Contendio
Noch eine Frage dazu. In dem verlinkten Artikel ist ja empfohlen concache zu nutzen - das habe ich jetzt versucht. Es wird aber eine Datei cms/inlcudes/concache.php dafür benötigt - die gibt es aber nicht in der Version 4.9.8?
Re: "Onepager" mit Contendio
Das ist gelinde gesagt, eine Theme-Katastrophe. Aber soll Wordpress damit zu Grunde gehen, Contenido wird es nicht.smac hat geschrieben:Im konkreten geht es darum, mit Contenido Websites zu erstellen "wie es in Wordpress so einfach geht". Der große Vorteil von Wordpress gegenüber Contenido sind Editoren, die es ermöglichen sich eine Seite ganz einfach selbst "zusammenzubauen" (mit allen Nachteilen) und verschiedene Inhaltselmente selbst zu positionieren und zu verwenden, oder auch nicht.
Die Idee ist nun, pro Kategorie mit mehreren Artikeln zu arbeiten, die im Startartikel "zusammengefasst" werden und über die Sortierreihenfolge sortiert werden können.
Vielleicht gibt es dazu ein jQuery, mit dem durch das Sortieren automatisch die Sortiernummer der Artikel geändert werden.
Das bräuchte zumindest auch ein Backend-Modul, das die Ajax Anfrage bearbeitet (und in der Datenbank die Zahlen ändert).
Das liegt sicher an der sehr abstrakten Architektur vom Core.aber die Perfomance ist nicht wirklich der Hammer
Hier bin ich raus.weil die Artikelkonfigurationen auch Layouts behinhalten, die beibehalten werden sollen.
Was soll da unterschiedliches beibehalten werden?
Templates (Vorlagen)?
Was hat file_get_contents mit einer Artikel-Generierung zu tun?Gibt es eine Mölgichkeit "Contenido intern" den Inhalt eines Artikels zu genieren, ohne diese über den Umweg von file_get_contents zu gehen?
Hiermit gehts vielleicht: http://api.contenido.org/con490/class-c ... ction.html (create)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: "Onepager" mit Contendio
Wir haben hier im Forum verschiedene Module gepostet (Artikellisten, Article Includes usw.), mit denen sich solche Dinge mit etwas Programmierkenntnis m.E. nach umsetzen lassen müssten:
Zur Modulübersicht:
http://forum.contenido.org/viewtopic.php?f=89&t=36453
LG
Zur Modulübersicht:
http://forum.contenido.org/viewtopic.php?f=89&t=36453
LG
Re: "Onepager" mit Contendio
Diese Auflistung kannte ich noch gar nicht, vielen Dank für den Tipp.
Vielleicht poste ich hier mal, was ich schon mache. Das folgende Modul ist im Startartikel eingebunden:
Ich hole mir also alle Artikel der Kategorie, lese den Inhalt aus und zeige diesen im Startartikel in einzelnen Sections untereinander an. Das "file_get_contents" möchte ich, wenn möglich, ersetzen. Ich benötige den Inhalt der einzelnen Artikeln und möchte gerne auf einen "direkteren" Weg darauf zugreifen, weil es so, bei vielen Artikeln lange dauert.
Da in den einzelnen Artikeln unterschiedlichste Varianten von Modulen und Inhalten vorhanden sein können, hilft es mir nicht per "getfield" oder "getContent" darauf zuzugreifen.
LG
Vielleicht poste ich hier mal, was ich schon mache. Das folgende Modul ist im Startartikel eingebunden:
Code: Alles auswählen
$collector = new cArticleCollector(array('idcat' => $idcat, 'order' => 'sortsequence', 'direction' => 'ASC'));
$collector->loadArticles();
$showarticles = array();
while($article = $collector->nextArticle()) {
$showarticle = array();
$showarticle['idart'] = $article->getField('idart');
$showarticles[] = $showarticle;
}
foreach($showarticles as $article) {
$url = "http://".$_SERVER['HTTP_HOST']."/front_content.php?idart=".$article['idart']."&include=yes";
$sectioncontent = file_get_contents($url);
echo "<section>";
echo $sectioncontent;
echo "</section>";
}
Da in den einzelnen Artikeln unterschiedlichste Varianten von Modulen und Inhalten vorhanden sein können, hilft es mir nicht per "getfield" oder "getContent" darauf zuzugreifen.
LG
Re: "Onepager" mit Contendio
Dann probiers zuerst mal mit dem Modul mpArticleInclude von xmurrix, das scheint mir hierfür dann der geeignetere Weg zu sein. Mein eigenes Modul ist einfacher gestrickt und holt nur Standard-CMS-Typen per getContent.
Re: "Onepager" mit Contendio
Nur so als Idee:
In der foreach-Schleife könnte doch mit der cAPIArticleCollection auf fetchByID($id) zugegriffen werden: http://api.contenido.org/con498/source- ... #1024-1039
Die Artikel ID hast du ja alle im Array $showarticles und jedes $article enthält dann die gesuchte Artikel ID.
fetchByID greift auf loadItem($id) zurück und das wirft dir jeweils ein Objekt aus, vermutlich mit allen Daten die einem Artikel entsprechen.
Wenn meine Überlegung richtig ist, hättest du damit was du suchst.
In der foreach-Schleife könnte doch mit der cAPIArticleCollection auf fetchByID($id) zugegriffen werden: http://api.contenido.org/con498/source- ... #1024-1039
Die Artikel ID hast du ja alle im Array $showarticles und jedes $article enthält dann die gesuchte Artikel ID.
fetchByID greift auf loadItem($id) zurück und das wirft dir jeweils ein Objekt aus, vermutlich mit allen Daten die einem Artikel entsprechen.
Wenn meine Überlegung richtig ist, hättest du damit was du suchst.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: "Onepager" mit Contendio
Hallo,
ich habe mich jetzt lange Zeit mit der Erstellung von "Onepager" mit Contenido beschäftigt. Gerne möchte ich meine Ergebnisse auch mit euch teilen.
Die Grundidee habe ich schon weiter oben beschrieben. Es geht darum, aus einer starren Layoutvorgabe auszubrechen und beliebig viele und verschiedene "Designelemente" untereinander zu positionieren. Diese werden als eigene <sections> aufgelistet. Ich gehe dafür so vor, dass ich eine Kategorie anlege, in die alle relevanten Artikel gelegt werden. Der Startartikel bekommt eine Vorlage, der das folgende Modul zugeordnet wird. Man kann sich das so wie die Übersichtsseite einer Newsübersicht vorstellen.
Alle anderen Artikel in der Kategorie können nun beliebige Vorlagen zugeordnet bekommen. Wichtig ist, dass diese Vorlagen immer ein Modul haben, in welchen alle Inhalte zusammengefasst werden, die auf dem Onepager dargestellt werden sollen. Also z.B. alle Textfelder und Bildelemente usw. in einem Modul. Zusätzlich benötigt dieses Modul folgende Codezeile am Anfang:
und folgende Codezeile am Ende des Moduls:
Somit bleibt von diesem Modul nur noch jener Code für den Onepager übrig, der zwischen diesen beiden Codezeilen steht.
Empfehlenswert ist es den Contenidocache zu aktivieren, dadurch laden die Seiten dann superschnell.
Vielleicht kann's ja wer brauchen
ich habe mich jetzt lange Zeit mit der Erstellung von "Onepager" mit Contenido beschäftigt. Gerne möchte ich meine Ergebnisse auch mit euch teilen.
Die Grundidee habe ich schon weiter oben beschrieben. Es geht darum, aus einer starren Layoutvorgabe auszubrechen und beliebig viele und verschiedene "Designelemente" untereinander zu positionieren. Diese werden als eigene <sections> aufgelistet. Ich gehe dafür so vor, dass ich eine Kategorie anlege, in die alle relevanten Artikel gelegt werden. Der Startartikel bekommt eine Vorlage, der das folgende Modul zugeordnet wird. Man kann sich das so wie die Übersichtsseite einer Newsübersicht vorstellen.
Code: Alles auswählen
<?php
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());
$collector = new cArticleCollector(array('idcat' => $idcat, 'order' => 'sortsequence', 'direction' => 'ASC'));
$collector->loadArticles();
$showarticles = array();
while($article = $collector->nextArticle()) {
$showarticle = array();
$showarticle['idart'] = $article->getField('idart');
$showarticle['alias'] = $article->getField('urlname');
$showarticles[] = $showarticle;
}
foreach($showarticles as $article) {
if ($article['idart'] == $idart) {
exit();
}
echo "<section id='".$article['alias']."'>\n";
$url = "http://".$_SERVER['HTTP_HOST']."/cms/front_content.php?idart=".$article['idart']."&include=yes&lang=".$lang;
$sectioncontent = file_get_contents($url);
echo $sectioncontent;
echo "</section>\n";
}
?>
Code: Alles auswählen
if (isset($_GET['include']) && $_GET['include'] == "yes") ob_end_clean();
Code: Alles auswählen
if (isset($_GET['include']) && $_GET['include'] == "yes") exit();
Empfehlenswert ist es den Contenidocache zu aktivieren, dadurch laden die Seiten dann superschnell.
Vielleicht kann's ja wer brauchen