Anzeige Text innerhalb listview

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Beitragvon haydi » Di 15. Apr 2003, 15:55

Hallo,

auf einer Suchergebnisseite, wird der gefundene Text erst abgeschnitten und dann dargestellt.
Die Eingabefelder des Textes heißen auf allen Seiten gleich ("copytext"), stehen nur bei manchen Templates innerhalb eines we:blocks.

Folgender Code steht innerhalb der listview:

<?php
$ytext=$lv->f("copytext");
$ypfad=$lv->f("WE_PATH");
$space=" ";
$cuton=90;

while ($teller <= $cuton) {
if (substr($ytext,$cuton-$teller,1)==$space) {
$ytext=substr($ytext,0,$cuton-$teller);
break;
}
$teller++;
}
if ($ytext != "") {
echo "$ytext ... <a href="$ypfad">> mehr</a>";
}
?>

Die Anzeige des Textes funktioniert nur, wenn sich der "copytext" nicht innerhalb eines we:block befindet. Wie kann ich auch diesen Text abfangen und darstellen. hab darüber nichts gefunden.
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Dirk Einecke
Senior Member
Beiträge: 3735
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Karlsruhe
Kontaktdaten:

Beitragvon Dirk Einecke » Di 15. Apr 2003, 16:21

Hi.

Eingabe auf der Detailseite:
<we:block name="test">
<we:input type="text" name="mytest" size="70" />
</we:block>

Ausgabe auf der Übersichtsseite:
<we:block name="test">
<we:field name="mytest" type="text" />
</we:block>

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Beitragvon haydi » Di 15. Apr 2003, 17:42

Vielen Dank für die Antwort.

Da jedoch nicht der ganze Inhalt des we:input Tags "copytext" angezeigt werden soll, hab ich das PHP-Script gebastelt.
Bei den we:input Tags der Detailseiten kann es sein, dass sie auch mal nicht innerhalb eines we:block Tags stehen.
Außerdem haben die we:block Tags in den diversen Templates unterschiedliche Namen.
Der Name des we:input Tags lautet jedoch stets "copytext" (auch innerhalb eines we:block).
Hoffe, ich habe das Problem einigermaßen verdeutlicht...
Wie komme ich an den Inhalt, ohne den Blocknamen zu kennen? Oder gibt es eine andere Lösung?
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Dirk Einecke
Senior Member
Beiträge: 3735
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Karlsruhe
Kontaktdaten:

Beitragvon Dirk Einecke » Di 15. Apr 2003, 19:31

Hi.

Wenn man die genauen Namen nicht kennt, dann kommt man nicht an den Text. Ein workaround wäre noch, dass man auf der Detailseite die ganzen Inhalte der Felder (auch die aus dem <we:block>) im Hintergrund (für den User nicht sichtbar) in ein ein einziges Feld schreibt und dann dieses abruft.

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Beitragvon haydi » Mi 16. Apr 2003, 13:37

danke für die Antwort.

Das mit dem versteckten Feld ist eine sehr gute Idee, war mir dann aber doch zu umständlich :wink:
Ich habe nun den Blöcken in den verschiedenen Templates den gleichen Namen gegeben ("liste"), das auszulesende Feld heißt "copytext".

Ich wollte nun auch diese Felder auslesen und den Text beschneiden, es funktioniert aber nicht. Habe das Script nun auf folgendes reduziert, um die grundsätzliche Funktion zu testen. Es geht aber nicht; es kommt auch keine Fehlermeldung. Die Variable ist einfach leer.
Was ist falsch?

<?php
$ytext=$lv->f("copytext");
$ypfad=$lv->f("WE_PATH");
$space=" ";
$cuton=90;

while ($teller <= $cuton) {
if (substr($ytext,$cuton-$teller,1)==$space) {
$ytext=substr($ytext,0,$cuton-$teller);
break;
}
$teller++;
}

if ($ytext != "") {
echo "$ytext ... <a href="$ypfad">> mehr</a>";
} else {
$block = unserialize($we_doc->getElement("liste"));
for($i=0; $i<sizeof($block); $i++)
{
$nr = $block[$i];
$feld= $we_doc->getElement("copytextblk_liste_".$nr);
echo "Der Inhalt des Feldes copytext ist: " . $feld . "
";
}
}
?>
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

Benutzeravatar
haydi
Senior Member
Beiträge: 645
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Hirschberg
Kontaktdaten:

Beitragvon haydi » Di 22. Apr 2003, 18:46

Wie rufe ich per PHP innerhalb eines listviews textarea-felder ab, die wiederum auf der detailseite im we:block stehen?

we:block hat den namen liste
we:textarea hat den namen copytext

habe es so umgesetzt, es funktioniert aber nicht, die variable $feld ist leer:

$block = unserialize($we_doc->getElement("liste"));
for($i=0; $i<sizeof($block); $i++)
{
$nr = $block[$i];
$feld= $we_doc->getElement("copytextblk_liste_".$nr);
echo "Der Inhalt des Feldes copytext ist: " . $feld . "
";
}

das funktioniert wohl nicht, weil es in einem listview eingebunden ist. Wie kann es umgesetzt werden?
Heidi Wetzel
Internet-Applikationen & Webseiten-Erstellung
https://www.heidi-wetzel.de

dextr0

gleiches Problem

Beitragvon dextr0 » Mi 16. Jul 2003, 05:26

Hallo,

gab's schon eine Antwort auf das Problem des leeren Feldes?
Habe nämlich das gleiche Problem dass das Script von we-devedge nicht funktioniert. Habe es auch mit we:block um das Script herum versucht, aber das gibt nur Fehlermeldungen.

In stiller Erwartung

Shrek

Beitragvon Shrek » Mo 16. Aug 2004, 12:44

[quote=""haydi""]Wie rufe ich per PHP innerhalb eines listviews textarea-felder ab, die wiederum auf der detailseite im we:block stehen?

hi,
weiß nicht, ob es sich schon erledigt hat, ich habe das ganze wie folgt gelöst:

Code: Alles auswählen

<we:listview type="document" name="subnavi" doctype="Navigation">
		<we:repeat>
			<?php
			$block = unserialize($lv->f("MainNavigation"));
			// Block abarbeiten	
			for($iZaehler=0;$iZaehler<sizeof($block);$iZaehler++)
			{
				$nr = $block[$iZaehler];
				$sNavi = $lv->f("SubNavigation_nameblk_MainNavigation_".$nr);
				echo("<!-- ".$iZaehler.": ".$sNavi."-->n");
			}
			?>
		</we:repeat>
	</we:listview>
mfg


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

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