Zum Inhalt springen

Verständisproblem mit Wrap und Marker

Erstellt am 10. Januar 2008 · 8 Antworten · letzte Antwort am 23. Januar 2008

Tags: Frage

dnalor ·

Hallo Experten,

ich habe an meine Extension ein html Template gebunden.

Ein Aszug:

...
<!-- ###ITEM### -->
<br /><h1>###CATNAME### </h1>
###LINKTOSINGLEVIEW### ###PHONE### ###EMAIL### <br />
<!-- ###ITEM### -->
...

Es kann sein, dass der Marker ###CATNAME### leer ist. Dann habe ich in der Ausgabe eine leere <h1></h1>. Das ist natürlich nicht sehr schön. Also brauche ich im html-Template sowas:

Statt:

<h1>###CATNAME### </h1>

Das hier:

###CatWRAPPER### ###CATNAME### ###CatWRAPPER###

Ich verstehe nur nicht wo die Festlegung für den Marker ###CatWRAPPER### stehen muss und wie man das ganze anspricht.

Vielen Dank für Eure Hilfe!

Gruß
Roland

InforMedic ·

In der Doku ist $this->cObj->stdWrap eigentl. ganz gut beschrieben.
Ansonsten kannst du dir auch im ve_guestbook ankucken, wie dort die Farben und Wraps der constants an das Template gebunden werden.

Solltest Du nicht so fit sein mit der Typo3 API, dann empfehle ich dir diesen H1 Tag aus dem Template rauszunehmen und händisch in deinem Ergebniss angeben:

$markerArray['###CATNAME###'] = '<h1>'.$catname.'</h1>';

glaube mit stdWrap war das so:

$conf['wrap1'] = '<h1>|</h1>'; 
$markerArray['###CATNAME###'] = $this->cObj->stdWrap($conf['wrap1'], $catname);

oder so ähnlich....

gruß
Info

yahooooo ·
InforMedic schrieb
$conf['wrap1'] = '<h1>|</h1>'; 
$markerArray['###CATNAME###'] = $this->cObj->stdWrap($conf['wrap1'], $catname);

Hab da ein kleines Problem:

$conf['wrap1'] = '<h1>|</h1>';
$catname = "asdasd";
echo $this->cObj->stdWrap($conf['wrap1'], $catname);

Da müsste dann doch bei $catname = "asdasd" ein

<h1>asdasd</h1>

rauskommen, oder?

Bei mir kommt da nämlich nur das Pipe-Symbol ( | ) raus.

einpraegsam.​net ·

Beispiel:

$this->conf['mandatory.']['symbol'] = '*';
$this->conf['mandatory.']['wrap'] = '<span class="test">|</span>';
echo $this->pibase->pibase->cObj->wrap($this->conf['mandatory.']['symbol'],$this->conf['mandatory.']['wrap'],'|');

Sieht so aus, als ob du das falsch herum gemacht hast...

yahooooo ·

...sieht wohl so aus. Und wenn ich dann auch noch wrap() statt stdWrap() benutzt hätte, wäre ich schon längst fertig gewesen...und ich hab noch gedacht: "Müsste wrap() nicht eigentlich auch gehen?"

ARGH!

Danke!

dnalor ·

Hallo Experten,

meine EIngangsfrage ist aber immer noch nicht ganz geklärt. Wenn ich mir diese Zeile anschaue:

$this->conf['mandatory.']['wrap'] = '<span class="test">|</span>';

dann steht ja der <span> Tag wieder direkt im Quellcode. Ich möchte diese <span> mit Typoscript festlegen können. Allerdings weiß ich nicht wie ich erstens die Definition ins Typoscript bekomme (wo muss die stehen) und zweitens wie ich diese dann anspreche.

Gruß
Roland

yahooooo ·

Hi,

Mal angenommen, die Extension heißt tx_blafasel, und Du möchtest beispielsweise für das Plugin 1 dieser Ext einen Wert angeben. Dann sieht das Beispiel in etwa so aus:

plugin.tx_blafasel_pi1.mandatory.wrap = <span class="test">|</span>
Und das müsste dann ins SETUP

dnalor ·

Hallo Experten,

erstmal danke für die Antworten. Ich habe jetzt mit dem hier mal rumgespielt:

$conf['wrapLocation'] = '<h1>|</h1>';
$markerArray['###LOCATION###'] = $this->cObj->wrap($row['location'],$conf['wrapLocation'],'|');

Das funktioniert, aber wenn $row['location'] leer ist wird in der Ausgabe ein leeres <h1></h1> erzeugt. Muss ich das so abfangen:

if($row['location']) {
  $conf['wrapLocation'] = '<h1>|</h1>';
  $markerArray['###LOCATION###'] = $this->cObj->wrap($row['location'],$conf['wrapLocation'],'|');
} 
else {
  $markerArray['###LOCATION###'] = '';
}

Gibt es eine bessere Lösung?

Gruß
Roland