Eigene Aktionen abfragen / anzeigen

Hallo zusammen,

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.

Über einen Hinweis wäre ich überaus dankbar!

Beste Grüße

Gregor

Schade das hier noch keiner geantwortet hat. Mich würde das auch brennend interessieren.

Lg, Thomas

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 :slight_smile: oder wurde dieses Problem schon in einer der letzten Versionen gelöst?

Tausend Dank!!!

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

Du musst in deiner Modul datei das beendende ?> entfernen. Also <?php muss offen bleiben.

allright. dankeschön. jetzt schmeisst er zwar leinen fehler mehr. Ausgabe gabe ich aber trotzdem noch keine.

Wie sieht denn dein Aufruf im Template aus?

[QUOTE=DIATOM;83797]Tausend Dank!!![/QUOTE]

Super, dass es doch noch wem etwas genützt hat. :slight_smile:

[QUOTE=rainerpansen;83808]allright. dankeschön. jetzt schmeisst er zwar leinen fehler mehr. Ausgabe gabe ich aber trotzdem noch keine.[/QUOTE]

Überprüf mal, ob die Artikel in der Aktion sichtbar sind und ob die Aktion an sich sichtbar ist.

Wenn sich dann noch immer nichts regt, lass Dir einfach mal per

[{assign var="startaktion" value=$oView->getActionArticleList('oxtopstart')}]
[{debug}]

das Debug-Fenster ausgeben und schau dann mal nach der Variable $startaktion und ob da was drin ist…

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.

cyrano

Hallo,

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!

Gruß Zemek

Hast Du Dich beim Eintrag an die Vorgabe bezüglich des Formats gehalten (kannst Du auch im Demoshop bei OXID nachschauen)?

Und hast Du den Haken bei “Aktiv” noch drin? Der muss für eine datumsgesteuerte Anzeige dann natürlich raus.

Danke! Das mit dem Haken wars!

Gruß Zemek

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!

[{assign var=“startaktion” value=$oView->getActionArticleList(‘phbe06c3b385f3b24f2c382775eda28c’)}]
[{foreach from=$startaktion item=actionproduct}]
<div class=“start-best-offer-box”>
<div class=“start-best-offer-box-inner”>

       	[{include file="widget/product/listitem_grid.tpl" product=$actionproduct}]
	&lt;/div&gt;&lt;!-- .start-best-offer-box-inner --&gt;
&lt;/div&gt;&lt;!-- .start-best-offer-box --&gt;

[{/foreach}]

Gruß Zemek

[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.

Grüße

Gregor

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=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

alist => irgendeinModulOrdner/modulName

dann musst ext_start hinten dran hängen

alist => irgendeinModulOrdner/modulName&ext_start

Grüße und schönes WE!

Gregor

Hi zusammen,

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?

du könntest oxviewconfig erweitern, es ist überall erreichbar