Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code:102) in /var/www/iplanru/data/www/intesco.ru/d59ed/index.php(1) : eval()'d code(2) : eval()'d code on line 4
PK$\Z[ contacts/contacts.phpnuW+A 'PLG_SEARCH_CONTACTS_CONTACTS' ); return $areas; } /** * 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 . ')' ) ->group('a.id, a.con_position, a.misc, c.alias, c.id') ->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); $rows = $db->loadObjectList(); 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; } } PK$\Z[Vcontacts/index.htmlnuW+A PK$\Z[0켡contacts/contacts.xmlnuW+A plg_search_contacts Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_CONTACTS_XML_DESCRIPTION contacts.php index.html en-GB.plg_search_contacts.ini en-GB.plg_search_contacts.sys.ini
PK$\Z[wՀ tags/tags.xmlnuW+A plg_search_tags Joomla! Project March 2014 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_TAGS_XML_DESCRIPTION tags.php index.html en-GB.plg_search_tags.ini en-GB.plg_search_tags.sys.ini
PK$\Z[Q2v,tags/index.htmlnuW+APK$\Z[kk tags/tags.phpnuW+A 'PLG_SEARCH_TAGS_TAGS' ); return $areas; } /** * Search content (tags). * * 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 3.3 */ public function onContentSearch($text, $phrase = '', $ordering = '', $areas = null) { $db = JFactory::getDbo(); $query = $db->getQuery(true); $app = JFactory::getApplication(); $user = JFactory::getUser(); $section = JText::_('PLG_SEARCH_TAGS_TAGS'); $limit = $this->params->def('search_limit', 50); if (is_array($areas)) { if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) { return array(); } } $text = trim($text); if ($text == '') { return array(); } $text = $db->quote('%' . $db->escape($text, true) . '%', false); switch ($ordering) { case 'alpha': $order = 'a.title ASC'; break; case 'newest': $order = 'a.created_time DESC'; break; case 'oldest': $order = 'a.created_time ASC'; break; case 'popular': default: $order = 'a.title DESC'; } $query->select('a.id, a.title, a.alias, a.note, a.published, a.access' . ', a.checked_out, a.checked_out_time, a.created_user_id' . ', a.path, a.parent_id, a.level, a.lft, a.rgt' . ', a.language, a.created_time AS created, a.note, a.description'); $case_when_item_alias = ' CASE WHEN '; $case_when_item_alias .= $query->charLength('a.alias', '!=', '0'); $case_when_item_alias .= ' THEN '; $a_id = $query->castAsChar('a.id'); $case_when_item_alias .= $query->concatenate(array($a_id, 'a.alias'), ':'); $case_when_item_alias .= ' ELSE '; $case_when_item_alias .= $a_id . ' END as slug'; $query->select($case_when_item_alias); $query->from('#__tags AS a'); $query->where('a.alias <> ' . $db->quote('root')); $query->where('(a.title LIKE ' . $text . ' OR a.alias LIKE ' . $text . ')'); if (!$user->authorise('core.admin')) { $groups = implode(',', $user->getAuthorisedViewLevels()); $query->where('a.access IN (' . $groups . ')'); } if ($app->isSite() && JLanguageMultilang::isEnabled()) { $tag = JFactory::getLanguage()->getTag(); $query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')'); } $query->order($order); $db->setQuery($query, 0, $limit); $rows = $db->loadObjectList(); if ($rows) { require_once JPATH_ROOT . '/components/com_tags/helpers/route.php'; foreach ($rows as $key => $row) { $rows[$key]->href = TagsHelperRoute::getTagRoute($row->id); $rows[$key]->text .= ($row->description != "" ? $row->description : $row->title); $rows[$key]->text .= $row->note; $rows[$key]->section = $section; $rows[$key]->created = $row->created; $rows[$key]->browsernav = 0; } } if (!$this->params->get('show_tagged_items')) { return $rows; } else { $final_items = $rows; JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_tags/models'); $tag_model = JModelLegacy::getInstance('Tag', 'TagsModel'); $tag_model->getState(); foreach ($rows as $key => $row) { $tag_model->setState('tag.id', $row->id); $tagged_items = $tag_model->getItems(); if ($tagged_items) { foreach($tagged_items as $k => $item) { $new_item = new stdClass; $new_item->href = $item->link; $new_item->title = $item->core_title; $new_item->text = $item->core_body; $new_item->section = JText::sprintf('PLG_SEARCH_TAGS_ITEM_TAGGED_WITH', $item->content_type_title, $row->title); $new_item->created = $item->displayDate; $new_item->browsernav = 0; $final_items[] = $new_item; } } } return $final_items; } } } PK$\Z[V index.htmlnuW+A PK$\Z[Vcategories/index.htmlnuW+A PK$\Z[Z_nZZcategories/categories.phpnuW+A 'PLG_SEARCH_CATEGORIES_CATEGORIES' ); return $areas; } /** * Search content (categories). * * 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 mixed $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) { $db = JFactory::getDbo(); $user = JFactory::getUser(); $app = JFactory::getApplication(); $groups = implode(',', $user->getAuthorisedViewLevels()); $searchText = $text; 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(); } /* TODO: The $where variable does not seem to be used at all switch ($phrase) { case 'exact': $text = $db->quote('%' . $db->escape($text, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.title LIKE ' . $text; $wheres2[] = 'a.description LIKE ' . $text; $where = '(' . implode(') OR (', $wheres2) . ')'; break; case 'any': case 'all'; default: $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->quote('%' . $db->escape($word, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.title LIKE ' . $word; $wheres2[] = 'a.description LIKE ' . $word; $wheres[] = implode(' OR ', $wheres2); } $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; break; } */ switch ($ordering) { case 'alpha': $order = 'a.title ASC'; break; case 'category': case 'popular': case 'newest': case 'oldest': default: $order = 'a.title 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'; $query->select('a.title, a.description AS text, \'\' AS created, \'2\' AS browsernav, a.id AS catid, ' . $case_when) ->from('#__categories AS a') ->where( '(a.title LIKE ' . $text . ' OR a.description LIKE ' . $text . ') AND a.published IN (' . implode(',', $state) . ') AND a.extension = ' . $db->quote('com_content') . 'AND a.access IN (' . $groups . ')' ) ->group('a.id, a.title, a.description, a.alias') ->order($order); if ($app->isSite() && JLanguageMultilang::isEnabled()) { $query->where('a.language in (' . $db->quote(JFactory::getLanguage()->getTag()) . ',' . $db->quote('*') . ')'); } $db->setQuery($query, 0, $limit); $rows = $db->loadObjectList(); $return = array(); if ($rows) { $count = count($rows); for ($i = 0; $i < $count; $i++) { $rows[$i]->href = ContentHelperRoute::getCategoryRoute($rows[$i]->slug); $rows[$i]->section = JText::_('JCATEGORY'); } foreach ($rows as $category) { if (searchHelper::checkNoHTML($category, $searchText, array('name', 'title', 'text'))) { $return[] = $category; } } } return $return; } } PK$\Z[1ccategories/categories.xmlnuW+A plg_search_categories Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_CATEGORIES_XML_DESCRIPTION categories.php index.html en-GB.plg_search_categories.ini en-GB.plg_search_categories.sys.ini
PK$\Z[Vnewsfeeds/index.htmlnuW+A PK$\Z[RAnewsfeeds/newsfeeds.phpnuW+A 'PLG_SEARCH_NEWSFEEDS_NEWSFEEDS' ); return $areas; } /** * Search content (newsfeeds). * * 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 mixed $areas An array if the search it 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) { $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(); } switch ($phrase) { case 'exact': $text = $db->quote('%' . $db->escape($text, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.name LIKE ' . $text; $wheres2[] = 'a.link LIKE ' . $text; $where = '(' . implode(') OR (', $wheres2) . ')'; break; case 'all': case 'any': default: $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->quote('%' . $db->escape($word, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.name LIKE ' . $word; $wheres2[] = 'a.link LIKE ' . $word; $wheres[] = implode(' OR ', $wheres2); } $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; break; } switch ($ordering) { case 'alpha': $order = 'a.name ASC'; break; case 'category': $order = 'c.title ASC, a.name ASC'; break; case 'oldest': case 'popular': case 'newest': default: $order = 'a.name ASC'; } $searchNewsfeeds = JText::_('PLG_SEARCH_NEWSFEEDS_NEWSFEEDS'); $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.link AS text, ' . $case_when . "," . $case_when1) ->select($query->concatenate(array($db->quote($searchNewsfeeds), 'c.title'), " / ") . ' AS section') ->select('\'1\' AS browsernav') ->from('#__newsfeeds AS a') ->join('INNER', '#__categories as c ON c.id = a.catid') ->where('(' . $where . ') AND a.published IN (' . implode(',', $state) . ') AND c.published = 1 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); $rows = $db->loadObjectList(); if ($rows) { foreach ($rows as $key => $row) { $rows[$key]->href = 'index.php?option=com_newsfeeds&view=newsfeed&catid=' . $row->catslug . '&id=' . $row->slug; } } return $rows; } } PK$\Z[l7newsfeeds/newsfeeds.xmlnuW+A plg_search_newsfeeds Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_NEWSFEEDS_XML_DESCRIPTION newsfeeds.php index.html en-GB.plg_search_newsfeeds.ini en-GB.plg_search_newsfeeds.sys.ini
PK$\Z[&))zoosearch/changelog.phpnuW+A Changelog ------------ 2.1.0 ^ changes to building item link 2.0.1 # fixes to search in multiple elements + added the menu itemid to the items link 2.0.0 + Initial Release * -> Security Fix # -> Bug Fix $ -> Language fix or change + -> Addition ^ -> Change - -> Removed ! -> NotePK$\Z[bcczoosearch/file.script.phpnuW+Afilesystem->readDirectoryFiles($parent->getParent()->getPath('source'), $parent->getParent()->getPath('source').'/', '/(positions\.(config|xml)|metadata\.xml)$/', true) as $file) { JFile::delete($file); } } } public function postflight($type, $parent) {} }PK$\Z[6zoosearch/renderer/index.htmlnuW+APK$\Z[Rs$zoosearch/renderer/item/metadata.xmlnuW+A Default An item is rendered with the default layout in all default module themes. PK$\Z[HH#zoosearch/renderer/item/default.phpnuW+ArenderPosition('description');PK$\Z[?%zoosearch/renderer/item/positions.xmlnuW+A Description PK$\Z[6"zoosearch/renderer/item/index.htmlnuW+APK$\Z[= (zoosearch/renderer/item/positions.confignuW+A { "blog.article.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "separator=[ ]", "element": "08795744-c2dc-4a68-8252-4e21c4c4c774" }, "1": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "2e3c9e69-1f9e-4647-8d13-4e88094d2790" } } }, "business.company.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "1a85a7a6-2aba-4480-925b-6b97d311ee6c" } } }, "blog.author.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "14c0dd9f-ae3c-4eb2-8e22-4e9294ad3120" } } }, "business.employee.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "241905cc-36d4-4611-a1d5-fadfe280f70e" } } }, "cookbook.recipe.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "35155961-b9ae-48d4-b4aa-1a569ec7930c" } } }, "download.file.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "separator=[ ]", "element": "b9e826b5-e671-4fe8-a447-bf08c8c6b8e4" }, "1": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "c5121091-6f63-43ad-a86a-136025fe6da0" } } }, "movie.movie.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "b40b44c8-a289-46b6-a6da-9f9824714762" } } }, "movie.person.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "separated_by": "tag=[
%s<\/div>]", "display": "all", "element": "a552a157-ce11-4b11-ad34-5de19e065d53" } } }, "product.product.default": { "description": { "0": { "showlabel": "0", "altlabel": "", "width": "", "height": "", "link_to_item": "1", "element": "57172c66-27cb-442d-a964-19f64f744a3b" }, "1": { "showlabel": "0", "altlabel": "", "date_format": "%A, %d %B %Y", "custom_format": "", "separated_by": "separator=[ ]", "element": "667ea4d6-3745-40b5-b2a2-41fdc13b9a47" }, "2": { "showlabel": "0", "altlabel": "", "separated_by": "separator=[ ]", "element": "aed9068f-8fd9-4c38-89d1-83187a602ac5" } } } }PK$\Z[Qzoosearch/zoosearch.phpnuW+Aenabled) { return; } parent::__construct($subject, $params); // load config jimport('joomla.filesystem.file'); if (!JFile::exists(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php') || !JComponentHelper::getComponent('com_zoo', true)->enabled) { return; } require_once(JPATH_ADMINISTRATOR.'/components/com_zoo/config.php'); $this->app = App::getInstance('zoo'); } /* Function: onSearchAreas Get search areas. Returns: Array - Search areas */ public function onSearchAreas() { static $areas = array(); return $areas; } /* Function: onSearch Get search results. The sql must return the following fields that are used in a common display routine: href, title, section, created, text, browsernav Parameters: $text - Target search string $phrase - Matching option, exact|any|all $ordering - Ordering option, newest|oldest|popular|alpha|category $areas - An array if the search it to be restricted to areas, null if search all Returns: Array - Search results */ public function onContentSearch($text, $phrase = '', $ordering = '', $areas = null) { $db = $this->app->database; // init vars $now = $db->Quote($this->app->date->create()->toSQL()); $null = $db->Quote($db->getNullDate()); $text = trim($text); // return empty array, if no search text provided if (empty($text)) { return array(); } // get plugin info $plugin = JPluginHelper::getPlugin('search', 'zoosearch'); $params = $this->app->parameter->create($plugin->params); $fulltext = $params->get('search_fulltext', 0) && strlen($text) > 3 && intval($db->getVersion()) >= 4; $limit = $params->get('search_limit', 50); $elements = array(); foreach ($this->app->application->groups() as $application) { foreach($application->getTypes() as $type) { foreach ($type->getElements() as $element) { if (!$element->canAccess()) { $elements[] = $db->Quote($element->identifier); } } } } $access = $elements ? 'NOT element_id in ('.implode(',', $elements).')' : '1'; // prepare search query switch ($phrase) { case 'exact': if ($fulltext) { $text = $db->escape($text); $where[] = "MATCH(a.name) AGAINST ('\"{$text}\"' IN BOOLEAN MODE)"; $where[] = "MATCH(b.value) AGAINST ('\"{$text}\"' IN BOOLEAN MODE) AND $access"; $where[] = "MATCH(c.name) AGAINST ('\"{$text}\"' IN BOOLEAN MODE)"; $where = implode(" OR ", $where); } else { $text = $db->Quote('%'.$db->escape($text, true).'%', false); $like = array(); $like[] = 'a.name LIKE '.$text; $like[] = "b.value LIKE $text AND $access"; $like[] = 'c.name LIKE '.$text; $where = '(' .implode(') OR (', $like).')'; } break; case 'all': case 'any': default: if ($fulltext) { $text = $db->escape($text); $where[] = "MATCH(a.name) AGAINST ('{$text}' IN BOOLEAN MODE)"; $where[] = "MATCH(b.value) AGAINST ('{$text}' IN BOOLEAN MODE) AND $access"; $where[] = "MATCH(c.name) AGAINST ('{$text}' IN BOOLEAN MODE)"; $where = implode(" OR ", $where); } else { $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->Quote('%'.$db->escape($word, true).'%', false); $like = array(); $like[] = 'a.name LIKE '.$word; $like[] = 'EXISTS (SELECT value FROM '.ZOO_TABLE_SEARCH.' WHERE a.id = item_id AND value LIKE '.$word.' AND '.$access.')'; $like[] = 'EXISTS (SELECT name FROM '.ZOO_TABLE_TAG.' WHERE a.id = item_id AND name LIKE '.$word.')'; $wheres[] = implode(' OR ', $like); } $where = '('.implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres).')'; } } // set search ordering switch ($ordering) { case 'newest': $order = 'a.created DESC'; break; case 'oldest': $order = 'a.created ASC'; break; case 'popular': $order = 'a.hits DESC'; break; case 'alpha': case 'category': default: $order = 'a.name ASC'; } // set query options $select = "DISTINCT a.*"; $from = ZOO_TABLE_ITEM." AS a" ." LEFT JOIN ".ZOO_TABLE_SEARCH." AS b ON a.id = b.item_id" ." LEFT JOIN ".ZOO_TABLE_TAG." AS c ON a.id = c.item_id"; $conditions = array("(".$where.")" ." AND a.searchable = 1" ." AND a." . $this->app->user->getDBAccessString() ." AND (a.state = 1" ." AND (a.publish_up = ".$null." OR a.publish_up <= ".$now.")" ." AND (a.publish_down = ".$null." OR a.publish_down >= ".$now."))"); // execute query $items = $this->app->table->item->all(compact('select', 'from', 'conditions', 'order', 'limit')); // create search result rows $rows = array(); if (!empty($items)) { // set renderer $renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->app->path->path('plugins:search/zoosearch/'))); foreach ($items as $item) { $row = new stdClass(); $row->title = $item->name; $row->text = $renderer->render('item.default', array('item' => $item)); $row->href = $this->app->route->item($item); $row->created = $item->created; $row->section = ''; $row->browsernav = 2; $rows[] = $row; } } return $rows; } public function registerZOOEvents() { if ($this->app) { $this->app->event->dispatcher->connect('type:assignelements', array($this, 'assignElements')); } } public function assignElements() { $this->app->system->application->enqueueMessage(JText::_('Only text based elements are allowed in the search layouts'), 'notice'); } }PK$\Z[N``zoosearch/zoosearch.xmlnuW+A Search - ZOO YOOtheme October 2012 Copyright (C) YOOtheme GmbH http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only YOOtheme Proprietary Use License (http://www.yootheme.com/license) info@yootheme.com http://www.yootheme.com 3.0.0 Search plugin for ZOO developed by YOOtheme (http://www.yootheme.com) zoosearch.php changelog.php file.script.php renderer file.script.php
PK$\Z[ъ\\weblinks/weblinks.phpnuW+A 'PLG_SEARCH_WEBLINKS_WEBLINKS' ); return $areas; } /** * Search content (weblinks). * * 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 mixed $areas An array if the search it 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) { $db = JFactory::getDbo(); $app = JFactory::getApplication(); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $searchText = $text; 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(); } $searchWeblinks = JText::_('PLG_SEARCH_WEBLINKS'); switch ($phrase) { case 'exact': $text = $db->quote('%' . $db->escape($text, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.url LIKE ' . $text; $wheres2[] = 'a.description LIKE ' . $text; $wheres2[] = 'a.title LIKE ' . $text; $where = '(' . implode(') OR (', $wheres2) . ')'; break; case 'all': case 'any': default: $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->quote('%' . $db->escape($word, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.url LIKE ' . $word; $wheres2[] = 'a.description LIKE ' . $word; $wheres2[] = 'a.title LIKE ' . $word; $wheres[] = implode(' OR ', $wheres2); } $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; break; } switch ($ordering) { case 'oldest': $order = 'a.created ASC'; break; case 'popular': $order = 'a.hits DESC'; break; case 'alpha': $order = 'a.title ASC'; break; case 'category': $order = 'c.title ASC, a.title ASC'; break; case 'newest': default: $order = 'a.created DESC'; } $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.title AS title, \'\' AS created, a.url, a.description AS text, ' . $case_when . "," . $case_when1) ->select($query->concatenate(array($db->quote($searchWeblinks), 'c.title'), " / ") . ' AS section') ->select('\'1\' AS browsernav') ->from('#__weblinks AS a') ->join('INNER', '#__categories as c ON c.id = a.catid') ->where('(' . $where . ') AND a.state IN (' . implode(',', $state) . ') AND c.published = 1 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); $rows = $db->loadObjectList(); $return = array(); if ($rows) { foreach ($rows as $key => $row) { $rows[$key]->href = WeblinksHelperRoute::getWeblinkRoute($row->slug, $row->catslug); } foreach ($rows as $weblink) { if (searchHelper::checkNoHTML($weblink, $searchText, array('url', 'text', 'title'))) { $return[] = $weblink; } } } return $return; } } PK$\Z[Vweblinks/index.htmlnuW+A PK$\Z[hweblinks/weblinks.xmlnuW+A plg_search_weblinks Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_WEBLINKS_XML_DESCRIPTION weblinks.php index.html en-GB.plg_search_weblinks.ini en-GB.plg_search_weblinks.sys.ini
PK$\Z[Vcontent/index.htmlnuW+A PK$\Z[@content/content.xmlnuW+A plg_search_content Joomla! Project November 2005 Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt admin@joomla.org www.joomla.org 3.0.0 PLG_SEARCH_CONTENT_XML_DESCRIPTION content.php index.html en-GB.plg_search_content.ini en-GB.plg_search_content.sys.ini
PK$\Z[zQ"Q"content/content.phpnuW+A 'JGLOBAL_ARTICLES' ); return $areas; } /** * Search content (articles). * 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 mixed $areas An array if the search it 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) { $db = JFactory::getDbo(); $app = JFactory::getApplication(); $user = JFactory::getUser(); $groups = implode(',', $user->getAuthorisedViewLevels()); $tag = JFactory::getLanguage()->getTag(); require_once JPATH_SITE . '/components/com_content/helpers/route.php'; require_once JPATH_ADMINISTRATOR . '/components/com_search/helpers/search.php'; $searchText = $text; 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); $nullDate = $db->getNullDate(); $date = JFactory::getDate(); $now = $date->toSql(); $text = trim($text); if ($text == '') { return array(); } switch ($phrase) { case 'exact': $text = $db->quote('%' . $db->escape($text, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.title LIKE ' . $text; $wheres2[] = 'a.introtext LIKE ' . $text; $wheres2[] = 'a.fulltext LIKE ' . $text; $wheres2[] = 'a.metakey LIKE ' . $text; $wheres2[] = 'a.metadesc LIKE ' . $text; $where = '(' . implode(') OR (', $wheres2) . ')'; break; case 'all': case 'any': default: $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->quote('%' . $db->escape($word, true) . '%', false); $wheres2 = array(); $wheres2[] = 'a.title LIKE ' . $word; $wheres2[] = 'a.introtext LIKE ' . $word; $wheres2[] = 'a.fulltext LIKE ' . $word; $wheres2[] = 'a.metakey LIKE ' . $word; $wheres2[] = 'a.metadesc LIKE ' . $word; $wheres[] = implode(' OR ', $wheres2); } $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; break; } switch ($ordering) { case 'oldest': $order = 'a.created ASC'; break; case 'popular': $order = 'a.hits DESC'; break; case 'alpha': $order = 'a.title ASC'; break; case 'category': $order = 'c.title ASC, a.title ASC'; break; case 'newest': default: $order = 'a.created DESC'; break; } $rows = array(); $query = $db->getQuery(true); // Search articles. if ($sContent && $limit > 0) { $query->clear(); // 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.title AS title, a.metadesc, a.metakey, a.created AS created') ->select($query->concatenate(array('a.introtext', 'a.fulltext')) . ' AS text') ->select('c.title AS section, ' . $case_when . ',' . $case_when1 . ', ' . '\'2\' AS browsernav') ->from('#__content AS a') ->join('INNER', '#__categories AS c ON c.id=a.catid') ->where( '(' . $where . ') AND a.state=1 AND c.published = 1 AND a.access IN (' . $groups . ') ' . 'AND c.access IN (' . $groups . ') ' . 'AND (a.publish_up = ' . $db->quote($nullDate) . ' OR a.publish_up <= ' . $db->quote($now) . ') ' . 'AND (a.publish_down = ' . $db->quote($nullDate) . ' OR a.publish_down >= ' . $db->quote($now) . ')' ) ->group('a.id, a.title, a.metadesc, a.metakey, a.created, a.introtext, a.fulltext, c.title, a.alias, c.alias, c.id') ->order($order); // Filter by language. if ($app->isSite() && JLanguageMultilang::isEnabled()) { $query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')') ->where('c.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')'); } $db->setQuery($query, 0, $limit); $list = $db->loadObjectList(); $limit -= count($list); if (isset($list)) { foreach ($list as $key => $item) { $list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug); } } $rows[] = $list; } // Search archived content. if ($sArchived && $limit > 0) { $query->clear(); // 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.title AS title, a.metadesc, a.metakey, a.created AS created, ' . $query->concatenate(array("a.introtext", "a.fulltext")) . ' AS text,' . $case_when . ',' . $case_when1 . ', ' . 'c.title AS section, \'2\' AS browsernav' ); // .'CONCAT_WS("/", c.title) AS section, \'2\' AS browsernav' ); $query->from('#__content AS a') ->join('INNER', '#__categories AS c ON c.id=a.catid AND c.access IN (' . $groups . ')') ->where( '(' . $where . ') AND a.state = 2 AND c.published = 1 AND a.access IN (' . $groups . ') AND c.access IN (' . $groups . ') ' . 'AND (a.publish_up = ' . $db->quote($nullDate) . ' OR a.publish_up <= ' . $db->quote($now) . ') ' . 'AND (a.publish_down = ' . $db->quote($nullDate) . ' OR a.publish_down >= ' . $db->quote($now) . ')' ) ->order($order); // Filter by language. if ($app->isSite() && JLanguageMultilang::isEnabled()) { $query->where('a.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')') ->where('c.language in (' . $db->quote($tag) . ',' . $db->quote('*') . ')'); } $db->setQuery($query, 0, $limit); $list3 = $db->loadObjectList(); // Find an itemid for archived to use if there isn't another one. $item = $app->getMenu()->getItems('link', 'index.php?option=com_content&view=archive', true); $itemid = isset($item->id) ? '&Itemid=' . $item->id : ''; if (isset($list3)) { foreach ($list3 as $key => $item) { $date = JFactory::getDate($item->created); $created_month = $date->format("n"); $created_year = $date->format("Y"); $list3[$key]->href = JRoute::_('index.php?option=com_content&view=archive&year=' . $created_year . '&month=' . $created_month . $itemid); } } $rows[] = $list3; } $results = array(); if (count($rows)) { foreach ($rows as $row) { $new_row = array(); foreach ($row as $article) { if (SearchHelper::checkNoHTML($article, $searchText, array('text', 'title', 'metadesc', 'metakey'))) { $new_row[] = $article; } } $results = array_merge($results, (array) $new_row); } } return $results; } } PK$\Z[ contacts/contacts.phpnuW+APK$\Z[V,contacts/index.htmlnuW+APK$\Z[0켡contacts/contacts.xmlnuW+APK$\Z[wՀ ttags/tags.xmlnuW+APK$\Z[Q2v,1!tags/index.htmlnuW+APK$\Z[kk !tags/tags.phpnuW+APK$\Z[V 45index.htmlnuW+APK$\Z[V5categories/index.htmlnuW+APK$\Z[Z_nZZ5categories/categories.phpnuW+APK$\Z[1cIcategories/categories.xmlnuW+APK$\Z[VPnewsfeeds/index.htmlnuW+APK$\Z[RAPnewsfeeds/newsfeeds.phpnuW+APK$\Z[l7dnewsfeeds/newsfeeds.xmlnuW+APK$\Z[&))kzoosearch/changelog.phpnuW+APK$\Z[bccCnzoosearch/file.script.phpnuW+APK$\Z[6qzoosearch/renderer/index.htmlnuW+APK$\Z[Rs$Zrzoosearch/renderer/item/metadata.xmlnuW+APK$\Z[HH#szoosearch/renderer/item/default.phpnuW+APK$\Z[?%(uzoosearch/renderer/item/positions.xmlnuW+APK$\Z[6"vzoosearch/renderer/item/index.htmlnuW+APK$\Z[= (vzoosearch/renderer/item/positions.confignuW+APK$\Z[Qzoosearch/zoosearch.phpnuW+APK$\Z[N``zoosearch/zoosearch.xmlnuW+APK$\Z[ъ\\Mweblinks/weblinks.phpnuW+APK$\Z[Vweblinks/index.htmlnuW+APK$\Z[hPweblinks/weblinks.xmlnuW+APK$\Z[V6content/index.htmlnuW+APK$\Z[@content/content.xmlnuW+APK$\Z[zQ"Q"content/content.phpnuW+APK <