Добрый день всем. Подскажите пожалуста, как запретить поиск материалов в нужном разделе Joomla 1.5. Сегодня я нашел плагин search_contentadvanced, но он для Joomla 1.5 не подходит. Может подскажите как эту функцию реализовать.
А ты к разработчику плагина обращался ? я руками вводил ограничение по категории в плагине поиска Джумла 2.5 Код (PHP): $query->where('('. $where .')' . 'AND a.state=1 AND c.published = 1 AND a.access IN ('.$groups.') ' .'AND c.access IN ('.$groups.') ' .'AND c.id != "12" '
Нет, к разраотчику не обращался. А вот куда руками вводить этот код я не знаю. Подскажите пожалуста. --- добавлено: 08.02.2015, первое сообщение размещено: 08.02.2015 --- Есть такой код /plugins/search/content.php: Код (PHP): // search uncategorised content if ( $sUncategorised && $limit > 0 ) { $query = 'SELECT id, a.title AS title, a.created AS created, a.metadesc, a.metakey, ' . ' CONCAT(a.introtext, a.fulltext) AS text,' . ' "2" as browsernav, "'. $db->getEscaped(JText::_('Uncategorised Content')) .'" AS section' . ' FROM #__content AS a' . ' WHERE ('.$where.')' . ' AND a.state = 1' . ' AND a.access <= '.(int) $user->get( 'aid' ) . ' AND a.sectionid = 0' . ' AND a.catid = 0' . ' 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 BY '. ($morder ? $morder : $order) ; $db->setQuery( $query, 0, $limit ); $list2 = $db->loadObjectList(); $limit -= count($list2); if(isset($list2)) { foreach($list2 as $key => $item) { $list2[$key]->href = ContentHelperRoute::getArticleRoute($item->id); } } Может здесь нужжно включить запрет?
с 150 строки, где 29= это id нужной категории Код (PHP): . ' WHERE ( '.$where.' )' . ' AND a.state = 1' . ' AND u.published = 1' . ' AND b.published = 1' . ' AND b.id != "29" '
Как я понял нужно редактировать /plugins/search/content.php, или сами категории поиска плагина? Вот файл /plugins/search/content.php Код (PHP): // search articles if ( $sContent && $limit > 0 ) { $query = 'SELECT a.title AS title, a.metadesc, a.metakey,' . ' a.created AS created,' . ' CONCAT(a.introtext, a.fulltext) AS text,' . ' CONCAT_WS( "/", u.title, b.title ) AS section,' . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,' . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,' . ' u.id AS sectionid,' . ' "2" AS browsernav' . ' FROM #__content AS a' . ' INNER JOIN #__categories AS b ON b.id=a.catid' . ' INNER JOIN #__sections AS u ON u.id = a.sectionid' . ' WHERE ( '.$where.' )' . ' AND a.state = 1' . ' AND u.published = 1' . ' AND b.published = 1' . ' AND a.access <= '.(int) $user->get( 'aid' ) . ' AND b.access <= '.(int) $user->get( 'aid' ) . ' AND u.access <= '.(int) $user->get( 'aid' ) . ' 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 BY a.id' . ' ORDER BY '. $order ; $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, $item->sectionid); } } $rows[] = $list; }
А-а,это я ступил. Забыл что в Джумла 1.5 разделы. Ну не пропадать же сделанному, вот код запрета по категориям. Может так еще лучше,можно задать запрет категорий из нескольких разделов. Код (PHP): . ' WHERE ( '.$where.' )' . ' AND a.state = 1' . ' AND u.published = 1' . ' AND b.published = 1' . ' AND b.id NOT IN (46, 47, 48, 55)' //draff . ' AND a.access <= '.(int) $user->get( 'aid' )
Сделал, спасибо, работает. Но у меня еще один вопрос. Как сделать, чтоб в поиске первыми находились старые статьи?
А это в каком файле нужно искать плагине, или самом компоненте? --- добавлено: 10.02.2015, первое сообщение размещено: 10.02.2015 --- Сделал, спасибо за помощь. --- добавлено: 10.02.2015 --- Блин что то не работает последнее. Не выводит первые первыми. --- добавлено: 10.02.2015 --- Там получается, на одной странице так, на другой так, во общем не по порядку. --- добавлено: 10.02.2015 --- Нужно чтоб первые созданные категории были первыми в поиске.
Пробуй замени Код (PHP): 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 = 'b.title ASC, a.title ASC'; $morder = 'a.title ASC'; break; case 'newest': $order = 'a.created DESC'; break; default: $order = 'a.created ASC'; // draff break; }