PDA

Zobacz pełną wersję : Błąd w nagłówkach modułów.



Gru
12-01-2010, 20:40
Witam,

Przerabiam, a właściwie piszę od nowa szablon. I gdzieś strzeliłem babola i nie bardzo wiem gdzie mogę znaleźć część kodu w którym ten błąd jest. Problemem jest źle zamknięty tag <h3>. I na końcu tytułu wyświetla się " 3".

Stronę można zobaczyć tu... http://mrmgr.homeip.net/vm

Gdzie znajdę plik który odpowiada za generowanie modułów i ich tytułów. Problem pojawia się we wszystkich modułach które maja ustawione pole "Pokaż tytuł:" w opcji modułu.


<div class="box moduletable">
<h3>Twój Koszyk</h>
3>
<div class="vmCartModule">
<div style="margin: 0 auto;">
<a href="http://virtuemart.net/" target="_blank">
<img src="http://localhost/vm/components/com_virtuemart/shop_image/ps_image/menu_logo.gif" alt="VirtueMart" width="80" border="0" /></a>
<br />
Twój koszyk jest pusty. </div>
<hr style="clear: both;" />
<div style="float: left;" >
</div>
<div style="float: right;">
</div>
</div> </div>

<div class="box moduletable_text">
<h3>R E K L A M A</h>
3>
<div class="bannergroup_text">

<div class="bannerheader">Featured Links:</div>
<div class="banneritem_text"><a href="/vm/index.php?option=com_banners&amp;task=click&amp;bid=7" target="_blank"><img src="http://localhost/vm/images/banners/shop-ad.jpg" alt="Reklama" /></a><div class="clr"></div>
</div>
<div class="banneritem_text"><a href="/vm/index.php?option=com_banners&amp;task=click&amp;bid=8" target="_blank"><img src="http://localhost/vm/images/banners/shop-ad-books.jpg" alt="Reklama" /></a><div class="clr"></div>
</div>

<div class="bannerfooter_text">
<a href="http://www.joomla.org">Ads by Joomla!</a> </div>
</div> </div>

<div class="box moduletable">
<h3>Wybrane produkty</h>
3>

zwiastun
12-01-2010, 20:52
plik module.php w/szablon/html

Gru
12-01-2010, 21:26
Znalazłem, ale nie wiem jak to naprawić. Potrzeba mi tylko by nagłówek bloku był wyłączalny (if) i miał atrybut h3. Bezpośrednio pod nim tekst modułu z tagiem id="mod_txt". Poza tym autor oryginału chyba się pomylił nie wiem po co ta klamra na dole?


function modChrome_box($module, &$params, &$attribs) {
$headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>

<div class="box moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<h<?php echo $headerLevel; ?>><?php echo $module->title; ?></h>
<?php echo $headerLevel; ?>>
<?php endif; ?>
<?php echo $module->content; ?> </div>
<?php endif;
}

zwiastun
12-01-2010, 21:33
Poza tym, jeśli się na tym nie znasz, to po co z tego korzystać. Omówienie jest na wiki Tu masz błąd


<h<?php echo $headerLevel; ?>><?php echo $module->title; ?></h>
</span>

Gru
12-01-2010, 21:42
Metodą prób i błędów doszedłem, dziękuje za pomoc, zrobiłem tak:


function modChrome_box($module, &$params, &$attribs) {
$headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3;
if (!empty ($module->content)) : ?>

<div class="box moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<h3><?php echo $module->title; ?></h>
<?php endif; ?>
<div id="mod_text" <?php echo $module->content; ?></div>
</div>
<?php endif;
}

zwiastun
12-01-2010, 21:44
I wyświetla się dobrze? Pleć pleciugo! przecież nadal masz źle domknięty znacznik!

Gru
12-01-2010, 22:30
O dziwo tak, działa poprawnie, pomimo że w tagu zamykającym brakowało "3" (teraz już poprawiłem). Może tag zamykający </h> zamyka ostatnio otwarty tag <h> nie zależnie od jego stopnia? To by wyjaśniało poprawne wyświetlanie modułu.