PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zusatzfelder wie nutzen?



BigRib
21.10.2014, 19:30
Hallo,

gambio gx2 bietet ja seit 2.0.14 Zusatzfelder pro Artikel. Ich könnte diese Felder echt gebrauchen, nur machen die doch aktuell keinerlei Sinn oder? Ich kann zwar Zusatzfelder erstellen und füllen, aber nirgens anzeigen lassen.

Wozu sind die also?

Dorendorf
14.08.2015, 09:05
Diese Frage beschäftigt mich auch seit Tagen ;-)

KlausK
14.08.2015, 10:50
Leider hat Gambio das Thema "Zusatzfelder" nur halbherzig umgesetzt.
Die Felder sind im Backend verfügbar und in der DB angelegt, aber im Frontend eben nicht nutzbar.
Hierfür müssten einige Klassen, Vorlagen und Sprachdateien entsprechend geändert werden.

Es gibt im Gambio-Forum eine aktuelle Anleitung zur updatesicheren Nutzbarmachung der Felder.
Diese kann und will ich aber nicht einfach kopieren und hier reinstellen.
Der gute Mann hat sich mit der recht aufwändigen Anleitung sehr viel Mühe gemacht!

Es müsste jemand diese Anleitung selbst umsetzen und daraus eine eigene Anleitung schreiben.
Wer einen Supportvertrag bei Gambio hat, kann sich die Anleitung unter folgenden Link anschauen:
http://www.gambio-forum.de/threads/20740-Extra-Felder-%28Zusatz-Felder%29-f%C3%BCr-Artikel-GX2_V2.1.x.x-bis-2.3.x.x?highlight=Zusatzfelder
Ich selbst habe im Moment leider keine Zeit dazu.

Dorendorf
14.08.2015, 11:33
Okay, werd mich da mal durchfummeln. Schade eigentlich, weil man die Funktion echt gut nutzen könnte.

BigRib
14.08.2015, 13:03
Ich hab es bei mir selber eingebaut, jedoch weder Updatesicher noch habe ich eine Anleitung gebaut. Ich bin kein Fan von der Updatesicheren Variante, da es ja immer einen Grund gibt warum die Dateien geändert werden und durch die Updatesicher Variante, bleiben die alten Versionen vorhanden und man sucht teilweise stundenlang nach fehlern.

Was genau hast Du denn vor? Wenn Du die einfach nur auf der Produktseite anzeigen lassen möchtest, dann ist das mit "relativ" wenig aufwand zu lösen.

Dorendorf
21.08.2015, 08:35
Hi Sven.
Genau das will ich. Früher heba ich immer ISBN und die anderen Felder dafür missbraucht.
Also Zusatzfelder würde ich gern auf der Produktseite ausgeben.
Für die anderen Felder wie ISBN etc. wäre eine LÖsung auch ganz klasse. Mit den alten Templatevariablen funzt das nicht mehr.

Grüße
Ralf

Schiemi
05.01.2016, 17:25
Ich versuche auch schon einige Zeit das mit den ISBN Feld hinzubekommen. Jedoch gelingt es mir nicht mit meinem geringem Wissen die entsprechende Datenbankabfrage und der dann zuweisenden Feldvariabel umzusetzen.

Wenn einer weiss wie das geht wäre ich sehr dankbar...

BigRib
05.01.2016, 17:42
Seit der Version 2.5.x.x werden die Zusatzfelder doch automatisch bei dem Artikel angezeigt. Machst einfach ein Zusatzfeld namen ISBN und gibst da die nummer ein.

Schau mal hier:

http://testshop1.livecart.de/de/Testkategorie/Testartikel.html

Schiemi
05.01.2016, 19:44
ja aber wozu trage ich denn beim Artikel ind das Feld ISBN Nummer etwas ein wenn ich dieses Feld dann im Frontend nicht anzeigen kann? Die ISBN kann schon seit GX1 eingetragen werden und wurde damals auch per Variable (PRODUCTS_ISBN) dann im Template aufgerufen werden. Da die Datenbankstruktur für Zusatzfelder wesentlich komplizierter ist und ich den Shop aus JTL füttere ist das noch komplizierter den Wert dort eintragen zu lassen denn um ein Zusatzfeld zu generieren müssen ja eine eigene ID generiert, eine Zuordnung, Produkt_id und dann der Wert eingetragen werden... die Zuordnung und den Wert bekäme ich mit meinem Wissen noch hin aber eine eigene ID? da bin ich mir nicht sicher....

Schiemi
05.01.2016, 21:05
Schau mal hier:

http://testshop1.livecart.de/de/Testkategorie/Testartikel.html

Habe mir gerade mal den Code da angesehen.... da wird die ISBN angezeigt nicht etwa weil die im Artikel hinterlegt ist sondern weil die in der Standard.html fest eingegeben ist... dort wird nicht mit einer Variable gearbeitet.... So kann man auch die Leute in die Irre führen....

BigRib
05.01.2016, 21:39
Also dann mach mal folgendes. Wie immer ich übernehme keine Garantie, Haftung oder sonst irgendwas. Mache von allem wie immer eine sicherung.

Info:
1. Bei "Suche" ist immer das erste vorkommen in der Datei von oben gesehen gemeint.
2. Achte immer drauf ob du "Drunter" oder "Drüber" einfügen sollst.

ÖFFNE: \includes\classes\product.php

SUCHE:



$t_query = "SELECT
p.*,
pd.*,


DARUNTER EINFÜGEN


pic.code_isbn AS products_isbn,

SUCHE:


LEFT JOIN
" . TABLE_PRODUCTS_DESCRIPTION . " pd USING (products_id)

DARUNTER EINFÜGEN


LEFT JOIN
products_item_codes AS pic USING (products_id)


ÖFFNE: \system\classes\products\ProductInfoContentView.in c.php

SUCHE:


$this->_assignEan();

DARUNTER EINFÜGEN:


$this->_assignIsbn();

SUCHE:


protected function _assignId()

DARÜBER EINFÜGEN


protected function _assignIsbn()
{
$this->set_content_data('PRODUCTS_ISBN', $this->product->data['products_isbn']);
}

ÖFFNE: \templates\EyeCandy\module\product_info\standard.h tml

SUCHE:


{if $SHIPPING_NAME || $SHOW_SHIPPING_TIME}

DARÜBER EINFÜGEN


{if $PRODUCTS_ISBN!=''}
<dt>ISBN:</dt>
<dd style="font-size: 11px; font-weight: bold">{$PRODUCTS_ISBN}</dd>
{/if}

Speichern, Hochladen, Cache leeren, ISBN sollte nun angezeigt werden oberhalb der Lieferzeit

KlausK
05.01.2016, 23:39
Habe mir gerade mal den Code da angesehen.... da wird die ISBN angezeigt nicht etwa weil die im Artikel hinterlegt ist sondern weil die in der Standard.html fest eingegeben ist... dort wird nicht mit einer Variable gearbeitet.... So kann man auch die Leute in die Irre führen....
Nicht so schnell ... hier wird niemand in die Irre geführt!
Ich bin da auch schon die ganze Zeit am basteln, also kannst du dich nicht darauf verlassen was wie angezeigt wird.
Davon abgesehen ist in der standart.html gar nix "fest hinterlegt". Letztlich kommt das alles aus irgendwelchen Variablen.

KlausK
06.01.2016, 00:11
Super Sven :D
Ich versuchte schon den ganzen Abend alte Lösungen vom Avenger anzupassen, die aber einfach nicht funktionieren wollen.

Ich habe deine Lösung im Testshop eingebaut und es funktionierte auf Anhieb. Guckst du: http://testshop1.livecart.de
Und nein lieber Thomas, auch hier ist nichts hardgecodet! :rolleyes:

Mich stört jetzt nur noch die Tatsache, das das ganze nicht updatesicher ist.
Die product.php und ProductInfoContentView müssten eigentlich in die userclasses zum überladen und die standard.html sollte man auch besser als standard-USERMOD.html verwenden.
Mal schauen ob ich's hinkriege ... ;)

Schiemi
06.01.2016, 13:52
Hallo,

also ganz großes Lob und Danke an Sven, das ist des Rätsels Lösung. In der Product.php habe ich natürlich nie geschaut.

Das mit dem Updatesicher ist mir auch aufgefallen, denn das nächste Update kommt bestimmt....

übrigens KlausK, ich habe mir den Code nochmal angesehen von dem verlinktem Beispiel und dort kommt die ISBN aus KEINER Variable... alle anderen Werte kommen aus Variablen....

KlausK
06.01.2016, 14:21
ich habe mir den Code nochmal angesehen von dem verlinktem Beispiel und dort kommt die ISBN aus KEINER Variable
Dann erklär mir jetzt mal bitte, wie du den PHP-Quellcode einsehen kannst, obwohl du keinen FTP-Zugang zum Testshop hast?
Und da ich der einzige bin mit FTP-Zugang, war ich gestern auch der einzige der an den Scripten rumgeschraubt hat.
Und wenn ich dir sage, dass ich zu keiner Zeit einen ISBN-Code in ein Script eingetragen habe, dann ist das auch so, zumal eine solche Vorgehensweise völlig unsinnig wäre!

Schiemi
06.01.2016, 14:39
also ich glaub natürlich wenn gesagt wird das dies nicht gemacht wurde... ich gebe auch zu kein Fachmann zu sein.... ich habe im Firefox mit Element untersuchen geschaut was mir da angezeigt wurde...

<dd style="font-size: 11px; font-weight: bold">321321321</dd> so sieht die Datenzeile jetzt aus... vorher stand da <dd>'1234567898'</dd> und in einer Zeile wo es eine Variable ist hab ich es so gesehen:
<dd class="products_model"><span itemprop="model">-</span></dd>

in dem jetzigem Fall gehe ich auch davon aus, das es aus einer Variable kommt. Da keine Anführungszeichen gesetzt sind....

Wie gesagt ich bin kein Fachmann und ja ich kann nicht per FTP auf den Server und habe nur die Daten die mir der Browser liefert und ich habe diese Daten einfach mit meiner Version auf dem Server verglichen...

KlausK
06.01.2016, 17:10
... und habe nur die Daten die mir der Browser liefert und ich habe diese Daten einfach mit meiner Version auf dem Server verglichen...
Und genau das geht eben nicht. Extrem grob gesagt enthält ein PHP-Script lediglich die Anweisungen was der PHP-Interpreter tun soll. Entsprechend dieser Anweisungen wird ein HTML-Dokument erzeugt, welches du sehen kannst.
Im Grunde siehst du immer nur das Ergebnis das aus dem PHP-Quellcode erzeugt wurde.
Den PHP-Quellcode selbst kannst du grundsätzlich nicht einsehen, sofern du kein Meisterhacker bist und der Server bzw. die Serverkonfiguration nicht aus der Steinzeit stammt.
Den siehtst du nur, wenn du die Dateien direkt auf deiner Platte oder via FTP auf dem Server als Text öffnest.

Achso:
Auch wenn die standard.html eben nur ein HTML-Dokument ist, enthält sie auch PHP-Teile die nicht einfach ausgegeben werden, sondern erst vom PHP-Interpreter verarbeitet werden und dann durch das Ergebnis wieder ersetzt werden.
Nehmen wir die Zeile <img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" />
Dein Browser-Debugger wird dir niemals die beiden Variablen anzeigen, sondern nur deren Wert, den der PHP-Interpreter zuvor erzeugt hat.
Das wäre dann z.B. <img src="./lieferzeit_3_tage.png" alt="Nur 3 Tage Lieferzeit" />

Schiemi
06.01.2016, 17:32
Ok... wie ich ja bereits sagte bin kein Fachmann da entschuldige ich mich natürlich will hier keinem auf die Füsse treten... :(

BigRib
06.01.2016, 22:00
Oha ich sehe das jetzt erst das geantwortet wurde :) Danke KlausK das Du das richtig gestellt hast :)

Wenn ich Dich veralbern wollte, dann hätte ich das auch einfacher haben können *g*

Warum ich das nicht Updatesicher mache? Weil das Updatesichere Programmieren leider die meisten Probleme produziert beim Updaten. Beim Gambio Shop wird aktuell der komplette Code komplett überholt. Um die Änderungen "Updatesicher" einzubauen, muss ich die kompletten Funktionen auslagern. Wenn nun die Funktion beim nächsten Update aktualisiert wird, zerschießt es den Shop und keiner findet den Fehler weil vor allem Leute die einfach nur Dateien hochladen, niemals auf die Idee kommen, die Dateien mit den geänderten Funktionen zu deaktivieren. Ich selbst habe schon Stunden damit verbracht Fehler zu finden, die ein "Fremd-Modul" verursacht hat, weil es einfach nicht mehr kompatibel ist.

Ich mache alle Änderungen immer im MainCode und dokumentiere was ich machen, beim Update überprüfe ich, ob die Dateien die ich geändert habe vom Update tangiert werden, wenn ja, baue ich den Code einfach wieder neu ein.
So habe ich übrigens viel über den Gambio Shop gelernt, und konnte in wenigen Minuten das oben gepostete Snipet schreiben. Ich selber brauche es nicht, deswegen habe ichs mir *fix* aus den Fingern gesaugt.

BigRib
06.01.2016, 22:08
So jetzt weiß ich auch was Schiemi meint mit Variablen und so *g*

Das was Du meinst mit Variable "class=products_model" und "itemprop=model" das sind keine Variablen. Das sind die Namen der betreffenden CSS Klasse die die Darstellung definieren, bzw itemprop ist für die Suchmaschienen.

Ich habe anstelle einer CSS Klasse den css Code direkt eingebaut, damit wir nicht auch noch eine extra CSS erstellen und includen, oder gar in der Datenbank rumfuschen müssen. (<dd style="font-size: 11px; font-weight: bold">)

Schiemi
07.01.2016, 04:44
Und da zeigt es mir doch das einmal etwas einwerfen sehr oft wenns auch andere manchmal nervt wichtige Infos entlockt :) Da ich wirklich noch nicht lange mit dem Gambioshop arbeite lerne ich doch immer gern etwas dazu....

KlausK
07.01.2016, 11:09
... wenns auch andere manchmal nervt ...
Niemand ist genervt wenn jemand eine eigene Meinung einbringt. Dafür ist ein Forum ja da.
In einem Forum herrschen aber die selben Gesetze wie im realen gesellschaftlichen Leben auch.
Wenn jemand meint, er müsse in einem Forum mit freiwilligen und unbezahlten Helfern öffentlich rummaulen, und dann auch noch aufgrund unsinniger und falscher Fakten, dann muss er entsprechende Kritiken und Belehrungen vertragen können.
Wer das nicht kann, sollte sich überlegen, ob die kostenlose Inanspruchnahme einer Rund-um-die-Uhr-Support-Leistung die richtige Wahl ist!

@Sven
Meine Erfahrung geht eher in die andere Richtung. Früher habe ich ein Changelog geführt das auf tausende Zeilen angewachsen war. Mit dem Usermod-Verfahren notiere ich mir nur noch die eigenen Usermod-Dateien. In einem Testshop ziehe ich dann ein neues Update voll durch und vergleiche dannach mit einem Merger die neuen originale mit meinen eignen und passe sie entsprechend an. Ich empfinde das eher als Erleichterung.

strommi
29.11.2016, 11:48
Ich nutze diese Felder für Amazon Listings, kann ich diese denn im Shop ausblenden, da diese da keinen Sinn machen angezeigt zu werden. Sollen nur für die dynamische Artikeleinstellung bei amazon genutzt werden.