Esempio n. 1
0
 /**
  *   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;
 }
Esempio n. 2
0
 /**
  * removeadminlinkAction
  *
  * Remove link to content from campaign
  *
  * @author Mikko Korpinen
  */
 public function removeadminlinksAction()
 {
     // Get authentication
     $auth = Zend_Auth::getInstance();
     // If user has identity
     if ($auth->hasIdentity()) {
         $cmpId = $this->_request->getParam('cmpid');
         $this->view->cmpid = $cmpId;
         $cntId = $this->_request->getParam('cntid');
         $this->view->cntid = $cntId;
         if (!(isset($cmpId) && isset($cntId))) {
             $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
             $this->_redirector->gotoUrl($redirectUrl);
         }
         $cmpModel = new Default_Model_Campaigns();
         $cmp = $cmpModel->getCampaignById($cmpId);
         $grpId = $cmp['id_grp_cmp'];
         $usrId = $auth->getIdentity()->user_id;
         $grpadminmodel = new Default_Model_GroupAdmins();
         if (!$grpadminmodel->userIsAdmin($grpId, $usrId)) {
             $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
             $this->_redirector->gotoUrl($redirectUrl);
         }
         $cmphascntmodel = new Default_Model_CampaignHasContent();
         $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId);
         // TODO:
         // Tell the user that the unlink was created.
         // Redirect back to the current campaign's page.
         $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true);
         $this->_redirector->gotoUrl($target);
     } 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);
     }
 }
Esempio n. 3
0
 /**
  *   index page: Contains the content viewing functionality.
  *
  *   @todo   Implement group ownership user images and content links
  *   @todo   Include translation and content info for page title
  *   @todo   More from box should show ratings
  *   @todo   If not ajax "more from", at least separate to proper MVC
  *   @todo   Look over comment loading for data being fetched and not shown
  *   @todo   Comment rating, userpic (maybe not)
  *
  *   @param  id      integer     id of content to view
  *   @param  page    integer     (optional) Page number for paginator
  *   @param  count   integer     (optional) Count of content for paginator
  *   @param  rate    integer     (optional) Rating given by user
  */
 function indexAction()
 {
     // get requests
     $request = $this->getRequest();
     $params = $request->getParams();
     $baseUrl = Zend_Controller_Front::getInstance()->getBaseUrl();
     $absoluteBaseUrl = strtolower(trim(array_shift(explode('/', $_SERVER['SERVER_PROTOCOL'])))) . '://' . $_SERVER['HTTP_HOST'] . Zend_Controller_Front::getInstance()->getBaseUrl();
     // get content id from params, if not set or invalid, send a message
     $id = (int) $params['content_id'];
     if ($id == 0) {
         $this->flash('content-not-found', $baseUrl . '/' . $this->view->language . '/msg/');
     }
     // Get specific content data -- this could fail? Needs check?
     $contentModel = new Default_Model_Content();
     $contentData = $contentModel->getDataAsSimpleArray($id);
     // Translate content data
     $this->gtranslate->setLangFrom($contentData['language_cnt']);
     $contentData = $this->gtranslate->translateContent($contentData);
     $filesModel = new Default_Model_Files();
     $files = $filesModel->getFilenamesByCntId($id);
     // Get content owner id (groups to be implemented later)
     $contentHasUserModel = new Default_Model_ContentHasUser();
     $owner = $contentHasUserModel->getContentOwners($id);
     $ownerId = $owner['id_usr'];
     // Get authentication
     $auth = Zend_Auth::getInstance();
     if ($contentData['published_cnt'] == 0 && $auth->getIdentity()->user_id != $ownerId && !in_array("admin", $this->view->logged_user_roles)) {
         $this->flash('content-not-found', $baseUrl . '/' . $this->view->language . '/msg/');
     }
     // get rating from params (if set)
     $rate = isset($params['rate']) ? $params['rate'] : "NONE";
     // get favourite method, "add" or "remove"
     //$favouriteMethod = isset($params['favourite']) ? $params['favourite'] : "NONE";
     // get page number and comments per page (if set)
     $page = isset($params['page']) ? $params['page'] : 1;
     $count = isset($params['count']) ? $params['count'] : 10;
     // turn commenting off by default
     $user_can_comment = false;
     // turn rating off by default
     $user_can_rate = false;
     // Comment model
     $comment = new Default_Model_Comments();
     $parentId = isset($params['replyto']) ? $params['replyto'] : 0;
     // If user has identity
     if ($auth->hasIdentity() && $contentData['published_cnt'] == 1) {
         // enable comment form
         $user_can_comment = true;
         // enable rating if the content was not published by the user
         // (also used for flagging)
         if ($ownerId != $auth->getIdentity()->user_id) {
             $user_can_rate = true;
         }
         // generate comment form
         $comment_form = new Default_Form_CommentForm($parentId);
         // if there is something in POST
         if ($request->isPost()) {
             // Get comment form data
             $formData = $this->_request->getPost();
             // Validate and save comment data
             if ($comment_form->isValid($formData)) {
                 $user_id = $auth->getIdentity()->user_id;
                 $comment->addComment($id, $user_id, $formData);
                 $comment_form = new Default_Form_CommentForm($parentId);
                 if ($user_id != $ownerId) {
                     $user = new Default_Model_User();
                     $comment_sender = $user->getUserNameById($user_id);
                     $Default_Model_privmsg = new Default_Model_PrivateMessages();
                     $data = array();
                     $data['privmsg_sender_id'] = 0;
                     $data['privmsg_receiver_id'] = $ownerId;
                     $data['privmsg_header'] = 'You have new comment!';
                     $data['privmsg_message'] = '<a href="' . $baseUrl . "/" . $this->view->language . '/account/view/user/' . $comment_sender . '">' . $comment_sender . '</a> commented your content <a href="' . $baseUrl . "/" . $this->view->language . '/view/' . $id . '">' . $contentData['title_cnt'] . '</a>';
                     $data['privmsg_email'] = '';
                     // Send email to contentowner about new comment
                     // if its allowed
                     $notificationsModel = new Default_Model_Notifications();
                     $notifications = $notificationsModel->getNotificationsById($ownerId);
                     if (in_array('comment', $notifications)) {
                         $emailNotification = new Oibs_Controller_Plugin_Email();
                         $emailNotification->setNotificationType('comment')->setSenderId($user_id)->setReceiverId($ownerId)->setParameter('URL', $absoluteBaseUrl . "/en")->setParameter('SENDER-NAME', $comment_sender)->setParameter('CONTENT-ID', $id)->setParameter('CONTENT-TITLE', $contentData['title_cnt'])->setParameter('COMMENT', $formData['comment_message']);
                         if ($emailNotification->isValid()) {
                             $emailNotification->send();
                         } else {
                             //echo $emailNotification->getErrorMessage(); die;
                         }
                     }
                     $Default_Model_privmsg->addMessage($data);
                 }
             }
             // end if
         }
         // end if
         $this->view->comment_form = $comment_form;
     }
     // end if
     // get content type of the specific content viewed
     $contentTypesModel = new Default_Model_ContentTypes();
     $contentType = $contentTypesModel->getTypeById($contentData['id_cty_cnt']);
     // Get content innovation type / industry / division / group / class
     // and send to view... somehow.
     // TO BE IMPLEMENTED
     // Get content owner data
     $userModel = new Default_Model_User();
     $userData = $userModel->getSimpleUserDataById($ownerId);
     // get content owner picture ... to be implemented later
     $userImage = $userModel->getUserImageData($ownerId);
     // get other content from user.. function needs a looking-over!
     // Also it needs to be separated from this action so the MVC-is correct!
     $moreFromUser = $userModel->getUserContent($ownerId, 0, $id);
     // get related contents
     $relatedContents = $contentModel->getRelatedContents($id);
     // get (VIEWED) content views (returns a string directly)
     $contentViewsModel = new Default_Model_ContentViews();
     if (!$this->alreadyViewed($id)) {
         $contentViewsModel->increaseViewCount($id);
     }
     $views = $contentViewsModel->getViewsByContentId($id);
     // get content rating (returns a string directly)
     $contentRatingsModel = new Default_Model_ContentRatings();
     //$rating = $contentRatingsModel->getById($id);
     $rating = $contentRatingsModel->getPercentagesById($id);
     // $rate is gotten from params[], 1 and -1 are the only allowed
     if ($rate != "NONE" && ($rate == 1 || $rate == -1) && $auth->hasIdentity()) {
         if ($contentRatingsModel->addRating($id, $auth->getIdentity()->user_id, $rate)) {
             $this->view->savedRating = $rate;
             //$rating = $contentRatingsModel->getById($id);
             $rating = $contentRatingsModel->getPercentagesById($id);
         } else {
             $this->flash('rating-failed-msg', $baseUrl . '/en/msg/');
         }
     }
     // get contents total favourites
     $userFavouritesModel = new Default_Model_UserHasFavourites();
     $totalFavourites = $userFavouritesModel->getUsersCountByFavouriteContent($id);
     $totalFavourites = $totalFavourites[0]['users_count_fvr'];
     $isFavourite = $userFavouritesModel->checkIfContentIsUsersFavourite($id, $auth->getIdentity()->user_id);
     /*
      * favouritemethod comes from parameters sent by
      * ajax function (ajaxLoad_favourite(method)) in index.phtml in /view/.
      * this function gets parameter "method" (add/remove) from onClick event that is in index.ajax.phtml.
      * if this onClick event is activated by clicking "heart" (icon_fav_on/off) icon in content view page,
      * it runs the ajaxLoad_favourite(method) function which sends parameter "favourite" (add/remove) to
      * this viewController which then handles the adding or removing the content from favourites.
      */
     if ($favouriteMethod != "NONE" && $auth->hasIdentity()) {
         $favouriteUserId = $auth->getIdentity()->user_id;
         //If favourite method was "add", then add content to user favourites
         if ($favouriteMethod == "add" && !$isFavourite) {
             if ($userFavouritesModel->addContentToFavourites($id, $favouriteUserId)) {
                 $this->view->favouriteMethod = $favouriteMethod;
             } else {
                 $this->flash('favourite-adding-failed', $baseUrl . '/en/msg');
             }
         } elseif ($favouriteMethod == "remove" && $isFavourite) {
             if ($userFavouritesModel->removeUserFavouriteContent($id, $favouriteUserId)) {
                 $this->view->favouriteMethod = $favouriteMethod;
             } else {
                 $this->flash('favourite-removing-failed', $baseUrl . '/en/msg');
             }
         } else {
             unset($favouriteMethod);
         }
     }
     $favourite = array('total_favourites' => $totalFavourites, 'is_favourite' => $isFavourite);
     $languagesModel = new Default_Model_Languages();
     $languageName = $languagesModel->getLanguageByLangCode($contentData['language_cnt']);
     $gtranslateLangPair = $this->gtranslate->getLangPair();
     // get content tags - functions returns names as well
     // needs updating to proper MVC?
     $contentHasTagModel = new Default_Model_ContentHasTag();
     $tags = $contentHasTagModel->getContentTags($id);
     //echo "<pre>"; print_r($tags); echo "</pre>"; die;
     // get content links, to be implemented
     $links = array();
     // Get all content campaigns
     $campaignHasContentModel = new Default_Model_CampaignHasContent();
     $campaigns = $campaignHasContentModel->getContentCampaigns($id);
     // This functionality needs looking over (code and general idea)
     // get content family (array of children, parents and siblings)
     $contentHasContentModel = new Default_Model_ContentHasContent();
     $family = $contentHasContentModel->getContentFamilyTree($id);
     // split family array to child, parent and sibling arrays (full content)
     $children = array();
     $children_siblings = array();
     if (isset($family['children'])) {
         foreach ($family['children'] as $child) {
             $contenttypeid = $contentModel->getContentTypeIdByContentId((int) $child);
             $contenttype = $contentTypesModel->getTypeById($contenttypeid);
             if ($contenttype == "idea") {
                 $children[] = $contentModel->getDataAsSimpleArray((int) $child);
             } else {
                 $children_siblings[] = $contentModel->getDataAsSimpleArray((int) $child);
             }
             // $i++;
         }
     }
     $parents = array();
     $parent_siblings = array();
     if (isset($family['parents'])) {
         foreach ($family['parents'] as $parent) {
             $contenttypeid = $contentModel->getContentTypeIdByContentId((int) $parent);
             $contenttype = $contentTypesModel->getTypeById($contenttypeid);
             if ($contenttype == "idea") {
                 $parents[] = $contentModel->getDataAsSimpleArray((int) $parent);
             } else {
                 $parent_siblings[] = $contentModel->getDataAsSimpleArray((int) $parent);
             }
         }
     }
     // Here we get the rival solutions for a solution
     $rivals = array();
     if ($contentType == "idea" && isset($family['parents'])) {
         $i = 0;
         // First here is checked the parents of this solution (=the problem
         // or the future info)
         foreach ($family['parents'] as $parent) {
             // Get the family of the problem or future info
             $parents_family = $contentHasContentModel->getContentFamilyTree((int) $parent);
             // Get the children of the problem or future info
             if (isset($parents_family['children'])) {
                 // Going through the children
                 foreach ($parents_family['children'] as $parent_child) {
                     // Those children are rivals which are not this solution
                     // which is currently viewed
                     if ((int) $parent_child != $id) {
                         $rivals[$i] = $contentModel->getDataAsSimpleArray((int) $parent_child);
                     }
                 }
             }
             $i++;
         }
     }
     // get comments data
     // $commentList = $comment->getAllByContentId($id, $page, $count);
     $commentList = $comment->getCommentsByContent($id);
     $commentsSorted = array();
     $this->getCommentChilds($commentList, $commentsSorted, 0, 0, 3);
     // Get total comment count
     $commentCount = $comment->getCommentCountByContentId($id);
     // Calculate total page count
     $pageCount = ceil($commentCount / $count);
     // Custom pagination to fix memory error on large amount of data
     $paginator = new Zend_View();
     $paginator->setScriptPath('../application/views/scripts');
     $paginator->pageCount = $pageCount;
     $paginator->currentPage = $page;
     $paginator->pagesInRange = 10;
     // get content industries -- will be updated later.
     $cntHasIndModel = new Default_Model_ContentHasIndustries();
     $hasIndustry = $cntHasIndModel->getIndustryIdOfContent($id);
     $industriesModel = new Default_Model_Industries();
     $industriesArray = $industriesModel->getAllContentIndustryIds($hasIndustry);
     // roll values to an array
     /*$industries = array();
             foreach ($industriesArray as $industry) {
                 $value = $industriesModel->getNameById($industry);
                 // $industriesModel->getNameById($industry);
     
                if (!empty($value)) {
                     $industries[] = $value;
                 }
             }*/
     // Check if and when the content is modified and if its more than 10minutes ago add for the view
     $dateCreated = strtotime($contentData['created_cnt']);
     $dateModified = strtotime($contentData['modified_cnt']);
     $modified = 0;
     if (($dateModified - $dateCreated) / 60 > 10) {
         $modified = $contentData['modified_cnt'];
     }
     // Inject data to view
     $this->view->files = $files;
     $this->view->id = $id;
     $this->view->userImage = $userImage;
     $this->view->commentPaginator = $paginator;
     $this->view->commentData = $commentsSorted;
     $this->view->user_can_comment = $user_can_comment;
     $this->view->user_can_rate = $user_can_rate;
     $this->view->contentData = $contentData;
     $this->view->modified = $modified;
     $this->view->userData = $userData;
     $this->view->moreFromUser = $moreFromUser;
     $this->view->relatedContents = $relatedContents;
     $this->view->views = $views;
     $this->view->rating = $rating;
     $this->view->languageName = $languageName;
     $this->view->gtranslateLangPair = $gtranslateLangPair;
     $this->view->tags = $tags;
     $this->view->links = $links;
     $this->view->parents = $parents;
     $this->view->parent_siblings = $parent_siblings;
     $this->view->children = $children;
     $this->view->children_siblings = $children_siblings;
     $this->view->rivals = $rivals;
     $this->view->comments = $commentCount;
     $this->view->contentType = $contentType;
     $this->view->count = $count;
     $this->view->campaigns = $campaigns;
     //$this->view->favourite			= $favourite;
     // Inject title to view
     $this->view->title = $this->view->translate('index-home') . " - " . $contentData['title_cnt'];
 }
Esempio n. 4
0
 public function relatedcampaignsAction()
 {
     if (!isset($this->params['id_cnt'])) {
         echo "0";
         return false;
     }
     if (isset($this->params['more'])) {
         $limit = 100;
         $more = true;
     }
     $campaignHasContentModel = new Default_Model_CampaignHasContent();
     $campaigns = $campaignHasContentModel->getContentCampaigns($this->params['id_cnt']);
     $this->view->campaigns = $campaigns;
 }
Esempio n. 5
0
 function leaveAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         // Get group id and user id.
         $grpId = $this->_request->getParam('groupid');
         $usrId = $auth->getIdentity()->user_id;
         // Get confirm 0 = question, 1 = leave and delete also content links from group campaigns, 2 = leave only
         $confirm = $this->_request->getParam('confirm');
         $groupAdminsModel = new Default_Model_GroupAdmins();
         if ($groupAdminsModel->userIsAdmin($grpId, $usrId)) {
             // Group admin can't leave the group.
             $message = "You can't leave this group " . "because you're its admin.";
             $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
             $this->flash($message, $url);
         } else {
             // Get group campaings where user have content linked
             $usrModel = new Default_Model_User();
             $campaigns = $usrModel->getUserCampaignsWhereUserHasContent($usrId, $grpId);
             //echo '<pre>'; var_dump($campaigns);
             //$contents = $usrModel->getUserContentsInCampaign($usrId, $campaigns[1]['id_cmp']);
             //echo '<pre>'; var_dump($contents);
             if (isset($confirm) && $confirm == 1) {
                 // Leave group and delete all content linking from group campaigns
                 $usrHasGroupModel = new Default_Model_UserHasGroup();
                 $cmpHasCntModel = new Default_Model_CampaignHasContent();
                 $usrHasGroupModel->removeUserFromGroup($grpId, $usrId);
                 foreach ($campaigns as $campaign) {
                     $contents = $usrModel->getUserContentsInCampaign($usrId, $campaign['id_cmp']);
                     foreach ($contents as $content) {
                         $cmpHasCntModel->removeContentFromCampaign($content['id_cmp'], $content['id_cnt']);
                     }
                 }
                 $redirect = true;
             } elseif (isset($confirm) && $confirm == 2) {
                 // Only leave campaign
                 $usrHasGroupModel = new Default_Model_UserHasGroup();
                 $usrHasGroupModel->removeUserFromGroup($grpId, $usrId);
                 $redirect = true;
             } else {
                 // No confirmation yet
                 $this->view->campaigns = $campaigns;
                 $this->view->contentInCampaigns = count($campaigns);
                 $this->view->grpId = $grpId;
                 $redirect = false;
             }
         }
         if ($redirect) {
             // Redirect back to the group page.
             $target = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true);
             $this->_redirector->gotoUrl($target);
         }
     } else {
         // Not logged in
         $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirector->gotoUrl($target);
     }
 }
Esempio n. 6
0
 /**
  * removelinkAction
  *
  * Remove link to content from campaign
  *
  * @author Mikko Korpinen
  */
 public function removelinksAction()
 {
     $cmpId = $this->_request->getParam('cmpid');
     $this->view->cmpid = $cmpId;
     $cntId = $this->_request->getParam('cntid');
     $this->view->cntid = $cntId;
     if (!(isset($cmpId) && isset($cntId))) {
         $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirector($redirectUrl);
     }
     $cmphascntmodel = new Default_Model_CampaignHasContent();
     $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId);
     // TODO:
     // Tell the user that the link was created.
     // Redirect back to the current campaign's page.
     $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true);
     $this->_redirector->gotoUrl($target);
 }
Esempio n. 7
0
 /** 
  *   removeCampaign
  *   Removes the campaign from the database
  *   
  *   @param int id_cmp
  *   @author Pekka Piispanen, Mikko Aatola
  */
 public function removeCampaign($id_cmp = 0)
 {
     // Delete campaign-content links from cmp_has_cnt
     $cmpHasCntModel = new Default_Model_CampaignHasContent();
     $cmpHasCntModel->removeAllContentFromCampaign($id_cmp);
     // Delete campaign weblinks
     $cmpWeblinksModel = new Default_Model_CampaignWeblinks();
     $cmpWeblinksModel->removeCampaignWeblinks($id_cmp);
     // Delete groups files
     $filesModel = new Default_Model_Files();
     $filesModel->removeFiles($id_cmp, "campaign");
     // Delete campaign.
     $where = $this->getAdapter()->quoteInto('id_cmp = ?', $id_cmp);
     $this->delete($where);
 }