//<?php
/**
* Dashboard Widgets
*
* Displaying user-defined snippets on the Dashboard
*
* @category plugin
* @version 0.1
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License (GPL)
* @package modx
* @author Alexey Liber (bd87@bk.ru)
* @internal @events OnManagerWelcomePrerender
* @internal @modx_category Manager and Admin
* @internal @properties &snippetsId = Id сниппетов;text;
* @internal @installset base
* @internal @disabled 1
*/
$e = &$modx->Event;
if($e->name == 'OnManagerWelcomePrerender'){
$table = $modx->getFullTableName('site_snippets');
if ($snippetsId)
{
foreach (explode(',',$snippetsId) as $id)
{
$title = $modx->db->getValue('Select `description` from '.$table.' where `id`='.$id);
$name = $modx->db->getValue('Select `name` from '.$table.' where `id`='.$id);
$output = ' <div class="sectionHeader">'.$title.'</div>
<div class="sectionBody">'.$modx->runSnippet($name).'</div>';
$e->output($output);
}
}
}
Установка: копируем содержимое плагина, в системных событиях ставим галочку OnManagerWelcomePrerender, в конфигурацию вставляем &snippetsId = Id сниппетов;text;
Для вывода сниппета (ов), в конфигурации проставляем их id через запятую. Название для блока будет браться из описания сниппета (надеюсь все помнят, что не стоит им пренебрегать?). и все, играйтесь)
#
Алексей Либер 29.01.2016 22:49 #
ProuD 06.02.2016 21:54 #
К тому же есть готовые решения быстрых ссылок и т.д в дашборде.
Решение имеет право на жизнь, если у вас несколько разнотипных виджетов. И то их лучше в плагины переделать ибо помимо события OnManagerWelcomePrerender могут и другие события использоваться, например OnManagerMainFrameHeaderHTMLBlock для подключения своих стилей и скриптов.
Алексей Либер 06.02.2016 22:01 #
Понятное дело, что можно и просто плагином выводить все что нужно, да и необходимость данного решения весьма под вопросом. Однако, уже на трех проектах поставил) Мои решения вообще не претендуют на «ВАУ», но некоторым немножко облегчают жизнь)