Мини чат. Как скрыть кнопку цитировать для гостей?
|
|
[1] likbezz [04.04.2012, 17:36] |
Мини чат » вид материалов, в шаблон: Code <?if($NUMBER$='1')?> <style type="text/css">.mDetails{display:none;}</style> <script type="text/javascript"> if(parent.window.document.getElementById('mchatMsgF')){window.onload=function(){var o=document.getElementsByTagName('span');for(var i=0;i<o.length;i++){if(o[i].className=='mDetails'){o[i].style.display='block'}}}} </script> <?endif?>
Предполагается что кнопка в блоке с классом «mDetails», типа: Code <span class="mDetails">[<a href="javascript://" onclick="getChatSelection();chatInsert('<?if($USERNAME$)?>$USERNAME$<?else?>$NAME$<?endif?>',selection);">Цит.</a>]</span> ... И форма добавления (id=mchatMsgF) не видна гостям сайта. ...
То же самое только стилями: Code <?if($NUMBER$='1')?> <style type="text/css">.mDetails{display:none;}</style> <script type="text/javascript"> if(parent.window.document.getElementById('mchatMsgF')){ document.write('<style type="text/css">.mDetails{display:block;}</style>'); } </script> <?endif?> ...
Последний код предпочтительнее ... ... |
|
[2] likbezz [04.04.2012, 18:08] |
Если же гости имеют право оставлять сообщения в чате, но кнопку нужно все равно скрыть, можно привязать проверку на наличие поля «Имя» - для гостей оно есть, для пользователей - нет.
...
Соответствено, скрипт: Code <?if($NUMBER$='1')?> <style type="text/css">.mDetails{display:none;}</style> <script type="text/javascript"> if(!parent.window.document.getElementById('mchatNmF')){window.onload=function(){var o=document.getElementsByTagName('span');for(var i=0;i<o.length;i++){if(o[i].className=='mDetails'){o[i].style.display='block'}}}} </script> <?endif?> Где: mchatNmF - ID поля «Имя» ... ... Остальное - то же самое, что и в предыдущем посте. Всё это в шаблон вид материалов чата. ...
Или стилями: Code <?if($NUMBER$='1')?> <style type="text/css">.mDetails{display:none;}</style> <script type="text/javascript"> if(!parent.window.document.getElementById('mchatNmF')){ document.write('<style type="text/css">.mDetails{display:block;}</style>'); } </script> <?endif?> ...
Последний код предпочтительнее ... ...
|
|
[3] bandjuk [05.04.2012, 09:40] |
likbezz, ты уж меня извини бестолкового, но хочется добить этот вопрос! Форма ввода в чате доступна гостям, поэтому я выбрал 2-й способ. Что я делаю. Сейчас у меня стоит скрипт:
Quote <?if($NUMBER$='1')?> <script type="text/javascript"> function getChatSelection(){var w=window,d=document;if(w.getSelection){selection=w.getSelection().toString()}else if(d.getSelection){selection=d.getSelection()}else{selection=d.selection.createRange().text}};function reChat(b){var d=parent.window.document;if(d.getElementById('mchatMsgF')){d.getElementById('mchatMsgF').focus();chatPaste(" "+b+"\n",0)}else{alert('Вам запрещено данное действие')}};function chatInsert(a,b){if(b!=""){a=a.replace(/[\[\]]/g,"|");chatPaste(" \n",0)}else{alert('Выделите текст для цитирования')}}function chatPaste(a,b){var d=parent.window.document,frm=d.getElementById('MCaddFrm');if((document.selection)&&(b)){frm.mcmessage.focus();frm.document.selection.createRange().text=a}else frm.mcmessage.value+=a}; if(parent.window.document.getElementById('mchatMsgF')){window.onload=function(){var o=document.getElementsByTagName('div');for(var i=0;i<o.length;i++){if(o[i].className=='mDetails'){o[i].style.display='block'}}}} </script> <?endif?> в нём выделенное красным я заменяю на: Quote if(!parent.window.document.getElementById('mchatNmF')){ document.write('<style type="text/css">.mDetails{display:block;}</style>'); } Т.е. получается так:
Code <?if($NUMBER$='1')?> <script type="text/javascript"> function getChatSelection(){var w=window,d=document;if(w.getSelection){selection=w.getSelection().toString()}else if(d.getSelection){selection=d.getSelection()}else{selection=d.selection.createRange().text}};function reChat(b){var d=parent.window.document;if(d.getElementById('mchatMsgF')){d.getElementById('mchatMsgF').focus();chatPaste("[b]"+b+"[/b]\n",0)}else{alert('Вам запрещено данное действие')}};function chatInsert(a,b){if(b!=""){a=a.replace(/[\[\]]/g,"|");chatPaste("[quote="+a+"]"+b+"[/quote]\n",0)}else{alert('Выделите текст для цитирования')}}function chatPaste(a,b){var d=parent.window.document,frm=d.getElementById('MCaddFrm');if((document.selection)&&(b)){frm.mcmessage.focus();frm.document.selection.createRange().text=a}else frm.mcmessage.value+=a}; if(!parent.window.document.getElementById('mchatNmF')){ document.write('<style type="text/css">.mDetails{display:block;}</style>'); } </script> <style type="text/css">.mDetails{display:none;}</style> <?endif?> Я правильно делаю? Наверно нет, т.к. цитата всё равно видна гостям!
Сообщение отредактировал bandjuk - Четверг, 05.04.2012, 09:41 |
|
[4] likbezz [05.04.2012, 10:44] |
bandjuk, Quote (bandjuk) Наверно нет, т.к. цитата всё равно видна гостям! Да всё правильно ты делаешь, но цитату нужно изначально скрыть ... а скрывается она по классу. Куда делся класс mDetails у блока цитаты?
...
|
|
[5] bandjuk [05.04.2012, 10:59] |
likbezz, Quote Куда делся класс mDetails у блока цитаты? никуда! В виде материалов: Quote <span style="mDetails">[<a href="javascript://" onclick="getChatSelection();chatInsert('<?if($USERNAME$)?>$USERNAME$<?else?>$NAME$<?endif?>',selection);">Цит.</a>]</span> и в исходнике: Quote <span style="mDetails">[<a href="javascript://" onclick="getChatSelection();chatInsert('bandjuk',selection);">Цит.</a>]</span> он есть!Добавлено (05.04.2012, 10:58) --------------------------------------------- но сам стиль прописан в ксс, может из-за этого? Т.е. в ксс это: .mDetails{display:none; font-weight:normal; font-size:5pt; font-family: Verdana,sans-serif; text-align:left;} Добавлено (05.04.2012, 10:59) --------------------------------------------- по-моему я окончательно запутался! |
|
[6] likbezz [05.04.2012, 11:10] |
bandjuk, Да? ... Смотири исходник: http://ssilki.at.ua/mchat/ Вот что там есть: Quote <span style="mDetails">[<a href="javascript://" onclick="getChatSelection();chatInsert('Maks',selection);">Цитировать</a>]</span> Это похоже на «class»? ... ... Quote (bandjuk) и в исходнике: Quote <span style="mDetails">[<a href="javascript://" onclick="getChatSelection();chatInsert('bandjuk',selection);">Цит.</a>]</span> он есть! Ну и где он? - отметь цветом )))
Quote (bandjuk) но сам стиль прописан в ксс, может из-за этого? Т.е. в ксс это: Нет, здесь всё правильно. ... Класс только проставь. |
|
[7] bandjuk [05.04.2012, 11:29] |
likbezz, бляха-муха! Что у меня вечно не слава богу? Вот же где невнемательный! Там же реально написано стиль а не класс! Спасибо, теперь всё работает! |
|
[8] likbezz [24.04.2012, 21:57] |
Quote (english-studiya) шаблон поменял, все заработало. Подскажите как сделать звук в чате (приход нового сообщения). Как сделать звук в мини чате при новом сообщении ...
Quote (english-studiya) курсор вернуть на стандартный? вспомнить бы куда я это засунул Если у вас выделяется - то не обязательно) ... |
|