• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Yuri_G  
Сообщество uCoz » Модули uCoz » Дополнительные функции » Мини-чат
Мини-чат
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 1 | 17:04:22
Вопрос заключается в следующем: откуда миничат знает какие шрифты использовать, фоны и т.д, если:
- в Вид материалов ничего из этого нет.
- линк на ксс в индивидуальном шаблоне я стер, вместо этого пишу свои стили в head.

Почему одни классы из стилей работаю? Например:

#mchatIfm2 {
background:#9B9393 !important;
}
#mchatRSel {background:#9B9393;}

А другие - нет? Напимер:
#cMessage {color: red !important;}

Зато, если указать в материалах, то все замечательно!?
<div class="cMessage" style="text-align:left; color: red;" id="msg$NUMBER$">$MESSAGE$</div>

Объясните пожалуйста! Дело в конфликте стилей? Но я ведь указываю !important. В чем проблема?
сайт

Добавлено (22 Фев 2015, 17:04:22)
---------------------------------------------
Кстати в Вид материалов не работает условие! Серьезно!?
<?if($PAGE_ID$ == 'sitePage1')?>
<div class="cMessage" style="text-align:left" id="msg$NUMBER$">$MESSAGE$</div>
<?endif?>
Сообщения пропадают на всех страницах.
Сообщение отредактировал Riavenger - Понедельник, 23 Фев 2015, 12:58:50
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 2 | 19:28:56
Riavenger, привет, дело в том, что миничат выводит iframe co страницей you-site.ru/mchat/ на которой и находятся все сообщения чата. Изменить шаблон страницы, ты не сможешь, а стили которые прописаны на этой странице находятся в системном файле стилей, которые ты собственно и удалил видимо.
Скрипты и стили в iframe, всегда, в основном действуют в пределах этого фрейма и не распастраняются на родительскую страницу, равно как и наоборот. Т.е. стили родительской страницы не влияют на содержимое iframe.

Ты можешь: прописывать стили для чата в стандартном файле стилей, и это будет правильно. Или написать небольшой скрипт, который будет get-запросом получать сообщения с you-site.ru/mchat/ и вставлять уже в нужный тебе блок. Тогда на них будут действовать стили которые ты прописал для страницы.
Удачи.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 3 | 15:20:22
Уточню. Моя цель вывести чат на отдельную "чистую" страницу сайта, изменить его вид, но только на этой странице на сколько это возможно.
Пожалуйста дайте знать правильны ли мои следующие выводы:
Цитата Head-Mad ()
дело в том, что миничат выводит iframe co страницей you-site.ru/mchat/ на которой и находятся все сообщения чата. Изменить шаблон страницы, ты не сможешь, а стили которые прописаны на этой странице находятся в системном файле стилей, которые ты собственно и удалил видимо.

- Основной css я не удалял, создал страницу с индивидуальным шаблоном. Меняю шаблон: вычистил все лишнее из body, в head удалил ссылку на стандартный css. Вывел чат с помощью системного кода $CHAT_BOX$. Вывод: Чат сохранил свой вид - из ваших слов, так вышло потому что you-site.ru/mchat/ берет стили из системного css. Следовательно:

Цитата Head-Mad ()
Ты можешь: прописывать стили для чата в стандартном файле стилей,
Только в стандартном!? Я не хотел бы менять его (см цель). Выходит чтобы я не делал, я не заставлю you-site.ru/mchat/ тащить стили из мною созданного файла css? you-site.ru/mchat/ будет тащить стили из системного css:

Код
/_st/my.css


Я думал что чат т.е. обе его составляющие - окно сообщений и форма добавления получат стили из файл, который я укажу в индивидуальном шаблоне в head. Выходит такое получится только с формой добавления.

Выход:
Скрипт
Цитата Head-Mad ()
Или написать небольшой скрипт, который будет get-запросом получать сообщения с you-site.ru/mchat/ и вставлять уже в нужный тебе блок. Тогда на них будут действовать стили которые ты прописал для страницы.

Не представляю что писать в теле самого скрипта.
Сообщение отредактировал Riavenger - Понедельник, 23 Фев 2015, 16:21:24
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 4 | 17:31:18
Riavenger, Можно конечно, еще встроенные стили прописывать для сообщений. Но это добавит кода и не решит всех проблем,(хотя может и будет достаточно, в зависимости от того, что ты хочешь получить).

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

В интернете должны быть уже готовые решения. А могу и я сделать, но это не просто так.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 5 | 11:59:05
Цитата Head-Mad ()
А если писать скрипт, то и форму добавления нужно кастомизировать, так как, например функция обновления страницы работать не будет и нужно будет написать свою.

Я тоже подумал об этом. Если сообщения чата выводить скриптом, то уже нельзя будет использовать код $CHAT_BOX$ , а как иначе вывести форму добавления сообщений. Выходит писать форму самому и в том числе обновления. А ведь еще нужно чтобы чат различал авторизованных пользователей.

Цитата Head-Mad ()
В интернете должны быть уже готовые решения.

Я видел только те, в которых изменяется чат через Вид материалов, основной css.
Мне же нужно оставить чат на главной в боковом блоке странице нетронутым, а на отдельной странице изменять чат (менять его размер, например масштабирование под высоту окна и тд). Для этого и пытаюсь все части чата приручить к моим стилям, которые будут лежать в отдельном css или в head. Но вы сказали это невозможно без скриптов.

Но, Head-Mad, мне в голову пришла альтернатива, что думаете?

Разобрался с обращениями к форме сообщений чата (странице you-site.ru/mchat/). Не путать с формой добавления сообщений - ее легче видоизменять (они оба вызываются кодом $CHAT_BOX$).
Например, меняем цвет текста сообщений. Варианты на выбор:

1) Через Чат - Вид материалов
Код
<div class="cMessage" style="text-align:left; color: red;" id="msg$NUMBER$">$MESSAGE$</div>


2) через системный css (который указан в основном шаблоне)
Код
.cMessage {color: red !important;}     
или
.cMessage {color: red}


3) через основной шаблон "Страницы сайта" - не работает sad (как и было сказано Head-Mad)

Код
<link type="text/css" rel="StyleSheet" href="/_st/my.css" />
<style type="text/css">     
      .cMessage {color: red !important;}
</style>      
</head>


или
тоже, только без первой строки - обращение к системному css.

Вопрос про 3 пункт, можно ли скриптом в основном шаблоне - изменить или добавить строку .cMessage {color: red;} в системный css. То есть чтобы эта строка не появилась в самом css? =)
Раз you-site.ru/mchat/ реагирует исключительно на системный css!

- у меня не вышло на подмену стиля среагировал только блок отправки сообщения, в блоке сообщений цвет текста остался синим:
Сообщение отредактировал Riavenger - Вторник, 24 Фев 2015, 14:26:00
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 6 | 12:26:31
Riavenger, Вообще не понимаю что ты хочешь... Если не хочешь скриптами, то в css файле можешь оставить только стили чата, а в шаблон других страниц, вставь ссылку на свой css-файл, в котором и будут остальные стили сайта. Таким образом чат и сайт в стилях не будут пересекаться.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 7 | 14:12:12
Head-Mad, нужно чтобы на станице под именем "Чистая" с индивидуальным шаблоном был мини-чат. Этот чат настраивался исключительно из своего css-файла (например настройки: чат внутри адаптивного блока (div) под размеры окна), как и сама страница. Все остальные страницы сайта брали стили из системного css. Можно вносить незначительные изменения в Чат Вид материалов. Например я вот такое изменение сделал, Но оно на визуальный вид не влияет:

Код
<div class="cMessage" style="text-align:left" [color=#ff0000]id="msg$NUMBER$">$MESSAGE$</div>

Это для автообновления чата. Остальной код в html и в скрипте.

Методы достижения цели - не важны, главное чтобы чат был гибок к последующим изменениям - 1) своих габаритов (от разрешения экрана / размера окна браузера); 2) оформления чата (фон, шрифт).

Зы. Была бы это таблица с прокруткой, а не чат - как бы было удобно, без заморочек!
Сообщение отредактировал Riavenger - Вторник, 24 Фев 2015, 14:34:09
Head-Mad
Сообщений: 378
Репутация: 129

Сообщение # 8 | 15:00:41
Цитата Riavenger ()
Методы достижения цели - не важны
Ох не знаю. В любом случае, варианты решения я тебе дал. Удачи.

Можешь забрать этот код и вставить его себе, сам знаешь куда.
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 9 | 10:25:07
Так никому здесь не под силам задача, поставленная в 7-ом сообщении? surprised
Я вот не пойму абсолютно все параметры iframe страница с сообщениями миничата берет из системного css, или что-то из собственного шаблона (который не увидеть, не отредактировать)?

Раз чат - iframe, поможет такой код? В системном css.
Код

01    .video {
02     position: relative;
03     padding-bottom: 56.25%;
04     height: 0;
05     overflow: hidden;
06    }
07   
08    .video iframe,  
09    .video object,  
10    .video embed {
11     position: absolute;
12     top: 0;
13     left: 0;
14     width: 100%;
15     height: 100%;
16    }
Сообщение отредактировал Riavenger - Пятница, 06 Мар 2015, 10:32:29
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 10 | 10:34:50
Вы хотите вывести чат с /mchat/ без скриптов на другую страницу?
Не получится без скриптов то, что вы хотите.

И сама идея достаточно бессмысленная.
Зачем вам это?

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Riavenger
Сообщений: 31
Репутация: 6

Сообщение # 11 | 10:43:25
Inkvizitor, мне весь чат нужен (оба блока - /mchat/ и форма добавления) на отдельной странице сайта. Пробовал всегда системным кодом выводить. Позже туда же видеоплеер добавить с какого-нибудь видеохостинга. Только не говорите что на всем юкоз такого никто не пытался сделать с миничатом! biggrin
Значит с помощью стилей css и position: relative для iframe не добиться, чтобы чат да и вся страница подстраивалась под размеры экрана, окна браузера (не появлялись прокрутки при уменьшении окна ручками)? Ну вы не первый кто так говорит. Но вот проблемка, в скриптах я плохо разбираюсь. Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь..
Сообщение отредактировал Riavenger - Пятница, 06 Мар 2015, 10:44:16
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 12 | 10:50:57
Цитата Riavenger ()
Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь..

Ну слово "реализовывать" тут малоуместно, к сожалению, или к счастью:)
Системный мини-чат предназначен для малого, не для супернаворотов.

Сейчас uCoz даёт куда больше возможностей для реализации идеи "чата" на своём сайте, потому никто и не запаривается что бы подумать как сделать то, что вы хотите.

Если я правильно понял - вам нужно создать отдельную страницу, туда вставить фрейм и форму отправки.. сложного нет ничего вроде.

Я на самом деле не до конца ход ваших мыслей понимаю в ваших сообщениях:)

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
$Tiny$
Сообщений: 193
Репутация: 62

Сообщение # 13 | 04:01:15
Цитата Riavenger ()
Но вот проблемка, в скриптах я плохо разбираюсь. Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь..
Уболтал. Вот код из шаблона для персональной страницы:
Код
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<title>$SITE_NAME$ - $MODULE_NAME$</title>
<?$META_DESCRIPTION$?>
<link type="text/css" rel="StyleSheet" href="/_st/my.css" />
<style>.cMessage {color: red !important;} </style>
</head>
<body style="background:#C60000; margin:0px; padding:0px;">
<div style="width:300px;">
<div id="scriptmchat" style="width:300px; height:400px; background-color:#888888; overflow:auto;"></div>
<iframe id="mchatIfm2" style="display:none;" src="/mchat/" onload="$('#scriptmchat').html($(this).contents().find('body').html());"></iframe>
<? substr($CHAT_BOX$, strpos($CHAT_BOX$, '</iframe>') + 9) ?></div>
<script type="text/javascript">
    $('#MCaddFrm').submit(function() {
      setTimeout(function() {
        document.getElementById('mchatIfm2').src='/mchat/?'+Math.random();      
      }, 500);
    });
</script>
$POWERED_BY$
</body>

</html>
Разберемся, что тут происходит. Для начала вместо $CHAT_BOX$ ставим:
Код
<div id="scriptmchat" style="width:300px; height:400px; background-color:#888888; overflow:auto;"></div>
<iframe id="mchatIfm2" style="display:none;" src="/mchat/" onload="$('#scriptmchat').html($(this).contents().find('body').html());"></iframe>
<? substr($CHAT_BOX$, strpos($CHAT_BOX$, '</iframe>') + 9) ?></div>
Этим самым мы убиваем системный iframe с сообщениями и вставляем свой, невидимый. На событие onload мы переносим все сообщения оттуда в наш div. Таким образом, каждый раз при обновлении iframe обновляется и div. А после загрузки содержимого из iframe в div на него уже начинают действовать те самые стили вверху страницы, которые вы ставите.
Но тут есть проблема - при добавлении сообщения iframe не перезагружается. Сообщения добавляются в него иным путем. А потому, событие onload не происходит и в div добавленные сообщения не появляются. Другой фрагмент:
Код
<script type="text/javascript">
    $('#MCaddFrm').submit(function() {
      setTimeout(function() {
        document.getElementById('mchatIfm2').src='/mchat/?'+Math.random();      
      }, 500);
    });
</script>
При отправке формы, после добавления сообщения т.е., происходит перезагрузка iframe, что и приводит к появлению в div нового добавленного вами сообщения. Но, в данном способе есть ощутимый минус - плохой интернет, при котором запрос за 500 миллисекунд не выполнится. Тогда, чат обновится, а сообщение так и не появится. Чтобы так не вышло - нужно переписывать саму функцию sbtFrmMC991(), отправляющую сообщение, добавив обновление div в нее, с чем мне не особо хочется замарачиваться.
Сообщение отредактировал $Tiny$ - Суббота, 07 Мар 2015, 08:59:45
Mariska
Сообщений: 2
Репутация: 0

Сообщение # 14 | 19:19:48
Подскажите, что исправить, чтобы
а) чат не растягивало на всю страницу.
б) менялось цветовыделение строк



наша ссылка: http://theknights.clan.su

Заранее благодарна
vova19061
Сообщений: 64
Репутация: 1

Сообщение # 15 | 03:54:55
Не знаю, правильно ли я тебя понял, тебе нужен мини-чат на отдельной странице? Недавно на одном из сайтов, не помню где, мелькнул код мини-чата для пда-версий. Суть такая, что создаешь новую страницу, файл html, бросаешь туда код и вписываешь на новую страницу как новый iframe. Я же просто всунул код на новую страницу и подстроил размеры width:100%;height:300px;. При желании размеры можно ставить какие угодно. Стили чата берутся из стилей, прописанных в Панели управления, в частности css и блоке мини-чат (вид материалов и форма добавления). Только там можно менять цвета, шрифт, рамки.
Могу посоветовать помудрить, скопировав код в вид материалов и формы добавления мини-чата, и засунув его между <?if($PAGE_ID$='номер страницы')?>СЮДА<?endif?>. Только не забыв прописать новые стили в css, если таковые имеются у прежнего, но выделив их другими названиями. Ну и понятно что создав новую страницу, отметив что для нее будет персональный шаблон, если надо, скопировав ниже код, где картинки с адресами "/img/..." меняешь на свои, и настраивать можно страницу как угодно через редактор и панель управления. Выйдет этакие 2 стиля, для отдельной страницы, и для всего сайта. Но такую фишку я не проворачивал, так что если сработает, отпишись.
Код
<head>  
<!-- Онлайн Чат v1.2 -->  
<meta name="description" content="Мини-Чат">  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<meta http-equiv="Content-Language" content="ru">  
<title>Онлайн Чат</title>  
<link type="text/css" rel="StyleSheet" href="http://s107.ucoz.net/src/layer3.css"><script type="text/javascript" src="http://s107.ucoz.net/src/u.js"></script><style type="text/css">.UhideBlockL {display:none}</style>
</head>  

<body style="padding:0;margin:0;">  
<iframe id="mchatIfm2" style="width:100%;height:300px;border-bottom:1px solid #444;" frameborder="0" scrolling="auto" hspace="0" vspace="0" allowtransparency="true" src="/mchat/"></iframe>  
<script type="text/javascript">  
function sbtFrmMC991(f){$('#mchatBtn').css({display:'none'});$('#mchatAjax').css({display:''});_uPostForm('MCaddFrm',{type:'POST',url:'/mchat/?75954141.1628213'});}  
function countMessLength(){var rst = 300-$('#mchatMsgF').val().length;if (rst<0){rst=0;$('#mchatMsgF').val($('#mchatMsgF').val().substr(0,200));}$('#jeuwu28').html(rst);}  
var tID7174=-1;var tAct7174=false;  
function setT7174(s){var v=parseInt(s.options[s.selectedIndex].value);document.cookie="mcrtd="+s.selectedIndex+"; path=/";if(tAct7174){clearInterval(tID7174);tAct7174=false;}if(v>0){tID7174=setInterval("document.getElementById('mchatIfm2').src='/mchat/?'+Math.random();",v*1000);tAct7174=true;}}  
function initSel7174() {var res=document.cookie.match(/(\W|^)mcrtd=([0-9]+)/);if(res){s=$("#mchatRSel")[0];;s.selectedIndex=parseInt(res[2]);setT7174(s);}$("#mchatMsgF").bind("keydown",function(e){if(e.keyCode==13 && e.ctrlKey && !e.shiftKey){e.preventDefault();sbtFrmMC991();}})}  
</script>  

<form style="" id="MCaddFrm" onsubmit="sbtFrmMC991();return false;">  

[c]<?ifnot($USER_LOGGED_IN$)?>Для добавления сообщений необходима авторизация<?else?>

<table border="0" cellpadding="1" cellspacing="1" width="100%">  
<tr>  
<td width="100%" align="center">  
<a href="javascript://" rel="nofollow" onclick="document.getElementById('mchatIfm2').src='/mchat/?'+Math.random();return false;" title="Обновить"><img alt="" border="0" align="absmiddle" src="/img/minichat/reload.png" width="15" height="15"></a>  
<a href="javascript://" rel="nofollow" onclick="new _uWnd('Sml',' ',-250,-350,{autosize:0,closeonesc:1,resize:0},{url:'/index/35-2-2'});return false;" title="Вставить смайл"><img alt="" border="0" align="absmiddle" src="/img/minichat/smile.png" width="15" height="15"></a>  
<a href="/index/17" title="ВВ-Коды"><img alt="" border="0" align="absmiddle" src="/img/minichat/bb-codes.png" width="15" height="15"></a>  
<a href="javascript://" rel="nofollow" onclick="window.open('/mchat/0-1','mchatCtrl','scrollbars=1,width=550,height=550,left=0,top=0');return false;" title="Управление сообщениями"><img alt="" border="0" align="absmiddle" src="/img/minichat/msgctrl.png" width="15" height="15"></a>  
</td></tr>
</table>  

<table border="0" cellpadding="1" cellspacing="1" width="100%">  
<tr><td><textarea name="mcmessage" class="mchat" id="mchatMsgF" title="Сообщение" onkeyup="countMessLength();" onfocus="countMessLength();" style="width:99.7%;"></textarea></td></tr>  
<tr><td align="center"><input type="submit" value="Отправить сообщение" class="mchat" id="mchatBtn" style="width:100%;"><img alt="" style="display:none;" id="mchatAjax" src="http://s107.ucoz.net/img/fr/ajax3.gif" border="0" width="16"/>
</td></tr>
</table>  

<?endif?>[/c]

<input type="hidden" name="numa" id="numa832" value="0"><input type="hidden" name="a" value="18"><input type="hidden" id="ajaxFlag" name="ajax" value="1" /></form>  
<script type="text/javascript">initSel7174();</script>  

</body>

Добавлено (06 Сен 2015, 03:54:55)
---------------------------------------------

Цитата Mariska ()
менялось цветовыделение строк

В Вид материалов Мини-чата <div class="cBlock$PARITY$" style="padding:0 4px 5px 2px;margin-bottom:3px;">
В css .cBlock1 {background: #2b2d2f; border: 1px solid #626262;}
.cBlock2 {background: #1f1f1f; border: 1px solid #626262;}
Цвета сама настраивай.
Цитата Mariska ()
чат не растягивало на всю страницу

У тебя $CHAT_BOX$ стоит в блоке div, судя по всему в Нижней части сайта? Попробуй прописать вместо <div style="text-align: center;">$CHAT_BOX$</div> это <div style="width:1000px; height:300px; padding: 30px 30px 30px 180px;">$CHAT_BOX$</div> И настраивай как хочешь

Ucoz нагло чистит сайты. Мой удалили и морозятся. 7 лет работал над проектом http://sg-ql.at.ua. Удалили без предупреждения и шанса на исправление возможных нарушений. Никому больше не советую ukoz!
Сообщество uCoz » Модули uCoz » Дополнительные функции » Мини-чат
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: