Index: custom/units/sections/articles/e_article_eh.php =================================================================== --- custom/units/sections/articles/e_article_eh.php (revision 14590) +++ custom/units/sections/articles/e_article_eh.php (working copy) @@ -28,11 +28,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -66,11 +68,14 @@ } /** - * Sets custom query for the list + * Filters out archived articles * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -89,11 +94,13 @@ } /** - * Before new item created + * Create missing excerpt * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -101,11 +108,13 @@ } /** - * Before existing item updated + * Create missing excerpt * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -136,13 +145,14 @@ } - /** - * After new item created + * Sets values for import process * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -174,11 +184,14 @@ } /** - * After item loaded + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/sections/categories/e_category_eh.php =================================================================== --- custom/units/sections/categories/e_category_eh.php (revision 14590) +++ custom/units/sections/categories/e_category_eh.php (working copy) @@ -28,11 +28,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -66,11 +68,14 @@ } /** - * Sets custom query for the list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -89,11 +94,13 @@ } /** - * Before new item created + * Sets correct status for new categories created on front-end * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -101,11 +108,13 @@ } /** - * Before existing item updated + * Sets correct status for new categories created on front-end * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -136,13 +145,14 @@ } - /** - * After new item created + * Occurs after creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -174,11 +184,13 @@ } /** - * After item loaded + * Removes this item and it's children (recursive) from structure dropdown * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/sections/links/e_link_eh.php =================================================================== --- custom/units/sections/links/e_link_eh.php (revision 14590) +++ custom/units/sections/links/e_link_eh.php (working copy) @@ -28,11 +28,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -66,11 +68,14 @@ } /** - * Sets custom query for the list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -89,11 +94,13 @@ } /** - * Before new item created + * Makes reciprocal check on link, when it is created * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -101,11 +108,13 @@ } /** - * Before existing item updated + * Makes reciprocal check on link, when it is updated * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -138,11 +147,13 @@ /** - * After new item created + * Sets values for import process * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -174,11 +185,14 @@ } /** - * After item loaded + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/sections/products/e_product_eh.php =================================================================== --- custom/units/sections/products/e_product_eh.php (revision 14590) +++ custom/units/sections/products/e_product_eh.php (working copy) @@ -28,11 +28,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -67,11 +69,14 @@ } /** - * Sets custom query for the list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -90,11 +95,13 @@ } /** - * Before new item created + * Sets default processing data for subscriptions * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -102,11 +109,13 @@ } /** - * Before existing item updated + * Moves item to preferred category, updates item hits * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -137,13 +146,14 @@ } - /** - * After new item created + * Set new price to ProductsPricing * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -175,11 +185,14 @@ } /** - * After item loaded + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/sections/reviews/e_review_eh.php =================================================================== --- custom/units/sections/reviews/e_review_eh.php (revision 14590) +++ custom/units/sections/reviews/e_review_eh.php (working copy) @@ -26,13 +26,14 @@ // $this->Application->setUnitOption($event->Prefix, 'CalculatedFields', $calculated_fields); } - /** - * Before new item created + * Prefills all fields on front-end * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -40,11 +41,13 @@ } /** - * Before existing item updated + * Sets correct rating value * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -77,11 +80,13 @@ /** - * After new item created + * Updates item review counter * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -113,11 +118,14 @@ } /** - * After item loaded + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/sections/users/e_user_eh.php =================================================================== --- custom/units/sections/users/e_user_eh.php (revision 14590) +++ custom/units/sections/users/e_user_eh.php (working copy) @@ -28,11 +28,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -66,11 +68,14 @@ } /** - * Sets custom query for the list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -89,11 +94,13 @@ } /** - * Before new item created + * Set's new unique resource id to user * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -101,11 +108,13 @@ } /** - * Before existing item updated + * Checks state against country * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -138,11 +147,13 @@ /** - * After new item created + * Redirects user after successful registration to confirmation template (on Front only) * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -174,11 +185,13 @@ } /** - * After item loaded + * Loads user images * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: custom/units/widgets/widget_eh.php =================================================================== --- custom/units/widgets/widget_eh.php (revision 14590) +++ custom/units/widgets/widget_eh.php (working copy) @@ -25,11 +25,13 @@ } /** - * Permission exceptions + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $skip_permissions_check_events = Array ( 'OnAnotherCustomEvent', @@ -55,11 +57,14 @@ } /** - * Set custom query for the list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -73,22 +78,26 @@ } /** - * Before new item created + * Occurs before creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); } /** - * Before existing item updated + * Occurs before updating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -120,11 +129,13 @@ /** - * After new item created + * Occurs after creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -156,11 +167,13 @@ } /** - * After item loaded + * Loads user images * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); Index: in-auction/units/category_listing/category_listing_eh.php =================================================================== --- in-auction/units/category_listing/category_listing_eh.php (revision 14590) +++ in-auction/units/category_listing/category_listing_eh.php (working copy) @@ -26,11 +26,13 @@ } /** - * Changes permission section to one from REQUEST, not from config + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { // $sql = 'SELECT Prefix // FROM '.TABLE_PREFIX.'ItemTypes @@ -124,15 +126,31 @@ } } - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); + $this->ValidateCategories($event); } - function OnBeforeItemCreate(&$event) + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); + $this->ValidateCategories($event); } Index: in-auction/units/error_log/error_log_eh.php =================================================================== --- in-auction/units/error_log/error_log_eh.php (revision 14590) +++ in-auction/units/error_log/error_log_eh.php (working copy) @@ -26,13 +26,15 @@ $this->permMapping = array_merge($this->permMapping, $permissions); } - /** * Select products by clipboard instead of listings * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); Index: in-auction/units/listing/listing_eh.php =================================================================== --- in-auction/units/listing/listing_eh.php (revision 14590) +++ in-auction/units/listing/listing_eh.php (working copy) @@ -87,8 +87,11 @@ * Select products by clipboard instead of listings * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -301,8 +304,11 @@ * Apply custom processing to item * * @param kEvent $event + * @param string $type + * @return void + * @access protected */ - function customProcessing(&$event, $type) + protected function customProcessing(&$event, $type) { if ($event->Name == 'OnMassDelete' && $type == 'before') { Index: in-auction/units/product_listing/product_listing_eh.php =================================================================== --- in-auction/units/product_listing/product_listing_eh.php (revision 14590) +++ in-auction/units/product_listing/product_listing_eh.php (working copy) @@ -26,13 +26,14 @@ $this->permMapping = array_merge($this->permMapping, $permissions); } - /** * Changes permission section to one from REQUEST, not from config * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { // $sql = 'SELECT Prefix // FROM '.TABLE_PREFIX.'ItemTypes @@ -150,16 +151,31 @@ } } - - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); + $this->ValidateCategories($event); } - function OnBeforeItemCreate(&$event) + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); + $this->ValidateCategories($event); } Index: in-auction/units/shipping/shipping_eh.php =================================================================== --- in-auction/units/shipping/shipping_eh.php (revision 14590) +++ in-auction/units/shipping/shipping_eh.php (working copy) @@ -32,8 +32,15 @@ $this->permMapping = array_merge($this->permMapping, $permissions); } - - function SetCustomQuery(&$event) + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); Index: in-bulletin/units/poll_comments/poll_comment_eh.php =================================================================== --- in-bulletin/units/poll_comments/poll_comment_eh.php (revision 14590) +++ in-bulletin/units/poll_comments/poll_comment_eh.php (working copy) @@ -45,8 +45,11 @@ * Applies special filter, that allows to select all commented from current poll * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { if ($this->Application->isAdminUser) { return ; @@ -59,48 +62,41 @@ } /** - * Before New PollComment created + * Occurs before creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { - if ($this->Application->isAdminUser) { + if ( $this->Application->isAdminUser ) { return ; } $object =& $event->getObject(); /* @var $object kDBItem */ - // get Poll info - $parent_prefix = $this->Application->getUnitOption($this->Prefix, 'ParentPrefix'); - if($parent_prefix) { - $main_object =& $this->Application->recallObject($parent_prefix.'.'.$special, null,Array('raise_warnings' => 0)); - /* @var $main_object kDBItem */ + $parent_info = $object->getLinkedInfo($event->Special); + $poll_id = $parent_info['ParentId']; - if (!$main_object->isLoaded()) { - $main_object =& $this->Application->recallObject($parent_prefix); - } - - $poll_id = $main_object->GetDBField($this->Application->getUnitOption($event->Prefix, 'ForeignKey')); - } - - if ($poll_id) { + if ( $poll_id ) { $spam_helper =& $this->Application->recallObject('SpamHelper'); /* @var $spam_helper SpamHelper */ $spam_helper->InitHelper($poll_id, 'PollComment', 0); // ResourceId used for SpamControl only - if ($spam_helper->InSpamControl()) { + if ( $spam_helper->InSpamControl() ) { $event->status = kEvent::erFAIL; $object->SetError('CommentText', 'too_frequent', 'lu_error_AlreadyCommented'); return ; } + + $object->SetDBField('PollId', $poll_id); // PollId } $object->SetDBField('CreatedById', $this->Application->RecallVar('user_id')); $object->SetDBField('UserIP', $_SERVER['REMOTE_ADDR']); - $object->SetDBField('PollId', $poll_id); // PollId $object->SetDBField('Status', STATUS_ACTIVE); parent::OnBeforeItemCreate($event); @@ -127,17 +123,22 @@ } /** - * Updates item review counter + * Protects against spam * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { - if (!$this->Application->isAdminUser) { + parent::OnAfterItemCreate($event); + + if ( !$this->Application->isAdminUser ) { $spam_helper =& $this->Application->recallObject('SpamHelper'); /* @var $spam_helper SpamHelper */ $object =& $event->getObject(); + /* @var $object kDBItem */ $comment_settings = 'poll_CommentDelay_Value:poll_CommentDelay_Interval'; $spam_helper->InitHelper($object->GetDBField('PollId'), 'PollComment', $comment_settings); Index: in-bulletin/units/polls/poll_eh.php =================================================================== --- in-bulletin/units/polls/poll_eh.php (revision 14590) +++ in-bulletin/units/polls/poll_eh.php (working copy) @@ -35,8 +35,11 @@ * Applies special filter, that allows to select all poll from given date range * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { if ($this->Application->isAdminUser) { return ; @@ -73,12 +76,16 @@ } /** - * Reset votes statistics for current poll + * Sets resource id * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ Index: in-bulletin/units/posts/post_eh.php =================================================================== --- in-bulletin/units/posts/post_eh.php (revision 14590) +++ in-bulletin/units/posts/post_eh.php (working copy) @@ -20,8 +20,10 @@ * Checks topic-post modify and delete permissions * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $events = Array('OnUpdate', 'OnDelete'); if (in_array($event->Name, $events)) { @@ -35,9 +37,13 @@ * Sets default values * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ @@ -56,8 +62,8 @@ $object->SetDBField('IPAddress', $_SERVER['REMOTE_ADDR']); $sql = 'SELECT Login - FROM '.TABLE_PREFIX.'PortalUser - WHERE PortalUserId = '.$user_id; + FROM ' . TABLE_PREFIX . 'PortalUser + WHERE PortalUserId = ' . $user_id; $object->SetDBField('PosterAlias', $this->Conn->GetOne($sql)); // set post options @@ -108,16 +114,20 @@ * Ensures, that only user with permission will update topic * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ $perm_status = $this->checkPostPermission($event, 'TOPIC.REPLY.MODIFY|TOPIC.REPLY.OWNER.MODIFY'); - if (!$perm_status) { + if ( !$perm_status ) { $event->status = kEvent::erFAIL; - return ; + return; } $post_helper =& $this->Application->recallObject('PostHelper'); @@ -164,9 +174,13 @@ * Sets post options to virtual fields * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { + parent::OnAfterItemLoad($event); + $object =& $event->getObject(); /* @var $object kDBItem */ @@ -175,6 +189,7 @@ $options_map = $post_helper->getOptionsMap(); $post_options = $object->GetDBField('Options'); + foreach ($options_map as $option_name => $field_name) { $option_value = $post_helper->GetPostOption($option_name, $post_options); $object->SetDBField($field_name, (int)$option_value); @@ -185,9 +200,13 @@ * Updates cached post counter in topic * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { + parent::OnAfterItemCreate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ @@ -206,17 +225,17 @@ $category_id = $this->Application->GetVar('m_cat_id'); $post_helper->PropagateCategoryField($category_id, 'Modified', $object->GetDBField('CreatedOn')); - if (!$this->Application->isAdmin && $main_object->GetDBField('Posts')) { + if ( !$this->Application->isAdmin && $main_object->GetDBField('Posts') ) { // don't send any email events when in admin OR new topic just added (0 posts) $user_notified = false; // don't send POST.ADD event twice to same user (in case if owner adds new post) - if ($main_object->GetDBField('NotifyOwnerOnChanges')) { + if ( $main_object->GetDBField('NotifyOwnerOnChanges') ) { $user_notified = $main_object->GetDBField('OwnerId'); $this->Application->EmailEventUser('POST.ADD', $user_notified); } $post_owner_id = $object->GetDBField('CreatedById'); - if (($post_owner_id > 0) && ($user_notified != $post_owner_id)) { + if ( ($post_owner_id > 0) && ($user_notified != $post_owner_id) ) { $this->Application->EmailEventUser('POST.ADD', $post_owner_id); } @@ -230,12 +249,14 @@ $posts_count = $post_helper->updatePostCount($topic_id, +1); $main_object->SetDBField('Posts', $posts_count); - // autolock topic after N number of posts (if option enabled) + // auto-lock topic after N number of posts (if option enabled) $auto_lock = $this->Application->ConfigValue('AutoTopicLockPosts'); - if ((int)$auto_lock > 0) { - if ($posts_count >= $auto_lock) { + + if ( (int)$auto_lock > 0 ) { + if ( $posts_count >= $auto_lock ) { // user has unlocked topic after $auto_lock and posts again -> ensure that topic will be locked again - $this->Application->HandleEvent($parent_prefix.':OnTopicLockToggle'); + $lock_event = new kEvent($parent_prefix . ':OnTopicLockToggle'); + $this->Application->HandleEvent($lock_event); } } } Index: in-bulletin/units/private_message_body/private_message_body_eh.php =================================================================== --- in-bulletin/units/private_message_body/private_message_body_eh.php (revision 14590) +++ in-bulletin/units/private_message_body/private_message_body_eh.php (working copy) @@ -20,9 +20,13 @@ * Sets default values * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ Index: in-bulletin/units/private_messages/private_message_eh.php =================================================================== --- in-bulletin/units/private_messages/private_message_eh.php (revision 14590) +++ in-bulletin/units/private_messages/private_message_eh.php (working copy) @@ -32,8 +32,11 @@ * Applies folder & message owner filter to message list * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { $folder_id = $this->Application->GetVar('folder_id'); if ($folder_id === false) { @@ -58,13 +61,17 @@ * Puts message to Sent folder * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ - if ($object->GetDBField('FolderId') != PM_FOLDER_SENT) { + if ( $object->GetDBField('FolderId') != PM_FOLDER_SENT ) { // when creating "Inbox" message (from "Sent" message) don't reset folder & status return ; } @@ -79,8 +86,10 @@ * Creates 1st post when topic is created * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -89,14 +98,14 @@ $this->Application->EmailEventUser('PM.ADD', $object->GetDBField('ToId')); - if ($object->GetDBField('FolderId') != PM_FOLDER_SENT) { + if ( $object->GetDBField('FolderId') != PM_FOLDER_SENT ) { // 1. create message in sender's "Sent" folder (this method only for this step) // 2. create message body (shared) // 3. create message copy in recipient's "Inbox" folder return ; } - $message_body =& $this->Application->recallObject($event->Prefix.'-body', null, Array ('skip_autoload' => true)); + $message_body =& $this->Application->recallObject($event->Prefix . '-body', null, Array ('skip_autoload' => true)); /* @var $message_body kDBItem */ // 1. create message body (for sender & recipient) @@ -104,7 +113,7 @@ $message_body->SetDBFieldsFromHash($object->GetFieldValues(), $copy_fields); $body_created = $message_body->Create(); - if ($body_created) { + if ( $body_created ) { // 2. link body with message $object->SetDBField('PMBodyId', $message_body->GetID()); $object->Update(); @@ -120,9 +129,13 @@ * Sets post options to virtual fields * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { + parent::OnAfterItemLoad($event); + $object =& $event->getObject(); /* @var $object kDBItem */ @@ -131,6 +144,7 @@ $options_map = $post_helper->getOptionsMap(); $post_options = $object->GetDBField('Options'); + foreach ($options_map as $option_name => $field_name) { $option_value = $post_helper->GetPostOption($option_name, $post_options); $object->SetDBField($field_name, (int)$option_value); Index: in-bulletin/units/topics/topics_event_handler.php =================================================================== --- in-bulletin/units/topics/topics_event_handler.php (revision 14590) +++ in-bulletin/units/topics/topics_event_handler.php (working copy) @@ -16,13 +16,14 @@ class TopicsEventHandler extends kCatDBEventHandler { - /** * Checks topic lock permission * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { if ($event->Name == 'OnTopicLockToggle') { $object =& $event->getObject(); @@ -64,8 +65,10 @@ * Cache topic owner * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -76,8 +79,10 @@ * Cache topic owner * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -86,26 +91,28 @@ $object =& $event->getObject(); /* @var $object kCatDBItem */ - if (!$object->GetDBField('TodayDate')) { + if ( !$object->GetDBField('TodayDate') ) { $object->SetDBField('TodayDate', adodb_date('Y-m-d')); } $post_helper =& $this->Application->recallObject('PostHelper'); /* @var $post_helper PostHelper */ - $object->SetDBField('TopicText', $post_helper->CensorText( $object->GetDBField('TopicText') )); + $object->SetDBField('TopicText', $post_helper->CensorText($object->GetDBField('TopicText'))); } /** * Creates 1st post when topic is created * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); - if ($event->Special == '-item') { + if ( $event->Special == '-item' ) { // don't create first post when cloning return ; } @@ -113,7 +120,7 @@ $object =& $event->getObject(); /* @var $object kDBItem */ - $post =& $this->Application->recallObject($event->Prefix.'-post', null, Array ('skip_autoload' => true)); + $post =& $this->Application->recallObject($event->Prefix . '-post', null, Array ('skip_autoload' => true)); /* @var $post kDBItem */ $post->SetDBField('Pending', $object->GetDBField('Status') == STATUS_ACTIVE ? 0 : 1); @@ -157,18 +164,20 @@ } /** - * Makes first post body field non-requered when topic has posts already + * Makes first post body field non-required when topic has posts already * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); $object =& $event->getObject(); /* @var $object kCatDBItem */ - if ($object->GetDBField('Posts') > 0 || !$this->Application->isAdminUser) { + if ( $object->GetDBField('Posts') > 0 || !$this->Application->isAdminUser ) { $object->setRequired('PostingText', false); } } Index: in-commerce/units/addresses/addresses_event_handler.php =================================================================== --- in-commerce/units/addresses/addresses_event_handler.php (revision 14590) +++ in-commerce/units/addresses/addresses_event_handler.php (working copy) @@ -40,11 +40,14 @@ } /** - * Enter description here... + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { if ($this->Application->isAdminUser) { return ; @@ -76,13 +79,17 @@ * Ensures, that user have only one "use as billing" / "use as shipping" address * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $object =& $event->getObject(); /* @var $object kDBItem */ - if (!$object->isLoaded() || !$this->checkItemStatus($event)) { + if ( !$object->isLoaded() || !$this->checkItemStatus($event) ) { // not trivially loaded object OR not current user address $event->status = kEvent::erPERM_FAIL; return ; @@ -139,8 +146,10 @@ * Fills states for object country * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); @@ -284,10 +293,14 @@ * Disables Guest ability to create addresses * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { - if (!$this->Application->LoggedIn()) { + parent::OnBeforeItemCreate($event); + + if ( !$this->Application->LoggedIn() ) { $event->status = kEvent::erPERM_FAIL; return ; } Index: in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php =================================================================== --- in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php (revision 14590) +++ in-commerce/units/affiliate_payment_types/affiliate_payment_types_event_handler.php (working copy) @@ -15,12 +15,21 @@ class AffiliatePaymentTypesEventHandler extends kDBEventHandler { - function SetCustomQuery(&$event) + /** + * Lists only active affiliate payment types on Front-End + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { - if($event->Special == 'active') - { + if ( !$this->Application->isAdmin ) { $object =& $event->getObject(); - $object->addFilter('active', '%1$s.Status = 1'); + /* @var $object kDBList */ + + $object->addFilter('active', '%1$s.Status = ' . STATUS_ACTIVE); } } @@ -38,51 +47,74 @@ /** - * Enter description here... + * Ensures, that user have only one "use as billing" / "use as shipping" address * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + + $this->itemChanged($event); + } + + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) + { + parent::OnBeforeItemCreate($event); + + $this->itemChanged($event); + } + + /** + * Occurs before item is changed + * + * @param kEvent $event + */ + function itemChanged(&$event) + { $object =& $event->getObject(); + /* @var $object kDBItem */ - if ($object->GetDBField('IsPrimary') && $object->Validate()) { - $table_name = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $sql = 'UPDATE '.$table_name.' SET IsPrimary = 0'; + if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { + $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + SET IsPrimary = 0'; $this->Conn->Query($sql); - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); + $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); $object->SetDBField($status_field, 1); } } - function OnBeforeItemCreate(&$event) + /** + * Don't allow to delete primary affiliate payment type + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { - $this->OnBeforeItemUpdate($event); - } + if ( $event->Name == 'OnMassDelete' && $type == 'before' ) { + $ids = $event->getEventParam('ids'); - function OnMassDelete(&$event) - { - if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { - $event->status = kEvent::erFAIL; - return; - } + $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' + FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + WHERE IsPrimary = 1'; + $primary_id = $this->Conn->GetOne($sql); - $this->StoreSelectedIDs($event); - $event->setEventParam('ids', $this->getSelectedIDs($event) ); - $ids = $event->getEventParam('ids'); + $ids = array_diff($ids, Array ($primary_id)); - $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - - $sql = 'SELECT AffiliatePlanId FROM '.$this->Application->getUnitOption('ap', 'TableName').' - WHERE IsPrimary = 1'; - $primary_id = $this->Conn->GetOne($sql); - $ids = array_diff($ids, Array($primary_id)); - - if($ids) - { - $temp->DeleteItems($event->Prefix, $event->Special, $ids); + $event->setEventParam('ids', $ids); } - $this->clearSelectedIDs($event); } } \ No newline at end of file Index: in-commerce/units/affiliate_payments/affiliate_payments_event_handler.php =================================================================== --- in-commerce/units/affiliate_payments/affiliate_payments_event_handler.php (revision 14590) +++ in-commerce/units/affiliate_payments/affiliate_payments_event_handler.php (working copy) @@ -16,27 +16,34 @@ class AffiliatePaymentsEventHandler extends kDBEventHandler { /** - * Enter description here... + * Apply some special processing to object being + * recalled before using it in other events that + * call prepareObject * - * @param kDBItem $object + * @param kDBItem|kDBList $object * @param kEvent $event + * @return void + * @access protected */ - function prepareObject(&$object, &$event) + protected function prepareObject(&$object, &$event) { - if($event->Special == 'log') return false; + if ( $event->Special == 'log' ) { + return ; + } $parent_info = $object->getLinkedInfo(); + $parent_object =& $this->Application->recallObject($parent_info['ParentPrefix']); + /* @var $parent_object kDBItem */ + $options = $object->getFieldOptions('PaymentTypeId'); - if($parent_object->isLoaded()) - { + if ( $parent_object->isLoaded() ) { $options['default'] = $parent_object->GetDBField('PaymentTypeId'); $object->SetDBField('PaymentTypeId', $parent_object->GetDBField('PaymentTypeId')); } - if($this->Application->GetVar($event->getPrefixSpecial().'_event') != 'OnNew' && $this->Application->GetVar($event->getPrefixSpecial().'_event') != 'OnCreate') - { + if ( $this->Application->GetVar($event->getPrefixSpecial() . '_event') != 'OnNew' && $this->Application->GetVar($event->getPrefixSpecial() . '_event') != 'OnCreate' ) { $options['options'][0] = ''; } @@ -59,38 +66,44 @@ } /** - * Set's day of payment for newly created payments + * Updates Affiliate Record On Successfully payment creation * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { - $object =& $event->getObject( Array('skip_autoload'=>true) ); - } + parent::OnAfterItemCreate($event); - /** - * Updates Affiliate Record On Successfuly payment creation - * - * @param kEvent $event - */ - function OnAfterItemCreate(&$event) - { - $object =& $event->getObject( Array('skip_autoload' => true) ); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $parent_info = $object->getLinkedInfo(); - $sql = 'SELECT MAX(PaymentDate) FROM '.$object->TableName.' - WHERE '.$parent_info['ParentTableKey'].' = '.$parent_info['ParentId']; + + $sql = 'SELECT MAX(PaymentDate) + FROM ' . $object->TableName . ' + WHERE ' . $parent_info['ParentTableKey'] . ' = ' . $parent_info['ParentId']; $payment_date = $this->Conn->GetOne($sql); - $amount_payed = $object->GetDBField('Amount'); + $affiliate =& $this->Application->recallObject('affil'); + /* @var $affiliate kDBItem */ - $affiliate =& $this->Application->recallObject('affil'); - $affiliate->SetDBField( 'AmountToPay', $affiliate->GetDBField('AmountToPay') - $amount_payed ); + $affiliate->SetDBField('AmountToPay', $affiliate->GetDBField('AmountToPay') - $object->GetDBField('Amount')); $affiliate->SetDBField('LastPaymentDate_date', $payment_date); $affiliate->SetDBField('LastPaymentDate_time', $payment_date); $affiliate->Update(); } - function SetCustomQuery(&$event) + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); if($event->Special == 'log') Index: in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php =================================================================== --- in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php (revision 14590) +++ in-commerce/units/affiliate_plans/affiliate_plans_event_handler.php (working copy) @@ -15,7 +15,15 @@ class AffiliatePlansEventHandler extends kDBEventHandler { - function SetCustomQuery(&$event) + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { if($event->Special == 'active') { @@ -37,56 +45,80 @@ } /** - * 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->itemChanged($event); + } + + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) + { + parent::OnBeforeItemCreate($event); + + $this->itemChanged($event); + } + + /** + * Occurs before item is changed + * + * @param kEvent $event + */ + function itemChanged(&$event) + { $object =& $event->getObject(); + /* @var $object kDBItem */ $live_table = $this->Application->getUnitOption($event->Prefix, 'TableName'); - $plans_count = $this->Conn->GetOne('SELECT COUNT(*) FROM '.$live_table); - if(!$plans_count) $object->SetDBField('IsPrimary', 1); + $plans_count = $this->Conn->GetOne('SELECT COUNT(*) FROM ' . $live_table); + if ( !$plans_count ) { + $object->SetDBField('IsPrimary', 1); + } - if( $object->GetDBField('IsPrimary') && $object->Validate() ) - { - $sql = 'UPDATE '.$this->Application->getUnitOption($event->Prefix, 'TableName').' + if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { + $sql = 'UPDATE ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' SET IsPrimary = 0'; $this->Conn->Query($sql); - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); + $status_field = array_shift($this->Application->getUnitOption($event->Prefix, 'StatusField')); $object->SetDBField($status_field, 1); } } - function OnBeforeItemCreate(&$event) + /** + * Don't allow to delete primary affiliate plan + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { - $this->OnBeforeItemUpdate($event); - } + if ( $event->Name == 'OnMassDelete' && $type == 'before' ) { + $ids = $event->getEventParam('ids'); - function OnMassDelete(&$event) - { - if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { - $event->status = kEvent::erFAIL; - return; - } + $sql = 'SELECT ' . $this->Application->getUnitOption($event->Prefix, 'IDField') . ' + FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + WHERE IsPrimary = 1'; + $primary_id = $this->Conn->GetOne($sql); - $ids = $this->StoreSelectedIDs($event); - $event->setEventParam('ids', $ids ); - $ids = $event->getEventParam('ids'); + $ids = array_diff($ids, Array ($primary_id)); - $temp =& $this->Application->recallObject($event->getPrefixSpecial().'_TempHandler', 'kTempTablesHandler'); - - $sql = 'SELECT AffiliatePlanId FROM '.$this->Application->getUnitOption('ap', 'TableName').' - WHERE IsPrimary = 1'; - $primary_id = $this->Conn->GetOne($sql); - $ids = array_diff($ids, Array($primary_id)); - - if($ids) - { - $temp->DeleteItems($event->Prefix, $event->Special, $ids); + $event->setEventParam('ids', $ids); } - $this->clearSelectedIDs($event); } } \ No newline at end of file Index: in-commerce/units/affiliate_plans_brackets/affiliate_plans_brackets_event_handler.php =================================================================== --- in-commerce/units/affiliate_plans_brackets/affiliate_plans_brackets_event_handler.php (revision 14590) +++ in-commerce/units/affiliate_plans_brackets/affiliate_plans_brackets_event_handler.php (working copy) @@ -78,14 +78,27 @@ $event->CallSubEvent('OnPreSaveBrackets'); } - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $linked_info = $object->getLinkedInfo(); $object->SetDBField($linked_info['ParentTableKey'], $linked_info['ParentId']); $brackets_helper =& $this->Application->recallObject('BracketsHelper'); - $brackets_helper->InitHelper('FromAmount', 'ToAmount', Array('Percent' => '') ); + /* @var $brackets_helper kBracketsHelper */ + + $brackets_helper->InitHelper('FromAmount', 'ToAmount', Array ('Percent' => '')); $brackets_helper->replaceInfinity($event); } Index: in-commerce/units/affiliates/affiliates_tag_processor.php =================================================================== --- in-commerce/units/affiliates/affiliates_tag_processor.php (revision 14590) +++ in-commerce/units/affiliates/affiliates_tag_processor.php (working copy) @@ -61,25 +61,33 @@ } /** - * Returns true if user is affiliate + * [Aggregated Tag] Returns true if user is affiliate * * @param Array $params * @return bool + * @access protected */ - function User_IsAffiliate($params) + protected function User_IsAffiliate($params) { - $object =& $this->Application->recallObject($this->Prefix.'.user', $this->Prefix, Array('skip_autoload'=>true) ); - $object->Load( $this->Application->RecallVar('user_id'), 'PortalUserId' ); - + $object =& $this->Application->recallObject($this->Prefix . '.user'); + /* @var $object kDBItem */ + return $object->isLoaded(); } - function User_AffiliateIsNotActive($params) + /** + * [Aggregated Tag] Checks, that affiliate record for current user exists and is active + * + * @param $params + * @return bool + * @access protected + */ + protected function User_AffiliateIsActive($params) { - $object =& $this->Application->recallObject($this->Prefix.'.user', $this->Prefix, Array('skip_autoload'=>true) ); - $object->Load( $this->Application->RecallVar('user_id'), 'PortalUserId' ); + $object =& $this->Application->recallObject($this->Prefix . '.user'); + /* @var $object kDBItem */ - return $object->isLoaded() && ($object->GetDBField('Status') != 1); + return $object->isLoaded() && ($object->GetDBField('Status') == STATUS_ACTIVE); } /** @@ -115,14 +123,14 @@ function IsAffiliateOrRegisterAsAffiliateAllowed($params) { - $object =& $this->Application->recallObject($this->Prefix.'.user', $this->Prefix, Array('skip_autoload'=>true) ); - $object->Load( $this->Application->RecallVar('user_id'), 'PortalUserId' ); + $object =& $this->Application->recallObject($this->Prefix . '.user'); + /* @var $object kDBItem */ - return ($this->Application->ConfigValue('Comm_RegisterAsAffiliate') || $object->isLoaded()) ? 1 : 0; + return $this->Application->ConfigValue('Comm_RegisterAsAffiliate') || $object->isLoaded() ? 1 : 0; } /** - * [AGGREGATED TAG] Checks if affilite registration is allowed + * [AGGREGATED TAG] Checks if affiliate registration is allowed * * @param Array $params * @return int @@ -135,10 +143,24 @@ function Main_RequireAffiliate($params) { $t = $params['registration_template']; - if( !$this->User_IsAffiliate($params) ) - { - $redirect_params = Array( 'next_template' => $this->Application->GetVar('t') ); + + if ( !$this->User_IsAffiliate($params) ) { + $redirect_params = Array ('next_template' => $this->Application->GetVar('t')); $this->Application->Redirect($t, $redirect_params); } } + + /** + * Calls OnNew event from template, when no other event submitted + * + * @param Array $params + */ + function PresetFormFields($params) + { + $prefix = $this->getPrefixSpecial(); + + if ( !$this->Application->GetVar($prefix . '_event') && !$this->Application->GetVar('u.register_event') ) { + $this->Application->HandleEvent(new kEvent($prefix . ':OnNew')); + } + } } \ No newline at end of file Index: in-commerce/units/brackets/brackets_event_handler.php =================================================================== --- in-commerce/units/brackets/brackets_event_handler.php (revision 14590) +++ in-commerce/units/brackets/brackets_event_handler.php (working copy) @@ -30,25 +30,38 @@ $this->permMapping = array_merge($this->permMapping, $permissions); } - function prepareObject(&$object, &$event) + /** + * Apply some special processing to object being + * recalled before using it in other events that + * call prepareObject + * + * @param kDBItem|kDBList $object + * @param kEvent $event + * @return void + * @access protected + */ + protected function prepareObject(&$object, &$event) { - if($this->Application->GetVar('s_id') === false) - { + if ( $this->Application->GetVar('s_id') === false ) { return; } $shipping_object =& $this->Application->recallObject('s'); + /* @var $shipping_object kDBItem */ + $lang_object =& $this->Application->recallObject('lang.current'); + /* @var $lang_object LanguagesItem */ - if($lang_object->GetDBField('UnitSystem') == 2 && $shipping_object->GetDBField('Type') == 1) - { - $fields = Array('Start', 'End'); + if ( $lang_object->GetDBField('UnitSystem') == 2 && $shipping_object->GetDBField('Type') == 1 ) { + $fields = Array ('Start', 'End'); + $formatter =& $this->Application->recallObject('kUnitFormatter'); - foreach($fields as $field) - { + /* @var $formatter kUnitFormatter */ + + foreach ($fields as $field) { + $object->SetFieldOption($field, 'formatter', 'kUnitFormatter'); $options = $object->GetFieldOptions($field); - $options['formatter'] = 'kUnitFormatter'; - $object->SetFieldOptions($field, $options); + $formatter->prepareOptions($field, $options, $object); } } @@ -156,17 +169,32 @@ $event->CallSubEvent('OnPreSaveBrackets'); } - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $shipping_object =& $this->Application->recallObject('s'); + /* @var $shipping_object kDBItem */ + $default_start = ($shipping_object->GetDBField('Type') == 1) ? 0 : 1; $object =& $event->getObject(); + /* @var $object kDBItem */ + $linked_info = $object->getLinkedInfo(); $object->SetDBField($linked_info['ParentTableKey'], $linked_info['ParentId']); $brackets_helper =& $this->Application->recallObject('BracketsHelper'); - $brackets_helper->InitHelper('Start', 'End', Array(), $default_start ); + /* @var $brackets_helper kBracketsHelper */ + + $brackets_helper->InitHelper('Start', 'End', Array (), $default_start); $brackets_helper->replaceInfinity($event); } Index: in-commerce/units/coupons/coupons_event_handler.php =================================================================== --- in-commerce/units/coupons/coupons_event_handler.php (revision 14590) +++ in-commerce/units/coupons/coupons_event_handler.php (working copy) @@ -59,8 +59,15 @@ $object->SetDBField('DefaultExpiration_time', $default_expiration); } - - function OnBeforeClone(&$event) + /** + * Occurs before an item has been cloned + * Id of newly created item is passed as event' 'id' param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeClone(&$event) { parent::OnBeforeClone($event); @@ -206,33 +213,69 @@ } /** - * Enter description here... + * Prepare temp tables for creating new item + * but does not create it. Actual create is + * done in OnPreSaveCreated * * @param kEvent $event + * @return void + * @access protected */ - function OnPreCreate(&$event){ - + protected function OnPreCreate(&$event) + { parent::OnPreCreate($event); - $object = &$event->getObject(); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $exp_date = adodb_mktime(); - $default_duration = $this->Application->ConfigValue('Comm_DefaultCouponDuration'); - if ($default_duration && $default_duration>0){ - $exp_date += (int)$default_duration*86400; + if ( $default_duration && $default_duration > 0 ) { + $exp_date += (int)$default_duration * 86400; } + $object->SetDBField('Expiration_date', $exp_date); } - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { - $object =& $event->getObject(); - $object->SetDBField( 'Amount', abs($object->GetDBField('Amount')) ); + parent::OnBeforeItemUpdate($event); + + $this->itemChanged($event); } - function OnBeforeItemCreate(&$event) + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) { - $this->OnBeforeItemUpdate($event); + parent::OnBeforeItemCreate($event); + + $this->itemChanged($event); } + + /** + * Occurs before item is changed + * + * @param kEvent $event + */ + function itemChanged(&$event) + { + $object =& $event->getObject(); + /* @var $object kDBItem */ + + $object->SetDBField('Amount', abs($object->GetDBField('Amount'))); + } } \ No newline at end of file Index: in-commerce/units/currencies/currencies_event_handler.php =================================================================== --- in-commerce/units/currencies/currencies_event_handler.php (revision 14590) +++ in-commerce/units/currencies/currencies_event_handler.php (working copy) @@ -52,38 +52,47 @@ } /** - * Enter description here... + * Occurs before updating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { + parent::OnBeforeItemUpdate($event); + $object =& $event->getObject(); - if($object->GetDBField('IsPrimary') && $object->Validate()) - { - $sql = 'UPDATE '.$this->Application->getUnitOption($this->Prefix, 'TableName').' + /* @var $object kDBItem */ + + if ( $object->GetDBField('IsPrimary') && $object->Validate() ) { + $sql = 'UPDATE ' . $this->Application->getUnitOption($this->Prefix, 'TableName') . ' SET IsPrimary = 0 - WHERE CurrencyId <> '.$object->GetDBField('CurrencyId'); + WHERE CurrencyId <> ' . $object->GetDBField('CurrencyId'); $this->Conn->Query($sql); + $object->SetDBField('Status', 1); } - $object->SetDBField('Modified_date', adodb_mktime() ); - $object->SetDBField('Modified_time', adodb_mktime() ); - if($object->GetDBField('Status') == 0) - { - $sql = 'DELETE FROM '.$this->Application->getUnitOption('ptc', 'TableName'). - ' WHERE CurrencyId='.$object->GetDBField('CurrencyId'); + $object->SetDBField('Modified_date', adodb_mktime()); + $object->SetDBField('Modified_time', adodb_mktime()); + + if ( $object->GetDBField('Status') == 0 ) { + $sql = 'DELETE FROM ' . $this->Application->getUnitOption('ptc', 'TableName') . ' + WHERE CurrencyId = ' . $object->GetDBField('CurrencyId'); $this->Conn->Query($sql); } } /** - * Enter description here... + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); @@ -115,17 +124,20 @@ } /** - * Enter description here... + * Saves content of temp table into live and + * redirects to event' default redirect (normally grid template) * * @param kEvent $event + * @return void + * @access protected */ - function OnSave(&$event) + protected function OnSave(&$event) { - $this->Application->StoreVar( 'saved_curr_ids', $this->Application->RecallVar($event->Prefix.'_selected_ids') ); + $this->Application->StoreVar('saved_curr_ids', $this->Application->RecallVar($event->Prefix . '_selected_ids')); + parent::OnSave($event); } - /** * Enter description here... * Index: in-commerce/units/destinations/dst_event_handler.php =================================================================== --- in-commerce/units/destinations/dst_event_handler.php (revision 14590) +++ in-commerce/units/destinations/dst_event_handler.php (working copy) @@ -46,7 +46,15 @@ } } - function customProcessing(&$event, $type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { if($type != 'before') return ; Index: in-commerce/units/discounts/discounts_event_handler.php =================================================================== --- in-commerce/units/discounts/discounts_event_handler.php (revision 14590) +++ in-commerce/units/discounts/discounts_event_handler.php (working copy) @@ -15,14 +15,44 @@ class DiscountsEventHandler extends kDBEventHandler { - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { - $object =& $event->getObject(); - $object->SetDBField( 'Amount', abs($object->GetDBField('Amount')) ); + parent::OnBeforeItemUpdate($event); + + $this->itemChanged($event); } - function OnBeforeItemCreate(&$event) + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) { - $this->OnBeforeItemUpdate($event); + parent::OnBeforeItemCreate($event); + + $this->itemChanged($event); } + + /** + * Occurs before item changed + * + * @param kEvent $event + */ + function itemChanged(&$event) + { + $object =& $event->getObject(); + /* @var $object kDBItem */ + + $object->SetDBField('Amount', abs($object->GetDBField('Amount'))); + } } \ No newline at end of file Index: in-commerce/units/files/files.php =================================================================== --- in-commerce/units/files/files.php (revision 14590) +++ in-commerce/units/files/files.php (working copy) @@ -11,19 +11,27 @@ * See http://www.in-portal.org/commercial-license for copyright notices and details. */ - defined('FULL_PATH') or die('restricted access!'); +defined('FULL_PATH') or die('restricted access!'); - class FilesItem extends kDBItem { +class FilesItem extends kDBItem { - public function Delete($id = null) - { - $this->Load($id); - $upload_dir = $this->Fields['FilePath']['upload_dir']; - $file_path = FULL_PATH.$upload_dir.$this->GetDBField('FilePath'); - if(file_exists($file_path)) - { - unlink($file_path); - } - return parent::Delete($id); + /** + * Deletes the record from database + * + * @param int $id + * @return bool + * @access public + */ + public function Delete($id = null) + { + $this->Load($id); + $upload_dir = $this->Fields['FilePath']['upload_dir']; + $file_path = FULL_PATH . $upload_dir . $this->GetDBField('FilePath'); + + if ( file_exists($file_path) ) { + unlink($file_path); } - } \ No newline at end of file + + return parent::Delete($id); + } +} \ No newline at end of file Index: in-commerce/units/gateways/gw_tag_processor.php =================================================================== --- in-commerce/units/gateways/gw_tag_processor.php (revision 14590) +++ in-commerce/units/gateways/gw_tag_processor.php (working copy) @@ -91,26 +91,31 @@ return $o; } - function PredefinedOptions($params) + /** + * Prints list a all possible field options + * + * @param Array $params + * @return string + * @access protected + */ + protected function PredefinedOptions($params) { - $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); + $object =& $this->getObject($params); + /* @var $object kDBItem */ - $value = $this->gwConfigValue($params); - - $options = explode(',', $object->GetDBField('ValueList') ); - $block_params = $this->prepareTagParams($params); - $block_params['name'] = $this->SelectParam($params, 'render_as,block'); $block_params['pass_params'] = 'true'; $o = ''; - foreach ($options as $key_val) - { - list($key,$val) = explode('=', $key_val); + $value = $this->gwConfigValue($params); + $options = explode(',', $object->GetDBField('ValueList')); + + foreach ($options as $key_val) { + list($key, $val) = explode('=', $key_val); $block_params['key'] = $key; $block_params['option'] = $val; - $block_params['selected'] = ( $key == $value ? ' '.$params['selected'] : ''); + $block_params['selected'] = ($key == $value ? ' ' . $params['selected'] : ''); $block_params['PrefixSpecial'] = $this->getPrefixSpecial(); $o .= $this->Application->ParseBlock($block_params, 1); } Index: in-commerce/units/manufacturers/manufacturers_event_handler.php =================================================================== --- in-commerce/units/manufacturers/manufacturers_event_handler.php (revision 14590) +++ in-commerce/units/manufacturers/manufacturers_event_handler.php (working copy) @@ -30,11 +30,14 @@ } /** - * Enter description here... + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { if ($this->Application->isAdminUser) { return ; @@ -72,14 +75,14 @@ $object->addFilter('category_manufacturer_filter', $manufacturers ? '%1$s.ManufacturerId IN (' . implode(',', $manufacturers) . ')' : 'FALSE'); } - /** - * Prefill states dropdown with correct values + * Pre-fills states dropdown with correct values * * @param kEvent $event - * @access public + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); @@ -93,8 +96,10 @@ * Processes states * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -109,8 +114,10 @@ * Processes states * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); Index: in-commerce/units/order_items/order_items_event_handler.php =================================================================== --- in-commerce/units/order_items/order_items_event_handler.php (revision 14590) +++ in-commerce/units/order_items/order_items_event_handler.php (working copy) @@ -178,18 +178,37 @@ $this->Conn->Query($sql); } - function OnAfterItemLoad(&$event) + /** + * Occurs after loading item, 'id' parameter + * allows to get id of item that was loaded + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(&$event) { + parent::OnAfterItemLoad($event); + $object =& $event->getObject(); - if( $item_info = $object->GetDBField('ItemData') ) - { + /* @var $object kDBItem */ + + if ( $item_info = $object->GetDBField('ItemData') ) { $item_info = unserialize($item_info); $object->SetDBField('DiscountType', getArrayValue($item_info, 'DiscountType')); $object->SetDBField('DiscountId', getArrayValue($item_info, 'DiscountId')); } } - function SetCustomQuery(&$event) + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); Index: in-commerce/units/payment_type/payment_type_event_handler.php =================================================================== --- in-commerce/units/payment_type/payment_type_event_handler.php (revision 14590) +++ in-commerce/units/payment_type/payment_type_event_handler.php (working copy) @@ -97,20 +97,22 @@ } /** - * Occurse before updating item + * Occurs before updating item * * @param kEvent $event - * @access public + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); - $object = &$event->getObject(); + $object =& $event->getObject(); + /* @var $object kDBItem */ - $status_field = array_shift( $this->Application->getUnitOption($event->Prefix,'StatusField') ); + $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') ); - if($object->GetDBField('IsPrimary')==1 && $object->GetDBField($status_field)==0){ + if ( $object->GetDBField('IsPrimary') == 1 && $object->GetDBField($status_field) == 0 ) { $object->SetDBField($status_field, 1); } @@ -118,12 +120,13 @@ } /** - * Occurse before creating item + * Occurs before creating item * * @param kEvent $event - * @access public + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -134,11 +137,13 @@ * Disable delete on primary payment type * * @param kEvent $event + * @param string $type + * @return void * @access protected */ - - function customProcessing(&$event, $when){ - if ($event->Name == 'OnMassDelete' && $when == 'before'){ + protected function customProcessing(&$event, $type) + { + if ($event->Name == 'OnMassDelete' && $type == 'before'){ $object = &$event->getObject(); $ids = $event->getEventParam('ids'); @@ -157,9 +162,18 @@ } } - function OnSave(&$event) + /** + * Saves content of temp table into live and + * redirects to event' default redirect (normally grid template) + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnSave(&$event) { $this->Application->StoreVar('check_unused_currencies', 1); + parent::OnSave($event); } @@ -219,11 +233,14 @@ } /** - * Apply system filter to themes list + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); Index: in-commerce/units/pricing/pricing_event_handler.php =================================================================== --- in-commerce/units/pricing/pricing_event_handler.php (revision 14590) +++ in-commerce/units/pricing/pricing_event_handler.php (working copy) @@ -227,7 +227,15 @@ } } - function customProcessing(&$event,$type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event,$type) { $bracket =& $event->getObject(); switch ($type) @@ -372,19 +380,21 @@ } /** - * Resets primary mark for other pricings of given product, when current pricing is primary + * Resets primary mark for other prices of given product, when current pricing is primary * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); $object =& $event->getObject(); /* @var $object kDBItem */ - if ($object->GetDBField('IsPrimary') == 1) { - // make all pricings non primary, when this one is + if ( $object->GetDBField('IsPrimary') == 1 ) { + // make all prices non primary, when this one is $sql = 'UPDATE ' . $object->TableName . ' SET IsPrimary = 0 WHERE (ProductId = ' . $object->GetDBField('ProductId') . ') AND (' . $object->IDField . ' <> ' . $object->GetID() . ')'; @@ -393,35 +403,50 @@ } /** - * Enter description here... + * Occurs before creating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); + /* @var $object kDBItem */ + $table_info = $object->getLinkedInfo($event->Special); - $table_info['ParentId'] = ($table_info['ParentId']?$table_info['ParentId']:0); + $table_info['ParentId'] = ($table_info['ParentId'] ? $table_info['ParentId'] : 0); - if ( $object->GetDBField('IsPrimary') == 1 ){ - $this->Conn->Query('UPDATE '.$object->TableName.' SET IsPrimary = 0 WHERE '.$table_info['ForeignKey'].' = '.$table_info['ParentId']); + if ( $object->GetDBField('IsPrimary') == 1 ) { + $sql = 'UPDATE ' . $object->TableName . ' + SET IsPrimary = 0 + WHERE ' . $table_info['ForeignKey'] . ' = ' . $table_info['ParentId']; + $this->Conn->Query($sql); } else { - $prices_qty = $this->Conn->GetOne('SELECT COUNT(*) FROM '.$object->TableName.' WHERE '.$table_info['ForeignKey'].' = '.$table_info['ParentId']); + $sql = 'SELECT COUNT(*) + FROM ' . $object->TableName . ' + WHERE ' . $table_info['ForeignKey'] . ' = ' . $table_info['ParentId']; + $prices_qty = $this->Conn->GetOne($sql); - if ($prices_qty == 0) { + if ( $prices_qty == 0 ) { $object->SetDBField('IsPrimary', 1); } } } /** - * Enter description here... + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); Index: in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php =================================================================== --- in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php (revision 14590) +++ in-commerce/units/product_option_combinations/product_option_combinations_event_handler.php (working copy) @@ -19,8 +19,11 @@ * Apply custom processing to item * * @param kEvent $event + * @param string $type + * @return void + * @access protected */ - function customProcessing(&$event, $type) + protected function customProcessing(&$event, $type) { if ($type == 'after') { return true; @@ -238,23 +241,31 @@ $actions->Set($event->getPrefixSpecial().'_GoId', ''); } - function LoadItem(&$event) + /** + * Load item if id is available + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function LoadItem(&$event) { $object =& $event->getObject(); + /* @var $object kDBItem */ + $id = $this->getPassedID($event); - if (!$id) { + + if ( !$id ) { $event->CallSubEvent('OnNew'); + + return ; } - else { - if ($object->Load($id) ) - { - $actions =& $this->Application->recallObject('kActions'); - $actions->Set($event->getPrefixSpecial().'_id', $object->GetId() ); - } - else - { - //$object->setID($id); - } + + if ( $object->Load($id) ) { + $actions =& $this->Application->recallObject('kActions'); + /* @var $actions Params */ + + $actions->Set($event->getPrefixSpecial() . '_id', $object->GetId()); } } @@ -277,8 +288,18 @@ return $special; } - function OnBeforeClone(&$event) + /** + * Occurs before an item has been cloned + * Id of newly created item is passed as event' 'id' param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeClone(&$event) { + parent::OnBeforeClone($event); + $event->Init($event->Prefix, '-item'); $object =& $event->getObject(); @@ -306,9 +327,13 @@ * Restore back values from live table to temp table before overwriting live with temp * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeDeleteFromLive(&$event) + protected function OnBeforeDeleteFromLive(&$event) { + parent::OnBeforeDeleteFromLive($event); + // check if product inventory management is via options and then proceed $id = $event->getEventParam('id'); @@ -317,24 +342,25 @@ $id_field = $this->Application->getUnitOption($event->Prefix, 'IDField'); $sql = 'SELECT p.InventoryStatus - FROM '.$products_table.' p - LEFT JOIN '.$table_name.' poc ON poc.ProductId = p.ProductId - WHERE poc.'.$id_field.' = '.$id; + FROM ' . $products_table . ' p + LEFT JOIN ' . $table_name . ' poc ON poc.ProductId = p.ProductId + WHERE poc.' . $id_field . ' = ' . $id; + $inventory_status = $this->Conn->GetOne($sql); - if ($this->Conn->GetOne($sql) == 2) { - $live_object =& $this->Application->recallObject($event->Prefix.'.itemlive', null, Array('skip_autoload' => true)); + if ( $inventory_status == ProductInventory::BY_OPTIONS ) { + $live_object =& $this->Application->recallObject($event->Prefix . '.itemlive', null, Array ('skip_autoload' => true)); /* @var $live_object kDBItem */ $live_object->SwitchToLive(); $live_object->Load($id); - $temp_object =& $this->Application->recallObject($event->Prefix.'.itemtemp', null, Array('skip_autoload' => true)); + $temp_object =& $this->Application->recallObject($event->Prefix . '.itemtemp', null, Array ('skip_autoload' => true)); /* @var $temp_object kDBItem */ $temp_object->SwitchToTemp(); $temp_object->Load($id); - $temp_object->SetDBFieldsFromHash($live_object->GetFieldValues(), Array('QtyInStock','QtyReserved','QtyBackOrdered','QtyOnOrder')); + $temp_object->SetDBFieldsFromHash($live_object->GetFieldValues(), Array ('QtyInStock', 'QtyReserved', 'QtyBackOrdered', 'QtyOnOrder')); $temp_object->Update(); } } Index: in-commerce/units/product_option_combinations/product_option_formatters.php =================================================================== --- in-commerce/units/product_option_combinations/product_option_formatters.php (revision 14590) +++ in-commerce/units/product_option_combinations/product_option_formatters.php (working copy) @@ -15,6 +15,15 @@ class kCombinationFormatter extends kFormatter { + /** + * Formats value of a given field + * + * @param string $value + * @param string $field_name + * @param kDBItem|kDBList $object + * @param string $format + * @return string + */ function Format($value, $field_name, $object, $format=null) { $o = ''; @@ -45,18 +54,18 @@ * @param string $field_name * @param kDBItem $object * @return mixed + * @access public */ - function Parse($value, $field_name, &$object) + public function Parse($value, $field_name, &$object) { - if (!is_array($value)) { + if ( !is_array($value) ) { $object->SetError($field_name, 'required'); return ''; } else { if ( $object->isRequired($field_name) ) { - foreach ($value as $key=>$val) - { - if ($val == '') { + foreach ($value as $key => $val) { + if ( $val == '' ) { $object->SetError($field_name, 'required'); } } @@ -69,11 +78,11 @@ class kCombPriceFormatter extends kFormatter { /** - * Enter description here... + * Formats value of a given field * - * @param mixed $value + * @param string $value * @param string $field_name - * @param kDBItem $object + * @param kDBItem|kDBList $object * @param string $format * @return string */ Index: in-commerce/units/product_options/product_options_event_handler.php =================================================================== --- in-commerce/units/product_options/product_options_event_handler.php (revision 14590) +++ in-commerce/units/product_options/product_options_event_handler.php (working copy) @@ -15,7 +15,15 @@ class ProductOptionsEventHandler extends kDBEventHandler{ - function SetCustomQuery(&$event) + /** + * Apply any custom changes to list's sql query + * + * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() + */ + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); Index: in-commerce/units/products/products_event_handler.php =================================================================== --- in-commerce/units/products/products_event_handler.php (revision 14590) +++ in-commerce/units/products/products_event_handler.php (working copy) @@ -56,14 +56,17 @@ * Sets default processing data for subscriptions * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); $object =& $event->getObject(); + /* @var $object kDBItem */ - $product_approve_events = Array( + $product_approve_events = Array ( 2 => 'p:OnSubscriptionApprove', 4 => 'p:OnDownloadableApprove', 5 => 'p:OnPackageApprove' @@ -71,11 +74,11 @@ $product_type = $object->GetDBField('Type'); - $type_found = in_array($product_type, array_keys($product_approve_events) ); + $type_found = in_array($product_type, array_keys($product_approve_events)); - if ($type_found && !$object->GetDBField('ProcessingData') ) { - $processing_data = Array('ApproveEvent' => $product_approve_events[$product_type] ); - $object->SetDBField( 'ProcessingData', serialize($processing_data) ); + if ( $type_found && !$object->GetDBField('ProcessingData') ) { + $processing_data = Array ('ApproveEvent' => $product_approve_events[$product_type]); + $object->SetDBField('ProcessingData', serialize($processing_data)); } } @@ -285,22 +288,37 @@ } } - function OnBeforeDeleteFromLive(&$event) + /** + * Occurs before an item is deleted from live table when copying from temp + * (temp handler deleted all items from live and then copy over all items from temp) + * Id of item being deleted is passed as event' 'id' param + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeDeleteFromLive(&$event) { - $id = $event->getEventParam('id'); - $product =& $this->Application->recallObject($event->Prefix.'.itemlive', null, Array('skip_autoload' => true)); + parent::OnBeforeDeleteFromLive($event); + + $product =& $this->Application->recallObject($event->Prefix . '.itemlive', null, Array ('skip_autoload' => true)); /* @var $product kCatDBItem */ $product->SwitchToLive(); - if (!$product->Load($id)) return ; // this will make sure New product will not be overwritten with empty data + $id = $event->getEventParam('id'); - $temp =& $this->Application->recallObject($event->Prefix.'.itemtemp', null, Array('skip_autoload' => true)); + if ( !$product->Load($id) ) { + // this will make sure New product will not be overwritten with empty data + return ; + } + + $temp =& $this->Application->recallObject($event->Prefix . '.itemtemp', null, Array ('skip_autoload' => true)); /* @var $temp kCatDBItem */ $temp->SwitchToTemp(); $temp->Load($id); - $temp->SetDBFieldsFromHash($product->GetFieldValues(), Array('QtyInStock','QtyReserved','QtyBackOrdered','QtyOnOrder')); + $temp->SetDBFieldsFromHash($product->GetFieldValues(), Array ('QtyInStock', 'QtyReserved', 'QtyBackOrdered', 'QtyOnOrder')); $temp->Update(); } @@ -311,23 +329,42 @@ $this->Application->RemoveVar('inventory_actions'); } - function OnSave(&$event) + /** + * Saves content of temp table into live and + * redirects to event' default redirect (normally grid template) + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnSave(&$event) { - $res = parent::OnSave($event); - if ($event->status == kEvent::erSUCCESS) { + parent::OnSave($event); + + if ( $event->status == kEvent::erSUCCESS ) { $this->RunScheduledInventoryActions($event); } - return $res; } - function OnPreCreate(&$event) + /** + * Prepare temp tables for creating new item + * but does not create it. Actual create is + * done in OnPreSaveCreated + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnPreCreate(&$event) { parent::onPreCreate($event); - $object =& $event->GetObject(); - $object->SetDBField('Type', $this->Application->GetVar( $event->getPrefixSpecial(true).'_new_type' )); + + $object =& $event->getObject(); + /* @var $object kDBItem */ + + $object->SetDBField('Type', $this->Application->GetVar($event->getPrefixSpecial(true) . '_new_type')); } - /** * Enter description here... * @@ -865,11 +902,14 @@ } /** - * Checks, that all required product options are filled in before product is saved + * Saves edited item into temp table + * If there is no id, new item is created in temp table * * @param kEvent $event + * @return void + * @access protected */ - function OnPreSave(&$event) + protected function OnPreSave(&$event) { $this->CheckRequiredOptions($event); @@ -880,8 +920,10 @@ * Set new price to ProductsPricing * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); @@ -996,7 +1038,15 @@ * * @param kEvent $event */ - function OnAfterItemLoad(&$event) + + /** + * Load price from temp table if product mode is temp table + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); @@ -1004,7 +1054,7 @@ /* @var $object ProductsItem */ $a_pricing = $object->getPrimaryPricing(); - if (!$a_pricing) { + if ( !$a_pricing ) { // pricing doesn't exist for new products $price = $cost = null; } Index: in-commerce/units/shipping/shipping_event_handler.php =================================================================== --- in-commerce/units/shipping/shipping_event_handler.php (revision 14590) +++ in-commerce/units/shipping/shipping_event_handler.php (working copy) @@ -33,18 +33,21 @@ * Presets shipping cost object based on shipping fields * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); - if (!$this->Application->isAdminUser) { - return ; + if ( !$this->Application->isAdminUser ) { + return; } $object =& $event->getObject(); + /* @var $object kDBItem */ - $format = '%01.'.$object->GetDBField('PrecisionAfterSep').'f'; // %01.2f + $format = '%01.' . $object->GetDBField('PrecisionAfterSep') . 'f'; // %01.2f $zero_if_empty = $object->GetDBField('ZeroIfEmpty'); $sc_object =& $this->Application->recallObject('sc', null, Array ('raise_warnings' => 0)); @@ -56,10 +59,10 @@ $flat_options['default'] = $zero_if_empty ? 0 : null; $sc_object->SetFieldOptions('Flat', $flat_options); - $perunit_options = $sc_object->GetFieldOptions('PerUnit'); - $perunit_options['format'] = $format; - $perunit_options['default'] = $zero_if_empty ? 0 : null; - $sc_object->SetFieldOptions('PerUnit', $perunit_options); + $per_unit_options = $sc_object->GetFieldOptions('PerUnit'); + $per_unit_options['format'] = $format; + $per_unit_options['default'] = $zero_if_empty ? 0 : null; + $sc_object->SetFieldOptions('PerUnit', $per_unit_options); } /** @@ -140,15 +143,32 @@ $event->status=kEvent::erSUCCESS; } - function OnSave(&$event) + /** + * Saves content of temp table into live and + * redirects to event' default redirect (normally grid template) + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnSave(&$event) { $this->OnAfterItemLoad($event); parent::OnSave($event); } - function OnAfterItemCreate(&$event) + /** + * Occurs after creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnAfterItemCreate(&$event) { + parent::OnAfterItemCreate($event); + $event->CallSubEvent('OnAnyChange'); } @@ -168,14 +188,22 @@ $this->Conn->Query($sql); } - function OnPreSaveCreated(&$event){ + /** + * Creates a new item in temp table and + * stores item id in App vars and Session on success + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnPreSaveCreated(&$event) + { parent::OnPreSaveCreated($event); - $default_group = $this->Application->ConfigValue('User_LoggedInGroup'); + $object =& $event->getObject( Array ('skip_autoload' => true) ); + /* @var $object kDBItem */ - $object =& $event->getObject( Array('skip_autoload' => true) ); - - $object->SetDBField('PortalGroups', ','.$default_group.','); + $object->SetDBField('PortalGroups', ',' . $this->Application->ConfigValue('User_LoggedInGroup') . ','); } function UpdateGroups(&$event){ @@ -196,8 +224,16 @@ } } - function customProcessing(&$event, $when){ + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) + { $this->UpdateGroups($event); - } } \ No newline at end of file Index: in-commerce/units/shipping_costs/shipping_costs_event_handler.php =================================================================== --- in-commerce/units/shipping_costs/shipping_costs_event_handler.php (revision 14590) +++ in-commerce/units/shipping_costs/shipping_costs_event_handler.php (working copy) @@ -169,7 +169,15 @@ $event->status = kEvent::erSUCCESS; } - function customProcessing(&$event, $type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { if( $type == 'before' && $this->Application->GetVar('sc') ) { Index: in-commerce/units/shipping_quote_engines/shipping_quote_engine_event_handler.php =================================================================== --- in-commerce/units/shipping_quote_engines/shipping_quote_engine_event_handler.php (revision 14590) +++ in-commerce/units/shipping_quote_engines/shipping_quote_engine_event_handler.php (working copy) @@ -16,18 +16,20 @@ class ShippingQuoteEngineEventHandler extends kDBEventHandler { /** - * Enter description here... + * Occurs before updating item * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); $object =& $event->getObject(); /* @var $object kDBItem */ - $engine =& $this->Application->recallObject( $object->GetDBField('ClassName') ); + $engine =& $this->Application->recallObject($object->GetDBField('ClassName')); /* @var $engine ShippingQuoteEngine */ $engine_fields = $engine->GetEngineFields(); @@ -35,7 +37,7 @@ $properties = $properties ? unserialize($properties) : Array (); // common fields for all shipping quote engines - if ($object->GetDBField('AccountPassword') != '') { + if ( $object->GetDBField('AccountPassword') != '' ) { // don't erase password by accident $engine_fields[] = 'AccountPassword'; } @@ -53,28 +55,28 @@ $from_country = $this->Application->ConfigValue('Comm_Shipping_Country'); $has_states = strlen($from_country) == 3 ? $cs_helper->CountryHasStates($from_country) : false; - $valid_address = $from_country && ($has_states && $this->Application->ConfigValue('Comm_Shipping_State') || !$has_states) && - $this->Application->ConfigValue('Comm_Shipping_City') && $this->Application->ConfigValue('Comm_Shipping_ZIP'); + $valid_address = $from_country && ($has_states && $this->Application->ConfigValue('Comm_Shipping_State') || !$has_states) && $this->Application->ConfigValue('Comm_Shipping_City') && $this->Application->ConfigValue('Comm_Shipping_ZIP'); - if (!function_exists('curl_init')) { + if ( !function_exists('curl_init') ) { $object->SetError('Status', 'curl_not_present'); } - elseif (($object->GetDBField('Status') == STATUS_ACTIVE) && !$valid_address) { + elseif ( ($object->GetDBField('Status') == STATUS_ACTIVE) && !$valid_address ) { $object->SetError('Status', 'from_info_not_filled_in'); } } /** - * Enter description here... + * Apply same processing to each item being selected in grid * * @param kEvent $event + * @return void + * @access protected */ - function iterateItems(&$event) + protected function iterateItems(&$event) { -// $event->setEventParam('SkipProcessing', 1); parent::iterateItems($event); - if($event->Name == 'OnMassApprove') - { + + if ( $event->Name == 'OnMassApprove' ) { $event->status = kEvent::erSUCCESS; $event->redirect = true; } @@ -84,8 +86,10 @@ * Sets virtual fields from serialized properties array * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemLoad(&$event) + protected function OnAfterItemLoad(&$event) { parent::OnAfterItemLoad($event); @@ -94,8 +98,8 @@ $properties = $object->GetDBField('Properties'); - if ($properties) { - $object->SetDBFieldsFromHash( unserialize($properties) ); + if ( $properties ) { + $object->SetDBFieldsFromHash(unserialize($properties)); } } @@ -103,8 +107,10 @@ * Deletes cached shipping quotes on any setting change * * @param kEvent $event + * @return void + * @access protected */ - function OnAfterItemCreate(&$event) + protected function OnAfterItemCreate(&$event) { parent::OnAfterItemCreate($event); Index: in-commerce/units/taxes/taxes_event_handler.php =================================================================== --- in-commerce/units/taxes/taxes_event_handler.php (revision 14590) +++ in-commerce/units/taxes/taxes_event_handler.php (working copy) @@ -41,39 +41,40 @@ $this->eventMethods = array_merge($this->eventMethods, $zones_events); } - function customProcessing(&$event, $type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { - $zone_object =& $event->GetObject(); - switch($type) - { - case 'before': + $zone_object =& $event->getObject(); + /* @var $zone_object kDBItem */ - break; - case 'after': - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - $dst_object =& $this->Application->RecallObject('taxdst'); - if ($event->Name == 'OnUpdate') - { - $sql = 'DELETE FROM '.$dst_object->TableName.' WHERE TaxZoneId='.$zone_object->GetID(); - $this->Conn->Query($sql); + if ( $type == 'after' ) { + $dst_object =& $this->Application->recallObject('taxdst'); + /* @var $dst_object kDBItem */ + + if ( $event->Name == 'OnUpdate' ) { + $sql = 'DELETE FROM ' . $dst_object->TableName . ' + WHERE TaxZoneId = ' . $zone_object->GetID(); + $this->Conn->Query($sql); + } + else { + $temp = $this->Application->GetVar('taxdst', Array ()); + + foreach ($temp as $key => $value) { + $temp[$key]['TaxZoneId'] = $zone_object->GetID(); } - else - { - $temp = $this->Application->GetVar('taxdst'); - foreach ($temp as $key => $value) - { - $temp[$key]['TaxZoneId'] = $zone_object->GetID(); - } - $this->Application->SetVar('taxdst', $temp); - } - $dst_event = new kEvent(); - $dst_event->Init('taxdst'); - $dst_event->Name = 'OnCreate'; - $this->Application->HandleEvent($dst_event); - break; + $this->Application->SetVar('taxdst', $temp); + } - default: + $dst_event = new kEvent('taxdst:OnCreate'); + $this->Application->HandleEvent($dst_event); } } @@ -222,22 +223,6 @@ $event->CallSubEvent("OnPreSave"); } - function OnMassDelete(&$event) - { - $this->StoreSelectedIDs($event); - - $event->setEventParam('ids', $this->getSelectedIDs($event) ); - $this->customProcessing($event, 'before'); - $ids = $event->getEventParam('ids'); - $ids = implode(',', $ids); - - $dst =& $this->Application->recallObject('taxdst'); - $sql = 'DELETE FROM '.$dst->TableName.' WHERE TaxZoneId IN ('.$ids.')'; - $this->Conn->Query($sql); - - parent::OnMassDelete($event); - } - function OnCountryChange(&$event) { $destinations = &$this->Application->recallObject('taxdst'); Index: in-commerce/units/taxesdestinations/taxes_dst_event_handler.php =================================================================== --- in-commerce/units/taxesdestinations/taxes_dst_event_handler.php (revision 14590) +++ in-commerce/units/taxesdestinations/taxes_dst_event_handler.php (working copy) @@ -95,7 +95,15 @@ } } - function customProcessing(&$event, $type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { switch($type) { Index: in-commerce/units/zones/zones_event_handler.php =================================================================== --- in-commerce/units/zones/zones_event_handler.php (revision 14590) +++ in-commerce/units/zones/zones_event_handler.php (working copy) @@ -41,42 +41,46 @@ $this->eventMethods = array_merge($this->eventMethods, $zones_events); } - function customProcessing(&$event, $type) + /** + * Apply custom processing to item + * + * @param kEvent $event + * @param string $type + * @return void + * @access protected + */ + protected function customProcessing(&$event, $type) { - $zone_object =& $event->GetObject(); - switch($type) - { + $zone_object =& $event->getObject(); + /* @var $zone_object kDBItem */ + + switch ( $type ) { case 'before': - if ($event->Name == 'OnCreate') - { + if ( $event->Name == 'OnCreate' ) { $zone_object->SetDBField('ShippingTypeID', $this->Application->GetVar('s_id')); } break; + case 'after': - $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); - $dst_object =& $this->Application->RecallObject('dst'); - if ($event->Name == 'OnUpdate') - { - $sql = 'DELETE FROM '.$dst_object->TableName.' WHERE ShippingZoneId='.$zone_object->GetID(); + $dst_object =& $this->Application->recallObject('dst'); + /* @var $dst_object kDBItem */ + + if ( $event->Name == 'OnUpdate' ) { + $sql = 'DELETE FROM ' . $dst_object->TableName . ' + WHERE ShippingZoneId = ' . $zone_object->GetID(); $this->Conn->Query($sql); } - else - { - $temp = $this->Application->GetVar('dst'); - foreach ($temp as $key => $value) - { + else { + $temp = $this->Application->GetVar('dst', Array ()); + foreach ($temp as $key => $value) { $temp[$key]['ShippingZoneId'] = $zone_object->GetID(); } $this->Application->SetVar('dst', $temp); } - $dst_event = new kEvent(); - $dst_event->Init('dst'); - $dst_event->Name = 'OnCreate'; + $dst_event = new kEvent('dst:OnCreate'); $this->Application->HandleEvent($dst_event); break; - - default: } } @@ -200,22 +204,6 @@ } } - function OnMassDelete(&$event) - { - $ids = $this->StoreSelectedIDs($event); - - $event->setEventParam('ids', $ids); - $this->customProcessing($event, 'before'); - $ids = $event->getEventParam('ids'); - $ids = implode(',', $ids); - - $dst =& $this->Application->recallObject('dst'); - $sql = 'DELETE FROM '.$dst->TableName.' WHERE ShippingZoneId IN ('.$ids.')'; - $this->Conn->Query($sql); - - parent::OnMassDelete($event); - } - function OnCountryChange(&$event) { $destinations = &$this->Application->recallObject('dst'); @@ -229,16 +217,29 @@ $event->redirect = false; } - function OnCancel(&$event){ + /** + * Cancels kDBItem Editing/Creation + * + * @param kEvent $event + * @return void + * @access protected + */ + function OnCancel(&$event) + { + parent::OnCancel($event); - parent::OnCancel($event); $dst_object = &$this->Application->recallObject('dst'); - $delete_zones_sql = 'DELETE FROM '.$dst_object->TableName.' WHERE ShippingZoneId = 0'; + /* @var $dst_object kDBItem */ + + $delete_zones_sql = ' DELETE FROM ' . $dst_object->TableName . ' + WHERE ShippingZoneId = 0'; $this->Conn->Query($delete_zones_sql); // if cancelling after create - if ($this->Application->RecallVar('zone_mode'.$this->Application->GetVar('m_wid')) == 'create') { + if ( $this->Application->RecallVar('zone_mode' . $this->Application->GetVar('m_wid')) == 'create' ) { $zone =& $event->getObject(); + /* @var $zone kDBItem */ + $zone->Delete(); } } Index: in-link/units/link_validation/link_validation_eh.php =================================================================== --- in-link/units/link_validation/link_validation_eh.php (revision 14590) +++ in-link/units/link_validation/link_validation_eh.php (working copy) @@ -50,11 +50,13 @@ } /** - * Checks permissions of user + * Checks user permission to execute given $event * * @param kEvent $event + * @return bool + * @access public */ - function CheckPermission(&$event) + public function CheckPermission(&$event) { $check_events = Array ('OnApproveLinks', 'OnDeclineLinks', 'OnDeleteLinks'); if (in_array($event->Name, $check_events)) { @@ -89,10 +91,12 @@ /** * Adds calculates fields for category name * - * @param kDBItem $object + * @param kDBItem|kDBList $object * @param kEvent $event + * @return void + * @access protected */ - function prepareObject(&$object, &$event) + protected function prepareObject(&$object, &$event) { parent::prepareObject($object, $event); @@ -103,8 +107,11 @@ * Allows to show only invalid links * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { $object =& $event->getObject(); /* @var $object kDBList */ @@ -400,26 +407,29 @@ * Approves/declines selected links * * @param kEvent $event + * @return void + * @access protected */ - function iterateItems(&$event) + protected function iterateItems(&$event) { - if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1)) { + if ( $this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 1) ) { $event->status = kEvent::erFAIL; return; } $ids = $this->_getSelectedIds($event); - if (!$ids) { - return ; + if ( !$ids ) { + return; } $object =& $this->Application->recallObject('l.-item', null, Array ('skip_autoload' => true)); /* @var $object kCatDBItem */ foreach ($ids as $id) { + $ret = true; $object->Load($id); - switch ($event->Name) { + switch ( $event->Name ) { case 'OnApproveLinks': $ret = $object->ApproveChanges(); break; @@ -429,7 +439,7 @@ break; } - if (!$ret) { + if ( !$ret ) { $event->status = kEvent::erFAIL; $event->redirect = false; break; Index: in-link/units/links/links_event_handler.php =================================================================== --- in-link/units/links/links_event_handler.php (revision 14590) +++ in-link/units/links/links_event_handler.php (working copy) @@ -34,11 +34,14 @@ } /** - * Enter description here... + * Apply any custom changes to list's sql query * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -331,8 +334,10 @@ * Makes reciprocal check on link, when it is created * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -343,8 +348,10 @@ * Makes reciprocal check on link, when it is updated * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); Index: in-link/units/listings/listings_event_handler.php =================================================================== --- in-link/units/listings/listings_event_handler.php (revision 14590) +++ in-link/units/listings/listings_event_handler.php (working copy) @@ -69,45 +69,76 @@ return; } - function OnBeforeItemUpdate(&$event) + /** + * Occurs before updating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemUpdate(&$event) { $object =& $event->getObject(); - if ($object->IgnoreValidation) { + /* @var $object kDBItem */ + + if ( $object->IgnoreValidation ) { $object->UpdateFormattersMasterFields(); } } - function OnBeforeItemCreate(&$event) + /** + * Occurs before creating item + * + * @param kEvent $event + * @return void + * @access protected + */ + protected function OnBeforeItemCreate(&$event) { + parent::OnBeforeItemCreate($event); + $object =& $event->getObject(); - if ($object->IgnoreValidation) { + /* @var $object kDBItem */ + + if ( $object->IgnoreValidation ) { $object->UpdateFormattersMasterFields(); } } /** - * Enter description here... + * Occurs before an item is deleted from live table when copying from temp + * (temp handler deleted all items from live and then copy over all items from temp) + * Id of item being deleted is passed as event' 'id' param * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeDeleteFromLive(&$event) + protected function OnBeforeDeleteFromLive(&$event) { + parent::OnBeforeDeleteFromLive($event); + $object =& $event->getObject(); - $sql = 'SELECT * FROM '.$this->Application->getUnitOption($event->Prefix, 'TableName').' - WHERE ListingId = '.$object->GetId(); + /* @var $object kDBItem */ + + $sql = 'SELECT * + FROM ' . $this->Application->getUnitOption($event->Prefix, 'TableName') . ' + WHERE ListingId = ' . $object->GetId(); $original_values = $this->Conn->GetRow($sql); $type_modified = ($object->GetDBField('ListingTypeId') != $original_values['ListingTypeId']); $link_modified = ($object->GetDBField('ItemResourceId') != $original_values['ItemResourceId']); $status_modified = ($object->GetDBField('Status') != $original_values['Status']); - if ($status_modified) { + if ( $status_modified ) { $email_event = $object->GetDBField('Status') ? 'LINK.ENHANCE.APPROVE' : 'LINK.ENHANCE.DENY'; - $sql = 'SELECT CreatedById FROM '.$this->Application->getUnitOption('l', 'TableName').' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); + $sql = 'SELECT CreatedById + FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); + $user_id = $this->Conn->GetOne($sql); - $email_event_user =& $this->Application->EmailEventUser($email_event, $this->Conn->GetOne($sql)); - $email_event_admin =& $this->Application->EmailEventAdmin($email_event); + $this->Application->EmailEventUser($email_event, $user_id); + $this->Application->EmailEventAdmin($email_event); } if ( $type_modified || $link_modified ) { @@ -492,19 +523,23 @@ } /** - * Enter description here... + * Apply same processing to each item being selected in grid * * @param kEvent $event + * @return void + * @access protected */ - function iterateItems(&$event) + protected function iterateItems(&$event) { - $object =& $event->getObject( Array('skip_autoload' => true) ); + $object =& $event->getObject(Array ('skip_autoload' => true)); + /* @var $object kDBItem */ + $ids = $this->StoreSelectedIDs($event); - if ($event->Name == 'OnMassApprove') { + if ( $event->Name == 'OnMassApprove' ) { foreach ($ids as $id) { $object->Load($id); - if ($object->GetDBField('Status') != STATUS_ACTIVE) { + if ( $object->GetDBField('Status') != STATUS_ACTIVE ) { $original_values = $object->GetFieldValues(); $object->SetDBField('Status', STATUS_ACTIVE); $this->EnhanceLink($object, $original_values); @@ -512,16 +547,16 @@ } } - if ($event->Name == 'OnMassDecline') { + if ( $event->Name == 'OnMassDecline' ) { foreach ($ids as $id) { $object->Load($id); - if ($object->GetDBField('Status') == STATUS_ACTIVE) { + if ( $object->GetDBField('Status') == STATUS_ACTIVE ) { $original_values = $object->GetFieldValues(); $this->ResetLink($original_values); $sql = 'SELECT CreatedById - FROM '.$this->Application->getUnitOption('l', 'TableName').' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); + FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $email_event_user =& $this->Application->EmailEventUser('LINK.ENHANCE.DENY', $this->Conn->GetOne($sql)); $email_event_admin =& $this->Application->EmailEventAdmin('LINK.ENHANCE.DENY'); } @@ -531,30 +566,28 @@ parent::iterateItems($event); // extend period for pending/renewal links (if owner has agreed) - if ($event->Name == 'OnMassApprove') { - $lst_object =& $this->Application->recallObject('lst', null, Array('skip_autoload' => true)); + if ( $event->Name == 'OnMassApprove' ) { + $lst_object =& $this->Application->recallObject('lst', null, Array ('skip_autoload' => true)); + /* @var $lst_object kDBItem */ foreach ($ids as $id) { $object->Load($id); + $sql = 'SELECT CreatedById - FROM '.$this->Application->getUnitOption('l', 'TableName').' - WHERE ResourceId = '.$object->GetDBField('ItemResourceId'); + FROM ' . $this->Application->getUnitOption('l', 'TableName') . ' + WHERE ResourceId = ' . $object->GetDBField('ItemResourceId'); $owner_id = $this->Conn->GetOne($sql); - if ($object->GetDBField('PendingRenewal') == 1) { + if ( $object->GetDBField('PendingRenewal') == 1 ) { $lst_object->Load( $object->GetDBField('ListingTypeId') ); - $dur_type_mapping = Array( 1 => 1, - 2 => 60, - 3 => 3600, - 4 => 3600*24, - 5 => 3600*24*7, - 6 => 3600*24*365/12, - 7 => 3600*24*365 - ); + $dur_type_mapping = Array ( + 1 => 1, 2 => 60, 3 => 3600, 4 => 3600 * 24, 5 => 3600 * 24 * 7, + 6 => 3600 * 24 * 365 / 12, 7 => 3600 * 24 * 365 + ); $duration = $lst_object->GetDBField('Duration'); $duration_type = $lst_object->GetDBField('DurationType'); $expiration_interval = $duration * $dur_type_mapping[$duration_type]; - $renewal_begins = max( adodb_mktime(), $object->GetDBField('ExpiresOn') ); + $renewal_begins = max(adodb_mktime(), $object->GetDBField('ExpiresOn')); $expiration_date = $renewal_begins + $expiration_interval; $object->SetDBField('ExpiresOn_date', $expiration_date); @@ -563,21 +596,21 @@ $object->SetDBField('RenewalReminderSent', 0); $object->SetDBField('PendingRenewal', 0); - if ($object->Update()) { + if ( $object->Update() ) { $event->status = kEvent::erSUCCESS; - $event->setRedirectParams(Array('opener' => 's'), true); - $email_event_user =& $this->Application->EmailEventUser('LINK.ENHANCE.RENEW', $owner_id); - $email_event_admin =& $this->Application->EmailEventAdmin('LINK.ENHANCE.RENEW'); + $event->setRedirectParams(Array ('opener' => 's'), true); + $this->Application->EmailEventUser('LINK.ENHANCE.RENEW', $owner_id); + $this->Application->EmailEventAdmin('LINK.ENHANCE.RENEW'); } else { - $event->status=kEvent::erFAIL; - $event->redirect=false; + $event->status = kEvent::erFAIL; + $event->redirect = false; break; } } else { - $email_event_user =& $this->Application->EmailEventUser('LINK.ENHANCE.APPROVE', $owner_id); - $email_event_admin =& $this->Application->EmailEventAdmin('LINK.ENHANCE.APPROVE'); + $this->Application->EmailEventUser('LINK.ENHANCE.APPROVE', $owner_id); + $this->Application->EmailEventAdmin('LINK.ENHANCE.APPROVE'); } } } @@ -587,12 +620,14 @@ * Redirects to cancel template on front-end * * @param kEvent $event + * @return void + * @access protected */ - function OnCancel(&$event) + protected function OnCancel(&$event) { parent::OnCancel($event); - if (!$this->Application->isAdmin) { + if ( !$this->Application->isAdmin ) { $event->SetRedirectParam('opener', 's'); $event->redirect = $this->Application->GetVar('cancel_template'); } @@ -732,21 +767,24 @@ * Removes enhancements on listing delete * * @param kEvent $event + * @return void + * @access protected */ - function OnMassDelete(&$event) + protected function OnMassDelete(&$event) { - $object =& $event->getObject( Array('skip_autoload' => true) ); + $object =& $event->getObject( Array ('skip_autoload' => true) ); + /*@var $object kDBItem */ + $ids = $this->StoreSelectedIDs($event); - foreach($ids as $id) - { + foreach ($ids as $id) { $object->Load($id); - if($object->GetDBField('Status') == 1) - { - $original_values = $object->GetFieldValues(); - $this->ResetLink($original_values); + + if ( $object->GetDBField('Status') == STATUS_ACTIVE ) { + $this->ResetLink( $object->GetFieldValues() ); } } + parent::OnMassDelete($event); } Index: in-news/units/articles/articles_event_handler.php =================================================================== --- in-news/units/articles/articles_event_handler.php (revision 14590) +++ in-news/units/articles/articles_event_handler.php (working copy) @@ -20,8 +20,11 @@ * Filters out archived articles * * @param kEvent $event + * @return void + * @access protected + * @see kDBEventHandler::OnListBuild() */ - function SetCustomQuery(&$event) + protected function SetCustomQuery(&$event) { parent::SetCustomQuery($event); @@ -414,8 +417,10 @@ * Create missing excerpt * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemUpdate(&$event) + protected function OnBeforeItemUpdate(&$event) { parent::OnBeforeItemUpdate($event); @@ -427,8 +432,10 @@ * Create missing excerpt * * @param kEvent $event + * @return void + * @access protected */ - function OnBeforeItemCreate(&$event) + protected function OnBeforeItemCreate(&$event) { parent::OnBeforeItemCreate($event); @@ -496,20 +503,25 @@ * Sets default expiration based on module setting * * @param kEvent $event + * @return void + * @access protected */ - function OnPreCreate(&$event) + protected function OnPreCreate(&$event) { parent::OnPreCreate($event); - if ($event->status == kEvent::erSUCCESS) { - $object =& $event->getObject(); + if ( $event->status != kEvent::erSUCCESS ) { + return ; + } - $archive_days = $this->Application->ConfigValue('News_Archive'); - if ($archive_days) { - $expire_date = adodb_mktime() + $archive_days * 3600 * 24; - $object->SetDBField('EndOn_date', $expire_date); - $object->SetDBField('EndOn_time', $expire_date); - } + $object =& $event->getObject(); + /* @var $object kDBItem */ + + $archive_days = $this->Application->ConfigValue('News_Archive'); + if ( $archive_days ) { + $expire_date = adodb_mktime() + $archive_days * 3600 * 24; + $object->SetDBField('EndOn_date', $expire_date); + $object->SetDBField('EndOn_time', $expire_date); } }