public function getNotes($object_id = NULL, $type = NULL, $display = true) { $app = \Cobalt\Container::fetch('app'); //grab db $db = JFactory::getDBO(); //initialize query $query = $db->getQuery(true); //gen query string $query->select("n.*,cat.name as category_name,comp.name as company_name,\n comp.id as company_id,deal.name as deal_name,deal.id as deal_id,\n person.id as person_id,person.first_name as person_first_name,\n person.last_name as person_last_name, owner.first_name as owner_first_name,\n event.name as event_name, event.id as event_id,\n owner.last_name as owner_last_name, author.email"); $query->from("#__notes as n"); $query->leftJoin("#__notes_categories AS cat ON cat.id = n.category_id"); $query->leftJoin("#__companies AS comp ON comp.id = n.company_id AND comp.published>0"); $query->leftJoin("#__events AS event ON event.id = n.event_id AND event.published>0"); $query->leftJoin("#__deals AS deal ON deal.id = n.deal_id AND deal.published>0"); $query->leftJoin("#__people AS person on n.person_id = person.id AND person.published>0"); $query->leftJoin("#__users AS owner ON n.owner_id = owner.id"); $query->leftJoin("#__users AS author ON author.id = owner.id"); $company_filter = $this->getState('Note.company_name'); if ($company_filter != null) { $query->where("comp.name LIKE '%" . $company_filter . "%'"); } //deal $deal_filter = $this->getState('Note.deal_name'); if ($deal_filter != null) { $query->where("deal.name LIKE '%" . $deal_filter . "%'"); } //person $person_filter = $this->getState('Note.person_name'); if ($person_filter != null) { } if ($object_id) { switch ($type) { case 'person': case 'people': $query->where('n.person_id =' . $object_id); break; case 'company': $query->where('(n.company_id =' . $object_id . ' OR deal.company_id = ' . $object_id . ' OR person.company_id = ' . $object_id . ")"); break; case 'deal': $query->where('n.deal_id=' . $object_id); break; case "event": $query->where("n.event_id={$object_id}"); break; } } //owner $owner_filter = $this->getState('Note.owner_id'); if ($owner_filter != null && $owner_filter != "all") { $owner_type = $this->getState('Note.owner_type'); switch ($owner_type) { case "team": $team_member_ids = UsersHelper::getTeamUsers($owner_filter, TRUE); $query->where("n.owner_id IN (" . implode(',', $team_member_ids) . ")"); break; case "member": $query->where("n.owner_id=" . $owner_filter); break; } } //created $created_filter = $this->getState('Note.created'); if ($company_filter != null) { } //category $category_filter = $this->getState('Note.category_id'); if ($category_filter != null) { $query->where("n.category_id=" . $category_filter); } if ($this->_id) { if (is_array($this->_id)) { $query->where("n.id IN (" . implode(',', $this->_id) . ")"); } else { $query->where("n.id={$this->_id}"); } } /** --------------------------------------------------------------- * Filter data using member role permissions */ $member_id = UsersHelper::getUserId(); $member_role = UsersHelper::getRole(); $team_id = UsersHelper::getTeamId(); if ($this->public_notes != true) { if ($member_role != 'exec') { //manager filter if ($member_role == 'manager') { $query->where('owner.team_id = ' . $team_id); } else { //basic user filter $query->where(array('n.owner_id = ' . $member_id)); } } } $query->where("n.published=" . $this->published); $query->order("n.modified DESC"); //load results $db->setQuery($query); $results = $db->loadAssocList(); //clean results if (count($results) > 0) { foreach ($results as $key => $note) { $results[$key]['created_formatted'] = DateHelper::formatDate($note['created']); $results[$key]['owner_avatar'] = CobaltHelper::getGravatar($note['email']); } } //$app->triggerEvent('onNoteLoad', array(&$results)); if (!$display) { //return results return $results; } else { $notesView = ViewHelper::getView('note', 'default', 'phtml', array('notes' => $results)); return $notesView; } }
public function getConversation($id) { //initialize query $query = $this->db->getQuery(true)->select("c.*, u.first_name as owner_first_name, u.last_name as owner_last_name,author.email")->from("#__conversations as c")->where("c.id=" . (int) $id)->where("c.published=" . $this->published)->leftJoin("#__users AS u ON u.id = c.author")->leftJoin("#__users AS author on author.id=u.id"); $results = $db->setQuery($query)->loadAssocList(); //clean results if (count($results) > 0) { foreach ($results as $key => $convo) { $results[$key]['created_formatted'] = DateHelper::formatDate($convo['created']); $results[$key]['owner_avatar'] = CobaltHelper::getGravatar($convo['email']); } } return $results; }
public function getContacts() { $db = JFactory::getDBO(); $this->query = $db->getQuery(true); $this->buildSelect(); if (!$this->buildWhere()) { return false; } $this->buildOrder(); $db->setQuery($this->query); $people = $db->loadAssocList(); $default_image = JURI::base() . 'src/Cobalt/media/images/person.png'; $n = count($people); for ($i = 0; $i < $n; $i++) { if ($people[$i]['avatar'] == "" && $people[$i]['email'] != "") { $people[$i]['avatar'] = CobaltHelper::getGravatar($people[$i]['email'], null, false, $default_image); } elseif ($people[$i]['avatar'] == "") { $people[$i]['avatar'] = $default_image; } } return $people; }