From 22f75cc352d84db0772d1a5ef2d0782bb1d146cf Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@status.net>
Date: Thu, 14 Jul 2011 15:05:15 -0400
Subject: [PATCH] Update checking notices for bookmarkness

---
 plugins/Bookmark/BookmarkPlugin.php | 45 ++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 17 deletions(-)

diff --git a/plugins/Bookmark/BookmarkPlugin.php b/plugins/Bookmark/BookmarkPlugin.php
index f8db77e2b7..5cb94b8b70 100644
--- a/plugins/Bookmark/BookmarkPlugin.php
+++ b/plugins/Bookmark/BookmarkPlugin.php
@@ -292,19 +292,27 @@ class BookmarkPlugin extends MicroAppPlugin
 
     function onStartOpenNoticeListItemElement($nli)
     {
+    	if (!$this->isMyNotice($nli->notice)) {
+    		return true;
+    	}
+    	
         $nb = Bookmark::getByNotice($nli->notice);
-        if (!empty($nb)) {
-            $id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
-            $class = 'hentry notice bookmark';
-            if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
-                $class .= ' limited-scope';
-            }
-            $nli->out->elementStart('li', array('class' => $class,
-                                                 'id' => 'notice-' . $id));
-            Event::handle('EndOpenNoticeListItemElement', array($nli));
-            return false;
+        
+        if (empty($nb)) {
+        	$this->log(LOG_INFO, "Notice {$nli->notice->id} has bookmark class but no matching Bookmark record.");
+        	return true;
         }
-        return true;
+	        
+	    $id = (empty($nli->repeat)) ? $nli->notice->id : $nli->repeat->id;
+	    $class = 'hentry notice bookmark';
+	    if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
+	    	$class .= ' limited-scope';
+	    }
+	    $nli->out->elementStart('li', array('class' => $class,
+	                                        'id' => 'notice-' . $id));
+	                                        
+	    Event::handle('EndOpenNoticeListItemElement', array($nli));
+	    return false;
     }
 
     /**
@@ -355,12 +363,15 @@ class BookmarkPlugin extends MicroAppPlugin
      */
     function deleteRelated($notice)
     {
-        $nb = Bookmark::getByNotice($notice);
-
-        if (!empty($nb)) {
-            $nb->delete();
-        }
-
+    	if ($this->isMyNotice($notice)) {
+    		
+        	$nb = Bookmark::getByNotice($notice);
+
+        	if (!empty($nb)) {
+            	$nb->delete();
+        	}
+    	}
+    	
         return true;
     }
 
-- 
2.39.5