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