Добавление полей в категорию ZOO

Речь пойдет о компоненте ZOOдля CMS Joomla Для начала рассмотрим простой вариант. Добавление поля в правую часть админки категории ZOO. Добавим обычное текстовое поле.

1. Открываем media/zoo/applications/blog/aplication.xml и после строчки

<param name="image" type="zooimage" label="Image" description="Choose a category image." />

добавляем:

<param name="ourname" type="text" label="Наше название поля" description="Наша подсказка" />

2. Выводим в шаблоне категории media/zoo/applications/blog/templates/default/category.php

<?php echo $this->category->getParams()->get('content.ourname'); ?>

Где ourname - наше уникальное имя. Вместо текстового поля можно добавить специальное поле добавления картинки ZOO. Написать не type="text", а type="zooimage". В выводе получим src картинки.

Добавление полей в основную область админпанели категории ZOO

Что делать если нам необходимо добавить еще одно поле с редактором? Стандартные решения для этого не предусмотрены. Но сделать это вполне возможно.

1. Для начала добавим его на страницу админки. Открываем файл administrator/components/com_zoo/views/category/tmpl/edit.php. Добавляем в блок.

<div class="element element-description">
    <strong title="Подсказка">Новое поле с редактором</strong>
    <div>
        <?php
            echo $this->app->system->editor->display('description1', $this->category->description1, null, null, '60', '20', array('pagebreak', 'readmore', 'article')) ;
        ?>
    </div>
</div>

Поле мы назвали description1. Оно появилось, но пока не сохраняет на какой информации.

2. Необходимо создать ячейку в базе данных. Заходим в phpMyAdmin. Открываем БД сайта, находим таблицу zoo_category. Открываем таблицу. Нажимаем вкладку структура. Нажимаем добавить. Пишем наше имя, в данном случае description1. Выбираем тип TEXT. И выставляем сравнение, обычно utf-8_general_ci.

Теперь наше поле текст сохраняет, но вырезает HTML-теги. Исправим следующим образом.

3. Открываем файл administrator/components/com_zoo/controllers/category.php. Находим строку

$post['description'] = $this->app->request->getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW);

и после нее добавляем

$post['description1'] = $this->app->request->getVar('description1', '', 'post', 'string', JREQUEST_ALLOWRAW);

Тоже самое только указываем имя нашего поля. Теперь в админке все сохраняется корректно. Осталось только вывести непосредственно в самом шаблоне.

4. Открываем файл media/zoo/applications/blog/templates/default/category.php В нужном месте вставляем вывод:

<?php echo $this->category->getText($this->category->description1); ?>

Добавление простого текстового поля в основную область админпанели категории ZOO

Если вам понадобилось добавить в админке категории ZOO простое текстовое поле(вида input type="text"). Делаем почти тоже самое.

1. Добавляем в шаблон админки. Открываем файл administrator/components/com_zoo/views/category/tmpl/edit.php Вставляем в нужном месте следующий код:

 <div class="element element-name">
    <strong>Заглавие среднего блока</strong>
    <div id="name-edit">
        <div class="row">
            <input class="inputbox" type="text" name="mycaption"  size="60" value="<?php echo $this->category->mycaption; ?>" />
        </div>
    </div>
</div>

Назвали наше поле mycaption.

2. Добавляем в БД. Также открываем таблицу zoo_category. Нажимаем структура. Добавляем строчку с нашем именем. В типе ставим VARCHAR

3. Выводим в шаблоне категории

<?php echo $this->category->mycaption; ?>
Share: