public function addMyAction() { $userRecordsTag = new UserRecordsTag(); $tagName = $_POST['tag']; $itemId = $_POST['itemId']; $userRecordsTag->record_type = 'Item'; $userRecordsTag->record_id = $itemId; $tag = $this->_helper->db->getTable('Tag')->findOrNew($tagName); $userRecordsTag->tag_id = $tag->id; if ($userRecordsTag->save(false)) { $response = array('status' => 'OK', 'added' => $tag->id, 'html' => $this->_tagResponseHtml($tag)); } else { $response = array('status' => 'FAIL', 'added' => $tag->id); } $this->_helper->json($response); }
/** * Add the UserRecordTag when a tag is added. If the user role's tags are private, also delete the records_tags row * @param array $args */ public function hookAddItemTag($args) { $user = current_user(); if ($user && in_array($user->role, unserialize(get_option('user-tags-private-roles')))) { $recordsTagsTable = $this->_db->getTable('RecordsTags'); $item = $args['record']; $added = $args['added']; foreach ($added as $tag) { $userRecordsTag = new UserRecordsTag(); $userRecordsTag->tag_id = $tag->id; $userRecordsTag->record_type = 'Item'; $userRecordsTag->record_id = $item->id; $userRecordsTag->save(); //kill the record from records_tags. Oh records_tags row, we hardly knew ye $recordsTag = $recordsTagsTable->findForRecordAndTag($item, $tag); if ($recordsTag) { $recordsTag->delete(); } } } }