function display($tpl = null) { // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $app = JFactory::getApplication(); $doc = JFactory::getDocument(); $params = $app->getParams(); $feedEmail = $app->getCfg('feed_email', 'author'); $siteEmail = $app->getCfg('mailfrom'); $fromName = $app->getCfg('fromname'); JRequest::setVar('limit', $app->getCfg('feed_limit')); // Get some data from the models $category = $this->get('Category'); $rows = $this->get('Items'); $doc->link = JRoute::_(ContactHelperRoute::getCategoryRoute($category->id)); foreach ($rows as $row) { // strip html from feed item title $title = $this->escape($row->name); $title = html_entity_decode($title, ENT_COMPAT, 'UTF-8'); // Compute the contact slug $row->slug = $row->alias ? $row->id . ':' . $row->alias : $row->id; // url link to article $link = JRoute::_(ContactHelperRoute::getContactRoute($row->slug, $row->catid)); $description = $row->address; $author = $row->created_by_alias ? $row->created_by_alias : $row->author; @($date = $row->created ? date('r', strtotime($row->created)) : ''); // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $date; $item->category = $category->title; $item->author = $author; // We don't have the author email so we have to use site in both cases. if ($feedEmail == 'site') { $item->authorEmail = $siteEmail; } elseif ($feedEmail == 'author') { $item->authorEmail = $row->author_email; } // loads item info into rss array $doc->addItem($item); } }
/** * Method to get the associations for a given item * * @param integer $id Id of the item * @param string $view Name of the view * * @return array Array of associations for the item * * @since 3.0 */ public static function getAssociations($id = 0, $view = null) { $jinput = JFactory::getApplication()->input; $view = $view === null ? $jinput->get('view') : $view; $id = empty($id) ? $jinput->getInt('id') : $id; if ($view === 'contact') { if ($id) { $associations = JLanguageAssociations::getAssociations('com_contact', '#__contact_details', 'com_contact.item', $id); $return = array(); foreach ($associations as $tag => $item) { $return[$tag] = ContactHelperRoute::getContactRoute($item->id, (int) $item->catid, $item->language); } return $return; } } if ($view === 'category' || $view === 'categories') { return self::getCategoryAssociations($id, 'com_contact'); } return array(); }
function display() { // Get some data from the models $category = $this->get('Category'); $rows = $this->get('Items'); // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseError(500, implode("\n", $errors)); return false; } $app = JFactory::getApplication(); $doc = JFactory::getDocument(); $params = $app->getParams(); $doc->link = JRoute::_(ContactHelperRoute::getCategoryRoute($category->id)); foreach ($rows as $row) { // strip html from feed item title $title = $this->escape($row->name); $title = html_entity_decode($title, ENT_COMPAT, 'UTF-8'); // Compute the contact slug $row->slug = $row->alias ? $row->id . ':' . $row->alias : $row->id; // url link to article // & used instead of & as this is converted by feed creator $link = JRoute::_(ContactHelperRoute::getContactRoute($row->slug, $row->catid), false); // strip html from feed item description text // TODO: Only pull fulltext if necessary (actually, just get the necessary fields). $description = $params->get('feed_summary', 0) ? $row->introtext : $row->introtext; $author = $row->created_by_alias ? $row->created_by_alias : $row->author; @($date = $row->created ? date('r', strtotime($row->created)) : ''); // load individual item creator class $item = new JFeedItem(); $item->title = $title; $item->link = $link; $item->description = $description; $item->date = $date; $item->category = $row->category; // loads item info into rss array $doc->addItem($item); } }
/** * Method to get the associations for a given item * * @param integer $id Id of the item * @param string $view Name of the view * * @return array Array of associations for the item * * @since 3.0 */ public static function getAssociations($id = 0, $view = null) { jimport('helper.route', JPATH_COMPONENT_SITE); $app = JFactory::getApplication(); $jinput = $app->input; $view = is_null($view) ? $jinput->get('view') : $view; $id = empty($id) ? $jinput->getInt('id') : $id; if ($view == 'contact') { if ($id) { $associations = ContactHelper::getAssociations($id); $return = array(); foreach ($associations as $tag => $item) { $return[$tag] = ContactHelperRoute::getContactRoute($item->id, $item->catid, $item->language); } return $return; } } if ($view == 'category' || $view == 'categories') { return self::getCategoryAssociations($id, 'com_contact'); } return array(); }
/** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $state = $this->get('State'); $item = $this->get('Item'); $this->form = $this->get('Form'); // Get the parameters $params = JComponentHelper::getParams('com_contact'); if ($item) { // If we found an item, merge the item parameters $params->merge($item->params); // Get Category Model data $categoryModel = JModelLegacy::getInstance('Category', 'ContactModel', array('ignore_request' => true)); $categoryModel->setState('category.id', $item->catid); $categoryModel->setState('list.ordering', 'a.name'); $categoryModel->setState('list.direction', 'asc'); $categoryModel->setState('filter.published', 1); $contacts = $categoryModel->getItems(); } // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } // Check if access is not public $groups = $user->getAuthorisedViewLevels(); $return = ''; if (!in_array($item->access, $groups) || !in_array($item->category_access, $groups)) { $app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error'); $app->setHeader('status', 403, true); return false; } $options['category_id'] = $item->catid; $options['order by'] = 'a.default_con DESC, a.ordering ASC'; // Handle email cloaking if ($item->email_to && $params->get('show_email')) { $item->email_to = JHtml::_('email.cloak', $item->email_to); } if ($params->get('show_street_address') || $params->get('show_suburb') || $params->get('show_state') || $params->get('show_postcode') || $params->get('show_country')) { if (!empty($item->address) || !empty($item->suburb) || !empty($item->state) || !empty($item->country) || !empty($item->postcode)) { $params->set('address_check', 1); } } else { $params->set('address_check', 0); } // Manage the display mode for contact detail groups switch ($params->get('contact_icons')) { case 1: // Text $params->set('marker_address', JText::_('COM_CONTACT_ADDRESS') . ': '); $params->set('marker_email', JText::_('JGLOBAL_EMAIL') . ': '); $params->set('marker_telephone', JText::_('COM_CONTACT_TELEPHONE') . ': '); $params->set('marker_fax', JText::_('COM_CONTACT_FAX') . ': '); $params->set('marker_mobile', JText::_('COM_CONTACT_MOBILE') . ': '); $params->set('marker_misc', JText::_('COM_CONTACT_OTHER_INFORMATION') . ': '); $params->set('marker_class', 'jicons-text'); break; case 2: // None $params->set('marker_address', ''); $params->set('marker_email', ''); $params->set('marker_telephone', ''); $params->set('marker_mobile', ''); $params->set('marker_fax', ''); $params->set('marker_misc', ''); $params->set('marker_class', 'jicons-none'); break; default: if ($params->get('icon_address')) { $image1 = JHtml::_('image', $params->get('icon_address', 'con_address.png'), JText::_('COM_CONTACT_ADDRESS') . ': ', null, false); } else { $image1 = JHtml::_('image', 'contacts/' . $params->get('icon_address', 'con_address.png'), JText::_('COM_CONTACT_ADDRESS') . ': ', null, true); } if ($params->get('icon_email')) { $image2 = JHtml::_('image', $params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ': ', null, false); } else { $image2 = JHtml::_('image', 'contacts/' . $params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ': ', null, true); } if ($params->get('icon_telephone')) { $image3 = JHtml::_('image', $params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CONTACT_TELEPHONE') . ': ', null, false); } else { $image3 = JHtml::_('image', 'contacts/' . $params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CONTACT_TELEPHONE') . ': ', null, true); } if ($params->get('icon_fax')) { $image4 = JHtml::_('image', $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CONTACT_FAX') . ': ', null, false); } else { $image4 = JHtml::_('image', 'contacts/' . $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CONTACT_FAX') . ': ', null, true); } if ($params->get('icon_misc')) { $image5 = JHtml::_('image', $params->get('icon_misc', 'con_info.png'), JText::_('COM_CONTACT_OTHER_INFORMATION') . ': ', null, false); } else { $image5 = JHtml::_('image', 'contacts/' . $params->get('icon_misc', 'con_info.png'), JText::_('COM_CONTACT_OTHER_INFORMATION') . ': ', null, true); } if ($params->get('icon_mobile')) { $image6 = JHtml::_('image', $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CONTACT_MOBILE') . ': ', null, false); } else { $image6 = JHtml::_('image', 'contacts/' . $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CONTACT_MOBILE') . ': ', null, true); } $params->set('marker_address', $image1); $params->set('marker_email', $image2); $params->set('marker_telephone', $image3); $params->set('marker_fax', $image4); $params->set('marker_misc', $image5); $params->set('marker_mobile', $image6); $params->set('marker_class', 'jicons-icons'); break; } // Add links to contacts if ($params->get('show_contact_list') && count($contacts) > 1) { foreach ($contacts as &$contact) { $contact->link = JRoute::_(ContactHelperRoute::getContactRoute($contact->slug, $contact->catid)); } $item->link = JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); } // Process the content plugins. JPluginHelper::importPlugin('content'); $offset = $state->get('list.offset'); // Fix for where some plugins require a text attribute !empty($item->misc) ? $item->text = $item->misc : ($item->text = null); JFactory::getApplication()->triggerEvent('onContentPrepare', array('com_contact.contact', &$item, &$this->params, $offset)); // Store the events for later $item->event = new stdClass(); $results = JFactory::getApplication()->triggerEvent('onContentAfterTitle', array('com_contact.contact', &$item, &$this->params, $offset)); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = JFactory::getApplication()->triggerEvent('onContentBeforeDisplay', array('com_contact.contact', &$item, &$this->params, $offset)); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = JFactory::getApplication()->triggerEvent('onContentAfterDisplay', array('com_contact.contact', &$item, &$this->params, $offset)); $item->event->afterDisplayContent = trim(implode("\n", $results)); if ($item->text) { $item->misc = $item->text; } // Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $this->contact =& $item; $this->params =& $params; $this->return =& $return; $this->state =& $state; $this->item =& $item; $this->user =& $user; $this->contacts =& $contacts; $item->tags = new JHelperTags(); $item->tags->getItemTags('com_contact.contact', $this->item->id); // Override the layout only if this is not the active menu item // If it is the active menu item, then the view and item id will match $active = $app->getMenu()->getActive(); if (!$active || (strpos($active->link, 'view=contact') === false || strpos($active->link, '&id=' . (string) $this->item->id) === false)) { if ($layout = $params->get('contact_layout')) { $this->setLayout($layout); } } elseif (isset($active->query['layout'])) { // We need to set the layout in case this is an alternative menu item (with an alternative layout) $this->setLayout($active->query['layout']); } $model = $this->getModel(); $model->hit(); $captchaSet = $params->get('captcha', JFactory::getApplication()->get('captcha', '0')); foreach (JPluginHelper::getPlugin('captcha') as $plugin) { if ($captchaSet === $plugin->name) { $this->captchaEnabled = true; break; } } $this->_prepareDocument(); return parent::display($tpl); }
/** * Method to index an item. The item must be a FinderIndexerResult object. * * @param FinderIndexerResult $item The item to index as an FinderIndexerResult object. * @param string $format The item format * * @return void * * @since 2.5 * @throws Exception on database error. */ protected function index(FinderIndexerResult $item, $format = 'html') { // Check if the extension is enabled if (JComponentHelper::isEnabled($this->extension) == false) { return; } $item->setLanguage(); // Initialize the item parameters. $registry = new Registry(); $registry->loadString($item->params); $item->params = $registry; // Build the necessary route and path information. $item->url = $this->getURL($item->id, $this->extension, $this->layout); $item->route = ContactHelperRoute::getContactRoute($item->slug, $item->catslug, $item->language); $item->path = FinderIndexerHelper::getContentPath($item->route); // Get the menu title if it exists. $title = $this->getItemMenuTitle($item->url); // Adjust the title if necessary. if (!empty($title) && $this->params->get('use_menu_title', true)) { $item->title = $title; } /* * Add the meta-data processing instructions based on the contact * configuration parameters. */ // Handle the contact position. if ($item->params->get('show_position', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'position'); } // Handle the contact street address. if ($item->params->get('show_street_address', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'address'); } // Handle the contact city. if ($item->params->get('show_suburb', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'city'); } // Handle the contact region. if ($item->params->get('show_state', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'region'); } // Handle the contact country. if ($item->params->get('show_country', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'country'); } // Handle the contact zip code. if ($item->params->get('show_postcode', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'zip'); } // Handle the contact telephone number. if ($item->params->get('show_telephone', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'telephone'); } // Handle the contact fax number. if ($item->params->get('show_fax', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'fax'); } // Handle the contact e-mail address. if ($item->params->get('show_email', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'email'); } // Handle the contact mobile number. if ($item->params->get('show_mobile', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'mobile'); } // Handle the contact webpage. if ($item->params->get('show_webpage', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'webpage'); } // Handle the contact user name. $item->addInstruction(FinderIndexer::META_CONTEXT, 'user'); // Add the type taxonomy data. $item->addTaxonomy('Type', 'Contact'); // Add the category taxonomy data. $item->addTaxonomy('Category', $item->category, $item->cat_state, $item->cat_access); // Add the language taxonomy data. $item->addTaxonomy('Language', $item->language); // Add the region taxonomy data. if (!empty($item->region) && $this->params->get('tax_add_region', true)) { $item->addTaxonomy('Region', $item->region); } // Add the country taxonomy data. if (!empty($item->country) && $this->params->get('tax_add_country', true)) { $item->addTaxonomy('Country', $item->country); } // Get content extras. FinderIndexerHelper::getContentExtras($item); // Index the item. $this->indexer->index($item); }
</td> <td> <a href="javascript:void(0);" onclick="if (window.parent) window.parent.<?php echo $this->escape($function); ?> ('<?php echo $item->id; ?> ', '<?php echo $this->escape(addslashes($item->name)); ?> ', '<?php echo $this->escape($item->catid); ?> ', null, '<?php echo $this->escape(ContactHelperRoute::getContactRoute($item->id, $item->catid, $item->language)); ?> ', '<?php echo $this->escape($lang); ?> ', null);"> <?php echo $this->escape($item->name); ?> </a> <div class="small"> <?php echo JText::_('JCATEGORY') . ": " . $this->escape($item->category_title); ?> </div> </td>
/** * Search content (contacts). * * The SQL must return the following fields that are used in a common display * routine: href, title, section, created, text, browsernav. * * @param string $text Target search string. * @param string $phrase Matching option (possible values: exact|any|all). Default is "any". * @param string $ordering Ordering option (possible values: newest|oldest|popular|alpha|category). Default is "newest". * @param string $areas An array if the search is to be restricted to areas or null to search all areas. * * @return array Search results. * * @since 1.6 */ public function onContentSearch($text, $phrase = '', $ordering = '', $areas = null) { require_once JPATH_SITE . '/components/com_contact/helpers/route.php'; $db = JFactory::getDbo(); $app = JFactory::getApplication(); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); if (is_array($areas)) { if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) { return array(); } } $sContent = $this->params->get('search_content', 1); $sArchived = $this->params->get('search_archived', 1); $limit = $this->params->def('search_limit', 50); $state = array(); if ($sContent) { $state[] = 1; } if ($sArchived) { $state[] = 2; } if (empty($state)) { return array(); } $text = trim($text); if ($text == '') { return array(); } $section = JText::_('PLG_SEARCH_CONTACTS_CONTACTS'); switch ($ordering) { case 'alpha': $order = 'a.name ASC'; break; case 'category': $order = 'c.title ASC, a.name ASC'; break; case 'popular': case 'newest': case 'oldest': default: $order = 'a.name DESC'; } $text = $db->quote('%' . $db->escape($text, true) . '%', false); $query = $db->getQuery(true); // SQLSRV changes. $case_when = ' CASE WHEN '; $case_when .= $query->charLength('a.alias', '!=', '0'); $case_when .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when .= ' ELSE '; $case_when .= $a_id . ' END as slug'; $case_when1 = ' CASE WHEN '; $case_when1 .= $query->charLength('c.alias', '!=', '0'); $case_when1 .= ' THEN '; $c_id = $query->castAsChar('c.id'); $case_when1 .= $query->concatenate(array($c_id, 'c.alias'), ':'); $case_when1 .= ' ELSE '; $case_when1 .= $c_id . ' END as catslug'; $query->select('a.name AS title, \'\' AS created, a.con_position, a.misc, ' . $case_when . ',' . $case_when1 . ', ' . $query->concatenate(array("a.name", "a.con_position", "a.misc"), ",") . ' AS text,' . $query->concatenate(array($db->quote($section), "c.title"), " / ") . ' AS section,' . '\'2\' AS browsernav'); $query->from('#__contact_details AS a')->join('INNER', '#__categories AS c ON c.id = a.catid')->where('(a.name LIKE ' . $text . ' OR a.misc LIKE ' . $text . ' OR a.con_position LIKE ' . $text . ' OR a.address LIKE ' . $text . ' OR a.suburb LIKE ' . $text . ' OR a.state LIKE ' . $text . ' OR a.country LIKE ' . $text . ' OR a.postcode LIKE ' . $text . ' OR a.telephone LIKE ' . $text . ' OR a.fax LIKE ' . $text . ') AND a.published IN (' . implode(',', $state) . ') AND c.published=1 ' . ' AND a.access IN (' . $groups . ') AND c.access IN (' . $groups . ')')->order($order); // Filter by language. if ($app->isSite() && JLanguageMultilang::isEnabled()) { $tag = JFactory::getLanguage()->getTag(); $query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')')->where('c.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')'); } $db->setQuery($query, 0, $limit); try { $rows = $db->loadObjectList(); } catch (RuntimeException $e) { $rows = array(); JFactory::getApplication()->enqueueMessage(JText::_('JERROR_AN_ERROR_HAS_OCCURRED'), 'error'); } if ($rows) { foreach ($rows as $key => $row) { $rows[$key]->href = ContactHelperRoute::getContactRoute($row->slug, $row->catslug); $rows[$key]->text = $row->title; $rows[$key]->text .= $row->con_position ? ', ' . $row->con_position : ''; $rows[$key]->text .= $row->misc ? ', ' . $row->misc : ''; } } return $rows; }
<?php if ($this->params->get('show_fax_headings') and !empty($item->fax)) { ?> <?php echo JTEXT::sprintf('COM_CONTACT_FAX_NUMBER', $item->fax); ?> <br /> <?php } ?> </span> <p> <div class="list-title"> <a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?> "> <?php echo $item->name; ?> </a> <?php if ($this->items[$i]->published == 0) { ?> <span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?> </span> <?php }
</th> <?php endif; ?> </tr> </thead> <?php endif; ?> <tbody> <?php foreach($this->items as $i => $item) : ?> <tr class="<?php echo ($i % 2) ? "odd" : "even"; ?>"> <td class="item-num"> <?php echo $i; ?> </td> <td class="item-title"> <a href="<?php echo JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); ?>"> <?php echo $item->name; ?></a> </td> <?php if ($this->params->get('show_position_headings')) : ?> <td class="item-position"> <?php echo $item->con_position; ?> </td> <?php endif; ?> <?php if ($this->params->get('show_email_headings')) : ?> <td class="item-email"> <?php echo $item->email_to; ?> </td> <?php endif; ?>
public function getLinks($args) { $items = array(); $view = isset($args->view) ? $args->view : ''; $language = ''; if (defined('JPATH_PLATFORM')) { require_once JPATH_SITE . '/components/com_contact/helpers/route.php'; } switch ($view) { default: if (defined('JPATH_PLATFORM')) { $categories = WFLinkBrowser::getCategory('com_contact'); } else { $categories = WFLinkBrowser::getCategory('com_contact_details'); } foreach ($categories as $category) { if (defined('JPATH_PLATFORM')) { // language if (isset($category->language)) { $language = $category->language; } $url = ContactHelperRoute::getCategoryRoute($category->id, $language); } else { $itemid = WFLinkBrowser::getItemId('com_contact', array('category' => $category->id)); $url = 'index.php?option=com_contact&view=category&catid=' . $category->slug . $itemid; } // convert to SEF $url = self::route($url); $items[] = array('id' => 'index.php?option=com_contact&view=category&id=' . $category->id, 'url' => $url, 'name' => $category->title . ' / ' . $category->alias, 'class' => 'folder contact'); } break; case 'category': if (defined('JPATH_PLATFORM')) { $categories = WFLinkBrowser::getCategory('com_contact', $args->id); foreach ($categories as $category) { $children = WFLinkBrowser::getCategory('com_contact', $category->id); // language if (isset($category->language)) { $language = $category->language; } if ($children) { $id = ContactHelperRoute::getCategoryRoute($category->id, $language); } else { $id = ContactHelperRoute::getCategoryRoute($category->slug, $language); } // convert to SEF $url = self::route($id); $items[] = array('url' => $url, 'id' => $id, 'name' => $category->title . ' / ' . $category->alias, 'class' => 'folder content'); } } $contacts = self::_contacts($args->id); foreach ($contacts as $contact) { // language if (isset($contact->language)) { $language = $contact->language; } if (defined('JPATH_PLATFORM')) { $id = ContactHelperRoute::getContactRoute($contact->id, $args->id, $language); } else { $catid = $args->id ? '&catid=' . $args->id : ''; $itemid = WFLinkBrowser::getItemId('com_contact', array('contact' => $contact->id)); if (!$itemid && isset($args->Itemid)) { // fall back to the parent item's Itemid $itemid = '&Itemid=' . $args->Itemid; } $id = 'index.php?option=com_contact&view=contact' . $catid . '&id=' . $contact->id . '-' . $contact->alias . $itemid; } $id = self::route($id); $items[] = array('id' => $id, 'name' => $contact->name . ' / ' . $contact->alias, 'class' => 'file'); } break; } return $items; }
function display($tpl = null) { // Initialise variables. $app = JFactory::getApplication(); $user = JFactory::getUser(); $dispatcher = JDispatcher::getInstance(); $state = $this->get('State'); $item = $this->get('Item'); $this->form = $this->get('Form'); // Get the parameters $params = JComponentHelper::getParams('com_contact'); if ($item) { // If we found an item, merge the item parameters $params->merge($item->params); // Get Category Model data $categoryModel = JModel::getInstance('Category', 'ContactModel', array('ignore_request' => true)); $categoryModel->setState('category.id', $item->catid); $categoryModel->setState('list.ordering', 'a.name'); $categoryModel->setState('list.direction', 'asc'); $contacts = $categoryModel->getItems(); } // Check for errors. if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false; } // check if access is not public $groups = $user->getAuthorisedViewLevels(); $return = ''; if (!in_array($item->access, $groups) || !in_array($item->category_access, $groups)) { $uri = JFactory::getURI(); $return = (string) $uri; JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR')); return; } $options['category_id'] = $item->catid; $options['order by'] = 'a.default_con DESC, a.ordering ASC'; // Handle email cloaking if ($item->email_to && $params->get('show_email')) { $item->email_to = JHtml::_('email.cloak', $item->email_to); } if ($params->get('show_street_address') || $params->get('show_suburb') || $params->get('show_state') || $params->get('show_postcode') || $params->get('show_country')) { if (!empty($item->address) || !empty($item->suburb) || !empty($item->state) || !empty($item->country) || !empty($item->postcode)) { $params->set('address_check', 1); } } else { $params->set('address_check', 0); } // Manage the display mode for contact detail groups switch ($params->get('contact_icons')) { case 1: // text $params->set('marker_address', JText::_('COM_CONTACT_ADDRESS') . ": "); $params->set('marker_email', JText::_('JGLOBAL_EMAIL') . ": "); $params->set('marker_telephone', JText::_('COM_CONTACT_TELEPHONE') . ": "); $params->set('marker_fax', JText::_('COM_CONTACT_FAX') . ": "); $params->set('marker_mobile', JText::_('COM_CONTACT_MOBILE') . ": "); $params->set('marker_misc', JText::_('COM_CONTACT_OTHER_INFORMATION') . ": "); $params->set('marker_class', 'jicons-text'); break; case 2: // none $params->set('marker_address', ''); $params->set('marker_email', ''); $params->set('marker_telephone', ''); $params->set('marker_mobile', ''); $params->set('marker_fax', ''); $params->set('marker_misc', ''); $params->set('marker_class', 'jicons-none'); break; default: // icons $image1 = JHTML::_('image', 'contacts/' . $params->get('icon_address', 'con_address.png'), JText::_('COM_CONTACT_ADDRESS') . ": ", NULL, true); $image2 = JHTML::_('image', 'contacts/' . $params->get('icon_email', 'emailButton.png'), JText::_('JGLOBAL_EMAIL') . ": ", NULL, true); $image3 = JHTML::_('image', 'contacts/' . $params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CONTACT_TELEPHONE') . ": ", NULL, true); $image4 = JHTML::_('image', 'contacts/' . $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CONTACT_FAX') . ": ", NULL, true); $image5 = JHTML::_('image', 'contacts/' . $params->get('icon_misc', 'con_info.png'), JText::_('COM_CONTACT_OTHER_INFORMATION') . ": ", NULL, true); $image6 = JHTML::_('image', 'contacts/' . $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CONTACT_MOBILE') . ": ", NULL, true); $params->set('marker_address', $image1); $params->set('marker_email', $image2); $params->set('marker_telephone', $image3); $params->set('marker_fax', $image4); $params->set('marker_misc', $image5); $params->set('marker_mobile', $image6); $params->set('marker_class', 'jicons-icons'); break; } // Add links to contacts if ($params->get('show_contact_list') && count($contacts) > 1) { foreach ($contacts as &$contact) { $contact->link = JRoute::_(ContactHelperRoute::getContactRoute($contact->slug, $contact->catid)); } $item->link = JRoute::_(ContactHelperRoute::getContactRoute($item->slug, $item->catid)); } JHtml::_('behavior.formvalidation'); //Escape strings for HTML output $this->pageclass_sfx = htmlspecialchars($params->get('pageclass_sfx')); $this->assignRef('contact', $item); $this->assignRef('params', $params); $this->assignRef('return', $return); $this->assignRef('state', $state); $this->assignRef('item', $item); $this->assignRef('user', $user); $this->assignRef('contacts', $contacts); // Override the layout only if this is not the active menu item // If it is the active menu item, then the view and item id will match $active = $app->getMenu()->getActive(); if (!$active || (strpos($active->link, 'view=contact') === false || strpos($active->link, '&id=' . (string) $this->item->id) === false)) { if ($layout = $params->get('contact_layout')) { $this->setLayout($layout); } } elseif (isset($active->query['layout'])) { // We need to set the layout in case this is an alternative menu item (with an alternative layout) $this->setLayout($active->query['layout']); } $this->_prepareDocument(); parent::display($tpl); }
/** * Convert an row to an elastica document */ private function rowToDocument($row) { $id = $row->id; //Create a date object $date = new DateTime($row->created); //Get the names of the categories $category = JCategories::getInstance('Contact')->get($row->catid); $categories = array(); while ($category && $category->id > 1) { $categories[] = $category->title; $category = $category->getParent(); } // Create a document $entity = array('id' => $id, 'name' => html_entity_decode(strip_tags($row->name), ENT_COMPAT | ENT_HTML401, 'UTF-8'), 'alias' => $row->alias, 'misc' => html_entity_decode(strip_tags($row->misc), ENT_COMPAT | ENT_HTML401, 'UTF-8'), 'categories' => implode(';', $categories), 'language' => $row->language, 'created_at' => $date->format('Y-m-d\\Th:i:s'), 'href' => ContactHelperRoute::getContactRoute($row->id, implode(';', $categories), $row->language)); $document = new \Elastica\Document($id, $entity); return $document; }
if ($params->get('separate_code', '') == "hr") { $separate_code = "<hr class=\"contact_sep\" />"; } else { $separate_code = ""; } } } include $sitepath . 'components/com_contact/helpers/route.php'; echo '<div class="custom module doctors">'; echo '<h3 class="page-header"><a href="/specialist"><span>Наши специалисты</span></a></h3>'; echo '<ul>'; $separate_num = sizeof($contacts); for ($i = 0; $i < sizeof($contacts); $i++) { echo '<li>'; $slug = $contacts[$i]->id . ":" . $contacts[$i]->alias; $url = ContactHelperRoute::getContactRoute($slug, $contacts[$i]->catid); $telephone_array = explode(",", $contacts[$i]->telephone); if ($params->get('show_image', '') == 1 && $contacts[$i]->name != '') { if ($params->get('link_image', '') == 1) { echo "<a href=\"" . $url . "\" class=\"thumb\">" . contactImage($contacts[$i], $params->get('thumb_size', 100)) . "</a>{$newspace}\n"; } else { echo "<span class=\"info_image\">" . contactImage($contacts[$i], $params->get('thumb_size', 100)) . "</span>{$newspace}\n"; } } list($lastname, $firstname, $middlename) = split(' ', $contacts[$i]->name); if ($params->get('show_name', '') == 1 && $contacts[$i]->name != '') { if ($params->get('link_to', '') == 1) { echo "<h4><a href=\"" . $url . "\"><strong>" . $lastname . "</strong><br/>" . $firstname . " " . $middlename . "</a></h4>{$newspace}\n"; } else { echo "<h4><strong>" . $lastname . "</strong><br/>" . $firstname . " " . $middlename . "</h4>{$newspace}\n"; }