Joomla 1.5 Пропадает componentheading при переходе по ссылке "подробнее".

Тема в разделе "Создание шаблона", создана пользователем PyVT, 12.08.2010.

  1. Offline

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

    Регистрация:
    12.08.2010
    Сообщения:
    3
    Симпатии:
    0
    Пол:
    Мужской
    Сделал свой шаблон полностью с нуля. В MainMenu есть пунк, который отображает шаблон блога категорий. При переходе в этот пункт, показывается заголовок страницы (componentheading). Соответственно, там есть несколько статей из этой категории, в каждой их них - ссылка "подробнее". Так вот, когда переходишь по этой ссылке, откравается сам материал, но заголовок страницы исчезает. Как сделать чтобы при переходе по ссылке "подробнее" заголовок страницы (тот который задаётся в настройке пункта меню - componentheading) оставался, ведь активный пункт меню не меняется, а остаётся тот же? Использовать заголовок материала (contentheading) не подходит - он нужен как есть. В настройках ничего подходящего не нашёл, предполагаю надо править в самой Джумле, например в com_content/views/category, только где точно и что именно? joomla 1.5.18
     
  2.  
  3. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Если пункт меню выводит шаблон блога категории, то на странице по идее выводится не название пункта меню, а название категории.

    В таком случае чтобы на страницу полной новости добавить вывод имени категории нужно добавить в нужное место код <?php echo $this->escape($this->article->category); ?>

    Править файл: \components\com_content\views\article\tmpl\default.php
     
  4. Offline

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

    Регистрация:
    12.08.2010
    Сообщения:
    3
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо за ответ, но это не совсем то что мне нужно. Очевидно, я не ясно выразился. Название категории, в которую входят материалы и так отображается, если в настройках пункта меню или самого материала (Параметры -> Компонент) установить опцию "Название категории = да". Но как раз это мне и не нужно, так как это название отображается в каждом материале в режиме блога.

    В настройках каждого пункта меню есть опция (Параметры -> Система) "Заголовок страницы", где он собственно и задаётся. Ему соответствует класс .componentheading и он выводится один раз на странице, а не в заголовке каждого материала (в режиме блога). Вот его код:

    (components/com_content/views/article/tmpl/default.php)

    Код (PHP):
    1. <?php if ($this->params->get('show_page_title', 1) && $this->params->get('page_title') != $this->article->title) : ?>
    2.     <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
    3.         <?php echo $this->escape($this->params->get('page_title')); ?>
    4.     </div>
    5. <?php endif; ?>


    Вот этот самый 'page_title' отображается, когда материалы в блоге или когда просто один материал, но когда переходишь по ссылке "подробнее", он пропадает.
     
  5. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Понял. В таком случае в файл \components\com_content\views\article\tmpl\default.php добавляем в нужное место

    Код (PHP):
    1. <?php
    2. $menu = & JSite::getMenu();
    3. $handtitle = new JParameter( $menu->getActive()->params );
    4. echo $handtitle->get( 'page_title' );
    5. ?>
     
    PyVT нравится это.
  6. Offline

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

    Регистрация:
    12.08.2010
    Сообщения:
    3
    Симпатии:
    0
    Пол:
    Мужской
    Огромное спасибо за помощь - всё получилось. Правда немного изменил код, иначе в стандартном шаблоне материала (ну то есть на всех страницах, где выводится всего один материал) заголовок отображается дважды. Вот что получилось: в файле templates/мой_шаблон/html/com_content/article/default.php (вынес файл в шаблон)

    Код (PHP):
    1. <?php if ($this->params->get('show_page_title', 1) && $this->params->get('page_title') != $this->article->title) : ?>
    2.     <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
    3.         <?php $pagetittle = $this->escape($this->params->get('page_title'));
    4.          echo $pagetittle ?>
    5.     </div>
    6. <?php endif; ?>
    7.  
    8. <?php
    9. $menu = & JSite::getMenu();
    10. $handtitle = new JParameter( $menu->getActive()->params );
    11.  
    12. if ($pagetittle == "") { ?>
    13. <div class="componentheading<?php echo $this->escape($this->params->get('pageclass_sfx')); ?>">
    14. <?php echo $handtitle->get( 'page_title' ); ?>
    15. </div>
    16. <?php } ?>


    Может не очень грамотно, но работает. В php, честно сказать, фонарь.
    Ещё раз спасибо.
     

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

Загрузка...