Перейти к контенту

[1.x.x]Админ и приватные сообщения


Рекомендуемые сообщения

Название: Админ и приватные сообщения

Добавил: GRINGO

Добавлен: 19 Мар 2003

Обновлен: 19 Мар 2003

Категория: IP.Board 1.x.x

 

Автор хака :: bokhalifa

 

Администратор может читать персональные сообщения пользователей.

 

Для Invision Board v.1.1

Позволяет администраторам читать персональные сообщения пользователей.

Это может быть полезно для того, чтобы проверить массовые сообщения или пресечь злоупотребление приватными сообщениями.

Думаю, что каждый Admin может сделать это через PHPMmyAdmin,

но, почему же не сделать это немного более удобнее ...?

Что делает эту модификация:

В Admin-панели Аdmin может взглянуть на последние 50 персональных сообщений.

 

Нажмите здесь, чтобы скачать файл

Ссылка на комментарий
Поделиться на других сайтах

Matrix

Я знаю, там когда открываешь файл инструкции в самом верху всё стоит:D

Ссылка на комментарий
Поделиться на других сайтах

В хаке написано:

 

Найдите:

$DESC = array (
     0 => "Get IPS latest news, documentation, request support, purchase extra services and more...",
     1 => "Edit forum settings such as cookie paths, security features, posting abilities, etc",
     2 => "Create, edit, remove and re-order categories, forums and moderators",
     3 => "Edit, register, remove and ban members. Set up member titles and ranks. Manage User Groups and moderated registrations",
     4 => "Manage Help Files, Bad Word Filters and Emoticons",
     5 => "Manage templates, skins, colours and images.",
     6 => "Manage language sets",
     7 => "Get registration and posting statistics",
     8 => "Manage your SQL database; repair, optimize and export data",
    );



Замените на:

$PAGES[9]=array(
	 1 => array( 'Member PM', 'act=mpmess'    ),
           );
$CATS[9] = 'PM пользователей';
$DESC[9] = 'Управление PM';

 

 

ИМХО лучше просто ДОПИСАТЬ код, а не заменять. так как пропадают все описания разделов...

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Народ, а действительно, как заставить хак показывать более 50ти мессаг, ведь в базе данных хранятся все сообщения...

 

Добавленно:

Сори, погорячился сразу задавать вопрос не разобравшись с ad_mpmess.php .

Находим строку 212

$result1 = $DB->query("SELECT * FROM ibf_messages ORDER BY msg_id DESC LIMIT 0,50");

и соответственно заменяем значение 50 на желаемое. Вот и всё :D

Ссылка на комментарий
Поделиться на других сайтах

  • 9 месяцев спустя...

1.3 от 1.2 вообще мало чем отличается поэтому с вероятностью 90% для 1.3 подойдёт любой хак, сделанный для 1.2

В крайнем случае придётся что-нибудь изменить, но эти изменения будут очень не существенны.

Ссылка на комментарий
Поделиться на других сайтах

Вот интересно сильно ли бы побили админа ;) , еслиб узнади что читает PM пользоваьтелей? :D
Ссылка на комментарий
Поделиться на других сайтах

Могу сказать, что мы взяли оригинальный мод Bokhalifa для v1.3 Final перевели.

 

Основной перевод был для файла ad_mpmass.php (остальное - мелочи)

 

<?php
/*
+--------------------------------------------------------------------------
|   Admin PM v1.2 Final 
|   =======================================================
|   by Bokhalifa
|   (c) 2003 Bokhalifa
|   http://www.ibplanet.com ::: http://www.ib4arab.com
|   ========================================================
|   Web: http://www.ib4arab.com
|   Email: bokhalifa@ib4arab.com
+---------------------------------------------------------------------------
|
|   > Module written by Bokhalifa
|   > Date started: 11 sep 2002
|   > Date UPDATE : 12  12  2003
+--------------------------------------------------------------------------
*/

$idx = new ad_mpmess();

class ad_mpmess {
var $base_url;
var $colours = array();
    var $parser     = ""; 

function ad_mpmess() 
    {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;

  //---------------------------------------
  // Kill globals - globals bad, Homer good.
  //---------------------------------------
  
  $tmp_in = array_merge( $_GET, $_POST, $_COOKIE );
  
  foreach ( $tmp_in as $k => $v )
  {
  	unset($$k);
  }

  // Make sure we're a root admin, or else!
  
  if ($MEMBER['mgroup'] != $INFO['admin_group'])
  {
  	$ADMIN->error("Sorry, these functions are for the root admin group only");
  }
  
  //---------------------------------------
  switch($IN['code']) {
  	case 'search':
    $this->do_search();
    break;
  	case 'boview':
    $this->do_view_search();
    break;
  	case 'views':
    $this->messages_views();
    break;
  	case 'messages_remove':
    $this->messages_remove();
    break;
  	case 'edit':
    $this->messages_show_form('edit');
    break;
  	case 'messages_edit':
    $this->messages_edit();
    break;
  	case 'search_mem':
    $this->search_mem();
    break;
  	case 'view':
    $this->do_view_messages();
    break;
  	case 'details':
    $this->do_view_details();
    break;
  	case 'Remove':
    $this->remove_entries();
    break;
  	default:
    $this->manageMods();
    break;
  }
}

//---------------------------------------------
// Remove row(s)
//---------------------------------------------

function remove_entries()
{
  global $IN, $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
  
  if ( $IN['type'] == 'all' )
  {
  	$DB->query("DELETE FROM ibf_messages");
  }
  
  $ADMIN->save_log("Удалено ".count($msg_id)." ЛС Участника");
  
  $std->boink_it($ADMIN->base_url."&act=mpmess");
  exit();


}




function do_view_details() {
  global $ibforums, $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;

  require ROOT_PATH."sources/lib/post_parser.php";
  
  $parser = new post_parser();

  $ADMIN->page_title = "View Message Details";
  $ADMIN->page_detail = "Here you can view the actual message as well as the rest of the details.";

  if ($IN['mid'] == "") {
  	$ADMIN->error("You must specify a valid message id.  Please go back and try again.");
  }

  $mid = $IN['mid'];
  $query = "SELECT ms.recipient_id, ms.from_id, ms.msg_date, ms.title, ms.message, m.name as recipient_name,    m2.name as sender 
      FROM ibf_messages ms LEFT JOIN ibf_members m ON(m.id=recipient_id) LEFT JOIN ibf_members m2 ON(m2.id=ms.from_id) 
      WHERE ms.msg_id=$mid";

  $SKIN->td_header[] = array( "message"  , "40%" );

  $DB->query($query);

  while($r = $DB->fetch_row()) {


        $r['msg_date'] = date("Y-m-d H:i:s", $r['msg_date']);
        if ($r['read_state']== 1) {

         $mr['read_m'] =  "<br><font color='#FF0000'><b>Это сообщение прочитано</b></font>";
          }
          else {
          $mr['read_m'] = "<br><font color='#FF0000'><b>Это сообщение НЕ прочитано</b></font>";
           }

  $ADMIN->html .= $SKIN->start_table( "read messages title {$r['title']} <b>To</b> {$r['recipient_name']} <b>From</b> {$r['sender']}" );
  $ADMIN->html .= $SKIN->add_td_basic("<center><b>Date</b> {$r['msg_date']}</center>");
  $ADMIN->html .= $SKIN->add_td_basic("<center><b>Messege read stats</b> {$mr['read_m']}</center>");
  
  $r['message'] = $parser->convert( array ('TEXT'      => $r['message'],
            	'SMILIES'   => 1,
            	'CODE'      => 1,
            	'HTML'      => 0,
             )       );


     $ADMIN->html .= $SKIN->add_td_row( array("<b><center>".stripslashes($r['message'])."</b></center>",
             )      );
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess&code=messages_remove&msg_id={$r['msg_id']}'>Удалить</a></center>");
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess&code=edit&msg_id={$r['msg_id']}'>Редактировать</a>", "center" );
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess'>Просмотреть все</a>", "center" );
  }

  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участников (Показать все)' );
  $ADMIN->output();

}


function do_view_messages() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;

  $IN['USER_NAME'] = trim(urldecode($IN['USER_NAME']));
  $IN['searchs'] = trim(urldecode($IN['searchs']));
  $this->vid = trim(urldecode($IN['searchf']));

  if ($IN['USER_NAME'] == "") {
  	$ADMIN->error("Please choose a member name.");
  }
  
  $rq = "name LIKE'" . $IN['USER_NAME'] . "%'";
  
  $query = "SELECT m.id AS memid
      FROM ibf_members m
      WHERE $rq";
  $DB->query($query);
  $id = $DB->fetch_row();
  $memid = $id['memid'];


  $st = intval($IN['st']) != "" ? intval($IN['st']) : 0;
  
  if ($IN['searchs'] == "sentto") {

  	$query = "SELECT ms.msg_id, ms.msg_date, ms.title, m.name as recipient_name, m2.name as sender 
      FROM ibf_messages ms LEFT JOIN ibf_members m ON(m.id=recipient_id) LEFT JOIN ibf_members m2 ON(m2.id=ms.from_id)
      WHERE recipient_id=$memid AND vid='"  .$this->vid . "'
      ORDER BY ms.msg_id LIMIT $st,25";
  } else {
  	$query = "SELECT ms.msg_id, ms.msg_date, ms.title, m.name as recipient_name, m2.name as sender
      FROM ibf_messages ms LEFT JOIN ibf_members m ON(m.id=recipient_id) LEFT JOIN ibf_members m2 ON(m2.id=ms.from_id)
      WHERE from_id=$memid AND vid='" . $this->vid . "'
      ORDER BY ms.msg_id LIMIT $st,25";
  }


  // Check to see if the query returned any results and if it did, see how many.
  if ($IN['searchs'] == "sentto") {
  	$DB->query("SELECT count(ms.msg_id) as count FROM ibf_messages ms WHERE recipient_id=$memid AND vid='". $this->vid ."'");
  } else {
  	$DB->query("SELECT count(ms.msg_id) as count FROM ibf_messages ms WHERE from_id=$memid AND vid='". $this->vid ."'");
  }

  $count = $DB->fetch_row();

  if ($count['count'] < 1) {
  	$ADMIN->error("Your search query did not return any matches. Please go back and try again.");
  }

  $ADMIN->page_title = "Your Message Search Results";
  
  $ADMIN->page_detail = "Результаты поиска.";
  
  $pq = "&USER_NAME=" . urlencode($IN['USER_NAME']) . "&searchs=" . urlencode($IN['searchs']) . "&searchf=" . urlencode($this->vid);

  $pages = $std->build_pagelinks( array( 'TOTAL_POSS'  => $count['count'],
              'PER_PAGE'    => 25,
              'CUR_ST_VAL'  => $IN['st'],
              'L_SINGLE'    => "Single Page",
              'L_MULTI'     => "Multi Page",
              'BASE_URL'    => $SKIN->base_url."&act=mpmess&code={$IN['code']}".$pq,
            )
           );

  $SKIN->td_header[] = array( "Число"     , "15%" );
  $SKIN->td_header[] = array( "Кому"     , "15%" );
  $SKIN->td_header[] = array( "От кого"         , "15%" );
  $SKIN->td_header[] = array( "Заголовок"     , "40%" );
  $SKIN->td_header[] = array( "Детали"      , "15%" );

  $ADMIN->html .= $SKIN->start_table("{$count['count']} Search Result(s)");

  $DB->query($query);

  while($r = $DB->fetch_row()) {
  	$ADMIN->html .= $SKIN->add_td_row(array("<center>".$std->get_date($r['msg_date'], 'LONG') . "</center>",
              "<center>" . $r['recipient_name'] . "</center>",
              "<center>" . $r['sender'] . "</center>",
              "<center>" . $r['title'] . "</center>",
              "<center><a href='{$SKIN->base_url}&act=mpmess&code=details&mid={$r['msg_id']}' title='Click for details'>Click for details</a></center>"
          	)      );
  }

  $ADMIN->html .= $SKIN->add_td_basic($pages, 'right', 'catrow');
  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участников (Показать все)' );
  $ADMIN->output();
}



function search_mem() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;        	

  $ADMIN->page_title = 'Просмотр сообщений Участника';
  $ADMIN->page_detail = 'Поиск сообщений Участника.';

  $ADMIN->html .= $SKIN->start_form(array( 1 => array( 'code'  , 'view'),
             2 => array( 'act'   , 'mpmess'),
              )      );
    
  $SKIN->td_header[] = array( " "  , "40%" );
  $SKIN->td_header[] = array( " "  , "60%" );
  
  
  $ADMIN->html .= $SKIN->start_table("Поиск сообщений Участника");
  
              
  $ADMIN->html .= $SKIN->add_td_row( array("<b>Укажите НИК Участника, сообщения которого Вы хотите найти:</b>", 
              $SKIN->form_input("USER_NAME")
           )  );

  $ADMIN->html .= $SKIN->add_td_row(array("<b>Выберите вид Поиска, который вы хотите использовать:</b>",
              $SKIN->form_dropdown("searchs", 
                    array(
                  	0 => array('sentto', 'ЛС, отправленные Участнику'),
                  	1 => array('receivedfrom', 'ЛС, полученные от Участника')
                  	)
                   )
            )
           );

  $ADMIN->html .= $SKIN->add_td_row(array("<b>Выберите папку, в которой Вы хотите провести Поиск:</b>",
              $SKIN->form_dropdown("searchf", 
                    array(
                  	0 => array('in', 'Входящие'),
                  	1 => array('sent', 'Исходящие')
                  	)
                   )
            )
           );
              
  $ADMIN->html .= $SKIN->end_form("Найденные сообщения");
           
  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участников (Показать все)' );
  $ADMIN->output();
}

//+---------------------------------------------------------------------------------
//
// read messages
//
//+---------------------------------------------------------------------------------


function messages_views() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
  $ADMIN->page_detail = "<br><br> Название Мода : <b>Admin  PM v1.2 Final </b> Author: Bokhalifa";
  $ADMIN->page_title  = "Управление ЛС Участников";

  if ($IN['msg_id'] == "")
  {
  	$ADMIN->error("You must pass a valid Modification id");
  }

  $SKIN->td_header[] = array( "message"  , "40%" );



  	$DB->query("SELECT * FROM ibf_messages WHERE msg_id='".$IN['msg_id']."'");
  if ( $DB->get_num_rows() ) {
  	while ( $r = $DB->fetch_row() ) {
        $r['msg_date'] = date("Y-m-d H:i:s", $r['msg_date']);
        if ($r['read_state']== 1) {

         $mr['read_m'] =  "<br><font color='#FF0000'><b>Это сообщение прочитано</b></font>";
          }
          else {
          $mr['read_m'] = "<br><font color='#FF0000'><b>Это сообщение НЕ прочитано</b></font>";
           }

  $ADMIN->html .= $SKIN->start_table( "Читать заголовки ЛС {$r['title']}" );
  $ADMIN->html .= $SKIN->add_td_basic("<center><b>Число</b> {$r['msg_date']}</center>");
  $ADMIN->html .= $SKIN->add_td_basic("<center><b>Статистика прочитанных ЛС</b> {$mr['read_m']}</center>");


  require ROOT_PATH."sources/lib/post_parser.php";
  
  $parser = new post_parser();
  
  $r['message'] = $parser->convert( array ('TEXT'      => $r['message'],
            	'SMILIES'   => 1,
            	'CODE'      => 1,
            	'HTML'      => 0,
             )       );


     $ADMIN->html .= $SKIN->add_td_row( array("<b><center>".stripslashes($r['message'])."</b></center>",
             )      );
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess&code=messages_remove&msg_id={$r['msg_id']}'>Удалить</a></center>");
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess&code=edit&msg_id={$r['msg_id']}'>Редактировать</a>", "center" );
  $ADMIN->html .= $SKIN->add_td_basic("<center><a href='{$ADMIN->base_url}&act=mpmess'>Просмотреть все</a>", "center" );

  	}

  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участников (Показать все)' );
  $ADMIN->output();

}
}


//+---------------------------------------------------------------------------------
//
//  edit
//
//+---------------------------------------------------------------------------------


function do_view_search() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;


  $IN['userna'] = trim(urldecode($IN['userna']));


  if ($IN['userna'] == "") {
  	$ADMIN->error("Пожалуйста выберите НИК Участника.");
  }
  
  $ADMIN->page_detail = "<br><br> Название Мода : <b>Admin PM v1.2 Final </b> Author: Bokhalifa";
  $ADMIN->page_title  = "Управление ЛС Участников";





  $SKIN->td_header[] = array( "Заголовок сообщения"  , "20%" );
  $SKIN->td_header[] = array( "От кого"  , "10%" );
  $SKIN->td_header[] = array( "Кому"  , "10%" );
  $SKIN->td_header[] = array( "просмотры"   , "10%" );
  $ADMIN->html .= $SKIN->start_table( "ЛС Участника" );
  $ADMIN->html .= $SKIN->add_td_basic($links, 'center', 'catrow');
        $result1 = $DB->query("SELECT * FROM ibf_messages ORDER BY msg_id DESC LIMIT $start, 10");
        while($result1r=$DB->fetch_row($result1)) {
        $msg_id = $result1r['msg_id'];
        $title = $result1r['title'];
        $from_id = $result1r['from_id'];
        $recipient_id = $result1r['recipient_id'];
        $usernamen2 = $DB->query("SELECT * FROM ibf_members WHERE id='".$result1r['recipient_id']."'ORDER BY name");
        while($usernamen2r=$DB->fetch_row($usernamen2)) {
        $userin = $usernamen2r['name'];
        $usernid = $usernamen2r['id'];
        }
        $usernamen = $DB->query("SELECT * FROM ibf_members WHERE id='".$result1r['from_id']."'ORDER BY name");
        while($usernamenr=$DB->fetch_row($usernamen)) {
        $userna = $usernamenr['name'];
        $userid = $usernamenr['id'];
        }

     $ADMIN->html .= $SKIN->add_td_row( array(         "<b><center>".stripslashes($title)."</b></center>",
                                                          "<b><center><a style='font-size:12px' title='Просмотреть Профиль этого Участника' href='{$INFO['board_url']}/index.{$INFO['php_ext']}?act=Profile&MID=$userid' target='blank'>$userna</a></b></center>",
                                                          "<b><center><a style='font-size:12px' title='Просмотреть Профиль этого Участника' href='{$INFO['board_url']}/index.{$INFO['php_ext']}?act=Profile&MID=$usernid' target='blank'>$userin</a></b></center>",
                "<center><a href='{$ADMIN->base_url}&act=mpmess&code=views&msg_id={$msg_id}'>views</a></center>",
             )      );

  	}
  $ADMIN->html .= $SKIN->add_td_basic($links, 'center', 'tdtop');
  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участника (Показать все)' );
  $ADMIN->output();
}


//+---------------------------------------------------------------------------------
//
//  edit
//
//+---------------------------------------------------------------------------------

function messages_show_form() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
  $ADMIN->page_detail = "Вы можете добавить/изменить и добавить Модификации ниже.";
  $ADMIN->page_title  = "Управление статистикой модификаций";
  

  require ROOT_PATH."sources/lib/post_parser.php";
  
  $parser = new post_parser();


  	$DB->query("SELECT * FROM ibf_messages WHERE msg_id='".$IN['msg_id']."'");
  	if ( ! $r = $DB->fetch_row() ) {
    $ADMIN->error("Мы не можем найти модификацию в БД");
  	}

  $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code'      , 'messages_edit'    ),
              2 => array( 'act'       , 'mpmess'     ),
              3 => array( 'msg_id'    , $IN['msg_id']     ),
              )      );

  $SKIN->td_header[] = array( " "  , "20%" );
  $SKIN->td_header[] = array( " "  , "80%" );

  $ADMIN->html .= $SKIN->start_table( "Правка данного сообщения {$r['title']}" );


  $ADMIN->html .= $SKIN->add_td_row( array( "<b>заголовок</b>",
              $SKIN->form_input('title'  , stripslashes($r['title']) ),
           )      );

  $ADMIN->html .= $SKIN->add_td_row( array( "<b>сообщения</b>",
              $SKIN->form_textarea('message', stripslashes($r['message']) ),
           )      );

          
  $ADMIN->html .= $SKIN->end_form("Обновить");
           
  $ADMIN->html .= $SKIN->end_table();
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участника (Показать Все)' );

  $ADMIN->output();

}
//+---------------------------------------------------------------------------------
//
// Save changes to DB
//
//+---------------------------------------------------------------------------------

function messages_edit() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP, $HTTP_POST_VARS;
  if ($IN['msg_id'] == "") {
  	$ADMIN->error("You must pass a valid msg_id!");
  }

  $title = preg_replace( "/\n/", "<br>", stripslashes($HTTP_POST_VARS['title'] ) );
  $db_string = $DB->compile_db_update_string( array (
              	'title'       => $title,
              	'message'      => str_replace( "\n", "<br>", stripslashes($HTTP_POST_VARS['message']) ),
              )       );
              
  $DB->query("UPDATE ibf_messages SET $db_string WHERE msg_id='".$IN['msg_id']."'");
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участника (Показать все)' );
  $std->boink_it($ADMIN->base_url."&act=mpmess");
  exit();

  
}

//+---------------------------------------------------------------------------------
//
// search
//
//+---------------------------------------------------------------------------------

function do_search() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;        	

  $ADMIN->page_title = 'Просмотр Сообщений Участника';
  $ADMIN->page_detail = 'Поиск сообщений этого Участника.';

  $ADMIN->html .= $SKIN->start_form(array( 1 => array( 'code'  , 'boview'),
             2 => array( 'act'   , 'mpmess'),
              )      );
    
  //+-------------------------------
  
  $SKIN->td_header[] = array( " "  , "40%" );
  $SKIN->td_header[] = array( " "  , "60%" );
  
  //+-------------------------------
  
  $ADMIN->html .= $SKIN->start_table( "Быстрый поиск Участника" );
  
              
  $ADMIN->html .= $SKIN->add_td_row( array( "<b>Укажите полный Ник или часть НИКа Участника</b>" ,
              $SKIN->form_input( "userna" )
              )      );
              
  $ADMIN->html .= $SKIN->end_form("Найти Участника");
           
  $ADMIN->html .= $SKIN->end_table();
  
  $ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участника (Показать все)' );
  $ADMIN->output();
}
//+---------------------------------------------------------------------------------
//
// Delete
//
//+---------------------------------------------------------------------------------

function messages_remove() {
  global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
  if ($IN['msg_id'] == "") {
  	$ADMIN->error("Вы должны использовать правильное ID!");
  }


  $DB->query("DELETE FROM ibf_messages WHERE msg_id='".$IN['msg_id']."'");
  $std->boink_it($ADMIN->base_url."&act=mpmess");
  exit();

}


//+---------------------------------------------------------------------------------
//
// Show "Management" Screen
//
//+---------------------------------------------------------------------------------


    function manageMods() {
    	global $IN,  $INFO, $DB, $SKIN, $ADMIN, $std, $MEMBER, $GROUP;
  	
    	$start = $IN['st'] ? $IN['st'] : 0;
    	$ADMIN->page_detail = "<br><br> Название Мода : <b> Admin PM v1.2 Final (Jerbal modified) </b> Author: Bokhalifa";
    	$ADMIN->page_title  = "Управление ЛС Участника";
  	
      $query = "&act=mpmess";
      $DB->query("SELECT COUNT(msg_id) as count FROM ibf_messages");
      $row = $DB->fetch_row();
  	
      $row_count = $row['count'];
  	
  	
  	
    	$links = $std->build_pagelinks( array( 'TOTAL_POSS'  => $row_count,
                 'PER_PAGE'    => 50,
                 'CUR_ST_VAL'  => $start,
                 'L_SINGLE'    => "На одной странице",
                 'L_MULTI'     => "Страницы: ",
                 'BASE_URL'    => $ADMIN->base_url.$query,
               )
              );
  	
    $ADMIN->html .= $SKIN->start_form( array( 1 => array( 'code'  , 'remove'     ),
                2 => array( 'act'   , 'mpmess'       ),
                 )      );
  	
    	$SKIN->td_header[] = array( "Просмотрены"  , "5%" );
    	$SKIN->td_header[] = array( "Заголовок Сообщения"  , "20%" );
    	$SKIN->td_header[] = array( "От кого"  , "10%" );
    	$SKIN->td_header[] = array( "Кому"  , "10%" );
    	$SKIN->td_header[] = array( "(отслежено)"   , "5%" );
    	$SKIN->td_header[] = array( "Удалить"         , "5%" );
  	
    	$ADMIN->html .= $SKIN->start_table( "ЛС Участника" );
    	$ADMIN->html .= $SKIN->add_td_basic($links, 'center', 'catrow');
           $result1 = $DB->query("SELECT * FROM ibf_messages ORDER BY msg_id DESC LIMIT $start, 50");
           while($result1r=$DB->fetch_row($result1)) {
           $msg_id = $result1r['msg_id'];
           $title = $result1r['title'];
           $from_id = $result1r['from_id'];
           $recipient_id = $result1r['recipient_id'];
           $usernamen2 = $DB->query("SELECT * FROM ibf_members WHERE id='".$result1r['recipient_id']."'ORDER BY name");
           while($usernamen2r=$DB->fetch_row($usernamen2)) {
           $userin = $usernamen2r['name'];
           $usernid = $usernamen2r['id'];
           }
           $usernamen = $DB->query("SELECT * FROM ibf_members WHERE id='".$result1r['from_id']."'ORDER BY name");
           while($usernamenr=$DB->fetch_row($usernamen)) {
           $userna = $usernamenr['name'];
           $userid = $usernamenr['id'];
           if ($result1r['read_state']==1){
           $hasread="<font color=red>¤</font> ";
           }else{
           $hasread=" ";}
  	
  	
           if ($result1r['tracking']==1){
             $istracked="(<font color=blue>¤</font>) ";
           }else{ $istracked="( ) ";}
  	
           }
  	
        $ADMIN->html .= $SKIN->add_td_row( array(         "<b><center>".$hasread."</a></b></center>",
                      "<b><center><a href='{$ADMIN->base_url}&act=mpmess&code=views&msg_id={$msg_id}'>".stripslashes($title)."</a></b></center>",
                                                             "<b><center><a style='font-size:12px' title='View this members profile' href='{$INFO['board_url']}/index.{$INFO['php_ext']}?act=Profile&MID=$userid' target='blank'>$userna</a></b></center>",
                                                             "<b><center><a style='font-size:12px' title='View this members profile' href='{$INFO['board_url']}/index.{$INFO['php_ext']}?act=Profile&MID=$usernid' target='blank'>$userin</a></b></center>",
                   "<center>".$istracked."</center>",
                   "<center><a href='{$ADMIN->base_url}&act=mpmess&code=messages_remove&msg_id={$msg_id}'>Удалить</a></center>",
                )      );
  	
      }
    	$ADMIN->html .= $SKIN->add_td_basic('<div style="float:left;width:auto"><input type="submit" value="Удалить отмеченные" id="button" /> <input type="checkbox" id="checkbox" name="type" value="all" /> Удалить все?</div><div align="right">'.$links.'</div></form>', 'left', 'pformstrip');
    	$ADMIN->html .= $SKIN->end_table();
    	$ADMIN->nav[] = array( 'act=mpmess', 'ЛС Участника (Показать все)' );
  	
  	
    	$ADMIN->output();
    }
  	}
  	
  	
?>

 

Все работает корректно! Нет глюков, все читается, ничего не пропадает. Все модификации проодили из его хака, переведя в нужных местах.

 

Добавлено в [mergetime]1076901137[/mergetime]

Terabyte

в оригинальном хаке нет накладок (мы дали номер 15 и все встало ниже администрирования Архива)

Ссылка на комментарий
Поделиться на других сайтах

вообще то, читать чужие ПМки некрасиво. это на счет раз, а на счет два - зачем изобретать велосипед, когда при минимальном знании сиквела можно самому читать и не только последние 50 сообщений, а все...
Ссылка на комментарий
Поделиться на других сайтах

Z

во первых мы их не читаем! Мы друг другу доверяем - зачем же читать... Но, при необходимсти, с спорных ситуациях - можем. :D

 

Зачем? Это для экстренных ситуаций и все продуманно. Нас устраивает.

Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.