diff options
author | Andrew Dolgov <[email protected]> | 2013-01-22 22:36:16 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2013-01-22 22:36:16 +0400 |
commit | 50832719563627e958f92ba2a2b7b8c2b4fed47e (patch) | |
tree | 5ccf2153d1b56c966a6d33352b91c9cd573aa064 | |
parent | 87d7e8507a4a41c4e0d7a4f2d54fe48f3a6f72cb (diff) |
move some more functions out of functions.php; fix opml.php failing due to redeclared autoload
-rw-r--r-- | classes/api.php | 2 | ||||
-rw-r--r-- | classes/article.php | 87 | ||||
-rw-r--r-- | classes/dlg.php | 2 | ||||
-rw-r--r-- | classes/handler/public.php | 2 | ||||
-rw-r--r-- | classes/opml.php | 10 | ||||
-rw-r--r-- | classes/rpc.php | 2 | ||||
-rw-r--r-- | include/functions.php | 95 | ||||
-rw-r--r-- | opml.php | 7 |
8 files changed, 101 insertions, 106 deletions
diff --git a/classes/api.php b/classes/api.php index 04be5c7a8..9b9a5bbe5 100644 --- a/classes/api.php +++ b/classes/api.php @@ -439,7 +439,7 @@ class API extends Handler { $url = db_escape_string(strip_tags($_REQUEST["url"])); $content = db_escape_string(strip_tags($_REQUEST["content"])); - if (create_published_article($this->link, $title, $url, $content, "", $_SESSION["uid"])) { + if (Article::create_published_article($this->link, $title, $url, $content, "", $_SESSION["uid"])) { print $this->wrap(self::STATUS_OK, array("status" => 'OK')); } else { print $this->wrap(self::STATUS_ERR, array("error" => 'Publishing failed')); diff --git a/classes/article.php b/classes/article.php index 0cb7073b5..ec0276406 100644 --- a/classes/article.php +++ b/classes/article.php @@ -85,5 +85,92 @@ class Article extends Handler_Protected { ccache_update($link, $feed_id, $_SESSION["uid"]);
}
+ static function create_published_article($link, $title, $url, $content, $labels_str,
+ $owner_uid) {
+
+ $guid = sha1($url . $owner_uid); // include owner_uid to prevent global GUID clash
+ $content_hash = sha1($content);
+
+ if ($labels_str != "") {
+ $labels = explode(",", $labels_str);
+ } else {
+ $labels = array();
+ }
+
+ $rc = false;
+
+ if (!$title) $title = $url;
+ if (!$title && !$url) return false;
+
+ if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) return false;
+
+ db_query($link, "BEGIN");
+
+ // only check for our user data here, others might have shared this with different content etc
+ $result = db_query($link, "SELECT id FROM ttrss_entries, ttrss_user_entries WHERE
+ link = '$url' AND ref_id = id AND owner_uid = '$owner_uid' LIMIT 1");
+
+ if (db_num_rows($result) != 0) {
+ $ref_id = db_fetch_result($result, 0, "id");
+
+ $result = db_query($link, "SELECT int_id FROM ttrss_user_entries WHERE
+ ref_id = '$ref_id' AND owner_uid = '$owner_uid' LIMIT 1");
+
+ if (db_num_rows($result) != 0) {
+ $int_id = db_fetch_result($result, 0, "int_id");
+
+ db_query($link, "UPDATE ttrss_entries SET
+ content = '$content', content_hash = '$content_hash' WHERE id = '$ref_id'");
+
+ db_query($link, "UPDATE ttrss_user_entries SET published = true WHERE
+ int_id = '$int_id' AND owner_uid = '$owner_uid'");
+ } else {
+
+ db_query($link, "INSERT INTO ttrss_user_entries
+ (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread)
+ VALUES
+ ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)");
+ }
+
+ if (count($labels) != 0) {
+ foreach ($labels as $label) {
+ label_add_article($link, $ref_id, trim($label), $owner_uid);
+ }
+ }
+
+ $rc = true;
+
+ } else {
+ $result = db_query($link, "INSERT INTO ttrss_entries
+ (title, guid, link, updated, content, content_hash, date_entered, date_updated)
+ VALUES
+ ('$title', '$guid', '$url', NOW(), '$content', '$content_hash', NOW(), NOW())");
+
+ $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$guid'");
+
+ if (db_num_rows($result) != 0) {
+ $ref_id = db_fetch_result($result, 0, "id");
+
+ db_query($link, "INSERT INTO ttrss_user_entries
+ (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread)
+ VALUES
+ ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)");
+
+ if (count($labels) != 0) {
+ foreach ($labels as $label) {
+ label_add_article($link, $ref_id, trim($label), $owner_uid);
+ }
+ }
+
+ $rc = true;
+ }
+ }
+
+ db_query($link, "COMMIT");
+
+ return $rc;
+ }
+
+
}
diff --git a/classes/dlg.php b/classes/dlg.php index 3a980ec8b..30dfa1ce1 100644 --- a/classes/dlg.php +++ b/classes/dlg.php @@ -168,7 +168,7 @@ class Dlg extends Handler_Protected { print "<title>".__('Public OPML URL')."</title>"; print "<content><![CDATA["; - $url_path = opml_publish_url($this->link); + $url_path = Opml::opml_publish_url($this->link); print __("Your Public OPML URL is:"); diff --git a/classes/handler/public.php b/classes/handler/public.php index 3bc8d3b79..3d2becccd 100644 --- a/classes/handler/public.php +++ b/classes/handler/public.php @@ -376,7 +376,7 @@ class Handler_Public extends Handler { $content = db_escape_string(strip_tags($_REQUEST["content"])); $labels = db_escape_string(strip_tags($_REQUEST["labels"])); - create_published_article($this->link, $title, $url, $content, $labels, + Article::create_published_article($this->link, $title, $url, $content, $labels, $_SESSION["uid"]); print "<script type='text/javascript'>"; diff --git a/classes/opml.php b/classes/opml.php index 10967c171..b91e395d1 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -479,5 +479,15 @@ class Opml extends Handler_Protected { print "$msg<br/>"; } + static function opml_publish_url($link){ + + $url_path = get_self_url_prefix(); + $url_path .= "/opml.php?op=publish&key=" . + get_feed_access_key($link, 'OPML:Publish', false, $_SESSION["uid"]); + + return $url_path; + } + + } ?> diff --git a/classes/rpc.php b/classes/rpc.php index 0e6fa3379..d529e496c 100644 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -370,7 +370,7 @@ class RPC extends Handler_Protected { $this->update_feed_access_key($this->link, 'OPML:Publish', false, $_SESSION["uid"]); - $new_link = opml_publish_url($this->link); + $new_link = Opml::opml_publish_url($this->link); print json_encode(array("link" => $new_link)); } diff --git a/include/functions.php b/include/functions.php index 5ff0dd49f..59a3e29cf 100644 --- a/include/functions.php +++ b/include/functions.php @@ -3250,15 +3250,6 @@ } } - function opml_publish_url($link){ - - $url_path = get_self_url_prefix(); - $url_path .= "/opml.php?op=publish&key=" . - get_feed_access_key($link, 'OPML:Publish', false, $_SESSION["uid"]); - - return $url_path; - } - /** * Compute the Mozilla Firefox feed adding URL from server HOST and REQUEST_URI. * @@ -4157,92 +4148,6 @@ } - function create_published_article($link, $title, $url, $content, $labels_str, - $owner_uid) { - - $guid = sha1($url . $owner_uid); // include owner_uid to prevent global GUID clash - $content_hash = sha1($content); - - if ($labels_str != "") { - $labels = explode(",", $labels_str); - } else { - $labels = array(); - } - - $rc = false; - - if (!$title) $title = $url; - if (!$title && !$url) return false; - - if (filter_var($url, FILTER_VALIDATE_URL) === FALSE) return false; - - db_query($link, "BEGIN"); - - // only check for our user data here, others might have shared this with different content etc - $result = db_query($link, "SELECT id FROM ttrss_entries, ttrss_user_entries WHERE - link = '$url' AND ref_id = id AND owner_uid = '$owner_uid' LIMIT 1"); - - if (db_num_rows($result) != 0) { - $ref_id = db_fetch_result($result, 0, "id"); - - $result = db_query($link, "SELECT int_id FROM ttrss_user_entries WHERE - ref_id = '$ref_id' AND owner_uid = '$owner_uid' LIMIT 1"); - - if (db_num_rows($result) != 0) { - $int_id = db_fetch_result($result, 0, "int_id"); - - db_query($link, "UPDATE ttrss_entries SET - content = '$content', content_hash = '$content_hash' WHERE id = '$ref_id'"); - - db_query($link, "UPDATE ttrss_user_entries SET published = true WHERE - int_id = '$int_id' AND owner_uid = '$owner_uid'"); - } else { - - db_query($link, "INSERT INTO ttrss_user_entries - (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread) - VALUES - ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)"); - } - - if (count($labels) != 0) { - foreach ($labels as $label) { - label_add_article($link, $ref_id, trim($label), $owner_uid); - } - } - - $rc = true; - - } else { - $result = db_query($link, "INSERT INTO ttrss_entries - (title, guid, link, updated, content, content_hash, date_entered, date_updated) - VALUES - ('$title', '$guid', '$url', NOW(), '$content', '$content_hash', NOW(), NOW())"); - - $result = db_query($link, "SELECT id FROM ttrss_entries WHERE guid = '$guid'"); - - if (db_num_rows($result) != 0) { - $ref_id = db_fetch_result($result, 0, "id"); - - db_query($link, "INSERT INTO ttrss_user_entries - (ref_id, uuid, feed_id, orig_feed_id, owner_uid, published, tag_cache, label_cache, last_read, note, unread) - VALUES - ('$ref_id', '', NULL, NULL, $owner_uid, true, '', '', NOW(), '', false)"); - - if (count($labels) != 0) { - foreach ($labels as $label) { - label_add_article($link, $ref_id, trim($label), $owner_uid); - } - } - - $rc = true; - } - } - - db_query($link, "COMMIT"); - - return $rc; - } - function implements_interface($class, $interface) { return in_array($interface, class_implements($class)); } @@ -2,13 +2,6 @@ set_include_path(dirname(__FILE__) ."/include" . PATH_SEPARATOR . get_include_path()); - function __autoload($class) { - $file = "classes/".strtolower(basename($class)).".php"; - if (file_exists($file)) { - require $file; - } - } - require_once "functions.php"; require_once "sessions.php"; require_once "sanity_check.php"; |