Настройка категорий.

InstantCMS 2.X

Цвета категорий

#1 5 ноября 2021 в 11:49

Приветствую! Недавно потребовалось реализовать такой функционал: задать каждой категории свой цвет. Желательно через админку. Я придумал только один вариант реализации подобного — добавить поле «цвет» в настройки категории, на ровне с другими такими настройками как «описание», «досут к категории» и т.д. То бишь эта информация должна храниться в колонке, в таблице  inst_con_ctype_name_cats (на сколько я понял ctype_name это имя типа контента). Как реализовать такое поле, куда копать, и может быть это очередной «велосипед»?

#2 5 ноября 2021 в 12:10

Дам лишь наводку, а дальше думайте)

1) Идем в system/controllers/content/forms/form_category.php и правим его. На 55 строке ставим запятую после двух скобок и дописываем новое поле для выбора цвета:

  1. new fieldColor('cat_color', array(
  2. 'title' => 'Цвет категории'
  3. ))

Далее вам нужно вашу переменную $cat_color объявить в контроллере, чтобы вы могли ее использовать в шаблоне. Так сказать, задачка на сообразительность) Если не получится — пишите, расскажу подробно всю последовательность

#3 5 ноября 2021 в 14:33

 Make, хм, ну проблему с полем решил, спасибо :)

Но зачем мне объявлять переменную в контроллере? Ну то есть, вот как я представляю логику работы:
файл form_category.php передаёт по аналогии с виджетами кому-то полученные данные из полей, потом, этот некий «файл» получив данные должен, через модель добавить в таблицу значение (метод run() ), далее я уже из нужного мне места (если конкретно — другой виджет), так же вызываю контент-модель и забираю объект категорий, в котором теперь храниться «cat_color». Верно? А то я уже с перепугу начал новый контроллер создавать :))
user->field->form_catregory.php->*file*.php->model->DB;

widget->model->DB->model->html

Осталось только найти тот «файл»...

Добавлено спустя 23 минуты
  1. //...
  2. $cat_color = $this->model->getOption('cat_color');
  3. //...
  4. 'cat_color' => $cat_color
#4 5 ноября 2021 в 14:39

Некий файл, передаёт кому-то, и тд. Разберитесь с этими вопросами. И всё станет на место

#5 5 ноября 2021 в 18:17

Lora, ну пока я нашёл:

  • Виджет «категории» в контроллере компонента «категории» — widget.php
  • Шаблон виджета «категории» — categories.tpl.php
  • Форма редактирования, на которую мне указал Make — form_category.php у него тоже есть шаблон, но в нём нет ничего интересного.

Возможно тут как-то замешан файл-экшн category_edit.php, но я пока не могу понять как…
Расследование продолжается 🕵️

#6 5 ноября 2021 в 18:19

 Panda58dev, юзайте компонент «Контент» 😉

#7 5 ноября 2021 в 18:56

 Make, это как? Ну то есть «категории» это виджет контроллера «контент» ведь. 

 

#8 5 ноября 2021 в 19:34

Make, это как? Ну то есть «категории» это виджет контроллера «контент» ведь. 

 

Panda58dev

Да

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.