• Страница 1 из 1
  • 1
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Прочие модули (FAQ, Мини-чат, Почтовые формы, Опросы, Онлайн игры, Тесты) » Мини чат. Как скрыть кнопку цитировать для гостей? (Настройка мини чата.)
Мини чат. Как скрыть кнопку цитировать для гостей?
Дата: Среда, 04.04.2012, 17:36 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Мини чат » вид материалов, в шаблон:
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?>

...

Последний код предпочтительнее ...
...


 
Дата: Среда, 04.04.2012, 18:08 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Если же гости имеют право оставлять сообщения в чате, но кнопку нужно все равно скрыть, можно привязать проверку на наличие поля «Имя» - для гостей оно есть, для пользователей - нет.


...

Соответствено, скрипт:
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?>

...

Последний код предпочтительнее ...
...

Прикрепления: 6910433.png (2.8 Kb)

 
Дата: Четверг, 05.04.2012, 09:40 |
bandjuk
Генерал-майор
Группа: Пользователи
Сообщений: 290
Награды: 1
Репутация: 22
Статус: Offline


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("
Quote ("+a+")
"+b+"
\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
 
Дата: Четверг, 05.04.2012, 10:44 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


bandjuk,
Quote (bandjuk)
Наверно нет, т.к. цитата всё равно видна гостям!

Да всё правильно ты делаешь, но цитату нужно изначально скрыть ... а скрывается она по классу.
Куда делся класс mDetails у блока цитаты?


...

Прикрепления: 8142072.png (3.0 Kb)

 
Дата: Четверг, 05.04.2012, 10:59 |
bandjuk
Генерал-майор
Группа: Пользователи
Сообщений: 290
Награды: 1
Репутация: 22
Статус: Offline


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)
---------------------------------------------
по-моему я окончательно запутался! wacko

 
Дата: Четверг, 05.04.2012, 11:10 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


bandjuk,
Quote (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)
но сам стиль прописан в ксс, может из-за этого?
Т.е. в ксс это:

Нет, здесь всё правильно.
... Класс только проставь.


 
Дата: Четверг, 05.04.2012, 11:29 |
bandjuk
Генерал-майор
Группа: Пользователи
Сообщений: 290
Награды: 1
Репутация: 22
Статус: Offline


likbezz, бляха-муха! Что у меня вечно не слава богу? Вот же где невнемательный! Там же реально написано стиль а не класс!
Спасибо, теперь всё работает!


 
Дата: Вторник, 24.04.2012, 21:57 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Quote (english-studiya)
шаблон поменял, все заработало.
Подскажите как сделать звук в чате (приход нового сообщения).

Как сделать звук в мини чате при новом сообщении
...

Quote (english-studiya)
курсор вернуть на стандартный? вспомнить бы куда я это засунул

Если у вас выделяется - то не обязательно)
...


 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Прочие модули (FAQ, Мини-чат, Почтовые формы, Опросы, Онлайн игры, Тесты) » Мини чат. Как скрыть кнопку цитировать для гостей? (Настройка мини чата.)
  • Страница 1 из 1
  • 1
Поиск:


Мобильная версия