1

Topic: Чекбокс не работает на выключение

Всем привет. Хотел добавить на форум функцию вывода доп рекламных блоков. Решил разместить их во вкладке Обьявления (на мой взгляд самое подходящее место).
Имеется 1 чекбокс и 1 форма ввода для рекламы.
Но вот проблема, чекбокс только сохраняет запись на включение, а на выключение не работает. Что не так?
Делал через хуки:

    <hook id="aop_announcements_validation"><![CDATA[

    if (!isset($form['sidebar_on']) || $form['sidebar_on'] != '1') 
            form['reklama'] = '0';

    ]]></hook>
    <hook id="aop_announcements_announcement_fieldset_end"><![CDATA[
?>
        <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
          <div class="sf-box checkbox">
            <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[sidebar_on]" value="1"<?php if ($forum_config['o_sidebar_on'] == '1') echo 'checked="checked"' ?> /></span>
            <label for="fld<?php echo $forum_page['fld_count'] ?>"><span>Включить </span></label>
          </div>
        </div>
<?php
  ]]></hook>

2

Re: Чекбокс не работает на выключение

Наводящее.

Это ведь расширение, и следуя простой логике, чекбокс должен отключать само расширение а не его вывод.

3

Re: Чекбокс не работает на выключение

Разобрался.
да, этот хук взят из расширения сайдбар для форума punbb (Pan Sidebar).
но дело в том, что форма чекбокса передает значение '1' только когда чекбокс установлен, иначе отправляет пустую форму.

Чтобы решить эту проблему нужно определить значение по умолчанию. Сделать можно так, добавив в форму:

<input type="hidden" name="form[sidebar_on]" value="0" />

В итоге получится:

    <hook id="aop_announcements_announcement_fieldset_end"><![CDATA[
?>
        <div class="sf-set set<?php echo ++$forum_page['item_count'] ?>">
          <div class="sf-box checkbox">
            <input type="hidden" name="form[sidebar_on]" value="0" />
            <span class="fld-input"><input type="checkbox" id="fld<?php echo ++$forum_page['fld_count'] ?>" name="form[reklama]" value="1"<?php if ($forum_config['o_reklama'] == '1') echo 'checked="checked"' ?> /></span>
            <label for="fld<?php echo $forum_page['fld_count'] ?>"><span>Включить </span></label>
          </div>
        </div>
<?php
  ]]></hook>

4

Re: Чекбокс не работает на выключение

Xakker{id=164} wrote:

Разобрался.да, этот хук взят из расширения сайдбар для форума punbb..

Добавил. Не сработало у меня. Чексбокс по прежнему не отключает вывод sidebar. Расширение отключал.

Где я ошибся?

5

Re: Чекбокс не работает на выключение

Чексбокс по прежнему не отключает вывод sidebar. Расширение отключал.

Отключение не обновит хуки. Чтобы расширение обновилось, нужно обновить хуки.
Сделать это можно с помощью расширения, которое управляет всеми расширениями и обновляет без переустановки.
Pun Admin Manage Extensions Improved
Установить, затем выбрать требуемое расширение из списка и нажать - Обновить хуки.

6 (edited by 2015.05.13 06:11)

Re: Чекбокс не работает на выключение

Xakker wrote:

Отключение не обновит хуки.

Уточните пожалуйста, куда именно этот хук прописать? Я ведь менял хук в sidebar.

Ок. Спасибо, разобрался. Вопрос снят.

7

Re: Чекбокс не работает на выключение

Обнаружил сегодня баг.

После манипуляций с хуком для чекбокса, видимо. Пропало из админки - объявления  первое поле sidebar. То бишь, ни добавить, ни изменить существующий вывод. Пришлось откатиться.

Было так. В первом поле "Заголовок" был, а самого поля для ввода инфы - нет.

8

Re: Чекбокс не работает на выключение

В новой версии 0.4 - присутствуют 4 виджета, 1 из которых выводит последние обновленные темы. Обычно, эта функция востребована. Остальные просто HTML код для вставки

9

Re: Чекбокс не работает на выключение

Xakker wrote:

В новой версии 0.4 - присутствуют 4 виджета, 1 из которых выводит последние обновленные темы. Обычно, эта функция востребована. Остальные просто HTML код для вставки

Ну да, логично. Не баг а фича. Ок. Я разобрался, спасибо.