Главная Форум Поиск Пользователи Регистрация Добрый вечер, Гость Вход


Главная


Форум torrenpier который уже живет
это сообщество владельцев форумов на phphBB2, торрент-трекеров на движках torrentpier и SVN всех версий.
Здесь можно найти решение своих проблем на своем сайта.
Здесь можно скачать полезные и нужные моды torrenpier, phpBB2 и svn.
Наш форум - это место для общения и обмена опытом между любителей движков, создателей модов на заказ и владельцев сайтов!
[FULL] Склеивание сообщений  
Начать новую тему   Ответить на тему    Главная -> 1.xx -> Моды (full)
Автор Сообщение
Nicolayka
Зарегистрирован: 2011-02-16
Сообщ.: 89
russia.gif
Сообщение 18-Апр-11 17:26 #1  
Описание: Мод склеивает сообщения одного автора, написанные друг за другом.
SQL запрос:
Код:
ALTER TABLE `bb_posts` ADD `post_editor` VARCHAR(25) NOT NULL;
INSERT INTO `bb_config` VALUES ('join_interval', '18');

Открыть posting.php
Найти:
Код:
  //
  // Submit post/vote (newtopic, edit, reply, etc.)
  //

Добавить после:
Код:
  // double_post eliminate start
  if ( $mode == 'reply' && $userdata['user_id'] != ANONYMOUS )
  {
    $poster_id = $userdata['user_id'];
    $sql = "SELECT post_id, poster_id, post_time, MAX(post_time) FROM " . POSTS_TABLE . " WHERE topic_id = $topic_id GROUP BY post_time ORDER BY post_time DESC LIMIT 1";

    if ( !($result = $db->sql_query($sql)) )
    {
      message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
    }
    $post_id_last_row = $db->sql_fetchrow($result);
    $post_id = $post_id_last_row['post_id'];
    $difference_time = TIMENOW - $post_id_last_row['post_time'];
    $separator = ' \n\n[size=9][color=#999999]' . $lang['ADDED_LATER'] . ' ' . delta_time($post_id_last_row['post_time'], TIMENOW, 'seconds'). ':[/color][/size]\n\n ';

    if ( $post_id_last_row['poster_id'] == $poster_id && $post_info['topic_replies'] >= 1 && ( $difference_time < ( $bb_cfg['join_interval'] * 3600 ) ) )
    {
      $mode = 'editpost';
      $sql = "SELECT post_text, bbcode_uid FROM " . POSTS_TEXT_TABLE . " WHERE post_id = $post_id";
      if ( !($result = $db->sql_query($sql)) )
      {
        message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
      }
      $last_message_row = $db->sql_fetchrow($result);
      $bb_uid = ':' . $last_message_row['bbcode_uid'];

      // i don't know much about parsing the message, so it may well be that, there are some wrongs, anyway all seems to work fine
      $last_message = str_replace($bb_uid, '', $last_message_row['post_text']);
      $last_message = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $last_message);
      $last_message = undo_htmlspecialchars(addslashes($last_message));

    }
  }
  // double_post eliminate end

Найти:
Код:
      $poll_length = ( isset($_POST['poll_length']) && $is_auth['auth_pollcreate'] ) ? $_POST['poll_length'] : '';
      $bbcode_uid = '';

Добавить после:
Код:
      // double_post eliminate start
      if ( !empty($last_message) )
      {
        $message = ( $last_message != $message ) ? $last_message . $separator . $message : $message;
        $added = 1;
      }
      // double_post eliminate end

Найти:
Код:
submit_post($mode, $post_data, $return_message, $return_meta,

В строке найти:
Код:
$poll_length,

После, добавить:
Код:
$added,

Открыть functions_post.php
Найти:
Код:
function submit_post($mode, &$post_data, &$message, &$meta,

В строке найти:
Код:
&$poll_length,

Добавить после:
Код:
&$added,

Найти:
Код:
      if ($last_msg == $post_message)
      {
        message_die(GENERAL_MESSAGE, $lang['DOUBLE_POST_ERROR']);
      }
    }
  }

Добавить после:
Код:
  // double_post eliminate start
  if ( $added && $mode == 'editpost' )
  {
    $sql = "UPDATE " . POSTS_TABLE . " SET post_time = " . $current_time . " WHERE post_id = " . $post_id;
    if ( !($result = $db->sql_query($sql)) )
    {
      message_die(GENERAL_ERROR, 'Could not update last post time', '', __LINE__, __FILE__, $sql);
    }
  }
  // double_post eliminate end

Найти:
Код:
  $edited_sql = ($mode == 'editpost' && !$post_data['last_post'] && $post_data['poster_post']) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1 " : "";

  if ($update_post_time && $mode == 'editpost' && $post_data['last_post'] && !$post_data['first_post'])
  {
    $edited_sql .= ", post_time = $current_time ";
    //lpt
    $result = $db->sql_query("
      UPDATE ". TOPICS_TABLE ." SET
        topic_last_post_time = $current_time
      WHERE topic_id = $topic_id
      LIMIT 1
    ");
  }

Заменить на:
Код:
  $edited_sql = ( $mode == 'editpost' ) ? ", post_edit_time = $current_time, post_edit_count = post_edit_count + 1" : "";
  $edited_sql .= ($edited_sql) ? ", post_editor = '" . $db->escape($userdata['username']) . "'" : '';

  if ($update_post_time && $mode == 'editpost' && $post_data['last_post'] && !$post_data['first_post'])
  {
    $edited_sql .= ", post_time = $current_time ";
    //lpt
    $result = $db->sql_query("
      UPDATE ". TOPICS_TABLE ." SET
        topic_last_post_time = $current_time
      WHERE topic_id = $topic_id
      LIMIT 1
    ");
  }

Открыть lang_main.php
Добавить:
Код:
// double_post eliminate start
$lang['ADDED_LATER'] = 'Добавлено, спустя';
// double_post eliminate end
Вернуться к началу
    
Заголовок новой темы
Форум для новой темы
 
Страница 1 из 1
Показать сообщения:   
Начать новую тему   Ответить на тему    Главная -> 1.xx -> Моды (full) Часовой пояс: GMT + 4

 

Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы
Все материалы сайта представлены только для ознакомления. При копировании материала ссылка на torrentpier-download.ru обязательна!

sitemap     карта форума | Статистика визитов поисковых ботов | Выдача в поисковиках



Powered by phpBB © 2001, 2011 phpBB Group
| ©2011-2024 - Воронеж |


Нравится