Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Rocka Rolla chat by Lstasss

Форум для авторов модов для phpBB 2.0.x.
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Rocka Rolla chat by Lstasss

Сообщение Lstasss »

Чат изначально писался под phpBB, посмотреть можно по ссылке в подписи, ссылка "Чат", логиниться как chat_tester / chat_tester@mail.ru.
Коротко о реализации:
сделан с помощью AJAX-класса JsHttpRequest от Дмитрия Котерова, делалась ставка на удобство использования и экономию трафика. На странице входа можно выбрать цвет (цвета задаются в отдельной таблице в базе, выбор запоминается), для порталоподобных систем есть вариант "Упрощённый интерфейс" (т.е. само окно чата). Можно использовать смайлы и BB-code (b,u,i,s).
Как отдельный мод пока оформления не имеет, если кого заинтересует - сделаю :)
Пока всё, спасибо за внимание.
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 19 лет 9 месяцев
Откуда: Бердск

Сообщение crash »

смысл поста пока не понял.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

написан чат, сынтергированный с phpBB, ссылка где посмотреть, вроде всё понятно :roll:
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 19 лет 9 месяцев
Откуда: Бердск

Сообщение crash »

Lstasss не понятен смысл темы. То что решили сделать рекламу это я понял еще во флуде. Вы хотите чтобы вам помогли? Тогда ладно.
Вы хотите чтобы оценили ваш чат? Тогда стоит подыскат другой раздел
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

crash, то, что мой форум никого из местных пользователей не интересует я понял ещё когда сделал мод браузеров, поэтому на рекламу не рассчитываю :wink:
Мне интересно мнение гуру о моём чате, перспективен ли он в той версии в какой реализован или стоит переписать его.
Помощь тоже нужна (будет), ибо планирую ещё сделать приват.
А кто ходил смотреть? :)
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Lstasss
Здесь сидят програмисты, которым в большинстве случаев всё равно как это выглядит снаружи, они могут оценить только код. А код они не видят.
В любом другом месте вам бы ответили что-нибудь чего вы ждете, но тут - нет кода - нечего оценивать (они же ждут изящества в коде, классическая схема их не встрепенет) - нечего писать. Посмотрите внимательно: часто ли здесь вообще отвечают на вопросы по поводу как сделать что бы лучше выглядело? Очень редко и то это делают дизайнеры или не програмисты. Так что или вы покажете им кусочек кода или они ничего не скажут.

Посмотрите раздел бета версии: самые жаркие дискуссии в темах где мод меняет функционал. Модов которые меняют отображение вообще мало. Посмотрите на раздел Стили - он очень мал по сравнению с остальными разделами.
я люблю daft punk | новый sugoi.ru
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

VVVas писал(а):Здесь сидят програмисты
я знаю :)
Я имел в виду не внешний вид а в принципе скорость работы, качество и т.д.
Код выложу.
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Lstasss писал(а):Я имел в виду не внешний вид а в принципе скорость работы, качество и т.д.
А сие можно оценить только по коду. У кого то инет тормозной и он не заметит что всё лагает...
я люблю daft punk | новый sugoi.ru
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

коды трёх файлов прикреплены, вот четвёртый файл chat_functions.php:

Код: Выделить всё

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
require_once($phpbb_root_path . 'ajax/lib/JsHttpRequest/JsHttpRequest.php');
$JsHttpRequest =& new JsHttpRequest("windows-1251");

$userdata = session_pagestart($user_ip, PAGE_CHAT);
init_userprefs($userdata);

if(!empty($_POST['msg']))
  {
	$msg = htmlspecialchars($_POST['msg']);
	
	if(strstr($msg, '['))
	  {
		$allowed = array('i', 'b', 'u', 's');
		For($i = 0; $i < 4; $i++)
		  {
			$test = '#[' . $allowed[$i] . '](.*?)[/' . $allowed[$i] . ']#';
			if(preg_match($test, $msg))
			  {
				$msg = str_replace('[' . $allowed[$i] . ']', '<' . $allowed[$i] . '>', $msg);
				$msg = str_replace('[/' . $allowed[$i] . ']', '</' . $allowed[$i] . '>', $msg);
			  }
		  }
	  }
	$msg = addslashes(urlencode($msg));
	
	$sql = 'INSERT INTO `' . CHAT_MESSAGES_TABLE . '` ( `user_posted`, `message`, `time_posted` ) VALUES (' . $userdata['user_id'].', "'.$msg.'", '. time(). ')';
	if(!$result=$db->sql_query($sql))
	  {
		print mysql_error();
	  }
	  
  }
if($_POST['get'])
  {
	if( ($userdata['entered_chat'] < time() - 3600) && !$_COOKIE['chat'] )
	  {
		$welcome = 'Welcome to chat, ' . $userdata['username'];
		$time = time() - 60;
		$sql = 'UPDATE `' . SESSIONS_TABLE . '` SET `entered_chat` = ' . $time . ' WHERE `session_user_id` = ' . $userdata['user_id']; // and update sessions table
		if(!$result=$db->sql_query($sql))
		  {
			print mysql_error();
		  }
		$userdata['entered_chat'] = $time;
	  }
	else
	  {
		$welcome = $lang['Posts'];
	  }
	setcookie('chat', TRUE, time() + 30);
	$sql = 'SELECT `m`.*, `u`.`username`, `c`.`color` FROM `' . CHAT_MESSAGES_TABLE . '` m, `' . USERS_TABLE .'` u, `' . COLORS_TABLE . '` c
		WHERE `m`.`user_posted` = `u`.`user_id` AND `c`.`id` = `u`.`text_color` AND ';
	if($_POST['last_msg'])
	  {
		$sql .= ' `m`.`id` > ' . $_POST['last_msg'];
	  }
	else
	  {
		$clean = $_COOKIE['clean'] ? $_COOKIE['clean'] : $userdata['entered_chat'];
		$sql .= ' `m`.`time_posted` > ' . $clean;
	  }
	$sql .= ' ORDER BY `m`.`id` ASC';
	
	if(!$result=$db->sql_query($sql))
	  {
		print mysql_error();
	  }
	else
	  {
		While($row = $db->sql_fetchrow($result))
			$res[] = $row;
			
		$size = count($res);
		$limit = 20;
		$start = ($size > $limit) ? ($size - $limit) : 0;
		
		For($i = $start; $i < $size; $i++)
		  {
			if($prev_user === $res[$i]['username']) // the same user
			  {
				$msg='<span class="genmed">'.smilies_pass(str_replace('&#', '&#', urldecode(stripslashes($res[$i]['message'])))).'</span>';
				$prev_user = 0;
			}
			else
			  {
				$msg='<span class="genmed" style="color: ' . $res[$i]['color'] .'">'.
				smilies_pass(str_replace('&#', '&#', urldecode(stripslashes($res[$i]['message'])))) . '</span>';
				$prev_user = $res[$i]['username'];
			}
			$front .= '<a href=\'javascript:paste("' . $res[$i]['username'] . '");\' title="' . date('i:s', $res[$i]['time_posted']) . '"><b>' . $res[$i]['username'] . 
				'</b></a>  -> <big>' . $msg	 . '</big></span> <br />';
			
		  }
		$last_msg = ($res[$size-1]['id'] > $_POST['last_msg']) ? $res[$size-1]['id'] : $_POST['last_msg'];
		$new_msg = ($res[$size-1]['user_id'] !== $userdata['user_id']) ? TRUE : FALSE;
		
	  }
	  /*	  , 			`u`.`user_chat_ban`,			`u`.`user_level`	  */
	$sql = 'SELECT DISTINCT
			`u`.`username`, 
			`u`.`user_level`,
			`s`.`entered_chat`,
			`u`.`user_id`
		FROM 
			`nepopsisty_users` u,
			`nepopsisty_sessions` s
		WHERE 
			`s`.`session_page` = ' . PAGE_CHAT . '
		AND
			`u`.`user_id` = `s`.`session_user_id`
		AND 
			`s`.`session_time` > ' . (time() - 300 ) . '
		AND 
			`u`.`user_id` > 0 ';
	if( !$result = $db->sql_query($sql))
	  {
		message_die(GENERAL_ERROR, 'Could not query users in chat list', '', __LINE__, __FILE__, $sql);
	  }
	else
	  {
		while ($row = $db->sql_fetchrow($result))
		  {
			$time = ( time() - $row['entered_chat'] );
			$time = round($time / 60);
			if($userdata['user_id'] === $row['user_id'])
				$user_time = sprintf($lang['Chat_you_joined'], $time);
			
			if($row['user_level'] == ADMIN)
				$row['username'] = '<b>' . $row['username'] . '</b>';
			elseif($row['user_level'] == MOD)
				$row['username'] = '<i>' . $row['username'] . '</i>';
			
			$content .= '<a href="profile.php?mode=viewprofile&u=' . $row['user_id'] . '"' . (($userdata['user_id'] !== $row['user_id']) ? (' title="In chat ' . $time . ' minutes"') : '') . '>' . $row['username'] . '</a>';
			/*If( ($userdata['user_level'] > USER ) && ($row['user_level'] = USER) ) 
			  {
				$content .= ' <a class="genmed" href=chatban.php?ban=' . $ban . '&u=' . $row['user_id'] . '>' . $l_ban . '</a>';
				
				If($row['user_chat_ban']) 
				  {
					$ban = 0;
					$l_ban = $lang['chat_user_unban'];
				  }
				Else
				  {
					$ban = 1;
					$l_ban = $lang['chat_user_ban'];
				  }
				 
			  } */
			$content .= '<br /><br />' . "\n\r";
		  }
		$_RESULT = array(
			'msgs' => $front,
			'users' => $content,
			'welcome' => $welcome,
			'user_time' => $user_time,
			'last_msg' => $last_msg,
			'new_msg' => $new_msg);
	  }
  }
if($_POST['clean'])
  {
	setcookie('clean' , time()-20, time() + 3600);
  }

if($_POST['msg'])
  {
	print 'Message ' . $_POST['msg'] . ' was succesfully sent';
  }
?>
У вас нет необходимых прав для просмотра вложений в этом сообщении.
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
VVVas
Former team member
Сообщения: 4463
Стаж: 19 лет 5 месяцев
Поблагодарили: 1 раз

Сообщение VVVas »

Lstasss
Засунуть без переименования всё в один zip/rar очень сложно?
я люблю daft punk | новый sugoi.ru
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

сложнее. давайте по существу, пожалуйста
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
m157y
phpBB 2.0.2
Сообщения: 340
Стаж: 17 лет 8 месяцев

Сообщение m157y »

2 Lstasss
по существу? пожалуйста: много хмтла в коде, не соответствует стилю оформления кода для phpBB, использование $_POST, вместо положенного $HTTP_POST_VARS... ну это так сходу по портянке...
Помните на форуме демократии нету, все делается так как вздумается администрации и правым быть вы не можете..
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

m157y писал(а):2 Lstasss
много хмтла в коде
в файле chat_functions? там по-другому никак
а почему я должен использовать $HTTP_POST_VARS вместо $_POST если это одно и то же, а места занимает больше? тем более, что $HTTP_*_VARS в РНР 6 отключат.
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:
Аватара пользователя
m157y
phpBB 2.0.2
Сообщения: 340
Стаж: 17 лет 8 месяцев

Сообщение m157y »

кстати, в плюс заметил, что там есть не переводимые строки...

Код: Выделить всё

$content .= '<a href="profile.php?mode=viewprofile&u=' . $row['user_id'] . '"' . (($userdata['user_id'] !== $row['user_id']) ? (' title="In chat ' . $time . ' minutes"') : '') . '>' . $row['username'] . '</a>';
во-первых, где append_sid, либо sid=' . $userdata['session_id']?
почему тут в тайтле in chat ... minutes, это должно быть, например, sprintf($lang['in_chat_munites'], $time)
обилие хтмла, тоже выносимо... например, аналогично bbcode.tpl..
Помните на форуме демократии нету, все делается так как вздумается администрации и правым быть вы не можете..
Lstasss
phpBB 1.4.4
Сообщения: 166
Стаж: 17 лет 6 месяцев
Откуда: Варшава (Польша) / Кишинёв (Молдова)

Сообщение Lstasss »

во-первых, где append_sid, либо sid=' . $userdata['session_id']?
срезано для сокращения передаваемых данных.
почему тут в тайтле in chat ... minutes, это должно быть, например, sprintf($lang['in_chat_munites'], $time)
там же значение ... через JavaScript изменяется.
обожаю строку "EoM" :D
http://nepopsisty.net/forum.php - форум НЕпопсистов :twisted:

Вернуться в «Для авторов (phpBB 2.0.x)»