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

HTML+CSS+JavaScript

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

 

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

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

тема: добавление в форму
 
 автор: smertnik   (01.05.2005 в 14:30)   письмо автору
 
 

Подскажите как сделать добавление смайликов или тегов в форму, типо этого
Код: [cod][/cod]
Жирный: [.b][./b]
Наклонный: [.i][./i]
URL: [.url][/.url]

   
 
 автор: cheops   (01.05.2005 в 20:27)   письмо автору
 
   для: smertnik   (01.05.2005 в 14:30)
 

Это можно осуществить примерно следующим образом

        Код: <a href=# onClick="javascript:tag('[cod]\n', '\n[/cod]'); return false;">[cod][/cod]</a><br>
        Жирный: <a href=# onClick="javascript:tag('[.b]', '[/.b]'); return false;" >[.b][/.b]</a><br>
        Наклонный: <a href=# onClick="javascript:tag('[.i]', '[/.i]'); return false;">[.i][/.i]</a><br>
        URL: <a href=# onClick="javascript:tag('[.url]', '[/.url]'); return false;" >[.url][/.url]</a><br>
<script language='JavaScript1.1' type='text/javascript'>
<!--
   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;
  }
//-->
</script>

   
 
 автор: smertnik   (04.05.2005 в 15:57)   письмо автору
 
   для: cheops   (01.05.2005 в 20:27)
 

Спасибо. Я тоже брал этот код с форума но он не работал, забыл поменять имя формы, и думал что еще что то надо.

   
 
 автор: SMAlik   (05.07.2005 в 12:11)   письмо автору
 
   для: cheops   (01.05.2005 в 20:27)
 

А каким образом обрабатывать вставленные теги. Что-то рылся в кодах форума и запутался. Подскажите, в каком файле код обработки.

   
 
 автор: SMAlik   (07.07.2005 в 08:14)   письмо автору
 
   для: SMAlik   (05.07.2005 в 12:11)
 

Что-то все замолчали!

   
 
 автор: Киналь   (07.07.2005 в 21:21)   письмо автору
 
   для: SMAlik   (07.07.2005 в 08:14)
 

$msg=str_replace("[.b]", "<B>", $msg);

RTFM=)

   
 
 автор: cheops   (07.07.2005 в 21:32)   письмо автору
 
   для: SMAlik   (07.07.2005 в 08:14)
 

Просто вопрос не по JavaScript, а по PHP - если бы он был задан на http://www.softtime.ru/forum/index.php?id_forum=1, то ответ был бы получен гораздо быстрее... Пусть текст сообщения будет в файле $postbody, тогда замену можно осуществить при помощи кода
<?php
    $text 
"[code]";
    
$lastocc 0;
    
$sndocc 1;
    
$result "";
    while(
$sndocc)
    {
      
$fstocc strpos($postbody,"[cod]",$lastocc);
      
$sndocc strpos($postbody,"[/cod]",$fstocc);
      if((
$fstocc>&& $sndocc>&& $lastocc>0) || ($fstocc >= && $sndocc>&& $lastocc == 0))
      {
        
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,$fstocc $lastocc)));
        
$result .= "<table border=0 ><tr><td class=codeblock>".highlight_string(substr($postbody,$fstocc 5,$sndocc $fstocc 5),true)."</td></tr></table>";
        
$lastocc $sndocc 5;
      }
      else
      {
        
$result .= nl2br(htmlspecialchars(substr($postbody,$lastocc,strlen($postbody)-$lastocc)));
        break;
      }
    }
    
$postbody $result;
    
$postbody str_replace("[ b]","<b>",$postbody);
    
$postbody str_replace("[ /b]","</b>",$postbody);
    
$postbody str_replace("[ i]","<i>",$postbody);
    
$postbody str_replace("[ /i]","</i>",$postbody);
    
$postbody=preg_replace("/\[ url\]\s*(\S*)\s*\[\/url\]/si",'<a href="\\1" target=_blank>\\1</a>',$postbody);
?>

Только следует пробелы в тэгах убрать, а ещё лучше взять этот код в исходых кодах форума LiteForum, который можно найти в разделе downloads нашего сайта http://www.softtime.ru/info/liteforum.php, файл utils/utils.php, функция post_work_up(), строка 23.

   
 
 автор: SMAlik   (08.07.2005 в 09:08)   письмо автору
 
   для: cheops   (07.07.2005 в 21:32)
 

спасибо

   
 
 автор: FaStY   (28.01.2006 в 20:37)   письмо автору
 
   для: cheops   (07.07.2005 в 21:32)
 

очень полезная штука, но все тем, кто не понимает как это делается, я советую взять ее из Liteforum.

   
 
 автор: Alexx   (23.07.2005 в 15:08)   письмо автору
 
   для: cheops   (01.05.2005 в 20:27)
 

а где в коде писать имя формы ?


        Код: <a href=# onClick="javascript:tag('[cod]\n', '\n[/cod]'); return false;">[cod][/cod]</a><br> 
        Жирный: <a href=# onClick="javascript:tag('[.b]', '[/.b]'); return false;" >[.b][/.b]</a><br> 
        Наклонный: <a href=# onClick="javascript:tag('[.i]', '[/.i]'); return false;">[.i][/.i]</a><br> 
        URL: <a href=# onClick="javascript:tag('[.url]', '[/.url]'); return false;" >[.url][/.url]</a><br> 
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
   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; 
  } 
//--> 
</script>

   
 
 автор: cheops   (23.07.2005 в 19:08)   письмо автору
 
   для: Alexx   (23.07.2005 в 15:08)
 

Это нужно в тэге <form> делать.

   
 
 автор: Alexx   (26.07.2005 в 16:28)   письмо автору
 
   для: cheops   (23.07.2005 в 19:08)
 

не получаеться:

<body>
<form name="form" method="post" action="">
  <textarea name="tag" id="tag"></textarea>
  
</form>
Код: <a href=# onClick="javascript:tag('[cod]\n', '\n[/cod]'); return false;">[cod][/cod]</a><br> 
        Жирный: <a href=# onClick="javascript:tag('[.b]', '[/.b]'); return false;" >[.b][/.b]</a><br> 
        Наклонный: <a href=# onClick="javascript:tag('[.i]', '[/.i]'); return false;">[.i][/.i]</a><br> 
        URL: <a href=# onClick="javascript:tag('[.url]', '[/.url]'); return false;" >[.url][/.url]</a><br> 
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
   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; 
  } 
//--> 
</script> 
</body>

   
 
 автор: sidPR   (30.01.2006 в 01:54)   письмо автору
 
   для: Alexx   (26.07.2005 в 16:28)
 

Надо вот так :

<body> 
<form name="form" method="post" action=""> 
  <textarea name="message" id="tag"></textarea> 

   
Rambler's Top100
вверх

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