Joomla 1.5 Как поместить оглавление статьи в нужную часть шаблона?

Тема в разделе "Наполнение", создана пользователем daria, 14.10.2008.

  1. daria
    Offline

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

    Регистрация:
    14.10.2008
    Сообщения:
    7
    Симпатии:
    0
    Возникла следующая проблема: есть статья, которая разбита примерно на 30 страниц (стандартный mospagebreak). В итоге получается очень длинное оглавление, которое "сносит" основной текст далеко вниз. Хотелось бы разместить оглавление данной статьи в другой области шаблона. Идеальным вариантом был бы модуль, чтобы такое размещение оглавления можно было применить только для конеретных статей (не для всех). Разновидность Мамбота mospagebreak - scroll, то есть создание выпадающего списка не подходит.
    Подскажите пожалуйста какой-нибудь модуль или может другой способ реализации.
     
  2.  
  3. sectus
    Offline

    sectus Недавно здесь => Cпециалист <=

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Не в курсе как делать, то что сказано, но скажу что надо статью либо уменьшать, либо разделить ее на несколько более узких статей со ссылкой друг на друга и ничего выдумывать и не придется.
     
  4. Offline

    _voland_ Местный => Cпециалист <=

    Регистрация:
    12.04.2008
    Сообщения:
    2 171
    Симпатии:
    102
    Пол:
    Мужской
    в шаблоне создаем свой файлик /html/com_content/frontpage/default.php - (это для главной) взяв за основу стандартный и правим PHP код по желанию
     
  5. daria
    Offline

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

    Регистрация:
    14.10.2008
    Сообщения:
    7
    Симпатии:
    0
    Спасибо за ответы! Нашла решение самостоятельно. Решила сделать Article Index не в столбик, а в одну строку для этого в pagebreak.php заменила отображение в виде таблицы на отображение в виде списка (заменила <td> на <ul> <li>) в итоге получилась таблица: первая строка - Article Index, вторая - список выведенный в одну строку, третья - All Pages.

    Код (PHP):
    1. function plgContentCreateTOC( &$row, &$matches, &$page )
    2. {
    3.  
    4.     $heading = $row->title;
    5.  
    6.     // TOC Header
    7.     $row->toc = '
    8.     <table cellpadding="0" cellspacing="0" class="contenttoc">
    9.     <tr>
    10.         <th>'
    11.         . JText::_( 'Article Index' ) .
    12.         '</th>
    13.     </tr>
    14.     ';
    15.  
    16.     // TOC First Page link
    17.     $row->toc .= '
    18.     <tr>
    19.     <td>
    20.     <ul>
    21.         <li>
    22.         <a href="'. JRoute::_( '&showall=&limitstart=') .'" class="toclink">'
    23.         . $heading .
    24.         '</a>
    25.         </li>
    26.     ';
    27.  
    28.     $i = 2;
    29.  
    30.     foreach ( $matches as $bot )
    31.     {
    32.         $link = JRoute::_( '&showall=&limitstart='. ($i-1) );
    33.  
    34.  
    35.         if ( @$bot[0] )
    36.         {
    37.             $attrs2 = JUtility::parseAttributes($bot[0]);
    38.  
    39.             if ( @$attrs2['alt'] )
    40.             {
    41.                 $title  = stripslashes( $attrs2['alt'] );
    42.             }
    43.             elseif ( @$attrs2['title'] )
    44.             {
    45.                 $title  = stripslashes( $attrs2['title'] );
    46.             }
    47.             else
    48.             {
    49.                 $title  = JText::sprintf( 'Page #', $i );
    50.             }
    51.         }
    52.         else
    53.         {
    54.             $title  = JText::sprintf( 'Page #', $i );
    55.         }
    56.  
    57.         $row->toc .= '
    58.                 <li>
    59.                 <a href="'. $link .'" class="toclink">'
    60.                 . $title .
    61.                 '</a>
    62.                 </li>
    63.                     ';
    64.         $i++;
    65.     }
    66.     $row->toc .= '
    67.     </ul>
    68.     </td>
    69.     </tr>
    70.     ';
    71.  
    72.     // Get Plugin info
    73.     $plugin =& JPluginHelper::getPlugin('content', 'pagebreak');
    74.  
    75.     $params = new JParameter( $plugin->params );
    76.  
    77.     if ($params->get('showall') )
    78.     {
    79.         $link = JRoute::_( '&showall=1&limitstart=');
    80.         $row->toc .= '
    81.         <tr>
    82.             <td>
    83.                 <a href="'. $link .'" class="toclink">'
    84.                 . JText::_( 'All Pages' ) .
    85.                 '</a>
    86.             </td>
    87.         </tr>
    88.         ';
    89.     }
    90.     $row->toc .= '</table>';
    91. }


    В tamplate.php шаблона:

    Код (PHP):
    1. table.contenttoc {
    2.     margin: 0 0 10px 10px;
    3.     padding: 0 0 0 10px;
    4. }
    5.  
    6. table.contenttoc a {
    7.     text-decoration: none;
    8.     white-space:nowrap;
    9. }
    10.  
    11. table.contenttoc ul {
    12.     margin:0;
    13.     padding:0;
    14. }
    15.  
    16. table.contenttoc li {
    17.     float:left;
    18.     line-height:16px;
    19. }
    20.  
    21. table.contenttoc th {
    22.     border-bottom: 1px solid #DDDDDD;
    23.     padding: 0 0 3PX;
    24.     text-indent: 5px;
    25. }


    В итоге получилось вот что

    Прим.: по поводу позиционирования - тоже стилями можно с помощью float (в table.contenttoc) разместить блок Article Index слева или справа от текста.

    Один минус - применяется для всех статей, жаль что нет возможности применить стили только для конкретных страничек. Может кто-нибудь знает есть возможность как то специфицировать стили для конкретных статей (категорий).
     

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

Загрузка...