move digest to a separate plugin
This commit is contained in:
parent
68d539ceef
commit
ac22075182
9 changed files with 120 additions and 88 deletions
|
@ -594,60 +594,6 @@ class RPC extends Handler_Protected {
|
|||
}
|
||||
}
|
||||
|
||||
function digestgetcontents() {
|
||||
$article_id = db_escape_string($_REQUEST['article_id']);
|
||||
|
||||
$result = db_query($this->link, "SELECT content,title,link,marked,published
|
||||
FROM ttrss_entries, ttrss_user_entries
|
||||
WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']);
|
||||
|
||||
$content = sanitize($this->link, db_fetch_result($result, 0, "content"));
|
||||
$title = strip_tags(db_fetch_result($result, 0, "title"));
|
||||
$article_url = htmlspecialchars(db_fetch_result($result, 0, "link"));
|
||||
$marked = sql_bool_to_bool(db_fetch_result($result, 0, "marked"));
|
||||
$published = sql_bool_to_bool(db_fetch_result($result, 0, "published"));
|
||||
|
||||
print json_encode(array("article" =>
|
||||
array("id" => $article_id, "url" => $article_url,
|
||||
"tags" => get_article_tags($this->link, $article_id),
|
||||
"marked" => $marked, "published" => $published,
|
||||
"title" => $title, "content" => $content)));
|
||||
}
|
||||
|
||||
function digestupdate() {
|
||||
$feed_id = db_escape_string($_REQUEST['feed_id']);
|
||||
$offset = db_escape_string($_REQUEST['offset']);
|
||||
$seq = db_escape_string($_REQUEST['seq']);
|
||||
|
||||
if (!$feed_id) $feed_id = -4;
|
||||
if (!$offset) $offset = 0;
|
||||
|
||||
$reply = array();
|
||||
|
||||
$reply['seq'] = $seq;
|
||||
|
||||
$headlines = api_get_headlines($this->link, $feed_id, 30, $offset,
|
||||
'', ($feed_id == -4), true, false, "unread", "updated DESC", 0, 0);
|
||||
|
||||
$reply['headlines'] = array();
|
||||
$reply['headlines']['title'] = getFeedTitle($this->link, $feed_id);
|
||||
$reply['headlines']['content'] = $headlines;
|
||||
|
||||
print json_encode($reply);
|
||||
}
|
||||
|
||||
function digestinit() {
|
||||
$tmp_feeds = api_get_feeds($this->link, -4, true, false, 0);
|
||||
|
||||
$feeds = array();
|
||||
|
||||
foreach ($tmp_feeds as $f) {
|
||||
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
|
||||
}
|
||||
|
||||
print json_encode(array("feeds" => $feeds));
|
||||
}
|
||||
|
||||
function catchupFeed() {
|
||||
$feed_id = db_escape_string($_REQUEST['feed_id']);
|
||||
$is_cat = db_escape_string($_REQUEST['is_cat']) == "true";
|
||||
|
|
17
index.php
17
index.php
|
@ -18,9 +18,15 @@
|
|||
|
||||
$mobile = new Mobile_Detect();
|
||||
|
||||
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
|
||||
if (!init_connection($link)) return;
|
||||
|
||||
global $pluginhost;
|
||||
|
||||
if (!$_REQUEST['mobile']) {
|
||||
if ($mobile->isTablet()) {
|
||||
header('Location: digest.php');
|
||||
if ($mobile->isTablet() && $pluginhost->get_plugin("digest")) {
|
||||
header('Location: backend.php?op=digest');
|
||||
exit;
|
||||
} else if ($mobile->isMobile()) {
|
||||
header('Location: mobile/index.php');
|
||||
|
@ -28,9 +34,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
|
||||
if (!init_connection($link)) return;
|
||||
|
||||
login_sequence($link);
|
||||
|
||||
|
@ -208,8 +211,10 @@
|
|||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcCatchupAll')"><?php echo __('Mark as read') ?></div>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcShowOnlyUnread')"><?php echo __('(Un)hide read feeds') ?></div>
|
||||
<div dojoType="dijit.MenuItem" disabled="1"><?php echo __('Other actions:') ?></div>
|
||||
<?php if ($pluginhost->get_plugin("digest")) { ?>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcDigest')"><?php echo __('Switch to digest...') ?></div>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagCloud')"><?php echo __('Show tag cloud...') ?></div>
|
||||
<?php } ?>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagCloud')"><?php echo __('Show tag cloud...') ?></div>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcTagSelect')"><?php echo __('Select by tags...') ?></div>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddLabel')"><?php echo __('Create label...') ?></div>
|
||||
<div dojoType="dijit.MenuItem" onclick="quickMenuGo('qmcAddFilter')"><?php echo __('Create filter...') ?></div>
|
||||
|
|
|
@ -391,7 +391,7 @@ function quickMenuGo(opid) {
|
|||
}
|
||||
|
||||
if (opid == "qmcDigest") {
|
||||
window.location.href = "digest.php";
|
||||
window.location.href = "backend.php?op=digest";
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ function update(callback) {
|
|||
window.clearTimeout(_update_timeout);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: "?op=rpc&method=digestinit",
|
||||
parameters: "?op=digest&method=digestinit",
|
||||
onComplete: function(transport) {
|
||||
fatal_error_check(transport);
|
||||
parse_feeds(transport);
|
||||
|
@ -220,7 +220,7 @@ function view(article_id) {
|
|||
}, 500);
|
||||
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: "?op=rpc&method=digestgetcontents&article_id=" +
|
||||
parameters: "?op=digest&method=digestgetcontents&article_id=" +
|
||||
article_id,
|
||||
onComplete: function(transport) {
|
||||
fatal_error_check(transport);
|
||||
|
@ -312,7 +312,7 @@ function viewfeed(feed_id, offset, replace, no_effects, no_indicator, callback)
|
|||
|
||||
if (!offset) $("headlines").scrollTop = 0;
|
||||
|
||||
var query = "backend.php?op=rpc&method=digestupdate&feed_id=" +
|
||||
var query = "backend.php?op=digest&method=digestupdate&feed_id=" +
|
||||
param_escape(feed_id) + "&offset=" + offset +
|
||||
"&seq=" + _update_seq;
|
||||
|
||||
|
@ -647,7 +647,7 @@ function parse_headlines(transport, replace, no_effects) {
|
|||
function init_second_stage() {
|
||||
try {
|
||||
new Ajax.Request("backend.php", {
|
||||
parameters: "backend.php?op=rpc&method=digestinit",
|
||||
parameters: "backend.php?op=digest&method=digestinit",
|
||||
onComplete: function(transport) {
|
||||
parse_feeds(transport);
|
||||
Element.hide("overlay");
|
100
plugins/digest/digest.php
Normal file
100
plugins/digest/digest.php
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?
|
||||
class Digest extends Plugin implements IHandler {
|
||||
|
||||
private $link;
|
||||
private $host;
|
||||
|
||||
function __construct($host) {
|
||||
$this->link = $host->get_link();
|
||||
$this->host = $host;
|
||||
|
||||
$host->add_handler("digest", "*", $this);
|
||||
|
||||
//$host->add_handler("rpc", "digestinit", $this);
|
||||
//$host->add_handler("rpc", "digestupdate", $this);
|
||||
//$host->add_handler("rpc", "digestgetcontents", $this);
|
||||
}
|
||||
|
||||
function index() {
|
||||
header("Content-type: text/html; charset=utf-8");
|
||||
|
||||
login_sequence($this->link);
|
||||
|
||||
global $link;
|
||||
$link = $this->link;
|
||||
|
||||
require_once dirname(__FILE__) . "/digest_body.php";
|
||||
}
|
||||
|
||||
/* function get_js() {
|
||||
return file_get_contents(dirname(__FILE__) . "/digest.js");
|
||||
} */
|
||||
|
||||
function csrf_ignore($method) {
|
||||
return in_array($method, array("index"));
|
||||
}
|
||||
|
||||
function before($method) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function after() {
|
||||
|
||||
}
|
||||
|
||||
function digestgetcontents() {
|
||||
$article_id = db_escape_string($_REQUEST['article_id']);
|
||||
|
||||
$result = db_query($this->link, "SELECT content,title,link,marked,published
|
||||
FROM ttrss_entries, ttrss_user_entries
|
||||
WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']);
|
||||
|
||||
$content = sanitize($this->link, db_fetch_result($result, 0, "content"));
|
||||
$title = strip_tags(db_fetch_result($result, 0, "title"));
|
||||
$article_url = htmlspecialchars(db_fetch_result($result, 0, "link"));
|
||||
$marked = sql_bool_to_bool(db_fetch_result($result, 0, "marked"));
|
||||
$published = sql_bool_to_bool(db_fetch_result($result, 0, "published"));
|
||||
|
||||
print json_encode(array("article" =>
|
||||
array("id" => $article_id, "url" => $article_url,
|
||||
"tags" => get_article_tags($this->link, $article_id),
|
||||
"marked" => $marked, "published" => $published,
|
||||
"title" => $title, "content" => $content)));
|
||||
}
|
||||
|
||||
function digestupdate() {
|
||||
$feed_id = db_escape_string($_REQUEST['feed_id']);
|
||||
$offset = db_escape_string($_REQUEST['offset']);
|
||||
$seq = db_escape_string($_REQUEST['seq']);
|
||||
|
||||
if (!$feed_id) $feed_id = -4;
|
||||
if (!$offset) $offset = 0;
|
||||
|
||||
$reply = array();
|
||||
|
||||
$reply['seq'] = $seq;
|
||||
|
||||
$headlines = api_get_headlines($this->link, $feed_id, 30, $offset,
|
||||
'', ($feed_id == -4), true, false, "unread", "updated DESC", 0, 0);
|
||||
|
||||
$reply['headlines'] = array();
|
||||
$reply['headlines']['title'] = getFeedTitle($this->link, $feed_id);
|
||||
$reply['headlines']['content'] = $headlines;
|
||||
|
||||
print json_encode($reply);
|
||||
}
|
||||
|
||||
function digestinit() {
|
||||
$tmp_feeds = api_get_feeds($this->link, -4, true, false, 0);
|
||||
|
||||
$feeds = array();
|
||||
|
||||
foreach ($tmp_feeds as $f) {
|
||||
if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f);
|
||||
}
|
||||
|
||||
print json_encode(array("feeds" => $feeds));
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
1
plugins/digest/digest.txt
Normal file
1
plugins/digest/digest.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Digest mode for tt-rss (tablet friendly UI)
|
|
@ -1,25 +1,5 @@
|
|||
<?php
|
||||
set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR .
|
||||
get_include_path());
|
||||
<?php global $link; ?>
|
||||
|
||||
require_once "functions.php";
|
||||
require_once "sessions.php";
|
||||
require_once "sanity_check.php";
|
||||
require_once "version.php";
|
||||
require_once "config.php";
|
||||
require_once "db-prefs.php";
|
||||
|
||||
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
|
||||
login_sequence($link);
|
||||
|
||||
$dt_add = time();
|
||||
|
||||
no_cache_incantation();
|
||||
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
|
@ -28,7 +8,7 @@
|
|||
<title>Tiny Tiny RSS</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="lib/dijit/themes/claro/claro.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="digest.css?<?php echo $dt_add ?>"/>
|
||||
<link rel="stylesheet" type="text/css" href="plugins/digest/digest.css?<?php echo $dt_add ?>"/>
|
||||
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
|
||||
|
@ -43,7 +23,7 @@
|
|||
<script type="text/javascript" charset="utf-8" src="localized_js.php?<?php echo $dt_add ?>"></script>
|
||||
<script type="text/javascript" charset="utf-8" src="errors.php?mode=js"></script>
|
||||
<script type="text/javascript" charset="utf-8" src="js/functions.js?<?php echo $dt_add ?>"></script>
|
||||
<script type="text/javascript" src="js/digest.js"></script>
|
||||
<script type="text/javascript" src="plugins/digest/digest.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
Event.observe(window, 'load', function() {
|
Before Width: | Height: | Size: 958 B After Width: | Height: | Size: 958 B |
Loading…
Reference in a new issue