Zum Inhalt springen

Probleme: ITEM_CATEGORY_SELECT_TEMPLATE

Erstellt am 8. April 2010 · 1 Antwort · letzte Antwort am 15. April 2010

Tags: Frage

Torti ·

Hallo,

versuche das ITEM_CATEGORY_SELECT_TEMPLATE zu nutzen. Dazu habe ich einfach das Beispiel in mein Template eingefügt

<!-- ###ITEM_CATEGORY_SELECT_TEMPLATE### begin 
 This subpart is used to display the regular list of categories. 
--> 
 <!-- ###CATEGORY_SINGLE### begin--> 
  ###ITEM_SINGLE_PRE_HTML### 
  <!--###LINK_CATEGORY### begin--> 
   ###LIST_LINK### 
  <!--###LINK_CATEGORY### end--> 
  ###ITEM_SINGLE_POST_HTML### 
 <!-- ###CATEGORY_SINGLE### end--> 

 <!-- ###CATEGORY_SINGLE_2### begin--> 
 <!-- ###CATEGORY_SINGLE_2### end--> 

 <div id="ArticleId">Keine Artikel gefunden</div> 

<!-- ###ITEM_CATEGORY_SELECT_TEMPLATE### end -->

Die Kategorien erscheinen und können auch ausgewählt werden. Nach der Auswahl verschwindet der inhalt des div "ArticleId". Das bleibt aber leer.

Jetzt meine Frage:

Fehlt mir da noch ein Marker, dass er mir dann eine Liste der Artikel ausgibt oder was mache ich falsch?!

Danke schon mal.

Torti ·

Weil ich keine andere Lösung gefunden habe, hab ich das ganze jetzt dadurch gelöst, dass ich in den php Klassen rumeditiert habe.

Ich mache einfach bei der Auswahl eine Weiterleitung auf die Shop-Seite mit den entsprechenden Parametern.

Dafür habe ich die Datei class.tx_ttproducts_javascript.php geändert. Für alle interessenten (alle Änderungen ab Zeile 292):

	    if (bShowArticle)	{
	        /* sb.options[0] = new Option(len, "keine Unterkategorie");*/
			var data = new Array();

	        data["'.$this->pibase->prefixId.'"] = new Array();
	        data["'.$this->pibase->prefixId.'"]["'.$catid.'"] = category;
	        var addr = location.href.split("?")[0];
	        var params = location.search.replace("?", "").split("&");
	        
	        for (i = 0; i < params.length; i++) {
	        if (params[i].split("=")[0] == "id") {
	        	page = params[i];
	        }
	        }
	        location.href = addr + "?" + page + "&tt_products[cat]=" + category;
	        
	        ';
		        /*if ($method == 'clickShow')	{
		        	$code .= $this->pibase->extKey.'_showArticle(data);';
		        }*/
				$code .= '
	    } else {
			/* nothing */

Meine Template habe ich dann auch noch geändert, damit sich das ganze auch die Auswahl merkt:

<!-- ###ITEM_CATEGORY_SELECT_TEMPLATE### begin 
 This subpart is used to display the regular list of categories. 
--> 
<div class="div_selcat">
 <!-- ###CATEGORY_SINGLE### begin--> 
  ###ITEM_SINGLE_PRE_HTML### 
  <!--###LINK_CATEGORY### begin--> 
   ###LIST_LINK### 
  <!--###LINK_CATEGORY### end--> 
  ###ITEM_SINGLE_POST_HTML### 
 <!-- ###CATEGORY_SINGLE### end--> 

 <!-- ###CATEGORY_SINGLE_2### begin--> 
 <!-- ###CATEGORY_SINGLE_2### end--> 

 <br /><br />
 </div> 

<script type="text/javascript">

    setValues();
    
    function setValues() {
        var params = location.search.replace("?", "").split("&");
        var selBox = document.getElementById("cat1");
        var selBox2 = document.getElementById("cat2");
        
        for (i = 0; i < params.length; i++) {
            if (params[i].split("=")[0] == "tt_products[cat]") {
                var cat = params[i].split("=")[1];
                if (c[0][cat][1] == 0) {
                    selBox.value = cat;
                }
                else {
                    selBox.value = c[0][cat][1];
                    fillSelect(selBox, 2, 1);
                    selBox2.value = cat;  
                }
                           
            }
        }
    }
</script>

<!-- ###ITEM_CATEGORY_SELECT_TEMPLATE### end -->

Das ganze ist darauf ausgelegt, dass nur eine Subkategorie vorkommt. Bei mehr als einer, müsste man dann das Javascript im Template noch anpassen. Der Rest sollte stimmen.

Vielleicht gibt es eine bessere Lösung, aber zumindest ist es eine funktionierende. Und das ist doch das was zählt ;-)