/** * Print Popup * * @param object $member Member info * @param JRegistry $params HTML Params * @param array $attribs Member attribs * * @return string * * @since 1.5 */ public static function print_popup($member, $params, $attribs = []) { $url = ChurchDirectoryHelperRoute::getMemberRoute($member->slug, $member->catid); $url .= '&tmpl=component&print=1&layout=default'; $status = 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'; // Checks template image directory for image, if non found default are loaded if ($params->get('show_icons')) { $text = JHtml::_('image', 'system/printButton.png', JText::_('JGLOBAL_PRINT'), null, true); } else { $text = JText::_('JGLOBAL_ICON_SEP') . ' ' . JText::_('JGLOBAL_PRINT') . ' ' . JText::_('JGLOBAL_ICON_SEP'); } $attribs['title'] = JText::_('JGLOBAL_PRINT'); $attribs['onclick'] = "window.open(this.href,'win2','" . $status . "'); return false;"; $attribs['rel'] = 'nofollow'; return JHtml::_('link', JRoute::_($url), $text, $attribs); }
/** * 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 1.7.0 * @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; } // 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 = ChurchDirectoryHelperRoute::getMemberRoute($item->slug, $item->catslug); $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 member * configuration parameters. */ /* Handle the member position. if ($item->params->get('show_position', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'position'); } */ // Handle the member street address. if ($item->params->get('show_street_address', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'address'); } // Handle the member city. if ($item->params->get('show_suburb', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'city'); } // Handle the member region. if ($item->params->get('show_state', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'region'); } // Handle the member country. if ($item->params->get('show_country', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'country'); } // Handle the member zip code. if ($item->params->get('show_postcode', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'zip'); } // Handle the member telephone number. if ($item->params->get('show_telephone', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'telephone'); } // Handle the member fax number. if ($item->params->get('show_fax', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'fax'); } // Handle the member e-mail address. if ($item->params->get('show_email', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'email'); } // Handle the member mobile number. if ($item->params->get('show_mobile', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'mobile'); } // Handle the member webpage. if ($item->params->get('show_webpage', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'webpage'); } // Handle the member webpage. if ($item->params->get('show_children', true)) { $item->addInstruction(FinderIndexer::META_CONTEXT, 'children'); } // Handle the member user name. $item->addInstruction(FinderIndexer::META_CONTEXT, 'user'); // Add the type taxonomy data. $item->addTaxonomy('Type', 'Church Member'); // 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); }
/** * Display Function * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise a Error object. * * @since 1.7.2 */ public function display($tpl = null) { /** @var JApplicationSite $app */ $app = JFactory::getApplication(); // Check for errors. if (count($errors = $this->get('Errors'))) { $app->enqueueMessage(implode("\n", $errors), 'error'); return false; } $doc = JFactory::getDocument(); $params = $app->getParams(); $feedEmail = $app->get('feed_email', 'author'); $siteEmail = $app->get('mailfrom'); $fromName = $app->get('fromname'); $app->input->set('limit', $app->get('feed_limit')); // Get some data from the models $category = $this->get('Category'); $rows = $this->get('Items'); $doc->link = JRoute::_(ChurchDirectoryHelperRoute::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 churchdirectory slug $row->slug = $row->alias ? ($row->id . ':' . $row->alias) : $row->id; // Url link to article $link = JRoute::_(ChurchDirectoryHelperRoute::getMemberRoute($row->slug, $row->catid)); $description = $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 = $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); } return true; }
</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::_(ChurchDirectoryHelperRoute::getMemberRoute($item->slug, $item->catid)); ?>"> <?php echo $item->name; ?></a> </td> <?php if ($this->params->get('show_position_headings')) : ?> <td class="item-position"> <?php echo $renderHelper->getPosition($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; ?>
/** * Display function * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return boolean * * @since 1.7.2 */ public function display($tpl = null) { $app = JFactory::getApplication(); $user = JFactory::getUser(); $state = $this->get('State'); $item = $this->get('Item'); $this->form = $this->get('Form'); $contacts = 0; // Get the parameters $params = JComponentHelper::getParams('com_churchdirectory'); if ($item) { // If we found an item, merge the item parameters $params->merge($item->params); // Get Category Model data $categoryModel = JModelLegacy::getInstance('Category', 'ChurchDirectoryModel', ['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(); } else { return null; } // Check for errors. if (count($errors = $this->get('Errors'))) { $app->enqueueMessage(implode("\n", $errors), 'error'); 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'), 'warning'); $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('churchdirectory_icons')) { case 1 : // Text $params->set('marker_address', JText::_('COM_CHURCHDIRECTORY_ADDRESS') . ": "); $params->set('marker_email', JText::_('JGLOBAL_EMAIL') . ": "); $params->set('marker_telephone', JText::_('COM_CHURCHDIRECTORY_TELEPHONE') . ": "); $params->set('marker_fax', JText::_('COM_CHURCHDIRECTORY_FAX') . ": "); $params->set('marker_mobile', JText::_('COM_CHURCHDIRECTORY_MOBILE') . ": "); $params->set('marker_misc', JText::_('COM_CHURCHDIRECTORY_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 if ($params->get('icon_address')) { $image1 = JHtml::_('image', $params->get('icon_address', 'con_address.png'), JText::_('COM_CHURCHDIRECTORY_ADDRESS') . ": ", null, false); } else { $image1 = JHtml::_('image', 'contacts/' . $params->get('icon_address', 'con_address.png'), JText::_('COM_CHURCHDIRECTORY_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_CHURCHDIRECTORY_TELEPHONE') . ": ", null, false); } else { $image3 = JHtml::_('image', 'contacts/' . $params->get('icon_telephone', 'con_tel.png'), JText::_('COM_CHURCHDIRECTORY_TELEPHONE') . ": ", null, true ); } if ($params->get('icon_fax')) { $image4 = JHtml::_('image', $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CHURCHDIRECTORY_FAX') . ": ", null, false); } else { $image4 = JHtml::_('image', 'contacts/' . $params->get('icon_fax', 'con_fax.png'), JText::_('COM_CHURCHDIRECTORY_FAX') . ": ", null, true); } if ($params->get('icon_misc')) { $image5 = JHtml::_('image', $params->get('icon_misc', 'con_info.png'), JText::_('COM_CHURCHDIRECTORY_OTHER_INFORMATION') . ": ", null, false); } else { $image5 = JHtml::_('image', 'contacts/' . $params->get('icon_misc', 'con_info.png'), JText::_('COM_CHURCHDIRECTORY_OTHER_INFORMATION') . ": ", null, true ); } if ($params->get('icon_mobile')) { $image6 = JHtml::_('image', $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CHURCHDIRECTORY_MOBILE') . ": ", null, false); } else { $image6 = JHtml::_('image', 'contacts/' . $params->get('icon_mobile', 'con_mobile.png'), JText::_('COM_CHURCHDIRECTORY_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_churchdirectory_list') && count($contacts) > 1) { foreach ($contacts as &$contact) { $contact->link = JRoute::_(ChurchDirectoryHelperRoute::getMemberRoute($contact->slug, $contact->catid)); } $item->link = JRoute::_(ChurchDirectoryHelperRoute::getMemberRoute($item->slug, $item->catid)); } // Process the content plugins. $dispatcher = JEventDispatcher::getInstance(); 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; $dispatcher->trigger('onContentPrepare', ['com_churchdirectory.member', &$item, &$this->params, $offset]); // Store the events for later $item->event = new stdClass; $results = $dispatcher->trigger('onContentAfterTitle', ['com_churchdirectory.member', &$item, &$this->params, $offset]); $item->event->afterDisplayTitle = trim(implode("\n", $results)); $results = $dispatcher->trigger('onContentBeforeDisplay', ['com_churchdirectory.member', &$item, &$this->params, $offset] ); $item->event->beforeDisplayContent = trim(implode("\n", $results)); $results = $dispatcher->trigger('onContentAfterDisplay', ['com_churchdirectory.member', &$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->member = & $item; $this->params = & $params; $this->return = & $return; $this->state = & $state; $this->item = & $item; $this->user = & $user; $this->members = & $contacts; $item->tags = new JHelperTags; $item->tags->getItemTags('com_churchdirectory.member', $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=member') === false) || (strpos($active->link, '&id=' . (string) $this->item->id) === false))) { if ($layout = $params->get('churchdirectory_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(); $this->_prepareDocument(); return parent::display($tpl); }