Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 2011-01-07 16:42 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
Выкладываю чат автором обновления которого является GliX админ с торрентпир.

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

Сейчас выложу весь чат полностью скопировав текст от GliX, дальше будем продолжать с аддонами к нему




По многочисленным просьбам выкладываю оптимизированную версию мода Мини-чат / Shoutbox. Так как версия выкладывается в публичный доступ и уже сегодня гарантированно появится на левых форумах "правильной техподдержки" - модификация выкладывается по принципу "as is" - т.е. я не буду оказывать поддержку по установке дополнительного программного обеспечения, которое может потребоваться для работы модификации. Помимо этого, это станет единственным "входным барьером" для установки этого мода только на выделенные серверы (ну или в крайнем случае VPS), т.е. там, где нагрузка действительно достаточно высока.

Чат тестировался на ресурсе со средним онлайном 600 человек, в пиках до 900 и он справлялся со всеми испытаниями весьма достойно, в любом случае MySQL больше не загибался из-за превышения кол-ва одновременных запросов к БД.

Принцип работы чата: при отправке сообщения пользователем генерируется кеш, помещаемый в memcache, из которого собственно и производится вывод содержимого чата.

Особенности:
  • Использование memcache в кач-ве хранилища для заранее полученного массива сообщений из БД
  • Использование AJAX для удаления сообщений написанных в чате
  • Использование БД только для хранения массива сообщений, который будет выводиться в чат
  • Для собственно отображения чата не используется ни одного запроса в базу
  • Поддержка смайликов, отсутствие поддержки бб-кодов

Системные требования: входим в администраторскую панель трекера, раздел "Общие настройки" - "PHP Info". На открывшейся странице ищем блоки memcache и memcached (выглядят примерно вот так). Если оных не обнаружено - ставим их самостоятельно или терзаем хостера. В противном случае к дальнейшим действиям не приступаем, т.к. модификация у вас банально работать не будет.

Установка:
[hide]
Код:
CREATE TABLE IF NOT EXISTS `bb_shout` (
`shout_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`shout_username` varchar(25) NOT NULL,
`shout_user_id` mediumint(8) NOT NULL,
`shout_time` int(11) NOT NULL,
`shout_text` text NOT NULL,
PRIMARY KEY (`shout_id`),
KEY `shout_time` (`shout_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
[/hide]

Открыть includes/init_bb.php

Найти:
Код:
define('SMILIES_TABLE', $t .'smilies');

Ниже вставить:
Код:
define('SHOUTBOX_TABLE', $t .'shout');


Открыть: index.php

Найти:
Код:
 'FORUM_LOCKED_IMG' => $images['forum_locked'],

Ниже вставить:
Код:
 'U_SHOUTBOX' => append_sid("shoutbox.$phpEx"),


Открыть: ajax.php

Найти:
Код:
 'view_post' => array('guest'),

Ниже вставить:
Код:
 'shout_del' => array('mod'),

Перед последней скобкой вставить:
Код:
 function shout_del()
{
global $db;
$id = (int) $this->request['id'];
$db->query("DELETE FROM bb_shout WHERE shout_id = $id");
$this->response['id'] = $id;
}


Открыть templates/default/index.tpl

В самое начало вставить:
Код:
<!-- IF LOGGED_IN -->
<!-- INCLUDE shoutbox.tpl -->
<div class="spacer_6"></div>
<!-- ENDIF / LOGGED_IN-->
Исполняемые файлы, кидаем в корень:
Код:
<?php

define('IN_PHPBB', true);
define('BB_SCRIPT', 'shoutbox');
define('BB_ROOT', './');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(BB_ROOT . 'common.'.$phpEx);
include(BB_ROOT . 'includes/bbcode.'.$phpEx);
include(BB_ROOT . 'includes/functions_post.'.$phpEx);

$memcache = new Memcache;
$memcache->connect('localhost', 11211);

$user->session_start();
generate_smilies('inline');

if(!$userdata['user_active']) die();

$refresh = (isset($_POST['auto_refresh']) || isset($_POST['refresh'])) ? 1 : 0;
$submit = (isset($_POST['shout']) && isset($_POST['message'])) ? 1 : 0;

if ($refresh)
{
$message = ( !empty($_POST['message']) ) ? htmlspecialchars(trim(stripslashes($_POST['message']))) : '';
if (!empty($message))
{
$template->assign_var('MESSAGE',$message);
}
} else
if ($submit || isset($_POST['message']))
{
$message = (isset($_POST['message'])) ? trim($_POST['message']) : '';
if (!empty($message))
{
$html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
$html_entities_replace = array('&amp;', '&lt;', '&gt;', '&quot;');
$message = str_replace("\r", '', trim($message));
$message = preg_replace("#\n{3,}#", "\n\n", $message);
$message = preg_replace($html_entities_match, $html_entities_replace, $message);
$message = make_clickable($message);
$message = smilies_pass($message);
$message = nl2br($message);
$sql = "INSERT INTO ".SHOUTBOX_TABLE." (shout_id, shout_text, shout_time, shout_user_id, shout_username) VALUES (null, '".$db->escape($message)."', '".time()."', '".$userdata['user_id']."', '".$db->escape($userdata['username'])."')";
if ( !($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not post shoutbox information', '', __LINE__, __FILE__, $sql);
}
$sql_memcache = "SELECT s.*, u.username FROM " . SHOUTBOX_TABLE . " s, ".USERS_TABLE." u WHERE s.shout_user_id = u.user_id ORDER BY s.shout_time DESC LIMIT 0, 25";
$result = $db->sql_query($sql_memcache);
while ($shout_row = $db->sql_fetchrow($result))
{
$to_memcache[]=$shout_row;
}
$memcache->set('shout',$to_memcache,false,43200);
}
}

$template->assign_vars(array(
'U_SHOUTBOX' => append_sid("shoutbox.$phpEx"),
'U_SHOUTBOX_VIEW' => append_sid("shoutbox_view.$phpEx"),
));

$template->set_filenames(array('body' => 'shoutbox_body.tpl'));
$template->pparse('body');
?>
Код:
<?php

define('IN_PHPBB', true);
define('BB_SCRIPT', 'shoutbox_view');
define('BB_ROOT', './');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(BB_ROOT . 'common.'.$phpEx);
include(BB_ROOT . 'includes/bbcode.'.$phpEx);

$memcache = new Memcache;
$memcache->connect('localhost', 11211);

$user->session_start();

if(!$userdata['user_active']) die();

$shout_cached = $memcache->get('shout');
if($shout_cached) echo"<!-- from_cache -->\r\n";

$i = 0;
foreach ($shout_cached as $shout_row)
{
$i++;
$row_class = !($i % 2) ? 'row1' : 'row2';
$shout = str_replace("\n", "\n<br />\n", smilies_pass($shout_row['shout_text']));

$template->assign_block_vars('shoutrow', array(
'ROW_CLASS' => $row_class,
'SHOUT' => $shout,
'TIME' => create_date('H:i:s', $shout_row['shout_time'], $userdata['user_timezone']),
'USERNAME' => '<b>'.$shout_row['username'].'</b>',
'USERNAME_JS' => addslashes($shout_row['username']),
'SHOUT_ID' => 'id="shout_'.$shout_row['shout_id'].'"',
'SHOUT_DEL_IMG' => ($userdata['user_level'] == 1 || $userdata['user_level'] == 2) ? '<img src="images/shout_del.png" title="Удалить" alt="Удалить" class="clickable" onclick="ajax.shout_del('.$shout_row['shout_id'].'); return false;" align="absmiddle">&nbsp;' : '',
'SHOUT_PROFILE_LINK' => '<a href="profile.php?mode=viewprofile&u='.$shout_row['shout_user_id'].'" target="_blank"><img title="Ссылка на профиль" alt="Ссылка на профиль" align="absmiddle" src="images/icon_external.png" /></a>',
));
}

$template->set_filenames(array('body' => 'shoutbox_view_body.tpl'));
$template->pparse('body');
?>
Шаблоны, кидаем в папку к шаблонам и правим на свое усмотрение:
Код:
<table width="100%" cellspacing="0" border="1" align="center" cellpadding="2" class="forumline">
<tr>
<td align="center" nowrap="nowrap" class="catHead bold"><span class="cattitle">Уютный чятег</span></td>
</tr>
<tr>
<td class="row2">
<iframe src="{U_SHOUTBOX}" scrolling="NO" width="100%" height="250" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="true" name="shout"></iframe>
</td>
</tr>
</table>
Код:
<form method="post" name="post" action="{U_SHOUTBOX}" onsubmit="return checkForm(this)">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" href="./templates/default/css/main.css?v={$bb_cfg['css_ver']}" type="text/css">
<script type="text/javascript" src="misc/js/jquery.pack.js?v={$bb_cfg['js_ver']}"></script>
<script type="text/javascript" src="misc/js/main.js?v={$bb_cfg['js_ver']}"></script>
<script type="text/javascript" src="misc/js/bbcode_shout.js?v={$bb_cfg['js_ver']}"></script>
</head>

<body>
<table width="100%" height="26" cellpadding="0" cellspacing="0" border="0" class="row1">
<tr>
<td class="row2" align="center" valign="middle" width="100%">
<span class="genmed">
Сообщение:&nbsp;<input type="text" autocomplete="off" class="post" name="message" value="{MESSAGE}" size="60%" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"/>&nbsp;
<span class="buttons">
<input type="button" class="button" value=";)" style="width: 20px" onclick="window.open('/posting.php?mode=smilies', '_phpbbsmilies', 'HEIGHT=580,resizable=yes,scrollbars=yes,WIDTH=780');return false;" target="_phpbbsmilies" />
<input type="submit" class="button" value="Отправить" style="font-weight: bold;" name="shout" />
<input type="submit" class="button" value="Обновить" name="refresh" />
</span>
</span>
</td>
</tr>
<tr>
<td>
<iframe src="{U_SHOUTBOX_VIEW}" align="left" width="100%" height="255" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="true"></iframe>
</td>
</tr>
</table>
</body>

</form>
Код:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" href="./templates/default/css/main.css?v={$bb_cfg['css_ver']}" type="text/css">
<script type="text/javascript" src="misc/js/jquery.pack.js?v={$bb_cfg['js_ver']}"></script>
<script type="text/javascript" src="misc/js/main.js?v={$bb_cfg['js_ver']}"></script>
<script type="text/javascript">
$(document).ready(function(){
$('a.postLink').attr({ target: '_blank' });
});
function add_nick(text) {
var text = text + ' ';
var m = top.frames['shout'].document.forms['post'].message;
if (m.createTextRange && m.caretPos) {
m.caretPos.text = m.caretPos.text.charAt(m.caretPos.text.length - 1) == ' ' ? text + ' ' : text;
} else {
m.value += text;
}
m.focus();
}
</script>
<script type="text/javascript">
var ajax = new Ajax('./ajax.php', 'POST', 'json');
ajax.shout_del = function(id) {
ajax.exec({
action : 'shout_del',
id : id
});
};
ajax.callback.shout_del = function(data) {
var id = data.id;
$('td#shout_'+id).hide("slow");
};
</script>
<script>window.setTimeout("location.reload()",15000);</script>
<noscript><meta http-equiv="Refresh" content="15"></noscript>
</head>

<body>
<table width="100%" height="100%" cellpadding="2" cellspacing="1" border="0" class="forumline">
<!-- BEGIN shoutrow -->
<tr>
<td class="{shoutrow.ROW_CLASS}" width="100%" higth="100%" {shoutrow.SHOUT_ID}>
<span class="genmed">{shoutrow.SHOUT_DEL_IMG}({shoutrow.TIME}) {shoutrow.SHOUT_PROFILE_LINK}&nbsp;<a style="text-decoration: none;" href="javascriptadd_nick('{shoutrow.USERNAME_JS},')"><b>{shoutrow.USERNAME}</b></a>: {shoutrow.SHOUT}<br/></span>
</td>
</tr>
<!-- END shoutrow -->
</table>
</body>
icon_external.png:
shout_del.png:
Собственно на этом все. Время обновления чата по-умолчанию - 15 секунд. Где изменить, думаю все найдут сами. На данный момент не реализована очистка кеша при удалении сообщения, поэтому эффект после использования кнопки удаления, будет только тогда, когда кто-то напишет новое сообщение в чат.
1) Если мемкеш висит не на стандартном порту (менять в обоих файлах):
Код:
$memcache = new Memcache;
$memcache->connect('localhost', 11211);


2) Если для вас мало 25 сообщений, выводящихся в чат по-умолчанию:
Код:
$sql_memcache = "SELECT s.*, u.username FROM " . SHOUTBOX_TABLE . " s, ".USERS_TABLE." u WHERE s.shout_user_id = u.user_id ORDER BY s.shout_time DESC LIMIT 0, 25";
Это строка из shoutbox.php. 25 - кол-во сообщений, которое будет записываться в кеш.
И, разумеется, оригинальный чат ([BETA] Мини-чат / Shoutbox) надо будет удалить, прежде чем начинать установку. На имеющиеся вопросы связанные с данным конкретным модом - отвечу по возможности.


Последний раз редактировалось Гость 2011-03-26 20:37, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-07 16:59 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
аддон к чату (бб коды в чате)

открыть shoutbox.php

находим

Код:
$submit = (isset($_POST['shout']) && isset($_POST['message'])) ? 1 : 0;


ниже добавить

Код:
$bbcode_on = '';
$smilies_on = '';
$bbcode_uid = '';


находим

Код:
$message = preg_replace($html_entities_match, $html_entities_replace, $message);


ниже добавить

Код:
        $message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $bbcode_on, $smilies_on, $bbcode_uid));
        $message = bbencode_first_pass($message, $bbcode_uid);
        $message = bbencode_second_pass($message, $bbcode_uid);


открыть shoutbox_body.tpl

в самый верх добавить

Код:
<script type="text/javascript" src="misc/js/bbcode.js?v={$bb_cfg['js_ver']}"></script>


находим

Код:
                  <input type="submit" class="button" value="Обновить" name="refresh" />
               </span>


ниже добавить

Код:
<div class="buttons mrg_4 tLeft">
  <span class="med">BBCode:</span>&nbsp;
  <input class="button" type="button" value=" B " name="codeB" title="Bold (Ctrl+B)" />&nbsp;
  <input class="button" type="button" value=" i " name="codeI" title="Italic (Ctrl+I)" style="font-style: italic;" />&nbsp;
  <input class="button" type="button" value=" u " name="codeU" title="Underline (Ctrl+U)" style="text-decoration: underline;" />&nbsp;
  <input class="button" type="button" value="URL" name="codeUrl" title="URL (Ctrl+W)" style="text-decoration: underline;" /><input type="hidden" name="codeUrl2" />&nbsp;
  <input type="button" value="Цитата" name="codeQuote" title="Quote (Ctrl+Q)" style="width: 60px;" />
  <input type="button" value="Code" name="codeCode" title="Code (Ctrl+K)" style="width: 46px;" />
  <input type="button" value="Img" name="codeImg" title="Image (Ctrl+R)" style="width: 40px;" />

<select name="fontFace">
   <option style="font-family: Verdana" value="-1" selected="selected">Шрифт:</option>
   <option style="font-family: Courier" value="Courier">&nbsp;Courier</option>
   <option style="font-family: 'Courier New'" value="'Courier New'">&nbsp;Courier New</option>
   <option style="font-family: monospace" value="monospace">&nbsp;monospace</option>
   <option style="font-family: Fixedsys" value="Fixedsys">&nbsp;Fixedsys</option>
   <option style="font-family: Arial" value="Arial">&nbsp;Arial</option>
   <option style="font-family: 'Comic Sans MS'" value="'Comic Sans MS'">&nbsp;Comic Sans</option>
   <option style="font-family: Georgia" value="Georgia">&nbsp;Georgia</option>
   <option style="font-family: Tahoma" value="Tahoma">&nbsp;Tahoma</option>
   <option style="font-family: 'Times New Roman'" value="'Times New Roman'">&nbsp;Times</option>
   <option style="font-family: serif" value="serif">&nbsp;serif</option>
   <option style="font-family: sans-serif" value="sans-serif">&nbsp;sans-serif</option>
   <option style="font-family: cursive" value="cursive">&nbsp;cursive</option>
   <option style="font-family: fantasy" value="fantasy">&nbsp;fantasy</option>
</select>
&nbsp;
<select name="codeColor" class="text_color">
   <option style="color: black; background: #fff;" value="black" selected="selected">Цвет шрифта:</option>
   <option style="color: darkred;" value="darkred">&nbsp;Тёмно-красный</option>
   <option style="color: brown;" value="brown">&nbsp;Коричневый</option>
   <option style="color: #996600;" value="#996600">&nbsp;Оранжевый</option>
   <option style="color: red;" value="red">&nbsp;Красный</option>
   <option style="color: #993399;" value="#993399">&nbsp;Фиолетовый</option>
   <option style="color: green;" value="green">&nbsp;Зелёный</option>
   <option style="color: darkgreen;" value="darkgreen">&nbsp;Тёмно-зелёный</option>
   <option style="color: gray;" value="gray">&nbsp;Серый</option>
   <option style="color: olive;" value="olive">&nbsp;Оливковый</option>
   <option style="color: blue;" value="blue">&nbsp;Синий</option>
   <option style="color: darkblue;" value="darkblue">&nbsp;Тёмно-синий</option>
   <option style="color: indigo;" value="indigo">&nbsp;Индиго</option>
   <option style="color: #006699;" value="#006699">&nbsp;Тёмно-голубой</option>
</select>
&nbsp;
<select name="codeAlign" class="text_size">
   <option value="left" selected="selected">Место:</option>
   <option value="left">&nbsp;Left</option>
   <option value="right">&nbsp;Right</option>
   <option value="center">&nbsp;Center</option>
   <option value="justify">&nbsp;Justify</option>
</select>

</div>


в самый низ после

Код:
   </table>
</body>

</form>


добавить

Код:
<script type="text/javascript">
function addEvent( obj, type, fn ) {
  if (obj.addEventListener) {
    obj.addEventListener( type, fn, false );
    EventCache.add(obj, type, fn);
  }
  else if (obj.attachEvent) {
    obj["e"+type+fn] = fn;
    obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
    obj.attachEvent( "on"+type, obj[type+fn] );
    EventCache.add(obj, type, fn);
  }
  else {
    obj["on"+type] = obj["e"+type+fn];
  }
}

var EventCache = function(){
  var listEvents = [];
  return {
    listEvents : listEvents,
    add : function(node, sEventName, fHandler){
      listEvents.push(arguments);
    },
    flush : function(){
      var i, item;
      for(i = listEvents.length - 1; i >= 0; i = i - 1){
        item = listEvents[i];
        if(item[0].removeEventListener){
          item[0].removeEventListener(item[1], item[2], item[3]);
        };
        if(item[1].substring(0, 2) != "on"){
          item[1] = "on" + item[1];
        };
        if(item[0].detachEvent){
          item[0].detachEvent(item[1], item[2]);
        };
        item[0][item[1]] = null;
      };
    }
  };
}();
addEvent(window,'unload',EventCache.flush);
var bbcode = new BBCode(document.post.message);
var ctrl = "ctrl";
bbcode.addTag("codeB", "b", null, "B", ctrl);
bbcode.addTag("codeI", "i", null, "I", ctrl);
bbcode.addTag("codeU", "u", null, "U", ctrl);
bbcode.addTag("codeUrl", "url", "/url", "", ctrl);
bbcode.addTag("codeUrl2", "url=", "/url", "W", ctrl);

bbcode.addTag("codeQuote", "quote", null, "Q", ctrl);
bbcode.addTag("codeCode", "code", null, "K", ctrl);
bbcode.addTag("codeImg", "img", null, "R", ctrl);

bbcode.addTag("fontFace", function(e) { var v=e.value; e.selectedIndex=0; return "font=\""+v+"\"" }, "/font");
bbcode.addTag("codeColor", function(e) { var v=e.value; e.selectedIndex=0; return "color="+v }, "/color");
bbcode.addTag("codeAlign", function(e) { var v=e.value; e.selectedIndex=0; return "align="+v }, "/align");
</script>


bbcode.js - прилагаю во вложении, качаем и кидаем к себе

Все готово, пользуемся и радуемся жизни !!!


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Последний раз редактировалось Гость 2011-04-19 19:52, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-07 17:03 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
аддон к чату

Показать/Скрыть Чат

открыть shoutbox.tpl

все содержимое заменить на это

Код:
<table width="100%" cellspacing="0" border="1" align="center" cellpadding="2" class="forumline">
   <tr>
     <td align="center" nowrap="nowrap" class="catHead gen clickable bold" onclick="toggle_block('shout_tools'); return false">Показать/Скрыть Чат</td>
   </tr>
   <tr id="shout_tools" style="display: none;">
     <td class="row2">
            <iframe src="{U_SHOUTBOX}" scrolling="NO" width="100%" height="250" frameborder="0" marginheight="0" marginwidth="0" allowtransparency="true" name="shout"></iframe>
      </td>
    </tr>
</table>


все


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-07 19:38 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
если кому нибудь надо включение - выключение чата из профиля могу выложить здесь


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-07 22:30 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2011-01-02 18:02
Сообщения: 29
Рид онли нужно как-то прикрутить


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-07 22:37 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2011-01-02 18:02
Сообщения: 29
чтобы при пустом сообщении можно было обновить чат (на кнопочку)
в shoutbox_body.tpl
замени
Код:
Сообщение:&nbsp;<input type="text" autocomplete="off" class="post" name="message" value="{MESSAGE}" size="60%" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"/>&nbsp;


на

Код:
Сообщение:&nbsp;<input type="text" autocomplete="off" class="post" name="message" value="  {MESSAGE}" size="60%" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"/>&nbsp;


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-08 14:56 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2010-12-26 13:39
Сообщения: 4
Откуда: Orenburg City
admin писал(а):
$message = preg_replace($html_entities_match, $html_entities_replace, $message);

у меня этой строки нету


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-08 15:38 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
_Xz_

а ты к какому чату прикручиваешь бб коды? если к этому что в первом посту http://rustrek.ru/viewtopic.php?p=15126#15126 , то есть там все смотри shoutbox.php


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-08 15:42 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2010-12-26 13:39
Сообщения: 4
Откуда: Orenburg City
я прикручиваю к этому:


У вас нет необходимых прав для просмотра вложений в этом сообщении.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-08 15:47 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
а что в нем нету смайлов? то, что я выложил - аддоны к чату который в первом посту


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-09 14:15 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2011-01-02 18:02
Сообщения: 29
Прикручиваем "только чтение" требуется установка мода "READONLY"

в самом начале shoutbox_body.tpl сделать условие
<!-- IF READONLY -->
<span class="colorAdmin bold"><center>Доступ ограничен</center></span>
<!-- ELSE -->
там где чтобы вы хотели закончилось правило ставим
<!-- ENDIF -->

в shoutbox.php после начала сессии

if ($userdata['user_readonly'])
{
$template->assign_vars(array(
'READONLY' => true,
));
}


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-09 14:20 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
vons4

Спасибо, себе тоже поставлю


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-13 01:33 
Не в сети
Раздал: 0 байт
Скачал: 0 байт
Ратио: Inf.


Зарегистрирован: 2011-01-02 18:02
Сообщения: 29
admin писал(а):
если кому нибудь надо включение - выключение чата из профиля могу выложить здесь


выложи пожалуйста


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-13 21:26 
Не в сети
Администратор
Администратор
Аватара пользователя
Раздал: 51.58 ТБ
Скачал: 620.08 ГБ
Ратио: 85.182


Зарегистрирован: 2010-11-09 02:24
Сообщения: 44886
Откуда: Земля Санникова
Итак, для выключения в профиле показа чата, делаем следующее.

Делаем запрос.

Код:
ALTER TABLE `bb_users` ADD `hide_shout`  TINYINT( 1 ) NOT NULL DEFAULT '1'


открываем usercp_register.php

находим

Код:
   $notifypm = ( isset($HTTP_POST_VARS['notifypm']) ) ? ( ($HTTP_POST_VARS['notifypm']) ? TRUE : 0 ) : TRUE;


ниже добавляем

Код:
    $hide_shout = ( isset($HTTP_POST_VARS['hide_shout']) ) ? ( ($HTTP_POST_VARS['hide_shout']) ? TRUE : 0 ) : TRUE;


находим

Код:
        $upsp = ( isset($HTTP_POST_VARS['upsp']) ) ? intval ($HTTP_POST_VARS['upsp']) : 0;


выше добавляем

Код:
        $hide_shout = (isset($HTTP_POST_VARS['hide_shout'])) ? intval($HTTP_POST_VARS['hide_shout']) : 1;


находим

Код:
                       user_opt = $user_opt,


ниже добавляем

Код:
                                 hide_shout  = $hide_shout,


находим

Код:
            'user_notify_pm'  => $notifypm,


ниже добавляем

Код:
                               'hide_shout' => $hide_shout,


находим

Код:
               'WELCOME_MSG' => sprintf($lang['Welcome_subject'], $bb_cfg['sitename']),


ниже добавляем

Код:
                    'HIDE_SHOUT_NO' => ( !$hide_shout ) ? 'checked="checked"' : '',
                    'HIDE_SHOUT_YES' => ( $hide_shout ) ? 'checked="checked"' : '',


находим

Код:
      $user_id = $userdata['user_id'];


ниже добавляем

Код:
    $hide_shout = $userdata['hide_shout'];


находим

Код:
     display_avatar_gallery(


в линии находи

Код:
$dwsp


после в линии добавляем

Код:
, $hide_shout


находим

Код:
$template->assign_block_vars('switch_confirm', array());
   }


ниже добавляем

Код:
  if ($mode == 'shout')
    {
    $hide_shout = "0";
    }


находим

Код:
   $template->assign_vars(array(
      'USERNAME' => $username,


ниже добавляем

Код:
        'HIDE_SHOUT_NO' => ( !$hide_shout ) ? 'checked="checked"' : '',
        'HIDE_SHOUT_YES' => ( $hide_shout ) ? 'checked="checked"' : '',


открываем usercp_register.tpl

находим

Код:
<tr>
   <td>{L_PUBLIC_VIEW_EMAIL}:</td>
   <td>
      <input type="radio" name="viewemail" value="1" {VIEW_EMAIL_YES} /> {L_YES}&nbsp;&nbsp;
      <input type="radio" name="viewemail" value="0" {VIEW_EMAIL_NO} /> {L_NO}
   </td>
</tr>


выше добавляем

Код:
<tr>
  <td>{L_SHOW_CHAT}</td>
  <td>
    <input type="radio" name="hide_shout" value="1" {HIDE_SHOUT_YES} /> {L_YES}&nbsp;&nbsp;
    <input type="radio" name="hide_shout" value="0" {HIDE_SHOUT_NO} /> {L_NO}
  </td>
</tr>


открываем lang_main.php и всамый низ добавляем

Код:
// Чат
$lang['SHOW_CHAT'] = 'Показывать чат на главной:';


сохраняем и пользуемся


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 2011-01-17 14:43 
Не в сети
Раздал: 8.48 ГБ
Скачал: 0 байт
Ратио: Seed.


Зарегистрирован: 2011-01-16 10:27
Сообщения: 9
Где можно найти рабочую библиотеку memcache.dll подскажите плиз! Перерыл 10 возможных из интернета, не одна не работает

В следующем посте ссылка на рабочую библиотеку, у меня работает (Xampp 1.7.3)


Последний раз редактировалось Foxkiller 2011-02-04 07:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Переместиться наверх
 Главная |  Список форумов |   Time : 0.135s | 16 Queries | GZIP : Off |