Artikel Longdesc

Hallo,

Ich habe vor, ein Modul zu schreiben, dass wenn keine Longdesc für ein Produkt vorliegt, eine XML Datei ( ext. Link ) ausgelesen wird und von da die Informationen in die Variable longdesc gepackt wird. Welche Funktion muss ich da überladen ?
Finde nicht so recht wo die longdesc aus der Tabelle oxartextends geholt wird.

Danke schon mal für Hilfe

Gruß
highknee

[QUOTE=highknee88;30446]Hallo,

Ich habe vor, ein Modul zu schreiben, dass wenn keine Longdesc für ein Produkt vorliegt, eine XML Datei ( ext. Link ) ausgelesen wird und von da die Informationen in die Variable longdesc gepackt wird. Welche Funktion muss ich da überladen ?
Finde nicht so recht wo die longdesc aus der Tabelle oxartextends geholt wird.

Danke schon mal für Hilfe

Gruß
highknee[/QUOTE]
Um nicht an “[B]Modularitis[/B]” (das ist die Verwendung einer ungesunden Überdosis von Modulen in einem Shop) zu sterben, würde ich das in die Template-Datei “[B]details.tpl[/B]” verlagern…

Etwa so:

[{ assign var="longdesc" value=$product->oxarticles__oxlongdesc->value }]
[{ if !$longdesc }]
[{php}]
include('irgendwo/get_longdesc_ext.php);
[{/php}]
[{ /if}]

In “[B]get_longdesc_ext.php[/B]” holst Du Dir dann (wie auch immer) deine externe Beschreibung und übergibst diese mit

$this->assign('longdesc',$my_ext_longdesc);

an Smarty.

Im Template referenzierst Du die “Longdesc” dann mit “[{$longdesc}]”.

Das hat mehrere Vorteile:

Ich muss nicht suchen, wo im Shop das geregelt wird, und muss nicht in den Shop eingreifen.

Ich muss kein Modul im Shop definieren.

???

Ist zwar eine “Abkürzung”, die Puristen vermutlich aufschreien lässt, aber der Zweck heiligt ja bekanntlich die Mittel…

“[B]Modularitis[/B]” ist ein echtes Problem…

Ich habe mittlerweile so ca. 30 OXID Modifikationen/Erweiterungen, die teilweise durch mehrere Module realisiert sind…

Und große Probleme, die immer alle richtig einzubinden…

Und wenn unser Kunde dann noch ein paar externe Module einbindet, sind Probleme erst mal nahezu garantiert…

Deshalb versuche ich, so weit möglich, Module zu vermeiden, und das Problem wie oben beschreiben zu lösen.

Alles klar, ich werde das denn so umsetzen, war auch meine erster Gedanke, dachte aber ein Modul ist vielleicht sauberer.
Danke!

Wo muss die Datei dann liegen ?

[{ assign var="longdesc" value=$product->oxarticles__oxlongdesc->value }]
        [{if $longdesc}]
         <div id="test_product_longdesc">[{ $longdesc }]</div>
         [{else}]
         <div id="test_product_longdesc">
			[{php}]
			include('get_longdesc.php);
			[{/php}]
		</div>
		[{/if}]

so hab ich das jetzt, aber dann bleibt die Seite nur noch weiß, wobei


        [{ assign var="longdesc" value=$product->oxarticles__oxlongdesc->value }]
        [{if $longdesc}]
         <div id="test_product_longdesc">[{ $longdesc }]</div>
         [{else}]
         <div id="test_product_longdesc">
           Beschreibung folgt...
		</div>
		[{/if}]

funktioniert hat…
Er findet also die PHP Datei nicht, hab sie jetzt da wo auch die index.php ist also im root…Muss sie woanders liegen ?

ok hatte nur einen tippfehler :slight_smile:

Was aber leider nicht funktioniert ist:

			
[{php}]
	include('get_longdesc.php?ean=[{$product->oxarticles__oxean->value}]');
[{/php}]

Wie kann ich denn sonst Parameter an die Seite weitergeben ?

[QUOTE=highknee88;30468]Was aber leider nicht funktioniert ist:

            
[{php}]
    include('get_longdesc.php?ean=[{$product->oxarticles__oxean->value}]');
[{/php}]

Wie kann ich denn sonst Parameter an die Seite weitergeben ?[/QUOTE]

[{ assign var="longdesc" value=$product->oxarticles__oxlongdesc->value }]
[{if !$longdesc}]
[{php}]
$ean=$this->_tpl_vars['product']->oxarticles__oxean->value
include('get_longdesc.php}]');
[{/php}]
<div id="test_product_longdesc">[{ $longdesc }]</div>
[{/if}]

Bist Du sicher, dass Du weißt, was Du tust???

Jo, danke! So funktionierst wie geplant