Уважаемые пользователи!
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
В версии phpBB 3.3.13 обнаружены ошибки при использовании функции поиска по конференции.
Обсуждение проблемы и ее решения здесь Re: Вышел phpBB 3.3.13 [обсуждаем].
В связи с этим, не рекомендуется установка и обновление до phpBB 3.3.13.
Ошибка будет устранена разработчиками в версии phpBB 3.3.14.
Скачать предыдущую версию - phpBB 3.3.12 - можно здесь.
Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Как корректно передать переменную из расширения в стандартный шаблон?
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Как корректно передать переменную из расширения в стандартный шаблон?
В контроллере расширения (controller/index.php) объявляем переменную, например:
$this->template->assign_vars(array(
'PAGE_EXTID' => true,
));
Нужно чтобы эту переменную можно было использовать в стандартном шаблоне движка, например, во viewtopic для создания через нее условия.
Как это сделать?
$this->template->assign_vars(array(
'PAGE_EXTID' => true,
));
Нужно чтобы эту переменную можно было использовать в стандартном шаблоне движка, например, во viewtopic для создания через нее условия.
Как это сделать?
-
- phpBB Guru
- Сообщения: 16620
- Стаж: 18 лет 5 месяцев
- Откуда: Красноярск
- Благодарил (а): 545 раз
- Поблагодарили: 1821 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Для ответа на вопрос надо понять, как логически связаны контроллер и гипотетический viewtopic (или другое место).
Например, если шаблон вызывается в процессе работы контроллера, то она и так передастся прямо из контроллера. Если нет, то нет смысла передавать.
Например, если шаблон вызывается в процессе работы контроллера, то она и так передастся прямо из контроллера. Если нет, то нет смысла передавать.
-
- Поддержка
- Сообщения: 12562
- Стаж: 13 лет 2 месяца
- Благодарил (а): 168 раз
- Поблагодарили: 2520 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Чаще из слушателя переменные передаются, не из контроллера
-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Уточню ситуацию. Есть самодельное расширение, которое выводит вложения из темы на отдельную страницу. На странице темы есть кнопка, по которой по сути вызывается страница расширения. Как верно подсказал Руслан, переменные передаются, когда мы уже "запустили расширение", т.е. перешли по ссылке.
Но, часто в темах нет вложений, тогда по кнопке-ссылке во вьютопике мы получаем пустую страницу с фразой вроде "нифига тут нет". Это некрасиво и неудобно, было бы лучше, если бы кнопка вообще не отображалась при условии, что вложений = 0. Такое условие есть в расширении, но оно отрабатывает уже после того как мы на странице расширения.
Я правильно понимаю, что эта ситуация не решается? Точнее решается, но неудобно, надо добавлять счетчик вложений в теме, и записывать в таблице тем количество в какую-то ячейку. И ещё это обновлять?
Пока писал, подумал, может уже где-то есть подобная переменная?
Посмотрел, в PMA есть поле topic_attachment, это tinyint unsigned принимает значение 0 или 1 - это оно? Оно учитывает и инлайны и аттачи?
Но, часто в темах нет вложений, тогда по кнопке-ссылке во вьютопике мы получаем пустую страницу с фразой вроде "нифига тут нет". Это некрасиво и неудобно, было бы лучше, если бы кнопка вообще не отображалась при условии, что вложений = 0. Такое условие есть в расширении, но оно отрабатывает уже после того как мы на странице расширения.
Я правильно понимаю, что эта ситуация не решается? Точнее решается, но неудобно, надо добавлять счетчик вложений в теме, и записывать в таблице тем количество в какую-то ячейку. И ещё это обновлять?
Пока писал, подумал, может уже где-то есть подобная переменная?
Посмотрел, в PMA есть поле topic_attachment, это tinyint unsigned принимает значение 0 или 1 - это оно? Оно учитывает и инлайны и аттачи?
-
- phpBB Guru
- Сообщения: 16620
- Стаж: 18 лет 5 месяцев
- Откуда: Красноярск
- Благодарил (а): 545 раз
- Поблагодарили: 1821 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Смотря что подразумевается под "инлайном". Если тег
attachment
, то это то же самое обычное вложение. Тогда да, учитывает, если в теме есть хотя бы одно.Но вложений может и не быть на конкретной странице, если кнопка находится во вьютопике, а не во вьюфоруме (списке тем). Тогда надо считать посты с вложениями.
Если расширение добавляет кнопку на стандартную страницу phpBB, значит, это делается через какое-то событие и есть его слушатель. А значит, любой код в слушателе можно обернуть в условие, управляющее отображением кнопки.
-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Это как раз удобно, именно такое поведение меня устраивает.
Нашел во вьютопике вроде бы готовую переменную шаблона:
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
Но она почему-то всегда выдает 0. Использую в расширении в событии viewtopic_buttons_top_after
При выводе {S_HAS_ATTACHMENTS} отображает 0, хотя topic_attachment=1 для проверяемой темы .
Я что-то не так делаю?
Перенесено из форума phpBB-пространство в форум Для разработчиков 04.07.2024 21:31 модератором Татьяна5
-
- Поддержка
- Сообщения: 12562
- Стаж: 13 лет 2 месяца
- Благодарил (а): 168 раз
- Поблагодарили: 2520 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Это из таблицы
_topics
, поле с соответствующим названием-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Да, так вроде все верно.
В таблице _topics поле topic_attachment имеет для темы с определенным id значение 1. Вывожу это в шаблон вьютопик, смотрю тему с этим id, а выводится 0. Почему?
В таблице _topics поле topic_attachment имеет для темы с определенным id значение 1. Вывожу это в шаблон вьютопик, смотрю тему с этим id, а выводится 0. Почему?
-
- Поддержка
- Сообщения: 12562
- Стаж: 13 лет 2 месяца
- Благодарил (а): 168 раз
- Поблагодарили: 2520 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Проверьте на чистом форуме то одно расширение. Если будет работать - где-то конфликт с другими, не будет - перепроверять на опечатки
-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Нет, расширение прекрасно работает. Событие тоже работает.
Добавляю прямо в шаблон viewtopic_body после кнопки ответить вывод {S_HAS_ATTACHMENTS}
И тоже получаю 0. Хотя изображения есть и вставленные в пост и невставленные.
Отправлено спустя 5 минут 20 секунд:
Во вьютопик.пшп есть переменная подсчета постов S_NUM_POSTS:
$template->assign_vars(array(
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
'S_NUM_POSTS' => count($post_list))
);
Она работает и отображается корректно как во вьютопике, так и через событие расширения, а вот с S_HAS_ATTACHMENTS что-то не то :shock:
Добавляю прямо в шаблон viewtopic_body после кнопки ответить вывод {S_HAS_ATTACHMENTS}
И тоже получаю 0. Хотя изображения есть и вставленные в пост и невставленные.
Отправлено спустя 5 минут 20 секунд:
Во вьютопик.пшп есть переменная подсчета постов S_NUM_POSTS:
$template->assign_vars(array(
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
'S_NUM_POSTS' => count($post_list))
);
Она работает и отображается корректно как во вьютопике, так и через событие расширения, а вот с S_HAS_ATTACHMENTS что-то не то :shock:
-
- Поддержка
- Сообщения: 12562
- Стаж: 13 лет 2 месяца
- Благодарил (а): 168 раз
- Поблагодарили: 2520 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Хоть в шаблон, хоть в событие в расширении - без разницы. Влияние других расширений ни то, ни то не исключит
Надо или отключать всё, или проверять на чистом форуме
Надо или отключать всё, или проверять на чистом форуме
-
- phpBB 2.0.22
- Сообщения: 1368
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 171 раз
- Поблагодарили: 21 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Добавил переменную.
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
'WTF' => $topic_data['topic_attachment'],
WTF - работает везде корректно.
Такая же переменная S_HAS_ATTACHMENTS дальше во вьютопике штатно используется в массиве postrow.
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
Они не могут пересекаться? Ну просто вдруг :oops:
'S_HAS_ATTACHMENTS' => $topic_data['topic_attachment'],
'WTF' => $topic_data['topic_attachment'],
WTF - работает везде корректно.
Такая же переменная S_HAS_ATTACHMENTS дальше во вьютопике штатно используется в массиве postrow.
'S_HAS_ATTACHMENTS' => (!empty($attachments[$row['post_id']])) ? true : false,
Они не могут пересекаться? Ну просто вдруг :oops:
-
- Поддержка
- Сообщения: 12562
- Стаж: 13 лет 2 месяца
- Благодарил (а): 168 раз
- Поблагодарили: 2520 раз
Re: Как корректно передать переменную из расширения в стандартный шаблон?
Не могут. В массиве и без - это разные переменные
S_HAS_ATTACHMENTS может быть задета другим расширением
S_HAS_ATTACHMENTS может быть задета другим расширением