Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP][JavaScript]Zmiana tresci w textarea TinyMCE

Napisany przez: fcppl 22.11.2022, 11:44:09

Witam

Mam pole textarea i w niej treść (pobierana z SQL). Potrzebuję poprzez kliknięcie w button zmienić nazwy np:

Nazwa jeden na Nowa Nazwa jeden
Nazwa dwa na Nowa Nazwa dwa

I zrobiłem to tak:

  1. <http://december.com/html/4/element/textarea.html id="element">
  2. Nazwa jeden
  3. Nazwa dwa
  4. </http://december.com/html/4/element/textarea.html>
  5.  
  6. <http://december.com/html/4/element/button.html id="changeText">Replace Text</http://december.com/html/4/element/button.html>
  7.  
  8. <http://december.com/html/4/element/script.html>
  9. const changeText = (e) => {
  10. const element = $("#element");
  11. const textToReplace = element.text();
  12. const newText = textToReplace.replace("Nazwa jeden", "Nowa Nazwa jeden").replace("Nazwa dwa", "Nowa Nazwa dwa");
  13. element.text(newText);
  14. };
  15.  
  16. $(document).on('click', '#changeText', changeText);
  17. </http://december.com/html/4/element/script.html>


Działa wszystko b.dobrze, ale problem zaczyna się jak mam podłączony Edytor TinyMCE (Wersja: 5.10.6)

Nie mam pojęcia jak to podłączyć do edytora TinyMCE. Niestety nie znalazłem też żadnych pomocy w podobnym temacie na forum.

Proszę o pomoc.

Napisany przez: viking 22.11.2022, 11:50:34

https://www.tiny.cloud/docs/ui-components/toolbarbuttons/

Napisany przez: fcppl 22.11.2022, 11:54:57

dziękuję za pomoc, a mogę prosić o przykład jak to połączyć do mojego rozwiązania? Niestety nie wiem jak do TinyMCE dołączyć swoj skrypt ten co pokazywałem wcześniej.

Napisany przez: viking 22.11.2022, 13:46:40

Masz tam sporo przykładów jak operować na treści, pewnie nawet do nich nie zajrzałeś tylko od razu chcesz gotowca. Sorry, pokaż co próbowałeś.

Napisany przez: fcppl 22.11.2022, 16:04:48

Mogło tak to wyglądać bo od razu poprosiłem o przykład. Wykonuję dużo testów od wczoraj. Nie pokazuję tego bo niestety nie mam pojęcia jak mam połączyć to z TinyMCE i wygląda to strasznie amatorsko. Czytałem tez wszystko co wysłałeś dzisiaj jako podpowiedż, ale dalej moim największym problemem jest podlączenie tego do TinyMCE.

Jedynie co zrobiłem to cos w tym stylu ale to nie dziala: Nowy przypisc (My Custom Button) do Akcji sie pojawia ale jak zrobic replace tego nie wiem i niestety nie mam wiedzy jak to podlaczyc pod TinyMCE

  1.  
  2.  
  3. tinymce.init({
  4. selector: '#product_desc',
  5. toolbar: 'myCustomToolbarButton',
  6. setup: function (editor) {
  7. editor.ui.registry.addButton('myCustomToolbarButton', {
  8. text: 'My Custom Button',
  9. onAction: function () {
  10. editor.on('PostProcess', function(ed) {
  11. ed.content = ed.content.replace('dddddd','test');
  12. });
  13. },
  14. });
  15. }
  16. });
  17.  
  18.  
  19.  

Napisany przez: nospor 22.11.2022, 16:18:32

Ja nie wiem... nie uzywam tinymce w ogole, ale 3 minuty googlania i mam dzialajacy kod

Kod
tinymce.init({
  selector: 'textarea#custom-toolbar-button',
  toolbar: 'customInsertButton customDateButton',
  setup: function (editor) {

    editor.ui.registry.addButton('customInsertButton', {
      text: 'My Button',
      onAction: function (_) {
        editor.setContent(editor.getContent().replace('CO', 'NA CO'));
        
      }
    });

i juz

Napisany przez: fcppl 25.11.2022, 09:16:46

dziękuję o to mi chodziło i wszystko działa idealnie

witam,

Napotkałem jeszcze jeden problem.

Jeżeli chce zmienić nazwę z polskimi literami np: Wysokość niestety nic nie działa, ale jak wpisze Wysokośćo (dodam o na końcy) wtedy zmiana działa poprawnie.

W samym skrypcie z pierwszego posta dokładnie występuje ten sam problem.

Zaznaczam że szukałem rozwiązania w googlach ale nie potrafię nić na ten temat wyszukać. Sam też coś tam testowałem i niestety też sobie nie poradziłem.

Proszę o jakąś wskazówkę, a jeżeli jest możliwość o przykład.

Tak wygląda moje gotowe ustawienia Tinymce:

  1. tinymce.init({
  2. selector: "#product_desc",
  3. plugins: 'code | table | link | image | paste',
  4. toolbar: 'code | table | undo redo | link | image | alignleft aligncenter ' + 'alignright alignjustify | blocks | ' + 'bold italic | myCustomToolbarButton',
  5. menubar: 'tools | table tabledelete | tableprops tablerowprops tablecellprops | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol | link | image',
  6. table_default_attributes: {},
  7. table_default_styles: {},
  8. height : "900",
  9. paste_as_text: true,
  10. entities : "160,nbsp,38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,r
    eg,8482,trade,8240,permil,60,lt,62,gt,8804,le,8805,ge,176,deg,8722,minus",
  11. invalid_styles: {
  12. 'table': 'width height',
  13. 'tr' : 'width height',
  14. 'th' : 'width height',
  15. 'td' : 'width height'
  16. },
  17. setup: function (editor) {
  18. editor.ui.registry.addButton('myCustomToolbarButton', {
  19. text: 'Tłumaczenie',
  20. onAction: function () {
  21. editor.setContent(editor.getContent()
  22.  
  23.  
  24.  
  25. .replace(/\bWysokość\b/ugi, 'Nowa nazwa')
  26.  
  27. );
  28. }
  29. });
  30. }
  31. });


witam, czy może mi ktoś pomoc?

z tego co ustaliłem to powoduje to replace(/\bWysokość\b/ugi, 'Nowa nazwa') - (\bxxx\b). Jednak dalej nie wiem jak ten problem rozwiązać. I problem występuję tylko jak na końcu słowa jest znak PL np: słowo Sprężyna zamienia dobrze.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)