Ukrywanie kolumny prawej
Wyniki 1 do 2 z 2

Temat: Ukrywanie kolumny prawej

  1. #1
    Debiutant
    Dołączył
    22-05-2006
    Wpisy
    7
    Punkty
    10

    Domyślny Ukrywanie kolumny prawej

    Potrzebuje zrobic podmenu, ktore bedzie sie pokazywac na wybranych podstronach (ustawienia modulu) w czesci "right". Template ustawiony jest w skrocie w 2 kolumnach: lewa dla tresci artykulow, prawa obszar "right".

    <tr>
    <td bgcolor="#FFFFFF">
    <?php mosMainBody(); ?>
    </td>
    <td bgcolor="#4C4849">
    <?php mosLoadModules ( 'right'); ?>
    </td>
    </tr>
    <tr>

    Wszystko dziala ok tylko Joomla narzuca juz ten obszar dla kolumny "right" w podstronach gdzie nie jest on aktywowany na szerokosc okolo 6px a jest to pas w innym kolorze, wiec chcialbym go uniknac. Wydaje mi sie ze trzeba wrzucic jakis kod PHP, ktory wyczuwa aktywnosc modulu i odpowiednio to ustawia, ale nie wiem jak to dziala. Prosze o pomoc.

  2. #2
    Ten Niedobry Rybik awatar
    Dołączył
    26-09-2005
    Skąd
    Gliwice
    Wpisy
    2 179
    Punkty
    70

    Domyślny

    Wiele templakow po macoszemu traktuje znikanie prawej kolumny i zostawia tam pusta celke <td>, jednak bez globalnego resetu marginesow w css i kilku dopiskow (cellpadding="0" cellspacing="0") w tabeli-matce ta pusta kolumna bedzie miala 1-10 pikseli szerokosci.
    Najelegantszym chyba rozwiazaniem dla szablonow table-based jest "policzenie" ile modułów jest aktualnie publikowanych na danej pozycji (funkcja mosCountModules('right')), ewentualne zsumowanie z innymi pozycjami w prawej kolumnie. Dalej od niezerowej ilosci modulow uzalezniamy to czy srodkowa komorka z mainBody bedzie ladowana normalnie i obok kolejna komorka z naszymi modulami "right" (plus jakies inne), czy bedzie poszerzona na 2 kolumny a pozycja "right" nie zostanie zaladowana".

    podaje kod alternatywny całego <tr>
    Kod PHP:
    <tr>
     
    <?php if(mosCountModules('right') > 0) { ?>
    <!-- Jezeli na pozycji right cos jest -->
     
    <td bgcolor="#FFFFFF" >
        <?php mosMainBody(); ?>
    </td>
    <td bgcolor="#4C4849">
        <?php mosLoadModules 'right'); ?>
    </td>
     
    <?php } else { ?>
    <!-- Jezeli na pozycji right nic nie ma -->
     
    <td bgcolor="#FFFFFF" colspan="2">
        <?php mosMainBody(); ?>
    </td>
     
    <?php ?>

    </tr>
    linie pierwszego ifa mozna poszerzyc o inne pozycje modulow, ktore chcemy ladowac w prawej kolumnie:
    if(mosCountModules('right') + mosCountModules('user1') > 0)
    tylko trzeba je potem pod tym "right" zaladowac.

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •