Admin-Template 4.7. um Felder UPGRADE-SAFE erweitern / als Modul?

Hallo Community,

ich würde gerne das Admin-Interface um ein Feld erweitern - natürlich upgrade-safe.

Momentan stellt sich folgende Anforderung:

Der Banner/Slider auf der Home-Seite soll um einen Text erweitert werden welcher als Overlay über die Bannergrafik gelegt werden kann. Entsprechend soll in das Admin-Template “Aktionen verwalten > Banner” um ein neues Feld “Overlay-Text” erweitert werden.

Habe dazu folgendes Tutorial im Netz gefunden:

http://oxid-blog.euroblaze.de/developers/adding-text-to-oxid-e-shop-banner/

Mir scheint es so als würden hier die Oxid-Files überschrieben - vermutlich der schnellste Weg zum Ziel aber eben nicht Update-Safe.

Die Anforderung für den Overlay-Text dient momentan als Beispiel, es werden sicherlich noch weitere Anpassungen im Admin für mein Projekt nötig sein - daher die Frage an Euch wie man den Adminbereich am besten Upgrade-Safe um Felder erweitert?

Ich vermute es müsste ein Modul geschrieben werden, ggf. gibt es auch die Möglichkeit mittels Template-Override im Admin-Bereich. Meine Anpassungen würde ich auch gerne “möglichst einfach” für weitere Oxid-Projekte nutzen - als Basis für die neuen Projekte aber jeweils eine frische/leere und aktuellste Version von Oxid installieren - meine Anpasssungen / Module aber dann mit wenig Aufwand in den neuen Shop integrieren, Copy & Paste diverser Zeilen kommt daher nicht in Frage.

Vielen Dank vorab! Grüsse, TommyL

am besten und update-safe’sten wäre ein Modul:

Die Funktionen bringst du in der php Datei unter, mit der du die admin view Klasse erweiterst.

Die Template Anpassung ist in einem Block unterzubringen, allerdings bietet das Backend nicht so viele Blocks wie das Frontend, daher muss man bereit sein einige Abstriche in Sachen “gewünschte GUI” machen zu müssen.

Die SQL Queries baust du in den onActivate() Event ein, so dass sie beim Aktivieren des Moduls ausgeführt wird.

Ich habe eben in dem Template ein paar Blocks gesehen, dort dürfte es kein Problem sein das neue Feld irgendwo unterzubringen, daher steht eigentlich nichts im Wege.

ich häng mich mal kurz an diesen thread dran. noch nicht zu alt - entsprechendes thema. und in der suche etwas zu wenig info.

ich möchte die article_variant.tpl um die felder der ersten beiden bilder der variante erweitern. dazu habe ich ein modul erstellt:

metadata.php
… alles standard…
‘extend’=> array(),
‘blocks’ => array(array(‘template’ => ‘article_variant.tpl’, ‘block’=>‘admin_article_variant_listheader’, ‘file’=>‘out/blocks/admin_article_variant_listheader.tpl’),

im template block dann:
[{$smarty.block.parent}]
… meine neuen felder…

resultat leider ne exception…
“syntax error: block tags mismatch”

generell möchte ich in der article_variant.tpl ja alle 4 dort vorhandenen blocks austauschen damit ich die tabelle entsprechend erweitern kann… geht das dann wirklich nur über 4 tpl files im out/blocks/?

jop hallo Ray!

:slight_smile: -> jop = 4 template files in den blocks, oder?
aber auch in dieser variante bekomme ich die exception.

das ganze sieht ja dann so aus…
‘blocks’ => array(array(‘template’ => ‘article_variant.tpl’, ‘block’=>‘admin_article_variant_listheader’, ‘file’=>‘out/blocks/admin_article_variant_listheader.tpl’),array(‘template’ => ‘article_variant.tpl’, ‘block’=>‘zweiter_block’, ‘file’=>‘out/blocks/zweiter_block.tpl’));

im tpl file dann jeweils in der ersten zeile:
[{$smarty.block.parent}]
<div …

was mir noch nicht ganz klar ist, wenn das ganze dann mal ohne exception funktioniert ist: wird das ganze dann “überschrieben” oder “angehängt”?

wenn du [{$smarty.block.parent}] drin hast, wird es angehängt.
schau dir mal mein Modul vt_cmsstructure an

“block tags mismatch” heißt, glaube ich, dass du eine Endlosschleife des Todes gebaut hast. Poste mal deinen Code aus dem Block Template zwischen

 [/cоde] Tags

ok. angehängt ist schon mal gut zu wissen. genau genommen möchte ich in der article_variant alle 4 blöcke der tabellenzusammenstellung austauschen, und nicht anhängen.
hab jetzt somit für jeden block ein .tpl file erstellt, wie dieses hier:


[{$smarty.block.parent}]
                <td class="listheader first" height="15">[{ oxmultilang ident="ARTICLE_VARIANT_EDIT" }] </td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_ACTIVE" }] </td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_CHOICE" }] </td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_ARTNUM" }]</td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_PRICE" }] ([{ $oActCur->sign }])</td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_SORT" }]</td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_STOCK" }]</td>
                <td class="listheader" colspan="2"> </td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_OXPIC" }] 1</td>
                <td class="listheader">[{ oxmultilang ident="ARTICLE_VARIANT_OXPIC" }] 2</td>

habe das ganze jetzt mal analog deines moduls nachgestellt… leider mit dem gleichen ergebnis.

also aus den tpl files das [{$smarty.block.parent}] raus…

und in der metadata


'extend' => array(),
'blocks' => array(
  array('template' => 'article_variant.tpl', 'block'=>'admin_article_variant_listheader', 'file'=>'out/blocks/admin_article_variant_listheader.tpl'),
  array('template' => 'article_variant.tpl', 'block'=>'admin_article_variant_listitem', 'file'=>'out/blocks/admin_article_variant_listitem.tpl'),
  array('template' => 'article_variant.tpl', 'block'=>'admin_article_variant_newitem', 'file'=>'out/blocks/admin_article_variant_newitem.tpl'),
  array('template' => 'article_variant.tpl', 'block'=>'admin_article_variant_parent', 'file'=>'out/blocks/admin_article_variant_parent.tpl'),
),

auch - um eine eventuelle fehlerquelle zu vermeiden - wenn ich den pfad, wie in deinem modul vor den templatefiles entferne. ändert sich nichts.

in der fehlermeldung wird ausgegeben dass die exception in der article_variant.tpl in zeile 1 ist - dort wo headitem.tpl aufgerufen wird. - könnte aber nichts finden was der grund dafür sein könnte…