Проблема с созданием категорий

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Ilya
Ilya
Репутация: 0
Сообщения: 5
Зарегистрирован: 22.07.2018
С нами: 10 месяцев 3 дня

Сообщение #1 Ilya » 22.07.2018, 01:09

Версия PHP - 5.6.3
Версия MYSQL - 5.5.41-log
Версия движка - Lite последняя.

Как воспроизвести баг:
1. Создаем в таблице Categories поле (булевое) (Например - show_at_index);
2. Добавляем его обработку в необходимых местах (api/categories, backend/core/CategoryAdmin, backend/html/category);
3. Пробуем создать новую категорию.

При этом в таблице categories строка с новой категорией не добавляется, но в таблице lang_categories - добавляется, но category_id у нее равно 0.
При этом созданные до этого категории отлично работают и переключение этого поля и вообще изменение любых полей проходят.

И что-то мне подсказывает то, что с добавлением у товаров доп. поля будет такая же шляпа.

Добавлено спустя 43 минуты 47 секунд:
С товарами/вариантами этого бага не замечено.

Ilya
Ilya
Репутация: 0
Сообщения: 5
Зарегистрирован: 22.07.2018
С нами: 10 месяцев 3 дня

Сообщение #2 Ilya » 22.07.2018, 04:20

А нет. С товарами та же шляпа при добавлении булевого поля. новый товар создается, но название, метатеги и фото не сохраняются в БД.
При добавлении полей только в варианты - все норм.

korshunov
korshunov
Репутация: 99
Сообщения: 968
Зарегистрирован: 03.12.2015
С нами: 3 года 5 месяцев
Skype

Сообщение #3 korshunov » 22.07.2018, 06:45

Если ошибка в Вашей конкретной ВАМИ ПЕРЕДЕЛАННОЙ системе после Ваших изменения, то это явно баг Вашей переделки.
Что-то мне подсказывает, что в Ваших пп. 1,2 не все сделано правильно...

Если хотите, чтобы Вам помогли полезным советом, а не гаданием вслепую, надо свои переделки (пп.1,2) - расписывать полностью и подробно.
А пока выходит так: почини мне то, не скажу что...

Ilya
Ilya
Репутация: 0
Сообщения: 5
Зарегистрирован: 22.07.2018
С нами: 10 месяцев 3 дня

Сообщение #4 Ilya » 22.07.2018, 07:16

Ок.
1. Создал в таблице Categories поле show_at_index

Изображение

2. a) api/categories.php
в ф-цию init_categories добавил обработку этого поля

Код: Выделить всё

$query = $this->db->placehold("SELECT
                c.id,
                c.parent_id, 
                c.url,
                c.image,
                c.visible,
                c.position,
                c.level_depth,
                c.yandex_name,
                c.show_at_index,
                c.last_modify,
                c.created,
                $lang_sql->fields
                ...


б) backend/core/CategoryAdmin.php
в ф-цию fetch добавил обработку этого поля:

Код: Выделить всё

...
$category->yandex_name = $this->request->post('yandex_name');
$category->visible = $this->request->post('visible', 'boolean');
$category->show_at_index = $this->request->post('show_at_index');
...


в) backend/html/category
добавил отображение в админке:

Код: Выделить всё

 <div class="okay_switch clearfix">
   <label class="switch_label">Показывать на главной</label>
        <label class="switch switch-default">
                <input class="switch-input" name="show_at_index" value='1' type="checkbox" {if $category->show_at_index}checked=""{/if}/>
                <span class="switch-label"></span>
                <span class="switch-handle"></span>
         </label>          
</div>

korshunov
korshunov
Репутация: 99
Сообщения: 968
Зарегистрирован: 03.12.2015
С нами: 3 года 5 месяцев
Skype

Сообщение #5 korshunov » 22.07.2018, 07:37

Вот и сравните, как сделано у Вас, и как сделано стандартно для поля visible. По моему, отличается как минимум в двух местах...

Ilya
Ilya
Репутация: 0
Сообщения: 5
Зарегистрирован: 22.07.2018
С нами: 10 месяцев 3 дня

Сообщение #6 Ilya » 22.07.2018, 07:49

korshunov писал(а):Вот и сравните, как сделано у Вас, и как сделано стандартно для поля visible. По моему, отличается как минимум в двух местах...
Добавление "boolean" в строку

Код: Выделить всё

$category->show_at_index = $this->request->post('show_at_index');

проблему не решает.
А второе несовпадение - это вы про то, что в .tpl файле я не стал заморачиваться пока что с переводом лейбла?

korshunov
korshunov
Репутация: 99
Сообщения: 968
Зарегистрирован: 03.12.2015
С нами: 3 года 5 месяцев
Skype

Сообщение #7 korshunov » 22.07.2018, 10:15

Второе - про то, что непонятно, что сделано в базе - то, что Вы вместо нормального объяснения зачем-то даете малопонятную картинку небрежным образом. Читатели форума должны понять так, что Вы в базе изменения делаете, просто загружая куда-то эту картину?

У меня так:
Если делаю полностью по аналогии с полем visible, работает.
Если заменю
$category->show_at_index = $this->request->post('show_at_index', 'boolean');
на Вашу строку
$category->show_at_index = $this->request->post('show_at_index');
то не работает с симптомами как Вы описали.

Все правильно, так и должно быть.


Название раздела: Баг-репорт OkayCMS (Сообщения об ошибках)
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Баг-репорт OkayCMS (Сообщения об ошибках)»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость