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; }
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; }
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); }
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; }
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; }
/** * 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; }
/** * 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); } }
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'); // } } }
/** * 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']; }
/** * 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; }
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; }