Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Проблема с хаком "шапки"

Модерирует : Antuan, Dekker

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

EvgEsha



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скачал тут хак "шапки" (как на этом форуме) для своего invision. Но возникла одна проблема: если шапкой делать первое сообщение темы, то оно дублируется на первойстранице (т.е. отображается шапка и первое сообщение, одинаковые по содержанию). Вот фрагмент кода, ответственный за этот поступок:
 

Код:
 
//--------------------------------------------
// Optimized query?
// MySQL.com insists that forcing LEFT JOIN or
// STRAIGHT JOIN helps the query optimizer, so..
//--------------------------------------------
             
if ($this->topic['pinned_post'])
{
$DB->query( "SELECT p.*,
   m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
   m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
   g.g_id, g.g_title, g.g_icon, g.g_dohtml
   FROM ibf_posts p
     LEFT JOIN ibf_members m ON (p.author_id=m.id)
     LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
     LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
     $join_profile_query
   WHERE p.pid='".$this->topic['pinned_post']."' and p.queued !='1'");
                 $post = $DB->fetch_row();
                 $this->make_post($post, 0);
 
$DB->query( "SELECT p.*,
                                m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
                                m.signature, m.website,m.yahoo,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
                                g.g_id, g.g_title, g.g_icon, g.g_dohtml
                                FROM ibf_posts p
                                    LEFT JOIN ibf_members m ON (p.author_id=m.id)
   LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
                                    LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
                                    WHERE p.topic_id='".$this->topic['tid']."' and p.queued !='1'
                                    ORDER BY p.pid LIMIT $first, ".($ibforums->vars['display_max_posts']));
 
 
                 }
else {
                 $DB->query( "SELECT p.*,
                                    m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
                                    m.signature, m.website,m.yahoo,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
                                    g.g_id, g.g_title, g.g_icon, g.g_dohtml
                                    FROM ibf_posts p
                                      LEFT JOIN ibf_members m ON (p.author_id=m.id)
     LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
                                      LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
                                    WHERE p.topic_id='".$this->topic['tid']."' and p.queued !='1'
                                    ORDER BY p.pid LIMIT $first, ".$ibforums->vars['display_max_posts']);
   
}
 
 

 
Чтобы 1-е сообщения не дублировались, я исправил код так:
 

Код:
 
//--------------------------------------------
// Optimized query?
// MySQL.com insists that forcing LEFT JOIN or
// STRAIGHT JOIN helps the query optimizer, so..
//--------------------------------------------
             
if ($this->topic['pinned_post'])
{
$DB->query( "SELECT p.*,
   m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
   m.signature, m.website,m.yahoo,m.integ_msg,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
   g.g_id, g.g_title, g.g_icon, g.g_dohtml
   FROM ibf_posts p
     LEFT JOIN ibf_members m ON (p.author_id=m.id)
     LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
     LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
     $join_profile_query
   WHERE p.pid='".$this->topic['pinned_post']."' and p.queued !='1'");
                 $post = $DB->fetch_row();
                 $this->make_post($post, 0);
 
$DB->query( "SELECT p.*,
                                m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
                                m.signature, m.website,m.yahoo,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
                                g.g_id, g.g_title, g.g_icon, g.g_dohtml
                                FROM ibf_posts p
                                    LEFT JOIN ibf_members m ON (p.author_id=m.id)
   LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
                                    LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
                                    WHERE p.pid !='".$this->topic['pinned_post']."' and p.topic_id='".$this->topic['tid']."' and p.queued !='1'
                                    ORDER BY p.pid LIMIT $first, ".($ibforums->vars['display_max_posts']));
 
 
                 }
else {
                 $DB->query( "SELECT p.*,
                                    m.id,m.name,m.mgroup,m.email,m.joined,m.avatar,m.avatar_size,m.posts,m.aim_name,m.icq_number,
                                    m.signature, m.website,m.yahoo,m.title,m.hide_email,m.msnname, m.warn_level, m.warn_lastwarn,
                                    g.g_id, g.g_title, g.g_icon, g.g_dohtml
                                    FROM ibf_posts p
                                      LEFT JOIN ibf_members m ON (p.author_id=m.id)
     LEFT JOIN ibf_pfields_content d ON (p.author_id=d.member_id)
                                      LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup)
                                    WHERE p.topic_id='".$this->topic['tid']."' and p.queued !='1'
                                    ORDER BY p.pid LIMIT $first, ".$ibforums->vars['display_max_posts']);
   
}
 
 

 
Сообщения перестали дублироваться, но возник следующий баг: если в теме на последней странице один пост (не считая шапки), то при переходе на эту страницу браузер выдаёт "Невозможно отобразить страницу". Во всех остальных случаях всё работает нормально.
 
В чём ошибка? Может кто подскажет? Заранее спасибо.

Всего записей: 219 | Зарегистр. 20-10-2001 | Отправлено: 19:33 20-08-2004
Dekker



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
EvgEsha
я так понял речь идет о первом прикрепленном посте, какая версия форума ?

Всего записей: 4655 | Зарегистр. 04-06-2002 | Отправлено: 11:59 21-08-2004
EvgEsha



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо, я уже поставил другой хак...
 
тему мона закрыть

Всего записей: 219 | Зарегистр. 20-10-2001 | Отправлено: 01:36 23-08-2004
DDfans



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Странно, а зачем ставить такие хаки и мучаться с ними, еcли все это дело уже стоит в версии от www.bestfilez.net?

Всего записей: 59 | Зарегистр. 24-11-2002 | Отправлено: 23:44 24-08-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Проблема с хаком "шапки"


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru