Dafür bin ich doch daHrgnh... (das gilt mir, nicht Dir)
Version 1.2: Dashboard
Re: Version 1.2: Dashboard
Jepp, funzt
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!
Re: Version 1.2: Dashboard
Das hier kommt später mal ins Wiki, jetzt würde das nur verwirren, weil das erst in BC 1.2 geht.
Grundlagen
Dashboards (bzw. deren Konfiguration) werden benutzer- und modulspezifisch gespeichert. Beim ersten Aufruf werden die vorgefundenen Widgets alphabetisch sortiert und in die Spalten eingeordnet. Das Standard-Layout besteht aus zwei Spalten.
Nach dem ersten Aufruf können die Widgets umsortiert, eingeklappt oder ganz entfernt werden. Die jeweilige Einstellung wird sofort gespeichert, es gibt also keinen [Speichern]-Button oder etwas in der Art.
Werden Widgets gefunden, die auf dem Dashboard fehlen - z.B. weil sie entfernt wurden -, wird die Liste dieser Widgets als Dropdown angezeigt. (Die Funktionalität gibt es noch nicht und ob es wirklich ein Dropdown wird steht noch nicht fest.)
Module mit eigenem Dashboard
Auch Module können eine modulare Backend-Seite haben, die mit Widgets gefüllt werden kann. Ein Beispiel ist das Modul BCStats. Damit die Module die Funktionalität nicht selbst mitbringen müssen, werden die Helper "Widget" und "Dashboard" zur Verfügung gestellt.
Zunächst braucht man ein Unterverzeichnis "widgets", welches die einzelnen Widgets in Form von PHP-Dateien beinhaltet. Zusätzlich kann eine globale Konfigurationsdatei namens "widgets.config.php" hinterlegt werden. Diese kann folgende Einstellungen beinhalten:
'allow_global_dashboard' - Bestimmt, ob die Widgets auch im globalen Dashboard (im Backend) angezeigt werden können
'preferred_layout' - Bestimmt beim ersten Aufruf des Dashboards dessen Layout
Das für die Darstellung notwendige CSS wird automatisch aus dem Backend-Theme hinzugeladen, sofern vorhanden. (Datei widgets.css.) Das für die Verwaltung von Widgets (Minimieren, Verschieben, Entfernen) notwendige JavaScript wird vom Dashboard-Helper ebenfalls automatisch geladen. Das Modul kann nötigenfalls eigene CSS-Stile und JavaScripts mitbringen, notwendig ist das jedoch nicht.
Dashboard laden und ausgeben
Dashboard Template
Konfiguration pro Widget
Jedes Widget kann eine eigene Konfiguration mitliefern, die vom Widget-Helper ausgewertet wird.
'allow_global_dashboard' - Bestimmt, ob das Widget auch im globalen Dashboard (im Backend) angezeigt werden kann
'widget_title' - Der anzuzeigende Titel. Fehlt dieser, wird der Modulname verwendet
'preferred_column' - Wirkt sich nur beim ersten Aufruf aus (noch nicht implementiert)
Grundlagen
Dashboards (bzw. deren Konfiguration) werden benutzer- und modulspezifisch gespeichert. Beim ersten Aufruf werden die vorgefundenen Widgets alphabetisch sortiert und in die Spalten eingeordnet. Das Standard-Layout besteht aus zwei Spalten.
Nach dem ersten Aufruf können die Widgets umsortiert, eingeklappt oder ganz entfernt werden. Die jeweilige Einstellung wird sofort gespeichert, es gibt also keinen [Speichern]-Button oder etwas in der Art.
Werden Widgets gefunden, die auf dem Dashboard fehlen - z.B. weil sie entfernt wurden -, wird die Liste dieser Widgets als Dropdown angezeigt. (Die Funktionalität gibt es noch nicht und ob es wirklich ein Dropdown wird steht noch nicht fest.)
Module mit eigenem Dashboard
Auch Module können eine modulare Backend-Seite haben, die mit Widgets gefüllt werden kann. Ein Beispiel ist das Modul BCStats. Damit die Module die Funktionalität nicht selbst mitbringen müssen, werden die Helper "Widget" und "Dashboard" zur Verfügung gestellt.
Zunächst braucht man ein Unterverzeichnis "widgets", welches die einzelnen Widgets in Form von PHP-Dateien beinhaltet. Zusätzlich kann eine globale Konfigurationsdatei namens "widgets.config.php" hinterlegt werden. Diese kann folgende Einstellungen beinhalten:
Code: Alles auswählen
$widget_config = array(
'allow_global_dashboard' => false,
'preferred_layout' => '33-33-33',
);
'preferred_layout' - Bestimmt beim ersten Aufruf des Dashboards dessen Layout
Das für die Darstellung notwendige CSS wird automatisch aus dem Backend-Theme hinzugeladen, sofern vorhanden. (Datei widgets.css.) Das für die Verwaltung von Widgets (Minimieren, Verschieben, Entfernen) notwendige JavaScript wird vom Dashboard-Helper ebenfalls automatisch geladen. Das Modul kann nötigenfalls eigene CSS-Stile und JavaScripts mitbringen, notwendig ist das jedoch nicht.
Dashboard laden und ausgeben
Code: Alles auswählen
$config = CAT_Helper_Dashboard::getDashboard('<Modul>');
$parser->output('dashboard.tpl',array('dashboard'=>$config));
Code: Alles auswählen
<div class="mod_<Modul>">
{foreach $dashboard.columns col name='outer'}
<ul style="width:{$col.width}%;" class="fc_widgets fc_dashboard_sortable" id="dashboard_col_{$.foreach.outer.index}" data-module="<Modul>">
{foreach $col.widgets key widget name='inner'}
<li class="fc_widget_wrapper clearfix" id="dashboard_col_{$.foreach.outer.index}_item_{$.foreach.inner.index}" data-widget="{$widget.widget_path}">
<div class="fc_widget_title">
<div class="fc_widget_top">
<div data-action="close" data-widget="{$widget.widget_path}" class="icon icon-eye{if $widget.isMinimized}-blocked{/if}"></div>
<div data-action="remove" data-widget="{$widget.widget_path}" class="icon icon-remove"></div>
</div>
{$widget.settings.widget_title}
</div>
<div class="fc_widget_content">{$widget.content}</div>
</li>
{/foreach}
</ul>
{/foreach}
</div>
Jedes Widget kann eine eigene Konfiguration mitliefern, die vom Widget-Helper ausgewertet wird.
Code: Alles auswählen
$widget_settings = array(
'allow_global_dashboard' => false,
'widget_title' => CAT_Helper_I18n::getInstance()->translate('Browsers'),
'preferred_column' => 1
);
'widget_title' - Der anzuzeigende Titel. Fehlt dieser, wird der Modulname verwendet
'preferred_column' - Wirkt sich nur beim ersten Aufruf aus (noch nicht implementiert)
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: Version 1.2: Dashboard
So... das Zurücksetzen des Dashboards sowie das Hinzufügen vorher entfernter Widgets ist jetzt auch fertig.
Screenshot aus BCStats, der obere Teil mit dem Select und den Buttons kommt aber vom Core, steht also auf jeder Art von Dashboard zur Verfügung.
Screenshot aus BCStats, der obere Teil mit dem Select und den Buttons kommt aber vom Core, steht also auf jeder Art von Dashboard zur Verfügung.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is
Re: Version 1.2: Dashboard
Hier mal ein aktuellerer Screenshot vom globalen Dashboard. In der Dropdown-Liste steht jetzt auch das Modul, zu dem das Widget gehört.
- Dateianhänge
-
- 2015-05-05 15_44_25-BlackCat CMS » Administration - START.png (48.81 KiB) 3127 mal betrachtet
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is