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/'
);
}
}