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

HTML+CSS+JavaScript

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

 

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

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

тема: визуальный редактор
 
 автор: Alexx   (07.09.2005 в 21:50)   письмо автору
 
 


<HTML>
<head>
<title>Редактор</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
<BODY>



<SCRIPT LANGUAGE="javascript">


// Function draw  format tool panel  
function DrawPanel()
    {  
        //a - self and RichEdit comands
        //b - spaces between  different tool groups
        a=new Array('H1','H2','H3','H4'
,'Bold','Italic','Superscript','Subscript',
'Underline','JustifyLeft','JustifyCenter',
'JustifyRight','JustifyFull',
'InsertUnorderedList','InsertOrderedList',
'Indent','Outdent','CreateLink',
'InsertHorizontalRule','RemoveFormat',
"InsertTable","InsertImage");

b=new Array(0,0,0,1,0,0,0,0,1,0,0,
0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0);
// tool panel writing
for (i=0;i<21;i++)
{document.write("<TD><INPUT type=button style=\"width:22; height:22;background-image:     url(images/"+a[i]+".gif)\" OnClick=\"SetStyle ('"+a[i]+"')\" TITLE="+a[i]+"></TD>" );
if (b[i]) document.write('<TD><IMG SRC="images/vline.gif" WIDTH="8"
 HEIGHT="20" BORDER=0></TD>');
            }
    }

//Function draw table panel
function DrawTablePanel()
   { 
        //a - table parameters names 
        //b - table parameters vaues 
        //c - sizes of  input boxes
        a=new Array('TableCol','TableRow','TableBorder','TablePadding',
'TableSpacing','TableWidth');

        b=new Array(2,2,1,2,0,"100%");

        c=new Array(20,20,20,20,20,40);

        for (i=0;i<6;i++)      
        {
            document.write(
            '<TD><IMG SRC="images/'+a[i]+'.gif" WIDTH="18" HEIGHT="18" BORDER=0 
ALT="'+a[i]+'"></TD>'+
            '<TD><INPUT STYLE="font-size:10px; 
font-family:Arial; width='+c[i]+'; height=17" TYPE=TEXT VALUE="'+b[i]+'" ID='+a[i]+'></TD>'+

    '<TD WIDTH=8> </TD>'
            );
        }
   }

// Function show and hide the tool panel then HTML sourse is viewed
function SetViewHTML()
   {
    if  (document.all['Panel'].style.visibility=="visible")
       {frames ["EditFrame"].document.body.innerText= frames ["EditFrame"].document.body.innerHTML;
       document.all['Panel'].style.visibility="hidden";
       }
       else
       {frames ["EditFrame"].document.body.innerHTML= 
frames ["EditFrame"].document.body.innerText;
       document.all['Panel'].style.visibility="visible";
       }

   }

// Function  execute format commandes.
function SetStyle (newStyle)
    { 
        frames ['EditFrame'].focus();
        var selection = frames ['EditFrame'].document.selection.createRange();
        if  ((newStyle=="H1") || (newStyle=="H2") || (newStyle=="H3") || (newStyle=="H4"))

        {selection.pasteHTML("<"+newStyle+">"+selection.
text+"</"+newStyle+">")} else
        if  (newStyle=="InsertTable") {SwapPanel();} else
         selection.execCommand (newStyle);
        frames ['EditFrame'].focus();
    }

// Function swap table panel and  format tool panel. Table panel is hidden 
function  SwapPanel()
    {
        var iTable=document.all['Panel'].innerHTML; document.all['Panel'].innerHTML=document.all['DivTableInsert'].innerHTML;
        document.all['DivTableInsert'].innerHTML=iTable;
    }

//Function formed and insert table into edited text   
function InsertTable()
    {
         var rows=document.all['TableRow'].value;      
         var cols=document.all['TableCol'].value;      
         var table=frames ['EditFrame'].document.createElement("table");
         table.border=document.all['TableBorder'].value;
         table.cellPadding=document.all['TablePadding'].value;
         table.cellSpacing=document.all['TableSpacing'].value;                
         table.width=document.all['TableWidth'].value;
         for (i=0;i<rows;i++)
         {
            table.insertRow();
            j=0;
            for (j=0;j<cols;j++)
            {            
               table.rows(i).insertCell();
            }
         }
         
          frames ['EditFrame'].document.selection.createRange().pasteHTML(table.outerHTML);
          SwapPanel();
      }


</SCRIPT>

<small>
<div align=right>
<a href="index.html">Russian</a> |
<a href="eng.htm">English</a>  |
<a href="fra.htm">French</a></DIV>
</small>

<!--  --------------------------------------------Tool panel   --------------------------------------------  -->

<FORM ACTION="default.asp" METHOD="post">
<TABLE BGCOLOR="#CCCCCC"   WIDTH=100%>
<TR>
     <TD>
    <TABLE CELLPADDING="0" CELLSPACING="0">
    <TR>        
             <TD>    
             <INPUT ID="ButtonHTML" type=button style="width:22; height:22;background-image:     url(images/HTML.gif)" OnClick="SetViewHTML()" TITLE="SourceHTML">
             </TD>
             <TD><IMG SRC="images/vline.gif" WIDTH="8" HEIGHT="20" BORDER=0></TD>
             <TD> 
                 <DIV ID="Panel" STYLE="visibility:visible">
                     <TABLE  BORDER="0"  CELLPADDING="0" CELLSPACING="0">
                        <TR>
                            <SCRIPT>DrawPanel();    
                            </SCRIPT>
                        </TR>
                 </TABLE>
                 </DIV>
             </TD> 
    
    </TR>
    </TABLE>
    </TD>

</TR>
</TABLE>


<!--  -------------------------------------------- The editor frame   --------------------------------------------  -->

<IFRAME SRC="about_rus.htm"  ID="EditFrame" WIDTH="100%" HEIGHT="320"  CONTENTEDITABLE="true"></IFRAME><BR>
<SCRIPT>
    var RichEdit = frames ['EditFrame'].document;
    RichEdit.designMode = 'On';
//
//
//  You can create new content of editor arrea from this script.
// 
//    RichEdit.open ();
//    RichEdit.write ("<h1>Hello Editor!</h1>");
//    RichEdit.close ();
//
//
</SCRIPT>
</FORM>



<!--  -------------------------------------------- The hidden table panel   --------------------------------------------  -->

<DIV ID="DivTableInsert"  WIDTH=0 HEIGHT=0 STYLE="visibility:hidden">
<TABLE CELLPADDING=0 CELLSPACING=0>
<TR>
    <TD> 
    </TD>
    <SCRIPT>
    DrawTablePanel();
    </SCRIPT>
    <td >
             <INPUT  TYPE=button style="width:22; height:22;background-image:     url(images/OK.gif)"  OnClick="InsertTable()" TITLE="InsertTable">
    </TD>
    <TD>
             <INPUT  TYPE=button style="width:22; height:22;background-image:     url(images/Abort.gif)"  OnClick="SwapPanel()" TITLE="Abort">
</TD>
</TABLE>
</DIV>






</BODY>
</HTML>


вообщем вод код редактора весь выклаывать не буду так как оч много также не выложил картинки. Есть маленький вапрос, текс который в окне отредактируешь как его запихнуть в переменную $texteditor(пхп) и потом уже сохранить в файл ?

   
 
 автор: Duran   (08.09.2005 в 09:53)   письмо автору
 
   для: Alexx   (07.09.2005 в 21:50)
 

Ну надоже !
Дизайн форума хоть и растянулся, но выдержал :-)).
На скоко я понял, мам нужно из формы HTML формы передать в скрипт PHP вот этот текст ?

   
 
 автор: elenaki   (08.09.2005 в 11:15)   письмо автору
 
   для: Duran   (08.09.2005 в 09:53)
 

да, меня тоже интересует этот вопрос. нашла неплохой редактор, уже начала переводить его на греческий, когда обнаружила, что он записывает результат из окна редактирования в файл, а мне надо в базу (со всеми вытекающими последствиями, HTML-тэги, special character и т.д.).

   
 
 автор: Duran   (08.09.2005 в 13:23)   письмо автору
 
   для: elenaki   (08.09.2005 в 11:15)
 

М-дя... тока щас обратил внимание на код. Очень похож на WEB редактор, причем он обслуживается ASP скриптом :-).
Если у вас на хостинге есть IIS и соответственно ASP со всеми ActiveX (у ASP мало своих возможностей), то можно отредактировать VB сценарий в ASP скрипте на нужное Вам сохранение.
По памяти вот вам ссылочка на работающий online редактор (скрипт ~40 кб.) , не знаю он/не он, но этим кадато пользовался :-).

http://www.m-tecs.net/?a=products&b=pwe

   
 
 автор: rockmachine   (08.09.2005 в 13:26)   письмо автору
 
   для: elenaki   (08.09.2005 в 11:15)
 

Ваша задача распадается на две:
1) Отправка содержания на сервер.
Как сделать:

Send_string=EditFrame.document.body.innerHTML;
document.location="PHP_script.php?texteditor="+Send_string;

здесь в первой строке: Send_string - содержание окна редактирования, которое в данном случае имеет id=EditFrame и является плавающим фреймом, во второй строке - процедура отсылки.
Содержание окажется (на сервере) в переменной $texteditor
2)Нужно закодировать Send_string так, чтобы не возникло ошибок при передаче. Это тема отдельного разговора и она обсуждается в этом же форуме.

   
Rambler's Top100
вверх

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