Kaynağa Gözat

move some more functions out of functions.php; fix opml.php failing due to redeclared autoload

Andrew Dolgov 11 yıl önce
ebeveyn
işleme
5083271956
8 değiştirilmiş dosya ile 101 ekleme ve 106 silme
  1. 1 1
      classes/api.php
  2. 87 0
      classes/article.php
  3. 1 1
      classes/dlg.php
  4. 1 1
      classes/handler/public.php
  5. 10 0
      classes/opml.php
  6. 1 1
      classes/rpc.php
  7. 0 95
      include/functions.php
  8. 0 7
      opml.php

+ 1 - 1
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'));

+ 87 - 0
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;
+	}
+
+
 
 }

+ 1 - 1
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:");
 

+ 1 - 1
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'>";

+ 10 - 0
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;
+	}
+
+
 }
 ?>

+ 1 - 1
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));
 	}

+ 0 - 95
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));
 	}

+ 0 - 7
opml.php

@@ -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";