понедельник, 20 мая 2013 г.

Виджет страницы vs. виджет-который-всегда-со-мной

Чем в X-Cart Next виджет страницы отличается от виджета, который есть на КАЖДОЙ странице? Да собственно тока методом getAllowedTargets




public static function getAllowedTargets()
{
        $list = parent::getAllowedTargets();

        $list[] = 'myTarget';

        return $list;
}

Если такой метод есть и он передает массив с именем таргета / таргетов - значит виджет покажется только если текущий таргет есть в этом массиве. Если нет - то при любом.
А если это виджет страницы (то есть - он входит в списки admin.center для админки или center для клиентского интерфейса) - то если его отображение не ограничено по таргету - он показывается всегда :)
Соответственно - таким образом мы получили некий служебный виджет, который показывает, например, количество залогиненых пользователей, количество заказов, текущее время и пр.

Пара моментов:

  1. Не забываем про более высокоуровневый метод isVisible(), используя который можно управлять видимостью виджета уже не на уровне совпадения таргетов, а принимая решение, запрашивая модели и возвращая либо true либо false.
  2. Надо помнить, что если метод getAllowedTargets() возвращает пустой массив - это означает, что он показывается везде






Комментариев нет:

Отправить комментарий