Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Conversation/Message/MessageList.php
Строк: 114
<?php
namespace ConcreteCoreConversationMessage;
use 
Loader;
use 
ConcreteCoreConversationConversation;
use 
ConcreteCoreConversationFlagTypeFlagType;
use 
ConcreteCoreLegacyDatabaseItemList;
class 
MessageList extends DatabaseItemList {
    protected 
$autoSortColumns = array('cnvMessageDateCreated');
    protected 
$sortBy = 'cnvMessageDateCreated';
    protected 
$sortByDirection = 'asc';
    protected 
$cnvID;

    public function 
__construct() {
        
$this->setQuery('select cnvm.cnvMessageID from ConversationMessages cnvm');
    }

    public function 
filterByConversation(Conversation $cnv) {
        
$this->filter('cnvID', $cnv->getConversationID());
    }

    public function 
sortByDateDescending() {
        
$this->sortBy('cnvMessageDateCreated', 'desc');
    }

    public function 
filterByFlag(FlagType $type) {
        
$this->addToQuery('inner join ConversationFlaggedMessages cnf on cnvm.cnvMessageID = cnf.cnvMessageID');
        
$this->filter('cnf.cnvMessageFlagTypeID', $type->getConversationFlagTypeID());
    }
    
    public function 
sortByDateAscending() {
        
$this->sortBy('cnvMessageDateCreated', 'asc');
    }

    public function 
sortByRating() {
        
$this->sortBy('cnvMessageTotalRatingScore', 'desc');
    }

    public function 
filterByApproved() {
        
$this->filter('cnvIsMessageApproved', 1);
    }

    public function 
filterByNotDeleted() {
        
$this->filter('cnvIsMessageDeleted', 0);
    }

    public function 
filterByUnapproved() {
        
$this->filter('cnvIsMessageApproved', 0);
    }
    
    public function 
filterByUser($uID) {
        
$this->filter('uID', $uID);
    }
    
    public function 
filterByDeleted() {
        
$this->filter('cnvIsMessageDeleted', 1);
    }

    public function 
filterByKeywords($keywords) {
        
$this->addToQuery('inner join Conversations cnv on cnvm.cnvID = cnv.cnvID left join CollectionVersions cv on (cnv.cID = cv.cID and cv.cvIsApproved = 1)');

        
$db = Loader::db();
        
$qk = $db->quote('%' . $keywords . '%');
        
$this->filter(false, "(cnvMessageSubject like $qk or cnvMessageBody like $qk or cvName like $qk)");        
    }
    
    public function 
get($num = 0, $offset = 0) {
        
$r = parent::get($num, $offset);
        
$messages = array();
        foreach(
$r as $row) {
            
$messages[] = Message::getByID($row['cnvMessageID']);    
        }
        return 
$messages;
    }

}
Онлайн: 2
Реклама