Zum Inhalt springen

plugin.tt_products.limit Selector

Erstellt am 22. November 2005 · 10 Antworten · letzte Antwort am 28. November 2005

Tags: Frage

dirkp ·

Hallo zusammen

Wie kann ich das Feld $plugin.tt_products.Limit im PHP script (z.B. class.tx_ttproducts_list_view.php) einen Wert zuweisen bzw. dem Benutzer eine Auswahlmöglichkeit geben.

dirkp

Flink ·

Dazu mußt du in tx_ttproducts_view_div::getItemMarkerArray einen neuen Marker einbauen und ihn durch ein eigenes SELECT ersetzen lassen.
Den vergebenen Namen mußt du in der /lib/class.tx_ttproducts_list_view.php Datei dann über t3lib_div::_GP('name') wieder auswerten und der Variable $this->config['limit'] zuweisen.

dirkp ·

Hallo Herr Flink,

irgendwie ist hier der Wurm drin.

ich habe folgendes in die Datei "class.tx_ttproducts_view_div.php" in Zeile 159 folgendes eingefügt.

$markerArray['###LIMIT_SELECTOR###'] = $limit;
$limit = 
'<select size="1" name="limit" onchange="submit()">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>';

//echo ($limit);

"Das echo gibt mir eine Auswahlbox aus!"

In die Datei "class.tx_ttproducts_list_view.php" über "if ($out)" folgendes:

$limit = t3lib_div::_GP('limit');
echo ($limit);

Echo ergibt 0.

Was mache ich falsch?

Desweiteren bekomme ich aus der class.tx_ttproducts_list_view.php das limit nicht gefüllt ($this->config['limit'])

dirkp

Flink ·
 onchange="submit()

ist falsch und gehört weg.
Der Select muß innerhalb des Form-Elements eingetragen sein, das seinen eigenen Send-Button hat.

dirkp ·

Hallo zusammen

folgendes

class.tx_ttproducts_view_div.php
in der Funktion: getItemMarkerArray

$markerArray['###LIMIT###'] = $limit;

class.tx_ttproducts_list_view.php
über "if ("$out")"

$limit = intval(t3lib_div::_GP('limit'));

im Template unter <!-- ###ITEM_LIST_TEMPLATE### begin-->

<form method="post" action="" name="###FORM_NAME###">
 <tr>
  <td>
   <select size="1" name="recs[tt_products][limit]">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
   </select>
  </td>
  <td>
   <input type="submit" name="limit" /></input>
  </td>
 </tr>
</form>

irgendetwas mach ich falsch o.O

Flink ·
dirkp schrieb

class.tx_ttproducts_view_div.php
in der Funktion: getItemMarkerArray

$markerArray['###LIMIT###'] = $limit;

class.tx_ttproducts_list_view.php
über "if ("$out")"

$limit = intval(t3lib_div::_GP('limit'));

irgendetwas mach ich falsch o.O

Die Sichtbarkeit von $limit erstreckt sich immer nur auf den Programm-Block, wo die Variable zugewiesen wurde. $markerArray['###LIMIT###'] wird also immer nur leer (NULL) sein, wenn sie nicht im selben Programmblock definiert oder als Parameter der Funktion übergeben wurde.

dirkp ·

Hallo

Aus meiner Select-Box

<select size="1" name="limit" onchange="submit()">
 <option value="1" selected="">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
</select>

wird durch submit der ausgewählte Wert an den Marker in der Datei "class.tx_ttproducts_list_view.php" gesendet.

$markerArray['###LIMIT###'] = t3lib_div::_GP('limit');

Bsp:
Auswahl 2 (<option value="2">2</option>)
Ausgabe ###LIMIT### = 2

Frage:
Wie bekomme ich den Wert (2) in die Variable "$this->config['limit']"?

Flink ·
dirkp schrieb

Frage:
Wie bekomme ich den Wert (2) in die Variable "$this->config['limit']"?

$this->config['limit'] = t3lib_div::_GP('limit');

in
pi1/class.tx_ttproducts_pi1.php
function main_products($content,$conf)

dirkp ·

Danke, habe ich schon herausgefunden, aber trotzdem vielen Dank für deine schnelle Hilfe.

Problem:

limit = 50
Nach meiner Auswahl aus der Select-Box ist limit = 2
Die erste Seite wird mir richtig angezeigt (2 Artikel).
+ BROWSE_LINKS (1 2 3)

Wenn ich die 2. Seite aufrufe wird mein limit wieder überschrieben. (limit = 50)
limit soll erst überschrieben werden, wenn eine andere auswahl getroffen wurde.

dirkp

dirkp ·

Hallo zusammen,

Leider brachten die Antworten keinen Erfolg.

Ich lege die ganze Sache zum jetzigen Zeitpunkt auf Eis.

o.O

1. this->config['limit'] = t3lib_div::_GP('limit');

in
pi1/class.tx_ttproducts_pi1.php
function main_products($content,$conf)

funktioniert auch nicht, weil die Selectbox keinen Wert versendet, wenn sie nur angezeigt wird. Somit ist das Feld leer.

dirkp