/** * adminunlinkAction * * Shows contents which are linket to campaign. Campaign(group) admin can select and remove link. * * @author Mikko Korpinen */ public function adminunlinkAction() { // Get authentication $auth = Zend_Auth::getInstance(); // If user has identity if ($auth->hasIdentity()) { // Get requests $params = $this->getRequest()->getParams(); $relatestoid = $params['relatestoid']; $groupId = $params['groupid']; if (!isset($relatestoid) && !isset($groupId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $groupAdminsModel = new Default_Model_GroupAdmins(); $groupAdmins = $groupAdminsModel->getGroupAdmins($groupId); $user = $auth->getIdentity(); if (!$groupAdminsModel->userIsAdmin($groupId, $user->user_id)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $campaignModel = new Default_Model_Campaigns(); $campaignexists = $campaignModel->campaignExists($relatestoid); if ($campaignexists) { $relatesToCampaign = $campaignModel->getCampaignById($relatestoid); $this->view->relatesToCampaignName = $relatesToCampaign['name_cmp']; $campaignContents = $campaignModel->getAllContentsInCampaign($relatestoid); $campaignFlagContents = array(); $campaignNormalContents = array(); $contentflagmodel = new Default_Model_ContentFlags(); // Check if content is flaged foreach ($campaignContents as $content) { $cfl_ids = $contentflagmodel->getFlagsByContentId($content['id_cnt']); if (!empty($cfl_ids)) { $campaignFlagContents[] = $content; } else { $campaignNormalContents[] = $content; } } } $this->view->campaignexists = $campaignexists; $this->view->relatesToId = $relatestoid; $this->view->contents = $campaignNormalContents; $this->view->flagcontents = $campaignFlagContents; $this->view->userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($groupAdmins, 'id_usr', $user->user_id); } else { // If not logged, redirecting to system message page $message = 'content-link-not-logged'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }
public function contentflagsAction() { // Get all POST-parameters $posts = $this->_request->getPost(); // Get models for the job $contentflagmodel = new Default_Model_ContentFlags(); $commentflagmodel = new Default_Model_CommentFlags(); $contentmodel = new Default_Model_Content(); $commentmodel = new Default_Model_Comments(); // Get cache from registry $cache = Zend_Registry::get('cache'); $cachePosts = array(); if ($handle = opendir(APPLICATION_PATH . '/../tmp')) { while (false !== ($file = readdir($handle))) { if (strcmp(substr($file, 0, 24), "zend_cache---IndexPosts_") == 0) { $cachePosts[] = $file; } } closedir($handle); } // Recent posts id if ($posts) { // Remove content if ($posts['rm'] == "content") { foreach ($posts as $key => $post) { if ($key != "rm" && $key != "selectall") { // Remove content and all dependign stuff $content = new Default_Model_Content(); $contentRemoveChecker = $content->removeContentAndDepending($key); if (isset($cachePosts)) { // Remove recent post cache foreach ($cachePosts as $cachePost) { $cache->remove(mb_substr($cachePost, 13)); } } } } } // Unpublish content if ($posts['rm'] == "pubflag") { foreach ($posts as $key => $post) { if ($key != "rm" && $key != "selectall") { // Flags from content_flags_cfl $cfl_ids = $contentflagmodel->getFlagsByContentId($key); foreach ($cfl_ids as $cfl_id) { $contentflagmodel->removeFlag($cfl_id); } // Unpublish $contentmodel->publishContent($key, 0); if (isset($cachePosts)) { // Remove recent post cache foreach ($cachePosts as $cachePost) { $cache->remove(mb_substr($cachePost, 13)); } } } } } // Remove flags if ($posts['rm'] == "flag") { foreach ($posts as $key => $post) { if ($key != "rm" && $key != "selectall") { // Flags from content_flags_cfl $cfl_ids = $contentflagmodel->getFlagsByContentId($key); foreach ($cfl_ids as $cfl_id) { $contentflagmodel->removeFlag($cfl_id); } } } } } // Awesome algorithm for counting how many flags each flagged content has $flagItems = $contentflagmodel->getAllFlags(); $tmpCount = array(); foreach ($flagItems as $flagItem) { $tmpCount[$flagItem['id_content_cfl']]++; } arsort($tmpCount); $data = array(); $count = 0; // Loop and re-arrange our variables foreach ($tmpCount as $cnt_id => $cnt_count) { $content = $contentmodel->getById($cnt_id); $data[$count]['id'] = $cnt_id; $data[$count]['ctype'] = $content['Content']['Data']['id_cty_cnt']; $data[$count]['title'] = $content['Content']['Data']['title_cnt']; $data[$count]['lead'] = $content['Content']['Data']['lead_cnt']; $data[$count]['body'] = $content['Content']['Data']['body_cnt']; $data[$count]['count'] = $cnt_count; $data[$count]['url'] = $this->_urlHelper->url(array('controller' => 'view', 'action' => $cnt_id, 'language' => $this->view->language), 'lang_default', true); $count++; } // Go! $this->view->contents = $data; }
/** * removeContent * Removes specified content from the database and all related stuff * * @param int id_cnt The id of content to be removed * @return boolean array $contentRemoveChecker * @author Mikko Korpinen */ public function removeContentAndDepending($id_cnt = 0) { $contentRemoveChecker = array('removeContentFromCampaign' => true, 'removeContentFromContent' => true, 'removeContentFromFutureinfoClasses' => true, 'removeContentFromIndustries' => true, 'removeContentFromInnovationTypes' => true, 'removeContentFromRelatedCompanies' => true, 'removeContentRelatedCompanies' => true, 'removeContentFromTags' => true, 'removeContentTags' => true, 'removeContentFromUser' => true, 'removeContentViews' => true, 'removeContentFlags' => true, 'removeContentCommentFlags' => true, 'removeContentRatings' => true, 'removeContentFiles' => true, 'removeUserFromFavorites' => true, 'removeContent' => true, 'removeContentComments' => true); // cnt_has_cmp $cmpHasCnt = new Default_Model_CampaignHasContent(); if (!$cmpHasCnt->removeContentCampaignLinks($id_cnt)) { $contentRemoveChecker['removeContentFromCampaign'] = false; } // cnt_has_cnt $cntHasCnt = new Default_Model_ContentHasContent(); if (!$cntHasCnt->removeContentFromContents($id_cnt)) { $contentRemoveChecker['removeContentFromContent'] = false; } // cnt_has_fic /* not used $cntHasFic = new Default_Model_ContentHasFutureinfoClasses(); if (!$cntHasFic->removeFutureinfoClassesFromContent($id_cnt)) $contentRemoveChecker['removeContentFromFutureinfoClasses'] = false; */ // cnt_has_grp // Not used? // cnt_has_ind /* not used $cntHasInd = new Default_Model_ContentHasIndustries(); if (!$cntHasInd->removeIndustriesFromContent($id_cnt)) $contentRemoveChecker['removeContentFromIndustries'] = false; */ // cnt_has_ivt /* not used $cntHasIvt = new Default_Model_ContentHasInnovationTypes(); if (!$cntHasIvt->removeInnovationTypesFromContent($id_cnt)) $contentRemoveChecker['removeContentFromInnovationTypes'] = false; */ // related_companies_rec and cnt_has_rec $cntHasRec = new Default_Model_ContentHasRelatedCompany(); $recs = $cntHasRec->getContentRelComps($id_cnt); $rec = new Default_Model_RelatedCompanies(); foreach ($recs as $id_rec) { if (!$cntHasRec->checkIfOtherContentHasRelComp($id_rec['id_rec'], $id_cnt)) { if (!$rec->removeRelComp($id_rec['id_rec'])) { $contentRemoveChecker['removeRelatedCompanies'] = false; } } } if (!$cntHasRec->removeContentRelComps($id_cnt)) { $contentRemoveChecker['removeContentFromRelatedCompanies'] = false; } // tags_tag and cnt_has_tag $cntHasTag = new Default_Model_ContentHasTag(); $tags = $cntHasTag->getContentTags($id_cnt); $tag = new Default_Model_Tags(); foreach ($tags as $id_tag) { if (!$cntHasTag->checkIfOtherContentHasTag($id_tag['id_tag'], $id_cnt)) { if (!$tag->removeTag($id_tag['id_tag'])) { $contentRemoveChecker['removeTags'] = false; } } } if (!$cntHasTag->removeContentTags($id_cnt)) { $contentRemoveChecker['removeContentFromTags'] = false; } // cnt_has_usr $cntHasUsr = new Default_Model_ContentHasUser(); if (!$cntHasUsr->removeUserFromContent($id_cnt)) { $contentRemoveChecker['removeContentFromUser'] = false; } // cnt_publish_times_pbt // Not used? // cnt_views_vws $cntWiewsVws = new Default_Model_ContentViews(); if (!$cntWiewsVws->removeContentViews($id_cnt)) { $contentRemoveChecker['removeContentViews'] = false; } // Flags from content_flags_cfl $contentflagmodel = new Default_Model_ContentFlags(); $cnfl_ids = $contentflagmodel->getFlagsByContentId($id_cnt); if (is_array($cnfl_ids)) { foreach ($cnfl_ids as $cfl_id) { if (!$contentflagmodel->removeFlag($cfl_id)) { $contentRemoveChecker['removeContentFlags'] = false; } } } // Flags from comment_flags_cfl $commentflagmodel = new Default_Model_CommentFlags(); $cmfl_ids = $commentflagmodel->getFlagsByContentId($id_cnt); if (is_array($cmfl_ids)) { foreach ($cmfl_ids as $cfl_id) { if (!$commentflagmodel->removeFlag($cfl_id)) { $contentRemoveChecker['removeContentCommentFlags'] = false; } } } // content_ratings_crt $contentRatingRct = new Default_Model_ContentRatings(); if (!$contentRatingRct->removeContentRatings($id_cnt)) { $contentRemoveChecker['removeContentRatings'] = false; } // files_fil $files = new Default_Model_Files(); if (!$files->removeFiles($id_cnt, "content")) { $contentRemoveChecker['removeContentFiles'] = false; } // links_lnk // Not used? // usr_has_fvr $usrHasFvr = new Default_Model_UserHasFavourites(); if (!$usrHasFvr->removeAllContentFromFavouritesByContentId($id_cnt)) { $contentRemoveChecker['removeUserFromFavorites'] = false; } // contents_cnt $contentmodel = new Default_Model_Content(); if (!$contentmodel->removeContent($id_cnt)) { $contentRemoveChecker['removeContent'] = false; } // coments_cmt $commentmodel = new Default_Model_Comments(); if (!$commentmodel->removeAllContentComments($id_cnt)) { $contentRemoveChecker['removeContentComments'] = false; } return $contentRemoveChecker; }