to co napisał kolega bazyl nie do końca jest prawdą, otóż jako stronę domyślną możemy ustawić dowolny komponent/widok więc sprawdzanie view odpada, poza tym warunek ten byłby prawdziwy również dla podstron z danym widokiem a nie wykluczone, że komponent x również będzie miał widok frontpage. Po drugie option jest zawsze ustawione ponieważ wczytywana jest pozycja menu które jest domyślna więc musimy mieć dostęp do aktywnego widoku itd. Wydaje mi się że najbliżej prawdy będzie taka funkcja, choć w niektórych przypadkach i ona może okazać się nieskuteczna.
Kod PHP:
function isFront(){
//tworzymy zapytanie do bazy o domyślną pozycję, pobieramy id i link
$db=&JFactory::getDBO();
$sql="SELECT id,link FROM #__menu WHERE home=1";
$db->setQuery($sql);
$wynik=$db->loadObject();
//zmienna home przechowuje id do porównania z Itemid zapytania na stronie.
$home=$wynik->id;
//pobieramy wszystko po znaku ? z pola link wyniku zapytania $sql
$url=parse_url($wynik->link,PHP_URL_QUERY);
//parsujemy zmienną $url uzyskując tym samym zmienne $option, $view itd.
parse_str($url);
//pobieramy Itemid option i view z zapytania
$Itemid=JRequest::getInt('Itemid');
$qoption=JRequest::getCMD('option');
$qview=JRequest::getCMD('view');
//tworzymy warunek
if ($home==$Itemid && $view==$qview && $option=$qoption) {
return true;
} else {
return false;
}
}
i teraz warunek będzie wyglądał mniej więcej tak:
Kod PHP:
if (isFront()){
echo "Witamy na stronie głównej";
} else {
echo "Witamy na podstronie serwisu";
}
pisane na szybko ale przetestowane i się sprawdza choć w niektórych przypadkach i tak pewnie może okazać się że jest zawodna :/ problem co najmniej ciekawy jak wpadnę na jakieś bardziej sensowne rozwiązanie to podam je od razu.