KOMPLETTER Modulinhalt (inkl. Wiederholungen) für andere Seite grabben, ... auch mal ein Beitrag von mir zu dieser Problematik ;) |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
KOMPLETTER Modulinhalt (inkl. Wiederholungen) für andere Seite grabben, ... auch mal ein Beitrag von mir zu dieser Problematik ;) |
Mon. 3. August 2009, 21:22
Beitrag
#1
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Ich habe eine eigenes kleines Modul geschraubt, dass so aussieht:
CODE <div class="videodetails"> <cms:mod type="image" id="1" menuoptions = "false" title="Bild des Experten (122px × 74px)" mode="image" /> <div class="details"> <h3><cms:mod type = "text" id = "1" title = "Name des Experten" menuoptions = "false" /></h3> <h4>Thema:</h4> <div class="desc"><cms:mod type = "text" id = "2" title = "Titel des Vortrags" menuoptions = "false" /></div> <h4>Livechat:</h4> <div class="termin"><cms:mod type = "text" id = "3" title = "Zeit für den Live Chat" menuoptions = "false" /></div> <a href="<cms:mod type = "text" id = "4" title = "YouTube Link (URL in Video Details)" menuoptions = "false" />" class="hidden youtube">Video öffnen</a> <cms:mod type = "typegroup" title="Videodetails" elements= "text[1], image[1], text[2], text[3], text[4]" menuoptions = "advanced" /> </div> </div> Wie man an den "Menuoptions = 'advanced'" sieht, wird das ganze Modul so genutzt, dass mehrere dieser kleinen Häppchen erstellt werden. Ich möchte jetzt das KOMPLETTE Modul inkl. all seiner Wiederholungen auf einer anderen Seite exakt so wiedergeben. Was kann ich da nutzen? Mit includeContent geht das IMHO nicht, da ich nicht genau weiß wieviele Wiederholungen des gesamten Moduls es gibt. Kann ich da was mit der ContentAPI machen? Oder gibt es da von jemandem eine gute Idee? Kann ich nicht irgendwie den ganzen HTML-Schrössel zwischen <!-- START --> und <!-- END --> absaugen? Freu mich auf Euer Feedback! LG Sascha -------------------- |
|
|
Wed. 5. August 2009, 11:03
Beitrag
#2
|
|
Advanced Member Gruppe: AdvancedMembers Beiträge: 328 Mitglied seit: 29.08.2006 Wohnort: Konstanz / Bodensee Mitglieds-Nr.: 216 |
Hallo Sascha,
mit dem Problem schlage ich mich auch schon seit längerem rum. Einfach Inhalt von einer Seite auf anderen Seiten wiederholen. Ich habe meistens Teaserlister/Mr.List dafür genutzt, aber dadurch, dass von jedem Element nur eins angezeigt wird, stösst man schnell an seine Grenzen. Deine Idee, einfach alles zwischen 2 Markern zu grabben hat mich daran erinnert, dass ich dafür einen Hack habe, bin nur noch nicht auf die Idee gekommen, den auch für Sefrengo zu nutzen. Etwas modifiziert funktioniert der bei mir: Neues Modul "Sefrengo Content Repeater" für die Inhaltskopie erstellen In die Frontendausgabe: CODE <CMSPHP> /* '########################################################################## 'Sefrengo Content Repeater '########################################################################## */ // url der orginalseite eintragen $handle = fopen("http://domain.de/projekt01/", "r"); while (!feof($handle)) { $linearray[] = fgets($handle, 4096); } fclose ($handle); foreach ($linearray as $value) { // echo $value; /// werte als string einlesen $strDataToString .= $value; } // start marker eintragen $strVor = strstr($strDataToString, '<!--START 1//-->'); // end marker eintragen $iLength = strpos($strVor, '<!--END 1//-->'); $strAusgabe = substr($strVor,0,$iLength); echo $strAusgabe; </CMSPHP> Probiers mal aus und berichte. Gruss, Andreas |
|
|
Wed. 5. August 2009, 12:16
Beitrag
#3
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Hab ich mir angeschaut. Gibt leider eine Fehlermeldung:
QUELLTEXT Warning: fopen(XXX.XX/projekt01/index.php?idcatside=1) [function.fopen]: failed to open stream: Connection refused in /var/www/XXX.XX/htdocs/projekt01/cms/inc/backend.php(157) : eval()'d code on line 110 Ansonsten hab ich mich auch noch an einen alten Thread von mir erinnert wo es um die contentAPI und die Wiederholungen des Inhalts ging. Das dürfte auch helfen um eine reine Datenbanklösung zu bauen. Werde das auch noch mal in Erwägung ziehen und vielleicht einfach die einzelnen CMS:tag Elemente auslesen und dann in ein neues Modultemplate einbauen. -------------------- |
|
|
Wed. 5. August 2009, 16:04
Beitrag
#4
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Mit der ContentAPI geht das prima!
Hier das Beispiel für meinen Fall oben: CODE <CMSPHP>
// Object erzeugen $_sf_content =& sf_factoryGetObjectCache('PAGE', 'ContentCollection'); // Styler definieren wenn die Ausgabe wie im Core gewünscht wird. // Wenn kein spezifischer Styler definiert ist erfolgt die Ausgabe des Inhalts immer so wie die Daten in der DB stehen. //$_sf_content->setStyler('ContentStylerHTML'); // Seite von welcher der Inhalt geladen werden soll $_sf_content->setIdside(1); // Container von welchem der Inhalt geladen werden soll; // Wenn keine Container angegeben wird, werden alle Inhalte der Seite geladen und // der entsprechden Container muss in der get-Funktion angegeben werden. $_sf_content->setContainer(1000); // Daten aus der DB laden $_sf_content->generate(); // Ausgabe der Daten. // Hier von id=2 und der ersten Wiederholung der textarea. $mod["repeat"] = $_sf_content->getNumberCount(); for($count = 1; $count < $mod["repeat"]; $count++) { echo '<div class="videodetails"> <img src="'.$_sf_content->getImage("image",1,$count).'" alt="'.$_sf_content->getText('',1,$count).'" /> <div class="details"> <h3>'.$_sf_content->getText('',1,$count).'</h3> <h4>Thema:</h4> <div class="desc">'.$_sf_content->getText('',2,$count).'</div> <h4>Livechat:</h4> <div class="termin">'.$_sf_content->getText('',3,$count).'</div> <a href="'.$_sf_content->getText('',4,$count).'" class="hidden youtube">Video öffnen</a> </div></div>'; } </CMSPHP> -------------------- |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 29.4.24 - 07:40 |