Добавить дополнительное поле для страницы Simpla

Добавить дополнительное поле для страницы Simpla

В прошлой статье мы учились добавлять дополнительное поле для категории Simpla. Теперь пора научиться делать это для страницы. Механизм общий, но есть отличия.

Давайте сделаем это вместе. Ведь дополнение очень полезное, a новой информацией можно распоряжаться как угодно. Напоминаю, что все манипуляции я делаю на версии Simpla 2.3.3.

1. Создаем колонку в базе данных

В phpMyAdmin выполняем SQL запрос следующего содержания:

ALTER TABLE s_pages ADD body_two text AFTER body;

Это даст нам дополнительную колонку для данных в таблице s_pages. Она нам пригодится.

2. Включаем обработку поля движком

Открываем файл api/Pages.php. Ищем текст (строка 30):

$query = "SELECT id, url, header, name, meta_title, meta_description, meta_keywords, body, menu_id, position, visible
		          FROM __pages $where LIMIT 1";

Меняем его на:

$query = "SELECT id, url, header, name, meta_title, meta_description, meta_keywords, body, body_two, menu_id, position, visible
		          FROM __pages $where LIMIT 1";

Теперь в этом же файле чуть ниже (строка 55):

$query = "SELECT id, url, header, name, meta_title, meta_description, meta_keywords, body, menu_id, position, visible
		          FROM __pages WHERE 1 $menu_filter $visible_filter ORDER BY position";

Меняем на:

$query = "SELECT id, url, header, name, meta_title, meta_description, meta_keywords, body, body_two, menu_id, position, visible
		          FROM __pages WHERE 1 $menu_filter $visible_filter ORDER BY position";

В этих 2 местах мы добавили переменную body_two. Это важно.

3. Включаем поле в админке

Открываем simpla\PageAdmin.php и ищем на 18 строке:

$page->body = $this->request->post('body');

Ниже с новой строчки пишем:

$page->body_two = $this->request->post('body_two');

Дальше в файле simpla\design\html\page.tpl в самом конце ищем текст:

<div class="block layer">
	<h2>Текст страницы</h2>
	<textarea name="body"  class="editor_large">{$page->body|escape}</textarea>
</div>

Ниже вставляем:

<div class="block layer">
	<h2>Текст страницы 2</h2>
	<textarea name="body_two"  class="editor_large">{$page->body_two|escape}</textarea>
</div>

4. Выводим в шаблон

Для вывода текста на страницу, идем в файл шаблона page.tpl. В нужном месте вставляем:

{$page->body_two}

Все отлично работает. С помощью этих методов можно добиться нереальной гибкости движка Simpla. Всем успехов.

26.03.17
Для просмотра сайта обновите браузер.