WebEdition Links manuell auflösen

Fragen zu PHP.
Fragen zu we:Tags bitte im Forum webEdition Templates erstellen (we:Tags) posten.
Bernhard_Jung
Junior Member
Beiträge: 9
Registriert: Fr 20. Dez 2013, 15:51

WebEdition Links manuell auflösen

Beitragvon Bernhard_Jung » Mo 13. Okt 2014, 13:56

Hallo, ich habe eine WebEdition-Seite in der Webeditiondokumente manuell ausgegeben werden. Es handelt sich dabei um eine Übersichtsseite für Newsmeldungen. Die Benutzer legen die Newsmeldungen normal als einzelne WebEdition-Dokumente eines bestimmten Typs an. Die einzelnen Dokumente selbst werden aber nicht verlinkt und sind nicht dazu gedacht aufgerufen zu werden. Die Ausgabe geschieht gesammelt auf einer Übersichtsseite, welche die Einträge chronologisch untereinander ausgibt.

Dazu wird in der Übersichtsseite mit we:listview über die Liste aller Dokumenten des Typs gelaufen und diese werden mit Hilfe von we_webEditionDocument geladen. Aus dem dem geladenen we_webEditionDocument wird dann der Text der Meldung extrahiert und auf der Seite ausgegeben. Das ganze hat aber das Problem, dass z. B. Links in den Texten der Meldungen nicht korrekt aufgelöst werden. Wenn ich mir den Link im Quelltext ansehe, dann steht dort etwas wie href="document:1234". Ich vermute, dass hier der Text erst noch von WebEdition weiterverarbeitet werden muss, damit der Link aufgelöst werden kann. Liege ich damit richtig? Gibt es eine Möglichkeit dies zu tun?

Hier noch ein Auszug aus dem Code, der zur Ausgabe verwendet wird, falls meine Erklärung nicht verständlich sein sollte.

Code: Alles auswählen

<we:listview>
	<?php ob_start(); ?><we:field name="WE_ID" /><?php $id = ob_get_contents(); ob_end_clean(); ?>
	$doc = new we_webEditionDocument();
	$doc->initByID($id);
					
	$content = unserialize($doc->elements["content"]["dat"]);
					
	foreach($content as $cont) {
		if($doc->elements["content_typeblk_content_".$cont]["dat"]=="Textblock") {
			$textblock = $doc->elements["contentblk_content_".$cont]["dat"];
			print $textblock; 
		}
	}
</we:listview>
Meine Vermutung ist, dass ich $textblock noch durch eine WebEdition-Funktion schicken muss, welche Links und vermutlich auch andere Informationen verarbeitet.

ThomasGoebe

Re: WebEdition Links manuell auflösen

Beitragvon ThomasGoebe » Di 14. Okt 2014, 00:38

Hallo Bernhard_Jung,

willkommen im Forum. Ihr Problem lässt sich sehr leicht lösen, wenn Sie die vorgesehenen webEdition Tags für die Ausgabe nutzen. Für mich ist kein Grund erkennbar, warum Sie hier PHP einsetzen.
Ich gehe davon aus, dass die Vorlage mit den Einzelnachrichten ungefähr so aussieht:

Code: Alles auswählen

<we:block name="content">
<we:input name="content_type" />
<we:textarea name="content" />
<we:block>
So sieht es dann mit webEdition Tags aus:

Code: Alles auswählen

<we:listview>
  <we:repeat>
    <we:block name="content">
       <we:ifField name="content_type" match="Textblock">
          <we:field name="content" />
       </we:ifField>
    </we:block>
  </we:repeat>
</we:listview>
Wenn die Vorlage anders aussieht, sind eventuell noch leichte Anpassungen nötig.

Bernhard_Jung
Junior Member
Beiträge: 9
Registriert: Fr 20. Dez 2013, 15:51

Re: WebEdition Links manuell auflösen

Beitragvon Bernhard_Jung » Fr 17. Okt 2014, 12:46

Vielen Dank erst mal für die Antwort.

Ich hab das Codebeispiel etwas vereinfacht und dadurch fehlt ein wichtiger Teil. Statt des Prints wird der Textbock in ein Array aufgenommen. Gleichzeitig wird ein Array mit einem Datum im Format yyyy-mm-dd erzeugt. Das Datum ist ein Feld des Artikels. Nachdem die Arrays erzeugt wurden, wird alles nach Datum sortiert und erst dann per print ausgegeben.

Das ist wahrscheinliche der Grund warum keine Tags verwendet werden. Der Code stammt nicht von mir und ich habe auch nicht all zu viel Erfahrung mit WebEdition. Vielleicht genügt es, wenn ich nur die ID der Beiträge sortiere und dann alles an Hand der sortierten ID-Liste ausgebe, oder gibt es eine geschicktere Lösung?

ThomasGoebe

Re: WebEdition Links manuell auflösen

Beitragvon ThomasGoebe » Fr 17. Okt 2014, 14:45

Hallo Berhard_Jung,

auch das Aufnehmen in ein Array geht.

Code: Alles auswählen

<we:listview>
  <we:repeat>
    <we:block name="content">
       <we:ifField name="content_type" match="Textblock">
          <we:field name="content"  to="global" nameto="inhalt"/>
         <?php
           $meinArray[$meinKey] = $GLOBALS['inhalt'];
         ?>
       </we:ifField>
    </we:block>
  </we:repeat>
</we:listview>

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: WebEdition Links manuell auflösen

Beitragvon mokraemer » Fr 17. Okt 2014, 15:57

Ab 6.3.9 auch ohne den php-Teil:

Code: Alles auswählen

<we:listview>
  <we:repeat>
    <we:block name="content">
       <we:ifField name="content_type" match="Textblock">
          <we:field name="content"  to="global" nameto="meinArray[]"/>
       </we:ifField>
    </we:block>
  </we:repeat>
</we:listview>
Mein Array:
<?php
p_r($GLOBALS['meinArray']);
?>
webEdition-Kern-Entwickler

ThomasGoebe

Re: WebEdition Links manuell auflösen

Beitragvon ThomasGoebe » Fr 17. Okt 2014, 16:02

@mokraemer, ohne php aber nur, wenn Du nicht wie vom Poster beschreiben einen eigenen Key haben willst. In diesem Fall einen Zeitwert vermutlich für eine nachträgliche Sortierung der Elemente.

Bernhard_Jung
Junior Member
Beiträge: 9
Registriert: Fr 20. Dez 2013, 15:51

Re: WebEdition Links manuell auflösen

Beitragvon Bernhard_Jung » Mo 20. Okt 2014, 13:19

Vielen Dank für die Hilfe. Das sollte mein Problem lösen.


Zurück zu „PHP“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste