Модератор форума: Yuri_G |
Сообщество uCoz » Модули uCoz » Дополнительные функции » Мини-чат |
Мини-чат |
Вопрос заключается в следующем: откуда миничат знает какие шрифты использовать, фоны и т.д, если:
- в Вид материалов ничего из этого нет. - линк на ксс в индивидуальном шаблоне я стер, вместо этого пишу свои стили в 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
|
Riavenger, привет, дело в том, что миничат выводит iframe co страницей you-site.ru/mchat/ на которой и находятся все сообщения чата. Изменить шаблон страницы, ты не сможешь, а стили которые прописаны на этой странице находятся в системном файле стилей, которые ты собственно и удалил видимо.
Скрипты и стили в iframe, всегда, в основном действуют в пределах этого фрейма и не распастраняются на родительскую страницу, равно как и наоборот. Т.е. стили родительской страницы не влияют на содержимое iframe. Ты можешь: прописывать стили для чата в стандартном файле стилей, и это будет правильно. Или написать небольшой скрипт, который будет get-запросом получать сообщения с you-site.ru/mchat/ и вставлять уже в нужный тебе блок. Тогда на них будут действовать стили которые ты прописал для страницы. Удачи. Можешь забрать этот код и вставить его себе, сам знаешь куда.
|
Уточню. Моя цель вывести чат на отдельную "чистую" страницу сайта, изменить его вид, но только на этой странице на сколько это возможно.
Пожалуйста дайте знать правильны ли мои следующие выводы: дело в том, что миничат выводит iframe co страницей you-site.ru/mchat/ на которой и находятся все сообщения чата. Изменить шаблон страницы, ты не сможешь, а стили которые прописаны на этой странице находятся в системном файле стилей, которые ты собственно и удалил видимо. - Основной css я не удалял, создал страницу с индивидуальным шаблоном. Меняю шаблон: вычистил все лишнее из body, в head удалил ссылку на стандартный css. Вывел чат с помощью системного кода $CHAT_BOX$. Вывод: Чат сохранил свой вид - из ваших слов, так вышло потому что you-site.ru/mchat/ берет стили из системного css. Следовательно: Только в стандартном!? Я не хотел бы менять его (см цель). Выходит чтобы я не делал, я не заставлю you-site.ru/mchat/ тащить стили из мною созданного файла css? you-site.ru/mchat/ будет тащить стили из системного css: Код /_st/my.css Я думал что чат т.е. обе его составляющие - окно сообщений и форма добавления получат стили из файл, который я укажу в индивидуальном шаблоне в head. Выходит такое получится только с формой добавления. Выход: Скрипт Или написать небольшой скрипт, который будет get-запросом получать сообщения с you-site.ru/mchat/ и вставлять уже в нужный тебе блок. Тогда на них будут действовать стили которые ты прописал для страницы. Не представляю что писать в теле самого скрипта. Сообщение отредактировал Riavenger - Понедельник, 23 Фев 2015, 16:21:24
|
Riavenger, Можно конечно, еще встроенные стили прописывать для сообщений. Но это добавит кода и не решит всех проблем,(хотя может и будет достаточно, в зависимости от того, что ты хочешь получить).
А если писать скрипт, то и форму добавления нужно кастомизировать, так как, например функция обновления страницы работать не будет и нужно будет написать свою. В интернете должны быть уже готовые решения. А могу и я сделать, но это не просто так. Можешь забрать этот код и вставить его себе, сам знаешь куда.
|
А если писать скрипт, то и форму добавления нужно кастомизировать, так как, например функция обновления страницы работать не будет и нужно будет написать свою. Я тоже подумал об этом. Если сообщения чата выводить скриптом, то уже нельзя будет использовать код $CHAT_BOX$ , а как иначе вывести форму добавления сообщений. Выходит писать форму самому и в том числе обновления. А ведь еще нужно чтобы чат различал авторизованных пользователей. Я видел только те, в которых изменяется чат через Вид материалов, основной 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) через основной шаблон "Страницы сайта" - не работает (как и было сказано 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
|
Riavenger, Вообще не понимаю что ты хочешь... Если не хочешь скриптами, то в css файле можешь оставить только стили чата, а в шаблон других страниц, вставь ссылку на свой css-файл, в котором и будут остальные стили сайта. Таким образом чат и сайт в стилях не будут пересекаться.
Можешь забрать этот код и вставить его себе, сам знаешь куда.
|
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
|
Так никому здесь не под силам задача, поставленная в 7-ом сообщении?
Я вот не пойму абсолютно все параметры 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
|
Вы хотите вывести чат с /mchat/ без скриптов на другую страницу?
Не получится без скриптов то, что вы хотите. И сама идея достаточно бессмысленная. Зачем вам это? Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
|
Inkvizitor, мне весь чат нужен (оба блока - /mchat/ и форма добавления) на отдельной странице сайта. Пробовал всегда системным кодом выводить. Позже туда же видеоплеер добавить с какого-нибудь видеохостинга. Только не говорите что на всем юкоз такого никто не пытался сделать с миничатом!
Значит с помощью стилей css и position: relative для iframe не добиться, чтобы чат да и вся страница подстраивалась под размеры экрана, окна браузера (не появлялись прокрутки при уменьшении окна ручками)? Ну вы не первый кто так говорит. Но вот проблемка, в скриптах я плохо разбираюсь. Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь.. Сообщение отредактировал Riavenger - Пятница, 06 Мар 2015, 10:44:16
|
Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь.. Ну слово "реализовывать" тут малоуместно, к сожалению, или к счастью:) Системный мини-чат предназначен для малого, не для супернаворотов. Сейчас uCoz даёт куда больше возможностей для реализации идеи "чата" на своём сайте, потому никто и не запаривается что бы подумать как сделать то, что вы хотите. Если я правильно понял - вам нужно создать отдельную страницу, туда вставить фрейм и форму отправки.. сложного нет ничего вроде. Я на самом деле не до конца ход ваших мыслей понимаю в ваших сообщениях:) Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
|
Но вот проблемка, в скриптах я плохо разбираюсь. Вот если бы кто начал реализовывать, я бы втянулся в идею и дальше бы сам как-нибудь.. Код <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> Код <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 добавленные сообщения не появляются. Другой фрагмент: Код <script type="text/javascript"> $('#MCaddFrm').submit(function() { setTimeout(function() { document.getElementById('mchatIfm2').src='/mchat/?'+Math.random(); }, 500); }); </script> Сообщение отредактировал $Tiny$ - Суббота, 07 Мар 2015, 08:59:45
|
Не знаю, правильно ли я тебя понял, тебе нужен мини-чат на отдельной странице? Недавно на одном из сайтов, не помню где, мелькнул код мини-чата для пда-версий. Суть такая, что создаешь новую страницу, файл 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) В Вид материалов Мини-чата <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;} Цвета сама настраивай. У тебя $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!
|
| |||