Browse Source

Add oembed user option for use oembed instead of standard yotube embedding.

Remove global option and parse_url use of oembed.
pull/1/head
Fabio Comuni 11 years ago
parent
commit
7c5a7a94d4
  1. 54
      addon/oembed/oembed.php
  2. 3
      include/bbcode.php
  3. 12
      mod/parse_url.php

54
addon/oembed/oembed.php

@ -10,26 +10,58 @@
require_once('include/oembed.php');
function oembed_install() {
register_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
register_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
register_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
register_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
register_hook('plugin_settings', 'addon/oembed/oembed.php', 'oembed_settings');
register_hook('plugin_settings_post', 'addon/oembed/oembed.php', 'oembed_settings_post');
}
function oembed_uninstall() {
unregister_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
unregister_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
unregister_hook('jot_tool', 'addon/oembed/oembed.php', 'oembed_hook_jot_tool');
unregister_hook('page_header', 'addon/oembed/oembed.php', 'oembed_hook_page_header');
}
function oembed_settings_post(){
if(! local_user())
return;
if (isset($_POST['oembed-submit'])){
set_pconfig(local_user(), 'oembed', 'use_for_youtube', (isset($_POST['oembed_use_for_youtube'])?1:0));
notice( t('OEmbed settings updated') . EOL);
}
}
function oembed_settings(&$a,&$o) {
if(! local_user())
return;
$uofy = get_pconfig(local_user(), 'oembed', 'use_for_youtube' );
$o .='<h3 class="settings-heading">OEmbed</h3>';
$o.='
<div id="settings-username-wrapper">
<label for="oembed_use_for_youtube">'
.t('Use OEmbed for YouTube videos: ')
.'</label><input type="checkbox" id="oembed_use_for_youtube" name="oembed_use_for_youtube"'
. ($uofy==1?'checked="true"':'')
.'>
</div>
<div id="settings-username-end"></div>
<div class="settings-submit-wrapper">
<input type="submit" value="'.t('Submit').'" class="settings-submit" name="oembed-submit">
</div>';
}
function oembed_hook_page_header($a, &$b){
$a->page['htmlhead'] .= sprintf('<script src="%s/oembed/oembed.js"></script>', $a->get_baseurl());
$a->page['htmlhead'] .= sprintf('<script src="%s/oembed/oembed.js"></script>', $a->get_baseurl());
}
function oembed_hook_jot_tool($a, &$b) {
$b .= '
<div class="tool-wrapper" style="display: $visitor;" >
<img class="tool-link" src="addon/oembed/oembed.png" alt="Embed" title="Embed" onclick="oembed();" />
</div>
';
$b .= '
<div class="tool-wrapper" style="display: $visitor;" >
<img class="tool-link" src="addon/oembed/oembed.png" alt="Embed" title="Embed" onclick="oembed();" />
</div>
';
}
@ -59,4 +91,4 @@ function oembed_init(&$a) {
}
?>
?>

3
include/bbcode.php

@ -92,8 +92,7 @@ function bbcode($Text,$preserve_nl = false) {
// [img=widthxheight]image source[/img]
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" style="height:{$2}px; width:{$1}px;" >', $Text);
$a = get_app();
if ($a->config['system']['embed_all']){
if (get_pconfig(local_user(), 'oembed', 'use_for_youtube' )==1){
// use oembed for youtube links
$Text = preg_replace("/\[youtube\]/",'[embed]',$Text);
$Text = preg_replace("/\[\/youtube\]/",'[/embed]',$Text);

12
mod/parse_url.php

@ -1,7 +1,6 @@
<?php
require_once('library/HTML5/Parser.php');
require_once('include/oembed.php');
function parse_url_content(&$a) {
@ -26,15 +25,6 @@ function parse_url_content(&$a) {
}
if($url) {
// fetch link with oembed
if ($a->config['system']['embed_all']){
$j = oembed_fetch_url($url);
if ($j->type!="error"){
echo oembed_format_object($j);
killme();
}
}
$s = fetch_url($url);
} else {
echo '';
@ -106,4 +96,4 @@ function parse_url_content(&$a) {
echo sprintf($template,$url,$title,$text);
killme();
}
}

Loading…
Cancel
Save