Array ('self' => true), 'OnDeleteAssocItem' => Array ('self' => 'delete'), ); $this->permMapping = array_merge($this->permMapping, $permissions); } /** * Checks permissions * * @param kEvent $event */ // function CheckPermission($event) // { // if ( $event->Name == 'OnNewReport' ) { // $perm_helper = $this->Application->recallObject('PermissionsHelper'); // /* @var $perm_helper kPermissionsHelper */ // // return $perm_helper->finalizePermissionCheck($event, $this->Application->LoggedIn()); // } // // return parent::CheckPermission($event); // } /** * Prefills missing fields * * @param kEvent $event * @return void * @access protected */ protected function OnBeforeItemCreate(kEvent $event) { parent::OnBeforeItemCreate($event); /** @var kDBItem $object */ $object = $event->getObject(); $item_prefix = $this->Application->GetVar('item_prefix'); $item_id = $this->Application->GetVar($item_prefix . '_id'); if ( $item_id ) { $object->SetDBField('ItemPrefix', $item_prefix); $object->SetDBField('ItemId', $item_id); } $object->SetDBField('ReportedById', $this->Application->RecallVar('user_id')); } /** * Send e-mail after new spam report was created * * @param kEvent $event * @return void * @access protected */ protected function OnAfterItemCreate(kEvent $event) { parent::OnAfterItemCreate($event); /** @var kDBItem $object */ $object = $event->getObject(); $item_prefix = $object->GetDBField('ItemPrefix'); if ( preg_match('/rev$/', $item_prefix) ) { /** @var kDBItem $item */ $item = $this->Application->recallObject($item_prefix); $object->SetDBField('ItemName', $item->GetDBField('ReviewText')); } $this->Application->emailAdmin('SPAM.REPORT'); } /** * Sends new spam report * * @param kEvent $event */ function OnNewReport($event) { /** @var AjaxFormHelper $ajax_form_helper */ $ajax_form_helper = $this->Application->recallObject('AjaxFormHelper'); $ajax_form_helper->transitEvent($event, 'OnCreate'); } /** * Deletes item, associated with given spam report * * @param kEvent $event */ function OnDeleteAssocItem($event) { $temp_handlers = Array (); $ids = $this->StoreSelectedIDs($event); /** @var kDBItem $object */ $object = $event->getObject( Array ('skip_autoload' => true) ); foreach ($ids as $id) { $object->Load($id); $item_prefix = $object->GetDBField('ItemPrefix'); if ( !isset($temp_handlers[$item_prefix]) ) { $temp_handlers[$item_prefix] = $this->Application->recallObject($item_prefix . '_TempHandler', 'kTempTablesHandler'); } $temp_handlers[$item_prefix]->DeleteItems($item_prefix, '', Array ($object->GetDBField('ItemId'))); } $this->clearSelectedIDs($event); $event->SetRedirectParam('opener', 'u'); } }