Index: branches/5.2.x/core/units/selectors/selectors_event_handler.php =================================================================== diff -u -N -r14244 -r14628 --- branches/5.2.x/core/units/selectors/selectors_event_handler.php (.../selectors_event_handler.php) (revision 14244) +++ branches/5.2.x/core/units/selectors/selectors_event_handler.php (.../selectors_event_handler.php) (revision 14628) @@ -1,6 +1,6 @@ Init($event->Prefix, '-item'); + $object =& $event->getObject(); + /* @var $object kDBItem */ $title_field = 'SelectorName'; $new_name = $object->GetDBField($title_field); $original_checked = false; $foreign_key = $event->getEventParam('foreign_key'); // in case if whole stylesheet is cloned - if($foreign_key === false) $foreign_key = $object->GetDBField('StylesheetId'); // in case if selector is copied ifself + if ( $foreign_key === false ) { + $foreign_key = $object->GetDBField('StylesheetId'); + } // in case if selector is copied ifself do { if ( preg_match('/(.*)-([\d]+)/', $new_name, $regs) ) { - $new_name = $regs[1].'-'.($regs[2]+1); + $new_name = $regs[1] . '-' . ($regs[2] + 1); } - elseif ($original_checked) { - $new_name = $new_name.'-1'; + elseif ( $original_checked ) { + $new_name = $new_name . '-1'; } // if we are cloning in temp table this will look for names in temp table, // since object' TableName contains correct TableName (for temp also!) // if we are cloning live - look in live - $query = ' SELECT '.$title_field.' - FROM '.$object->TableName.' - WHERE '.$title_field.' = '.$this->Conn->qstr($new_name).' AND StylesheetId = '.$foreign_key; + $query = ' SELECT ' . $title_field . ' + FROM ' . $object->TableName . ' + WHERE ' . $title_field . ' = ' . $this->Conn->qstr($new_name) . ' AND StylesheetId = ' . $foreign_key; $res = $this->Conn->GetOne($query); @@ -79,20 +87,24 @@ }*/ $original_checked = true; - } while ($res !== false); + } while ( $res !== false ); $object->SetDBField($title_field, $new_name); } /** * Show base styles or block styles * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); - switch ($event->Special) - { + /* @var $object kDBList */ + + switch ( $event->Special ) { case 'base': $object->addFilter('type_filter', '%1$s.Type = 1'); break; @@ -104,22 +116,30 @@ } /** - * Enter description here... + * Occurs before updating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $this->SerializeSelectorData($event); } /** - * Enter description here... + * Occurs before creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $this->SerializeSelectorData($event); } @@ -134,17 +154,21 @@ } /** - * Enter description here... + * Occurs after creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { + parent::OnAfterItemCreate($event); + $this->UnserializeSelectorData($event); } /** - * Get's special of main item for linking with subitem + * Gets special of main item for linking with sub-item * * @param kEvent $event * @return string @@ -173,19 +197,22 @@ function SaveChanges(&$event) { $object =& $event->getObject( Array('skip_autoload' => true) ); + /* @var $object kDBItem */ - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - if($items_info) - { - list($id,$field_values) = each($items_info); - if ($id == 0) { - $parent_id = getArrayValue($field_values,'ParentId'); - if($parent_id) $object->Load($parent_id); + $items_info = $this->Application->GetVar($event->getPrefixSpecial(true)); + if ( $items_info ) { + list($id, $field_values) = each($items_info); + + if ( $id == 0 ) { + $parent_id = getArrayValue($field_values, 'ParentId'); + if ( $parent_id ) { + $object->Load($parent_id); + } $object->SetFieldsFromHash($field_values); $object->Create(); - $this->Application->SetVar($event->getPrefixSpecial().'_id', $object->GetID() ); + $this->Application->SetVar($event->getPrefixSpecial() . '_id', $object->GetID()); } else { $object->Load($id); @@ -214,20 +241,26 @@ * Extract styles * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { + parent::OnAfterItemLoad($event); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $selector_data = $object->GetDBField('SelectorData'); - if($selector_data) - { + + if ( $selector_data ) { $selector_data = unserialize($selector_data); $object->SetDBField('SelectorData', $selector_data); } - else - { - $selector_data = Array(); + else { + $selector_data = Array (); } + $this->AddParentProperties($event, $selector_data); } @@ -239,12 +272,18 @@ function SerializeSelectorData(&$event) { $object =& $event->getObject(); + /* @var $object kDBItem */ + $selector_data = $object->GetDBField('SelectorData'); - if(!$selector_data) $selector_data = Array(); + if ( !$selector_data ) { + $selector_data = Array (); + } $selector_data = $this->RemoveParentProperties($event, $selector_data); - if( !kUtil::IsSerialized($selector_data) ) $selector_data = serialize($selector_data); + if ( !kUtil::IsSerialized($selector_data) ) { + $selector_data = serialize($selector_data); + } $object->SetDBField('SelectorData', $selector_data); } @@ -257,10 +296,18 @@ function UnserializeSelectorData(&$event) { $object =& $event->getObject(); + /* @var $object kDBItem */ + $selector_data = $object->GetDBField('SelectorData'); - if(!$selector_data) $selector_data = Array(); - if( kUtil::IsSerialized($selector_data) ) $selector_data = unserialize($selector_data); + if ( !$selector_data ) { + $selector_data = Array (); + } + + if ( kUtil::IsSerialized($selector_data) ) { + $selector_data = unserialize($selector_data); + } + $selector_data = $this->AddParentProperties($event, $selector_data); $object->SetDBField('SelectorData', $selector_data); @@ -291,33 +338,37 @@ function RemoveParentProperties(&$event, $selector_data) { $object =& $event->getObject(); + /* @var $object kDBItem */ + $parent_id = $object->GetDBField('ParentId'); - if($parent_id) - { - $sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id; + + if ( $parent_id ) { + $sql = 'SELECT SelectorData + FROM ' . $object->TableName . ' + WHERE ' . $object->IDField . ' = ' . $parent_id; $base_selector_data = $this->Conn->GetOne($sql); - if( kUtil::IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data); + if ( kUtil::IsSerialized($base_selector_data) ) { + $base_selector_data = unserialize($base_selector_data); + } - foreach($selector_data as $prop_name => $prop_value) - { - if( !$prop_value || getArrayValue($base_selector_data,$prop_name) == $prop_value ) - { + foreach ($selector_data as $prop_name => $prop_value) { + if ( !$prop_value || getArrayValue($base_selector_data, $prop_name) == $prop_value ) { unset($selector_data[$prop_name]); } } - $object->SetDBField('SelectorData', $selector_data); - return $selector_data; } - else - { - foreach($selector_data as $prop_name => $prop_value) - { - if(!$prop_value) unset($selector_data[$prop_name]); + else { + foreach ($selector_data as $prop_name => $prop_value) { + if ( !$prop_value ) { + unset($selector_data[$prop_name]); + } } - $object->SetDBField('SelectorData', $selector_data); - return $selector_data; } + + $object->SetDBField('SelectorData', $selector_data); + + return $selector_data; } /** @@ -328,20 +379,26 @@ function AddParentProperties(&$event, $selector_data) { $object =& $event->getObject(); + /* @var $object kDBItem */ + $parent_id = $object->GetDBField('ParentId'); - if($parent_id) - { - $sql = 'SELECT SelectorData FROM '.$object->TableName.' WHERE '.$object->IDField.' = '.$parent_id; + if ( $parent_id ) { + $sql = 'SELECT SelectorData + FROM ' . $object->TableName . ' + WHERE ' . $object->IDField . ' = ' . $parent_id; $base_selector_data = $this->Conn->GetOne($sql); - if( kUtil::IsSerialized($base_selector_data) ) $base_selector_data = unserialize($base_selector_data); + if ( kUtil::IsSerialized($base_selector_data) ) { + $base_selector_data = unserialize($base_selector_data); + } - $selector_data = kUtil::array_merge_recursive($base_selector_data,$selector_data); - + $selector_data = kUtil::array_merge_recursive($base_selector_data, $selector_data); $object->SetDBField('SelectorData', $selector_data); + return $selector_data; } - return $selector_data; + + return Array (); } /** @@ -352,10 +409,12 @@ function OnResetToBase(&$event) { $object =& $event->getObject(); + /* @var $object SelectorsItem */ + $object->SetFieldsFromHash( $this->getSubmittedFields($event) ); $object->ResetStyle(); - $event->SetRedirectParam('pass', 'all,'.$event->getPrefixSpecial()); + $event->SetRedirectParam('pass', 'all,' . $event->getPrefixSpecial()); } /** @@ -366,14 +425,14 @@ function OnMassResetToBase(&$event) { $object =& $event->getObject( Array('skip_autoload' => true) ); + /* @var $object SelectorsItem */ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - if($items_info) - { - foreach($items_info as $id => $field_values) - { + + if ( $items_info ) { + foreach ($items_info as $id => $field_values) { $object->Load($id); - $object->ResetStyle(); + $object->ResetStyle(); } } }