PDA

Zobacz pełną wersję : Nadpisanie (override) kodu html generowanego przez joomle.



zir
03-08-2011, 10:03
Witam,
mam w menu link do 'category blog', który ładnie wypisuje wszystkie artykuły. Jest jeden 'leading article' i klika 'intro articles'. Chciałym do każdego z 'intro articles' dodać jednego diva więcej. Czytałem w dokumentacji o html override, ale trochę się zgubiłem. Który plik powinienem edytować żeby było widać zmiany? W szablonie beez5 (na którym próbuje coś wymyśleć) w /html/com_content/category/ mam pliki: blog, blog_children, blog_item, blog_links, default, default_articles, default_children. W którym znajduje się interesujący mnie kawałek kodu?

Z góry dzięki za odpowiedzi.

zwiastun
03-08-2011, 10:19
Sugeruję pooglądać je wszystkie i poznać strukturę, bo inaczej to nie ma sensu. default - odpowiada za listę, blog za przegląd i odpowiednio pliki z blog_ to pliki z szablonami elementów włączanych do przeglądu, default_ - z elementami włączanymi do listy

zir
03-08-2011, 11:07
Sugeruję pooglądać je wszystkie i poznać strukturę, bo inaczej to nie ma sensu. default - odpowiada za listę, blog za przegląd i odpowiednio pliki z blog_ to pliki z szablonami elementów włączanych do przeglądu, default_ - z elementami włączanymi do listy
Dziękuję za błyskawiczną odpowiedź.

Z tego mi wynika, że powinienem zmieniać plik blog, a konkretnie fragment z pętlą foreach. Zauważyłem jednak pewien problem. Żadne zmiany, których dokonuję nie mają efektu na wygląd szablonu. Nawet skasowanie całego fragmentu kodu, który wydawałoby się odpowiada za wyświetlenie 'intro articles':

<?php
$introcount=(count($this->intro_items));
$counter=0;
?>
<?php if (!empty($this->intro_items)) : ?>
<?php foreach ($this->intro_items as $key => &$item) : ?>
<?php
$key= ($key-$leadingcount)+1;
$rowcount=( ((int)$key-1) % (int) $this->columns) +1;
$row = $counter / $this->columns ;

if ($rowcount==1) : ?>

<div class="items-row cols-<?php echo (int) $this->columns;?> <?php echo 'row-'.$row ; ?>">
<?php endif; ?>
<article class="item column-<?php echo $rowcount;?><?php echo $item->state == 0 ? ' system-unpublished' : null; ?>">
<?php
$this->item = &$item;
echo $this->loadTemplate('item');
?>
</article>
<?php $counter++; ?>
<?php if (($rowcount == $this->columns) or ($counter ==$introcount)): ?>
<span class="row-separator"></span>
</div>

<?php endif; ?>
<?php endforeach; ?>


<?php endif; ?>Wywaliłem tyle kodu, a jednak nie widać żadnej zmiany na stronie, gdzie teoretycznie ten blog powinien być umieszczony. Co robię źle? Pominąłem jakieś ustawienie?

Wydaje mi się, że szablon korzysta z tego pliku, bo jak wywalę wszystko to zawartość znika - całkiem słusznie.