Skip to content

Latest commit

 

History

History
193 lines (141 loc) · 5.27 KB

plugin-api.md

File metadata and controls

193 lines (141 loc) · 5.27 KB

Плагин

Регистрация нового плагина в системе.

Plugin::register(
	__FILE__,
	__('Blog'),
	__('Blog plugin'),
	'1.0.0',
	'Username',
	'http://example.org/',
	'blog'
);

Подключение плагина административной части.

Plugin::admin('blog');

Представление

Представление через создания нового объекта.

// Создать новый объект
$view = new View('blog/views/backend/index');

// Присвоить некоторые новые переменные
$view->assign('msg', 'Some message...');

// Получить представление
$output = $view->render();

// Отобразить представление
echo $output;

Представление через метод factory.

// Создает новое представление, присваиваются
// значения переменных и отображается.
View::factory('blog/views/backend/index')
   ->assign('msg', 'сообщение...')
   ->display();

Присваивание новых переменных для представления.

$view->assign('msg', 'сообщение...');

Подключает файл представления и получает переменные в представление

// Получить представление
$output = $view->render();

// Отобразить представление
echo $output;

Сразу получает и отображает представление.

$view->display();

### I18n

Возвращает перевод строки. Если перевода не существует, то передается оригинальное значение без перевода. Параметры не будут заменены.

$hello = I18n::find('Hello friends, my name is :name', 'namespace');

Глобальный перевод/функция интернационализации

Принимает английскую строку и возвращает ее перевод в активный язык системы. Если данная строка отсутствует в текущем словаре, то оригинальная английская строка будет возвращена.

// Отобразить перевод
echo __('Hello, world', 'namespace');

// С параметрами замены
echo __('Hello, :user', 'namespace', array(':user' => $username));

### Действия (Экшены)

Хуки это крючки на определенные действия.

// Зацепка функции "newLink" в экшен "footer"
Action::add('footer', 'newLink', 10);

function newLink() {
   echo '<a href="#">My link</a>';
}     

Выполнение зацепленной функции

// Выполняет зацепренную функцию "footer" , которая была добавлена выше.
Action::run('footer');

### Фильтр

Применить фильтр.

Filter::apply('content', $content);

Добавить фильтр.

Filter::add('content', 'replacer');

function replacer($content) {
   return preg_replace(array('/\[b\](.*?)\[\/b\]/ms'), array('<strong>\1</strong>'), $content);
}

### Stylesheet

Добавить файл стилей

frontend - витрина сайта backend - административная часть 11 (любое число) - порядок приоритета подключания

Stylesheet::add('path/to/my/stylesheet1.css');
Stylesheet::add('path/to/my/stylesheet2.css', 'frontend', 11);
Stylesheet::add('path/to/my/stylesheet3.css', 'backend',12);

Минификация, оъединение и загрузка стилей.

Stylesheet::load();

### Javascript

Добавить javascript

// frontend - витрина сайта
// backend - административная часть
// 11 (любое число) - порядок приоритета подключания
Javascript::add('path/to/my/script1.js');
Javascript::add('path/to/my/script2.js', 'frontend', 11);
Javascript::add('path/to/my/script3.js', 'backend', 12);

Оъединение и загрузка скриптов.

Javascript::load();

### Навигация в админ интерфейсе

Добавить новый элемент

// Добавить ссылку плагина blog в верхнее меню, раздел Контент. 
// 11 это порядок сортировки
Navigation::add(__('Blog'), 'content', 'blog', 11);

// Добавляет ссылку в меню top, но выводит просто ссылку, а элемент списка 
// (осталось с прошлой версии, в новой просто не используется)
Navigation::add(__('View site'), 'top', 'http://site.com/', 11, Navigation::TOP, true);

Выводит элементы

Navigation::draw('content');
Navigation::draw('top', Navigation::TOP);