2022-08-25 14:23:36 +03:00
< ? php
class Telegram
{
private static $instance ;
/**Singletone*/
public static function start ()
{
if ( ! isset ( self :: $instance )) {
self :: $instance = new self ();
}
return self :: $instance ;
}
private function send ( $to , $from , $text , $fromType )
{
mysql_query ( 'START TRANSACTION' );
2023-01-10 19:26:14 +02:00
$ins = mysql_query ( " INSERT INTO `telegram` (`uid`,`from`,`fromType`,`text`,`time`) VALUES (' " . $to . " ',' " . $from . " ',' " . $fromType . " ',' " . mysql_real_escape_string ( AddSlashes ( HtmlSpecialChars ( $text , null ))) . " ',' " . time () . " ') " );
2022-08-25 14:23:36 +03:00
mysql_query ( 'COMMIT' );
if ( $ins ) {
return mysql_insert_id ();
}
}
public function readMsg ( $id , $uid )
{
$msg = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `telegram` WHERE `id`="' . $id . '" AND `uid`="' . $uid . '" LIMIT 1 FOR UPDATE' ));
if ( isset ( $msg [ 'id' ])) {
mysql_query ( 'START TRANSACTION' );
$upd = mysql_query ( 'UPDATE `telegram` SET `read`="1" WHERE `id` = "' . $id . '" AND `uid`="' . $uid . '" LIMIT 1' );
mysql_query ( 'COMMIT' );
if ( $upd && $msg [ 'lock' ] == 0 ) {
echo '<script>readGood(' . $id . ',"https://img.new-combats.com/i/misc/read.gif"); nobtext(' . $id . ');</script>' ;
}
}
}
public function lockMsg ( $id , $uid )
{
$msg = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `telegram` WHERE `id`="' . $id . '" AND `uid`="' . $uid . '" LIMIT 1 FOR UPDATE' ));
if ( isset ( $msg [ 'id' ])) {
$lock = [ 0 => 1 , 1 => 0 ];
mysql_query ( 'START TRANSACTION' );
$upd = mysql_query ( 'UPDATE `telegram` SET `read`="1",`lock`="' . $lock [ $msg [ 'lock' ]] . '" WHERE `id` = "' . $id . '" AND `uid`="' . $uid . '" LIMIT 1' );
mysql_query ( 'COMMIT' );
if ( $upd ) {
if ( $lock [ $msg [ 'lock' ]] == 1 ) {
echo '<script>readGood(' . $id . ',"https://img.new-combats.com/i/lock_message.gif"); nobtext(' . $id . ');</script>' ;
} else {
echo '<script>readGood(' . $id . ',"https://img.new-combats.com/i/misc/read.gif");</script>' ;
}
}
}
}
public function deleteMsgAll ( $uid , $pg )
{
mysql_query ( 'START TRANSACTION' );
$upd = mysql_query ( 'UPDATE `telegram` SET `delete`="1" WHERE `uid`="' . $uid . '" AND `read`="1" AND `lock`="0" AND `delete`="0"' );
mysql_query ( 'COMMIT' );
if ( $upd ) {
echo '<script> getPage(' . $pg . ');</script>' ;
}
}
public function deleteMsg ( $id , $uid , $pg )
{
$msg = mysql_fetch_array ( mysql_query ( 'SELECT * FROM `telegram` WHERE `id`="' . $id . '" AND `uid`="' . $uid . '" LIMIT 1 FOR UPDATE' ));
if ( isset ( $msg [ 'id' ])) {
mysql_query ( 'START TRANSACTION' );
$upd = mysql_query ( 'UPDATE `telegram` SET `delete`="1" WHERE `id` = "' . $id . '" AND `uid`="' . $uid . '" LIMIT 1' );
mysql_query ( 'COMMIT' );
if ( $upd && $msg [ 'delete' ] == 0 && $msg [ 'lock' ] == 0 ) {
echo '<script> getPage(' . $pg . ');</script>' ;
}
}
}
private function addMsgTable ( $id , $from , $fromType , $ttl , $time , $lock , $read , $pg )
{
$i1 = '<img id="msgImg' . $id . '" src="https://img.new-combats.com/i/misc/unread.gif">' ;
if ( $read == 1 ) {
$i1 = '<img id="msgImg' . $id . '" src="https://img.new-combats.com/i/misc/read.gif">' ;
}
if ( $lock == 1 ) {
$i1 = '<img id="msgImg' . $id . '" src="https://img.new-combats.com/i/lock_message.gif">' ;
}
if ( $fromType == 1 ) {
2023-01-10 18:29:32 +02:00
$from = '<a href="info/login=' . $from . '" target="_blank" title="Инф. о ' . $from . '">' . $from . '</a>' ;
2022-08-25 14:23:36 +03:00
} elseif ( $read == 0 ) {
$from = '<b id="tablePostTxtB' . $id . '">' . $from . '</b>' ;
}
echo '<table id="tablePost' . $id . '" width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30" class="underLine2"><div align="center">' . $i1 . '</div></td>
<td width="200" id="tablePostTxt' . $id . '" class="underLine2">' . $from . '</td>
2023-01-10 18:29:32 +02:00
<td width="290" class="underLine2"><a onClick="openPost(' . $id . '); return false;" href="#read' . $id . '" title="Прочитать сообщение">' . substr ( $ttl , 0 , 30 ) . '...</a></td>
2022-08-25 14:23:36 +03:00
<td width="120" class="underLine2">' . date ( 'd.m.y H:i' , $time ) . '</td>
2023-01-10 18:29:32 +02:00
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="lockPost(' . $id . ');" title="Блокировка сообщения" src="https://img.new-combats.com/i/locked.gif"></div></td>
<td width="30" class="underLine2"><div align="center"><IMG style="cursor:pointer;" onClick="deletePost(' . $id . ',' . $pg . ');" title="Удалить сообщение" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
2022-08-25 14:23:36 +03:00
</tr>
</table>
<div id="readMSG' . $id . '" style="display:none;" class="unreadMSG">' . $ttl . '</div>' ;
}
public function seeMsg ( $uid , $page , $maxPages )
{
$page = ceil ( $page );
echo '<div id="jx" style="display:none;"></div>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30" class="underLine"><div align="center"></div></td>
2023-01-10 18:29:32 +02:00
<td width="200" class="underLine"><b>От кого</b></td>
<td width="290" class="underLine"><b>Заголовок сообщения</b></td>
<td width="120" class="underLine"><b>Когда</b></td>
<td width="30" class="underLine"><div align="center"><IMG alt="Блокировка сообщений" src="https://img.new-combats.com/i/lock_message.gif"></div></td>
<td width="30" class="underLine"><div align="center"><IMG style="cursor:pointer;" onClick="deletePostAll(' . $page . ');" alt="Удалить все прочитанные сообщения" src="https://img.new-combats.com/i/clear.gif" width="11" height="11"></div></td>
2022-08-25 14:23:36 +03:00
</tr>
</table>' ;
$i = mysql_fetch_array ( mysql_query ( 'SELECT COUNT(*) FROM `telegram` WHERE `uid`="' . $uid . '" AND `delete`="0"' ));
$pg = ceil ( $i [ 0 ] / $maxPages );
if ( $page < 0 ) {
$page = 0 ;
} elseif ( $page > $pg ) {
$page = $pg ;
}
if ( $i [ 0 ] > 0 ) {
$sp = mysql_query ( 'SELECT * FROM `telegram` WHERE `uid`="' . $uid . '" AND `delete`="0" ORDER BY `id` DESC LIMIT ' . (( $page - 1 ) * $maxPages ) . ' , ' . $maxPages . '' );
while ( $pl = mysql_fetch_array ( $sp )) {
$this -> addMsgTable ( $pl [ 'id' ], $pl [ 'from' ], $pl [ 'fromType' ], $pl [ 'text' ], $pl [ 'time' ], $pl [ 'lock' ], $pl [ 'read' ], $page );
}
}
if ( $i [ 0 ] == 0 ) {
2023-01-10 18:29:32 +02:00
echo '<div class="noMsg" align="center">Сообщений нет</div>' ;
2022-08-25 14:23:36 +03:00
} elseif ( $i [ 0 ] > $maxPages ) {
$pages = '' ;
$i = 1 ;
while ( $i <= $pg ) {
$cls = '' ;
if ( $page == $i ) {
$cls = 'style="color:#6f0000; font-size:14px;"' ;
}
$pages .= ' <a ' . $cls . ' onClick="getPage(' . $i . '); return false;" href="#page' . $i . '">' . $i . '</a>' ;
$i ++ ;
}
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30"><div align="center"></div></td>
2023-01-10 18:29:32 +02:00
<td width="200">Страницы: ' . $pages . '</td>
2022-08-25 14:23:36 +03:00
<td width="240"></td>
<td width="170"></td>
<td width="30"></td>
<td width="30"></td>
</tr>
</table>' ;
}
}
public function __clone ()
{
2023-01-10 18:29:32 +02:00
trigger_error ( 'Дублирование не допускается.' , E_USER_ERROR );
2022-08-25 14:23:36 +03:00
}
}