Perfecto CMS - Система управления контентом
  • Русский язык
  • English version
Вход на сайт
Регистрация
Online документация
Online документация
Вы можете найти лучшие практичные процедуры по настройки, которые помогут вам лучше спланировать свои сайты.

API документация движка

4,133 просмотров / 16 Янв 2015 обновлено
С каждым днём мы совершенствуем свои фундаментальные функции и классы, которые разработчики могут использовать для разработки новых модулей и модификаций к нашей системе.

Данный документ содержит список готовых к реализации функций, которые вы можете использовать в ваших модулях.
Подключать ничего не нужно, так как структура системы позволяет свободно использовать свой API в новых модулях.
В основной состав входят 4 класса: CORE, TEMPLATE, CACHE и DB, которые уже вызваны, это: $core, $tpl, cache и $db.

Базы данных

	# создание прототипа класса
$db = new DB($server, $user, $password, $datebase);

# соединение с базой данных.
$db->connect();

# вывод ошибки при неполадке
$db->error();

# выполнение запроса QUERY_STRING
$db->query("QUERY_STRING");

# извлекает результирующий ряд как ассоциативный массив
$db->fetch_array();

# получает число рядов в результирующей выборке
$db->num_rows();

# получает число строк, затронутых предыдущей операцией MySQL (MySQLi)
$db->affected_rows();

# освобождает память от результата запроса
$db->free_result();

# выводит версию MySQL (MySQLi)
$db->version();

# прерывает соединение с базой
$db->close();
Пример запроса
$news_query = $db->query("SELECT * FROM `news` WHERE `status`='1' ");
while ($news_array = $db->fetch_array($news_query)) {
  /*....code here....*/
}

Функции основного ядра

	# возвращает отфильтрованную переменную $var. Фильтр для входящих переменных
$core->filter( string $var );

# возвращает де-фильтрованную переменную $var.
$core->deFilter( string $var );

# возвращает id модуля
$core->module_id( $module_name );

# создает дату в формате выбранного языка из входящей $mktime переменной
$core->date($mktime, $type = "short", $time = false);

# возвращает join категории
$core->category_join( $module_id, $cat_altname );

# возвращает название категории
$core->category_name( $join, $lang );

# преобразует id языка в название (altname)
$core->lang_name( $lang_id );

# проверка корректности электронной почты. Возвращает TRUE или FALSE
$core->valid_email( $email );

# проверка корректности никнейма (логина)
$core->valid_nickname( $nickname );

# дамп информации о переменной в читабельном виде
$core->dump( $array );

# возвращает картинку если она существует, или картинку $not_found при отсутствии $filename
$core->img_exit( $path, $filename, $not_found );

# генерация пароля с указанной длиной $num
$core->generate_password( $num );

# возвращает транслит переменной $text
$core->translit( $text );

# конвертирует строку с UTF8 в CP1251
$core->Utf8ToWin( $text );

# конвертирует строку с CP1251 в UTF8
$core->WinToUtf8( $text );

# создает ссылку(altname) из заголовка при отсутствии самой ссылки
$core->altname( $url , $title );

# перенаправление
$core->redirect( $url );

# возвращает реальный IP адрес пользователя
$core->ip();

# генерирует языковые вкладки для указанного модуля
$core->langTabs( $module );

# генерация списка(select) категорий начиная с $ParentID
$core->MakeTree( $ParentID, $u_level );

# create_zip предназначен для архивации данных
# функция собирает файлы из массива $files, создает *.zip архив и записывает в $destination
$core->create_zip( $files = array(), $destination = '', $overwrite = false );

# возвращает размер папки (с подпапками)
$core->dirSize( $dir );

# рекурсивное копирование
$core->recurse_copy( $src, $dst );

# скачивание файла через header заголовок
$core->download( $fullPath );

# конвертация XML файл в ассоциативный массив
$core->xml2array( $contents, $get_attributes=1, $priority = 'tag');

# возвращает JSON-представление данных с поддержкой кириллицы
$core->json_encode( $str );

# возвращает массив с информацией о пользователе (IP, Браузер, ОС и т.д.);
$core->statistics()

# открывает файл $filepath, удаляет BOM, сохраняет обратно
$core->RemoveBOM( $filepath )

# функция sendmail предназначена для формирования и отправки качественного письма
# $content - массив содержащий параметры: from, to, replyTo, subject, attach
# переменная $admin определяет, адресовано ли письмо администратору или нет
# $enc - определяет кодировку письма, по умолчанию она создается в utf-8
$core->sendmail($content = array(), $admin = true, $enc = 'utf-8')

# преобразовывает телефонный номер в международный формат
# параметр $hidden позволяет скрыть/показать последние 4 цифры номера
$core->phoneNumber($phoneNumber, $hidden = false)

# скрывает несколько знаков в электронном адресе
$core->emailAddress($email)

# изменение размера фотографии (Resize & Crop);
$core->imageResize($from, $to, $params = array("width"=>200,"height"=>200,"crop"=>true))

Шаблонизация

	# Присваивает значение $value переменной $name в шаблоне
$tpl->assign( $name , $value );

# Парсинг указанного шаблона
$tpl->parse( $ReturnVar, $FileTags );

# Определение файла шаблона
$tpl->define( $template );

# Создание динамического блока
$tpl->define_dynamic( $Macro, $ParentName )

# Очистка динамического блока
$tpl->clear_dynamic( $Macro );

# Очистка шаблона
$tpl->clear( $ReturnVar )
Пример создания динамического блока для вывода новостей
$tpl->define_dynamic("news_list","news"); # создание динамического блока news_list в шаблоне news.tpl
$news_query = $db->query("SELECT * FROM `news` WHERE `lang`='".$language['ID']."' ");
while ($news_array = $db->fetch_array($news_query)) {
  $tpl->assign("name", $news_array['name']);
  $tpl->assign("text", $news_array['text']);
  $tpl->assign("date", $news_array['date']);
  $tpl->parse('NEWS_LIST', '.news_list'); # вывод данных из цикла
}

Кеширование

	# Метод кэширования, доступны: PDO | mpdo | Auto | Files | memcache | apc | wincache | xcache.
# Обратите внимание, метод уже объявлен в файле config.php
cache::$storage = "auto";

# Директория для кэширования
cache::$path = CACHE_DIR;

# Установка данных для Memcache
cache::$server = array(array("localhost", 11211));

# Получение данных с кэша по имени CACHE_NAME
$date = cache::get("CACHE_NAME");

# Запись данных в кэш по имени CACHE_NAME на срок 600 секунд
cache::set("CACHE_NAME", $date, 600);

# Полная очистка кэша сайта
cache::cleanup();
Пример кэширования данных
$news_list = cache::get("news_list"); # Запрос данных из кеша
if($news_list == null) { # проверка наличие данных в кэше
  $news_query = $db->query("SELECT * FROM `news` WHERE `lang`='".$language['ID']."' ORDER BY `ID` DESC LIMIT 5");
  while ($news_array = $db->fetch_array($news_query)) {
    $news_list[] = news_array;
  }
  cache::set("news_list", $news_list, 3600); # Создание кэша с данными из базы на 1 час
}

$tpl->define_dynamic("news_list","news");
foreach ($news_list as $news) {
  $tpl->assign("name", $news['name']);
  $tpl->assign("text", $news['text']);
  $tpl->assign("date", $news['date']);
  $tpl->parse('NEWS_LIST', '.news_list');
}

Шифрование данных

В файле config.php объявлен шифровщик данных $crypter.
Вы можете изменить ключ шифрования в строке $crypter = new Crypter('#PROJECT-YOUR-PROJECT-KEY#'); на ваш.
	# возвращает зашифрованную строку $data
$crypter->encrypt( $data )

# возвращает дешифрованную строку $data_crypted
$crypter->decrypt( $data_crypted )

# создает новый ключ шифрования
$crypter->setKey( $key )

Заказ дизайна
Уникальное предложение для клиентов Perfecto CMS. Если вы хотите оригинальный дизайн дайте нам знать и мы с вами свяжемся для обсуждения деталей.
Для минимизации времени на обсуждение и разработку, рекомендуем скачать бланк, заполнить его и отправить нам на электронный адрес: Our email
Приметная оценка проекта
600 USD

Ваш браузер устарел!

Пожалуйста, скачайте последнюю версию Internet Explorer
Кстати, мы рекомендуем использовать другой браузер ;)