Администрирование модуля
- Название таблицы
- Описание полей
- Настройки отображения
- Настройки для формирования списка элементов
- Поля для формирования списка элементов
- Поля для фильтра
- Групповые операции
- Прикрепление модуля к нескольким разделам сайта
- Значения свойств задаются динамически
- Текущие значения
- Тип элемента
- Проверка текущего действия
- База знаний
Файл администрирования модуля – это файл modules/модуль/admin/имя_модуля.admin.php, в котором определен класс Имя_модуля_admin. Этот класс построен на основе единого каркаса, поэтому должен наследовать класс Frame_admin.
Если модуль имеет несколько частей, то административная часть модуля может содержать и другие файлы modules/модуль/admin/имя_модуля.admin.часть.php, где описан класс имя_модуля_admin_часть.
Свойства класса могут определять следующие переменные-настройки:
Название таблицы
public $table = 'имя_таблицы_в_БД';
Описание полей
public $variables = array (
'название_группы_полей_1_латинскими_буквами' => array (
'название_поля_1_латинскими_буквами' => array(
'type' => 'тип_поля',
'name' => 'Название_поля_русскими_буквами',
'help' => 'Подсказка',
// поле переводится на другие языки
'multilang' => true,
// значение по умолчанию
'default' => 'значение',
// поле нельзя отредактировать
'disabled' => true,
// не сохранять значение
'no_save' => true,
// высота поля визуального редактора
'height' => 400,
// значения для списка type=select
'select' => array(
"значение1" => "отображение1",
"значение2" => "отображение2",
…
),
// значения для списка получается из базы данных
'select_db' => array(
"table" => "название таблицы в базе данных",
"id" => "поле, которое используется в качестве значений списка, по умолчанию id",
// для мультиязычных полей можно использовать квадратный скобки
// пример: [text]
"name" => "поле, которое используется для отображения пользователю в списке, по умолчанию name",
// пример: "trash='0' AND [act]='1'"
"where" => "условие для SQL-запроса"
// пример: sort ASC
"order" => "сортировка",
// пример: "Все"
// если не задано, то пустое значение невозможно будет в списке выбрать
"empty" => "пустое значение в списке",
// значения будут выстроены с учетом вложенности
"hierarchy" => true|false,
…
),
// поле выводиться, если отмечено поле, указанное в depend
// можно указать несколько полей через "," или "|"
// разделитель "," означает, что для показа поля должны быть
// отмечены все из указанных полей
// разделитель "|" означает, что для показа поля должно быть
// отмечено хотя бы одно из указанных полей
'depend' => 'влияющие_на_вывод_поле',
),
'название_поля_2_латинскими_буквами' => array(
…
),
// сокращенная форма
'название_поля_3_латинскими_буквами' => 'тип_поля',
…
),
'название_группы_полей_2_латинскими_буквами' => array (
…
),
…
// группа дополнительных полей
'other_rows' => array (
…
),
);
Определены следующие типы:
- text – строка;
- password – пароль;
- numtext – число;
- floattext – число с плавающей точкой;
- checkbox – переменная с двумя значениями (1,0);
- select – список (для использования типа необходимо определить атрибут select или select_db);
- date – дата (значение выводится в формате dd.mm.yyyy, сохраняется в формате UNIX);
- datetime – дата и время (значение выводится в формате dd.mm.yyyy hh:mm, сохраняется в формате UNIX);
- textarea – текстовое поле типа textarea;
- editor – текстовое поле с визуальным редактором;
- title – заголовок;
- none – при редактировании не выводится, но значение сохраняется (можно использовать с пользовательской функцией);
- module – обозначаются поля, к которым подключены другие модули;
- function – обозначаются поля, к которым подключены пользовательские функции (подключаются также к любому другому типу кроме module);
- hr – выводит горизонтальную полосу на странице редактирования, при сохранении не учитывается.
Для удобного доступа к массиву $variables
определены следующие функции:
variable ([string $key = ''], [string $type_info = 'type'], [mixed $value = NULL]) – возвращает, назначает информацию о поле.
- string $key – название переменной. Если не задано, то используется переменная текущей итерации цикла (при сохранении и редактировании);
- string $type_info – тип информации (type, name, multilang, disabled, default и др.);
- mixed $value – значение. Если задано, то значение переопределяется.
Пример:
if($this->diafan->variable('name') == 'editor')
{
echo 'Поле name редактируется с помощью визуального редактора.';
}
if($this->diafan->variable('type', 'multilang'))
{
echo 'Значение поля type переводится на другие языки.';
}
// запрещаем редактирование значения поля role_id
$this->diafan->variable('role_id', 'disabled', true);is_variable (string $key) – возвращает, определена ли переменная в списке полей.
- string $key – название переменной.
Пример:
if($this->diafan->is_variable('act'))
{
echo 'Поле act определено в списке полей.';
}variable_unset (string $key) – удаляет переменную из списка полей.
- string $key – название переменной.
Пример:
// удаляем поле site_id из списка полей
$this->diafan->variable_unset('site_id');variable_name ([string $key = '']) – возвращает название поля.
- string $key – название переменной. Если не задано, то используется переменная текущей итерации цикла (при сохранении и редактировании).
Пример:
echo 'Название текущего поля: '.$this->diafan->variable_name();
echo 'Название поля role_id: '.$this->diafan->variable_name('role_id');variable_multilang ([string $key = '']) – определяет, является ли поле мультиязычным.
- string $key – название переменной. Если не задано, то используется переменная текущей итерации цикла (при сохранении и редактировании).
Пример:
if($this->diafan->variable_multilang('name'))
{
echo 'Значение поля name переводится на другие языки.';
}variable_disabled ([string $key = ''], [boolean $value = NULL]) – возвращает, назначает атрибут disabled для переменной.
- string $key – название переменной. Если не задано, то используется переменная текущей итерации цикла (при сохранении и редактировании);
- boolean $value – значение. Если задано, то значение переопределяется.
Пример:
if($this->diafan->variable_disabled('counter'))
{
echo 'Поле counter нельзя отредактировать.';
}
// запрещаем редактировать поле created
$this->diafan->variable_disabled('created', true);
Настройки отображения
public $config
– настройка отображения списка значений:
- category – использование категорий в модуле (отдельная таблица {таблица_category}); часть с категориями;
- category_flat – категории элементов модуля не содержат вложенностей;
- category_no_empty – категория всегда выбрана;
- category_no_multilang – имя категории не переводится;
- category_rel – работают вместе с таблицей {модуль_category_rel};
- config – файл настроек модуля;
- element – использование категорий в модуле (отдельная таблица {таблица_category}); часть с элементами;
- element_multiple – элемент может быть прикреплен к нескольким категориям;
- element_site – использование разделов (если модуль может быть подключен к нескольким станицам);
- link_to_element – основная ссылка ведет к списку элементов, принадлежащих категории;
- multiupload – мультизагрузка изображений (подключение JS-библиотек);
- only_self – показывать только материалы редактора, если это задано в правах пользователя;
- tab_card – использование вкладок.
Формат:
public $config = array(
'переменная',
…
);
Настройки доступны через функцию $this->diafan->config("название");
.
Этой функцией можно выключить или отключить настройку отображения. Формат:
$this->diafan->config("название", true|false);
Настройки для формирования списка элементов
public $where
– дополнительное условие для SQL-запроса к базе данных.
Пример:
В административной части список комментариев должен формироваться только из неактивных комментариев.
public $where = " AND act='0'";
public $join
– часть SQL-запроса - соединение с таблицей.
Пример:
В заказах ищем по имени пользователя, оформившего заказ.
$search = 'Иван';
$this->diafan->join .= " LEFT JOIN {users} AS u ON u.id=e.user_id";
$this->diafan->where .= " AND u.fio LIKE '%%".$search."%%'";
public $fields
– часть SQL-запроса - дополнительные столбцы.
Пример:
Для новостей дополнительно получим значение ключевых слов.
$this->diafan->fields .= ", e.[keywords]";
Поля для формирования списка элементов
public $variables_list
– массив полей для отображения в списке.
Формат:
public $variables_list = array (
'название_поля_1_латинскими_буквами' => array(
'type' => 'тип_поля',
'name' => 'название_столбца_в_шапке_списка',
'class' => 'CSS-класс',
'class_th' => 'CSS-класс_для_столбца_в_шапке_списка',
// редактирование значение прямо из списка
'fast_edit' => true|false,
// значение будет скрыто на узких экранах
'no_important' => true|false,
// значение берется из базы данных, подставляется в SQL-запрос
'sql' => true|false,
// значения для списка type=select
'select' => array(
"значение1" => "отображение1",
"значение2" => "отображение2",
…
),
// значения для списка type=select получается из базы данных
'select_db' => array(
"table" => "название таблицы в базе данных",
"id" => "поле, которое используется в качестве значений списка, по умолчанию id",
// для мультиязычных полей можно использовать квадратный скобки
// пример: [text]
"name" => "поле, которое используется для отображения пользователю, по умолчанию name",
// пример: "trash='0' AND [act]='1'"
"where" => "условие для SQL-запроса",
// пример: "Все"
"empty" => "пустое значение в списке",
…
),
// любые другие атрибуты, которые могут быть использованы в пользовательских функциях
),
'название_поля_2_латинскими_буквами' => array(
…
),
…
);
Определены следующие типы:
- function – вывод осуществляется пользовательской функцией;
- select – значения списка определяется атрибутами select или select_db. Если атрибуты не заданы, то значения списка получаются из одноименных атрибутов соответствующей переменной из массива
$variables
; - text – строка;
- textarea (или editor) – текст;
- numtext – число;
- floattext – число с плавающей точкой;
- none – в списке не выводиться. Обычно выводиться с атрибутом
'sql' => true
и используется в пользовательской функции другой переменной.
Для любого типа можно определить пользовательскую функцию формата: list_variable_переменная($row, $var)
, где $row
– массив значений для текущего элемента, $var
– массив данных о текущей переменной.
В файле adm/includes/show.php описаны некоторые глобальные пользовательские функции, любую из которых можно переопределить в файле модуля. Глобальные функции list_variable_*() описаны для следующих переменных:
- checkbox – выводит чекбокс для групповых операций. Выводится в самом начале списка
Пример:
public $variables_list = array (
'checkbox' => '',
// …
);
- sort – выводит кнопку «Перетащить» в списке элементов
Пример:
public $variables_list = array (
'sort' => array(
'name' => 'Сортировка',
'type' => 'numtext',
'sql' => true,
'fast_edit' => true,
'desc' => true,
),
);
- plus – выводит ссылку на раскрытие дерева
Пример:
public $variables_list = array (
'plus' => '',
);
- created – выводит дату в списке
Пример:
public $variables_list = array (
'created' => array(
// название столбца в шапке списка
'name' => 'Дата и время',
// тип может быть date или datetime
'type' => 'datetime',
// для отображения даты нужно ее запросить в базе данных
'sql' => true,
// значение будет скрыто на узком экране
'no_important' => true,
),
);
- image – выводит изображение в списке
Пример:
public $variables_list = array (
'image' => array(
// название столбца в шапке списка
'name' => 'Фото',
// CSS-класс для столбца в шапке списка
'class_th' => 'item__th_image ipad',
// значение будет скрыто на узком экране
'no_important' => true,
),
);
- name – выводит название элемента и ссылку на редактирование в списке элементов.
Пример:
public $variables_list = array (
'name' => array(
// название столбца в шапке списка
'name' => 'Название и категория'
// по умолчанию name
'variable' => 'Название_поля_в_базе_данных',
// по умолчанию не используется
'text' => 'Текст',
),
);
Если задано поле, то для ссылки используется значение этого поля.
Мультиязычность поля определяется по массиву $variables
.
Пример:
В модуле «Комментарии» для ссылки нужно использовать текст комментария. В файле modules/comments/admin/comments.admin.php:
public $variables_list = array (
'name' => array(
'name' => 'Комментарий',
'variable' => 'text',
),
);
Если указан атрибут text, то текст ссылки будет определяться этим значением.
Пример:
В модуле «Рейтинг» в основной таблице нет информации, которую можно использовать для ссылки, поэтому выводим «Редактировать». В файле modules/rating/admin/rating.admin.php:
public $variables_list = array (
'name' => array(
'text' => 'Редактировать',
),
);
Можно в текст подставить значение поля. Для этого в тексте указываем описатель типа.
Пример:
В модуле «Магазин – Заказы» для ссылки нужно выводить «Заказ № 1, 2, ...». В файле modules/shop/admin/shop.admin.order.php:
public $variables_list = array (
'name' => array(
'name' => 'Заказ',
'variable' => 'id',
'text' => '№ %d'
),
);
menu – выводит иконку меню в списке. Функция
list_variable_menu()
вызывается изlist_variable_name()
, но может использоваться непосредственно в списке.parent – выводит название раздела/категории в списке. Функция
list_variable_parent()
вызывается изlist_variable_name()
и выводит категории и разделы под названием элемента, но может использоваться непосредственно в списке.adapt – выводит верстку для адаптации под мобильный устройства в списке элементов
Пример:
public $variables_list = array (
'adapt' => array(
'class_th' => 'item__th_adapt',
),
);
date_period – выводит период показа. Функция
list_variable_date_period()
вызывается изlist_variable_name()
и выводит ограничение по времени показа под названием элемента, но может использоваться непосредственно в списке.actions – выводит кнопки действий над элементом. Выводится в самом конце списка. Эта функция имеет собственные атрибуты-настройки для вывода нужных действий:
- act – выводит кнопку «Сделать неактивным / Опубликовать на сайте»
- view – выводит кнопку «Посмотреть на сайте»;
- add – выводит кнопку «Добавить подстраницу»;
- del – выводит кнопку «Удалить»;
- trash – выводит кнопку «Удалить в корзину».
Пример:
// выведем в списке кнопки удаления в корзину и публикации на сайте
public $variables_list = array (
// …
'actions' => array(
'act' => true,
'trash' => true,
),
);
Для удобного доступа к массиву $variables_list
определена следующая функция:
variable_list ([string $key = ''], [string $type_info = 'type'], [mixed $value = NULL]) – возвращает, назначает информацию о поле в списке.
- string $key – название переменной;
- string $type_info – тип информации (type, name, multilang, disabled, default и др.);
- mixed $value – значение. Если задано, то значение переопределяется.
Пример:
if ($this->diafan->variable_list('plus'))
{
echo 'Используется иерархия элементов.';
}
if($this->diafan->variable_list('actions', 'trash'))
{
echo 'Выводим кнопку "Удалить в корзину".';
}
// скрываем кнопку "Предпросмотр"
$this->diafan->variable_list('actions', 'view', false);
Поля для фильтра
public $variables_filter
– массив полей, по которым идет поиск.
Формат:
public $variables_filter = array (
'название_поля_1_латинскими_буквами' => array(
'type' => 'тип_поля',
'name' => 'название_поля/легенда',
'icon' => 'иконка_для_типа_checkbox',
// значения для типов select, radiobox, multiselect
'select' => array(
"значение1" => "отображение1",
"значение2" => "отображение2",
…
),
// значения для списка получается из базы данных
'select_db' => array(
"table" => "название таблицы в базе данных",
"id" => "поле, которое используется в качестве значений списка, по умолчанию id",
// для мультиязычных полей можно использовать квадратный скобки
// пример: [text]
"name" => "поле, которое используется для отображения пользователю в списке, по умолчанию name",
// пример: "trash='0' AND [act]='1'"
"where" => "условие для SQL-запроса"
// пример: sort ASC
"order" => "сортировка",
// значения будут выстроены с учетом вложенности
"hierarchy" => true|false,
…
),
// выводить ссылки на временные периоды (Сегодня Месяц Год)
// для типов datetime_interval и date_interval
'links' => true|false,
// любые другие атрибуты, которые могут быть использованы в пользовательских функциях
),
'название_поля_2_латинскими_буквами' => array(
…
),
…
);
Определены следующие типы:
- function – вывод осуществляется пользовательской функцией;
- select – выпадающий список. Значения списка определяется атрибутами select или select_db. Если атрибуты не заданы, то значения списка получаются из одноименных атрибутов соответствующей переменной из массива
$variables
или$variables_list
; - multiselect – список с выбором нескольких значений, выводиться в виде чекбоксов;
- text – поле для ввода;
- checkbox – галка-чекбокс;
- radiobox – выбор одного значения из списка-радиобокс;
- hr – горизонтальная линия;
- date – дата;
- numtext_interval – числовой интервал;
- datetime_interval – интервал даты и времени;
- date_interval – интервал даты.
Для любого типа можно определить пользовательскую функцию формата: get_filter_variable_переменная($row)
, где $row
– массив данных о текущей переменной. Для поиска по переменным тоже можно определить пользовательскую функцию save_filter_variable_переменная($row)
, где $row
– массив данных о текущей переменной.
В файле adm/includes/show.php описаны некоторые глобальные пользовательские функции, любую из которых можно переопределить в файле модуля.
Пример:
// функция поиска по полю "Нет изображения"
public function save_filter_variable_no_img($row)
{
if (empty($_GET["filter_no_img"]))
{
return;
}
// добавляем условие в SQL-запрос
$this->diafan->where .= " AND (SELECT COUNT(*) FROM {images} AS i WHERE i.element_id=e.id AND i.element_type='".$this->diafan->element_type()."' AND i.module_name='".$this->diafan->_admin->module."' AND i.param_id=0)=0";
// учитываем заданное значение в ссылках пагинации
$this->diafan->get_nav .= ($this->diafan->get_nav ? '&' : '?' ).'filter_no_img=1';
return 1;
}
Для удобного доступа к массиву $variables_filter
определена следующая функция:
- variable_filter ([string $key = ''], [string $type_info = 'type'], [mixed $value = NULL]) – возвращает, назначает информацию о поле в фильтре.
- string $key – название переменной;
- string $type_info – тип информации (type, name, multilang, disabled, default и др.);
- mixed $value – значение. Если задано, то значение переопределяется.
Пример:
if ($this->diafan->variable_filter('article'))
{
echo 'В фильтре будет выведено поле для поиска по артикулу.';
}
// добавляем значения списка "Блоки форума" для фильтра
$blocks = DB::query_fetch_key_value("SELECT id, name FROM {forum_blocks} WHERE trash='0' ORDER BY sort ASC", "id", "name");
$this->diafan->variable_filter('block_id', 'select', $blocks);
Групповые операции
Групповая операция – это действие из выпадающего списка, которое можно применить к отмеченным чекбоксами элементам. Групповые операции можно добавить двумя способами:
- описав в файле администрирования
- добавив макрос для группового действия.
Первый способ используется для модулей, написанных «с нуля». Удобно, когда весь интерфейс описан в одном файле.
public $group_action
– массив дополнительных групповых операций.
public $group_action = array(
"название_латинскими буквами" => array(
'name' => "Название, которое видит администратор",
'module' => 'название_модуля',
['confirm' => 'Текст для подтверждения администратором операции',]
['question' => 'Текст вопроса для администратора',]
),
"вторая_групповая_операция" => array(
//...
),
//...
);
Действие для групповой операции должно быть описано в файле модуль.admin.action.php.
class Модуль_admin_action extends Action_admin
{
public function init()
{
if (! empty($_POST["action"]))
{
switch($_POST["action"])
{
case 'название_групповой_операции':
$this->название_функции();
break;
}
}
}
public function название_функции()
{
// $_POST["ids"] - идентификаторы выбранных элементов
// $_POST - любые другие данные полей указанных в $config["html"]
// если описан вопрос, то положительный результат придет как $_POST["question"] = 1
}
}
Второй способ – макросы – удобно использовать для модулей DIAFAN.CMS, чтобы избежать кастомизации файлов администрирования. Макрос для групповой операции – это отдельный файл, описывающий одну групповую операцию.
Этот способ доступен начиная с версии DIAFAN.CMS 6.0.10.5.
Глобальные макросы можно подключать ко всем интерфейсам. Они размещаются в папке adm/includes/macros/group. Название файла – название макроса. Внутри файла должен быть описан класс Group_название_макроса
.
Пример:
// перемещение в категорию
// файл adm/includes/macros/group/cat_id.php
class Group_cat_id extends Diafan
{
//...
}
Макросы для модуля размещаются в папке modules/модуль/admin/marcos. Название файла – модуль.admin.названиеИнтерфейса.group.названиеМакроса.php. В файле должен быть описан класс Модуль_admin_названиеИнтерфейса_group_названиеМакроса
. Название интерфейса может быть опущено, если это основной интерфейс модуля.
Пример:
// прикрепление характеристик товара к категории
// файл modules/shop/admin/macros/shop.admin.param.group.category_rel.php
class Shop_admin_param_group_category_rel extends Diafan
{
//...
}
// редактирование отметки "Хит" у товаров
// файл modules/shop/admin/macros/shop.admin.group.hit.php
class Shop_admin_group_hit extends Diafan
{
//...
}
Класс макроса должен описывать две функции show()
и action()
.
show (string $value) – возвращает массив настроек макроса.
- string $value – последнее выбранное групповое действие.
Если функция вернёт false
, то действие не будет выведено в интерфейсе.
public function show($value)
{
$config = array(
'name' => 'Название макроса',
// опции групповой операции, HTML-код выводится
// при выборе групповой операции в списке
'html' => '<select name="group_other_data">...</select>',
// связанные макросы указываются, чтобы для них
// использовалось то же значение $config['html']
'rel' => array(
'связанный_макрос',
'связанный_макрос2',
),
// если задано, администратору выводится
// диалоговое окно для подтверждения операции
'confirm' => 'Текст подтверждения',
// если задано, администратору выводится
// диалоговое окно с вопросом
'question' => 'Вопрос пользователю',
);
return $config;
}
action () – выполняет групповую операцию над выбранными элементами.
public function action()
{
// $_POST["ids"] - идентификаторы выбранных элементов
// $_POST - любые другие данные полей указанных в $config["html"]
// если описан вопрос, то положительный результат придет как $_POST["question"] = 1
}
Прикрепление модуля к нескольким разделам сайта
Для возможности прикрепления модуля к нескольким страницам, необходимо вставить следующий код:
public $variables = array (
'любая_группа_полей' => array (
'site_id' => array(
'type' => 'function',
'name' => 'Раздел сайта',
),
),
);
public $config = array('element_site', …);
Значения свойств задаются динамически
Если значения вышеописанных свойств модуля зависят от каких-либо условий, то эти условия описываются в функции prepare_config()
.
Пример:
Если в настройках модуля «Фотогалерея» отключена опция «Использовать альбомы», то настройки «использование категорий в модуле» и «элемент может быть прикреплен к нескольким категориям» должны быть отключены.
public function prepare_config()
{
if(! $this->diafan->configmodules("cat", "photo", $this->diafan->site))
{
$this->diafan->config("element", false);
$this->diafan->config("element_multiple", false);
}
}
Текущие значения
Текущий элемент для действий редактирование (edit), сохранение (save), валидация (validate) в переменной $this->diafan->id
.
Если элемент новый (при добавлении), то $this->diafan->is_new = true;
. При этом при редактировании и валидации $this->diafan->id = 0;
.
В пользовательских функциях edit_variable_переменная()
, save_variable_переменная()
, validate_variable_переменная()
текущее значение полей доступно через функцию values()
.
Пример:
echo 'Название редактируемой новости: '.$this->diafan->values('name');
При валидации и сохранении текущими значениями являются значения до нажатия кнопки «Сохранить».
При редактировании функция values()
принимает два дополнительных значения:
mixed values(string $field, [mixed $default = ''], [boolean $save = false]) – получает значение поля.
- string $field: название поля
- mixed $default: значение по умолчанию, вернется, если текущее значение не определено
- boolean $save: запомнить значение по умолчанию, вернет значение по умолчанию при дальнейшем вызове функции
Также существует переменная $this->diafan->value
. В ней записано значение для переменной из текущей функции.
Пример:
В функции edit_variable_created()
переменная $this->diafan->value
будет равняться $this->diafan->values('created')
.
Тип элемента
Для элементов модуля можно определить тип элемента. В стандартной редакции DIAFAN.CMS существует три типа элементов:
- element – стандартый тип, назначающийся элементу по умолчанию
- cat – категория
- brand – производитель
Пример:
Тип элемента используется для записи ЧПУ в таблицу {rewrite} для того, чтобы определить какую страницу модуля открывать – карточку товара, страницу категории или страницу производителя. Или для подключения рейтинга и к категории модуля и к элементам модуля.
Для работы с типом элемента в административной части определены следующие функции.
string element_type() – определяет тип элементов текущей редакции.
Пример:
echo 'Сейчас мы редактируем ':
switch($this->diafan->element_type())
{
case 'cat':
echo 'категории';
break;
case 'brand':
echo 'производителей';
break;
case 'element':
echo 'элементы модуля';
break;
}
string table_element_type(string $module_name, string $element_type) – определяет таблицу по типу элемента.
- string $module_name: модуль
- string $element_type: тип элемента
Пример:
echo $this->diafan->table_element_type('shop', 'cat');
// вернет: shop_category
Проверка текущего действия
string is_action($action) – определяет является ли текущее действие указанным в аргументе.
- string $action: действие
Пример:
if($this->diafan->is_action('edit'))
{
echo 'Открыта страница редактирования/добавления элемента.';
}
База знаний
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.