From 6769436f3b43074d7d5895b36927eddf37b0ba8d Mon Sep 17 00:00:00 2001
From: Fabio Comuni <fabrix.xm@gmail.com>
Date: Fri, 21 Oct 2011 16:26:29 +0200
Subject: [PATCH 1/2] oembed. fix html2bbcode when oembed html contains span
 and utf8 chars

---
 include/oembed.php                            | 24 ++++++++++++-------
 .../plugins/bbcode/editor_plugin_src.js       | 17 ++++++++-----
 2 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/include/oembed.php b/include/oembed.php
index 06f71a3b3..a8f6636ff 100644
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -81,16 +81,22 @@ function oembed_format_object($j){
 		}; break;  
 		case "rich": {
 			// not so safe.. 
-			$ret.= "<blockquote>".$j->html."</blockquote>";
+			$ret.= $j->html;
 		}; break;
 	}
 
-	$embedlink = (isset($j->title))?$j->title:$embedurl;
-	$ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
-	if (isset($j->author_name)) $ret.=" by ".$j->author_name;
-	if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
+	// add link to source if not present in "rich" type
+	if (  $j->type!='rich' || !strpos($ret,$embedurl) ){
+		$embedlink = (isset($j->title))?$j->title:$embedurl;
+		$ret .= "<a href='$embedurl' rel='oembed'>$embedlink</a>";
+		if (isset($j->author_name)) $ret.=" by ".$j->author_name;
+		if (isset($j->provider_name)) $ret.=" on ".$j->provider_name;
+	} else {
+		// add <a> for html2bbcode conversion
+		$ret .= "<a href='$embedurl' rel='oembed'/>";
+	}
 	$ret.="<br style='clear:left'></span>";
-	return $ret;
+	return  mb_convert_encoding($ret, 'HTML-ENTITIES', mb_detect_encoding($ret));
 }
 
 function oembed_bbcode2html($text){
@@ -136,8 +142,8 @@ function oembed_html2bbcode($text) {
 		
 		$xattr = oe_build_xpath("class","oembed");
 		$entries = $xpath->query("//span[$xattr]");
-		
-		$xattr = oe_build_xpath("rel","oembed");
+
+		$xattr = "@rel='oembed'";//oe_build_xpath("rel","oembed");
 		foreach($entries as $e) {
 			$href = $xpath->evaluate("a[$xattr]/@href", $e)->item(0)->nodeValue;
 			if(!is_null($href)) $e->parentNode->replaceChild(new DOMText("[embed]".$href."[/embed]"), $e);
@@ -148,4 +154,4 @@ function oembed_html2bbcode($text) {
 	} 
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
index 789e75c39..9e680e104 100644
--- a/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
+++ b/library/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js
@@ -53,19 +53,24 @@
 
 			/* oembed */
 			function _h2b_cb(match) {
-				text = bin2hex(match);
 				function s_h2b(data) {
 						match = data;
-				}
-				$.ajax({
-					url: 'oembed/h2b?text=' + text,
+				}
+				$.ajax({
+					type:"POST",
+					url: 'oembed/h2b',
+					data: {text: match},
 					async: false,
 					success: s_h2b,
 					dataType: 'html'
 				});
 				return match;
 			}
-			s = s.replace(/<span class=\"oembed(.*?)<\/span>/gi, _h2b_cb);
+			if (s.indexOf('class="oembed')>=0){
+				//alert("request oembed html2bbcode");
+				s = _h2b_cb(s);
+			}
+			
 			/* /oembed */
 
 
@@ -154,4 +159,4 @@
 
 	// Register plugin
 	tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
-})();
\ No newline at end of file
+})();

From d80c0da3c0bf2ab599f5d013d5c947823d917363 Mon Sep 17 00:00:00 2001
From: Fabio Comuni <fabrix.xm@gmail.com>
Date: Fri, 21 Oct 2011 16:26:57 +0200
Subject: [PATCH 2/2] add custom style to object tag in tinymce

---
 images/plugin.png       | Bin 0 -> 2043 bytes
 view/custom_tinymce.css |   6 ++++++
 2 files changed, 6 insertions(+)
 create mode 100644 images/plugin.png

diff --git a/images/plugin.png b/images/plugin.png
new file mode 100644
index 0000000000000000000000000000000000000000..08b09e0601fd5527c202739ea6031b0a0e692169
GIT binary patch
literal 2043
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
Z{ta&{pLHVVESvxU002ovPDHLkV1iB6^%wvE

literal 0
HcmV?d00001

diff --git a/view/custom_tinymce.css b/view/custom_tinymce.css
index 48621c42c..7932653b6 100644
--- a/view/custom_tinymce.css
+++ b/view/custom_tinymce.css
@@ -33,3 +33,9 @@ scrollbar-track-color:#F5F5F5;
 
 img:-moz-broken {-moz-force-broken-image-icon:1; width:24px; height:24px}
 font[face=mceinline] {font-family:inherit !important}
+
+
+object {
+	display: block; width: 400px; 
+	background: #cccccc url(../images/plugin.png) no-repeat center center;
+}