• Seite
  • Addon-API's

Menü-Erweiterung (ACP und UserCP)

Stand: 09.12.2020 / 15:01:20

Hier wird erläutert wie man das bestehende A(dmin) C(ontrol) P(anel) und analog dazu das User C(ontrol) P(anel) um neue seiten erweitern kann, auf denen man dann einstellungsmöglichkeiten für die eigenen addons ermöglichen kann

  1. Hier sind insgesamt 8 arrays von interesse (4 fürs acp und 4 fürs usercp):
    $$data_cms["data_acp"] <-- hier wird der html-code der zu erstellenden seite(n) gespeichert
    $$data_cms["data_acp_descr"] <-- hier sind die überschriften der ACP-Gruppen gespeichert
    $$data_cms["data_acp_groups"] <-- hier wird festgelegt, welche Optionsseiten in welche gruppe sollen
    $$data_cms["data_acp_denied"] <-- hier kann festgelegt werden, welche optionsseiten nicht in der ACP-übersicht erscheinen sollen
    $$data_cms["data_usercp"] <-- analog zum acp für das usercp
    $$data_cms["data_usercp_descr"] <-- analog zum acp für das usercp
    $$data_cms["data_usercp_groups"] <-- analog zum acp für das usercp
    $$data_cms["data_usercp_denied"] <-- analog zum acp für das usercp
    ALLE arrays sind assoziativ!
  2. Um jetzt eine neue options-seite im ACP zu eröffnen, geht man wie folgt vor:
    $$data_cms["data_acp"] wird ein neues element hinzugefügt. das nenne wir jetzt beispielsweise "blubbs". dieses element wird jetzt um ein prefix ergänzt und ist jetzt der array-schlüssel, unter dem wir den code der optionsseite speichern wollen. das prefix lautet für das acp "admin_" und für das usercp "user-cp_". im code können html und pseudo-code vorkommen. der aufbau muss keinem schema folgen, aber er sieht im allgemeinen etwa so aus:
    1. [title]blubbel[/title]
    2. [block]kurzer beschreibungstext, worum es geht, kann alles enthalten ^^[/block]
    3. [block]eventuell ein zweiter absatz, der übersichtlichkeit halber...[/block]
    4. [admin="addon_funktion"]{eventuell optionen}[/admin]
    dieser text wird jetzt wie folgt im array gespeichert:
    1. $data_cms["data_acp"]["admin_blubbs"] = "{code von oben}"
    es ist nicht zwingend nötig das prefix zu verwenden, wird aber empfohlen
  3. jetzt muss unser element "blubbs" einer gruppe hinzugefügt werden. entweder man nimmt eine der bestehenden gruppen (derzeit "site", "user" und "addons") oder man macht sich eine eigene neue gruppe auf. generell gilt: je größer das addon, desto eher ist es ratsam sich eine eigene menü-gruppe zu eröffnen. kleinere sachen kann man dann problemlos in eine der bestehenden kategorien einsortieren.
    als beispiel nehmen wir jetzt mal an, daß es sich um ein größeres addon handelt. diesem addon ordnen wir die gruppe "blah" zu. in diese gruppe schieben wir dann "blubbs" und als 2. optionenseite "blubbel" hinein:
    1. $data_cms["data_acp_groups"]["blah"][] = "admin_blubbs";
    2. $data_cms["data_acp_groups"]["blah"][] = "admin_blubbel";
    die optionen einer einzelnen gruppe werden automatisch alphabetisch sortiert.
  4. die so erzeugte gruppe "blah" wird aber noch nicht in der acp-übersicht angezeigt. dazu muss ihr erst eine art überschrift verpaßt werden:
    1. $data_cms["data_acp_describe"]["blah"] = "Blubbs-Optionen";
    wurde die optionsseite in eine bestehende gruppe mit eingefügt entfällt dieser schritt natürlich.
  5. jetzt kann es sein, daß gewisse options-seiten nur mit post-daten aufgerufen werden sollen. da mit einem direkten klick aus der übersicht heraus natürlich keinerlei post-daten mitgeliefert werden, ists natürlich blöd, wenn diese seiten trotzdem in der übersicht erscheinen.
    hierfür gibt es dann $data_cms["data_acp_denied"]. alle seiten, die diesem array hinzugefügt werden, werden NICHT in der übersicht angezeigt. im beispiel soll es meinetwegen "blubbel" sein, die nur detaillierte datenansichten von objekten aus "blubbs" anzeigen soll.
    1. data_cms["data_acp_denied"][] = "admin_blubbel";
  6. alles was jetzt für das acp aufgezählt wurde, gilt exakt analog auch für das usercp.