Tworzenie własnych obszarów oraz bloki - co jest czym

Witam

Mam Drupala 6

Postanowiłem oprzeć na tym CMSie stronke, która robię dla znajomego. Mam ją już pocięta do xhtml + css’a. Poczytałem na necie o własnych skórkach i ktoś doradzał, żeby przerabiać skórkę bluemarine na własne potrzeby bo jest ona najprostsza i najłatwiej to zrobić. Do czego zmierzam, stwierdziłem, że skoro mam już pociętą stronę, to w miejscach gdzie był do tej pory tekst lub menu, wstawie po prostu coś takiego:

<?php print $nazwa_pola; ?>

A w pliku nazwaskórki.info dopisałem:

regions[nazwa_pola] = Moje nowe pole

Tak też zrobiłem, jednak nie wszystko zadziałało. Strona niby wyświetla się poprawnie. W miejscach gdzie było menu wstawiłem fragment kodu:

<?php if (isset($secondary_links)) { ?><?php print theme('links', $secondary_links, array('class' => 'links', 'id' => 'subnavlist')) ?><?php } ?>

<?php if (isset($primary_links)) { ?><?php print theme('links', $primary_links, array('class' => 'links', 'id' => 'navlist')) ?><?php } ?>

A następnie w drupalu stworzyłem odpowiednie działy w menu i jest OK. Ale przejdźmy do problemu. Dwie sprawy mnie przerastają.

  1. Gdy załadowałem swoja skórke do drupala, wszystko działa jak należy z wyjątkiem jednej rzeczy. Gdy jestem zalogowany jako admin i chce dodawać lub edytować jakieś newsy wchodząc do działu BLOKI pojawia mi sie moja załadowana skórka, a chciałbym aby byl standardowy gerland. Znalazłem do tego odpowiednią opcje w drupalu, ze do zarządzania ma być skórka gerland. I rzeczywiście to działa. Wszystko mogę robić jako admin na skórce gerland jednak gdy wejdę w dział BLOKI skórka w tym miejscu zmienia się na tę moją. A tam wszystko jest wświetlane w taki sposób, ze jest mało czytelne, panuje bałagan itd. To w ten sposób nie moze zostac bo znajomy nic tam nie bedzie widzial, zeby sobie coś zmienic. Czy mogę prosić o jakieś rozwiązanie dalczego tak sie dzieje, że tylko dział BLOKI widze na swojej skórce a wszystko inne jak nalezy na gerlandzie?
  2. Druga sprawa to właśnie te własne pola, lub obszary, o których pisałem na poczatku ze wstawiłem w miejsca gdzie miałem tekst. Nie mogę zmusić drupala, aby np. STORY wyswietlal właśnie w polu, ktore sobie stworzylem, nazwalem i umieściłem w odpowiednim miejscu na mojej stronie. Czy jest jakaś różnica między OBSZAREM a BLOKIEM? Bo nie mogę do tego za nic w swiecei dojsc. Krótko mówiąc wyobrażam sobie tworzeni własnych skórek dla drupala w ten sposób, że tnę nornalnie strone do xhtml+css, a nastepnie w miejscach gdzie chce miec jakies teksty wstawiam takie kody (oczywiście kazdy inną miałby nazwę pola):
<?php print $nazwa_pola; ?>

A nastepnie czyszcze pamiec w drupalu i w odpowiednie pola wstawiam sobie menu, story itd. Niby proste z założenia jednak coś robię źle. Mogę prosić o wytłumaczenie jak to należałoby zrobić?

Załóżmy ze chce miec na stronie głownej obok siebie artykuly, recenzje oraz zapowiedzi. W drupalu chcialbym sobie stworzyc nowy rodzaj zawartosci, czyli wlasnie artykuly, recenzje, zapowiedzi. A następnie chcialbym aby dodawane rzeczy jako zawartosc artykuly pokazywaly sie w wybrnaym miejscu, recenzje dodawane znow w innym miejscu itd.

Hm… mam nadzieje, że jakoś w miarę zrozumiale to przedstawilem? Proszę o pomoc w zrozumieniu działania. Jak to należy po kolei co gdzie stworzyć. Myslę, że jeden przykład pozwoli mi na dalsze samodzielne eksperymetnowanie z tym CMSem.

Pozdrawiam Tomek

Sposób wyświetlania odpowiedzi

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

He, he, na stronie Bloki

moderator
  1. He, he, na stronie Bloki wyświetla Ci się ta skórka, która jest domyślną. A czemu w ogóle się wyświetla? W teorii ma to być ułatwienie, żebyś od razu widział gdzie trafi blok, żebyś miał ogląd skórki podczas umieszczania w niej elementów. Po prostu doprowadź swoją skórkę do porządku :-) .
  2. Tak, jest różnica między obszarem a blokiem. W skrócie, obszary zawierają bloki oraz inne elementy. Te inne elementy to np. „treść”, czyli wpisy (albo lista, albo pojedynczy wpis). Oto dlaczego nie możesz umieścić zawartości typu story w wybranym miejscu za pomocą konfiguracji bloków – story nie jest blokiem. Możesz natomiast przesunąć (w szablonach skórki – page.tpl.php, node.tpl.php) obszar content (<?php print $content ?>). Dodatkowo, obszary definiujesz w pliku .info i umieszczasz w szablonach skórki, a bloki umieszczasz w obszarach za pomocą interfejsu Drupala.

Dobraa....

Witam

Dzięki co do ad1 już mi się sytuacja znacznie rozjaśniła. Co do regionów i obszarów też chyba to powoli zaczynam kumać. Wytłumacz mi tylko jeszcze jedną rzecz, a mianowicie:

Gdy już sobie zdefiniuje własne obszary w pliku *.info oraz w pliku page.tpl.php za pomocą <?php print $moj_region; ?> oraz stworze w dziale Zawartość nowy rodzaj zawartości np. recenzje to jak i gdzie sprawdzić, aby dodawana zawartość „recenzje” pojawiały się właśnie w jednym z utworzonych przeze mnie obszarów. Jak to załapie to jestem chyba w domu :)

Dzięki z góry za odpowiedź Pozdrawiam

Portret użytkownika archetwist

Właśnie Ci tłumaczyłem, że

moderator

Właśnie Ci tłumaczyłem, że obszar odpowiadający za treść to zawsze $content. Jeśli ma być w różnych miejscach zależnie od rodzaju wpisu, to możesz skorzystać z takiego kodu:

http://snipplr.com/…y-node-type/

Należy go umieścić w page.tpl.php, kopiując wcześniej całą zawartość tego pliku do page-default.tpl.php.

Istotne są fragmenty takie jak ten:

if ($node->type == 'home_page') {
    include 'page-home_page.tpl.php';
    return; }

home_page to w tym wypadku nazwa rodzaju zawartości (np. story albo page), a page-home_page.tpl.php – szablon dla tego rodzaju zawartości.

Możesz też skorzystać z Views lub Node As Block. Ten ostatni moduł pozwala umieszczać zawartość wpisów w blokach.