add embed_original plugin
This commit is contained in:
parent
33de3d37af
commit
a479f3efe7
4 changed files with 138 additions and 0 deletions
BIN
plugins/embed_original/button.png
Normal file
BIN
plugins/embed_original/button.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
13
plugins/embed_original/init.css
Normal file
13
plugins/embed_original/init.css
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
div.cdmContentInner iframe.embeddedContent {
|
||||||
|
overflow : hidden;
|
||||||
|
width : 100%;
|
||||||
|
height : 300px;
|
||||||
|
border-width : 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.postContent iframe.embeddedContent {
|
||||||
|
overflow : hidden;
|
||||||
|
width : 100%;
|
||||||
|
height : 100%;
|
||||||
|
border-width : 0px;
|
||||||
|
}
|
69
plugins/embed_original/init.js
Normal file
69
plugins/embed_original/init.js
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
function embedOriginalArticle(id) {
|
||||||
|
try {
|
||||||
|
var hasSandbox = "sandbox" in document.createElement("iframe");
|
||||||
|
|
||||||
|
if (!hasSandbox) {
|
||||||
|
alert(__("Sorry, your browser does not support sandboxed iframes."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var query = "op=pluginhandler&plugin=embed_original&method=getUrl&id=" +
|
||||||
|
param_escape(id);
|
||||||
|
|
||||||
|
var c = false;
|
||||||
|
|
||||||
|
if (isCdmMode()) {
|
||||||
|
c = $$("div#RROW-" + id + " div[class=cdmContentInner]")[0];
|
||||||
|
} else if (id == getActiveArticleId()) {
|
||||||
|
c = $$("div[class=postContent]")[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (c) {
|
||||||
|
var iframe = c.getElementsByClassName("embeddedContent")[0];
|
||||||
|
|
||||||
|
if (iframe) {
|
||||||
|
Element.show(c.firstChild);
|
||||||
|
c.removeChild(iframe);
|
||||||
|
|
||||||
|
if (isCdmMode()) {
|
||||||
|
cdmScrollToArticleId(id, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
new Ajax.Request("backend.php", {
|
||||||
|
parameters: query,
|
||||||
|
onComplete: function(transport) {
|
||||||
|
var ti = JSON.parse(transport.responseText);
|
||||||
|
|
||||||
|
if (ti) {
|
||||||
|
|
||||||
|
var iframe = new Element("iframe", {
|
||||||
|
class: "embeddedContent",
|
||||||
|
src: ti.url,
|
||||||
|
sandbox: 'sandbox',
|
||||||
|
});
|
||||||
|
|
||||||
|
if (c) {
|
||||||
|
Element.hide(c.firstChild);
|
||||||
|
|
||||||
|
if (c.firstChild.nextSibling)
|
||||||
|
c.insertBefore(iframe, c.firstChild.nextSibling);
|
||||||
|
else
|
||||||
|
c.appendChild(iframe);
|
||||||
|
|
||||||
|
if (isCdmMode()) {
|
||||||
|
cdmScrollToArticleId(id, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} });
|
||||||
|
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("embedOriginalArticle", e);
|
||||||
|
}
|
||||||
|
}
|
56
plugins/embed_original/init.php
Normal file
56
plugins/embed_original/init.php
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
<?php
|
||||||
|
class Embed_Original extends Plugin {
|
||||||
|
private $link;
|
||||||
|
private $host;
|
||||||
|
|
||||||
|
function init($host) {
|
||||||
|
$this->link = $host->get_link();
|
||||||
|
$this->host = $host;
|
||||||
|
|
||||||
|
$host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
|
||||||
|
}
|
||||||
|
|
||||||
|
function about() {
|
||||||
|
return array(1.0,
|
||||||
|
"Try to display original article content inside tt-rss",
|
||||||
|
"fox");
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_js() {
|
||||||
|
return file_get_contents(dirname(__FILE__) . "/init.js");
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_css() {
|
||||||
|
return file_get_contents(dirname(__FILE__) . "/init.css");
|
||||||
|
}
|
||||||
|
|
||||||
|
function hook_article_button($line) {
|
||||||
|
$id = $line["id"];
|
||||||
|
|
||||||
|
$rv = "<img src=\"plugins/embed_original/button.png\"
|
||||||
|
class='tagsPic' style=\"cursor : pointer\"
|
||||||
|
onclick=\"embedOriginalArticle($id)\"
|
||||||
|
title='".__('Toggle embed original')."'>";
|
||||||
|
|
||||||
|
return $rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getUrl() {
|
||||||
|
$id = db_escape_string($_REQUEST['id']);
|
||||||
|
|
||||||
|
$result = db_query($this->link, "SELECT link
|
||||||
|
FROM ttrss_entries, ttrss_user_entries
|
||||||
|
WHERE id = '$id' AND ref_id = id AND owner_uid = " .$_SESSION['uid']);
|
||||||
|
|
||||||
|
$url = "";
|
||||||
|
|
||||||
|
if (db_num_rows($result) != 0) {
|
||||||
|
$url = db_fetch_result($result, 0, "link");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
print json_encode(array("url" => $url, "id" => $id));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in a new issue