1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь Как скрыть описание категории на всех страницах, кроме первой?

Тема в разделе "Joomla", создана пользователем Freeman Liberty, 28 апр 2013.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. Freeman Liberty

    Freeman Liberty

    Регистр.:
    19 май 2009
    Сообщения:
    457
    Симпатии:
    171
    Вроде как распространенная проблема и должно быть масса решений, но подходящего так и не нашел.

    J 1.5 если задать описание категории, то оно выводиться не только на первой странице категории, но и на всех последующих (если материалов много).

    Естественно такое дублирование контента плохо сказывается и на юзабилити и на seo.

    Поискал в сети наиболее приемлемым вариантом показался вот этот ссылка .

    Но у меня не работает- то ли потому, что включен sh404Sef и ссылки не имеют параметра limitstart; то ли потому, что установлен шаблон от JA и в нем вывод описания категории задан совсем по другому.

    Может кто подскажет другое решение или что надо изменить в данном коде, чтобы описание выводилось только на первой странице категории?

    код такой:
    Код:
    <?php if ($this->params->def('show_description', 1) || $this->params->def('show_description_image', 1)) : ?>
    <div class="category-desc clearfix">
     
    <?php if ($this->params->get('show_description_image') && $this->category->image) : ?>
    <img src="<?php echo $this->baseurl . $cparams->get('image_path') . '/' . $this->category->image; ?>" class="image_<?php echo $this->category->image_position; ?>" />
    <?php endif; ?>
     
    <?php if ($this->params->get('show_description') && $this->category->description) :
    echo $this->category->description;
    endif; ?>
     
    <?php if ($this->params->get('show_description_image') && $this->category->image) : ?>
    <div class="wrap_image">&nbsp;</div>
    <?php endif; ?>
     
    </div>
    <?php endif; ?>
     
  2. Cliverbot

    Cliverbot Создатель

    Регистр.:
    10 апр 2013
    Сообщения:
    27
    Симпатии:
    0
    Попробуйте вывести limitstart, чтобы убедиться, что его значение отсутствует
    $limitstart = JRequest::getInt('limitstart', 0);
    echo "Limitstart is: ".$limitstart;
    if ($limitstart <= 0)
    // выводим
     
  3. uf1976

    uf1976 Постоялец

    Регистр.:
    5 мар 2013
    Сообщения:
    81
    Симпатии:
    14
    Joomla\ components\com_content\views\category\tmpl\ blog.php
    ищем:
    Код:
    <?php echo $this->category->description; ?>
    заменяем на:
    Код:
    <?php if (!isset($_GET['limitstart'])) {echo $this->category->description; }?>
    Также можно сделать и для шаблона блога раздела. Для этого, аналогичную проверку делаем в файле Joomla\ components\com_content\views\section\tmpl\blog.php .
     
  4. Freeman Liberty

    Freeman Liberty

    Регистр.:
    19 май 2009
    Сообщения:
    457
    Симпатии:
    171
    uf1976 -внимательно прочтите первый пост.
    Я же написал в самом начале, что этот вариант показался наиболее приемлемым, а также что в моем случае он не подходит.
     
  5. vladya

    vladya Создатель

    Регистр.:
    5 окт 2009
    Сообщения:
    34
    Симпатии:
    7
    Откуда этот код? Файл джумлы или файл вашего макета? И куда вы вставляли код из приведённой вами ссылки? Потому что если задан шаблон вывода в макете JA, то там и нужно вставлять. И возможно надо будет вставлять через JRequest.
     
  6. Freeman Liberty

    Freeman Liberty

    Регистр.:
    19 май 2009
    Сообщения:
    457
    Симпатии:
    171
    Vladya - вроде старался все подробно расписать.
    Код из шаблона Joomla Art (если кто не знает, то все их шаблоны имеют собственный фреимворк)
    Пробовал делать изменения как предложил uf1976 и как описано в ссылке приведенной мною в первом посте но это никак не отразилась на выводе категории (т.е. можно даже полностью удалить строку <?php echo $this->category->description; ?> - описание все равно выводится). Поискал в файлах шаблона и нашел, что вывод категории формируется в файле blog.php расположенном plugins\system\jat3\base-themes\default\html\com_content\category
    Если в нем удалить участок кода, а именно:
    PHP:
    <?php if ($this->params->get('show_description') && $this->category->description) :
                echo 
    $this->category->description;
            endif; 
    ?>
    то описание категории выводиться перестает.

    Логично предположить, что редактировать надо этот файл.
    Но как интегрировать способ с редактирование строки <?php echo $this->category->description; ?> с этим котом и будет ли он работать при включенном sh404Sef ??
    Может есть другие варианты? вывести информацию только на первой странице категории не выводя на остальных?
    Пробовал Advanced Module Manager, но нужного варианта добиться так и не смог .
     
  7. bodrilo

    bodrilo Создатель

    Регистр.:
    23 янв 2013
    Сообщения:
    42
    Симпатии:
    11
    если используете шаблон blog для вывода, то надо именно этот файл и редактировать
    попробуйте мой код

    проверка

    Код:
    <?php
    $limit = JRequest::getInt('limitstart',0);
    if ($limit == 0){
    $categorydesc=1;
    }?>
    вывод

    Код:
    <?php if ($categorydesc==1) : ?>
    <?php echo JHtml::_('content.prepare', $this->category->description, '', 'com_content.category'); ?>
    <?php endif; ?>
     
    Freeman Liberty нравится это.
  8. Freeman Liberty

    Freeman Liberty

    Регистр.:
    19 май 2009
    Сообщения:
    457
    Симпатии:
    171
    Заменил

    PHP:
    <?php if ($this->params->get('show_description') && $this->category->description) :
                echo 
    $this->category->description;
            endif; 
    ?>
    на код предложенный Bodrilo вроде как на локалке все работает как надо.

    Осталось проверить будет ли работать с включенным sh404Sef.
     
  9. magorez

    magorez Создатель

    Регистр.:
    11 май 2013
    Сообщения:
    12
    Симпатии:
    0
    PHP:
    <?php if ($this->params->get('show_description') &&
              
    $this->category->description &&
              
    JRequest::getVar('limitstart',0) == 0)
    echo 
    $this->category->description;
    ?>
    работает с включенным sh404Sef.
     
Статус темы:
Закрыта.