add embed_original plugin

This commit is contained in:
Andrew Dolgov 2013-03-21 16:36:48 +04:00
parent 33de3d37af
commit a479f3efe7
4 changed files with 138 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View 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;
}

View 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);
}
}

View 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));
}
}
?>