09
marca
2010
Dzisiaj szybkie skryptowe rozwiązanie dość często spotykanego problemu zmiany tła w zależności od podstrony, który powinien w jakimś stopniu zniknąć w Joomla! 1.6, gdzie będzie istniała możliwość zmiany ustawień szablonu dla konkretnych podstron (obecnie trzeba tworzyć kopie danego szablonu i przypisywać go do konkretnych podstron).
Do osiągnięcia pożądanych rezultatów musimy zrobić dwie rzeczy: stworzyć w katalogu images/ naszego szablonu katalog backgrounds/ wypełniony grafikami tła, których chcemy użyć oraz dodać poniższy skrypt w sekcji head naszego szablonu (najlepiej na samym jej końcu):
<?php
// tablica powiązań Itemid <-> grafika tła
$bg_images = array(
"53" => "1.jpg",
"54" => "2.jpg",
"default" => "3.jpg" // grafika domyślna
);
$itemID_value = JRequest::getCmd('Itemid');
$bg_image = (isset($bg_images[$itemID_value])) ? $bg_images[$itemID_value] : $bg_images["default"];
$url =& JURI::getInstance();
?>
<style type="text/css">
body{
background:#fff url('<?php echo $url->root(); ?>templates/<?php echo $this->template; ?>/images/backgrounds/<?php echo $bg_image; ?>') center 0!important;
}
</style>
Powyższy skrypt dysponuje tablicą powiązań $bg_images, która definiuje powiązania pomiędzy wartościami zmiennej Itemid z adresu i obrazkiem tła przypisanym do danej wartości Itemid. Skrypt wczytuje wartość Itemid z adresu i na tej podstawie określa czy do danej wartości został przypisany jakiś szczególny typ tła, w przeciwnym wypadku zostanie zastosowana grafika domyślna.
Za ustawienie tła odpowiada osadzony styl CSS, w którym można oczywiście pozmieniać parametry pozycjonowania tła, koloru tła i jego powielania ;)
Oczywiście nic nie stoi na przeszkodzie by określać także inne parametry tła w ten sposób, a nawet dodawać całe style CSS