PDA

Zobacz pełną wersję : Obrazek obok tytułu modułu w newsflash



volatile
19-05-2010, 18:07
Witam.
Mam niestety problem natury technicznej :-) Pokrótce opiszę o co mi chodzi.

Przy tworzeniu modułu typu mod_newsflash można zaznaczyć opcję, dzięki której będzie wyświetlany tytuł. Chciałbym mieć możliwość modyfikowania jego właściwości, czyli rozmiaru czcionki itp.

Problem w tym, że w źródle strony mam następujący kod:


<div class="boxTitle">
<h3>jakiś tytuł</h3>
</div>


Obiło mi się o uszy, że wpisując ścieżkę do obrazka na serwerze można ten napis w znaczniku:


<h3>jakiś tytuł</h3>

Podmienić na grafikę.

Ja chcę pójść trochę dalej, czyli aby przed modułem typu newsflash automatycznie był wczytywany obrazek przeze mnie przyporządkowany. Tak jak to jest zaprezentowane poniżej:


<h3><img src="templates/nazwa_szablonu/strzalka.png" /> jakiś tytuł</h3>

Chodzi mi o automatyzację tego procesu, abym za każdym razem nie musiał wpisywać pełnej ścieżki do obrazka przed tytułem.

Prawdopodobnie muszę zmodyfikować jakiś plik w katalogu components lub modules, tak aby wstawić znacznik IMG w H3 dla mod_newsflash. Niestety nie mogę tego pliku odnaleźć.
Proszę w takim razie o pomoc i wyrozumiałość, jeżeli taki temat już kiedyś był na forum (mogłem źle szukać).

Pozdrawiam,
volatile :-)

mino
19-05-2010, 23:05
Witaj.
Jeśli to ma być identyczny obrazek dla jakiegokolwiek nagłówka tego modułu to możesz użyć takiego kodu:


.boxTitle h3{
background-image: url(../images/twoj_obrazek.jpg) 0px 0px no-repeat;
}


dodatkowo jeśli obrazek ma w ogóle zastępować text to dajesz:


.boxTitle h3{
background-image: url(../images/twoj_obrazek.jpg) 0px 0px no-repeat;
text-indent: -10000px;
}

volatile
26-05-2010, 12:17
Udało mi się z tym uporać tego samego dnia. Nie miałem czasu jednak odpisać, więc jeżeli ktoś będzie miał podobny problem.

1. Wystarczy wejść do templates/nazwa_szablonu/html i znaleźć w nim plik modules.php.
2. Plik pobrać na dysk i wprowadzić w nim modyfikacje. Dokładnie w tym bloku (dla przykładu):


function modChrome_wrapper_box ($module, &$params, &$attribs)
{
$headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>
<div class="wrapper-box module<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<div class="boxTitle">
<h<?php echo $headerLevel; ?>><img class="titles" src="templates/nazwa_szablonu/images/list.png" alt="menu" /><?php echo $module->title; ?></h<?php echo $headerLevel; ?>>
</div>
<?php endif; ?>
<div class="boxIndent">
<div class="clear">
<?php echo $module->content; ?>
</div>
</div>
</div>
<?php endif;
}


Dokładnie w tym fragmencie:


<div class="boxTitle">
<h<?php echo $headerLevel; ?>><img class="klasa_obrazka" src="templates/nazwa_szablonu/images/list.png" alt="menu" /><?php echo $module->title; ?></h<?php echo $headerLevel; ?>>
</div>


Przyznam, że to trochę "siłowe" rozwiązanie (bo statyczne), ale komuś może się przydać. Nie miałem niestety czasu, żeby zajrzeć do dokumentacji i zrobić to trochę lepiej.

P.S. Oczywiście obrazkiem można później zarządzać z poziomu pliku .css szablonu. Tak tylko w ramach przypomnienia, bo chyba nie ma sensu pisania któregoś tam z kolei tutoriala CSS.