Модули Joomla одинаковой высоты с самыми высокими в ряду - PullRequest
0 голосов
/ 22 ноября 2011

В Интернете есть несколько способов установить одинаковую высоту столбцов. Один из лучших, на мой взгляд, это " Столбцы одинаковой высоты с кросс-браузерным CSS ".

Но есть проблема с применением этого метода к структуре модуля joomla, и я не могу понять, что он работает нормально.

Я использовал хром модуля с закругленными углами (с одним основным фоном для модуля и другим фоновым изображением для внутреннего DIV, чтобы обернуть модули снизу) на исходном шаблоне jooomla, поэтому каждый модуль отображает таким образом:

<div class="module_menu">
  <div>
    <div>
      <div>
        <h3>Main Menu</h3>
        <ul class="menu">
          <li><!-- various menu items --></li>
        </ul>
      </div>
    </div>
  </div>
</div>

и я использую 3 модуля в строке, которые обернуты в родительский DIV. это код:

<div style="width:904px; margin:20px; float:left; overflow:hidden; position:relative;">
    <div style="width:904px; float:left; position:relative;">
        <div style="width:904px; float:left; position:relative;">
            <div style="float:left; width:288px; height:100%; margin-right:20px;">
                <jdoc:include type="modules" name="user4" style="rounded" />
            </div>
            <div style="float:left; width:288px; height:100%; margin-right:20px;">
                <jdoc:include type="modules" name="user5" style="rounded" />
            </div>
            <div style="float:right; width:288px; height:100%;">
                <jdoc:include type="modules" name="user6" style="rounded" />
            </div>
        </div>
    </div>
</div>

и, наконец, есть связанный с Css стиль модулей Joomla:

div.module-gallery, div.module, div.module_menu {
    width:291px;
    background:url(../images/module-bg.png) no-repeat 50% bottom;
}
div.module div div div, div.module_menu div div div {
    padding-right:15px;
    padding-left:15px;
    background:url(../images/module-bg-bottom.png) no-repeat 50% 100%;
    padding-bottom:15px;
    min-height:230px;
}
div.module div div div div, div.module_menu div div div div {
    background:none;
}

Как можно установить высоту модулей равной автоматизировать / динамически с сохранением стиля фона модуля.

Спасибо

1 Ответ

2 голосов
/ 22 ноября 2011

Вам нужно взглянуть на templates/system/html/modules.php.

Затем вы можете создать копию module chrome для вывода структуры вашего модуля, что было бы более выгодно, так как ваш код довольно возмутительно читать ине очень семантически.то есть

function modChrome_myModuleName($module, &$params, &$attribs)
{
    $doc =& JFactory::getDocument();
    $css  = ".moduleOuter { your style }";
    $css .= ".moduleInner{ your style }";

    $doc->addStyleDeclaration($css);

    ?>
    <div class="moduleOuter">
       <div class="moduleInner">
        <?php if ($module->showtitle != 0) : ?>
             <h3><?php echo $module->title; ?></h3>
        <?php endif; ?>
        <?php echo $module->content; ?>
        </div>
     </div>
    <?php
}

Затем вы бы предположили, что вызовите модуль со стилем, например так:

<jdoc:include type="modules" name="left" style="myModuleName" />

С этого момента у вас будет более семантический способ вызова ваших модулей.и облегчение работы с вашими высотами CSS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...