Ich versuche einen selbst definierten Marker (###KATEGORIE###) in der tt_products extension anzusprechen, was auch wunderbar funktioniert, jedoch wird nicht der Inhalt zurückgegeben (z.B. ErsteKategorie) sondern das Object (TEXT)!
Auszug aus dem standard-html-template von tt_products
<!-- ###ITEM_SEARCH### begin
Subpart for the search-form
-->
<div class="tt_products_item_search">
<form method="post" action="###FORM_URL###">
<table cellspacing="2" cellpadding="0">
<tr>
<td>Produktkategorie ###KATEGORIE### durchsuchen: </td>
<td> <input size="30" maxlength="50" type="text" id="swords" name="swords" value="###SWORDS###" class="suchtext" /></td>
<td><input type="image" src="fileadmin/images/struktur/go.jpg" name="Suchen" value="Search" alt="Suchen" /></td>
</tr>
</table>
</form>
</div>
<!-- ###ITEM_SEARCH### end -->
Hiermit spreche ich den Marker erfolgreich an
plugin.tt_products.templateFile = fileadmin/products/vorlage_prod_css.html
plugin.tt_products.marks.KATEGORIE = TEXT
plugin.tt_products.marks.KATEGORIE.value= ErsteKategorie
Und die Ausgabe sieht dann wie folgt aus:
<form method="post" action="index.php?id=16&L=0&tx_ttproducts_pi1[backPID]=16">
<table cellspacing="2" cellpadding="0">
<tr>
<td>Produktkategorie TEXT durchsuchen: </td>
<td> <input size="30" maxlength="50" type="text" id="swords" name="swords" value="" class="suchtext" /></td>
<td><input type="image" src="fileadmin/images/struktur/go.jpg" name="Suchen" value="Search" alt="Suchen" /></td>
</tr>
</table>
Was habe ich beim Ansprechen des Markers falsch gemacht?
Vielen Dank für die Hilfe
Thread aus "TypoScript » Anfängerfragen" verschoben.
Also Quellcode steht
foreach ($this->conf['marks.'] as $key => $value) {
$globalMarkerArray['###'.$key.'###'] = $value;
}
Schätze mal, es reicht wenn du schreibst
plugin.tt_products.marks.KATEGORIE = ErsteKategorie
das ist schlecht -> wollte eigentlich einen dynamischen inhalt einfügen (title).
danke für die hilfe
Wie beschränkst du die Suche?
Wenn du für jede Kategorie eine eigene Seite machst, könntest du ja jeweils ein TS-Template anlegen, in welche du die Kategorie schreibst. Oder du definierst den Seiten- oder Untertitel als Kategoriename und passt den Wert mit TS an.
wäre auch eine möglichkeit, ich möchte nur die Seite so dynamisch wie möglich gestalten, daher ist praktischer wenn man "deinen" code einfach ändert 😉
if (is_array($this->conf['marks.'])) {
foreach ($this->conf['marks.'] as $key => $value) {
$globalMarkerArray['###'.$key.'###'] = $this->cObj->cObjGetSingle($this->conf['marks.'][$key],$this->conf['marks.'][$key.'.']);
}
}
Klingt auch gut. Um die BC zu erhalten, sollte man vielleicht noch eine Abfrage
if (isset($this->conf['marks.'][$key.'.'])) {
...
} else {
$globalMarkerArray['###'.$key.'###'] = $value;
}
einfügen.
Am Besten, du schickst diesen Vorschlag an Franz Holzinger, den Maintainer von tt_products.
hallo zusammen,
bin gerade an genau dem gleichen problem
#787472 und habe mal eure vorschläge getestet.
boomi, dein snippet führt zu folgendem resultat:
Fatal error: Call to a member function cObjGetSingle() on a non-object in /var/www/typo/typo3conf/ext/tt_products/marker/class.tx_ttproducts_marker.php on line ...
b.kraus, deine modifizierung bewirkt, dass der marker überhaupt nicht angesprochen wird.
😢
da fehlt ja auch noch was...
nur wo ein objekt definiert ist, kann auch eines referenziert werden:
global $TSFE;
$this->cObj = $TSFE->cObj;
die fehlermeldung ist damit behoben. tun tut's aber trotzdem nicht 🙁