Exemple #1
0
 public function view()
 {
     $ml = new ConversationMessageList();
     $ml->setItemsPerPage(20);
     $cmpFilterTypes = array('all' => t('** Show All'), 'unapproved' => t('Unapproved'), 'approved' => t('Approved'), 'deleted' => t('Deleted'));
     $fl = new ConversationFlagTypeList();
     foreach ($fl->get() as $flagtype) {
         $cmpFilterTypes[$flagtype->getConversationFlagTypeHandle()] = Loader::helper('text')->unhandle($flagtype->getConversationFlagTypeHandle());
     }
     $cmpSortTypes = array('date_desc' => t('Recent First'), 'date_asc' => t('Earliest First'));
     if ($_REQUEST['cmpMessageKeywords']) {
         $ml->filterByKeywords($_REQUEST['cmpMessageKeywords']);
         $ml->filterByNotDeleted();
     }
     $cmpMessageFilter = $this->getDefaultMessageFilter();
     if ($this->request->query->has('cmpMessageFilter') && in_array($this->request->query->get('cmpMessageFilter'), array_keys($cmpFilterTypes))) {
         $cmpMessageFilter = $this->request->query->get('cmpMessageFilter');
     }
     switch ($cmpMessageFilter) {
         case 'all':
             break;
         case 'approved':
             $ml->filterByApproved();
             break;
         case 'deleted':
             $ml->filterByDeleted();
             break;
         case 'unapproved':
             $ml->filterByUnapproved();
             $ml->filterByNotDeleted();
             break;
         default:
             // flag
             $flagtype = ConversationFlagType::getByHandle($_REQUEST['cmpMessageFilter']);
             if (is_object($flagtype)) {
                 $ml->filterByFlag($flagtype);
                 $ml->filterByNotDeleted();
             } else {
                 $ml->filterByNotDeleted();
             }
             break;
     }
     if ($_REQUEST['cmpMessageSort'] == 'date_asc') {
         $ml->sortByDateAscending();
     } else {
         $ml->sortByDateDescending();
     }
     $this->set('list', $ml);
     $this->set('messages', $ml->getPage());
     $this->set('cmpFilterTypes', $cmpFilterTypes);
     $this->set('cmpSortTypes', $cmpSortTypes);
     $this->set('cmpMessageFilter', $cmpMessageFilter);
 }
Exemple #2
0
 public function get_approved_conversations()
 {
     $ml = new MessageList();
     $ml->filterByNotDeleted();
     $ml->filterByApproved();
     $ml->sortByDateDescending();
     $messages = $ml->get();
     foreach ($messages as $msg) {
         $cnv = $msg->getConversationObject();
         $page = $cnv->getConversationPageObject();
         if ($page instanceof Page && $page->getCollectionTypeHandle() == 'forum_post') {
             $sort = $this->get_active();
             if ($sort['sort_category'] > 0) {
                 if ($page->getCollectionParentID() == $sort) {
                     $replies[] = $msg;
                 }
             } else {
                 $replies[] = $msg;
             }
         }
     }
     return $replies;
 }
Exemple #3
0
 public function getLandingPageConversations($cID)
 {
     $db = Database::connection();
     $res = $db->GetRow("select cnvID from Conversations where cID = ?", $cID);
     if ($res) {
         $cnv = Conversation::getByID($res['cnvID']);
         $ml = new MessageList();
         $ml->filterByConversation($cnv);
         $ml->filterByNotDeleted();
         $ml->filterByApproved();
         $ml->sortByDateDescending();
         $messages = $ml->get();
     }
     return $messages;
 }