Добавить дополнительное поле для категории Simpla
Все мы знакомы с замечательной системой для создания великолепных Интернет-магазинов Simpla. Как и везде, в ней предусмотрена возможность создавать категории. В категориях можно задать описание и вывести его на страницу.
Но иногда появляется необходимость вывести кроме описания еще какую-нибудь информацию, например, вводный текст сверху и описание снизу. Конечно, можно выводить верхний текст через код шаблона, делая проверку на нужную рубрику, но всегда ли это удобно? Сегодня мы будем учиться создавать дополнительное текстовое поле для категории Simpla.
Все манипуляции я буду производить на версии Simpla 2.3.3
1. Создаем колонку в базе данных
Для этого идем в phpMyAdmin, выбираем нашу базу данных, нажимаем SQL и вводим в появившееся поле:
ALTER TABLE s_categories ADD description_two text AFTER description;
Нажимаем ок и что-то происходит. А происходит следующее: в таблицу s_categories после колонки description добавляется колонка description_two. Она потребуется, чтобы записывать значения из дополнительного поля, которое мы собираемся создать.
2. Включаем обработку поля движком
Идем на FTP, файл api/Categories.php. Открываем в редакторе и ищем в файле следующий текст (у меня 195 строка, внимание, на других версиях Simpla текст может отличаться в названии переменных):
$query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.position");
Меняем его на:
$query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.description_two, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.position");
Если вы обратите внимание, то мы добавили в список наше имя столбца description_two.
3. Включаем поле в админке
Открываем в редакторе файл simpla\CategoryAdmin.php и ищем текст (у меня 28 строка):
$category->description = $this->request->post('description');
После нее с новой строки добавляем:
$category->description_two = $this->request->post('description_two');
Теперь открываем файл simpla\design\html\category.tpl, ищем текст (у меня 227 строка):
<div class="block layer"> <h2>Описание</h2> <textarea name="description" class="editor_large">{$category->description|escape}</textarea> </div>
Ниже с новой строчки добавляем:
<div class="block layer"> <h2>Описание 2</h2> <textarea name="description_two" class="editor_large">{$category->description_two|escape}</textarea> </div>
4. Теперь выведем полученное описание в основной шаблон темы
Для этого из админки открываем редактор вашей темы. Выбираем шаблон products.tpl и в нужное место вставляем:
{$category->description_two}
Вот и все:)