Небольшие доработки по плагинам

3

Все доработки довольно просты в реализации, не нарушают обратной совместимости и  опциональны в реализации. Если доработки получат одобрение, то распишу их детальнее и с примерами реализации в коде.

HTML в настройках типа help

Если в settings.php для настроек типа 'control_type' => waHtmlControl::HELP задать 'html' => true, то текст подсказки выводится без преобразований и обернут в <div>

private function getHelpControl($name, $params = array())
{
    if (empty($params['html'])) {
        return sprintf(
            '<p name="%s"%s>%s</p>',
            htmlentities($name, ENT_QUOTES, self::$default_charset),
            self::addCustomParams(array('id', 'class', 'style'), $params),
            htmlentities((string) $params['value'], ENT_QUOTES, self::$default_charset)
        );
    }
    return sprintf(
        '<div %s>%s</div>',
        self::addCustomParams(array('id', 'class', 'style'), $params),
        $params['value']
    );
}

JS/CSS страницы настроек

Eсли в plugin.php стоит 'settings_js' => true, то в header добавляется

<script src="/wa-apps/{app}/plugins/{plugin}/js/settings.js"></script>

'settings_css' => true добавляет

<link href="/wa-apps/{app}/plugins/{plugin}/css/settings.css" rel="stylesheet" type="text/css">

Это позволит задать стили и обработчики для всех полей сразу, сейчас приходится добавлять js/css к 'description' настройки.

Руководства/Документация

Eсли в plugin.php стоит 'guide' => truе, то в настройках плагина выводится ссылка на страницу документации:

При нажатии на ссылку открывается всплывающее окно (waDialog) с текстом.

В waPluginsActions добавляется метод guideAction отображающий шаблоны размещенные в папке плагина "/templates/guide/". Ссылка вида "?plugin={plugin}&action=guide&page={page}" отображает  шаблон "../{app}/plugins/{plugin}/templates/guide/{page}.html", начальная страница "?plugin={plugin}&action=guide" - "../{app}/plugins/{plugin}/templates/guide/index.html".

Как вариант хранить html файлы в папке "../{app}/plugins/{plugin}/guide/". Ссылка вида "?action=plugins#/{plugin}/guide/{page}/" отображает файл "../{app}/plugins/{plugin}/guide/{page}.html", начальная страница "?action=plugins#/{plugin}/guide/" - "../{app}/plugins/{plugin}/guide/index.html".

0 комментариев

    Добавить комментарий

    Чтобы добавить комментарий, зарегистрируйтесь или войдите