# W każdy czwartek o 22:00 #
Spotkania ludności drupal.pl na IRC- odpal czat -
- dedykowany temat na forum -

drupal.pl w sieci Google!

Shoutbox

You're not permitted to post shouts.
DepecheMati

http://css2less.cc/ <- fajne narzędzie :)

1 dzień 7 godzin ago
DepecheMati

Widać, że pracownikom Google się nudzi - http://bit.ly/L6pAsn :-}

5 dni 2 godziny ago
grzegorz.bartman

Wybiera się ktoś na DrupalCon do Monachium?

6 dni 2 godziny ago
malcolm

No, wspomnień czar ;)

1 tydzień 3 dni ago

Niestandradowe podstrony

4 odpowiedzi [Ostatni wpis]
mixman
Portret użytkownika mixman
Offline
Dołączył: 26.01.2007
Postów:

Problem prezentuje się następująco - moja witryna ma wiele podstron, które niestety nie dzielą tego samego layout'u. De facto każda ze stron witryny używa jednego z 3 lay'ów - dwie kolumny (prawa węższa), dwie kolumny (lewa węższa), jedna kolumna (brak podziału). Która i kiedy czego używa - różnie, w zależności od potrzeb i względów estetycznych. Nie ma jakiegoś wzorca czy schematu - wolna amerykanka.

Do tego strony te składają się praktycznie tylko i wyłącznie z takich czy innych bloków - bardzo rzadko zdarza się, że strona ma formę artykułu (ciągły tekst z np. ilustracjami). Same bloki także zawierają ilustracje i tekst (w tym listy), rozłożony w bardzo różny sposób (znowu - inne layout'y).

Moje pytanie brzmi - jak najlepiej tworzyć takie strony w Drupalu, by zrobić to możliwie optymalnie, zaoszczędzić sobie wysiłku i pracy, a także by móc korzystać w przyszłości z tego, co się już stworzyło (bloków itd.)?
Bloki definiować poprzez moduły, czy też ręcznie, poprzez panel administracyjny?
Jak stworzyć kilka różnych layout'ów (vide dwie kolumny, jedna itd.), a później przełączać się między nimi np. w zależności od sekcji strony? Czy muszę sięgać do PHP, czy też Drupal potrafi to zrobić lepiej, w jakiś sposób automatycznie?

Wybaczcie, jeśli to nieco chaotyczne, ale jestem jeszcze dosyć zielony z zarządzania treści w Drupalu.

[ Web applications ]
http:// www.ioculus.com

Paweł Gawłowski
Portret użytkownika Paweł Gawłowski
Offline
Dołączył: 19.11.2006
Postów:
Administrator

1. Bloki lepiej twórz w blokach - wtedy możesz je edytować przez interface.
2. Zmiana szablonu nie jest taką prostą sprawą. Możesz poszukać modułów do tego - np. kiedyś gdzieś był taki który zmieniał theme np dla określonych kategorii albo ścieżek.

Jeśli twoja strona nie jest zbyt duża i nie będzie się rozwijała zbyt szybko i jesteś jedynym edytorem:
kopiuj plik page.tpl.php kilka razy, zmodyfikuj je. Plik page.tpl.php niech będzie dużym casem, który inkluduje właściwe strony w zależności od url'a

Drupal 5 może obsługiwać różne szablony zależnie od urla:
http://drupal.org/node/104316

Możesz zrobić własny moduł - nowy typ zawartości w którym wybierasz szablon z listy. Albo zrobić taksonomię i przypisywać do niej node, a potem użyć taxonomy theme.

Paweł Gawłowski
e-solutions.pl

Paweł Gawłowski
e-solutions.pl

mixman
Portret użytkownika mixman
Offline
Dołączył: 26.01.2007
Postów:

Dzięki za odpowiedź.
Poszedłem po rozum do głowy i zmieniłem layout/koncepcję - dwie kolumny, na stałe, bloki wyświetlane w zależności od sekcji (wbudowanym mechanizmem Drupala).
Stara zasada KIS powinna być prawnie uregulowana ;)

[ Web applications ]
http:// www.ioculus.com

kors4r
Portret użytkownika kors4r
Offline
Dołączył: 07.02.2007
Postów:

zaraz, zaraz, nie rezygnuj tak szybko

słuchaj (czytaj), można zrobić tak:

- zmienić moduł z typem zawartości (np. story.module) w części dotyczącej dodawania node i w formularzu dodawania node, dodać nowe pole lub pola, w których ustalisz, jakie blogi przy tym poście mają być wyświetlane

jesli bloków nie będzie zbyt wiele, to możesz: pobrać z bazy listę bloków, w checkboxach zaznaczyć, czy maja być wyświetlane przy tym poście,

jeśli bloków będzie dużo - pole tekstowe, w które wpisywać będziesz nazwy bloków po przecinku

- zmienić moduł z typem zawartości w części dotyczącej wyświetlania i dodać funkcję, która sprawdzi, jakie bloki mają być przy tym poście wyświetlane

to jest całkiem ciekawy pomysł

pozdrawiam
kors4r

---------
drupal.org.pl - jeszcze jedna strona o drupalu

mixman
Portret użytkownika mixman
Offline
Dołączył: 26.01.2007
Postów:

Dzięki za pomysły. Dobrze mieć takowe na podorędziu i w razie czego móc z nich skorzystać.

Ale zmieniłem koncepcje z jednego głównego powodu - KIS (Keep It Simple). Takie podejście pozwala mi uniknąć niepotrzebnego babrania się w kodzie (czas to pieniądz, w moim przypadku dosłownie. Zmiany kodu to poświęcanie tegoż czasu, ergo pieniędzy), poza tym sam layout/strona nie traci na tym, a może nawet i zyskuje (ustalony schemat, do pewnych granic, jest sporym plusem i dla użytkownika, i dla developera).

Co do kolejnego rozwiązania - jest też wersja "ręczna":
- dodałem nowy typ zawartości (robocza nazwa "content"),
- stworzyłem node o takim typie, a w jego treść wstawiłem kod XHTML + wywołania bloków + wywołania widoków (views) w odpowiednich miejscach,
- podlinkowałem ów node pod pozycję menu.

I tyle. Po kliknięciu na link otwiera się węzeł typu "content" (tak jak zwykły artykuł/węzeł typu story/page), który służy tylko i wyłącznie do rozłożenia treści. Dlaczego nie wykorzystałem np. node.page? Żeby nie mieszać - mam zestylowane CSS'ami standardowe node'y (page, story itd.), więc musiałbym przy pewnych warunkach usuwać ramki, tło, tytuły itd. Tworząc nowy typ dostaje "goły" container (sorry za ponglish - polski jest do terminów technicznych do d...) w którym rozstawiam sobie spokojnie zawartość podług własnego widzimisię.
Nie jest to rozwiązanie idealne (trzeba jednak wstawiać kod PHP), ale działa i nie jest też aż tak kłopotliwe.
Mam nadzieję, że nie zakręciłem zbytnio tematu i da się zrozumieć.

[ Web applications ]
http:// www.ioculus.com