/** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { $jemsettings = JEMAdmin::config(); if ($item = parent::getItem($pk)) { $files = JEMAttachment::getAttachments('venue' . $item->id); $item->attachments = $files; } $item->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; if (empty($item->id)) { $item->country = $jemsettings->defaultCountry; } if (!empty($item->locimage)) { if (strpos($item->locimage, 'images/') !== false) { # the image selected contains the images path } else { # the image selected doesn't have the /images/ path # we're looking at the locimage so we'll append the venues folder $item->locimage = 'images/jem/venues/' . $item->locimage; } } return $item; }
/** * Method to get a specific Venue * * @access public * @return array */ function getVenue() { $user = JFactory::getUser(); $db = JFactory::getDbo(); $query = $db->getQuery(true); $_venue = array(); $query->select('id, venue, published, city, state, url, street, custom1, custom2, custom3, custom4, custom5, ' . ' custom6, custom7, custom8, custom9, custom10, phone, fax, email, locimage, meta_keywords, meta_description, ' . ' created, locdescription, country, map, latitude, longitude, postalCode, checked_out AS vChecked_out, checked_out_time AS vChecked_out_time, ' . ' CASE WHEN CHAR_LENGTH(alias) THEN CONCAT_WS(\':\', id, alias) ELSE id END as slug'); $query->from($db->quoteName('#__jem_venues')); $query->where('id = ' . $this->_id); $db->setQuery($query); $_venue = $db->loadObject(); if (empty($_venue)) { return JError::raiseError(404, JText::_('COM_JEM_VENUE_NOTFOUND')); } $_venue->attachments = JEMAttachment::getAttachments('venue' . $_venue->id); return $_venue; }
/** * Method to get event data. * * @param integer The id of the event. * * @return mixed item data object on success, false on failure. */ public function getItem($itemId = null) { $jemsettings = JemHelper::config(); // Initialise variables. $itemId = (int) (!empty($itemId)) ? $itemId : $this->getState('event.id'); // Get a row instance. $table = $this->getTable(); // Attempt to load the row. $return = $table->load($itemId); // Check for a table object error. if ($return === false && $table->getError()) { $this->setError($table->getError()); return false; } $properties = $table->getProperties(1); $value = JArrayHelper::toObject($properties, 'JObject'); // Backup current recurrence values if ($value->id) { $value->recurr_bak = new stdClass(); foreach (get_object_vars($value) as $k => $v) { if (strncmp('recurrence_', $k, 11) === 0) { $value->recurr_bak->{$k} = $v; } } } // Convert attrib field to Registry. $registry = new JRegistry(); $registry->loadString($value->attribs); $globalregistry = JEMHelper::globalattribs(); $value->params = clone $globalregistry; $value->params->merge($registry); // Compute selected asset permissions. $user = JFactory::getUser(); $userId = $user->get('id'); //$asset = 'com_jem.event.' . $value->id; $asset = 'com_jem'; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_register'); $query->where(array('event= ' . $db->quote($itemId), 'waiting= 0')); $db->setQuery($query); $res = $db->loadResult(); $value->booked = $res; $files = JEMAttachment::getAttachments('event' . $itemId); $value->attachments = $files; // Check general edit permission first. if ($user->authorise('core.edit', $asset)) { $value->params->set('access-edit', true); } elseif (!empty($userId) && $user->authorise('core.edit.own', $asset)) { // Check for a valid user and that they are the owner. if ($userId == $value->created_by) { $value->params->set('access-edit', true); } } // Check edit state permission. if ($itemId) { // Existing item $value->params->set('access-change', $user->authorise('core.edit.state', $asset)); } else { // New item. $catId = (int) $this->getState('event.catid'); if ($catId) { $value->params->set('access-change', $user->authorise('core.edit.state', 'com_jem.category.' . $catId)); $value->catid = $catId; } else { $value->params->set('access-change', $user->authorise('core.edit.state', 'com_jem')); } } //////////////// $venueQuery = $db->getQuery(true); $venueQuery->select(array('alias')); $venueQuery->from('#__jem_venues'); $venueQuery->where(array('id= ' . $db->quote($value->locid))); $db->setQuery($venueQuery); $venueResult = $db->loadResult(); $value->localias = $venueResult; //////////////// $value->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; $value->articletext = $value->introtext; if (!empty($value->fulltext)) { $value->articletext .= '<hr id="system-readmore" />' . $value->fulltext; } return $value; }
/** * Method to get event data. * * @param integer The id of the event. * @return mixed item data object on success, false on failure. */ public function &getItem($pk = null) { // Initialise variables. $pk = !empty($pk) ? $pk : (int) $this->getState('event.id'); if ($this->_item === null) { $this->_item = array(); } if (!isset($this->_item[$pk])) { try { $settings = JEMHelper::globalattribs(); $db = $this->getDbo(); $query = $db->getQuery(true); $query->select($this->getState('item.select', 'a.id, a.access, a.attribs, a.metadata, a.registra, a.custom1, a.custom2, a.custom3, a.custom4, a.custom5, a.custom6, a.custom7, a.custom8, a.custom9, a.custom10, a.times, a.endtimes, a.dates, a.enddates, a.id AS did, a.title, a.alias, ' . 'a.created, a.unregistra, a.published, a.created_by, ' . 'CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, ' . 'a.modified_by, a.checked_out, a.checked_out_time, ' . 'a.datimage, a.version, ' . 'a.meta_keywords, a.created_by_alias, a.introtext, a.fulltext, a.maxplaces, a.waitinglist, a.meta_description, a.hits, a.language, a.recurrence_group,' . 'a.recurrence_type, a.recurrence_first_id')); $query->from('#__jem_events AS a'); // Join on user table. $name = $settings->get('global_regname', '1') ? 'u.name' : 'u.username'; $query->select(array($name . ' AS author', 'u.name', 'u.username')); $query->join('LEFT', '#__users AS u on u.id = a.created_by'); // Join on contact-user table. $query->select('con.id AS conid, con.name AS conname, con.telephone AS contelephone, con.email_to AS conemail'); $query->join('LEFT', '#__contact_details AS con ON con.id = a.contactid'); // Join on venue table. $query->select('l.custom1 AS venue1, l.custom2 AS venue2, l.custom3 AS venue3, l.custom4 AS venue4, l.custom5 AS venue5, l.custom6 AS venue6, l.custom7 AS venue7, l.custom8 AS venue8, l.custom9 AS venue9, l.custom10 AS venue10, ' . 'l.id AS locid, l.alias AS localias, l.venue, l.city, l.state, l.url, l.locdescription, l.locimage, l.city, l.postalCode, l.street, l.country,l.phone,l.fax,l.email,l.map, l.created_by AS venueowner, l.latitude, l.longitude, l.timezone, l.checked_out AS vChecked_out, l.checked_out_time AS vChecked_out_time'); $query->join('LEFT', '#__jem_venues AS l ON a.locid = l.id'); # join over the category-tables $query->join('LEFT', '#__jem_cats_event_relations AS rel ON rel.itemid = a.id'); $query->join('LEFT', '#__jem_categories AS c ON c.id = rel.catid'); // Filter by language /* commented out yet because it's incomplete if ($this->getState('filter.language')) { $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } */ $query->where('a.id = ' . (int) $pk); // Filter by start and end dates. $nullDate = $db->Quote($db->getNullDate()); $date = JFactory::getDate(); $nowDate = $db->Quote($date->toSql()); // Filter by published state. $published = $this->getState('filter.published'); $archived = $this->getState('filter.archived'); if (is_numeric($published)) { $query->where('(a.published = ' . (int) $published . ' OR a.published =' . (int) $archived . ')'); } ##################### ### FILTER - BYCAT ## ##################### $cats = $this->getCategories('all'); $query->where('c.id IN (' . implode(',', $cats) . ')'); //$query->group('a.id'); $db->setQuery($query); $data = $db->loadObject(); if ($error = $db->getErrorMsg()) { throw new Exception($error); } if (empty($data)) { throw new Exception(JText::_('COM_JEM_EVENT_ERROR_EVENT_NOT_FOUND'), 404); } // Convert parameter fields to objects. $registry = new JRegistry(); $registry->loadString($data->attribs); $globalattribs = JEMHelper::globalattribs(); $globalregistry = new JRegistry(); $globalregistry->loadString($globalattribs); $data->params = clone $globalregistry; $data->params->merge($registry); $registry = new JRegistry(); $registry->loadString($data->metadata); $data->metadata = $registry; // Compute selected asset permissions. $user = JFactory::getUser(); // Technically guest could edit an event, but lets not check // that to improve performance a little. if (!$user->get('guest')) { $userId = $user->get('id'); $asset = 'com_jem.event.' . $data->id; // Check general edit permission first. if ($user->authorise('core.edit', $asset)) { $data->params->set('access-edit', true); } elseif (!empty($userId) && $user->authorise('core.edit.own', $asset)) { // Check for a valid user and that they are the owner. if ($userId == $data->created_by) { $data->params->set('access-edit', true); } } } // Compute view access permissions. if ($access = $this->getState('filter.access')) { // If the access filter has been set, we already know this // user can view. $data->params->set('access-view', true); } else { # retrieve category's that the user is able to see # if there is no category the event should not be displayed $user = JFactory::getUser(); $groups = $user->getAuthorisedViewLevels(); $category_viewable = $this->getCategories($pk); if ($category_viewable) { $data->params->set('access-view', true); } } $this->_item[$pk] = $data; } catch (JException $e) { if ($e->getCode() == 404) { // Need to go thru the error handler to allow Redirect to work. JError::raiseError(404, $e->getMessage()); return false; } else { $this->setError($e); $this->_item[$pk] = false; return false; } } } // Define Attachments $user = JFactory::getUser(); $this->_item[$pk]->attachments = JEMAttachment::getAttachments('event' . $this->_item[$pk]->did); // Define Venue-Attachments $this->_item[$pk]->vattachments = JEMAttachment::getAttachments('venue' . $this->_item[$pk]->locid); // Define Booked $db = $this->getDbo(); $query = $db->getQuery(true); $query->select(array('COUNT(*)')); $query->from('#__jem_register'); $query->where(array('event= ' . $db->quote($this->_item[$pk]->did), 'waiting= 0')); $db->setQuery($query); $res = $db->loadResult(); $this->_item[$pk]->booked = $res; // Define Waiters $db = $this->getDbo(); $query = $db->getQuery(true); $query->select(array('COUNT(*)')); $query->from('#__jem_register'); $query->where(array('event= ' . $db->quote($this->_item[$pk]->did), 'waiting= 1')); $db->setQuery($query); $res2 = $db->loadResult(); $this->_item[$pk]->waiters = $res2; return $this->_item[$pk]; }
/** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { $jemsettings = JEMAdmin::config(); if ($item = parent::getItem($pk)) { $files = JEMAttachment::getAttachments('venue'.$item->id); $item->attachments = $files; } $item->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; if (empty($item->id)) { $item->country = $jemsettings->defaultCountry; } return $item; }
/** * Method to get event data. * * @param integer The id of the event. * * @return mixed item data object on success, false on failure. */ public function getItem($itemId = null) { $jemsettings = JemHelper::config(); // Initialise variables. $itemId = (int) (!empty($itemId)) ? $itemId : $this->getState('event.id'); // Get a row instance. $table = $this->getTable(); // Attempt to load the row. $return = $table->load($itemId); // Check for a table object error. if ($return === false && $table->getError()) { $this->setError($table->getError()); return false; } $properties = $table->getProperties(1); $value = JArrayHelper::toObject($properties, 'JObject'); // Convert attrib field to Registry. $registry = new JRegistry(); $registry->loadString($value->attribs); $globalsettings = JEMHelper::globalattribs(); $globalregistry = new JRegistry(); $globalregistry->loadString($globalsettings); $value->params = clone $globalregistry; $value->params->merge($registry); // Compute selected asset permissions. $user = JFactory::getUser(); $userId = $user->get('id'); //$asset = 'com_jem.event.' . $value->id; $asset = 'com_jem'; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_register'); $query->where(array('event= ' . $db->quote($itemId), 'waiting= 0')); $db->setQuery($query); $res = $db->loadResult(); $value->booked = $res; $files = JEMAttachment::getAttachments('event' . $itemId); $value->attachments = $files; ################ ## RECURRENCE ## ################ # check recurrence if ($value->recurrence_group) { # this event is part of a recurrence-group # # check for groupid & groupid_ref (recurrence_table) # - groupid = $item->recurrence_group # - groupid_ref = $item->recurrence_group # - Itemid = $item->id $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_recurrence'); $query->where(array('groupid= ' . $value->recurrence_group, 'itemid= ' . $value->id, 'groupid = groupid_ref')); $db->setQuery($query); $rec_groupset_check = $db->loadResult(); if ($rec_groupset_check == '1') { $value->recurrence_groupcheck = true; } else { $value->recurrence_groupcheck = false; } } else { $value->recurrence_groupcheck = false; } ############## ## HOLIDAYS ## ############## # Retrieve dates that are holidays and enabled. $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('holiday'); $query->from('#__jem_dates'); $query->where(array('enabled = 1', 'holiday = 1')); $db->setQuery($query); $holidays = $db->loadColumn(); if ($holidays) { $value->recurrence_country_holidays = true; } else { $value->recurrence_country_holidays = false; } // Check general edit permission first. if ($user->authorise('core.edit', $asset)) { $value->params->set('access-edit', true); } elseif (!empty($userId) && $user->authorise('core.edit.own', $asset)) { // Check for a valid user and that they are the owner. if ($userId == $value->created_by) { $value->params->set('access-edit', true); } } // Check edit state permission. if ($itemId) { // Existing item $value->params->set('access-change', $user->authorise('core.edit.state', $asset)); } else { // New item. $catId = (int) $this->getState('event.catid'); if ($catId) { $value->params->set('access-change', $user->authorise('core.edit.state', 'com_jem.category.' . $catId)); $value->catid = $catId; } else { $access_change = $user->authorise('core.edit.state', 'com_jem'); $value->params->set('access-change', $access_change); } } $value->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; $value->articletext = $value->introtext; if (!empty($value->fulltext)) { $value->articletext .= '<hr id="system-readmore" />' . $value->fulltext; } if (!empty($value->datimage)) { if (strpos($value->datimage, 'images/') !== false) { # the image selected contains the images path } else { # the image selected doesn't have the /images/ path # we're looking at the locimage so we'll append the venues folder $value->datimage = 'images/jem/events/' . $value->datimage; } } $admin = JFactory::getUser()->authorise('core.manage', 'com_jem'); if ($admin) { $value->admin = true; } else { $value->admin = false; } return $value; }
/** * Method to get a specific Venue * * @access public * @return array */ function getVenue() { $user = JemFactory::getUser(); $db = JFactory::getDbo(); $query = $db->getQuery(true); $_venue = array(); $query->select('id, venue, published, city, state, url, street, custom1, custom2, custom3, custom4, custom5, '. ' custom6, custom7, custom8, custom9, custom10, locimage, meta_keywords, meta_description, '. ' created, created_by, locdescription, country, map, latitude, longitude, postalCode, checked_out AS vChecked_out, checked_out_time AS vChecked_out_time, '. ' CASE WHEN CHAR_LENGTH(alias) THEN CONCAT_WS(\':\', id, alias) ELSE id END as slug'); $query->from($db->quoteName('#__jem_venues')); $query->where('id = '.(int)$this->_id); // all together: if published or the user is creator of the venue or allowed to edit or publish venues if (empty($user->id)) { $query->where('published = 1'); } // no limit if user can publish or edit foreign venues elseif ($user->can(array('edit', 'publish'), 'venue')) { $query->where('published IN (0,1)'); } // user maybe creator else { $query->where('(published = 1 OR (published = 0 AND created_by = ' . $this->_db->Quote($user->id) . '))'); } $db->setQuery($query); $_venue = $db->loadObject(); if (empty($_venue)) { //return JError::raiseError(404, JText::_('COM_JEM_VENUE_NOTFOUND')); $this->setError(JText::_('COM_JEM_VENUE_ERROR_VENUE_NOT_FOUND')); return false; } $_venue->attachments = JEMAttachment::getAttachments('venue'.$_venue->id); return $_venue; }
/** * Method to get event data. * * @param integer The id of the event. * @return mixed item data object on success, false on failure. */ public function &getItem($pk = null) { // Initialise variables. $pk = (!empty($pk)) ? $pk : (int) $this->getState('event.id'); $user = JemFactory::getUser(); if ($this->_item === null) { $this->_item = array(); } if (!isset($this->_item[$pk])) { try { $settings = JEMHelper::globalattribs(); $db = $this->getDbo(); $query = $db->getQuery(true); $query->select( $this->getState('item.select', 'a.id, a.access, a.attribs, a.metadata, a.registra, a.custom1, a.custom2, a.custom3, a.custom4, a.custom5, a.custom6, a.custom7, a.custom8, a.custom9, a.custom10, a.times, a.endtimes, a.dates, a.enddates, a.id AS did, a.title, a.alias, ' . 'a.created, a.unregistra, a.published, a.created_by, ' . 'CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, ' . 'a.modified_by, a.checked_out, a.checked_out_time, ' . 'a.datimage, a.version, ' . 'a.meta_keywords, a.created_by_alias, a.introtext, a.fulltext, a.maxplaces, a.waitinglist, a.meta_description, a.hits, a.language, ' . 'a.recurrence_type, a.recurrence_first_id')); $query->from('#__jem_events AS a'); // Join on user table. $name = $settings->get('global_regname','1') ? 'u.name' : 'u.username'; $query->select($name.' AS author'); $query->join('LEFT', '#__users AS u on u.id = a.created_by'); // Join on contact-user table. $query->select('con.id AS conid, con.name AS conname, con.telephone AS contelephone, con.email_to AS conemail'); $query->join('LEFT', '#__contact_details AS con ON con.id = a.contactid'); // Join on venue table. $query->select('l.custom1 AS venue1, l.custom2 AS venue2, l.custom3 AS venue3, l.custom4 AS venue4, l.custom5 AS venue5, l.custom6 AS venue6, l.custom7 AS venue7, l.custom8 AS venue8, l.custom9 AS venue9, l.custom10 AS venue10, ' . 'l.id AS locid, l.alias AS localias, l.venue, l.city, l.state, l.url, l.locdescription, l.locimage, l.city, l.postalCode, l.street, l.country, l.map, l.created_by AS venueowner, l.latitude, l.longitude, l.checked_out AS vChecked_out, l.checked_out_time AS vChecked_out_time'); $query->join('LEFT', '#__jem_venues AS l ON a.locid = l.id'); # join over the category-tables $query->join('LEFT', '#__jem_cats_event_relations AS rel ON rel.itemid = a.id'); $query->join('LEFT', '#__jem_categories AS c ON c.id = rel.catid'); // Get contact id $subQuery = $db->getQuery(true); $subQuery->select('MAX(contact.id) AS id'); $subQuery->from('#__contact_details AS contact'); $subQuery->where('contact.published = 1'); $subQuery->where('contact.user_id = a.created_by'); // Filter by language if ($this->getState('filter.language')) { $subQuery->where('(contact.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ') OR contact.language IS NULL)'); } $query->select('(' . $subQuery . ') as contactid2'); // Filter by language /* commented out yet because it's incomplete if ($this->getState('filter.language')) { $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } */ $query->where('a.id = ' . (int) $pk); // Filter by start and end dates. $nullDate = $db->Quote($db->getNullDate()); $date = JFactory::getDate(); $nowDate = $db->Quote($date->toSql()); // Filter by published state ==> later. // It would result in too complicated query. // It's easier to get data and check then e.g. for event owner etc. ##################### ### FILTER - BYCAT ## ##################### $cats = $this->getCategories('all'); if (!empty($cats)) { $query->where('c.id IN (' . implode(',', $cats) . ')'); } //$query->group('a.id'); $db->setQuery($query); $data = $db->loadObject(); if ($error = $db->getErrorMsg()) { throw new Exception($error); } if (empty($data)) { throw new Exception(JText::_('COM_JEM_EVENT_ERROR_EVENT_NOT_FOUND'), 404); } // Convert parameter fields to objects. $registry = new JRegistry; $registry->loadString($data->attribs); $data->params = JEMHelper::globalattribs(); // returns JRegistry object $data->params->merge($registry); $registry = new JRegistry; $registry->loadString($data->metadata); $data->metadata = $registry; $data->categories = $this->getCategories($pk); // Compute selected asset permissions. $viewLevels = $user->getAuthorisedViewLevels(); $access_edit = $user->can('edit', 'event', $data->id, $data->created_by); $access_view = (($data->published == 1) || ($data->published == 2) || // published and archived event (($data->published == 0) && $access_edit) || // unpublished for editors, $user->can('publish', 'event', $data->id, $data->created_by)); // all for publishers $data->params->set('access-edit', $access_edit); // Compute view access permissions. # event can be shown if # - user has matching view access level and # - there is at least one category attached user can see and # - publishing state and user permissions allow that (e.g. unpublished event but user is editor, owner, or publisher) $data->params->set('access-view', $access_view && !empty($data->categories) && in_array($data->access, $viewLevels)); $this->_item[$pk] = $data; } catch (JException $e) { if ($e->getCode() == 404) { // Need to go thru the error handler to allow Redirect to // work. JError::raiseError(404, $e->getMessage()); return false; } else { $this->setError($e); $this->_item[$pk] = false; return false; } } } // Define Attachments $this->_item[$pk]->attachments = JEMAttachment::getAttachments('event' . $this->_item[$pk]->did); // Define Venue-Attachments $this->_item[$pk]->vattachments = JEMAttachment::getAttachments('venue' . $this->_item[$pk]->locid); // Define Booked $db = $this->getDbo(); $query = $db->getQuery(true); $query->select(array('COUNT(*)')); $query->from('#__jem_register'); $query->where(array( 'event= ' . $db->quote($this->_item[$pk]->did), 'waiting= 0' )); $db->setQuery($query); $res = $db->loadResult(); $this->_item[$pk]->booked = $res; return $this->_item[$pk]; }
/** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { $jemsettings = JEMAdmin::config(); if ($item = parent::getItem($pk)) { // Convert the params field to an array. $registry = new JRegistry(); $registry->loadString($item->attribs); $item->attribs = $registry->toArray(); // Convert the metadata field to an array. $registry = new JRegistry(); $registry->loadString($item->metadata); $item->metadata = $registry->toArray(); $item->articletext = trim($item->fulltext) != '' ? $item->introtext . "<hr id=\"system-readmore\" />" . $item->fulltext : $item->introtext; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_register'); $query->where(array('event= ' . $db->quote($item->id), 'waiting= 0')); $db->setQuery($query); $res = $db->loadResult(); $item->booked = $res; $files = JEMAttachment::getAttachments('event' . $item->id); $item->attachments = $files; ################ ## RECURRENCE ## ################ # check recurrence if ($item->recurrence_group) { # this event is part of a recurrence-group # # check for groupid & groupid_ref (recurrence_table) # - groupid = $item->recurrence_group # - groupid_ref = $item->recurrence_group # - Itemid = $item->id $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_recurrence'); $query->where(array('groupid= ' . $item->recurrence_group, 'itemid= ' . $item->id, 'groupid = groupid_ref')); $db->setQuery($query); $rec_groupset_check = $db->loadResult(); if ($rec_groupset_check == '1') { $item->recurrence_groupcheck = true; } else { $item->recurrence_groupcheck = false; } } else { $item->recurrence_groupcheck = false; } ############## ## HOLIDAYS ## ############## # Retrieve dates that are holidays and enabled. $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('holiday'); $query->from('#__jem_dates'); $query->where(array('enabled = 1', 'holiday = 1')); $db->setQuery($query); $holidays = $db->loadColumn(); if ($holidays) { $item->recurrence_country_holidays = true; } else { $item->recurrence_country_holidays = false; } $item->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; if (empty($item->id)) { $item->country = $jemsettings->defaultCountry; } if (!empty($item->datimage)) { if (strpos($item->datimage, 'images/') !== false) { # the image selected contains the images path } else { # the image selected doesn't have the /images/ path # we're looking at the locimage so we'll append the venues folder $item->datimage = 'images/jem/events/' . $item->datimage; } } $admin = JFactory::getUser()->authorise('core.manage', 'com_jem'); if ($admin) { $item->admin = true; } else { $item->admin = false; } } return $item; }
/** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { $jemsettings = JEMAdmin::config(); if ($item = parent::getItem($pk)){ // Convert the params field to an array. $registry = new JRegistry; $registry->loadString($item->attribs); $item->attribs = $registry->toArray(); // Convert the metadata field to an array. $registry = new JRegistry; $registry->loadString($item->metadata); $item->metadata = $registry->toArray(); $item->articletext = trim($item->fulltext) != '' ? $item->introtext . "<hr id=\"system-readmore\" />" . $item->fulltext : $item->introtext; $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select(array('count(id)')); $query->from('#__jem_register'); $query->where(array('event= '.$db->quote($item->id), 'waiting= 0')); $db->setQuery($query); $res = $db->loadResult(); $item->booked = $res; $files = JEMAttachment::getAttachments('event'.$item->id); $item->attachments = $files; if ($item->id){ // Store current recurrence values $item->recurr_bak = new stdClass; foreach (get_object_vars($item) as $k => $v) { if (strncmp('recurrence_', $k, 11) === 0) { $item->recurr_bak->$k = $v; } } $item->recurrence_type = ''; $item->recurrence_number = ''; $item->recurrence_byday = ''; $item->recurrence_counter = ''; $item->recurrence_first_id = ''; $item->recurrence_limit = ''; $item->recurrence_limit_date = ''; } $item->author_ip = $jemsettings->storeip ? JemHelper::retrieveIP() : false; if (empty($item->id)){ $item->country = $jemsettings->defaultCountry; } } return $item; }