Forums / National / Russian / Тех. поддержка / Баги парсинга forums.sections.tpl

если не ошибаюсь, то баг. очень нужна помощь и совет

Eugeny
#1 2010-07-01 10:52
Приветствую.

Есть проблема во время парсинга forums.sections.tpl. Сейчас опишу какая.

Моя разметка forums.sections.tpl:
<!-- BEGIN: MAIN -->
<div id="forum" class="box">
<div id="f-left" class="fl">
<!-- BEGIN: FORUMS_SECTIONS_ROW -->
<!-- BEGIN: FORUMS_SECTIONS_ROW_CAT -->
<fieldset id="{FORUMS_SECTIONS_ROW_CAT_CODE}" class="name-section">
<!-- END: FORUMS_SECTIONS_ROW_CAT -->
<!-- BEGIN: FORUMS_SECTIONS_ROW_SECTION -->
<div id="f{FORUMS_SECTIONS_ROW_NUM}" class="fna box">
<h3 class="box">{FORUMS_SECTIONS_ROW_CAT_TITLE} <a href="{FORUMS_SECTIONS_ROW_URL}">{FORUMS_SECTIONS_ROW_TITLE}</a>
<span>Хиты<i>{FORUMS_SECTIONS_ROW_VIEWCOUNT_SHORT}</i></span>
<span>Посты<i>{FORUMS_SECTIONS_ROW_POSTCOUNT}</i></span>
<span>Темы<i>{FORUMS_SECTIONS_ROW_TOPICCOUNT}</i></span>
</h3>
<!-- IF {FORUMS_SECTIONS_ROW_DESC} -->
<em>{FORUMS_SECTIONS_ROW_DESC}</em>
<!-- ENDIF -->
<div class="section-info box">
{FORUMS_SECTIONS_ROW_LASTPOSTDATE} {FORUMS_SECTIONS_ROW_LASTPOST} {FORUMS_SECTIONS_ROW_LASTPOSTER}
</div>
<!-- BEGIN: FORUMS_SECTIONS_ROW_SECTION_SLAVES -->
<p class="slave{FORUMS_SECTIONS_ROW_SLAVE_NUM}">
{FORUMS_SECTIONS_ROW_SLAVEI}
</p>
<!-- END: FORUMS_SECTIONS_ROW_SECTION_SLAVES -->
</div>
<!-- END: FORUMS_SECTIONS_ROW_SECTION -->
<!-- BEGIN: FORUMS_SECTIONS_ROW_CAT_FOOTER -->
</fieldset>
<!-- END: FORUMS_SECTIONS_ROW_CAT_FOOTER -->
<!-- END: FORUMS_SECTIONS_ROW -->
</div>
<div id="f-right" class="fr">
<dl>
<dt><h3>Ключевые слова</h3></dt>
<dd>
<ul id="forum-tags">
{FORUMS_SECTIONS_TAG_CLOUD}
</ul>
</dd>
</dl>
<dl>
<dt><h3>Просматривают форум</h3></dt>
<dd>
<ul id="forum-who">
{FORUMS_SECTIONS_WHOSONLINE}
</ul>
</dd>
</dl>
</div>
</div>
</div>
<!-- END: MAIN -->

Категория форума, если я правильно понимаю, начинается отсюда:
<!-- BEGIN: FORUMS_SECTIONS_ROW_CAT -->
<fieldset id="{FORUMS_SECTIONS_ROW_CAT_CODE}" class="name-section">
<!-- END: FORUMS_SECTIONS_ROW_CAT -->

далее идет все остальное и в конце категория закрывается:

<!-- BEGIN: FORUMS_SECTIONS_ROW_CAT_FOOTER -->
</fieldset>
<!-- END: FORUMS_SECTIONS_ROW_CAT_FOOTER -->

Баг в том, что если у форума есть подфорумы, которые выводятся в forums.sections.tpl таким образом:

<!-- BEGIN: FORUMS_SECTIONS_ROW_SECTION_SLAVES -->
<p class="slave{FORUMS_SECTIONS_ROW_SLAVE_NUM}">
{FORUMS_SECTIONS_ROW_SLAVEI}
</p>
<!-- END: FORUMS_SECTIONS_ROW_SECTION_SLAVES -->

то не выводится

<!-- BEGIN: FORUMS_SECTIONS_ROW_CAT_FOOTER -->
</fieldset>
<!-- END: FORUMS_SECTIONS_ROW_CAT_FOOTER -->

Очень хочется побороть эту проблему, но даже не представляю как это сделать. Возможно проблема не в Cotonti, а в моих кривых руках.
agir
#2 2012-01-20 04:34

Да, с момента вопроса прошло полтора года, а "воз и ныне там", вот и я столкнулся с подобной проблемой, без "костылей" решить не смог,

по сути правим файл system/core/forums/forums.inc.php , у меня строка 239

        ....
        $sql1 = sed_sql_query("SELECT fs_id, fs_title, fs_lt_date FROM $db_forum_sections WHERE fs_masterid='".$fsn['fs_id']."' ");
        while ($row = sed_sql_fetcharray($sql1))
        ....
Вставляем одну строчку

        ....
        $sql1 = sed_sql_query("SELECT fs_id, fs_title, fs_lt_date FROM $db_forum_sections WHERE fs_masterid='".$fsn['fs_id']."' ");
        $count_slave = mysql_num_rows($sql1);
        while ($row = sed_sql_fetcharray($sql1))
        ....
Где $count_slave наша переменная с количеством подфорумов.
И меняем еще одну строчку (294)
        ....
    // Required to have all divs closed
    $catnum = $catnum-1;
        ....
на
        ....
    // Required to have all divs closed
    $catnum = $catnum-1-$count_slave;
        ....