В разделах не отображаются пустые категории

Тема в разделе "Структура данных сайта", создана пользователем AmmiAk, 06.08.2007.

  1. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    На днях при организации структуры данных своего сайта столкнулся с проблемой, связанной с отображением в разделах категорий, не содержащих ни одной статьи - не смотря на установленное значение "Показать" в атрибутах "Пустые категории в разделе", "Список категорий - Категория" и "Пустые категории" соответствующего пункта основного меню, с которым связан этот раздел, в самом разделе напрочь отказываются отображаться категории, в которые не добавлено хотя бы одной статьи.

    Саму структуру данных на сайте планировал реализовывать за счет поля "Описание:" в параметрах разделов и категорий, а также ссылок на "внешние", не связанные ни с одной из категорий статичные содержимые, поскольку тот или иной план (категория раздела), может содержать одну из услуг (объектов статичного содержимого) другого плана, а как известно, несколько ссылок на страницы с одним и тем же содержимым на сайте поисковыми системами мало приветствуются. Собственно, просьба помочь разобраться с системным "багом" и устранить его, ну или, по крайней мере, направить мои силы в нужное русло. Сам же я полагаю, ковырять нужно com_categories и com_content, либо одно из двух, но познания мои ограничиваются лишь базовыми задатками по школьной программе, непосредственно сам PHP не изучал. Также возможен вариант предложения использовать какое-либо проверенное опытом и временем расширение. Вообщем "нид хелп" - рассчитываю на вашу помощь!

    З.Ы. На сервере установлен дистрибутив стабильной версии CMS Joomla! 1.0.12, все необходимые настройки соблюдены при непосредственной установке системы управления сайтом.
     
  2.  
  3. Serj777
    Offline

    Serj777 Недавно здесь

    Регистрация:
    23.10.2006
    Сообщения:
    1
    Симпатии:
    0
    Ответ: В разделах не отображаются пустые категории

    У мена такое было, когда с временем намудрил. Батарейка дохлая была на компе. Время создание было в будущем. Проверь, мож поможет.
     
  4. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Да нет, не похоже на то, что именно во времени проблемы, другие статьи (динамические), например новости, добавляются тем же числом и временем, что и реальные дата и время добавления их на сайт. По-прежнему, разбираясь в причинах, только развожу руками...
     
  5. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Нет такого во фронтенде joomla

    Посмотри, совпадают ли Itemid у категории на сайте и Itemid настраиваемого пункта меню. Возможно, настройки категории наследуются от пункта меню Таблица - Содержимое раздела
     
  6. Doga
    Offline

    Doga Недавно здесь

    Регистрация:
    24.04.2007
    Сообщения:
    7
    Симпатии:
    1
    Ответ: В разделах не отображаются пустые категории

    Всем привет!

    Сам недавно искал ответ на этот вопрос.

    Нашёл здесь:
    http://joomlaforum.ru/index.php?topic=12291.0


    Правда, с номерами строк там накладочка.

    Ниже картинка, как это сделано у меня. Не уверен в корректности изменений, но работает.

    Дополнительно, надо будет подправить \language\russian.php, строка 121:

    DEFINE('_EMPTY_CATEGORY','');

    Иначе, запарит сообщение "Данная категория не содержит объектов.".
     

    Вложения:

    • content_php.gif
      content_php.gif
      Размер файла:
      31.9 КБ
      Просмотров:
      29
    AmmiAk нравится это.
  7. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    В папке '\components\' корневой директории сайта - нет, это правда, однако присутствует в '\administrator\components\'. За вывод содержимого в область mosMainBody(), по сути, всегда полностью отвечает программный код компонента com_content, вот в нем как раз, а точнее непосредственно в 'content.html.php' со 123 строки начинается то самое, что отвечает за вывод названия категории (строка 141), количества объектов содержимого в ней (строка 145) и ее описания (строка 154). На первый взгляд, все написано с толком и расстановкой (если это, то то... отсюда - это, оттуда -то...):
    Код (CODE):
    1. /**
    2.     * Display links to categories
    3.     */
    4.     function showCategories( &$params, &$items, $gid, &$other_categories, $catid, $id, $Itemid ) {
    5.         if(!count($other_categories)) return;
    6.         ?>
    7.         <ul>
    8.         <?php
    9.         foreach ( $other_categories as $row ) {
    10.             $row->name = htmlspecialchars( stripslashes( ampReplace( $row->name ) ), ENT_QUOTES );
    11.             if ( $catid != $row->id ) {
    12.                 ?>
    13.                 <li>
    14.                     <?php              
    15.                 if ( $row->access <= $gid ) {
    16.                     $link = sefRelToAbs( 'index.php?option=com_content&amp;task=category&amp;sectionid='. $id .'&amp;id='. $row->id .'&amp;Itemid='. $Itemid );
    17.                     ?>
    18.                     <a href="<?php echo $link; ?>" class="category">
    19.                             [COLOR=YellowGreen]<?php echo $row->name;?></a>[/COLOR]
    20.                     <?php
    21.                     if ( $params->get( 'cat_items' ) ) {
    22.                         ?>
    23.                         [COLOR=YellowGreen]&nbsp;<i>( <?php echo $row->numitems; echo _CHECKED_IN_ITEMS;?> )</i>[/COLOR]
    24.                         <?php
    25.                     }
    26.  
    27.                     // Writes Category Description
    28.                     if ( $params->get( 'cat_description' ) && $row->description ) {
    29.                             ?>
    30.                             <br />
    31.                             <?php
    32.                         [COLOR=YellowGreen]echo $row->description;[/COLOR]
    33.                     }
    34.                 } else {
    35.                         echo $row->name;
    36.                     ?>
    37.                     <a href="<?php echo sefRelToAbs( 'index.php?option=com_registration&amp;task=register' ); ?>">
    38.                             ( <?php echo _E_REGISTERED; ?> )</a>
    39.                     <?php
    40.                 }
    41.                     ?>
    42.                 </li>
    43.                 <?php
    44.             }
    45.         }
    46.         ?>
    47.         </ul>
    48.         <?php
    49.     }
    Нужно только разобраться, как то, что берется из com_categories административной части, "интерпретируется" в com_content и правильно ли построены условия вывода, в частности пустых категорий. Как я уже писал, в программировании секу слабо, исходя из чего, очень рассчитываю на вашу помощь.
    Хотя и не понял сначала, как это связано с описанной мной ситуацией в предыдущих постах, проверил: ссылки в меню на сайте ведут к содержимому разделов, соответственно, пункты меню, а в частности тот, который меня больше всего беспокоит, настроены именно как Таблица - Содержимое раздела. На сайте ссылка на раздел выглядит точно также, как и в настраиваемом пункте меню: 'index.php?option=com_content&task=section&id=3&Itemid=4', Itemid у пункта меню, соответствующего разделу в административной части, как этого и следовало ожидать, 4. Как сравнить Itemid у категории, не знаю, перспектива связывания категорий с меню меня особо не радует, хотелось бы, чтобы ссылки на категории вели из разделов, которым они соответствуют. А в разделе реально отображается категория только тогда, когда в нее добавишь хотя бы одну статью, стоит удалить статью из этой категории или перенести ее в другую категорию, категория исчезает, как будто ее и не было.
     
    Последнее редактирование модератором: 05.04.2014
  8. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Уууу, Doga, век буду - не забуду! :-X Так помог, что ну, у меня слов нет, прямо заново вселил в меня потерянную уверенность в силах и недюжих способностях человеческого разума. Все заработало, как по накатанной - не поддающееся определению размеров ширины и высоты спасибище тебе!

    А пост товарища saschaAG для CMS Joomla! 1.0.12 да и 1.0.13, думаю, тоже можно переписать как:

     
  9. Doga
    Offline

    Doga Недавно здесь

    Регистрация:
    24.04.2007
    Сообщения:
    7
    Симпатии:
    1
    Ответ: В разделах не отображаются пустые категории

    Да, я тут, в общем то, и не причём... :) saschaAG благодарите...
     
  10. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Ну не знаю... В Joomla RE 1.0.13 всё работает.

    Откуда у проблемы ноги растут?
     
  11. Doga
    Offline

    Doga Недавно здесь

    Регистрация:
    24.04.2007
    Сообщения:
    7
    Симпатии:
    1
    Ответ: В разделах не отображаются пустые категории

    В том то всё дело, что непонятно откуда растут эти ноги. Но настройками в админцентре эту проблему победить не удалось. По крайней мере, в версии 1.0.12...
     
  12. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Специально для того, чтобы протестировать в действии билд 1.0.13, создал у себя на хосте субдомен, в директорию которого установил CMS, залил и настроил шаблон, создал разделы и категории - все в точности с тем, что находится в корневой директории с предыдущей версией системы управления. Разницу между 1.0.12 и 1.0.13 в плане отображения в разделах пустых категорий обнаружить мне так и не удалось - а если бы там все работало как надо, обновил бы корневой каталог до 1.0.13, даже не задумываясь.
     
  13. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Что за подвид Joomla ставил?
     
  14. AmmiAk
    Offline

    AmmiAk Укротитель браузеров

    Регистрация:
    25.07.2007
    Сообщения:
    633
    Симпатии:
    34
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    Joomla_1.0.12_RE-Stable-Full_Package.tar.gz
    Joomla_1.0.13_RE-Stable-Full_Package.tar.gz

    Вот самое то, с я чем активно работаю, по крайней мере, последние дней 7. :cool: До этого в основном занимался лишь самообразованием: читал хелп, изучал доки... А стоило собственными руками взяться за дело, как начали проявляться различного рода глюки - история, изложенная в этой теме - это как раз один из случаев. :(
     
    Последнее редактирование: 08.08.2007
  15. Offline

    dankey Недавно здесь

    Регистрация:
    25.10.2007
    Сообщения:
    2
    Симпатии:
    2
    Ответ: В разделах не отображаются пустые категории

    Друзья! Проблему замяли, а баг то остался неисправленным!!!

    Детально разъясняю суть бага джумлы (он есть и Joomla! 1.0.13 Stable,
    Надеюсь в 1.0.14 его уберут.):

    У тех, у кого не отображаются пустые категории, формируется примерно следующий запрос на выборку:

    SELECT a. * , COUNT( b.id ) AS numitems
    FROM bt_categories AS a
    LEFT JOIN bt_content AS b ON b.catid = a.id
    AND b.state =1
    AND (
    b.publish_up = '0000-00-00 00:00:00'
    OR b.publish_up <= '2007-10-25 11:47'
    )
    AND (
    b.publish_down = '0000-00-00 00:00:00'
    OR b.publish_down >= '2007-10-25 11:47'
    )
    WHERE a.section = '1'
    AND a.published =1
    AND a.access <=0
    AND b.access <=0
    GROUP BY a.id
    ORDER BY a.ordering
    LIMIT 0 , 30

    Ошибка! Проверяется b.access <=0, не учитывая, что b.access может быть вообще принимать null что и происходит, когда в категории нет контента вовсе.
    Поэтому же у других пользователей и выводятся пустые категории, потому что
    у них в глоб.конф. установлен пункт "Показывать ссылки неавторизованным: Да",
    тоесть когда оба условия AND a.access <=0 AND b.access <=0 вовсе опускаются
    и не вызывают логическую ошибку.

    Исправление ошибки:

    В файле
    \components\com_content\content.php
    Заменить строку рядом с 325 (зависит от языковой версии):

    $access_check_content = "\n AND (b.access Is Null OR b.access <= " . (int) $gid . ")"; /* changin`: dankey: испр.ошибка */
     
    [No][Ne] и OlegM нравится это.
  16. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ответ: В разделах не отображаются пустые категории

    dankey, +1

    надеюсь в багтрекер добавлено?
     
  17. Offline

    dankey Недавно здесь

    Регистрация:
    25.10.2007
    Сообщения:
    2
    Симпатии:
    2
    Ответ: В разделах не отображаются пустые категории

    Ага, только на английский перевел Googl'ом - местами косячно :[
    Но суть ошибки, думаю ясна.
     
    Последнее редактирование модератором: 05.04.2014
  18. Offline

    run Недавно здесь

    Регистрация:
    01.12.2006
    Сообщения:
    1
    Симпатии:
    0
    Ответ: В разделах не отображаются пустые категории

    немного не в тему, но все же

    при выводе содержимого раздела, как убрать описание категорий?
    (описания категорий не нужны во всех разделах)
    вариант с установкой в меню настройки "описание категорий"= "скрыть" не проходит.

    есть ощущение что-то надо менять в content.html.php
     
  19. Offline

    [No][Ne] Недавно здесь

    Регистрация:
    17.11.2007
    Сообщения:
    22
    Симпатии:
    0
    Ответ: В разделах не отображаются пустые категории

    dankey +1, добавлю (вроде здесь нигде не написано): вносим то, что dankey прописал, потом, если нужно, что бы:
    отображались пустые категории ставим в глобальных настройках "Показывать ссылки неавторизованным:" "Да"
    не отображались пустые категории там же выставляем "Нет".
     

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

Загрузка...