leider bin ich bei meinem ersten Beitrag in der Suche nicht fündig geworden.
Das Problem: An einen Vaterartikel angehängte Medien werden nicht in den Artikelvarianten angezeigt. Somit müsste ein gleiches Video bei jeder einzelnen Variante unter “Erweitert” eingefügt werden.
Gibt es eine einfachere Lösung, die Medien vom Vater zu übernehmen?
Schade, dass oxid einem im Backend keine Möglichkeit anbietet. Ist ja eigentlicht nichts außergewöhnliches Beschreibungen/Medien vom Stammartikel auf Varianten zu übertragen…
Ich möchte so ein Video z.b. gerne für alle Varianten auf einem Reiter/Karteikarte haben und nicht auf der “Artikel-Startseite”. Gibt es dafür ein Workaround? Danke vorab
Und dann gibts Kunden, die das Video beim Vaterartikel ansehen, dann zur Variante wechseln und dort wieder ein Video entdecken und eventuell ein neues anderes / produktbezogenes Video erwarten. Und wenn es ein zweites mal das selbe Video ist, sind sie verwirrt und verstehen nichts mehr. Und wenn der Kunde verwirrt ist und nichts versteht, vertraut er deinem Shop nicht mehr.
Und dann gibts noch andere Shopbetreiber, die vielleicht Musik zum Download anbieten und die verschiedenen Varianten wären dann verschiedene Remixes, und da wäre es wiederum unklug die Dateien vom Vater zu übernehmen.
Deswegen kann man die eigenen Wünsche nicht immer für “es ist ja üblich so und müsste eigentlich standardmäßig drin sein” erklären. Ist nicht böse gemeint.
Die Funktion, die die Mediendateien abruft, so umzuschreiben, dass sie die Mediendateien vom Vaterartikel übernimmt, ist überhaupt kein Problem. In der Datei core/oxarticles.php gibts eine Funktion getMediaUrls()
diese müsste so angepasst werden: (getestet mit OXID 4.6.3)
public function getMediaUrls()
{
if ( $this->_aMediaUrls === null ) {
$this->_aMediaUrls = oxNew("oxlist");
$this->_aMediaUrls->init("oxmediaurl");
$this->_aMediaUrls->getBaseObject()->setLanguage( $this->getLanguage() );
$sViewName = getViewName( "oxmediaurls", $this->getLanguage() );
$sQ = "select * from {$sViewName} where oxobjectid = '".$this->getId()."'";
if( $this->_aMediaUrls->selectString($sQ) === null && $this->oxarticles__oxparentid->value ) {
$sQ = "select * from {$sViewName} where oxobjectid = '".$this->oxarticles__oxparentid->value."'";
}
$this->_aMediaUrls->selectString($sQ);
}
return $this->_aMediaUrls;
}
Besser wäre natürlich das als Modul zu machen, dann ist es sicherer bei Updates (innerhalb von 4.6.x , bei 4.7 kann ich nix garantieren),aber so wirds auch funktionieren.
@vanilla thunder: Vielen Dank für deine Mühe! Genau nach dieser Anpassung und der getMediaUrls() hatte ich gesucht! Jetzt gibts auch nichts mehr zu meckern
ich wollte soeben versuchen, den Code in meinem Shop einzubauen, um zu testen ob dies auch in der 4.8.0 Version funktioniert.
Ich finde aber die Datei oxarticles.php nicht. Ist diese bei der 4.8.0 noch da, oder ist hier eine andere Datei dafür verantwortlich. Hat schon jemand getestet, ob dies bei der 4.8.0 überhaupt geht?
Hallo is zwar schon ein bissel her aber ich würde gerne das Thema noch mal aufgreifen!
Da sich ja die Modulentwicklung/Einbindung geändert hat bin ich mir nicht ganz sicher wie ich das in diesem Fall umsetzen kann.
ich habe die entsprechende Datei gefunden:
unter OXID 4.9.X
/application/models/oxarticle.php
soll ich jetzt diese mit kompletten Inhalt als Modul einbinden oder nur den abgeänderten Teil.
und muss ich dann auch in der
Metadata.php alles eintragen? es sind doch schon bekannte komponenten!?