Вопрос Запретить поиск материалов в разделе Joomla 1.5

Тема в разделе "Программирование", создана пользователем Balanar, 07.02.2015.

  1. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    Добрый день всем. Подскажите пожалуста, как запретить поиск материалов в нужном разделе Joomla 1.5. Сегодня я нашел плагин search_contentadvanced, но он для Joomla 1.5 не подходит. Может подскажите как эту функцию реализовать.
     
  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    А ты к разработчику плагина обращался ?
    я руками вводил ограничение по категории в плагине поиска Джумла 2.5
    Код (PHP):
    1. $query->where('('. $where .')' . 'AND a.state=1 AND c.published = 1 AND a.access IN ('.$groups.') '
    2. .'AND c.access IN ('.$groups.') '
    3. .'AND c.id != "12" '
     
  4. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    Нет, к разраотчику не обращался.

    А вот куда руками вводить этот код я не знаю. Подскажите пожалуста.
    --- добавлено: 08.02.2015, первое сообщение размещено: 08.02.2015 ---
    Есть такой код /plugins/search/content.php:
    Код (PHP):
    1. // search uncategorised content
    2.    if ( $sUncategorised && $limit > 0 )
    3.    {
    4.      $query = 'SELECT id, a.title AS title, a.created AS created, a.metadesc, a.metakey, '
    5.      . ' CONCAT(a.introtext, a.fulltext) AS text,'
    6.      . ' "2" as browsernav, "'. $db->getEscaped(JText::_('Uncategorised Content')) .'" AS section'
    7.      . ' FROM #__content AS a'
    8.      . ' WHERE ('.$where.')'
    9.      . ' AND a.state = 1'
    10.      . ' AND a.access <= '.(int) $user->get( 'aid' )
    11.      . ' AND a.sectionid = 0'
    12.      . ' AND a.catid = 0'
    13.      . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
    14.      . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
    15.      . ' ORDER BY '. ($morder ? $morder : $order)
    16.      ;
    17.      $db->setQuery( $query, 0, $limit );
    18.      $list2 = $db->loadObjectList();
    19.      $limit -= count($list2);
    20.  
    21.      if(isset($list2))
    22.      {
    23.        foreach($list2 as $key => $item)
    24.        {
    25.          $list2[$key]->href = ContentHelperRoute::getArticleRoute($item->id);
    26.        }
    27.      }


    Может здесь нужжно включить запрет?
     
  5. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    с 150 строки, где 29= это id нужной категории
    Код (PHP):
    1. . ' WHERE ( '.$where.' )'
    2. . ' AND a.state = 1'
    3. . ' AND u.published = 1'
    4. . ' AND b.published = 1'
    5. . ' AND b.id != "29" '
     
  6. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    У меня Joomla 1.5, а там немного другой код.
     
  7. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    То ли я на лыжах.|H|
    Выложи код с твоего файла с 150 строки
     
  8. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    Как я понял нужно редактировать /plugins/search/content.php, или сами категории поиска плагина?

    Вот файл /plugins/search/content.php

    Код (PHP):
    1. // search articles
    2.    if ( $sContent && $limit > 0 )
    3.    {
    4.      $query = 'SELECT a.title AS title, a.metadesc, a.metakey,'
    5.      . ' a.created AS created,'
    6.      . ' CONCAT(a.introtext, a.fulltext) AS text,'
    7.      . ' CONCAT_WS( "/", u.title, b.title ) AS section,'
    8.      . ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'
    9.      . ' CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) ELSE b.id END as catslug,'
    10.      . ' u.id AS sectionid,'
    11.      . ' "2" AS browsernav'
    12.      . ' FROM #__content AS a'
    13.      . ' INNER JOIN #__categories AS b ON b.id=a.catid'
    14.      . ' INNER JOIN #__sections AS u ON u.id = a.sectionid'
    15.      . ' WHERE ( '.$where.' )'
    16.      . ' AND a.state = 1'
    17.      . ' AND u.published = 1'
    18.      . ' AND b.published = 1'
    19.      . ' AND a.access <= '.(int) $user->get( 'aid' )
    20.      . ' AND b.access <= '.(int) $user->get( 'aid' )
    21.      . ' AND u.access <= '.(int) $user->get( 'aid' )
    22.      . ' AND ( a.publish_up = '.$db->Quote($nullDate).' OR a.publish_up <= '.$db->Quote($now).' )'
    23.      . ' AND ( a.publish_down = '.$db->Quote($nullDate).' OR a.publish_down >= '.$db->Quote($now).' )'
    24.      . ' GROUP BY a.id'
    25.      . ' ORDER BY '. $order
    26.      ;
    27.      $db->setQuery( $query, 0, $limit );
    28.      $list = $db->loadObjectList();
    29.      $limit -= count($list);
    30.  
    31.      if(isset($list))
    32.      {
    33.        foreach($list as $key => $item)
    34.        {
    35.          $list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->sectionid);
    36.        }
    37.      }
    38.      $rows[] = $list;
    39.    }
     
  9. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    id категории,в которой нужно запретить поиск напиши сюда
    Нашел отличие моего кода от твоего ?
     
  10. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    46, 47, 48, 55. Вот пожалуста.
     
  11. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    А-а,это я ступил. Забыл что в Джумла 1.5 разделы.
    Ну не пропадать же сделанному, вот код запрета по категориям. Может так еще лучше,можно задать запрет категорий из нескольких разделов.
    Код (PHP):
    1. . ' WHERE ( '.$where.' )'
    2. . ' AND a.state = 1'
    3. . ' AND u.published = 1'
    4. . ' AND b.published = 1'
    5. . ' AND b.id NOT IN (46, 47, 48, 55)' //draff
    6. . ' AND a.access <= '.(int) $user->get( 'aid' )
     
    Balanar нравится это.
  12. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    Сделал, спасибо, работает. Но у меня еще один вопрос. Как сделать, чтоб в поиске первыми находились старые статьи?
     
  13. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    А это в каком файле нужно искать плагине, или самом компоненте?
    --- добавлено: 10.02.2015, первое сообщение размещено: 10.02.2015 ---
    Сделал, спасибо за помощь.
    --- добавлено: 10.02.2015 ---
    Блин что то не работает последнее. Не выводит первые первыми.
    --- добавлено: 10.02.2015 ---
    Там получается, на одной странице так, на другой так, во общем не по порядку.
    --- добавлено: 10.02.2015 ---
    Нужно чтоб первые созданные категории были первыми в поиске.
     
  14. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Пробуй замени
    Код (PHP):
    1. switch ($ordering) {
    2. case 'oldest':
    3. $order = 'a.created ASC';
    4. break;
    5.  
    6. case 'popular':
    7. $order = 'a.hits DESC';
    8. break;
    9.  
    10. case 'alpha':
    11. $order = 'a.title ASC';
    12. break;
    13.  
    14. case 'category':
    15. $order = 'b.title ASC, a.title ASC';
    16. $morder = 'a.title ASC';
    17. break;
    18.  
    19. case 'newest':
    20. $order = 'a.created DESC';
    21. break;
    22. default:
    23. $order = 'a.created ASC'; // draff
    24. break;
    25. }
     
  15. Offline

    Balanar Пользователь

    Регистрация:
    22.01.2015
    Сообщения:
    57
    Симпатии:
    0
    Пол:
    Мужской
    Нужно отсортировать только категории, а статьи прежними оставить.
     

Поделиться этой страницей

Загрузка...