ConversationModel::joinParticipants PHP Method

joinParticipants() public method

public joinParticipants ( &$Data, $Max = 5 )
    public function joinParticipants(&$Data, $Max = 5)
    {
        // Loop through the data and find the conversations with >= $Max participants.
        $IDs = array();
        foreach ($Data as $Row) {
            if ($Row['CountParticipants'] <= $Max) {
                $IDs[] = $Row['ConversationID'];
            }
        }
        $Users = $this->SQL->select('*')->from('UserConversation uc')->whereIn('uc.ConversationID', $IDs)->get()->resultArray();
        Gdn::userModel()->joinUsers($Users, array('UserID'));
        $Users = Gdn_DataSet::index($Users, array('ConversationID'), array('Unique' => false));
        foreach ($Data as &$Row) {
            $ConversationID = $Row['ConversationID'];
            if (isset($Users[$ConversationID])) {
                $Row['Participants'] = $Users[$ConversationID];
            } else {
                $Row['Participants'] = array();
            }
        }
    }

Usage Example

Example #1
0
 public function getData()
 {
     // Fetch from model.
     $Model = new ConversationModel();
     $Result = $Model->get($this->UserID, 0, $this->Limit, array());
     // Join in the participants.
     $Model->joinParticipants($Result);
     $this->setData('Conversations', $Result);
 }