+22.15
Рейтинг
88.90
Сила

Мелкое улучшение юзабилити для формы логина

Если в форму логина ввести неверные логин/пароль, то появится сообщение
Что-то не так! Вероятно, неправильно указан логин (e-mail) или пароль.
Повторно вводим логин/пароль (тоже неправильные), жмем «войти» — идет проверка, надпись в это время не исчезает, проверка заканчивается, ничего не меняется. Пользователю может стать не понятно, это он снова ошибся, или это сбой какой-то на сайте — ведь визуально для него ничего не поменялось.
Если бы при повторном нажатии на «войти» сообщение исчезало и снова появлялось после окончания проверки, стало бы более понятно.
В файле \engine\lib\internal\template\js\user.js на 387 сообщение об ошибке убирается после возврата ответа функцией ls.ajaxSubmit.
Можно просто поправить файл user.js, перенеся всю конструкцию
if (typeof(form)=='string') {
    form=$('#'+form);
}
form.find('.validate-error-show').removeClass('validate-error-show').addClass('validate-error-hide');
на две строчки выше, тогда надпись будет исчезать сразу после нажатия на кнопку «войти».
Но там есть хук ls.hook.marker('loginBefore'); — возможно правильнее было бы его задействовать с помощью простенького плагина, чтобы не менять код движка.

Редирект на определенную страницу после авторизации [РЕШЕНО]

Долблюсь над одним решением, перерыл весь сайт, но внятного простого объяснения найти не могу. Нужно чтобы при авторизации на сайте пользователь перемещался на определенную страницу.

Решение.
В конфиг добавить
$config['module']['user']['redirect_after_login'] = 'URL';

где URL — страница, на которую требуется переадресация.

Как выделить свои топики?

В комментариях у нас есть такая конструкция:
{if $iAuthorId == $oUser->getId()}...{/if}


А как определить в шаблоне авторство юзера над топиком? Мне нужно своим топикам присвоить отдельный класс.

Блок не отображается на странице ивента, созданной плагином

Плагин autoopenid создает свою страницу в настройках: settings/openid/ (добавляет свой event к стандартному action settings)

Правило для вывода блока прописано в глобальном конфиге:
$config['block']['myblock_rule'] = array(
    'action' => array('settings'),
    'blocks' => array('left' => array('myblock.tpl')
)

но блок myblock выводится на всех страницах экшена settings, кроме openid.
Почему, и как вывести блок в ивенте, создаваемом плагином?

Вернуть массив из хука в шаблон (РЕШЕНО)

Добрый день. Имеется хук, возвращающий в качестве результата массив.

class PluginLive_HookLive extends Hook
{
    public function RegisterHook()
    {
        $this->AddHook('template_header_banner_begin', 'GoGoGo');
    }

    public function GoGoGo()
    {
        return array('foo'=>'bar');
    }
}
 


Вызываю в шаблоне:
{hook run='header_banner_begin' assign='aResult'}


Ожидаю, что в $aResult окажется «ассоциативный» массив, т.е. {$aResult.foo} вернет «bar». Но в результате возвращается массив вида array(0=>'A', 1=>'r', 1=>'r', 1=>'a', 1=>'y', 1=>'(' и так далее.

Помогите, пожалуйста, как корректно передать массив из хука в шаблон?

UPD: По-быстрому сделал костыльный вариант для одноуровневого массива. Буду рад предложениям как это сделать «академически верно» :)

class PluginLive_HookLive extends Hook
{
    public function RegisterHook()
    {
        $this->AddHook('template_header_banner_begin', 'Countdown');
    }

    public function Countdown()
    {
        r = array('foo'=>'bar', 'foo2'=>'bar2');
        ksort($r);
        return implode(',',$r);
    }
}


В шаблоне:
    {assign var="aLive" value=","|explode:$aLive}
    {assign var="sVar1" value=$aLive[0]}
    {assign var="sVar2" value=$aLive[1]}

Как определить путь к шаблону плагина? [решено]

Товарищи, подскажите пожалуйста, можно ли как-нибудь в шаблоне плагина определить путь к папке шаблона этого же плагина. Т.е. написать что-то типа этого:

{cfg name="path.static.skin"}

только для шаблона плагина?

Feedbacks — лента событий связанных с пользователем (по аналогии «Ответы» в вк)


Feedbacks — лента событий связанных с пользователем (по аналогии «Ответы» в вк).

Создает отдельную страницу, на которой отображаются события связанные с пользователем, а именно:
Лайки/дислайки комментариев пользователя
Лайки/дислайки профайла пользователя
Лайки/дислайки топиков
Ответы на комментарии
Теперь ваши пользователи ничего не пропустят, особенно касаемо старых топиков, и не будет анонимных «кармодрочеров».

Так же при помощи хуков можно выводить в шапку сайта информер с количеством событий (пример на скриншотах)

Установка:


Читать дальше →

TakeNews — вывод n' топиков из определенного блога


TakeNews — выводит несколько последних топиков из определенного блога перед wrapper'ом, на определенных страницах.

Скромный плагин, который позволяет выводить n-ое количество топиков из нужного вам блога на определенные странички, которые задаются в файле конфигурации.
Читать дальше →

Плагин "Публикация постов в соцсети" (vk.com - Вконтакте)



Данный плагин позволяет публиковать посты в группу вконтакте от имени группы. При публикации используется короткое описание до ката, добавляется главная картинка фотосета или первая картинка в топике и ссылка на прочтение полного текста топика.

Читать дальше →

Новый модуль для работы с изображениями и модуль FS

В разрабатываемой новой версии мы обновили модуль Image для работы с изображениями.
Теперь он основан на библиотеке Imagine и предоставляет удобные методы для манипуляции с изображениями. Дополнительной особенностью является поддержка разных PHP библиотек (драйверов): gd, imagick и gmagick. Нужный драйвер устанавливается в конфиге $config['module']['image']['driver']='imagick';

/**
 * Получаем параметры
 */
$aParams=$this->Image_BuildParams('gallery');
/**
 * Создаем объект изображения
 */
if(!$oImage=$this->Image_Open($sFileSource,$aParams)) {
	$sMsgError=$this->Image_GetLastError();
}


Читать дальше →