# Template/Modul-API Aktivierungs-Hook

**URL:** <https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911>\
**Category:** Deutsches Forum\
**Tags:** templates-design\
**Created:** [February 12, 2013, 11:59am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911 "2013-02-12T11:59:18Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 12, 2013, 11:59am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/1 "2013-02-12T11:59:18Z")

</div>

Kann jemand beantworten, ob es für Module oder Templates eine Funktion gibt, die bei der (De-)Aktivierung aufgerufen wird?

Um den schlauen Fragen wofür man das braucht zuvorzukommen…:  
Bei Installation eines Moduls sollen Tabellen angelegt werden, bei Installation eines Themes halt ein paar Konfigurationsvariablen.

Kann doch nicht sein, dass man in Freiburg nicht an sowas gedacht hat, oder?

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [February 12, 2013, 12:07pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/2 "2013-02-12T12:07:06Z")

</div>

lies mal die Anleitung zu metadata.php genauer durch

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 13, 2013, 11:40am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/3 "2013-02-13T11:40:07Z")

</div>

metadata.php hat mit Themes nicht viel zu tun.

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [February 13, 2013, 11:59am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/4 "2013-02-13T11:59:54Z")

</div>

Aber mit Modulen

---

<div class="post-metadata">

**Author:** ![Hebsacker](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/hebsacker/32/45_2.png) [@Hebsacker](https://forum.oxid-esales.com/u/Hebsacker)\
**Post date:** [February 13, 2013, 12:02pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/5 "2013-02-13T12:02:58Z")

</div>

> **[Extension metadata file](https://oxidforge.org/en/extension-metadata-file.html)**
>
> Metadata file structure
> id
> The extension id must be unique. It is recommended to use vendor prefix + module root directory name. Module ID is used for getting all needed information about extension. If this module has defined config variables in...

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 13, 2013, 1:06pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/6 "2013-02-13T13:06:41Z")

</div>

Es geht primär um Templates. Da muss man auch mal was initialisieren.  
Dafür gibt es wohl keine ordentliche Lösung?

Intelligenterweise wäre die API für Templates und Module identisch.

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [February 13, 2013, 2:00pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/7 "2013-02-13T14:00:23Z")

</div>

bau dir einfach ein Modul zu deinem Template, wo du die Installationsgeschichten einbauen kannst.

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 13, 2013, 9:17pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/8 "2013-02-13T21:17:15Z")

</div>

hab ich schon, und jetzt will ich das ganze sinnvoll und für den User nachvollziehbr zusammenführen - sowie man das überall auf der Welt nach den Regel der Programmierkunst machen würde.

… Überall? Ganz Gallien?

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [February 13, 2013, 11:46pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/9 "2013-02-13T23:46:10Z")

</div>

Der Welt von World of Warcraft vielleicht…

Bitte ließ eine Beschreibung von MVC durch, was die modulare Programmierung ist und was und wozu Templates sind. Denn Du hast überhaupt keine Ahnung, was die üblichen Regeln der Programmierkunst sind, und versucht deswegen denn Sinn und Zweck von Templates zu vergewaltigen. Einem Auto wachsen ja auch kein Flügel, wenn Du es pink anmalst.

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 14, 2013, 11:42am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/10 "2013-02-14T11:42:18Z")

</div>

Aber, warum denn so aggresiv? Ein wenig anmaßend, jemand Unbekanntem keine Ahnung in Programmierung zu attestieren, oder? Verzichte doch bitte auf solche kindlichen Worte zugunsten des Themas.

Was ist so falsch daran, nach einem einheitlichen Mechanismus zu fragen, der aufgerufen wird, wenn ein Modul oder ein Template aktiviert wird?

---

<div class="post-metadata">

**Author:** ![Hebsacker](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/hebsacker/32/45_2.png) [@Hebsacker](https://forum.oxid-esales.com/u/Hebsacker)\
**Post date:** [February 14, 2013, 11:58am UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/11 "2013-02-14T11:58:45Z")

</div>

weil ein Fahrrad und ein Motorrad auch nicht die gleiche Antriebstechnik haben - obwohl beide Räder bewegen

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 14, 2013, 12:14pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/12 "2013-02-14T12:14:32Z")

</div>

Guter Punkt! Fahrzeug-Metaphern scheinen hier beliebt zu sein, aber wir sollten sie dann auch richtig anwenden. Also schieben wir das doch mal auf die passende Ebene:

Es geht ja eben _nicht_ um den ganzen Antrieb (Modulmechanik, Templatemechanik), sondern nur um den Einbau eines Rades (Aktivierung), Fachleute sprechen hier von der Aufhängung. Und jetzt kommts: Das wird bei Fahrrad, Motorrad, Auto, LKW und sogar Space Shuttle mit dem bewährten Kleinteil Schraube gemacht, stimmts?

---

<div class="post-metadata">

**Author:** ![Hebsacker](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/hebsacker/32/45_2.png) [@Hebsacker](https://forum.oxid-esales.com/u/Hebsacker)\
**Post date:** [February 14, 2013, 12:25pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/13 "2013-02-14T12:25:05Z")

</div>

[QUOTE=oxidusr324;116135]…bei Installation eines Themes halt ein paar Konfigurationsvariablen.  
[/QUOTE]

abgesehen davon, dass ich bildliche Vergleiche jederzeit uminterpretieren kann und damit natürlich wiederlegen kann…

Bei der “Installation” eines Themes kann man sehr wohl eigene Config-Variablen setzen. Das gehlt halt nicht ganz so elektrisch, sondern muss als zusätzliches SQL abgefeuert werden. Also wie folgt:  
[ol]  
[li]die Theme-Dateien hochladen  
[/li][li]das Theme-SQL ausführen  
[/li][li]das Theme aktivieren im Backend  
[/li][/ol]

> **[\[4.5\] Theme Management im OXID eShop ab 4.5.0](https://oxidforge.org/de/4-5-theme-management-im-oxid-eshop-ab-4-5-0.html)**
>
> Theme-Management im OXID eShop ab 4.5.0 
> Ab OXID eShop 4.5.0 sind die Theme-Einstellungen aus derconfig.inc.php ins Admin-Backend verlegt (Stammdaten -\> Grundeinstellungen -\> Themes), wo eine Liste aller verfügbaren Themes, deren Beschreibung,...

---

<div class="post-metadata">

**Author:** ![oxidusr324](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/o/ebca7d/32.png) [@oxidusr324](https://forum.oxid-esales.com/u/oxidusr324)\
**Post date:** [February 14, 2013, 12:38pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/14 "2013-02-14T12:38:37Z")

</div>

Vielen Dank Hebsacker,

das ist momentan tatsächlich der einzige Weg und damit die exakte Antwort auf meine Frage - nur unschön.

Die Idee mit dem Templateinstallations-Modul hatte ich vor einiger Zeit ausprobiert. Klar geht das, aber ich halte das für schwer vermittelbar und unelegant.

Hoffentlich stutzt ein mitlesender Entwickler, und denkt konsequent eine metadata.php für Templates an.

---

<div class="post-metadata">

**Author:** ![a.bockstiegel](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/a/3e96dc/32.png) [@a.bockstiegel](https://forum.oxid-esales.com/u/a.bockstiegel)\
**Post date:** [August 5, 2013, 1:47pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/15 "2013-08-05T13:47:49Z")

</div>

Ich hänge mich da mal etwas hier ein.

Mir fällt so spontan eigentlich gar nicht viel anderes ein, außer dass man Konfigurationsvariablen für ein Template zur Verfügung haben möchte. Und da muss ich sagen, dass ich dem oxidusr324 trotz seines überheblichen Stils recht geben muss, dass das in der theme.php doch ganz komfortabel wäre.  
Obwohl der Weg über die SQL-Anweisungen für jemanden, der einen Web-Shop administriert, durchaus machbar sein sollte, hätte doch eine »elektrische« Lösung über die theme.php auch Ihren Reiz. Und ich verstehe es doch richtig, dass ich wenn Konfigurationsvariablen vorbelegen möchte, ihren Wert encoden muss. Ich finde das macht die Sache nicht unbedingt transparenter, oder?

Und so etwas wie  
$aTheme = array(  
‘id’ =\> ‘azure’,  
‘title’ =\> ‘Azure’,  
‘description’ =\> ‘Azure theme by OXID eSales AG’,  
‘thumbnail’ =\> ‘theme.jpg’,  
‘version’ =\> ‘1.3’,  
‘author’ =\> ‘OXID’,  
‘config’ =\> array(  
‘sIconsize’=\> array(  
‘vartype’ =\> ‘str’,  
‘varvalue’ =\> ‘87\*87’,  
‘grouping’ …),  
);  
mit der DB abzugleichen, ob die Variablen dort stehen und die Werte dem Default entsprechen und ggf. die Variablen einzutragen und einen Reset auf die Default-Werte anzubieten, würde doch vor allem für die nicht-Azure-basierten Themes einen netten Mehrwert bieten, oder nicht?

Gruß  
Ansgar

---

<div class="post-metadata">

**Author:** ![system](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/system/32/4245_2.png) [@system](https://forum.oxid-esales.com/u/system)\
**Post date:** [July 13, 2026, 8:14pm UTC](https://forum.oxid-esales.com/t/template-modul-api-aktivierungs-hook/62911/16 "2026-07-13T20:14:34Z")

</div>

Closed on July 13, 2026, 8:14pm UTC


