Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Настройки прав доступа по группам
  • Настройки прав доступа по каждой категории
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
 
 
 
 

 
 
Здесь скоро опять что то будет...
 
 
 
 
 
 
Loading

Вернуться   форум vBSupport.org > vBulletin > Старые версии vBulletin (3.0 и 2.x) > Хаки, моды и скрипты 3.0

Объявления
  • Изменения в правах
  • Каталог Фрилансеров
  • Добро пожаловать!
  • Premoderation
  • Новичкам!
  • For English speaking users
Ответ
 
Опции темы Опции просмотра
Старый 23.06.2005, 22:29   #1
Простоузер
Поиск хака для последнего сообщения

я знаю есть хак что два последних сообщения склеиваються в одно. но не могу найти
помагите пожалуйста!
  Ответить с цитированием
Рекламка
Реклама на форуме

Файловый Архив

  • Неограниченное количество категорий и суб-категорий
  • Тонкие настройки прав доступа
  • Предпросмотр медиа файлов: FLV, IFLV, F4A, F4V, MP4, MP3, MOV и других...
  • Мультизагрузка файлов - SWFUploader
  • Добавление файлов с сервера
Подробности и история обновлений продукта в этой теме
Старый 24.06.2005, 04:20   #2
kerk
k0t
 
Аватар для kerk
stuck messages by polo

Хак: Склейка сообщений
Автор: polo
Версия VB: 3.x.x
Версия хака: 1.0
Этот хак только для пользователей netadmin.
Расспостранение данного хака вне страницах сайта
netadmin.ws запрещено.
====================
если ты это имеешь ввиду, регистрируйся на форуме у них и качай =))
  Ответить с цитированием
Старый 24.06.2005, 15:41   #3
muxa
Простоузер
спасиб посмотрим
  Ответить с цитированием
Старый 28.06.2005, 01:34   #4
zCarot
zМарковь
Хочет третью строчку =)
 
Аватар для zCarot
Предотвращение двойных сообщений v1.6
Автор: Stefan 'Xenon' Kaeser
В переменной $dp_settings содержится временное значение, в течении которого сообщения вместе с вложениями будут объединятся, а также другие настройки.
Открываем файл includes/functions_newpost.php ищем
PHP код:
        $DB_site->query("
            INSERT INTO " 
TABLE_PREFIX "post
                (threadid, parentid, title, username, userid, dateline, pagetext, allowsmilie,
                 showsignature, ipaddress, iconid, visible, attach)
            VALUES
                ($threadinfo[threadid], $parentid, '" 
addslashes($post['title']) . "',
                 '" 
addslashes($post['postusername']) . "', $bbuserinfo[userid], " TIMENOW ",
                 '" 
addslashes($post['message']) . "', $post[enablesmilies], $post[signature],
                 '" 
addslashes($post['ipaddress']) . "', $post[iconid], $post[visible], $totalattachments)
        "
);
        
$post['postid'] = $DB_site->insert_id(); 
и ЗАМЕНЯЕМ на
PHP код:
        // ########### Хак от Xenon`а по предотвращению двойных сообщений #########
        
$dp_settings = array(
            
'dobump' => true,    // установите это на false, если не желаете, чтобы изменялось время сообщения
            
'timespan' => 3600,    // определяет временной промежуток, в течении которого будет объединение сообщений
            
'spacer' => "\n\n[b]Добавлено через ".vbgmdate('i'time()-$threadinfo['lastpost'], falsefalse)." минут(ы)[/b]\n",    // Что должно быть между старым и новым сообщениями (по умолчанию: "Добавлено через xx минут(ы)")
            
'addeditedby' => false,    // Должно ли добавляться "отредактировано", при объединении
        
);

        
$isdoublepost false;
        if (
$type != 'thread' AND $threadinfo['lastpost'] > TIMENOW $dp_settings['timespan'] AND $threadinfo['lastposter'] == $post['postusername'])
        {
            
// если мы здесь, то у нас 2 сообщения подряд -> проверим получше
            
$doublepost $DB_site->query_first("
                SELECT postid, pagetext, post.title, post.userid, post.attach
                FROM " 
TABLE_PREFIX "post AS post
                LEFT JOIN " 
TABLE_PREFIX "deletionlog AS deletionlog ON(deletionlog.primaryid = post.postid AND type = 'post')
                WHERE threadid = $threadinfo[threadid]
                    AND dateline > " 
. (TIMENOW $dp_settings['timespan']) . "
                    AND visible = 1 AND deletionlog.primaryid IS NULL
                ORDER BY dateline DESC
                LIMIT 1
            "
);

            if (
$doublepost['userid'] == $bbuserinfo['userid'])
            {
                
// у нас действительно 2 сообщения подряд, теперь проверим соответствие правилам
                
$oldmsg $post['message'];
                
$olderrors $errors;

                
$post['message'] = $doublepost['pagetext'] . $dp_settings['spacer'] . $post['message'];
                
verify_post_errors($type$post$errors);
                if (
sizeof($errors) == AND !($vboptions['attachlimit'] AND $totalattachments +  $doublepost['attach'] > $vboptions['attachlimit']))
                {
                    
// всё хорошо - объединяем
                    
$isdoublepost true;
                    
$post['postid'] = $doublepost['postid'];
                }
                else
                {
                    
// что-то не так - оставляем одиночные сообщения
                    
$isdoublepost false;
                    
$post['message'] = $oldmsg;
                }
                unset(
$oldmsg);
                
$errors $olderrors;
                unset(
$olderrors);
            }
        }

        if (
$isdoublepost)
        {
            
// У нас двойное сообщение - удалим индексацию
            
require_once('./includes/functions_databuild.php');
            
delete_post_index($doublepost['postid'], $doublepost['title'], $doublepost['pagetext']);
            unset(
$doublepost);

            
// Обновим БД
            
$DB_site->query("
                UPDATE " 
TABLE_PREFIX "post
                SET pagetext = '" 
addslashes($post['message']) . "',
                " 
iif($dp_settings['dobump'], 'dateline = ' TIMENOW ',''') . "
                attach = attach + $totalattachments
                WHERE postid = $post[postid]
            "
);

            
//Удалим кеш сообщения
            
$DB_site->query("DELETE FROM " TABLE_PREFIX "post_parsed WHERE postid = " $post['postid']);

            if (
$totalattachments OR $dp_settings['dobump'])
            {
                
$DB_site->query("
                    UPDATE " 
TABLE_PREFIX "thread
                    SET " 
iif($dp_settings['dobump'], 'lastpost = ' TIMENOW ',''') . "
                    attach = attach + $totalattachments
                    WHERE threadid = $threadinfo[threadid]
                "
);
            }

            
//Обновим, если изменяется дата сообщения
            
if ($dp_settings['dobump'])
            {
                
$DB_site->query("
                    UPDATE " 
TABLE_PREFIX "forum
                    SET lastpost = " 
TIMENOW ",
                    lastposter = '" 
addslashes($post['postusername']) . "',
                    lastthread = '" 
addslashes($threadinfo['title']) . "',
                    lastthreadid = $threadinfo[threadid],
                    lasticonid = " 
iif($threadinfo['pollid'], -1$threadinfo['iconid']) . "
                    WHERE forumid = $foruminfo[forumid]
                "
);
            }

            
// Добавим "отредактировано", если требуется
            
if ($dp_settings['addeditedby'])
            {
                
$DB_site->query("
                    REPLACE INTO " 
TABLE_PREFIX "editlog (postid, userid, username, dateline, reason)
                    VALUES ($post[postid], $bbuserinfo[userid], '" 
addslashes($bbuserinfo['username']) . "', " TIMENOW ", 'Automerged Doublepost')
                "
);
            }
        }
        else
        {
            
$DB_site->query("
                INSERT INTO " 
TABLE_PREFIX "post
                    (threadid, parentid, title, username, userid, dateline, pagetext, allowsmilie,
                     showsignature, ipaddress, iconid, visible, attach)
                VALUES
                    ($threadinfo[threadid], $parentid, '" 
addslashes($post['title']) . "',
                     '" 
addslashes($post['postusername']) . "', $bbuserinfo[userid], " TIMENOW ",
                     '" 
addslashes($post['message']) . "', $post[enablesmilies], $post[signature],
                     '" 
addslashes($post['ipaddress']) . "', $post[iconid], $post[visible], $totalattachments)
            "
);
            
$post['postid'] = $DB_site->insert_id();
        }
        
// ########### Хак от Xenon`а по предотвращению двойных сообщений ######### 
Теперь ищем
PHP код:
        // ### UPDATE SEARCH INDEX ###
        
require_once('./includes/functions_databuild.php');
        
build_post_index($post['postid'], $foruminfoiif($type == 'thread'10)); 
и НИЖЕ этого добавляем
PHP код:
        // Индексация вложений в двойных сообщениях уже выполнена, поэтому не надо ничего делать
        
if ($isdoublepost)
        {
            return;
        } 
  Ответить с цитированием
Ответ

Закладки

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



 
 

Текущее время: 05:38 23.05.2012. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. Перевод: zCarot