Zum Inhalt springen

Shop v2.0.5

Erstellt am 26. Juli 2005 · 11 Antworten · letzte Antwort am 29. Juli 2005

Tags: Frage

Talirion ·

Hallo,

also ich habe mal wieder ein kleines problem, also hoffe halt das es ein kleines Problem ist!

der shop wird bei mir gar nicht angezeigt, und ich krieg das einfach nicht hin, kann mir jemand sagen wie ich ihn schritt für schritt einbinden kann?

den die DOku hilft mir da irgend wie nicht so richtig.

er zeigt mir nicht einmal mehr die überschrift an wenn ich eine setze, also vermute ich das da was elementares fehlt!

danke

für eure antworten bin für jeden Hinweiss dankbar

Flink ·
Talirion schrieb

er zeigt mir nicht einmal mehr die überschrift an wenn ich eine setze, also vermute ich das da was elementares fehlt!

Das kann verschiedene Ursachen haben:

  • * Der Eintrag 'auf Lager' des Produktes ist 0.
    * Das Template wurde nicht gefunden.
    * Es wurde kein Code LIST eingetragen.

Talirion ·

Also dann kommt eigentlich nur das Template in frage, da ich sicher bei mindestens 3 artikeln einen stand höher 3 habe n paar sind 0 aber das dürfte ja nichts machen.

und list habe ich selbstverständlich drin.

kannst du mir vieleicht mal ein beispiel setup geben?

danke

Flink ·
Talirion schrieb

kannst du mir vieleicht mal ein beispiel setup geben?

Beispiel-Templates liegen im Verzeichnis der tt_products Extension.
Z.B. products_template_de.tmpl .
Diese sollten mit jedem Shop funktionieren.

plugin.tt_products.file.templateFile = typo3/ext/tt_products/pi/products_template_de.tmpl

Es muß aber auch für die TYPO3-Seite selber bereits ein funktionierendes Template geben, was aber mit dem Shop konkret nichts zu tun hat.

Talirion ·

also den Fehler habe ich...

vermute nun das das script mit register_global on getestet wurde, denn folgende zeilen sind falsch bzw. mußte ich ändern:

// by MB    zeile einfügen nach 175, da variable $content in PHP5 sonst nur 
// inerhalb der While-Schleife verfügbar ist:
$content = ""; 

// by MB    $this->products_basket($theCode) ändern in:
$content.=$this->products_display($theCode);

oder ich hoffe das ich damit recht habe! aber jetzt zeigt er mir den Shop wieder an!

danke Flink ohne dich wär ich da nicht so schnell drauf gekommen, aber das solltet ihr mal überprüfen und geg. ändern!

gruß

Martin

Flink ·
Talirion schrieb
// by MB    zeile einfügen nach 175, da variable $content in PHP5 sonst nur 
// inerhalb der While-Schleife verfügbar ist:
$content = ""; 

// by MB    $this->products_basket($theCode) ändern in:
$content.=$this->products_display($theCode);

oder ich hoffe das ich damit recht habe! aber jetzt zeigt er mir den Shop wieder an!

Was hast du hier korrigiert? o.O
$content ist der Übergabeparameter an das Skript.

Talirion ·

Was hast du hier korrigiert?
$content ist der Übergabeparameter an das Skript.

klar, das weiß ich. Allerdings wird $content das erste mal inerhalb der While schleife verwendet, somit ist Sie lt. OOP (z.B. PHP5) nur innerhalb der schleife gültig!

While(){
 $content = "abc";
}
$content .= "def";

echo $content; // ausgabe nicht wie erwartet "abcdef" sondern "def"

desshalb muss die variable bereits vor der whileschleife bekannt sein um sie als rückgabewert zu verwenden.

und die andere änderrung mit der basket funktion habe ich halt auf display korregiert so das ich nicht den Warenkorb bekomme (bei LIST und so) sondern die ausgabe die es sein sollte.

des weiteren ist kein deutsches template mehr enthalten, das _de is Norwegisch oder so...

also alles beantwortet? oder hab ich unrecht?

gruß Martin

Flink ·
Talirion schrieb

Allerdings wird $content das erste mal inerhalb der While schleife verwendet, somit ist Sie lt. OOP (z.B. PHP5) nur innerhalb der schleife gültig!

While(){
 $content = "abc";
}
$content .= "def";

echo $content; // ausgabe nicht wie erwartet "abcdef" sondern "def"

desshalb muss die variable bereits vor der whileschleife bekannt sein um sie als rückgabewert zu verwenden.

Wo steht das geschrieben?

Talirion schrieb

und die andere änderrung mit der basket funktion habe ich halt auf display korregiert so das ich nicht den Warenkorb bekomme (bei LIST und so) sondern die ausgabe die es sein sollte.

Bei LIST wurde auch bisher

$this->products_display($theCode);

aufgerufen.

Talirion schrieb

des weiteren ist kein deutsches template mehr enthalten, das _de is Norwegisch oder so...

also alles beantwortet? oder hab ich unrecht?

Ein deutsches Template hat es bei tt_products nie unter _de gegeben. Das Template von zk_products habe ich ohne Zustimmung des Autors nicht übernommen.
_de ist dänisch und stammt von Kasper Skårhøj, dem Autor der ersten tt_products Versionen. Es gibt das bananaguard.de Template als deutsches Template.

Talirion ·

Wo steht das geschrieben?

normalerweise sollte das unter der gültigkeit einer variabel stehen, es wird bei allen objektorientierten sprachen so angewendet (PHP5 hat dieses meines wissens nach von JAVA übernommen), und das hat wenn man sich mal dran gewöhnt hat wirklich Vorteile. Bin mir allerdings nicht ganz sicher wie streng das bei PHP umgesetzt ist, allerdings bekamm ich bei einer ausgabe der content innerhalb der While den Inhalt und auserhalb nur noch eine leere variable, was ja eindeutig meiner ausage rechtgibt.

Dies denke ich passiert das nur dann wenn der Server nicht register_global aktiviert hat, was aus sicherheitsgründen auf jeden fall sin macht.

Bei LIST wurde auch bisher ...?

komisch dann Frage ich mich was ich da für ne Montags version gezogen habe, denn bei mir war das nicht der Fall.

Ein deutsches Template hat es bei tt_products nie unter _de gegeben. Das Template von zk_products habe ich ohne Zustimmung des Autors nicht übernommen.
_de ist dänisch und stammt von Kasper Skårhøj, dem Autor der ersten tt_products Versionen. Es gibt das bananaguard.de Template als deutsches Template.

Ich hatte hierzu dein Posting in einem anderen Beitrag gefunden und auch den Link zu den Templates mal eingetragen. DAnke!

Der Shop läuft bei mir jetzt auf jeden Fall ohne Probleme!

Gruß

Martin

Flink ·
Talirion schrieb

allerdings bekamm ich bei einer ausgabe der content innerhalb der While den Inhalt und auserhalb nur noch eine leere variable, was ja eindeutig meiner ausage rechtgibt.

Ich kann das nicht nachvollziehen.
Die Variable $content ist ein Übergabeparameter, deshalb muß er in PHP wie in JAVA in der gesamten Funktion ansprechbar sein.

function main_products($content,$conf)	{
Talirion schrieb

Dies denke ich passiert das nur dann wenn der Server nicht register_global aktiviert hat, was aus sicherheitsgründen auf jeden fall sin macht.

register_globals = Off
habe ich immer gesetzt.

Talirion schrieb

komisch dann Frage ich mich was ich da für ne Montags version gezogen habe, denn bei mir war das nicht der Fall.

Überprüfe einmal deine Version.
Kannst du nochmal genau beschreiben, was man am Code ändern sollte?

Talirion ·

stimmt , sorry ist ja der übergabe parameter...

ok hab das alles nochmals überprüft, einzigste änderung war dann:

case "SEARCH":
case "SINGLE":
case "LIST":
case "LISTOFFERS":
case "LISTHIGHLIGHTS":
case "LISTNEWITEMS":	
    $content.=$this->products_display($theCode); // by MB orginalZeile: $this->products_basket($theCode);

Dann mal sorry das ich so n wind gemacht hab, allerdings ging es zuerst nicht, als ich dann das mit dem $content hatte gings...

Ok danke

Martin

Flink ·
Talirion schrieb

stimmt , sorry ist ja der übergabe parameter...

ok hab das alles nochmals überprüft, einzigste änderung war dann:

Nein, auch das war bereits so.
Du kannst es ja nochmals im CVS oder TER nachsehen.