<?php /** * @noinspection PhpInconsistentReturnPointsInspection * @noinspection PhpReturnDocTypeMismatchInspection */ namespace bff\db; use Module; use bff\contracts\DestroyAfterRequest; /** * Компонент Publicator * @copyright Tamaranga */ class Publicator_ extends Module implements DestroyAfterRequest { # типы контентных блоков public const blockTypeText = 1; # текÑÑ‚ public const blockTypePhoto = 2; # Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ñ public const blockTypeVideo = 3; # видео public const blockTypeSubtitle = 4; # подзаголовок public const blockTypeGallery = 5; # Ñ„Ð¾Ñ‚Ð¾Ð³Ð°Ð»ÐµÑ€ÐµÑ public const blockTypeQuote = 6; # цитата # конÑтанты размеров изображений public const szThumbnail = 't'; # thumbnail - в форме Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ public const szView = 'v'; # view - при проÑмотре public const szZoom = 'z'; # zoom - при проÑмотре (zoom) public const szOriginal = 'o'; # original - оригинал /** @var string название модулÑ, инициировавшего работу Ñ Publicator */ public $owner_module = ''; /** @var array|bool МультиÑзычноÑÑ‚ÑŒ */ public $langs = false; /** @var string метод парÑинга текÑта Wysiwyg редактора */ public $textParserMethod = 'parseWysiwygText'; /** * Инициализируем компонент * @param string $sOwnerModuleName название Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñющего инициализацию * @param array $aSettings наÑтройки компонента * @param bool $bCheckRequest выполнÑÑ‚ÑŒ проверку запроÑа к публикатору */ public function __construct($sOwnerModuleName = '', array $aSettings = array(), $bCheckRequest = true) { # наÑтройки по-умолчанию /* array( # ÑпиÑок доÑтупных типов контента (по-умолчанию: вÑе) 'controls' => array(), # иÑпользовать WYSIWYG вмеÑто textarea 'use_wysiwyg' => true, # разрешать теги <script> в WYSIWYG 'wysiwyg_scripts' => false, # разрешать теги <iframe> в WYSIWYG 'wysiwyg_iframes' => false, # иÑпользовать оÑновной заголовок 'title' => false, # выполнÑÑ‚ÑŒ обработку ÑÑылок, наÑтройки: # - local-domains - ÑпиÑок внутренних доменов, # - highlight-new - не выполнÑÑ‚ÑŒ подÑветку ÑÑылок в текÑте 'links_parser' => array(), # Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ - общие наÑтройки (photo,gallery) # абÑолютный путь к папке Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñми 'images_path' => '', # временный абÑолютный путь к папке Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñми (еÑли пуÑтой: images_path/tmp) 'images_path_tmp' => '', # URL к папке Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñми 'images_url' => '', # временный URL к папке Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñми (еÑли пуÑтой: images_url/tmp) 'images_url_tmp' => '', # ÑохранÑÑ‚ÑŒ оригинальное изображение (фото+галереÑ) 'images_original' => false, # качеÑтво изображений 'images_quality' => 85, # макÑимально допуÑтимый размер файлов изображений, в байтах (фото+галереÑ) 'images_maxsize' => 8388608, # 8mb # фото: # th-изображение (при редактировании) 'photo_sz_th' => array('width' => 156), # view-изображение (при проÑмотре) 'photo_sz_view' => array('width' => 600), # большое изображение (при проÑмотре) 'photo_sz_zoom' => false, # наÑтройка: align (left-center-right) 'photo_align' => false, # наÑтройка: zoom 'photo_zoom' => false, # иÑпользовать ли WYSIWYG Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ð¸ 'photo_wysiwyg' => true, # фотогалереи: # th-изображение (при редактировании) - только квадрат! 'gallery_sz_th' => array('width' => 72, 'height' => 72), # большого изображение (при проÑмотре) 'gallery_sz_view' => array('width' => 600, 'height' => 300), # дополнительные необходимые размеры изображений, формат: array(ключ=>array(),...) 'gallery_sz_extra' => array(), # макÑимально допуÑтимое кол-во фотографий в фотогалерее (0 - без ограничениÑ) 'gallery_photos_limit' => 0, # видео: # ширина видео-блока 'video_width' => 480, # выÑота видео-блока 'video_height' => 385, ) */ } /** * Формирование Ñтраницы Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ * @param array|string $mData данные публикатора * @param int $nRecordID ID запиÑи * @param string $sFieldName Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ñ, например 'content' * @param string $sJSObjectName Ð¸Ð¼Ñ js-переменной (Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ js-объекта возвращаемого bffPublicator.init) * @param array|bool $mControls доÑтупные дейÑтвиÑ; варианты: [self::blockType, ...] или FALSE (берем из наÑтроек) * @param bool $bDebug true - Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð² debug-режиме * @return string HTML */ public function form($mData, $nRecordID, $sFieldName, $sJSObjectName = '', $mControls = false, $bDebug = false) { } /** * Формирование Ñтраницы проÑмотра * @param array|string $aData данные публикатора * @param int $nRecordID ID запиÑи * @param string|bool $sTemplate шаблон * @param string|bool $sTemplateDir путь к директории шаблона * @param array $aExtra доп. данные * @return string HTML */ public function view($aData, $nRecordID, $sTemplate = false, $sTemplateDir = false, $aExtra = array()) { } /** * Обработчик ajax-запроÑов */ public function ajax() { } /** * Подготовка данных перед Ñохранением (при добавлении / редактировании) * @param array $aData данные публикатора * @param int $nRecordID ID запиÑи * @return array */ public function dataPrepare($aData, $nRecordID) { } /** * Обновление данных перед Ñохранением * ВыполнÑем при добавлении Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ½Ð¾Ñа загруженных изображений из временной директории в поÑтоÑнную * @param array $aData данные публикатора * @param int $nRecordID ID запиÑи * @return void */ public function dataUpdate($aData, $nRecordID) { } /** * Удаление данных * @param array|string $aData данные публикатора * @param int $nRecordID ID запиÑи * @return void */ public function dataDelete($aData, $nRecordID) { } /** * Получение данных о видео блоках * @param array $aData данные публикатора * @return array */ public function dataVideo($aData) { } /** * Проверка необходимоÑти обработки внутренного ajax-запроÑа публикатора * @return void */ public function checkRequest() { } /** * ВыполнÑем деÑериализацию данных Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¾Ð¹ корректноÑти Ñериализации * @param string|array $mData данные * @return array|mixed */ public function unserialize($mData) { } }