Advertisement
rochekaid

Textarea Merge Tag

Feb 28th, 2024
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. jQuery(document).ready(function($) {
  2. tinymce.PluginManager.add('custom_mergetag_plugin', function(editor) {
  3. var tagList = ['first_name','last_name','event','event_slug','weeks_away','start_date','start_time','end_date','end_time','linens','schedule','lodging', 'facebook','instagram','linked_event','linked_event_link','full_dates','4_weeks_out','2_weeks_out'];
  4. function buildList() {
  5. var list = '';
  6. tagList.forEach(function(tag) {
  7. list += '<li data-mergetag="' + tag + '">' + tag.charAt(0).toUpperCase() + tag.slice(1) + '</li>';
  8. });
  9. return list;
  10. }
  11.  
  12. editor.addButton('custom_mergetag_button', {
  13. text: ' Merge Tag',
  14. icon: 'upload',
  15. onclick: function() {
  16. var listHtml = '<ul id="custom-mergetag-list">' + buildList() + '</ul>';
  17. editor.windowManager.open({
  18. title: 'Select a Merge Tag',
  19. body: [{
  20. type: 'container',
  21. html: listHtml,
  22. onclick: function(e) {
  23. if (e.target.nodeName === 'LI') {
  24. var tag = e.target.getAttribute('data-mergetag');
  25. editor.insertContent('{{' + tag + '}}');
  26. editor.windowManager.close();
  27. }
  28. }
  29. }]
  30. });
  31. }
  32. });
  33. });
  34.  
  35. if (typeof tinymce !== 'undefined') {
  36. tinymce.init({
  37. selector: '.gform_wrapper textarea',
  38. plugins: "image link lists media custom_mergetag_plugin textcolor",
  39. toolbar: ['undo redo | formatselect | bold italic underline strikethrough | fontfamily fontsize blocks | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | ltr rtl | custom_mergetag_button'],
  40. branding: false,
  41. menubar: true
  42. });
  43. }
  44. });
  45.  
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement