Wie setze ich get_product_list als Plugin um

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
Hallo,

ich habe derzeit folgendes in meiner TPL und möchte es gerne als Plugin realisieren.

PHP:
{get_product_list kSuchspecial=4 nSortierung=11 nLimit=10 cAssign="myProducts"}
{if $myProducts}
    {foreach name=custom from=$myProducts item=oCustomArtikel}
        <a href="{$oCustomArtikel->cURL}"><img src="{$oCustomArtikel->Bilder[0]->cPfadNormal}" title="#caption{$oCustomArtikel->kArtikel}"/></a>
    {/foreach}
{/if}

Wie bekomme ich das hin? Ich habe schon im Forum gesucht, aber nichts entsprechendes gefunden.

Vielen Dank im Voraus und Grüße,

Daniel
 

Bjoern3003

Offizieller Servicepartner
SPBanner
13. November 2006
504
4
AW: Wie setze ich get_product_list als Plugin um

Schau dir die entsprechende Funktion im php Ordner deines templates an. Da sollte alles für dich drin sein was du brauchst :)
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Hallo Bjoern,

die Funktion in der functions.php habe ich gefunden. Wie kann ich die denn vom Plugin aus verwenden oder geht das nicht? Ich brauche in meinem Plugin letztlich auch ein Array von Artikeln als Resultat, weil ich mir meinen eigenen CSS3 Slider bauen will, der die Bilder und Artikeldetails anzeigt.

Sorry, dass ich hier solche Fragen stelle, aber ich bin neu in PHP und mit den Beispielen in der Doku bin ich nicht weitergekommen.

Danke & Grüße, Daniel
 

Bjoern3003

Offizieller Servicepartner
SPBanner
13. November 2006
504
4
AW: Wie setze ich get_product_list als Plugin um

Bau dir doch die Funktion einfach nach. Die greift sicher auch nur auf das Artikel Objekt zu und verarbeitet das.
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Ich habe die Funktion nachgebaut (Copy & Paste trifft es eher)

Die Deklaration sieht wie folgt aus:

PHP:
function product_list($params)
{
   ...
}

$params ist ein Array von Parametern welches ich der Funktion übergebe. Das Array wird dann in etwa so ausgelesen:
PHP:
$nLimit = intval($params['nLimit']);

Im Template habe ich die Funktion wie folgt aufgerufen:

PHP:
{get_product_list kSuchspecial=4 nSortierung=11 nLimit=10 cAssign="myProducts"}

wie aber rufe ich die Methode von PHP aus auf, bzw wie übergebe ich die Parameter? Ich habe es so probiert, aber das funktioniert scheinbar nicht:

PHP:
$artikelliste = product_list($params = array("kSuchspecial=4", "nSortierung=11", "nLimit=10"));

Wie mach ich es richtig?
 
  • Gefällt mir
Reaktionen: Horus Sirius

Bjoern3003

Offizieller Servicepartner
SPBanner
13. November 2006
504
4
AW: Wie setze ich get_product_list als Plugin um

Ich glaube dir hier php zu erklären wäre das falsche forum dafür. Dort in der klammer wo du die Funktion aufrufst kommen die variablen rein, die du Inder Funktion verarbeiten möchtest. Rückgabe z. B. an dein $artikelliste geschieht mit einem return innerhalb der Funktion.
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Hi Björn,

das Grundprinzip ist schon klar...ich bin seit 10 Jahren Java Entwickler. Das mit dem return ist auch klar, meine Frage ist nur wie genau ich das Parameterarray an meine Funktion übergebe. Googeln hat mich hier leider nicht weitergebracht, deshalb meine Frage. Aktuell habe ich mir so beholfen, dass ich die Werte die ich eigentlich übergeben möchte in der Funktion statisch setze. Das soll so aber nicht bleiben. Ich könnte natürlich alle Parameter in der Funktionsdeklaration einzeln aufnehmen, aber die Funktionsdeklaration wäre dann sehr lang.

Also nochmal die Frage: Wenn in meinem Beispiel oben $params eine Arrayliste von Parametern ist, wie übergebe ich so eine Liste dieser Funktion?

Danke und Grüße, Daniel
 

Bjoern3003

Offizieller Servicepartner
SPBanner
13. November 2006
504
4
AW: Wie setze ich get_product_list als Plugin um

wie gross ist deine Plugin Datei in Zeilen?

Poste die doch mal, dann gucken wir mal drüber und versuchen zu unterstützen.
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Jetzt komm ich echt nicht mehr weiter: In meinem Beispiel unten haben ich die Funktion aus der functions.php kopiert und verwende sie weiter unten. Die Funktino tut auch ganz prima was sie soll, aber dabei tritt folgendes Phänomen auf: der Code wird über den Hook 140 geladen und der Plugincode genau so ausgeführt wie ich es erwarte. Wenn ich dann bei einem Produkt über die Selectbox die Variation ändern möchte, dann lädt sich die Seite zu tode und es passert nichts mehr. Ich kann die Variation einfach nicht ändern oder zurücksetzen.

Offenbar gib es ein Problem mir der kopierten Funktion, denn wenn ich die komplett auskommentiere, dann tritt der eben beschriebene Fehler nicht mehr auf. Ich dachte zunächst, dass es evt. an der Zeile require_once(PFAD_ROOT . PFAD_INCLUDES . "filter_inc.php"); liegen könnte, aber wenn ich nur die Zeile auskommentiere und die Funktion nicht aufrufe, dann tritt das Phänomen trotzdem auf.

Kann mir jemand helfen? Das blicke ich echt nicht.

Code:
<?php 
    
    function product_list()
    {
        require_once(PFAD_ROOT . PFAD_INCLUDES . "filter_inc.php");
        
        $params['nLimit']="10";
        $params['kSuchspecial']="4";
        $params['nSortierung']="11";
        
        $nLimit = intval($params['nLimit']);
        Jtllog::writeLog('nLimit: '.$params['nLimit'], JTLLOG_LEVEL_DEBUG);
        //$cAssing = "oCustomArtikel_arr";
        //if(isset($params['cAssign']) && strlen($params['cAssign']) > 0)
        //    $cAssing = $params['cAssign'];
        
        $cMerkmalFilter_arr = setzeMerkmalFilter(explode(";", $params['cMerkmalFilter']));
        $cSuchFilter_arr    = setzeSuchFilter(explode(";", $params['cSuchFilter']));
        $cTagFilter_arr     = setzeTagFilter(explode(";", $params['cTagFilter']));
        
        $cParameter_arr = array("kKategorie" => $params['kKategorie'],
                                "kHersteller" => $params['kHersteller'],
                                "kArtikel" => $params['kArtikel'],
                                "kVariKindArtikel" => $params['kVariKindArtikel'],
                                "kSeite" => $params['kSeite'],
                                "kSuchanfrage" => $params['kSuchanfrage'],
                                "kMerkmalWert" => $params['kMerkmalWert'],
                                "kTag" => $params['kTag'],
                                "kSuchspecial" => $params['kSuchspecial'],
                                "kNews" => $params['kNews'],
                                "kNewsMonatsUebersicht" => $params['kNewsMonatsUebersicht'],
                                "kNewsKategorie" => $params['kNewsKategorie'],
                                "kUmfrage" => $params['kUmfrage'],
                                "kKategorieFilter" => $params['kKategorieFilter'],
                                "kHerstellerFilter" => $params['kHerstellerFilter'],
                                "nBewertungSterneFilter" => $params['nBewertungSterneFilter'],
                                "cPreisspannenFilter" => $params['cPreisspannenFilter'],
                                "kSuchspecialFilter" => $params['kSuchspecialFilter'],
                                "nSortierung" => $params['nSortierung'],
                                "MerkmalFilter_arr" => $cMerkmalFilter_arr,
                                "TagFilter_arr" => $cTagFilter_arr,
                                "SuchFilter_arr" => $cSuchFilter_arr,                    
                                "nArtikelProSeite" => $params['nArtikelProSeite'],
                                "cSuche" => $params['cSuche'],
                                "seite" => $params['seite'],
                                "cArtAttrib" => $params['cArtAttrib']);
        
        $NaviFilter;
        $NaviFilter = baueNaviFilter($NaviFilter, $cParameter_arr);
        
        // Artikelattribut
        if(isset($cParameter_arr['cArtAttrib']) && strlen($cParameter_arr['cArtAttrib']) > 0)
            $NaviFilter->ArtikelAttributFilter->cArtAttrib = $cParameter_arr['cArtAttrib'];
        
        //Filter SQLs Objekte
        $FilterSQL = bauFilterSQL($NaviFilter);
        
        // Artikelliste
        $oArtikel_arr = gibArtikelKeys($FilterSQL, $nLimit, $NaviFilter, true);
        
        return $oArtikel_arr;
    }


    $artikelliste = product_list($params = array("kSuchspecial=4", "nSortierung=11", "nLimit=10"));
    $artikelAnzahl = count($artikelliste);
    Jtllog::writeLog('Anzahl Artikel: '.$artikelAnzahl, JTLLOG_LEVEL_DEBUG);
        
    $cHTML = "Test";
            
    pq($cHTMLContainerID)->append("\n".$cHTML);
?>
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Hallo Bjoern,

weis ich, das das quatsch ist. Das war übrigens mein Problem was ich 4 Post weiter oben beschrieben habe. Das ist jetzt aber überhaupt nicht mein Problem, sondern das Problem ist, dass das Plugin aus einem mir absolut nicht nachvollziehbarem Grund verhindert, dass ich Variationen aus einer Selectbox auswählen kann. Ich komm hier echt nicht weiter?

Keine ne Idee?
 

Bjoern3003

Offizieller Servicepartner
SPBanner
13. November 2006
504
4
AW: Wie setze ich get_product_list als Plugin um

Vielleicht gibst du uns auch mal den Link zu dem Shop, wo man sich das ganze näher ansehen kann?!

Woher kennt deine Funktion denn $cHTMLContainerID. Konnte ich auf die Schnelle keine Variable zu finden.
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Im Shop habe ich das Plugin erstmal deaktiviert, sonst können meine Kunden nichts mehr kaufen.

Das Problem ist scheinbar wirklich nur die Funktion, denn wenn ich die auskommentiere, dann habe ich das Problem nicht.

$cHTMLContainerID kommt aus der Konfiguration. Ich habe meinen Code im Post oben etwas gekürzt, aber wie gesagt, das ist definitiv nicht das Problem, sondern die Funktion schein Probleme zu machen, denn ohne die funktioniert es (außer, dass ich dann keine Artikel bekomme). Hier das XML zur Konfiguration:

Code:
[/COLOR]<?xml version='1.0' encoding="ISO-8859-1"?>
<jtlshop3plugin>
<Name>CSS3Slider</Name>
<Description>Erzeugt einen Slider basierend auf CSS3</Description>
<Author>Dipl.-Ing. (BA) Daniel Richter</Author>
<URL>http://danielrichter.eu</URL>
<XMLVersion>102</XMLVersion>
<ShopVersion>300</ShopVersion>
<PluginID>danielrichter_css3slider</PluginID>
<Install>
	<Version nr="100">
		<CreateDate>2013-02-19</CreateDate>
	</Version>
	<Hooks>
		<Hook id="140">css3slider.php</Hook>
	</Hooks>
	<Adminmenu>
		<Settingslink sort="1">
		<Name>Einstellungen</Name>
			<Setting type="zahl" initialValue="560" sort="1" conf="Y">
				<Name>Sliderbreite</Name>
				<Description>Breite des Sliders in Pixeln</Description>
				<ValueName>sliderwidth</ValueName>
			</Setting>
			<Setting type="zahl" initialValue="5" sort="2" conf="Y">
				<Name>Slidetime</Name>
				<Description>Zeit in Sekunden die ein einzelner Slide angezeigt werde soll</Description>
				<ValueName>slidetime</ValueName>
			</Setting>
			<Setting type="text" initialValue="css3slider" sort="3" conf="Y">
				<Name>HTMLContainerID</Name>
				<Description>#ID des HTML Containers in welchen der Slider eingefügt werden soll</Description>
				<ValueName>htmlContainerID</ValueName>
			</Setting>
		</Settingslink>
	</Adminmenu>
</Install>
</jtlshop3plugin>
[COLOR=#333333]


 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

JA, weis ich...wie gesagt, den Code habe ich gekürzt.

Code:
if(isset($oPlugin->oPluginEinstellungAssoc_arr['htmlContainerID']) && strlen($oPlugin->oPluginEinstellungAssoc_arr['htmlContainerID']) > 0)
		$cHTMLContainerID = "#".$oPlugin->oPluginEinstellungAssoc_arr['htmlContainerID'];
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

SO, hab jetzt einen völlig jungfräulichen Testshop. Die einzige Änderung ist mein Plugin was installiert und aktiviert ist. Geh einfach mal auf folgende URL:

Produkt mit Variationkombinationen, 45,00 €

Probiere mal eine beliebige Variationskombination auszuwählen (z.B. Farbe: blau, Größe: L)

Du wirst dann feststellen was ich meine. Er lädt sich zu tode und man kann nichtmal mehr den zurücksetzen Button klicken.

Grüße, Daniel
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Hallo Casim,

ich habe Chrome und habe mit Firebug Lite reingeschaut. Einen Fehler konnte ich jetzt nicht entdecken....sollte ich etwas sehen was du siehst?

Grüße, Daniel
 

webmagier

Aktives Mitglied
6. November 2008
381
1
Aschheim
AW: Wie setze ich get_product_list als Plugin um

Ähm, ok, jetzt sehe ich den Fehler in der Firebug Console auch:

POST toolsajax.server.php 500 Internal Server Error 253ms

Trotzdem sehe ich den Fehler nicht. Was genau läuft da jetzt schief?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Überverkäufe mit Kindartikeln - wie richtig einstellen ? User helfen Usern - Fragen zu JTL-Wawi 23
Neu Closest Droppoint: Wie im Shop dem Kunden anbieten? JTL-ShippingLabels - Fehler und Bugs 4
Neu Sonderpreise zum Mengenabverkauf von Überverkaufsprodukten - wie löst ihr das? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie erstelle ich Bundles mit JTL Wawi? User helfen Usern 1
Auftrag Inlandskunde mit USt-Id - wie erfassen JTL-Wawi 1.7 6
Neu Konto an den Shop übertragen - wie funktioniert das praktisch? Umstieg auf JTL-Shop 0
Beantwortet E-Mail Vorlage Versandbestätigung per Workflow ausführen, wie? JTL-Workflows - Ideen, Lob und Kritik 7
Neu Wie löscht man eine Lizenz aus der Lizenzverwaltung im KC? Allgemeine Fragen zu JTL-Shop 2
Neu REST-API - Auftrag erstellen - wie Versandposition hinzufügen? Schnittstellen Import / Export 0
Neu Wie handelt Ihr die GPSR Anforderung an Produktbilder bei Amazon ? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie legt man neue Erlöskonten an Arbeitsabläufe in JTL-Wawi 2
Neu Wie kann ich die DOM-Size reduzieren? Technische Fragen zu Plugins und Templates 1
Neu Wie kann man Freipositionen in einem Auftrag gruppiert darstellen? Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 4
Neu Wie kann ich die Verfügbarkeiten eines Artikels bei Amazon steuern? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Sprachvariablen: Statt mehreren Variablen (wie z. B. %s %s) nur eine bestimmte ausgeben Allgemeine Fragen zu JTL-Shop 2
Neu Sendungsnummern an ebay übertragen? wie? eBay-Anbindung - Fehler und Bugs 6
Neu E-Rechnung verarbeiten, wie löst ihr das? Smalltalk 2
Wie versendet die Wawi E-Mails? JTL-Wawi 1.9 4
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Wie kann ich Artikel mit Lagerbestand 0 beim Import inaktiv setzen) JTL-Ameise - Ideen, Lob und Kritik 17
Neu JTL-Worker als Windows-Dienst - wie macht Ihr das? User helfen Usern - Fragen zu JTL-Wawi 8
Neu Wie entferne ich die Lastschrift Checkbox? Allgemeine Fragen zu JTL-Shop 2
Neu Ameise (WAWI 1.9.5.2) -> Wie funktioniert der Upload der Produktion JTL-Plan&Produce - Ideen, Lob und Kritik 0
Bestehender eBay-Shop -- JTL Shop neu -- Abgleich -- wie vorgehen? JTL-Wawi 1.9 1
Wie lange benötigt bei euch die Wawi zum starten JTL-Wawi 1.9 7
Neu .htaccess wie nun einstellen ? Installation / Updates von JTL-Shop 2
Beantwortet Manueller Worklfow Rechnung für Mahnung, wie den offenen Rechnungsbetrag bei Teilrechnung ausgeben? JTL-Workflows - Ideen, Lob und Kritik 9
Neu Wie in der Wawi gebrauchte Artikel vom Endkunden einkaufen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann ich den Titel bei Google Ergebnissen ändern? Allgemeine Fragen zu JTL-Shop 6
Neu Bildgrößen auf der Startseite (in den Boxen wie z.B. Top-Angebot) Allgemeine Fragen zu JTL-Shop 4
Neu Hersteller ändert SKU von Kind Artikel (Varianten) | Vater beleibt gleich - wie verfahren bei "gemischtem" Lager alt/neu User helfen Usern - Fragen zu JTL-Wawi 3
Neu Sortierung nach Bestand - so wie im JTL Shop 4 JTL-Shop - Ideen, Lob und Kritik 2
Neu Wie kann ich bestimmte Wörter in der Suchfunktion von JTL-Shop ausschließen? Allgemeine Fragen zu JTL-Shop 0
Neu Vererben der Bildern einer Variation auf alle anderen Variationen, wie beim Vererben von Vater zu Kind-Artikeln, möglich wie? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Drop Shipping - Beide Firmen mit JTL Wawi - Wie löse ich das? Arbeitsabläufe in JTL-Wawi 10
Neu Wie das neue Funktionsattribut storefront_presentation_main_product anlegen? Shopware-Connector 7
Neu GPSR Verordnung - Wie handhabt ihr das im Shop mit dem Nova Template? Betrieb / Pflege von JTL-Shop 19
Neu Bei VarKombi-Artikeln, wie immer eine Farbe und Größe vorauswählen, damit alle Bilder angezeigt werden? Allgemeine Fragen zu JTL-Shop 4
Neu Wechsel Auftragspaket im Kundencenter - wie und wann ? User helfen Usern - Fragen zu JTL-Wawi 6
Paypal Kontosperre / Verbot bestimmte Artikel in bestimmte Länder zu liefern - wie Umsetzen? JTL-Wawi 1.9 2
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie andere Länder und Sprachen vom Google Shopping Plugin mit dem Merchant Center verbinden Plugins für JTL-Shop 6
Neu Wie macht ihr euch euch Testumgebung? Gelöste Themen in diesem Bereich 6
Neu Ebay Verkäufe - Auswahlartikel mit händischer Auswahl in der Rechnung - wie bei Wawi 1.9 vorgehen ?! Arbeitsabläufe in JTL-Wawi 0
Neu Unterschiedliche Lagerplätze, wie konfigurieren? Waage nur mit WMS? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Neu Wie Reklamationen aus Statistik ausschließen? Arbeitsabläufe in JTL-Wawi 2
Wie FBA Gutschrift erzeugen ohne Auftragsbezug? JTL-Wawi 1.9 0
Neu Gebinde wie angelegt unter sonstiges als Barcode ausgeben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Neu Kunde zahlt bar bei Anlieferung, wie löse ich das? Arbeitsabläufe in JTL-Wawi 15
In Diskussion Geplante Abkündigung für JTL-POS für Android 7 Geräte wie Sunmi T2 in Sicht? JTL-POS - Fragen zu Hardware 16

Ähnliche Themen