addon_for_thanks_for_posts
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
addon_for_thanks_for_posts
Ну как же. Сколько уже раз при изменении кода хелпера, уведомлений, и даже шаблона приходилось менять и контроллер, и вызывающий его яваскрипт.
addon_for_thanks_for_posts
Контроллер-да, но Вы же его и меняли и хорошо в этом разбираетесь, джаваскрипт пока не менялся при этих изменениях. При изменении шаблона со стороны движка, изменение джскрипта маловероятно, если Вы в эксте будете менять шаблон, то возможно, придётся менять и скрипт. Уверена на 100%, что в команде есть неплохо знающие клиентские скрипты, помогут поправить код, если я отвалюсь
Отправлено спустя 1 минуту 39 секунд:
И в любом случае, весь мой код можно легко отключить
Отправлено спустя 1 минуту 39 секунд:
И в любом случае, весь мой код можно легко отключить
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
addon_for_thanks_for_posts
Вобщем, разобрался. Всё немного по-другому.
Инъекцию зависимости можно сделать опциональной, очень просто. Вместо
добавляем
знак вопроса означает, что сервис будет передан в конструктор, если этот сервис существует. Если нет - просто не будет передано ничего, т.е. null.
Соответственно, в конструкторе можно установить для этого сервиса значение по умолчанию, типа
и потом в коде делать проверку, например
Источник: Service Container (The Symfony Book) :: Making References optional
Инъекцию зависимости можно сделать опциональной, очень просто. Вместо
Код: Выделить всё
- @gfksx.ThanksForPosts.helper
Код: Выделить всё
- @?gfksx.ThanksForPosts.helper
Соответственно, в конструкторе можно установить для этого сервиса значение по умолчанию, типа
Код: Выделить всё
\gfksx\ThanksForPosts\core\helper $gfksx_helper = NULL
Код: Выделить всё
if ($this->gfksx_helper !== NULL)
{
$this->gfksx_helper->add_notification($thanks_data);
}
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
addon_for_thanks_for_posts
ПР это да, по идее, при отсутствии хелпера надо вообще блокировать работу аддона, пока не понял, в какое место return вставить
addon_for_thanks_for_posts
лучше не return, а
или задать новое сообщение об ошибке
Отправлено спустя 8 минут 45 секунд:
нет, лучше и не так.
Код: Выделить всё
$this->error[] = array('error' => $this->user->lang['INCORRECT_THANKS']);
Отправлено спустя 8 минут 45 секунд:
нет, лучше и не так.
эта проверка в листенере? Если в нем, то добавьте в темплейт булевскую переменную, а я в шаблоне буду проверять её значение. если не подключён экст, то я не подключаю файл addon_for_thanks_for_posts.js и аддон не будет работатьrxu писал(а):QR_BBPOST в коде делать проверку, например
КОД: ВЫДЕЛИТЬ ВСЁ
if ($this->gfksx_helper !== NULL)
{
$this->gfksx_helper->add_notification($thanks_data);
}
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
addon_for_thanks_for_posts
Так-с. В аддоне подключение addon_for_thanks_for_posts.js происходит внутри условия
Т.е., тогда, ничего делать не надо?
Отправлено спустя 1 минуту 6 секунд:
Хотя нет, такая же переменная есть и в основном эксте, и в аддоне. Кстати, надо ли это? В основном эксте S_FORUM_THANKS определена во вьютопике, в принципе, в аддоне можно вообще от слушателя избавиться тогда.
Отправлено спустя 11 минут 18 секунд:
Попробовал - не вышло почему-то.
Код: Выделить всё
<!-- IF S_TOPIC_ID && S_FORUM_THANKS -->
...
<!-- INCLUDEJS addon_for_thanks_for_posts.js -->
<!-- ENDIF -->
Отправлено спустя 1 минуту 6 секунд:
Хотя нет, такая же переменная есть и в основном эксте, и в аддоне. Кстати, надо ли это? В основном эксте S_FORUM_THANKS определена во вьютопике, в принципе, в аддоне можно вообще от слушателя избавиться тогда.
Отправлено спустя 11 минут 18 секунд:
Попробовал - не вышло почему-то.
addon_for_thanks_for_posts
1-е понятно, 2-е я уже забыла, что это. выглядит не очень мнемоническиrxu писал(а):QR_BBPOST <!-- IF S_TOPIC_ID && S_FORUM_THANKS -->
- rxu
- Сообщения: 1125
- Зарегистрирован: 21 янв 2014, 21:20
- Откуда: Krasnoyarsk
- Github repo: https://github.com/rxu
- Контактная информация:
addon_for_thanks_for_posts
А потому, что событие шаблона от аддона срабатывает раньше.
Ага. Это флаг наличия права благодарить в данном форуме.Алг писал(а):QR_BBPOST 2-е я уже забыла, что это. выглядит не очень мнемонически
addon_for_thanks_for_posts
можно задать низший приоритет?rxu писал(а):QR_BBPOST А потому, что событие шаблона от аддона срабатывает раньше.