Nietypowa templatka
Wyniki 1 do 6 z 6

Temat: Nietypowa templatka

  1. #1
    Debiutant
    Dołączył
    08-07-2006
    Wpisy
    9
    Punkty
    10

    Domyślny Nietypowa templatka

    Witam

    Mam pytanie dotyczące pewnego układu głównego okna(dołączanym za pomocą 'mosMainBody()'). Czy da się zrobić taki układ:




    W jaki sposób można wtrącić coś w obszar MainBody??
    Oczywiscie "jakiś banner" zaczyna się w miejscu, gdzie kończy się pierwszy obiekt (jakiś artykuł), czyli niejako "pływa" w osi pionowej stronki.

    Myślałem nad tym, aby dać na ten pierwszy (szeroki) artykuł jakiś oddzielny pojemnik (div) i oddzielny na tę węższą część głównego okna (która byłaby wtedy MainBody, tylko odpowiednio ustawiona we frontpage), ale to mało eleganckie rozwiązanie.
    Dodatkowo wymagało by to umieszczania artykułów w dwóch różnych miejscach: nowy artykuł idzie do górnego pojemnika, a stary (który tam siedział wcześniej) "spada" na dół. Dopisanie jednego artykułu musiało by być zatem związane z kilkoma dodatkowymi "edytorskimi" działaniami :/

    Jak ktoś ma jakis pomysł, sugestię to będę wdzieczny



    PS. Sorki za zdublowany temat :/ Nie mogę znaleźć informacji o usuwaniu tematów, więc jak jakiś moderator ma chwilę, to niech usunie... szkoda żeby syf został na forum
    Ostanio edytowane przez pin : 22-07-2006 04:13

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Opiekun forum
    Dołączył
    19-09-2005
    Wpisy
    3 743
    Punkty
    131

    Domyślny

    Hmm, szukaj w pliku content.html.php tam się genruje podstawa strony.

    Sądzę że pewnym roziwązaniem mogło by być dla ciebie takie rozwiązanie jak zastosowano przy tabelce jaka się pojawia przy podziale artykułu na strony.

  4. #3
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    W obszar nazwany MainBody nic nie wkładasz, bo nie ma takiej potrzeby
    Tworzysz taki projekt szablonu, w którym w centralnym obszarze jest spozycjonowany odpowiednio element pływający, ustawiony po prawej stronie, na dole - w twoim pzypadku musiałoby to być pozycjonowanie absolutne, bo trudno przewidzieć, co się ukaże w obszarze głównej zawartości.
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  5. #4
    Wyjadacz nexus246 awatar
    Dołączył
    23-09-2005
    Wpisy
    664
    Punkty
    20

    Domyślny

    Musisz podmienić HTML w com_content i zamienić tabelki na divy. Wtedy w #jakis_baner dajesz float:right i ustawiasz na dole.

  6. #5
    Debiutant
    Dołączył
    08-07-2006
    Wpisy
    9
    Punkty
    10

    Domyślny

    Dziękuję wszystkim.

    Grzebanie w com_content pomogło
    Jednak dało sie uniknąć pozycjonowania absolutnego

    Dla zainsteresowanych instrukcja jak to zobić... Trzeba zmienić nieco funkcję BlogOutput w pliku content.php. Dokładnie to kawałek //// Leading story output.

    Podaję cały kod zamiast numerów linii... trochę mi się poprzesuwało wszystko ;) Tak łatwiej zrozumieć ocb.

    Kod:
            // Leading story output
            if ( $leading ) {
                echo '<tr>';
                echo '<td valign="top">';
                for ( $z = 0; $z < $leading; $z++ ) {
                    if ( $i >= $total ) {
                        // stops loop if total number of items is less than the number set to display as leading
                        break;
                    }
                    echo '<div>';
                    show( $rows[$i], $params, $gid, $access, $pop );
                    echo '</div>';
                    $i++;
                }
                echo '</td>';
    
                echo '</tr>';
            }
    
            if ( $intro && ( $i < $total ) ) {
                echo '<tr>';
                echo '<td valign="top">';
                echo '<table width="100%"  cellpadding="0" cellspacing="0" id="kontener">';
                // intro story output
                  for ( $z = 0; $z < $intro; $z++ ) {
                    if ( $i >= $total ) {
                        // stops loop if total number of items is less than the number set to display as intro + leading
                        break;
                    }
    
                    if ( !( $z % $columns ) || $columns == 1 ) {
                        echo '<tr>';
                    }
    
                    echo '<td id="lewa" valign="top" '. $width .'>';
    
                    // outputs either intro or only a link
                    if ( $z < $intro ) {
                        show( $rows[$i], $params, $gid, $access, $pop );
                    } else {
                        echo '</td>';
                        echo '</tr>';
                        break;
                    }
    
                    echo '</td>';
                    $i++;
    
                    // this is required to output a closing </tr> tag if one of the 3 conditions are met
                    // 1. No of intro story output = number of columns
                    // 2. Total number of items is reached before the number set to display
                    // 3. Reached the last item but it does not fully fill the last row of output - a blank column is left
                    if ( !( ( $z + 1 ) % $columns ) || $columns == 1 ) {
             
             /*Dodane przez: pin p.nest@poczta.fm*/
              if (mosCountModules('advert_in')){
                 echo '<td id="prawa" valign="top">';
                    echo '<div id="advert_inner">';
                      echo 'wystarczy zaladowac modul';
                    echo '</div>';
                echo '</td>';
               }
                /*do tad*/    
             
             echo '</tr>';
                    } else if ($i >= $total) {
             
             /*Dodane przez: pin p.nest@poczta.fm*/
               if (mosCountModules('advert_in')){
                echo '<td id="prawa" valign="top">';
                    echo '<div id="advert_inner">';
                    echo 'wystarczy zaladowac modul';
                    echo '</div>';
                  echo '</td>';
               }
                /*do tad*/    
             
             echo '</tr>';
                    } else if ( ( ( $z + 1 )==$intro ) && ( $intro % $columns ) ) {
           
           /*Dodane przez: pin p.nest@poczta.fm*/
            if (mosCountModules('advert_in')){  
            echo '<td id="prawa" valign="top">';
                    echo '<div id="advert_inner">';
                    echo 'wystarczy zaladowac modul';
                    echo '</div>';
             echo '</td>';
             }
             /*do tad*/        
           
           echo '</tr>';
                            
                    }
    
                }
                echo '</td>';
                 echo '</tr>';
               echo '</table>';
        }
    Dodałem parę nowych ID zdefiniowanych na górze pliku (w znacznikach <style></style>


    Na koniec taki mały offtop... zamiast "wystarczy wstawić moduł" na początku wstawione było inne słowo testujące (najczęściej stosowany wyraz przy testowaniu kodu). Zamieniłem, bo trochę głupio tak na forum... ;)

    Enjoy
    Ostanio edytowane przez pin : 28-07-2006 14:55

  7. #6
    Debiutant
    Dołączył
    08-07-2006
    Wpisy
    9
    Punkty
    10

    Domyślny

    Oj... mały up-to-date :|

    Ten kod który podałem zrobi moduł przy kazdym artykule (poza głównym). Żeby był wyświetlony raz, trzeba zmodyfikować instrukcję if delikatnie (dodajemy zmienna, która nam zlicza ile tych modułów jest już wyświetlonych):

    Kod:
        if ((mosCountModules('advert_in')) && ($ile==0))
    no i na początku funkcji oczywiście $ile=0;

    Dobrze jest też rysować komórki tabeli dla pozostałych artykułów (tylko puste). Lepiej to wygląda, gdy te bannerki są w jakiś sposób obramowane.
    Dodajemy wtedy pod każdym naszym ifem coś takkiego:
    Kod:
            else if($ile==1){
            echo '<td id="prawa" valign="top">';
                    echo '<div id="advert_inner">';
                    echo '&nbsp';
                    echo '</div>';
            echo '</td>';
                }
    PZDR

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
  •