PDA

Zobacz pełną wersję : Zmiana layoutu w określonym miejscu.



kpr
26-09-2012, 17:23
Witam,
mam taką sprawę mianowicie na stronie głównej ładują mi się artykuły z sekcji. I sprawa wygląda tak że mam odpowiednio sformatowany plik blog_item.php wszystko mi się wyświetla poprawnie ale chciałbym zeby po kliknięciu przycisku więcej i przejsciu do widoku artykułu zmieniał mi się layout strony (ta opcja działa bez problemu przy pozycjach menu - inny layout) a czy jest wogole opcja zeby po rozwinięciu artykułu jego widok wyświetlał się w innym szablonie?
Jeśli jest taka opcja to bardzo proszę nakierowanie mnie gdzie powinienem zacząć grzebać..

Przepraszam, z rozpędu pomyliłem dział - chodzi o joomla 1.5

pawelSafiStudio
26-09-2012, 20:00
Witaj,
możesz tak zrobić. Wystarczy w szablonie głównym ustawić warunkowe wyświetlanie układów. Podpowiem Ci takim kodem:


if(JRequest::getVar('option')=='com_content' && JRequest::getVar('view')=='article'){
// szablon dla artykulu
}
else{
// szablon zwykly
}

Oczywiście to tylko przykład. Myślę, że rozwiązań jest więcej.

Pozdrawiam.

kpr
27-09-2012, 07:57
dzięki, zrobiłem coś takiego w index.php:


$layout = JRequest::getVar('layout', null);
if(JRequest::getVar('option')=='com_content' && JRequest::getVar('view')=='article'){ $layout = 'nazwa';}

niestety nie działa, if działa, jesli po if dam jakis kod to widze ze jest ok, ale layout sie nie zmienia..

pawelSafiStudio
27-09-2012, 08:12
Nie bardzo rozumiem teraz o co Ci chodzi :)
Chcesz zmienić tylko szablon artykułu czy w ogóle chcesz zmienić cały szablon podczas wyświetlania artykułu?

kpr
27-09-2012, 08:50
dokładnie chodzi mi o cały szablon.. przy wyświetlaniu strony głównej jest jeden szablon a po wejsciu w widok artykulu chce całkowicie zmienić szablon joomla.

pawelSafiStudio
27-09-2012, 08:59
To praktycznie masz już dobrze zrobione z tym, że:


if(JRequest::getVar('option')=='com_content' && JRequest::getVar('view')=='article'){
include('szablon dla artykulu');
}
else{
include('szablon standardowy');
}

Bardziej już chyba pomóc nie będę potrafił :) Mam nadzieję, że to Ci rozjaśni co nie co.

Pozdrawiam.

kpr
27-09-2012, 09:47
niestety w ten sposób to nie działa - ten kod powinienem umieścić w index.php tak? a moze inaczej - chodzi mi o to ze na stronie głównej mam określony szablon z widokiem blog_item, z prawej strony mam diva z modułem i chce żeby po kliknięciu więcej i przejściu do widoku artykułu, artykuł wyświetlił się na całej stronie a komponent/moduł z prawej zniknął. (div z glówną treścią chce rozszerzyć na całą stronę, a div z prawej z modułem usunąć czy ukryć.. jakoś nie mogę tego ogarnąć).

pawelSafiStudio
27-09-2012, 09:52
Hmm,
w takim razie możesz to zrobić jeszcze inaczej. Znajdź sobie w templatce kod, który umieszcza moduł z lewej strony i tam dodaj warunek if.


if(JRequest::getVar('view')!='article'){
echo '<jdoc:include type="module" name="..." style="..." />';
}

kpr
28-09-2012, 07:33
super, dzięki ten sposób działa, rozkminiłem też Twój wcześniejszy ze zmianą całego szablonu:
if(JRequest::getVar('view') == "article" ) {
$template = 'nazwa';
}
i to też działa tylko musiałem to umieścić w pliku /includes/application.php
pozdrawiam..

pawelSafiStudio
28-09-2012, 07:46
To samo mogłeś zrobić w pliku index.php templatki. Po prostu tworzysz dodatkowo dwa pliki szablonów np. article.php i noarticle.php. Potem w index.php includujesz ten, który Ci odpowiada. Nie mieszałbym w kodzie Joomla!, skoro można to zrobić w templatce.

Pozdrawiam.

Gall Anonim
28-09-2012, 11:03
@kpr
niepotrzebnie kombinujesz
zasada jest taka iż należy "odwrócić kota ogonem"
Czyli szablon numer dwa (ten który ma się wyświetlać po więcej) dajesz jako domyślny
Szablon numer jeden przypisujesz do strony startowej i tych na których jest ci potrzebny.
Pzdr

kpr
28-09-2012, 19:43
ok, może faktycznie przekombinowałem ale jeszcze raz wytłumacze:

na stronie głównej mam widok "section" - artykuły z sekcji (i tutaj muszę załadować inny szablon bo szerokość <jdoc:include type="component" /> jest mniejsza i z prawej strony ładowany jest moduł.

po kliknięciu na więcej szablon musi się zmienić na domyślny - moduł z prawej znika i component na całą szerokość strony.
na pozostałych stronach wszędzie jest ten drugi przypadek, domyślny szablon na całą szerokość strony.

Trochę to namieszane ale tak wyszło. No i przy zmianie szablonu domyślnie z zaplecza po kliknięciu więcej na stronie głónej artykuł był wyświetlany w 1 szablonie razem z modułem po prawej (a ja chciałem go na całą szerokość bez modułu).

Teraz jest ok, dzięki za pomoc.