Changeset View
Changeset View
Standalone View
Standalone View
branches/5.2.x/core/units/selectors/selectors_event_handler.php
Show First 20 Lines • Show All 46 Lines • ▼ Show 20 Line(s) | |||||
* @access protected | * @access protected | ||||
*/ | */ | ||||
protected function OnBeforeClone(kEvent $event) | protected function OnBeforeClone(kEvent $event) | ||||
{ | { | ||||
parent::OnBeforeClone($event); | parent::OnBeforeClone($event); | ||||
$event->Init($event->Prefix, '-item'); | $event->Init($event->Prefix, '-item'); | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$title_field = 'SelectorName'; | $title_field = 'SelectorName'; | ||||
$new_name = $object->GetDBField($title_field); | $new_name = $object->GetDBField($title_field); | ||||
$original_checked = false; | $original_checked = false; | ||||
$foreign_key = $event->getEventParam('foreign_key'); // in case if whole stylesheet is cloned | $foreign_key = $event->getEventParam('foreign_key'); // in case if whole stylesheet is cloned | ||||
if ( $foreign_key === false ) { | if ( $foreign_key === false ) { | ||||
$foreign_key = $object->GetDBField('StylesheetId'); | $foreign_key = $object->GetDBField('StylesheetId'); | ||||
Show All 35 Lines | |||||
* @return void | * @return void | ||||
* @access protected | * @access protected | ||||
* @see kDBEventHandler::OnListBuild() | * @see kDBEventHandler::OnListBuild() | ||||
*/ | */ | ||||
protected function SetCustomQuery(kEvent $event) | protected function SetCustomQuery(kEvent $event) | ||||
{ | { | ||||
parent::SetCustomQuery($event); | parent::SetCustomQuery($event); | ||||
/** @var kDBList $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBList */ | |||||
switch ($event->Special) { | switch ($event->Special) { | ||||
case 'base': | case 'base': | ||||
$object->addFilter('type_filter', '%1$s.Type = 1'); | $object->addFilter('type_filter', '%1$s.Type = 1'); | ||||
break; | break; | ||||
case 'block': | case 'block': | ||||
$object->addFilter('type_filter', '%1$s.Type = 2'); | $object->addFilter('type_filter', '%1$s.Type = 2'); | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Line(s) | |||||
/** | /** | ||||
* Saves Changes to Item | * Saves Changes to Item | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function SaveChanges($event) | function SaveChanges($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); | ||||
if ( $id == 0 ) { | if ( $id == 0 ) { | ||||
$parent_id = getArrayValue($field_values, 'ParentId'); | $parent_id = getArrayValue($field_values, 'ParentId'); | ||||
if ( $parent_id ) { | if ( $parent_id ) { | ||||
Show All 37 Lines | |||||
* @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 */ | |||||
$selector_data = $object->GetDBField('SelectorData'); | $selector_data = $object->GetDBField('SelectorData'); | ||||
if ( $selector_data ) { | if ( $selector_data ) { | ||||
$selector_data = unserialize($selector_data); | $selector_data = unserialize($selector_data); | ||||
$object->SetDBField('SelectorData', $selector_data); | $object->SetDBField('SelectorData', $selector_data); | ||||
} | } | ||||
else { | else { | ||||
$selector_data = Array (); | $selector_data = Array (); | ||||
} | } | ||||
$this->AddParentProperties($event, $selector_data); | $this->AddParentProperties($event, $selector_data); | ||||
} | } | ||||
/** | /** | ||||
* Serialize item before saving to db | * Serialize item before saving to db | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function SerializeSelectorData($event) | function SerializeSelectorData($event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$selector_data = $object->GetDBField('SelectorData'); | $selector_data = $object->GetDBField('SelectorData'); | ||||
if ( !$selector_data ) { | if ( !$selector_data ) { | ||||
$selector_data = Array (); | $selector_data = Array (); | ||||
} | } | ||||
$selector_data = $this->RemoveParentProperties($event, $selector_data); | $selector_data = $this->RemoveParentProperties($event, $selector_data); | ||||
if ( !kUtil::IsSerialized($selector_data) ) { | if ( !kUtil::IsSerialized($selector_data) ) { | ||||
$selector_data = serialize($selector_data); | $selector_data = serialize($selector_data); | ||||
} | } | ||||
$object->SetDBField('SelectorData', $selector_data); | $object->SetDBField('SelectorData', $selector_data); | ||||
} | } | ||||
/** | /** | ||||
* Unserialize data back when update was made | * Unserialize data back when update was made | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function UnserializeSelectorData($event) | function UnserializeSelectorData($event) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$selector_data = $object->GetDBField('SelectorData'); | $selector_data = $object->GetDBField('SelectorData'); | ||||
if ( !$selector_data ) { | if ( !$selector_data ) { | ||||
$selector_data = Array (); | $selector_data = Array (); | ||||
} | } | ||||
if ( kUtil::IsSerialized($selector_data) ) { | if ( kUtil::IsSerialized($selector_data) ) { | ||||
Show All 26 Lines | |||||
* Remove properties of parent style that match by value from style | * Remove properties of parent style that match by value from style | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @param Array $selector_data | * @param Array $selector_data | ||||
* @return Array | * @return Array | ||||
*/ | */ | ||||
function RemoveParentProperties($event, $selector_data) | function RemoveParentProperties($event, $selector_data) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$parent_id = $object->GetDBField('ParentId'); | $parent_id = $object->GetDBField('ParentId'); | ||||
if ( $parent_id ) { | if ( $parent_id ) { | ||||
$sql = 'SELECT SelectorData | $sql = 'SELECT SelectorData | ||||
FROM ' . $object->TableName . ' | FROM ' . $object->TableName . ' | ||||
WHERE ' . $object->IDField . ' = ' . $parent_id; | WHERE ' . $object->IDField . ' = ' . $parent_id; | ||||
$base_selector_data = $this->Conn->GetOne($sql); | $base_selector_data = $this->Conn->GetOne($sql); | ||||
Show All 25 Lines | |||||
* Add back properties from parent style, that match this style property values | * Add back properties from parent style, that match this style property values | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
* @param Array $selector_data | * @param Array $selector_data | ||||
* @return Array | * @return Array | ||||
*/ | */ | ||||
function AddParentProperties($event, $selector_data) | function AddParentProperties($event, $selector_data) | ||||
{ | { | ||||
/** @var kDBItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object kDBItem */ | |||||
$parent_id = $object->GetDBField('ParentId'); | $parent_id = $object->GetDBField('ParentId'); | ||||
if ( $parent_id ) { | if ( $parent_id ) { | ||||
$sql = 'SELECT SelectorData | $sql = 'SELECT SelectorData | ||||
FROM ' . $object->TableName . ' | FROM ' . $object->TableName . ' | ||||
WHERE ' . $object->IDField . ' = ' . $parent_id; | WHERE ' . $object->IDField . ' = ' . $parent_id; | ||||
$base_selector_data = $this->Conn->GetOne($sql); | $base_selector_data = $this->Conn->GetOne($sql); | ||||
Show All 12 Lines | |||||
/** | /** | ||||
* Reset Style definition to base style -> no customizations | * Reset Style definition to base style -> no customizations | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function OnResetToBase($event) | function OnResetToBase($event) | ||||
{ | { | ||||
/** @var SelectorsItem $object */ | |||||
$object = $event->getObject(); | $object = $event->getObject(); | ||||
/* @var $object SelectorsItem */ | |||||
$field_values = $this->getSubmittedFields($event); | $field_values = $this->getSubmittedFields($event); | ||||
$object->SetFieldsFromHash($field_values); | $object->SetFieldsFromHash($field_values); | ||||
$event->setEventParam('form_data', $field_values); | $event->setEventParam('form_data', $field_values); | ||||
$object->ResetStyle(); | $object->ResetStyle(); | ||||
$event->SetRedirectParam('pass', 'all,' . $event->getPrefixSpecial()); | $event->SetRedirectParam('pass', 'all,' . $event->getPrefixSpecial()); | ||||
} | } | ||||
/** | /** | ||||
* Resets selected styles properties to values of their base classes | * Resets selected styles properties to values of their base classes | ||||
* | * | ||||
* @param kEvent $event | * @param kEvent $event | ||||
*/ | */ | ||||
function OnMassResetToBase($event) | function OnMassResetToBase($event) | ||||
{ | { | ||||
/** @var SelectorsItem $object */ | |||||
$object = $event->getObject( Array('skip_autoload' => true) ); | $object = $event->getObject( Array('skip_autoload' => true) ); | ||||
/* @var $object SelectorsItem */ | |||||
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); | $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); | ||||
if ( $items_info ) { | if ( $items_info ) { | ||||
foreach ($items_info as $id => $field_values) { | foreach ($items_info as $id => $field_values) { | ||||
$object->Load($id); | $object->Load($id); | ||||
$object->ResetStyle(); | $object->ResetStyle(); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } |