Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> KOMPLETTER Modulinhalt (inkl. Wiederholungen) für andere Seite grabben, ... auch mal ein Beitrag von mir zu dieser Problematik ;)
saschapi
Beitrag 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! wink.gif

LG Sascha


--------------------
Go to the top of the page
 
+Quote Post
Taturo
Beitrag 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
Go to the top of the page
 
+Quote Post
saschapi
Beitrag 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.


--------------------
Go to the top of the page
 
+Quote Post
saschapi
Beitrag 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! smile.gif

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>


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 29.4.24 - 07:40

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.