Seite 2 von 2

Re: Version 1.2: Dashboard

Verfasst: Mi 1. Apr 2015, 12:14
von Morpheus
Jepp, funzt
Hrgnh... (das gilt mir, nicht Dir)
Dafür bin ich doch da :lol:

Re: Version 1.2: Dashboard

Verfasst: Mi 8. Apr 2015, 13:56
von shadowcat
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:

Code: Alles auswählen

$widget_config = array(
    'allow_global_dashboard' => false,
    'preferred_layout'       => '33-33-33',
);
'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

Code: Alles auswählen

    $config   = CAT_Helper_Dashboard::getDashboard('<Modul>');
    $parser->output('dashboard.tpl',array('dashboard'=>$config));
Dashboard Template

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>
Konfiguration pro Widget

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
);
'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)

Re: Version 1.2: Dashboard

Verfasst: Do 16. Apr 2015, 14:10
von shadowcat
So... das Zurücksetzen des Dashboards sowie das Hinzufügen vorher entfernter Widgets ist jetzt auch fertig.
2015-04-16 15_08_33-BlackCat CMS » Administration - ADMINTOOLS.png
2015-04-16 15_08_33-BlackCat CMS » Administration - ADMINTOOLS.png (62.01 KiB) 4299 mal betrachtet
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.

Re: Version 1.2: Dashboard

Verfasst: Di 5. Mai 2015, 14:46
von shadowcat
Hier mal ein aktuellerer Screenshot vom globalen Dashboard. In der Dropdown-Liste steht jetzt auch das Modul, zu dem das Widget gehört.