Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: По поводу смайлов
 
 автор: IgorT   (26.02.2007 в 15:53)   письмо автору
 
 

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

   
 
 автор: Фитч   (26.02.2007 в 15:55)   письмо автору
 
   для: IgorT   (26.02.2007 в 15:53)
 

Нужно вставлять в сообщение что-то типа [smile1] и тд., потом их обрабатывать, заменяя на, скажем, <img src='smiles\smile1.gif'>

   
 
 автор: IgorT   (26.02.2007 в 16:01)   письмо автору
 
   для: Фитч   (26.02.2007 в 15:55)
 

но где взять еты готовые рисунки, не самому же их рисовать, может есть какието зарезервированые команды для их вывода?

   
 
 автор: ddhvvn   (26.02.2007 в 16:04)   письмо автору
 
   для: IgorT   (26.02.2007 в 16:01)
 

>может есть какието зарезервированые команды для их вывода?
??????

   
 
 автор: IgorT   (26.02.2007 в 16:07)   письмо автору
 
   для: ddhvvn   (26.02.2007 в 16:04)
 

ну я имел ввыду чтобы например набрать какую-то функцию *(); И автиоматически вставлялса какойто смайл, но наверное такого нет?

   
 
 автор: IgorT   (26.02.2007 в 16:18)   письмо автору
 
   для: IgorT   (26.02.2007 в 16:07)
 

ну так что никто не знает?

   
 
 автор: ZuArt   (26.02.2007 в 16:35)   письмо автору
 
   для: IgorT   (26.02.2007 в 16:18)
 

такого точно нет =)))

для вывода смайла нужно выводить его изображение <img src="..."> - для того, чтобы пользователь сам не писал такой текст, то при получении текста скрипт должен просто заменить ключевое слово [smile1] на конструкцию вида <img src="URL-путь_к_смайлам/smile1.gif"> - потом при выводе получится собственно говоря текст со смайлами =)

   
 
 автор: IgorT   (26.02.2007 в 16:45)   письмо автору
 
   для: ZuArt   (26.02.2007 в 16:35)
 

Хорошо, я понял но есть слудующая проблема - если пользователь в форме например ввел [smile1], сменная которая у нас получитса обрабатывается функцией htmlspecialchars();, поетому никакой код не исполнится. Или может я не так вас понял?

   
 
 автор: kasmanaft   (26.02.2007 в 17:24)   письмо автору
 
   для: IgorT   (26.02.2007 в 16:45)
 

htmlspecialchars не трогает квадратные скобки (и много еще чего не трогает, например, популярные :smile: ), по-этому "смайлы" можно заменять на <img ..> после того, как обработаете сообщение ф-ей htmlspecialchars.

   
 
 автор: IgorT   (26.02.2007 в 17:28)   письмо автору
 
   для: kasmanaft   (26.02.2007 в 17:24)
 

Да, но ето только когда пользователь будет сам впысивать [smile1], а надо сделать так чтобы он мог просто нажать на картинку и текст [smile1] добавлялса автоматически в textarea

   
 
 автор: bronenos   (26.02.2007 в 17:41)   письмо автору
 
   для: IgorT   (26.02.2007 в 17:28)
 

onClick='document.form.text.value+="[smile1]";'

   
 
 автор: ZuArt   (26.02.2007 в 17:46)   письмо автору
 
   для: IgorT   (26.02.2007 в 17:28)
 

ну а это уже просто - смотрите функции JS, которые работают с элементами формы - в данном случае с полем TEXTAREA...

самое простое ПРОСМОТРЕТЬ КОД ДАННОЙ формы ввода текста на ЭТОМ сайте...

Используйте тэги для выделения текста:<br>
Код: <a href=# onClick="javascript:tag('[co de]\n', '\n[/co de]'); return false;" >[co de][/co de]</a><br>

<!--
function tag(text1, text2)
{
if ((document.selection))
{
document.form.message.focus();
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
} else document.form.message.value += text1+text2;
}
//-->

PS. В этой строке поправка - поставил пробелы, чтобы форум не воспринял текст как служебное включение
<a href=# onClick="javascript:tag('[co de]\n', '\n[/co de]'); return false;" >[co de][/co de]</a><br>

   
 
 автор: IgorT   (26.02.2007 в 18:58)   письмо автору
 
   для: ZuArt   (26.02.2007 в 17:46)
 

А что емеется ввиду под [co de]\n', '\n[/co de] - ето какой то код, но хотяб пример покажите.

P.S. Кстати уже сделал так, когда пишеш конкретно код например :) - то вставляется смайл, но не могу никак понять как сделать ссылку на рисунке чтоб етот код сам добавлялса

   
 
 автор: IgorT   (26.02.2007 в 20:15)   письмо автору
 
   для: IgorT   (26.02.2007 в 18:58)
 

Наконец-то разобрался. Сделал так:

<form enctype='multipart/form-data' name='form' action=answer.php method=post>

<table border=1>
<tr> 
<td><a href=# onClick="javascript:smail(':)')" href=#><img src='smiles\smile.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':confused:')" href=#><img src='smiles\confused.gif'></a><br></td>
<td><a href=# onClick="javascript:smail(':mad:')" href=#><img src='smiles\mad.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(';)')" href=#><img src='smiles\wink.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':D')" href=#><img src='smiles\biggrin.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':(')" href=#><img src='smiles\frown.gif'></a><br></td>
<td><a href=# onClick="javascript:smail(':cool:')" href=#><img src='smiles\cool.gif'></a><br></td> 
<td><a href=# onClick="javascript:smail(':eek:')" href=#><img src='smiles\eek.gif'></a><br></td> 
</tr>
</table>

<textarea cols=60 rows=15 name=comments></textarea>
<input type="hidden" name="numtem" value="<?echo $numtem;?>">
<input type="hidden" name="tema" value="<?echo $tema;?>">
<br>
<input type="submit" value="Зберегти"> 
</form> 
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
   function smail(text1) 
   { 
    document.form.comments.value += text1; 
  } 
//--> 
</script> 


Теперь все работет, всем огромное спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования