]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/SearchSub/SearchSubPlugin.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / SearchSub / SearchSubPlugin.php
index c07f7695da6508c362ccb84bd1c1c69887c582e1..4c8d2121047fd528a8f6006dc8aaf8843d66067f 100644 (file)
@@ -60,46 +60,14 @@ class SearchSubPlugin extends Plugin
         return true;
     }
 
-    /**
-     * Load related modules when needed
-     *
-     * @param string $cls Name of the class to be loaded
-     *
-     * @return boolean hook value; true means continue processing, false means stop.
-     */
-    function onAutoload($cls)
-    {
-        $dir = dirname(__FILE__);
-
-        switch ($cls)
-        {
-        case 'SearchSub':
-            include_once $dir.'/'.$cls.'.php';
-            return false;
-        case 'SearchsubAction':
-        case 'SearchunsubAction':
-        case 'SearchsubsAction':
-        case 'SearchSubForm':
-        case 'SearchUnsubForm':
-        case 'SearchSubTrackCommand':
-        case 'SearchSubTrackOffCommand':
-        case 'SearchSubTrackingCommand':
-        case 'SearchSubUntrackCommand':
-            include_once $dir.'/'.strtolower($cls).'.php';
-            return false;
-        default:
-            return true;
-        }
-    }
-
     /**
      * Map URLs to actions
      *
-     * @param Net_URL_Mapper $m path-to-action mapper
+     * @param URLMapper $m path-to-action mapper
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-    function onRouterInitialized($m)
+    public function onRouterInitialized(URLMapper $m)
     {
         $m->connect('search/:search/subscribe',
                     array('action' => 'searchsub'),
@@ -107,7 +75,6 @@ class SearchSubPlugin extends Plugin
         $m->connect('search/:search/unsubscribe',
                     array('action' => 'searchunsub'),
                     array('search' => Router::REGEX_TAG));
-
         $m->connect(':nickname/search-subscriptions',
                     array('action' => 'searchsubs'),
                     array('nickname' => Nickname::DISPLAY_FMT));
@@ -121,7 +88,7 @@ class SearchSubPlugin extends Plugin
      *
      * @return value
      */
-    function onPluginVersion(&$versions)
+    function onPluginVersion(array &$versions)
     {
         $versions[] = array('name' => 'SearchSub',
                             'version' => self::VERSION,
@@ -180,7 +147,7 @@ class SearchSubPlugin extends Plugin
      * or Sphinx search backends.
      *
      * @param Notice $notice
-     * @param string $search 
+     * @param string $search
      * @return boolean
      */
     function matchSearch(Notice $notice, $search)
@@ -198,7 +165,8 @@ class SearchSubPlugin extends Plugin
     function onStartNoticeSearchShowResults($action, $q, $notice)
     {
         $user = common_current_user();
-        if ($user) {
+
+        if ($user instanceof User) {
             $search = $q;
             $searchsub = SearchSub::pkeyGet(array('search' => $search,
                                                   'profile_id' => $user->id));
@@ -207,6 +175,7 @@ class SearchSubPlugin extends Plugin
             } else {
                 $form = new SearchSubForm($action, $search);
             }
+
             $action->elementStart('div', 'entity_actions');
             $action->elementStart('ul');
             $action->elementStart('li', 'entity_subscribe');
@@ -215,6 +184,7 @@ class SearchSubPlugin extends Plugin
             $action->elementEnd('ul');
             $action->elementEnd('div');
         }
+
         return true;
     }
 
@@ -225,7 +195,6 @@ class SearchSubPlugin extends Plugin
      *
      * @return boolean hook return
      */
-
     function onEndSubGroupNav($widget)
     {
         $action = $widget->out;
@@ -241,39 +210,6 @@ class SearchSubPlugin extends Plugin
         return true;
     }
 
-    /**
-     * Add a count of mirrored feeds into a user's profile sidebar stats.
-     *
-     * @param Profile $profile
-     * @param array $stats
-     * @return boolean hook return value
-     */
-    function onProfileStats($profile, &$stats)
-    {
-        $cur = common_current_user();
-        if (!empty($cur) && $cur->id == $profile->id) {
-            $searchsub = new SearchSub();
-            $searchsub ->profile_id = $profile->id;
-            $entry = array(
-                'id' => 'searchsubs',
-                'label' => _m('Search subscriptions'),
-                'link' => common_local_url('searchsubs', array('nickname' => $profile->nickname)),
-                'value' => $searchsub->count(),
-            );
-
-            $insertAt = count($stats);
-            foreach ($stats as $i => $row) {
-                if ($row['id'] == 'groups') {
-                    // Slip us in after them.
-                    $insertAt = $i + 1;
-                    break;
-                }
-            }
-            array_splice($stats, $insertAt, 0, array($entry));
-        }
-        return true;
-    }
-
     /**
      * Replace the built-in stub track commands with ones that control
      * search subscriptions.
@@ -318,4 +254,21 @@ class SearchSubPlugin extends Plugin
         // TRANS: Help message for IM/SMS command "tracking"
         $commands["tracking"] = _m('COMMANDHELP', "List all your search subscriptions.");
     }
+
+    function onEndDefaultLocalNav($menu, $user)
+    {
+        $user = common_current_user();
+
+        if (!empty($user)) {
+            $searches = SearchSub::forProfile($user->getProfile());
+
+            if (!empty($searches) && count($searches) > 0) {
+                $searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
+                // TRANS: Sub menu for searches.
+                $menu->submenu(_m('MENU','Searches'), $searchSubMenu);
+            }
+        }
+
+        return true;
+    }
 }