/** * Checks if given addon is enabled * * @param string $button Button * @param string $type User type * @return boolean */ function ckeditor_addons_is_enabled($button = '', $type = null) { $options = ckeditor_addons_get_toolbar($type); foreach ($options as $group => $buttons) { if (in_array($button, $buttons)) { return true; } } return false; }
<?php $tags = array('a', 'p', 'div', 'span', 'img'); $allowed_styles = array('color', 'cursor', 'text-align', 'vertical-align', 'font-size', 'font-weight', 'font-style', 'border', 'border-top', 'background-color', 'border-bottom', 'border-left', 'border-right', 'margin', 'margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'padding', 'float', 'text-decoration'); $extra_allowed_content = array(); foreach ($tags as $tag) { $params = array('tag' => $tag); $extra_allowed_content[$tag]['styles'] = elgg_trigger_plugin_hook('allowed_styles', 'htmlawed', $params, $allowed_styles); } $extra_allowed_content['a']['attributes'] = '!href,target,title'; $path = elgg_get_simplecache_url('ckeditor/'); $config = ['allowedContent' => true, 'baseHref' => elgg_get_site_url(), 'removePlugins' => ['tabletools', 'resize'], 'extraPlugins' => ['blockimagepaste'], 'defaultLanguage' => 'en', 'language' => get_language(), 'skin' => 'moono', 'uiColor' => '#EEEEEE', 'contentsCss' => elgg_get_simplecache_url('elgg/wysiwyg.css'), 'disableNativeSpellChecker' => false, 'disableNativeTableHandles' => false, 'removeDialogTabs' => ['image:advanced', 'image:Link'], 'extraAllowedContent' => $extra_allowed_content, 'linkembedPlaceholder' => elgg_get_simplecache_url('components/ckeditor/graphics/placeholder.png')]; $admin_toolbar = ckeditor_addons_get_toolbar('admin'); $user_toolbar = ckeditor_addons_get_toolbar('user'); $plugins = ['blockimagepaste' => ['path' => elgg_get_simplecache_url('elgg/ckeditor/blockimagepaste.js')]]; if (ckeditor_addons_is_enabled('Image')) { if (elgg_get_plugin_setting('allow_uploads', 'ckeditor_addons')) { $config = array_merge($config, ['filebrowserBrowseUrl' => elgg_normalize_url('ckeditor/browse'), 'filebrowserUploadUrl' => elgg_add_action_tokens_to_url(elgg_normalize_url('action/ckeditor/upload')), 'filebrowserImageWindowWidth' => '640', 'filebrowserImageWindowHeight' => '480']); } } if (ckeditor_addons_is_enabled('LinkEmbed') && elgg_is_active_plugin('hypeScraper')) { $config['extraPlugins'][] = 'linkembed'; $plugins['linkembed'] = ['path' => elgg_get_simplecache_url('components/ckeditor/linkembed.js')]; } if (ckeditor_addons_is_enabled('Tooltip')) { $config['extraPlugins'][] = 'tooltip'; $plugins['tooltip'] = ['path' => elgg_get_simplecache_url('components/ckeditor/tooltip.js')]; } $config['extraPlugins'][] = 'resize'; $config['removePlugins'] = implode(',', $config['removePlugins']); $config['extraPlugins'] = implode(',', $config['extraPlugins']);