Source for file TextBlock.class.php
Documentation is available at TextBlock.class.php
* Содержит класс TextBlock.
* @copyright Energine 2006
//require_once('core/modules/share/components/DataSet.class.php');
* Компонент менеджера изображений
* Компонент библиотеки изображений
* Компонент библиотеки файлов
* Идентификатор текстового блока
* Содержимое текстового блока
* Находится ли страница в режиме редактирования содержимого
public function __construct($name, $module, Document $document, array $params = null) {
parent::__construct($name, $module, $document, $params);
* @todo Не забыть убрать $_REQUEST или переделать чтобы для режима отладки -_REQUEST а так - _POST
* Возвращает идентификатор текстового блока по переданному идентификатору документа и порядковому номеру
* @param int идентификатор документа
* @param string идентификатор текстового блока
$smapID = (empty($smapID))? null: $smapID;
$res = $this->dbh->select($this->tableName, array('tb_id'), array('smap_id'=> $smapID, 'tb_num'=> $num));
protected function main() {
* @todo Тут вообще получается ограничение, что num лейаутного текстового блока не должен быть цифрой
$res = $this->dbh->selectRequest(
'SELECT st.tb_id as id, stt.tb_content as content '.
'FROM `share_textblocks` st '.
'LEFT JOIN share_textblocks_translation stt ON st.tb_id = stt.tb_id and lang_id = %s '.
'WHERE smap_id '. (($docID)? ' = '. $docID: ' IS NULL '). ' AND tb_num = %s ',
//Если мы находимся в режиме редактирования содержимого
//Отключаем тулбар страницы если есть
if ($component = $this->document->componentManager->getComponentByName('pageToolBar')) {
//выставляем свойство указывающее на то что блок находится в режиме редактирования
* Переопределен метод создания объекта мета данных
* @return DataDescription
$dataDescr->addFieldDescription($fieldDescr);
* Возвращает содержимое текстового блока
* Возвращает идентификатор текстового блока
protected function getID() {
* Создание панели инструментов
protected function save() {
$this->dbh->beginTransaction();
if (!isset ($_POST['data']) && !isset ($_POST['num'])) {
$docID = (isset ($_POST['docID']))? $_POST['docID']: '';
//пытаемся определить есть ли у нас запись о содержимом блока в основной таблице
//$result = $_POST['data'];
$tbID = $this->dbh->modify(QAL::INSERT, 'share_textblocks', array('smap_id'=> $docID, 'tb_num'=> $_POST['num']));
$tableName = $this->tableName. '_translation';
$res = $this->dbh->select($tableName, array('tb_id'), array('tb_id'=> $tbID, 'lang_id'=> $langID));
//если есть запись в таблице переводов - апдейтим
$res = $this->dbh->modify(QAL::UPDATE, $tableName, array('tb_content'=> $result), array('tb_id'=> $tbID, 'lang_id'=> $langID));
$res = $this->dbh->modify(QAL::INSERT, $tableName, array('tb_content'=> $result, 'tb_id'=> $tbID, 'lang_id'=> $langID));
$result = $e->getMessage();
$this->response->setHeader('Content-Type', 'application/xml; charset=utf-8');
$this->source = $this->document->componentManager->createComponent('textblocksource', 'share', 'TextBlockSource', null);
//$this->source->getAction();
* Выводит компонент менеджер изображений
$this->imageManager = $this->document->componentManager->createComponent('imagemanager', 'image', 'ImageManager', null);
//$this->imageManager->getAction();
* Выводит компонент библиотека изображений
$this->imageLibrary = $this->document->componentManager->createComponent('imagelibrary', 'image', 'ImageLibrary', null);
//$this->imageLibrary->getAction();
* Выводит компонент библиотеки файлов
$this->fileLibrary = $this->document->componentManager->createComponent('filelibrary', 'share', 'FileLibrary', null, false);
//$this->fileLibrary->getAction();
* Для метода вывода редактора изображений вызывает построитель редактора изоборажений во всех других случаях - свой
public function build() {
$result = parent::build();
|