Exemplo n.º 1
0
 public function flagAction()
 {
     // Set an empty layout for view
     $this->_helper->layout()->setLayout('empty');
     // Get requests
     $params = $this->getRequest()->getParams();
     $flaggedId = $params['flaggedid'];
     // Models for the job
     $auth = Zend_Auth::getInstance()->getIdentity();
     $userId = $auth->user_id;
     $flagmodel = new Default_Model_CommentFlags();
     $flagExists = $flagmodel->flagExists($flaggedId, $userId);
     $commentmodel = new Default_Model_Comments();
     $commentExists = $commentmodel->commentExists($flaggedId);
     if ($commentExists == true) {
         if ($flagExists == true) {
             $success = 0;
         } elseif ($flagExists == false) {
             $success = 1;
             $flagmodel->addFlag($flaggedId, $userId);
         }
     } elseif ($commentExists == false) {
         $success = 0;
     }
     $this->view->success = $success;
 }
Exemplo n.º 2
0
 public static function getLatestCommentsbyCompetitorId($competitorId, $limit = 1)
 {
     $model = new Default_Model_Comments();
     $select = $model->getMapper()->getDbTable()->select()->from(array('comments'), array('id', 'name', 'comment', 'created'))->where('competitorId = ?', $competitorId);
     $select->where('status = ?', '1');
     $select->order('created DESC')->where('NOT deleted');
     $select->limit($limit);
     if ($limit == 1) {
         $result = $model->fetchRow($select);
     } else {
         $result = $model->fetchAll($select);
     }
     return $result;
 }
Exemplo n.º 3
0
 public function deleteAction()
 {
     $id = $this->getRequest()->getParam('id');
     $idProject = $this->getRequest()->getParam('idProject');
     if ($id) {
         $model = new Default_Model_Comments();
         if ($model->find($id)) {
             if ($model->delete()) {
                 $this->_flashMessenger->addMessage("<div class='success  canhide'><p>" . Zend_Registry::get('translate')->_('Comment deleted successfully') . "</p><a href='javascript:;'></a></div>");
             } else {
                 $this->_flashMessenger->addMessage("<div class='failure canhide'><p>" . Zend_Registry::get('translate')->_('Comment not deleted') . "</p><a href='javascript:;'></a></div>");
             }
         } else {
             $this->_flashMessenger->addMessage("<div class='failure canhide'><p>" . Zend_Registry::get('translate')->_('Error deleting comment') . "!</p><a href='javascript:;'></a></div>");
         }
     }
     $this->_redirect('/projects/details/id/' . $idProject);
 }
Exemplo n.º 4
0
 public function commentflagsAction()
 {
     // Get all POST-parameters
     $posts = $this->_request->getPost();
     // Get models for the job
     $flagmodel = new Default_Model_CommentFlags();
     $commentmodel = new Default_Model_Comments();
     $contentmodel = new Default_Model_Content();
     if ($posts) {
         // Remove comment text ("Comment removed"-text)
         if ($posts['rm'] == "comment") {
             foreach ($posts as $key => $post) {
                 if ($key != "rm" && $key != "selectall") {
                     // Flags from comment_flags_cfl
                     $cmf_ids = $flagmodel->getFlagsByCommentId($key);
                     foreach ($cmf_ids as $cmf_id) {
                         $flagmodel->removeFlag($cmf_id);
                     }
                     // Text from comments_cmt
                     $commentmodel->removeCommentText($key);
                 }
             }
         }
         // Remove flags
         if ($posts['rm'] == "flag") {
             foreach ($posts as $key => $post) {
                 if ($key != "rm" && $key != "selectall") {
                     // Flags from comment_flags_cfl
                     $cmf_ids = $flagmodel->getFlagsByCommentId($key);
                     foreach ($cmf_ids as $cmf_id) {
                         $flagmodel->removeFlag($cmf_id);
                     }
                 }
             }
         }
     }
     $flagItems = $flagmodel->getAllFlags();
     // Awesome algorithm for counting how many flags each flagged comment has
     $tmpCount = array();
     foreach ($flagItems as $flagItem) {
         $tmpCount[$flagItem['id_comment_cmf']]++;
     }
     arsort($tmpCount);
     $data = array();
     $count = 0;
     // Loop and re-arrange our variables
     foreach ($tmpCount as $cmt_id => $cmt_count) {
         $comment = $commentmodel->getById($cmt_id);
         $comment = $comment['Data']['body_cmt'];
         $content_id = $commentmodel->getContentIdsByCommentId($cmt_id);
         $content_id = $content_id[0]['id_cnt_cmt'];
         $content_url = $this->_urlHelper->url(array('controller' => 'view', 'action' => $content_id, 'language' => $this->view->language), 'lang_default', true);
         $data[$count]['cnt_id'] = $content_id;
         $data[$count]['cnt_title'] = $contentmodel->getContentHeaderByContentId($content_id);
         $data[$count]['cnt_url'] = $content_url;
         $data[$count]['cmt_id'] = $cmt_id;
         $data[$count]['cmt_body'] = $comment;
         $data[$count]['cmt_count'] = $cmt_count;
         $count++;
     }
     // Go!
     $this->view->comments = $data;
 }
Exemplo n.º 5
0
 public function displaycommentsAction()
 {
     $this->_helper->layout->disableLayout();
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
     }
     $useridsArr = array();
     $usernamesArr = array();
     $usernames = array();
     $userids = '';
     $commentsModel = new Default_Model_Comments();
     $id = $this->_request->getParam('detailid');
     $flag = $this->_request->getParam('dispFlag');
     $limitcount = $this->_request->getParam('limcount');
     if ($limitcount == '2') {
         $commentsData = $commentsModel->getComments($id, '2');
     } else {
         $commentsData = $commentsModel->getComments($id, '100');
     }
     $actualcommentData = $commentsModel->getComments($id, 'all');
     $j = 0;
     for ($i = 0; $i < sizeof($commentsData); $i++) {
         if (!in_array($commentsData[$i]['from_id'], $useridsArr)) {
             $useridsArr[$j] = $commentsData[$i]['from_id'];
             $j++;
         }
     }
     $userids = implode(',', $useridsArr);
     if ($userids != '' || $userids != ',') {
         $usernamesArr = $commentsModel->getuserNames($userids);
     }
     for ($i = 0; $i < sizeof($usernamesArr); $i++) {
         $usernames[$usernamesArr[$i]['id']] = $usernamesArr[$i]['userfullname'];
     }
     $this->view->actualcount = count($actualcommentData);
     $this->view->limitcount = $limitcount;
     $this->view->usernames = $usernames;
     $this->view->commentsData = $commentsData;
     $this->view->loginuserid = $loginUserId;
 }
Exemplo n.º 6
0
 /**
  *   getDataForView
  *
  *   Get content by id.
  *   Is this function used anywhere?
  *   If not, this function should probably be removed.
  *
  *   @param ineteger $id
  *   @return array
  */
 public function getDataForView($id = 0)
 {
     // Array for content data
     $data = array();
     // Find content row by id
     //$rowset = $this->find((int)$id)->current();
     $select = $this->_db->select()->from(array('contents_cnt' => 'contents_cnt'), array('*'))->where('id_cnt = ?', $id);
     $result = $this->_db->fetchAll($select);
     // If content was found
     if (count($result) == 1) {
         $data['Content']['Data'] = $result[0];
         // Find Ratings
         //$select_ratings = $this->select()->from('content_ratings_crt', array('SUM(rating_crt) AS rate_crt'));
         //$ratings = $rowset->findDependentRowset('Default_Model_ContentRatings', 'RatingsContent', $select_ratings)->toArray();
         $ratings = new Default_Model_ContentRatings();
         $rating = $ratings->getById($id);
         // Find content owners
         //$content_owner = $rowset->findManyToManyRowset('Default_Model_User', 'Default_Model_ContentHasUser');
         $cntHasUser = new Default_Model_ContentHasUser();
         $owners = $cntHasUser->getContentOwners($id);
         // Find owners
         $userModel = new Default_Model_User();
         $i = 0;
         foreach ($owners as $owner) {
             $data['Content']['Data']['Owners'][$i] = $userModel->getSimpleUserDataById($owner);
             $i++;
         }
         // Find content comments
         //$select_comment = $this->select()->order('created_cmt ASC');
         //$comments = $rowset->findDependentRowset('Default_Model_Comments', 'CommentContent', $select_comment);
         $commentModel = new Default_Model_Comments();
         $comments = $commentModel->getAllByContentId($id);
         /*  comment owner username is fetched in the previous query, no need for this anymore
             			 // Array for comment owners
             			 $comment_owners = array();
             
             			 // Go through all comments
             			 foreach($comments as $cmt)
             			 {
             			 // Find comment owner
             			 $usr = $cmt->findDependentRowset('Default_Model_User', 'CommentUser')->toArray();
             
             			 // If owner found
             			 if(!empty($usr))
             			 {
             			 // Specify comment owner
             			 $comment_owners[$usr[0]['id_usr']] = $usr[0];
             			 } // end if
             			 } // end foreach
             			 */
         // Find content keywords
         //$tags = $rowset->findManyToManyRowset('Default_Model_Tags', 'Default_Model_ContentHasTag')->toArray();
         $cntHasTag = new Default_Model_ContentHasTag();
         $tags = $cntHasTag->getContentTags($id);
         // Find content links - needs updating to this version
         $links = array();
         //$rowset->findDependentRowset('Default_Model_Links')->toArray();
         // Find related content
         //$$related_content = $rowset->findManyToManyRowset('Default_Model_Content', 'Default_Model_ContentHasContent', 'ParentContent', 'ChildContent')->toArray();
         $contentHasContent = new Default_Model_ContentHasContent();
         $familyTree = $contentHasContent->getContentFamilyTree($id);
         // echo"<pre>"; print_r($tagArray); echo"</pre>"; die;
         // Gather and format content data a bit
         $data['Content']['Data']['rating'] = $rating;
         //$data['Content']['Data']['owner'] = $owner;
         $data['Content']['Tags'] = $tags;
         $data['Content']['Links'] = $links;
         $data['Content']['FamilyTree'] = $familyTree;
         $data['Comments']['Data'] = $comments;
         //echo"<pre>"; print_r($comments); echo"</pre>"; die;
         //$data['Comments']['Posters']        = $comment_owners;
     }
     return $data;
 }
Exemplo n.º 7
0
 /**
  * removeAction - Remove specified comment by content owner or comment owner
  *
  * @author Mikko Korpinen
  */
 public function removeAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         // Get requests
         $params = $this->getRequest()->getParams();
         $cmtid = $params['cmtid'];
         $cntid = $params['cntid'];
         $usrid = $auth->getIdentity()->user_id;
         $cntHasUsrModel = new Default_Model_ContentHasUser();
         $user_is_content_owner = $cntHasUsrModel->contentHasOwner($usrid, $cntid);
         $commentmodel = new Default_Model_Comments();
         $user_is_comment_owner = $commentmodel->userIsOwner($usrid, $cmtid);
         if ($user_is_content_owner || $user_is_comment_owner) {
             $flagmodel = new Default_Model_CommentFlags();
             $flags = $flagmodel->getFlagsByCommentId($cmtid);
             $commentExists = $commentmodel->commentExists($cmtid);
             if ($commentExists) {
                 if (count($flags) > 0) {
                     $flagmodel->removeFlagsByCommentId($cmtid);
                 }
                 $commentmodel->removeCommentText($cmtid);
             }
         }
         $redirectUrl = $this->_urlHelper->url(array('content_id' => $cntid, 'language' => $this->view->language), 'content_shortview', true);
         $this->_redirector->gotoUrl($redirectUrl);
     } else {
         $redirectUrl = $this->_urlHelper->url(array('language' => $this->view->language), 'index', true);
         $this->_redirector->gotoUrl($redirectUrl);
     }
 }
Exemplo n.º 8
0
 public function detailsAction()
 {
     $userId = null;
     $auth = Zend_Auth::getInstance();
     $authAccount = $auth->getStorage()->read();
     if (null != $authAccount) {
         if (null != $authAccount->getId()) {
             $this->view->userlogat = $authAccount;
         }
     }
     $id = (int) $this->getRequest()->getParam('id');
     if ($id) {
         // BEGIN: Find model
         $model = new Default_Model_RecurrentExpenses();
         if ($model->find($id)) {
             $this->view->result = $model;
         }
         $select = $model->getMapper()->getDbTable()->select()->where('NOT deleted')->order(array('created DESC'));
         $result = $model->fetchAll($select);
         // END: Find model
         //START: Adaugare comment
         $form_comments = new Default_Form_Comments();
         $form_comments->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/comments.phtml'))));
         $this->view->plugin_form_comments = $form_comments;
         if ($this->getRequest()->isPost()) {
             $model = new Default_Model_Comments();
             $action = $this->getRequest()->getPost('action');
             if ($form_comments->isValid($this->getRequest()->getPost())) {
                 $model->setOptions($form_comments->getValues());
                 $model->setIdProject($id);
                 $saved_comment = $model->save();
                 if ($saved_comment) {
                     $admins = Needs_Tools::findAdmins();
                     $adminIds = Needs_Tools::findAdmins('id');
                     foreach ($adminIds as $adminId) {
                         $emailTemplate = new Default_Model_EmailTemplates();
                     }
                     $auth = Zend_Auth::getInstance();
                     $authAccount = $auth->getStorage()->read();
                     if (null != $authAccount) {
                         if (null != $authAccount->getId()) {
                             $user = new Default_Model_Users();
                             $user->find($authAccount->getId());
                         }
                     }
                     $select = $emailTemplate->getMapper()->getDbTable()->select()->where('const = ?', 'adaugare_comentariu_admin')->limit(1);
                     $emailTemplate->fetchRow($select);
                     if (NULL != $emailTemplate->getContent()) {
                         $emailArray = array();
                         $name = $user->name . ' ' . $user->surname;
                         $message = $emailTemplate->getContent();
                         $message = str_replace("{" . "\$" . "name}", $name, $message);
                         $notification = new Default_Model_NotificationMessages();
                         $notification->setIdUser($authAccount->getId());
                         $notification->setIdProject($id);
                         $notification->setSubject($emailTemplate->getSubject());
                         $notification->setMessage($message);
                         if ($idNotification = $notification->save()) {
                             $notify = new Default_Model_NotificationTo();
                             $notify->setIdNotification($idNotification);
                             $notify->setStatus('1');
                             foreach ($adminIds as $adminId) {
                                 $notify->setIdUserTo($adminId);
                                 $notify->save();
                             }
                         } else {
                             $this->_flashMessenger->addMessage("<div class='failure canhide'><p>Notificarile nu au fost salvate cu succes<a href='javascript:;'></a></p></div>");
                         }
                         $emailArray['subject'] = $emailTemplate->getSubject();
                         $emailArray['content'] = $message;
                         $emailArray['toEmail'] = $admins;
                         $emailArray['toName'] = $name;
                         $emailArray['fromEmail'] = EMAIL;
                         $emailArray['fromName'] = FROM_NAME;
                         $emailArray['SMTP_USERNAME'] = SMTP_USERNAME;
                         $emailArray['SMTP_PASSWORD'] = SMTP_PASSWORD;
                         $emailArray['SMTP_PORT'] = SMTP_PORT;
                         $emailArray['SMTP_URL'] = SMTP_URL;
                         Needs_Tools::sendEmail($emailArray);
                     }
                     $this->_flashMessenger->addMessage("<div class='success  canhide'><p>The comment was added successfully!<a href='javascript:;'></a></p></div>");
                 } else {
                     $this->_flashMessenger->addMessage("<div class='failure canhide'><p>The comment was not added successfully!<a href='javascript:;'></a></p></div>");
                 }
                 $this->_redirect(WEBROOT . '/recurrent-expenses/details/id/' . $id);
             }
         }
         //end adaugare comment
         //$modelc = new Default_Model_Comments();
         //			$select = $modelc->getMapper()->getDbTable()->select()
         //			->from(array('c' => 'comment'), array('c.*'))
         //			->where("NOT c.deleted")
         //			->where("c.idParent IS NULL")
         //			->where("c.idProduct=?",$model->getId())
         //			->order(array('c.created DESC'));
         //			$resultc = $modelc->fetchAll($select);
         //
         //			if(NULL != $resultc)
         //			{
         //				$paginator = Zend_Paginator::factory($resultc);
         //				$paginator->setItemCountPerPage(25);
         //				$paginator->setCurrentPageNumber($this->_getParam('page'));
         //				$paginator->setPageRange(5);
         //				$this->view->resultc = $paginator;
         //				$this->view->itemCountPerPage = $paginator->getItemCountPerPage();
         //				$this->view->totalItemCount = $paginator->getTotalItemCount();
         //
         //				Zend_Paginator::setDefaultScrollingStyle('Sliding');
         //				Zend_View_Helper_PaginationControl::setDefaultViewPartial('_pagination.phtml');
         //			}
     }
 }
Exemplo n.º 9
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'];
 }
Exemplo n.º 10
0
 /**
  * getCommentsFromDatabase
  * 
  * gets the comments from database
  * 
  * @param int $id_usr, current user
  * @param unixtime $time, time if checking for new comments
  * @return array
  */
 private function getCommentsFromDatabase($id_usr = 0, $time = 0)
 {
     $commentModel = new Default_Model_Comments();
     $comments = $commentModel->getComments($this->_type, $this->_id, $id_usr, $time);
     $comments = $time == 0 ? $this->getCommentChilds($comments) : $comments;
     if (count($comments) != 0) {
         $this->setLastUpdateTime();
     }
     return $comments;
 }
Exemplo n.º 11
0
 public function delete(Default_Model_Comments $value)
 {
     $id = $value->getId();
     $data = array('deleted' => '1');
     $this->getDbTable()->update($data, array('id = ?' => $id));
     $this->getDbTable()->update($data, array('idParent = ?' => $id));
     return $id;
 }