addBehavior('adminPageHTTPHeaderCSP',array('externalMediaBehaviors','adminPageHTTPHeaderCSP')); $core->addBehavior('adminBlogPreferencesForm',array('externalMediaBehaviors','adminBlogPreferencesForm')); $core->addBehavior('adminBeforeBlogSettingsUpdate',array('externalMediaBehaviors','adminBeforeBlogSettingsUpdate')); $core->addBehavior('adminPostEditor',array('externalMediaBehaviors','adminPostEditor')); $core->addBehavior('ckeditorExtraPlugins', array('externalMediaBehaviors','ckeditorExtraPlugins')); class externalMediaBehaviors { public static function adminPageHTTPHeaderCSP($csp) { if (!isset($csp['script-src'])) { $csp['script-src'] = ''; } $csp['script-src'] .= ' '.'https://api.embed.ly'; } public static function adminBlogPreferencesForm($core,$settings) { $settings->addNameSpace('extmedia'); echo '

'.__('External Media').'

'."\n". '

'."\n". '

'.__('See embed.ly web site in order to get your free API Key.').'

'."\n". '
'."\n"; } public static function adminBeforeBlogSettingsUpdate($settings) { $settings->addNameSpace('extmedia'); $settings->extmedia->put('api_key',empty($_POST['extmedia_api_key'])? '' : $_POST['extmedia_api_key'],'string'); } public static function adminPostEditor($editor='',$context='',array $tags=array(),$syntax='') { global $core; $res = ''; if ($editor == 'dcLegacyEditor') { $res = dcPage::jsLoad(urldecode(dcPage::getPF('externalMedia/post.js')),$core->getVersion('externalMedia')). '\n"; } elseif ($editor == 'dcCKEditor') { $core->blog->settings->addNamespace('extmedia'); $res = '\n"; } return $res; } public static function ckeditorExtraPlugins(ArrayObject $extraPlugins, $context='') { $extraPlugins[] = array( 'name' => 'externalmedia', 'button' => 'ExternalMedia', 'url' => DC_ADMIN_URL.'index.php?pf=externalMedia/cke-addon/' ); } }