<?php
/**
* СодеÑÐ¶Ð¸Ñ ÐºÐ»Ð°ÑÑ TranslationEditor
*
* @package energine
* @author dr.Pavka
* @copyright ColoCall 2006
* @version $Id: LanguageEditor.class.php,v 1.7 2007/12/17 14:16:14 pavka Exp $
*/
//require_once('core/modules/share/components/Grid.class.php');
/**
* РедакÑÐ¾Ñ Ð¿ÐµÑеводов
*
* @package energine
* @subpackage share
*/
class LanguageEditor extends Grid {
/**
* ÐонÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа
*
* @return void
*/
public function __construct($name, $module, Document $document, array $params = null) {
parent::__construct($name, $module, $document, $params);
$this->setTableName('share_languages');
$this->setTitle($this->translate('TXT_LANGUAGE_EDITOR'));
$this->setOrderColumn('lang_order_num');
$this->setOrder(array('lang_order_num'=>QAL::ASC));
}
/**
* ÐеÑеопÑеделеннÑй меÑод
* ÐÐ»Ñ ÑоÑÐ¼Ñ ÑедакÑиÑованиÑ, еÑли ÑÐµÐºÐ±Ð¾ÐºÑ ÑзÑка по ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑмеÑен Ð´ÐµÐ»Ð°ÐµÑ ÐµÐ³Ð¾ неакÑивнÑм
*
* @return void
* @access public
*/
public function build() {
if ($this->getType() == self::COMPONENT_TYPE_FORM_ALTER ) {
//ÐÑли ÑÑо ÑзÑк по ÑмолÑÐ°Ð½Ð¸Ñ - делаем неакÑивнÑм
if ($this->getData()->getFieldByName('lang_default')->getRowData(0) === true) {
$this->getDataDescription()->getFieldDescriptionByName('lang_default')->setMode(FieldDescription::FIELD_MODE_READ);
}
}
return parent::build();
}
/**
* ÐеÑеопÑеделеннÑй меÑод ÑоÑ
ÑанениÑ
*
* @param array
* @return void
* @access public
*/
public function loadData() {
$result = parent::loadData();
if ($this->getAction() == 'save' && isset($result[0]['lang_default']) && $result[0]['lang_default'] !== '0') {
$this->dbh->modify(QAL::UPDATE, $this->getTableName(), array('lang_default'=>null));
}
return $result;
}
/**
* ÐеÑеопÑеделеннÑй ÑодиÑелÑÑкий меÑод
*
*
* @return boolean
* @access public
*/
public function deleteData($id) {
//еÑли Ð¼Ñ Ð¿ÑÑаемÑÑ ÑдалиÑÑ ÑекÑÑий ÑзÑк
//генеÑим оÑибкÑ
if ($this->document->getLang() == $id || $id == Language::getInstance()->getDefault()) {
throw new SystemException('ERR_CANT_DELETE', SystemException::ERR_CRITICAL);
}
parent::deleteData($id);
}
/**
* ÐÑи добавлении нового ÑзÑка Ñоздаем задизейбленÑе ÑазделÑ
*
* @return mixed
* @access protected
*/
protected function saveData() {
$result = parent::saveData();
if ($this->saver->getMode() == QAL::INSERT) {
$ids = inverseDBResult($this->dbh->select('share_sitemap', 'smap_id'));
foreach ($ids['smap_id'] as $smapID) {
$this->dbh->modify(QAL::INSERT, 'share_sitemap_translation',array('smap_id'=>$smapID, 'lang_id'=>$result, 'smap_is_disabled'=>1));
}
}
return $result;
}
}