PDA

Zobacz pełną wersję : Zmiana widoku strony



primo
08-08-2011, 14:36
Witam,

mam kłopot jak zmienić widok strony. Nie jest to typowy problem, bo zmiana następuje w zależności od zawartości, a więc strona główna wygląda inaczej, widok kategorii wygląda inaczej i widok samego artykułu wygląda inaczej. Nie wiem co zmienić jeszcze w poniższym kodzie, aby po poprawnej zmianie na widok-kategorii po wybraniu tytułu arta z tej kategorii zostać przeniesionym na widok-artykulu.




<?php

if (JRequest::GetCmd("option") == 'com_content'){
$sprawdz = JRequest::GetCmd("view");
$ids = JRequest::GetInt("id");
$nrForm = JRequest::GetInt("id");

if ( $sprawdz == 'section' ){
if (substr($ids, 0, 1) == '-'){
$id = '-'.$ids;
} else {
$id = $ids;
}
} elseif ($sprawdz == 'article'){

$db =& JFactory::getDBO();
$query = "SELECT sectionid FROM #__content WHERE id =".$ids."";
$db->setQuery($query);
$id = $db->loadResult();

} else {

$id = 'default';

}
}



switch ($id)
{

case 5:
include("templates/tb2011/zalaczane/widok-kategoria.html");
break;
case 6:
include("templates/tb2011/zalaczane/widok-kategoria.html");
break;

case "default":
include("templates/tb2011/zalaczane/glowna.html");
break;

default:
include("templates/tb2011/zalaczane/glowna.html");

}


switch (JRequest::GetVar("Itemid"))
{

case 80:
include("templates/tb2011/zalaczane/widok-artykul.html");
break;

case "default":
include("templates/tb2011/zalaczane/glowna.html");
break;

default:
include("templates/tb2011/zalaczane/glowna.html");

}


?>

może Wy będziecie mieć jakiś pomysł?

PeFik
08-08-2011, 18:52
Ja bym to zrobił na z użyciem komponentu K2, który ma szablony i np. każda kategoria może mieć swój szablon-widok, czy widok listy artykułów etc.

kodhtml
09-08-2011, 12:54
Przecież widok kategorii czy widok artykułu to niezależne szablony - opisz jakie efekt/układ chcesz uzyskać.

primo
09-08-2011, 12:59
No hejka, udało mi się to rozkminić, zapewne niejednemu się to przyda :)



<?php

if (JRequest::GetCmd("option") == 'com_content'){
$sprawdz = JRequest::GetCmd("view");
$ids = JRequest::GetInt("id");
$nrForm = JRequest::GetInt("id");

if ( $sprawdz == 'section' or 'category' ){
if (substr($ids, 0, 1) == '-'){
$id = '-'.$ids;
} else {
$id = $ids;
}
} elseif ($sprawdz == 'article'){

$db =& JFactory::getDBO();
$query = "SELECT sectionid FROM #__content WHERE id =".$ids."";
$db->setQuery($query);
$id = $db->loadResult();

} else {

$id = 'default';

}
}


if (JRequest::getCmd('view')=='article'){

switch (JRequest::GetVar("Itemid"))
{

case "default":
include("templates/tb2011/zalaczane/widok-artykul.html");
break;

default:
include("templates/tb2011/zalaczane/widok-artykul.html");

}

}
else {


switch ($id)
{
case 50:
include("templates/tb2011/zalaczane/widok-kategoria.html");
break;

case "default":
include("templates/tb2011/zalaczane/glowna.html");
break;

default:
include("templates/tb2011/zalaczane/glowna.html");

}

}

?>



Efekt jaki chciałem uzyskać: można zobaczyć tu: http://bieganie.biz/ -- inny widok dla strony głownej, inny dla sekcji kategorii i inny dla widoku artykułu.

kodhtml
09-08-2011, 13:37
z tego co widzę można było to również uzyskać poprzez odpowiednią konfigurację szablonu i modułów :)

primo
09-08-2011, 13:45
No jak to zawsze bywa, można tak, można tak :) grunt aby rozwiązanie spełniało swoje założenie.