Joomla 1.0 Хак компонента frontpage - фильтр пустых модулей

Тема в разделе "Собственные разработки форумчан", создана пользователем dimanus, 26.09.2008.

  1. Offline

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

    Регистрация:
    26.09.2008
    Сообщения:
    2
    Симпатии:
    1
    Добрый день. Теперь если в модуле нет информации (вообще), то модуль отфильтровывается в момент генерации. Очень удобно если у вас включён модуль связанные ссылки. Теперь когда связанных ссылок нет, его название выводится не будет. :)
    Что было сделано:
    изменения в файле /includes/frontpage.html.php
    строка 296
    исходный код:
    Код (PHP):
    1. <table cellpadding="0" cellspacing="0" class="moduletable<?php echo $moduleclass_sfx; ?>">
    2.         <?php
    3.         if ( $module->showtitle != 0 ) {
    4.             ?>
    5.             <tr>
    6.                 <th valign="top">
    7.                     <?php echo htmlspecialchars(normal( $module->title )); ?>
    8.                 </th>
    9.             </tr>
    10.             <?php
    11.         }
    12.         ?>
    13.         <tr>
    14.             <td>
    15.                 <?php
    16.                         if ( $type ) {
    17.                     modules_html::CustomContent( $module, $params);
    18.                 } else {
    19.                     include( $mosConfig_absolute_path . '/modules/' . $module->module . '.php' );
    20.                    
    21.                     if (isset( $content)) {
    22.                         echo normal($content);
    23.                     }
    24.                 }
    25.                         ?>
    26.             </td>
    27.         </tr>
    28.         </table>

    Заменяем на:
    Код (PHP):
    1. ob_start(); //включаем буферизацию вывода
    2.         ?>
    3.         <table cellpadding="0" cellspacing="0" class="moduletable<?php echo $moduleclass_sfx; ?>">
    4.         <?php
    5.         if ( $module->showtitle != 0 ) {
    6.             ?>
    7.             <tr>
    8.                 <th valign="top">
    9.                     <?php echo htmlspecialchars(normal( $module->title )); ?>
    10.                 </th>
    11.             </tr>
    12.             <?php
    13.         }
    14.         ?>
    15.         <tr>
    16.             <td>
    17.                 <?php
    18.                 $len1=ob_get_length(); //запоминаем длину буфера до работы модуля
    19.                 if ( $type ) {
    20.                     modules_html::CustomContent( $module, $params);
    21.                 } else {
    22.                     include( $mosConfig_absolute_path . '/modules/' . $module->module . '.php' );
    23.                    
    24.                     if (isset( $content)) {
    25.                         echo normal($content);
    26.                     }
    27.                 }
    28.                 $len2= ob_get_length();  // запоминаем длину буфера после работы модуля
    29.                 ?>
    30.             </td>
    31.         </tr>
    32.         </table>
    33.         <?php
    34.         if ($len1==$len2) { //если длины буфера равны то
    35.             ob_end_clean(); //Очистка буфера
    36. }
    37.             else { //если нет то
    38.                 ob_end_flush(); //Вывод буфера
    39.             }

    пример файла во вложении (Joomla 1.0.15)
     

    Вложения:

    Последнее редактирование: 29.09.2008
    sectus нравится это.
  2.  
  3. sectus
    Offline

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

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    А можно это обрамить тэгами [ php ][ /php ]? И показать что на что менять.
     
  4. Offline

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

    Регистрация:
    26.09.2008
    Сообщения:
    2
    Симпатии:
    1
    готово! Спасибо за подсказку!
     
  5. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 094
    Симпатии:
    158
    Пол:
    Мужской
    Сохранил у себя :)
     

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

Загрузка...