AJAX Chat для phpBB 3.0.9 под стиль CA Gen2

x00peR
Скажите, какой чат поставить для движка 3.0.9.
Ставил ajax chat, который установлен здесь, но он отображается совсем криво.
9a2c1f78f71379b87bd30f9c8f1c0fa0.jpg
Скачивал отсюда http://bb3x.ru/mods/info/32

В инструкции написано:
browse to chat_install.php?mode=install to install the chat database.
Remove the chat_install.php when you are finished
Вот это выполнилось нормально chat_install.php?mode=install

А когда перехожу по chat_install.php, то выдается белый фон и надпись: you did not select a mode

Как мне исправить эту ошибку? Или может есть какая то альтернатива?

-- добавлено 25 фев 2012, 14:29 --

При повторном переходе по chat_install.php?mode=install выдается это
Общая ошибка
SQL ERROR [ mysqli ]

Table 'phpbb_chat' already exists [1050]
-- добавлено 25 фев 2012, 14:54 --

Скачал отсюда http://startrekguide.com/community/view ... 127&t=8675
Выдает это при переходе сюда /adm/index.php.
Общая ошибка
SQL ERROR [ mysqli ]

Table 'phpbb_chat' doesn't exist [1146]
Вернуться к началу

Distructor
Администратор
x00peR писал(а):А когда перехожу по chat_install.php, то выдается белый фон и надпись: you did not select a mode
а ты переходи на chat.php
Вернуться к началу

x00peR
Когда перехожу, то выводится чат как на скрине
9a2c1f78f71379b87bd30f9c8f1c0fa0.jpg
-- добавлено 25 фев 2012, 15:41 --

Я так понимаю чат должен выглядеть вот так: http://startrekguide.com/community/chat.php
НО почему у меня наоборот?
Вернуться к началу

Distructor
Администратор
x00peR писал(а):НО почему у меня наоборот?
потому что у тебя другой стиль с другими CSS
Вернуться к началу

x00peR
А как мне подогнать оформление как на этому форуме?
Вернуться к началу

Distructor
Администратор

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

                           <!-- BEGIN chatrow -->
                                           <li id="p{chatrow.MESSAGE_ID}" class="bg{chatrow.CLASS} row" style="padding:2px 4px;">
                                                       <!-- IF U_ACP or U_MCP -->
                                                           <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">[x]</a>
                                                       <!-- ENDIF -->
                                                           <span class="author" style="color:#bbb; font-size:10px">{chatrow.TIME} </span>
                                                           <span class="author">{chatrow.USERNAME_FULL} </span>
                                                           <span class="content" style="font-weight:normal;"> > {chatrow.MESSAGE}</span>
                                           </li>
                           <!-- END chatrow -->
хотя возможно еще что-то потребуется поменять. давно это было))
Вернуться к началу

x00peR
chat_body исправил и выдалось вот это
Parse error: syntax error, unexpected $end in Z:\home\real.ru\www\cache\tpl_ca-gen2_chat_body.html.php on line 277
277 строка </div>
Убрал и получилось, что вся инфа:
КТО СЕЙЧАС НА ФОРУМЕ
Сейчас посетителей на форуме: 1, из них зарегистрированных: 1, 0 скрытых и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (2) на форуме было 25 фев 2012, 15:12

Стала по центру.

Поставил два
</div>
</div>
И получается что инф вернулась обратно. Но Чат таким же остался.

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

<!-- IF S_GET_CHAT -->
	<!-- IF S_READ or S_ADD -->
		<!-- BEGIN chatrow -->
			<div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
				<div class="inner"><span class="corners-top"><span></span></span>
					<div class="postbody">
						<p class="author">{chatrow.TIME} </p>
						
						<div class="content">{chatrow.MESSAGE}</div>
					</div>
					<dl class="postprofile" id="profile{postrow.POST_ID}">
						<dt>{chatrow.USERNAME_FULL}</dt>
					</dl>
						<!-- IF U_ACP or U_MCP -->
							<ul class="profile-icons postprofile">
								<li class="delete-icon">
									<a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
								</li>
							</ul>
						<!-- ENDIF -->
					<span class="corners-bottom"><span></span></span>
				</div>
			</div>
		<!-- END chatrow -->---{LAST_ID}
		<!-- IF S_WHOISONLINE -->---
			<!-- BEGIN whoisrow -->
				<div>
					<div class="inner">
						<div class="user"><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> : {whoisrow.USERNAME_FULL}</div>
					</div>
				</div>
			<!-- END whoisrow -->---{LAST_TIME}---{DELAY}---{LAST_POST}
		<!-- ENDIF -->
	<!-- ENDIF -->
<!-- ELSE -->
	<!-- IF S_CHAT -->
		<!-- INCLUDE overall_header.html -->
	<!-- ENDIF -->
	<script type="text/javascript">
	<!--
	var fieldname = 'chat';
	var last_time = 0;
	var xmlHttp = http_object();
	var last_id = {LAST_ID};
	var type = 'receive';
	var post_time = {TIME};
	var read_interval = 15000;
	var interval = setInterval('handle_send("read", last_id);', read_interval);

	function handle_send(mode, f)
	{
		if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
		{
			indicator_switch('on');
			type = 'receive';
			param = 'mode=' + mode;	
			param += '&last_id=' + last_id;
			param += '&last_time=' + last_time;			
			param += '&last_post=' + post_time;			
			param += '&read_interval=' + read_interval;			
	
			if (mode == 'add' && document.text.message.value != '')
			{
				type = 'send';
				for(var i = 0; i < f.elements.length; i++)
				{ 
					elem = f.elements[i]; 
					param += '&' + elem.name + '=' + encodeURIComponent(elem.value); 
				}
				document.text.message.value = '';
			}
			else if (mode == 'delete')
			{
				type = 'delete';
				param += '&chat_id=' + f;
			}
			xmlHttp.open("POST", '{FILENAME}', true);
			xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			xmlHttp.onreadystatechange = handle_return;
			xmlHttp.send(param);
		}
	}
	
	function handle_return()
	{
		if (xmlHttp.readyState == 4)
		{
			if (type != 'delete')
			{
				results = xmlHttp.responseText.split('---');
				if (results[1])
				{
					if (last_id == 0)
					{
						document.getElementById(fieldname).innerHTML = results[0];
					}
					else
					{
						document.getElementById(fieldname).innerHTML = results[0] + document.getElementById(fieldname).innerHTML;
					}
					last_id = results[1];
					if (results[2])
					{
						document.getElementById('whois_online').innerHTML = results[2];
						last_time = results[3];
						if (results[4] != read_interval * 1000)
						{
							window.clearInterval(interval);
							read_interval = results[4] * 1000;
							interval = setInterval('handle_send("read", last_id);', read_interval);
							document.getElementById('update_seconds').innerHTML = results[4];
						}
						post_time = results[5];
					}
				}
			}
			indicator_switch('off');
		}
	}
	
	function delete_post(chatid)
	{
		document.getElementById('p' + chatid).style.display = 'none';
		handle_send('delete', chatid);
	}
	
	function indicator_switch(mode)
	{
		if(document.getElementById("act_indicator"))
		{
			var img = document.getElementById("act_indicator");	
			if(img.style.visibility == "hidden" && mode == 'on') 
			{
				img.style.visibility = "visible";
			}
			else if (mode == 'off')
			{
				img.style.visibility = "hidden"
			}	
		}
	}
	
	function http_object()
	{
		if (window.XMLHttpRequest)
		{
			return new XMLHttpRequest();
		}
		else if(window.ActiveXObject)
		{
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
		else
		{
			document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
		}
	}
	-->
	</script>
	<style type="text/css">
	<!--
		#act_indicator {
			visibility:hidden;
		}
		.shouts {
			width: 85%;
			height:300px;
			overflow:auto;
			float:left;
		}
		#chat {
			width: 100%;
			text-align:left;
		}
		.postprofile {
			min-height: 5px !important;
		}
		.chatform {
			width: 90%;
			text-align:center;
		}
		.onlinelist {
			width: 15%;
			overflow:auto;
			height:300px;
		}
		.users {
			width: 90%;
			text-align: left;
			text-indent: 5px;
			margin-left:auto;
			margin-right:auto;
		}
		.user {
			width: 95%;
			font-size: 1.1em;
			font-family:Verdana, Arial, Helvetica, sans-serif;
			line-height: 1.4em;
		}
		#act_indicator {
			visibility: hidden;
		}
		.chatinput {width: 80% !important;}
		.online_img {
			vertical-align:middle;
		}
	-->
	</style>
	<!-- IF S_USER_LOGGED_IN -->
		<div class="forabg">
			<div class="inner">
				<span class="corners-top"><span></span></span>
				<div class="chatform" align="center">			
					<form name="text" id="text" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">
						<strong style="color: white;">{L_MESSAGE}:</strong> <input type="text" tabindex="1" name="message" id="message" class="inputbox chatinput" />
						<input type="submit" class="button1" value="{L_SUBMIT}" name="submit" tabindex="6" accesskey="s"/><br />
					</form>
				</div>
				<span class="corners-bottom"><span></span></span>
			</div>
		</div>
	<!-- ENDIF -->
	<div class="forabg" align="left">
		<div class="inner">
			<span class="corners-top"><span></span></span>
			<div class="shouts">
				<div id="chat">
					<!-- BEGIN chatrow -->
						<div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
							<div class="inner"><span class="corners-top"><span></span></span>
								<div class="postbody">
									<p class="author">{chatrow.TIME} </p>
									
									<div class="content">{chatrow.MESSAGE}</div>
								</div>
								<dl class="postprofile" id="profile{postrow.POST_ID}">
									<dt>{chatrow.USERNAME_FULL}</dt>
								</dl>
									<!-- IF U_ACP or U_MCP -->
										<ul class="profile-icons postprofile">
											<li class="delete-icon">
												<a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
											</li>
										</ul>
									<!-- ENDIF -->
								<span class="corners-bottom"><span></span></span>
							</div>
						</div>
					<!-- END chatrow -->
				</div>
			</div>
			<div class="onlinelist bg1">
				<div class="users" id="whois_online">
					<!-- BEGIN whoisrow -->
						<div>
							<div class="inner">
								<div class="user"><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
							</div>
						</div>
					<!-- END whoisrow -->
				</div>
			</div>
			<span class="corners-bottom"><span></span></span>
		</div>
	</div>
	<div class="forabg" align="center">
		<div class="inner">
			<span class="corners-top"><span></span></span>
			<div class="post">
				<div id="author">{L_DETAILS}
					<img src="{T_IMAGESET_PATH}/act_indicator.gif" id="act_indicator" />
					<strong>• {L_UPDATES} <span id="update_seconds">{DELAY}</span> {L_UNIT}</strong>
				</div>
			</div>
			<span class="corners-bottom"><span></span></span>
		</div>
	</div>
	<!-- IF S_CHAT -->
		<!-- INCLUDE overall_footer.html -->
	<!-- ENDIF -->
<!-- ENDIF -->
chat_body без изменения

-- добавлено 25 фев 2012, 16:56 --

Завтра с утра поставлю заново все форум и попробую поставить еще раз версию отсюда http://startrekguide.com/community/view ... 127&t=8675
И вставить код в него

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

                           <!-- BEGIN chatrow -->
                                           <li id="p{chatrow.MESSAGE_ID}" class="bg{chatrow.CLASS} row" style="padding:2px 4px;">
                                                       <!-- IF U_ACP or U_MCP -->
                                                           <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">[x]</a>
                                                       <!-- ENDIF -->
                                                           <span class="author" style="color:#bbb; font-size:10px">{chatrow.TIME} </span>
                                                           <span class="author">{chatrow.USERNAME_FULL} </span>
                                                           <span class="content" style="font-weight:normal;"> > {chatrow.MESSAGE}</span>
                                           </li>
                           <!-- END chatrow -->
Завтра отпишусь тогда что получилось.

А то я уже запутался где какая версия стоит и где что наменял :(
Вернуться к началу

Distructor
Администратор
x00peR писал(а):chat_body без изменения
я копировал как раз из него..

прикрепил полностью файл chat_body.html, отредактированный мной под стиль CA Gen2
Вложения
chat_body.zip    3.01 КБ • 118 скачиваний
Вернуться к началу

x00peR
Хотелось бы сделать так: чтобы при нажатии на ник - ник бы появлялся в строке сообщения.
Чтобы цвета ников были согласно легенде.
Чтобы отображались смайлы, а не их коды.
На главной странице написано что чат обновляется каждые 5 секунд, на самом деле каждые 15.
При переходе на страничку чата написано что через 15 и обновляется действильно через 15.

И теперь самое главное )))
Если на главной странице написал хоть одно сообщение в чате, то каждые 15 секунд оно появляется снова и снова и флудит весь чат ))))) Уже 400 сообщений )))))

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

-- добавлено 25 фев 2012, 22:37 --

Вот стиль прикрепил свой на всякий случай.

-- добавлено 25 фев 2012, 23:07 --

Нету

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

<link href="{T_THEME_PATH}/large.css" rel="alternate stylesheet" type="text/css" title="A++" />
Есть

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

<link href="{T_THEME_PATH}/print.css" rel="stylesheet" type="text/css" media="print" title="printonly" />
Нету

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

<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>
Есть

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

<li<!-- IF $CA_PAGE == 'faq' --> class="current"<!-- ENDIF -->>
            <a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a>
        </li>

Вот этого вообще нету - я так понял это просто вставка иконки чата и она не собо нужна. А если нужна, то как быть? Куда вставлять эти строки?
Открыть: styles/prosilver/theme/buttons.css
Найти

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

.sitehome, .icon-faq, .icon-members, .icon-home, .icon-ucp, .icon-register, .icon-logout,
Найти в строке

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

.icon-faq,
Добавить в строку перед найденным следующий код

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

.icon-chat, 
Открыть: styles/prosilver/theme/bidi.css
Найти

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

.rtl .sitehome, .rtl .icon-faq, .rtl .icon-members, .rtl .icon-home, .rtl .icon-ucp, .rtl .icon-register, .rtl .icon-logout,
Найти в строке

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

.rtl .icon-faq,
Добавить в строку перед найденным следующий код

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

.rtl .icon-chat, 
Открыть: styles/prosilver/theme/colours.css
Найти

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

.icon-faq						{ background-image: url("{T_THEME_PATH}/images/icon_faq.gif"); }
Добавить перед

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

.icon-chat						{ background-image: url("{T_THEME_PATH}/images/icon_chat.gif"); }

Поставил новый движок и залил туда тему.
Поставил chat_body из этой темы.
Смайлы появляются. Всего остального что описывал выше нету.
А имеено:
Хотелось бы сделать так: чтобы при нажатии на ник - ник бы появлялся в строке сообщения.
Чтобы цвета ников были согласно легенде.
На главной странице написано что чат обновляется каждые 5 секунд, на самом деле каждые 15.
При переходе на страничку чата написано что через 15 и обновляется действильно через 15.

Вот лог чата:
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 1
Это я написал поочереди 1, 2, 3, 4, 5. Выводится непонтяно как.
После обновления страницы выводится так:
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] 1 минуту назад cagen2 > 1
Обновление идет каждые 15 секунд хотя написано что каждые 5.
Ох и головоломка с этим чатом :(

-- добавлено 27 фев 2012, 13:56 --

Можно как то это починить?
Вложения
ca_gen2.zip    237.04 КБ • 118 скачиваний
Вернуться к началу

Distructor
Администратор
если не менять ничего в моде, то сообщения не дублируются?
если не дублируются, то изменяй только оформление не трогая js вставки
Вернуться к началу

x00peR
Если ничего не менять, то все работает норм.
Я только chat_body отсюда вставил и все.
Вернуться к началу

Distructor
Администратор
у меня он более старой версии и доработанный "под себя".
просто поправь оформление в стандартном, не заменяя весь код полностью
Вернуться к началу