public function render() { $app = JFactory::getApplication(); //grab model $model = new EventModel(); if ($this->getLayout() == "event_listings" || $this->getLayout() == "list") { $events = $model->getEvents(); $this->events = $events; } else { //null event $event = array(); $id = null; if ($app->input->get('parent_id') && !$app->input->get('id')) { $id = $app->input->get('parent_id'); } else { $id = $app->input->get('id'); } //grab event if ($id != null) { $event = $model->getEvent($id); } //pass reference $this->event = $event; } if ($app->input->get('association_id')) { $this->association_name = CobaltHelper::getAssociationName(); } //display echo parent::render(); }
public function execute() { $return = array(); if (CobaltHelper::unshareItem()) { $return['success'] = true; } else { $return['success'] = false; } echo json_encode($return); }
public function execute() { $emailExists = CobaltHelper::checkEmailName($this->getInput()->get('email')); if ($emailExists) { $success = true; $msg = TextHelper::_('COBALT_EMAIL_EXISTS'); } else { $success = true; $msg = TextHelper::_('COBALT_EMAIL_IS_AVAILABLE'); } echo json_encode(array('success' => $success, 'message' => $msg, 'email_exists' => $emailExists)); }
/** * Method to get graph deal information * @param $type type of deal to filter by, values 'stage','status' * @param $access_type to search by 'company','team','member' * @param $access_id the id of the $member_type to search by */ public function getGraphDeals($type = null, $access_type = null, $access_id = null) { $query = $this->db->getQuery(true); //search by type if ($type == 'stage') { $query->select("count(*) AS value, stage.name AS title")->from("#__deals AS d")->leftJoin("#__stages AS stage ON stage.id = d.stage_id"); } if ($type == 'status') { $query->select("count(*) AS value, status.name AS title")->from("#__deals AS d")->leftJoin("#__deal_status AS status ON status.id = d.status_id"); } //if user is not an executive then there are limitations if ($access_type != 'company') { //team sorting if ($access_type == 'team') { //get team members $team_members = UsersHelper::getTeamUsers($access_id); $members = array(); $members[] = 0; foreach ($team_members as $key => $member) { $members[] = $member['id']; } $query->where("d.owner_id IN (" . implode(",", $members) . ")"); } //member sorting if ($access_type == 'member') { $query->where("d.owner_id={$access_id}"); } } //grouping if ($type == 'stage') { $query->where("d.stage_id <> 0 AND d.stage_id = stage.id"); $query->group("d.stage_id"); } if ($type == 'status') { $query->where("d.status_id <> 0 AND d.status_id = status.id"); $query->group("d.status_id"); } if (!is_null($this->archived)) { $query->where("d.archived=" . $this->archived); } $query->where("d.published=" . $this->published); $results = $this->db->setQuery($query)->loadAssocList(); if (count($results) > 0) { $max = 0; // get max value foreach ($results as $stage) { if ($stage['value'] > $max) { $max = (int) $stage['value']; } } //clean results and force datatypes for graph rendering foreach ($results as $key => $stage) { // $results[$key]['y'] = (int) $stage['y']; // $results[$key]['data'] = array((int) $stage['y']); $results[$key]['value'] = (int) $stage['value']; $results[$key]['color'] = '#' . CobaltHelper::percent2Color($stage['value'], 200, $max); $results[$key]['highlight'] = '#' . CobaltHelper::percent2Color($stage['value'], 220, $max); } } return $results; }
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 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; } }
/** * Use post data and update a users email address(es) in the users_email_cf db table * @param int $user_id the user id of the user being updated * @param mixed $emails an array of new email addresses to be associated with the user * @return void */ public function updateEmail($user_id, $emails) { $query = $this->db->getQuery(true); $retults = array(); //delete any existing entries $query->delete('#__users_email_cf')->where('member_id = ' . $user_id); $retults[] = $this->db->setQuery($query)->execute(); //insert new entries if (is_array($emails)) { foreach ($emails as $email) { if ($email) { $emailO = new \stdClass(); $emailO->member_id = $user_id; if (!CobaltHelper::checkEmailName($email)) { $emailO->email = $email; $retults[] = $this->db->insertObject('#__users_email_cf', $emailO); } } } } if (in_array(false, $retults)) { return false; } return true; }
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; }
/** * Method to store a record * * @return boolean True on success */ public function store($data = null) { $app = \Cobalt\Container::fetch('app'); //Load Tables $row = new CompanyTable(); $oldRow = new CompanyTable(); if ($data == null) { $data = $this->app->input->post->getArray(); } //date generation $date = DateHelper::formatDBDate(date('Y-m-d H:i:s')); if (!array_key_exists('id', $data) || array_key_exists('id', $data) && $data['id'] <= 0) { $data['created'] = $date; $status = 'created'; } else { $row->load($data['id']); $oldRow->load($data['id']); $status = 'updated'; } $data['modified'] = $date; $data['owner_id'] = UsersHelper::getUserId(); //generate custom field string $customArray = array(); foreach ($data as $name => $value) { if (strstr($name, 'custom_') && !strstr($name, '_input') && !strstr($name, "_hidden")) { $id = str_replace('custom_', '', $name); $customArray[] = array('custom_field_id' => $id, 'custom_field_value' => $value); unset($data[$name]); } } // Bind the form fields to the table if (!$row->bind($data)) { $this->setError($this->db->getErrorMsg()); return false; } //$app->triggerEvent('onBeforeCompanySave', array(&$row)); // Make sure the record is valid if (!$row->check()) { $this->setError($this->db->getErrorMsg()); return false; } // Store the web link table to the database if (!$row->store()) { $this->setError($this->db->getErrorMsg()); return false; } $id = !empty($data['id']) ? $data['id'] : $this->db->insertId(); ActivityHelper::saveActivity($oldRow, $row, 'company', $status); //if we receive no custom post data do not modify the custom fields if (count($customArray) > 0) { CobaltHelper::storeCustomCf($id, $customArray, 'company'); } //$app->triggerEvent('onAfterCompanySave', array(&$row)); return $row->id; }