Hallo,
ich würde gerne meine vorhandenen Dashboard Sidebar Boxen an das neue WCF anpassen, nur weiss ich nicht wie ich hier bei der php Datei vorgehen muss und ob ich auch Änderungen an der option.xml vornehmen muss, damit das Plugin welches auf 4.1 mit 2.1 läuft auch auf dem neuen läuft. Gibt es da irgendwie schon eine Art Anleitung oder so?
Sidebar Boxen an WCF anpassen
-
knuddchen -
26. Oktober 2016 um 01:17 -
Erledigt
Bitte in den Beiträgen keine externe Bilder einbinden, sondern nur die Dateianhänge verwenden.
Vielen dank.
Vielen dank.
-
-
Also es gibt keine Dashboard Boxen mehr in diesem Sinne.
Das System ist jetzt ganz anderes.
Ich kann dir gerne heute Abend etwas zu kommen lassen aber aktuell kenne ich keine Tutorial wo das erklärt wird. -
Wäre nett wenn ich es bitte auch bekommen könnte.
-
Ich hätte auch großes Interesse.
-
Solltet ihr nur Boxen haben die statischen Inhalt haben kann man diese natürlich so hinzufügen
Für Dynamischen Inhalt werde ich euch heute Abend mal was zeigen wie das geht -
Also die neuen Boxen müssen wie folgt aussehen
Dies wird für die installation der Boxen benötigt in der package.xmlXML: package.xml<instructions type="install"> <instruction type="objectType" /> <instruction type="box" /><!-- optional --> </instructions>
Als erstes legen wir in der objectType.xml einen neuen Eintrag an
Mit folgenden InhaltXML: objectType.xml<!-- box controllers --> <type> <name>dein.paket.name.box.object.type.name</name> <definitionname>com.woltlab.wcf.boxController</definitionname> <classname>wcf\system\box\NeuerBoxController</classname> </type> <!-- /box controllers -->
Damit wird bestimmt wo das WCF nach den passenden Controller für die Hintergrund Aufgaben und zur anzeige suchen muss.
Der name des Object Typen wird jetzt benötigt in der box.xml um diese direkt einzufügen.
Diese Datei ist optional, sofern diese direkt bei der Installation hinzugefügt werden soll.XML: box.xml
Alles anzeigen<box identifier="dein.paket.name.box.name"> <name language="de">Neue Box</name> <name language="en">New Box</name> <boxType>system</boxType> <objectType>dein.paket.name.box.object.type.name</objectType> <position>sidebarRight</position> <showHeader>1</showHeader> <visibleEverywhere>0</visibleEverywhere> <content language="de"> <title>Neue Box<;/title> </content> <content language="en"> <title>New Box</title> </content> </box>
Jetzt fehlt eigentlich nur noch zwei dingen.
Der BoxController und das Template.
Der BoxController liegt in dem Verzeichnis wcf/lib/system/boxPHP: NeuerBoxController.class.php
Alles anzeigen<?php namespace wcf\system\box; use wcf\system\WCF; /** * Die Beschreibung der Klasse(In Englisch) * * @Dein Copyright */ class RegisterButtonBoxController extends AbstractBoxController { /** * @inheritDoc */ protected static $supportedPositions = ['sidebarLeft', 'sidebarRight']; /** * @inheritDoc */ protected function loadContent() { //Hier kann beliebiger PHP Codes ausgeführt werden. $this->content = WCF::getTPL()->fetch('boxDeinNeuerInhalt'); } }
mit der Variabel $supportedPositions bestimmen wir wo genau die Box überall sichtbar sein kann.
Es gibt folgende Auswahl Möglichkeiten(Diese können jederzeit erweitert werden)Variablen Namen Bedeutung hero Hero headerBoxes Kopfzeile top Über Inhaltsbereich sidebarLeft Linke Seitenleiste contentTop Im Inhaltsbereich oben sidebarRight Rechte Seitenleiste contentBottom Im Inhaltsbereich unten bottom Unter Inhaltsbereich footerBoxes Fußzeile footer Seitenende
Anschließend können wir das neue Template boxDeinNeuerInhalt.tpl erstellen
Der Inhalt kann dabei beliebig geändert werden und auch Dynamisch Daten verarbeiten z.b. mit einer foreach Schleife.Code: boxDeinNeuerInhalt.tpl<p>{lang}dein.paket.box.title{/lang}</p> <div> <p>Dein neuer Inhalt kann auch was anders sein so wie du es gerne möchtest! </p> </div>
So ich hoffe ich habe da nichts vergessen
Sollten fragen sein einfach melden.p.s.
Es gibt schon Halbfertige Boxen für Datenbank ObjectListen oder Kommentare