Eigene Aktionen anzeigen

Hi Zusammen,

wie kann ich eigene Aktionen die ich angelegt habe anzeigen lassen?

Die vordefinierten “Frisch eingetroffen” usw werden angezeigt, das kann ich ja auch über Stammdaten - Perform. - Aktionen laden ein- und ausschalten.

Ich kann auch eine Aktion vom Typ “Promotion” anlegen, auch die wird mir auf der Startseite angezeigt. Aber ich sehe nirgends eine Anzeige meiner selber angelegten Aktion vom Typ “Aktion”.

Muss man da noch was bei den Stammdaten aktivieren, oder im Template ergänzen oder wie geht das ganze?
Oder ist das womöglich wieder so eine “is it a bug or a feature” Geschichte?

Gruß
FRANK

Hallo Frank,

die Aktionen haben IDs und sind im Template verbaut. Wenn man sich die start.tpl mal näher anschaut, sieht man das recht genau.

Gruß

Du meinst den Teil hier:

[{if ($oView->getCatOfferArticleList()|@count)>0 }]
  <strong id="test_CategoriesHeader" class="head2">[{ oxmultilang ident="START_CATEGORIES"}]</strong>
  [{if ($oView->getCatOfferArticleList()|@count) is not even  }][{assign var="actionproduct_size" value="big"}][{/if}]
  [{foreach from=$oView->getCatOfferArticleList() item=actionproduct name=CatArt}]
      [{if $actionproduct->getCategory() }]
          [{assign var="oCategory" value=$actionproduct->getCategory()}]
          [{assign var="actionproduct_title" value=$oCategory->oxcategories__oxtitle->value}]
          [{if $oCategory->getNrOfArticles() > 0}][{assign var="actionproduct_title" value=$actionproduct_title|cat:" ("|cat:$oCategory->getNrOfArticles()|cat:")"}][{/if}]
          [{include file="inc/product.tpl" showMainLink=true product=$actionproduct size=$actionproduct_size head=$actionproduct_title head_link=$oCategory->getLink() testid="CatArticle_"|cat:$actionproduct->oxarticles__oxid->value  testHeader="Category_`$smarty.foreach.CatArt.iteration`"}]
          [{assign var="actionproduct_size" value=""}]
      [{/if}]
  [{/foreach}]
[{/if}]

oder den Teil hier, weiter oben:

[{if ($oView->getArticleList()|@count)>0 }]
  <strong id="test_LongRunHeader" class="head2">[{ oxmultilang ident="START_LONGRUNNINGHITS"}]</strong>
  [{if ($oView->getArticleList()|@count) is not even  }][{assign var="actionproduct_size" value="big"}][{/if}]
  [{foreach from=$oView->getArticleList() item=actionproduct}]
      [{include file="inc/product.tpl" showMainLink=true product=$actionproduct size=$actionproduct_size testid="LongRun_"|cat:$actionproduct->oxarticles__oxid->value }]
      [{assign var="actionproduct_size" value=""}]
  [{/foreach}]
[{/if}]

Ich kann da jetzt nicht sehen, dass meine eigenen Aktionen IDs bekommen (die stehen ja dann auch wohl nicht im Template) und was ich machen muss damit die angezeigt werden.

Noch mal von vorn: Ich habe OXID 4.4 Testshop. Habe jetzt alle Standardaktionen auf nicht aktiv. Habe eine eigene Aktion angelegt, Zeit zugeordnet, aktiv geschalten, Artikel zugeordnet. Bei Stammdaten - Perform. - Aktionen laden eingeschalten.
Auf der Startseite müsste ich dann doch etwas sehen oder liege ich da falsch? Ich sehe aber nichts. Woran kann das liegen?

Hallo,

bin hier auch an einer Antwort interessiert, dokumentiert ist das ja nirgends.

Lg, Thomas

Hallo zusammen.

Ich hab da ne Lösung. Werde bis in ein paar Tagen noch etwas dazu programmieren und dann würde ich es zur Verfügung stellen. Der Link zum ZIP kommt dann, sobald es fertig ist. Damit kann man dann jede beliebige Aktion im Start-Template über die ID einbinden (ID wird im Backend angezeigt) und im details.tpl kann man die Namen der Aktionen, in denen sich der Artikel befindet einbinden.

Gruß, Kai

Nachtrag für das Verständnis:

Wir konnten nicht herausfinden, dass es einen Weg gibt eigene Aktionen über das Template anzeigen zu lassen. Wir lassen uns gerne noch eines Besseren belehren.

So kam es, dass Kai das kleine Modul geschrieben hat.

Gruß
FRANK

Welches Modul?

Ist das in Exchange?

Gruß,

Meik

Schau doch mal hier:

http://www.oxid-esales.com/forum/showthread.php?t=6983&page=2

Vielleicht ist die Frage doof, aber muss ich jetzt ein Modul schreiben, um eine Aktion auszugeben?

Hi,

der Thread ist schon älter. Was genau hast Du denn vor, wie soll Deine Aktion aussehen?

Gruß

Hallo zusammen.

http://vektordesign.de/downloads/vdAktionen.zip Hier ist der Download. Ich hab damals keine Doku zu dem Modul geschrieben, und hab aktuell auch keine Zeit. Vielleicht hilft es Euch ja so schon weiter. Wenn Fragen sind einfach nochmal hier in den Thread posten, dann melde ich mich so zeitnah wie möglich mit entsprechenden Infos

[U][B][I]EDIT:[/I][/B][/U]

[U][B]Hab gerade noch na alte Mail gefunden:[/B][/U]

  1. Erstelle eine Aktion im Backend. Dir wird dann unter dem Namen die Aktions-ID angzeigt
    2a) Im Start-Template:$oView->getActionArticleList(“DieIDderAktion”) um die Liste der Artikel in einer beliebigen Aktion zu laden
    2b) $oView->getActionTitle(“DieIDderAktion”) um den Titel einer beliebigen Aktion erhalten
  2. Im Details-Template: $product->getActionTitle(“DieIDderAktion”) um den Titel der Aktion anzuzeigen, in der sich das Produkt befindet

Außerdem fehlt im ZIP die Anpassung für das Backend - da ist nur eine Lang-Datei drin.
Es müssen Zeilen in die [B]actions_main.tpl[/B] im Ordner [B]/out/admin/tpl[/B] eingefügt werden:

[U][B]SUCHE[/B][/U] (Anfang der Layout-Tabelle, oder wo immer man es haben will)
<table cellspacing=“0” cellpadding=“0” border=“0” width=“98%”>

<tr>
<td valign=“top” class=“edittext”>
<table cellspacing=“0” cellpadding=“0” border=“0”>

[U][B]DAHINTER FÜGE EIN:[/B][/U]
<tr>
<td class=“edittext”>ID:</td>
<td class=“edittext”>[{$edit->oxactions__oxid->value}]</td>
</tr>
<tr>
<td class=“edittext”>[{oxmultilang ident=“VDACTIONS_ACTIONS_MAIN_AUTOACTION”}]:</td>
<td class=“edittext”>
<input type=“hidden” name=“editval[oxactions__vdautoaction]” value=‘0’>
<input class=“edittext” type=“checkbox” name=“editval[oxactions__vdautoaction]” value=‘1’ [{if $edit->oxactions__vdautoaction->value == 1}]checked[{/if}] [{ $readonly }]>
</td>
</tr>

[U][B]ANSONSTEN:[/B][/U] [I][B]Inhalt von copy_this ins Basisverzeichnis des Shops kopieren, sql in setup.sql ausführen, tmp leeren, fertig …[/B][/I]

Gruß, Kai

sehr geil. aber ich bekomm keine ausgabe zustande. Wie sollte das genau aussehen in der start.tpl?

grüsse,
rainer


[{assign var="vdActionArticleList" value=$oView->getActionArticleList("012-Die_ID_Der_Aktion-345") }]
[{if $vdActionArticleList}]
  [{foreach from=$vdActionArticleList item=actionproduct name=vdStartAction}]
    [{include file="inc/product.tpl" product=$actionproduct showMainLink=true head="VektorDesign Start-Aktion" testid="vdStartAction_"|cat:$actionproduct->oxarticles__oxid->value testHeader="vdStartAction_`$smarty.foreach.WeekArt.iteration`"}]
  [{/foreach}]
[{/if}]

Der Code ist nicht getestet, hab es nur “aus dem Kopf” hingetippt. Du kannst die Aktionen benutzen, wie alle anderen (z.B. getTopArticleList) auch.

[I]012-Die_ID_Der_Aktion-345[/I] ist natürlich zu ersetzen durch die gewünschte ID der Aktion

[B] Bitte kurz hier vermerken, ob der Code funktioniert, damit folgende Interessenten auch bescheid wissen … oder gerne um perfektionierte Lösungen ergänzen :wink:
[/B]
Gruß, Kai

ERGÄNZUNG:

[{assign var="vdActionTitle" value=$oView->getActionTitle("012-Die_ID_Der_Aktion-345") }]

Vor den Code hängen und dann

head="VektorDesign Start-Aktion"

durch

head=$vdActionTitle

ersetzen, dann wird in der Header-Zeile auch der Titel aus der Aktion benutzt

[B][U]Auktionen automatisch auf der Startseite anzeigen[/U][/B]
Mit einer Foreach-Schleife über $oView->getAutoActions(), die einen ähnlichen Block wie oben beschrieben umschließt, könnt Ihr alle Aktionen, die mit “automatisch auf Startseite anzeigen” markiert sind auf der Startseite ausgeben. Die Funktion gibt ein Array zurück, das die Infos der entsprechenden Aktionen in jeweils einem assoziativen Array zurück gibt.



[{foreach from=$oView->getAutoActions() item=aAutoAction}]                           
    [{assign var="vdActionTitle" value=$oView->getActionTitle($aAutoAction.oxid) }]
    [{assign var="vdActionArticleList" value=$oView->getActionArticleList($aAutoAction.oxid) }]  
    [{if $vdActionArticleList}]
      [{foreach from=$vdActionArticleList item=actionproduct name=vdStartAction}]
        [{include file="inc/product.tpl" product=$actionproduct showMainLink=true head=$vdActionTitle testid="vdStartAction_"|cat:$actionproduct->oxarticles__oxid->value testHeader="vdStartAction_`$smarty.foreach.WeekArt.iteration`"}]
      [{/foreach}]
    [{/if}]    
[{/foreach}]

Das sollte euch also alle diese Aktionen unterinander raus hauen. So, jetzt gibts was zu beißen und dann sollte ich mal wieder produktiv arbeiten :wink:

Gruß nochmal, Kai

	[{assign var="vdActionTitle" value=$oView->getActionTitle("9aa79f613225d615c452511dea630821") }]
	[{assign var="vdActionArticleList" value=$oView->getActionArticleList("9aa79f613225d615c452511dea630821") }]
[{if $vdActionArticleList}]
  [{foreach from=$vdActionArticleList item=actionproduct name=vdStartAction}]
    [{include file="inc/product.tpl" product=$actionproduct showMainLink=true head=$vdActionTitle testid="vdStartAction_"|cat:$actionproduct->oxarticles__oxid->value testHeader="vdStartAction_`$smarty.foreach.WeekArt.iteration`"}]
  [{/foreach}]
[{/if}]
	

das ganze sollte dann ja so aussehen. funktioniert bei mir bisher nicht.

Ich verweise einfach mal kurz auf diesen Thread, das hat mir grad die Losung gegeben :slight_smile:

http://www.oxid-esales.com/forum/showthread.php?p=83797#post70404