Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem + TinyMCE
Forum PHP.pl > Forum > PHP
loomisti
Witam.


Mam taki problem...
Stworzyłem strone we flashu, każda podstrona we flashu wczytuje zawartość plików .txt
Aby zarządzać treścią w prosty sposób dany plik .txt (np. aktualnosci.txt) edytuje poprzez "panel administracyjny" - troche to za duzo powiedziane:P
Dane z pliku przesyłam do formularza, w którym edytuje treść za pomocą TinyMCE a następnie zapisuje.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Full featured example</title>
  5.  
  6. <!-- TinyMCE -->
  7. <script type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
  8. <script type="text/javascript">
  9. tinyMCE.init({
  10. // General options
  11. language : "pl",
  12. mode : "textareas",
  13. theme : "advanced",
  14. plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,in
    linepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,dir
    ectionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wo
    rdcount,advlist,autosave",
  15.  
  16. // Theme options
  17. theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justif
    ycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizesele
    ct",
  18. theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,out
    dent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|
    ,insertdate,inserttime,preview,|,forecolor,backcolor",
  19. theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iesp
    ell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
  20. theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acro
    nym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft",
  21. theme_advanced_toolbar_location : "top",
  22. theme_advanced_toolbar_align : "left",
  23. theme_advanced_statusbar_location : "bottom",
  24. theme_advanced_resizing : true,
  25.  
  26. // Example content CSS (should be your site CSS)
  27. content_css : "css/content.css",
  28.  
  29. // Drop lists for link/image/media/template dialogs
  30. template_external_list_url : "lists/template_list.js",
  31. external_link_list_url : "lists/link_list.js",
  32. external_image_list_url : "lists/image_list.js",
  33. media_external_list_url : "lists/media_list.js",
  34.  
  35. // Style formats
  36. style_formats : [
  37. {title : 'Bold text', inline : 'b'},
  38. {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
  39. {title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
  40. {title : 'Example 1', inline : 'span', classes : 'example1'},
  41. {title : 'Example 2', inline : 'span', classes : 'example2'},
  42. {title : 'Table styles'},
  43. {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
  44. ],
  45.  
  46. });
  47. </script>
  48. </head>
  49. <body>
  50. <?php
  51.  
  52. $elm1 = trim($_POST['elm1']);
  53. $tekst = '<b>To </b>jest tekst';
  54. if(empty($elm1)) {
  55.  
  56. echo '<form method="post" action="">
  57. <div>
  58. <div>
  59. <textarea id="elm1" name="elm1" rows="15" cols="80" style="width: 80%">' .$tekst. '</textarea><br /> </div>
  60. <input type="submit" value="Zapisz" />
  61. </div>
  62. </form>';
  63. }
  64. else {
  65.  
  66. $dane = $elm1;
  67. $file = "baza.txt";
  68. $fp = fopen($file, "w");
  69. flock($fp, 2);
  70. fwrite($fp, $dane);
  71. flock($fp, 3);
  72. fclose($fp);
  73.  
  74. echo "Dane zostały zapisane!<br />";
  75. }
  76.  
  77. ?>
  78. </body>
  79. </html>


Samo wczytywanie, edycja i (prawie) zapis działa...
Prawie dlatego, że dane (kod thml) ktory wygeneruje TinyMCE po przesłaniu do .txt źle się zapisują.
Podczas edycji w TinyMCE oglądając podgląd kodu html jest np:
  1.  
  2. <h1 style="color: #ff0000;"><strong>To </strong>jest tekst Bla Bla</h1>


Natomiast po zapisaniu do .txt jest:
  1. <h1 style=\"color: #ff0000;\"><strong>To </strong>jest tekst Bla Bla</h1>


pojawiają się "\" - tego niestety Flash nie odczyta...
Nie znam PHP zbyt dobrze, ale zapewne problem jest z formularzem i zapisem - ktoś może ma jakieś pomysły?? smile.gif

Kolejny problem to już sam TinyMCE, jak widać w zamieszczonym kodzie html, TinyMCE daje <strony> zamiast <b> - z Tym flash sobie również nie radzi...
Czy da się to jakoś zmienić w samym TinyMCE - ustawienia czy cos? Bo można oczywiście przelecieć foreachem 2x przez caly kod html i pozamieniac <strong> na <b> oraz </strong> na </b> - przy krótkim teksie ok, ale przy powiedzmy 2000 słow(?).

Będę wdzieczny za pomoc, pozdrawiam.



konrados
Jak chodzi o to dodawanie slashy to być moze masz włączone magic_quotes_gpc - w takim razie możesz użyć funk.

Cytat
TinyMCE daje <strony> zamiast <b>

Z pewnością gdzieś w kodzie TinyMCE możesz to zmienić, a jak nie to nie wiem czemu mówisz o jakimś foreach, jest przecież
loomisti
Jeśli chodzi o str_replace to fakt, przyda sie ta funkcja. Nie znam PHP dobrze jak powiedziałem, wiec raczej zrobilbym samu niz szukal funkcji biggrin.gif Ale poszperam w TinyMCE, moze tam sie to uda zmienic.
Z tymi slashami tez rewelka biggrin.gif

I problem tez jest z samym flashem (nie ten dział a może i nie to forum, ale moze ktos bedzie znal odpowiedz...) - flash nie interpretuje wszystkich znaczników html to raz, a dwa - ustawiając w polu tekstowym we flashu czcionke (styl i rodzaj mozna zostawic puste, ale rozmiar musi zostac podany) nie da sie tego pozniej zmienic. Tzn wczytuje jakis tekst z .txt gdzie mam <font size=20> a flash nadal wypisuje tekst wielkosci 12 - wtf??
konrados
A tu już Ci nie pomogę, nic o flashu nie wiem, ale może wybredny jest i raczej oczekuje np. <font size="20"> czyli parametry w cudzysł. tak jak należy.
loomisti
Daje tak jak piszesz, zawsze to samo... chodzi chyba o to, ze skoro się zadeklarowalo czcionke w polu tekstowym to on wszystko wyswietla z taka wielkoscia, nie wazne co jest w html'u, nie wiem jak to obejsc sad.gif

Użyłem tych dwóch funkcji, które podałeś i... pojawiają się problemy ;/
Bez ich uzycia edytor zapisuje teks do .txt z polskimi znakami.
Kiedy uzyje tych funkcji teks zapisuje sie bez polskich znakow - zastepowane sa "krzaczkami"...

Jakieś pomysły na to?snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.