Hoe php code gebruiken in CKEditor

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim Neefs

Wim Neefs

21/04/2021 21:01:20
Quote Anchor link
Hallo allen,

ik zou eigenlijk php code moeten kunnen gebruiken in de CKEditor4.

Ik heb de volgende regels al toegevoegd aan config.js maar het werkt niet zoals het moet.
CKEDITOR.config.protectedSource.push(/<\?[\s\S]*?\?>/g);
CKEDITOR.config.extraPlugins = 'showprotected';

De php code, wanneer toegevoegd in de sourcecode stand, blijft als php staan. Dus dat is volgens mij goed maar als ik het dan uitvoer dan krijg ik niets, van wat ik in de php code echo, te zien.

Wat doe ik verkeerd of wat moet ik nog doen?

Dit is de code die ik in de sourcecode van CKEditor heb toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php print "test1"; echo "test2";?>


Groeten,
Wim
 
PHP hulp

PHP hulp

22/09/2021 04:07:29
 
- Ariën -
Beheerder

- Ariën -

21/04/2021 21:11:57
Quote Anchor link
Waarom zou je dat eigenlijk willen? En ook CKeditor is hier niet voor bedoeld omdat het een WYSIWYG-editor is. En al zou het kunnen: De kans dat iemand er gevaarlijke dingen mee uitvoert is meteen een stuk groter.

Gaat het om bepaalde variabelen om bijvoorbeeld een naam te tonen? Maak dan zelf placeholders, zoals [username].

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$replace
= str_replace("[username]", $data['username'], $data['inhoud']);
?>
Gewijzigd op 21/04/2021 21:13:27 door - Ariën -
 
Ad Fundum

Ad Fundum

21/04/2021 21:17:36
Quote Anchor link
Even een stapje terug.. wat wil je precies met PHP in de CKE editor?

Wil je de editor integreren in je eigen PHP? Of wil je PHP code editen vanuit de editor?
En waar kan ik lezen hoe het zou moeten?
Als ik hier kijk kom ik er niet direct uit..
Gewijzigd op 21/04/2021 21:17:54 door Ad Fundum
 
Wim Neefs

Wim Neefs

21/04/2021 23:22:19
Quote Anchor link
Ik gebruik de CKEditor om de tekst aan te passen die als mail moet dienen. Het is echter zo dat niet naar iedereen dezelfde tekst moet gestuurd worden. Dit is afhankelijk van bepaalde voorwaarden.
Naargelang welke keuze de persoon eerder heeft gemaakt, welke in de db is opgeslagen moet hij bepaalde gegevens in die mail ontvangen.
Om een klein voorbeeld te geven.
De persoon heeft vooraf de keuze gehad om een bepaald afspreekmoment te kiezen. Naargelang welk afspreekmoment de persoon heeft gekozen moet hij hiervan het afspreekadres ontvangen. Het is echter ook zo dat de standaard tekst ook makkelijk moet kunnen worden aangepast, daarom de CKEditor. Als de standaard tekst altijd hetzelfde was dan was het geen probleem en had ik die CKEditor niet nodig.
Hopelijk is het een beetje duidelijker.

Groeten,
Wim
 
Thom nvt

Thom nvt

22/04/2021 07:58:51
Quote Anchor link
Dan is het denk ik netter om een (eventueel zelf gemaakte) templating engine gebruiken.
Dan kun je "tokens" gebruiken en vertalen naar de daadwerkelijke waarde. Zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Beste {{voornaam}} {{achternaam}},

Lorem ipsum dolor sit amet.....


In PHP kun je dan met een regex als {{([A-Za-z]\w+)}} die tokens er uit vissen en vervangen door de daadwerkelijke waarde vlak voordat je de mail verstuurd.
Op die manier houd je de PHP code buiten het template. Schoner en ook veiliger.

Toevoeging: Voor je zelf iets in elkaar gaat zetten, kijk eens naar bestaande oplossingen zoals Twig of Mustache
Gewijzigd op 22/04/2021 08:01:58 door Thom nvt
 
Wim Neefs

Wim Neefs

26/04/2021 14:02:44
Quote Anchor link
Bedankt allemaal voor de info.
Aan de hand van de info van Thom heb ik een oplossing gevonden maar niet met Twig of Mustache.
 
- Ariën -
Beheerder

- Ariën -

26/04/2021 14:23:56
Quote Anchor link
Wat dan wel?
Just interesting.....
 
Wim Neefs

Wim Neefs

26/04/2021 17:36:31
Quote Anchor link
Ongeveer zoals Thom vermeldde met een str_replace.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.