PDA

Zobacz pełną wersję : CSS a adresy generowane przez Joomle



vereb
25-06-2010, 11:15
Witam,

Problem jest tego typu- klient chce na każdej podstronie inne tło w 2 polach. Ze względu na to że layout jest dość nietypowy problematyczne byłoby zastosowanie do tego modułów lub oddzielnego szablonu na każdą podstronę (7 pozycji menu + str. główna = 8 różnych szablonów- jedna zmiana = 8 zmian= masakra).
Wpadłem więc na pomysł aby zczytać wywołany adres i za pomocą prostej instrukcji warunkowej zastosować odpowiednie tło bezpośrednio w pliku index.php

jeśli (o nas) przypisz background-image:url(image/o-nas.jpg) itd itd.

Pomysł działał jeśli na sztywno przypisywałem styl do div'a. W momencie kiedy próbowałem zrobić to dynamicznie joomla (a właściwie php) adres brała w apostrofy, a tego już przeglądarka nie czytała- czyli nie było tła.

Czy wie ktoś jak usunąć apostrofy (w php) lub jak uniknąć dynamicznego tworzenia adresu?

steno
25-06-2010, 11:25
Ta funkcja Ci się przyda:
JRequest::getVar( 'option' );
w tym wypadku zwróci wartość parametru option z adresu

vereb
25-06-2010, 12:00
Ta funkcja Ci się przyda:
JRequest::getVar( 'option' );
w tym wypadku zwróci wartość parametru option z adresu

Tylko przy używaniu krótkich adresów nie mam parametru 'option'.
Opiszę dokładniej o co chodzi:
skrypt sprawdza link i zależnie od tego co widzi formatuje styl wyświetlania diva, czyli:


$podstrona = $_SERVER['REQUEST_URI'];

if ($podstrona == "/index.php/firma.html") {
$tlo = '/tla/firma.jpg';
$banner = 'style="background-image:url(../images/banner/firma.jpg) background-repeat:no-repeat;"';
}




<div id="banner_prawy" <?php echo $banner;?>>


wynik: tlo się nie wyświetla. Źródło strony pokazuje, że adres zamiast zadeklarowanego: url(../images/banner/firma.jpg)
ma formę: url('/SZABLON/banner/firma.jpg') a tego przeglądarka nie widzi (tzn. pliku docelowego).

KejeN
25-06-2010, 12:13
Przytoczona przez @steno JRequest zadziała też na prostych adresach a postać adresu nie przepisaną na SEF znajdziesz w edycji pozycji menu.
a co do (../images/banner/firma.jpg) to ten zapis jest dla arkusza styli dwie kropki oznaczają że plik znajduję się w katalogu wyżej, w index.php wpisz albo jedną kropkę albo adres bezwzględny.

vereb
25-06-2010, 12:42
...
a co do (../images/banner/firma.jpg) to ten zapis jest dla arkusza styli dwie kropki oznaczają że plik znajduję się w katalogu wyżej, w index.php wpisz albo jedną kropkę albo adres bezwzględny.

Tak, tak, wiem że odnosi się do katalogu, ale w momencie gdy mam juz dobry link joomla dorzuca do niego '' i obrazka nie ma
(czyli zamiast: url(/costam/costam/plik.jpg) otrzymuje url('/costam/costam/plik.jpg')

KejeN
25-06-2010, 12:50
Hmm... no to w instrukcji warunkowej zrób sobie wywołanie klasy a w arkuszu wpisze te 8 różnych klas i musi działać.

vereb
25-06-2010, 12:58
No ja wiedziałem że to musi być coś banalnego :) ech, człowiek sam sobie problemy wymyśla, kombinuje, ludziom głowe zawraca... patrzy a nie widzi. PRZECIEŻ TO OCZYWISTE ;)
Zaraz spróbuje. Dzięki.