]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use cachedQuery on File::getAttachments, plus other cleanups:
authorBrion Vibber <brion@pobox.com>
Mon, 31 Jan 2011 20:22:50 +0000 (12:22 -0800)
committerBrion Vibber <brion@pobox.com>
Mon, 31 Jan 2011 20:22:50 +0000 (12:22 -0800)
* dropped unnecessary join on notice table
* made the function actually static, since it makes no sense as an instance variable. The only caller (in AttachmentList) is updated.

classes/File.php
lib/attachmentlist.php

index 29a8f0f1c5a16cc8661196c7d23a2d6787d4ac22..e9a0131c4e4f6110713f0f572ea125d3890226b3 100644 (file)
@@ -55,14 +55,20 @@ class File extends Memcached_DataObject
         return 'http://www.facebook.com/login.php' === $url;
     }
 
-    function getAttachments($post_id) {
-        $query = "select file.* from file join file_to_post on (file_id = file.id) join notice on (post_id = notice.id) where post_id = " . $this->escape($post_id);
-        $this->query($query);
+    /**
+     * Get the attachments for a particlar notice.
+     *
+     * @param int $post_id
+     * @return array of File objects
+     */
+    static function getAttachments($post_id) {
+        $file = new File();
+        $query = "select file.* from file join file_to_post on (file_id = file.id) where post_id = " . $file->escape($post_id);
+        $file = Memcached_DataObject::cachedQuery('File', $query);
         $att = array();
-        while ($this->fetch()) {
-            $att[] = clone($this);
+        while ($file->fetch()) {
+            $att[] = clone($file);
         }
-        $this->free();
         return $att;
     }
 
index 7e536925bfffeee2f9cb69a251f539b1dfb2cefd..c3d3f4d1165bf99fe5322fef9f3872be101c391d 100644 (file)
@@ -76,8 +76,7 @@ class AttachmentList extends Widget
      */
     function show()
     {
-        $atts = new File;
-        $att = $atts->getAttachments($this->notice->id);
+        $att = File::getAttachments($this->notice->id);
         if (empty($att)) return 0;
         $this->showListStart();