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

Ответить
x00peR
Сообщения: 141
Зарегистрирован: 05.03.2011
Скажите, какой чат поставить для движка 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
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.2009
x00peR писал(а):А когда перехожу по chat_install.php, то выдается белый фон и надпись: you did not select a mode
а ты переходи на chat.php

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

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

Аватара пользователя
Distructor
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.2009
x00peR писал(а):НО почему у меня наоборот?
потому что у тебя другой стиль с другими CSS

x00peR
Сообщения: 141
Зарегистрирован: 05.03.2011
А как мне подогнать оформление как на этому форуме?

Аватара пользователя
Distructor
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.2009

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

                           <!-- 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
Сообщения: 141
Зарегистрирован: 05.03.2011
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
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.2009
x00peR писал(а):chat_body без изменения
я копировал как раз из него..

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

x00peR
Сообщения: 141
Зарегистрирован: 05.03.2011
Хотелось бы сделать так: чтобы при нажатии на ник - ник бы появлялся в строке сообщения.
Чтобы цвета ников были согласно легенде.
Чтобы отображались смайлы, а не их коды.
На главной странице написано что чат обновляется каждые 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 КБ • 110 скачиваний

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

x00peR
Сообщения: 141
Зарегистрирован: 05.03.2011
Если ничего не менять, то все работает норм.
Я только chat_body отсюда вставил и все.

Аватара пользователя
Distructor
Администратор
Сообщения: 1606
Зарегистрирован: 28.12.2009
у меня он более старой версии и доработанный "под себя".
просто поправь оформление в стандартном, не заменяя весь код полностью

Ответить