4 różne bloki na stronie głównej

Witam, chciałbym stworzyć na stronie głównej 4 bloki umieszczone obok siebie, ale chciałbym, żeby każdy wyglądał trochę inaczej, miał inne tło i inną szerokość. Nie potrafie uzyskać takiego efektu korszystając z administracji blokami w sekcji Budowa witryny, mogę tam jedynie ustawić jeden domyślny blok, a zależy mi na 4 różnych. Nie chcę gotowego rozwiązania, ale jakiś wskazówek. pozdrawiam

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.

Poczytaj sobie tutaj.

Poczytaj sobie tutaj. Działa bezbłędnie, sam tego używałem. http://drupal.org/node/104319

Dziekuje za link,

Dziekuje za link, przeczytałem go sobie i przetlumaczyłem, żeby móc zadać nasŧępne pytania, bo nie wiem jak mam się zabrać za dodanie bloków.

http://drupal.org/node/104319

W Drupalu, można stworzyć wiele plików tpl.php dla bloków opierając się na konkretnych blokach, modułach, które tworzą blok lub obszarach w których blok pojawia się.

Pliki szablonów są przeszukiwane w następującym porządku:

* block-[module]-[delta].tpl.php

* block-[module].tpl.php

* block-[region].tpl.php

* block.tpl.php 

Na przykład, blok logowanie użytkownika, który jest tworzony przez moduł user ma liczbę bloków dla tego konkretnego modułu „0”. Jeśli blok logowanie użytkownika umieści się w lewej kolumnie strony, PHPTemplate będzie poszukiwało następujących szablonów schodząc w dół

* block-user-0.tpl.php

* block-user.tpl.php

* block-left.tpl.php

* block.tpl.php 

Można znaleźć moduł bloku i numer delty przeszukując kod źródłowy strony: każdy DIV bloku ma nasŧępujące klasy i ID

<div class="block block-{module}"`
id="block-{module}-{delta}">

Klasy i ID pozwalają ustawiać style dla bloków indywidualnie: wszystkich bloków, bloków z konkretnego modułu lub dla jednego bloku.(Aby określić style dla bloków w danym obszarze, używa się DIV, który ujmuje cały obszar w selektorze.

http://drupal.org/node/63757
Różne szablony dla różnych typów bloków

Metoda 1, która pozwala użyć różnych plików block.tpl.php dla konkretnych bloków, które mogą być kontrolowane przez nazwę Bloku lub ID Bloku. Poniżej jest zmodyfikowany plik block.tpl.php z instrukcją if na górze. Należy zamienić fragment module == '[nazwa modułu tutaj]' and delta == '[nazwa bloku lub id tutaj]'.

Poniżej jest block.tpl.php, którego fragment kodu zawarty w instrukcji if w górnej cześci należy zmienić jak to zostało opisane wyżej. Poniższy kod uruchamia zmodyfikowany block.tpl.php dla dwóch bloków na stronie, ale można go użyć dla jednego lub sześci w zależności od potrzeb. Trzeb użyć instrujkcji if dla dla każdej modyfikowanego szablonu

<?php
if ( ( $block->module == 'views' && $block->delta == 'Cool Block' ) || ( $block->module == 'node' && $block->delta == '0' ) ) {
    include 'indywidualny-blok.tpl.php'; /*włącz indywidualny szablon dla tych dwóch ID bloków*/
    return; }
?>
<div class="<?php print "block block-$block->module" ?>" id="<?php print "block-$block->module-$block->delta"; ?>">
  <div class="title"><h3><?php print $block->subject ?></h3></div>
  <div class="content"><?php print $block->content ?></div>
</div>

Następnie trzeba stworzyć kolejny indywidualny-blok.tpl.php (lub jakakolwiek inna nazwa). Aby zobaczyć efekt na stronie, trzeba skopiować standardowy szablon bloku, nazwać go indywidualny-blok.tpl.php i zmienić go wstawiając odpowiedni tytuł.

Mój block.tpl.pho wygląda tak:

<div class="defaultblock">
   <h2><?php print $block->subject; ?></h2><!--block title-->
  <div class="blockcontent"><?php print $block->content; ?></div>
</div>

Teraz pytanie od czego mam zacząć, żeby dodać blok. Niby jest to wytłumaczone, ale nie do końca rozumiem. Na konkretnym przykładzie na pewno dałbym rade. Dzięki.

Fajnie, że to

Fajnie, że to przetłumaczyłeś, pewnie komuś się to przyda.

Ale do rzeczy:

1. wchodzisz do „Administer → Site building → Blocks” Sorki, że po angielsku ale nie używam polskich tłumaczeń. 2. Szukasz interesującego ciebie bloku i sprawdzasz jaki ma adres najeżdżając myszą na „configure” po prawej stronie nazwy bloku. Np. w moim przypadku jest to coś takiego: http://www.domena.com/…gure/block/1 a więc templatka, która będzie odpowiadać za wygląd tego bloku musi mieć nazwę „block-block-1.tpl.php” Czemu? Bo za wygląd każdego bloku odpowiada „block.tpl.php” ale interesujący nas blok w adresie ma po „configure” /block/1 tak więc dodajemy te informacje do nowo utworzonego pliku tpl i wychodzi nam „block-block-1.tpl.php” Gdzby adres bloku był: http://www.domena.com/…igure/user/3 to templatka do niej musi mieć nazwę „block-user-3.tpl.php” Oczywiście nowe pliki tpl muszą być w katalogu aktualnego theme.

Pozdrawiam

Udało się

Dziękuję, że napisałeś mi jak znajduje się nazwy poszczególnych bloków. Nazwa mojego bloku, do którego zastosowałem zmiany to block-block-4.tpl.php Chciałbym podać zmiany jakie dokonałem w pliku block.tpl.php i zawartość stworzonego pliku block-block-4.tpl.php bo być może komuś się też to przyda. Moje przeróbki plików działają natomiast jeśli są jakieś błędu w kodzie to proszę pisać. Zgodnie z tym, co wyczytałem na stronach drupala i z tym, co przetłumaczyłem tak zmodyfikowałem plik block.tpl.php

<?php
if ( ( $block->module == 'block' && $block->delta == 'block-block-4' )  ) {
    include 'block-block-4.tpl.php'; /*włącz indywidualny szablon dla ID bloku*/
    return; }
?>
<div class="<?php print "block block-$block->module" ?>" id="<?php print "block-$block->module-$block->delta"; ?>">
<div class="defaultblock">
<h2><?php print $block->subject; ?></h2><!--block title-->
    <div class="blockcontent"><?php print $block->content ?></div>
  </div>
</div>

To zawartość pliku block-block-4.tpl.php

<div class="block4">
   <h2><?php print $block->subject; ?></h2><!--block title-->
  <div class="blockcontent4"><?php print $block->content; ?></div>
</div>

Zmieniłem też plik style.css dodając:

.block4{
background: url(img/bgblock.gif) repeat-x top;;
margin:0px 0 20px 0;
        }

.block4 .blockcontent4{
font-size:19px;
margin:0px 0 20px 0;
        }