Skip to content

Instantly share code, notes, and snippets.

@Qubadi
Created May 20, 2024 18:24
Show Gist options
  • Save Qubadi/5fdb2ea77e400110c2b33a5695c3e9f9 to your computer and use it in GitHub Desktop.
Save Qubadi/5fdb2ea77e400110c2b33a5695c3e9f9 to your computer and use it in GitHub Desktop.
Jetformbuilder and Jetengine form custom configuration for WYSIWYG editor
Description:
1. Copy the following PHP code and create a PHP snippet using your snippet plugins. Paste the code into the plugin and save it.
Jetformbuilder and Jetengine form custom configuration for WYSIWYG editor
It works for both forms, JetFormBuilder and JetEngine Form.
This code customizes the JetFormBuilder WYSIWYG editor by adding essential toolbar buttons and enabling media buttons
for enhanced functionality. It ensures that users have access to a wide range of formatting options, making content
creation more efficient. This setup enhances the overall user experience with improved editing capabilities.
_____________________________________________________
// Function to configure WYSIWYG editor
$wysiwygConfig = function ( $wysiwyg_config ) {
/**
* List of all available plugins can be found in wp-includes/js/tinymce/plugins
*/
$plugins = array(
'colorpicker',
'textcolor',
'image', // Add image plugin
'media', // Add media plugin for embedding videos
'link', // Add link plugin for hyperlinking
'lists' // Add lists plugin for bullet points and numbered lists
// Removed 'code' plugin due to loading issues
);
$toolbar_buttons = array(
'formatselect', // Add format select dropdown
'fontselect', // Add font select dropdown
'fontsizeselect',// Add font size select dropdown
'|',
'bold', // Add bold button
'italic', // Add italic button
'underline', // Add underline button
'|',
'forecolor', // Add text color button
'backcolor', // Add background color button
'|',
'alignleft', // Add align left button
'aligncenter', // Add align center button
'alignright', // Add align right button
'alignjustify', // Add align justify button
'|',
'bullist', // Add unordered list button
'numlist', // Add ordered list button
'|',
'outdent', // Add outdent button
'indent', // Add indent button
'|',
'link', // Add link button for hyperlinks
'unlink', // Add unlink button
'|',
'removeformat' // Add remove format button
);
if (is_user_logged_in()) {
$toolbar_buttons = array_merge($toolbar_buttons, array(
'image', // Add image button for image upload
'media', // Add media button for embedding videos
));
}
// Ensure no duplicate plugins
$existing_plugins = explode(',', $wysiwyg_config['tinymce']['plugins']);
$new_plugins = array_unique(array_merge($existing_plugins, $plugins));
$wysiwyg_config['tinymce']['plugins'] = implode(',', $new_plugins);
// Ensure no duplicate toolbar buttons
$existing_toolbar_buttons = explode(',', $wysiwyg_config['tinymce']['toolbar1']);
$new_toolbar_buttons = array_unique(array_merge($existing_toolbar_buttons, $toolbar_buttons));
$wysiwyg_config['tinymce']['toolbar1'] = implode(',', $new_toolbar_buttons);
// Remove the failed plugins 'insertdatetime', 'advlist', 'autolink', and 'code' if they exist
$wysiwyg_config['tinymce']['plugins'] = preg_replace('/\b(insertdatetime|advlist|autolink|code)\b/', '', $wysiwyg_config['tinymce']['plugins']);
$wysiwyg_config['tinymce']['plugins'] = trim($wysiwyg_config['tinymce']['plugins'], ',');
// Clean up duplicate commas and spaces in plugins and toolbar
$wysiwyg_config['tinymce']['plugins'] = preg_replace('/,{2,}/', ',', $wysiwyg_config['tinymce']['plugins']);
$wysiwyg_config['tinymce']['toolbar1'] = preg_replace('/,{2,}/', ',', $wysiwyg_config['tinymce']['toolbar1']);
// Enable media buttons
$wysiwyg_config['media_buttons'] = true;
return $wysiwyg_config;
};
// Apply the configuration to JetFormBuilder
add_filter( 'jet-form-builder/fields/wysiwyg-field/config', $wysiwygConfig );
// Apply the configuration to JetEngine Forms
add_filter( 'jet-engine/forms/fields/wysiwyg-field/config', $wysiwygConfig );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment