ich bekomm einfach nicht heraus wie ich in der neuen OXID-Shop Version 4.4, in der man ja eigene Aktionen anlegen kann, die Information abgreifen kann, welche Artikel in einer solche Aktion drin sind. Gibt es dafür überhaupt schon ein Template-Tag oder muss man da selbst was in der Programmierung des Shops hinzufügen, ein Modul schreiben oder ähnliches.
Hehe witzig … ich hatte das Problem damals schon gelöst und nun poste ich es einfach mal ^^ … hatte ich natürlich damals vergessen. Da ich in einem neuen Shop nun aber auch wieder auf das selbe Problem gestoßen bin und noch immer nicht weiß, ob das vom Core-Team bereits gelöst ist, hier ein kleines Modul, was ermöglicht auf der Startseite die Artikel einer Aktion abzufragen:
Im Ordner /modules eine Datei [I]ext_start.php[/I] erzeugen. Dann folgenden Inhalt in diese Datei schreiben:
<?php
class ext_start extends ext_start_parent {
/**
* Template variable getter. Returns Article-List of an Action
*
* Add "start => ext_start" to Master Settings -> Core Settings -> System -> Modules
* @return array
*/
public function getActionArticleList($actionid)
{
$oArtList = oxNew( 'oxarticlelist' );
$oArtList->loadAktionArticles( $actionid );
return $oArtList;
}
}
?>
Datei hochladen und im Backend unter Module
start => ext_start
der Modul-Liste hinzufügen.
Im Template (/out/azure/page/shop/start.tpl) kann nun zum Beispiel mit folgendem Code die Artikelliste einer Aktion abgefragt werden im Beispiel ist es die Aktion mit der ID [I]oxtopstart[/I]
[{assign var="startaktion" value=$oView->getActionArticleList('oxtopstart')}]
[{foreach from=$startaktion item=actionproduct}]
<div class="start-best-offer-box">
<div class="start-best-offer-box-inner">
[{* Im Folgenden muss natürlich nicht listitem_grid.tpl verwendet werden, es kann jedes Template verwendet werden, das mit einem oxArticle-Objekt umgehen kann ( man kann z.B. auch ein neues aus einer Kopie erstellen) *}]
[{include file="widget/product/listitem_grid.tpl" product=$actionproduct}]
</div><!-- .start-best-offer-box-inner -->
</div><!-- .start-best-offer-box -->
[{/foreach}]
Hoffe das hilft irgendwem oder wurde dieses Problem schon in einer der letzten Versionen gelöst?
ich bekomme folgendes und weiss leider nicht woran es liegt:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/23/d274082215/htdocs/brio/modules/ext_start.php:16) in /homepages/23/d274082215/htdocs/brio/core/oxutils.php on line 1124
allright. dankeschön. jetzt schmeisst er zwar leinen fehler mehr. Ausgabe gabe ich aber trotzdem noch keine.
bist du sicher, das du die richtige ID im code angegeben hast?
Wenn du dir selbst eine neue Aktion angelegt hast, ist das mit Sicherheit nicht “oxtopstart”.
Schau mal in die Datenbanktabelle, welche ID deine Aktion hat.
vielen Dank für die Anleitung. Es klappt auch soweit ganz gut. Wie kriege ich es aber hin, dass das Angebot zu gewünschten Zeiten ausgegeben wird. Ich habe in den Feldern für die Zeit was eingetragen, es will aber nicht klappen!
Hallo, habe da mal noch eine Frage! Wie kriege ich das hin, dass das Actionsproduct nicht nur auf der Startseite angezeigt wir sonder auch in der list.tpl angezeigt wird. Wenn ich es so einfüge dann springt er zurück zu Starteiste!
[QUOTE=zemek;85320]Hallo, habe da mal noch eine Frage! Wie kriege ich das hin, dass das Actionsproduct nicht nur auf der Startseite angezeigt wir sonder auch in der list.tpl angezeigt wird. Wenn ich es so einfüge dann springt er zurück zu Starteiste!
[/QUOTE]
Hallo Zemek,
dazu müsste man für den Listen-View eine kleine Erweiterung schreiben (ähnlich der oben genannten), die auch für diese Ansicht die Artikel der Aktion holt.
Ich glaube das müsste die die Datei views/alist.php sein.
[QUOTE=zemek;85606]Danke für den Hinweis! Ich habe von der views/alist.php eine Ahnung. Könnte mir jemand schreiben wie diese Erweiterung aussehen muss.
Gruss Zemek[/QUOTE]
Hallo Zemek,
es sollte auch gehen, wenn Du in die Modulliste zusätzlich zu
start => ext_start
auch noch
alist => ext_start
hinzufügst. Dann solltest Du in der Listenansicht eigentlich die selben Optionen nutzen können, wie auch auf der Startseite. Aber darauf keine Garantie - hatte es eben normal kurz testweise im Testsystem versucht und da ging es…
Und aufpassen bei den Module:
Wenn alist schon erweitert wurde
hat jemand eine Idee, wie ich die eigenen Aktionen dann Shopübergreifend anzeigen lassen kann, so dass ich nicht an jede einzelne Klasse das Modul hängen muss?