Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/theme_files/theme_file_eh.php
Show First 20 Lines • Show All 57 Lines • ▼ Show 20 Line(s) | |||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnAfterItemLoad(kEvent $event) | protected function OnAfterItemLoad(kEvent $event) | ||||
{ | { | ||||
parent::OnAfterItemLoad($event); | parent::OnAfterItemLoad($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$filename = $this->_getTemplatePath($object); | $filename = $this->_getTemplatePath($object); | ||||
if ( file_exists($filename) ) { | if ( file_exists($filename) ) { | ||||
$object->SetDBField('FileContents', file_get_contents($filename)); | $object->SetDBField('FileContents', file_get_contents($filename)); | ||||
} | } | ||||
else { | else { | ||||
$object->SetError('FileContents', 'template_file_missing', 'la_error_TemplateFileMissing'); | $object->SetError('FileContents', 'template_file_missing', 'la_error_TemplateFileMissing'); | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Trim contents of edited template | * Trim contents of edited template | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnBeforeItemUpdate(kEvent $event) | protected function OnBeforeItemUpdate(kEvent $event) | ||||
{ | { | ||||
parent::OnBeforeItemUpdate($event); | parent::OnBeforeItemUpdate($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$file_data = $object->GetDBField('FileContents'); | $file_data = $object->GetDBField('FileContents'); | ||||
$file_data = str_replace("\r\n", "\n", $file_data); | $file_data = str_replace("\r\n", "\n", $file_data); | ||||
$file_data = str_replace("\r", "\n", $file_data); | $file_data = str_replace("\r", "\n", $file_data); | ||||
$object->SetDBField('FileContents', trim($file_data)); | $object->SetDBField('FileContents', trim($file_data)); | ||||
} | } | ||||
/** | /** | ||||
* Saves updated content to template | * Saves updated content to template | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnAfterItemUpdate(kEvent $event) | protected function OnAfterItemUpdate(kEvent $event) | ||||
{ | { | ||||
parent::OnAfterItemUpdate($event); | parent::OnAfterItemUpdate($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$filename = $this->_getTemplatePath($object); | $filename = $this->_getTemplatePath($object); | ||||
if ( file_exists($filename) && is_writable($filename) ) { | if ( file_exists($filename) && is_writable($filename) ) { | ||||
$fp = fopen($filename, 'w'); | $fp = fopen($filename, 'w'); | ||||
fwrite($fp, $object->GetDBField('FileContents')); | fwrite($fp, $object->GetDBField('FileContents')); | ||||
fclose($fp); | fclose($fp); | ||||
/** @var kThemesHelper $themes_helper */ | |||||
$themes_helper = $this->Application->recallObject('ThemesHelper'); | $themes_helper = $this->Application->recallObject('ThemesHelper'); | ||||
/* @var $themes_helper kThemesHelper */ | |||||
$meta_info = $themes_helper->parseTemplateMetaInfo($filename); | $meta_info = $themes_helper->parseTemplateMetaInfo($filename); | ||||
$file_description = array_key_exists('desc', $meta_info) ? $meta_info['desc'] : ''; | $file_description = array_key_exists('desc', $meta_info) ? $meta_info['desc'] : ''; | ||||
$object->SetDBField('Description', $file_description); | $object->SetDBField('Description', $file_description); | ||||
$object->SetDBField('FileMetaInfo', serialize($meta_info)); | $object->SetDBField('FileMetaInfo', serialize($meta_info)); | ||||
$object->Update(); | $object->Update(); | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Returns full path to template file | * Returns full path to template file | ||||
* | * | ||||
* @param kDBItem $object | * @param kDBItem $object | ||||
* @return string | * @return string | ||||
*/ | */ | ||||
function _getTemplatePath(&$object) | function _getTemplatePath(&$object) | ||||
{ | { | ||||
/** @var kDBItem $theme */ | |||||
$theme = $this->Application->recallObject('theme'); | $theme = $this->Application->recallObject('theme'); | ||||
/* @var $theme kDBItem */ | |||||
$path = FULL_PATH . '/themes/' . $theme->GetDBField('Name'); | $path = FULL_PATH . '/themes/' . $theme->GetDBField('Name'); | ||||
$path .= $object->GetDBField('FilePath') . '/' . $object->GetDBField('FileName'); | $path .= $object->GetDBField('FilePath') . '/' . $object->GetDBField('FileName'); | ||||
return $path; | return $path; | ||||
} | } | ||||
/** | /** | ||||
* Loads block data based on it's name in request | * Loads block data based on it's name in request | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function OnLoadBlock($event) | function OnLoadBlock($event) | ||||
{ | { | ||||
parent::OnNew($event); | parent::OnNew($event); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
/** @var TemplateHelper $template_helper */ | |||||
$template_helper = $this->Application->recallObject('TemplateHelper'); | $template_helper = $this->Application->recallObject('TemplateHelper'); | ||||
/* @var $template_helper TemplateHelper */ | |||||
$template_helper->InitHelper($object); | $template_helper->InitHelper($object); | ||||
$object->SetDBField('FileName', $template_helper->blockInfo('template_file')); | $object->SetDBField('FileName', $template_helper->blockInfo('template_file')); | ||||
$object->SetDBField('BlockPosition', $template_helper->blockInfo('start_pos') . ' - ' . $template_helper->blockInfo('end_pos')); | $object->SetDBField('BlockPosition', $template_helper->blockInfo('start_pos') . ' - ' . $template_helper->blockInfo('end_pos')); | ||||
$object->SetDBField('FileContents', $template_helper->blockInfo('content')); | $object->SetDBField('FileContents', $template_helper->blockInfo('content')); | ||||
} | } | ||||
/** | /** | ||||
* Saves changed template block | * Saves changed template block | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function OnSaveBlock($event) | function OnSaveBlock($event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject( Array('skip_autoload' => true) ); | $object = $event->getObject( Array('skip_autoload' => true) ); | ||||
/* @var $object kDBItem */ | |||||
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); | $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); | ||||
if ($items_info) { | if ($items_info) { | ||||
list ($id, $field_values) = each($items_info); | list ($id, $field_values) = each($items_info); | ||||
$object->setID($id); | $object->setID($id); | ||||
$object->SetFieldsFromHash($field_values); | $object->SetFieldsFromHash($field_values); | ||||
$event->setEventParam('form_data', $field_values); | $event->setEventParam('form_data', $field_values); | ||||
} | } | ||||
$status = $object->Validate(); | $status = $object->Validate(); | ||||
/** @var TemplateHelper $template_helper */ | |||||
$template_helper = $this->Application->recallObject('TemplateHelper'); | $template_helper = $this->Application->recallObject('TemplateHelper'); | ||||
/* @var $template_helper TemplateHelper */ | |||||
$template_helper->InitHelper($object); | $template_helper->InitHelper($object); | ||||
$status = $status && $template_helper->saveBlock($object); | $status = $status && $template_helper->saveBlock($object); | ||||
if ($status) { | if ($status) { | ||||
$event->SetRedirectParam('opener', 'u'); | $event->SetRedirectParam('opener', 'u'); | ||||
} | } | ||||
Show All 11 Lines | |||||
{ | { | ||||
$event->status = kEvent::erSTOP; | $event->status = kEvent::erSTOP; | ||||
if (($this->Application->GetVar('ajax') != 'yes') || (EDITING_MODE != EDITING_MODE_DESIGN)) { | if (($this->Application->GetVar('ajax') != 'yes') || (EDITING_MODE != EDITING_MODE_DESIGN)) { | ||||
return ; | return ; | ||||
} | } | ||||
$target_order = $this->Application->GetVar('target_order'); | $target_order = $this->Application->GetVar('target_order'); | ||||
/** @var TemplateHelper $template_helper */ | |||||
$template_helper = $this->Application->recallObject('TemplateHelper'); | $template_helper = $this->Application->recallObject('TemplateHelper'); | ||||
/* @var $template_helper TemplateHelper */ | |||||
if ($template_helper->moveTemplateElements($target_order)) { | if ($template_helper->moveTemplateElements($target_order)) { | ||||
echo 'OK'; | echo 'OK'; | ||||
return ; | return ; | ||||
} | } | ||||
echo 'FAILED'; | echo 'FAILED'; | ||||
} | } | ||||
} | } |