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 'SearchSubMenu':
- 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
*
$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));
*
* @return value
*/
- function onPluginVersion(&$versions)
+ function onPluginVersion(array &$versions)
{
$versions[] = array('name' => 'SearchSub',
'version' => self::VERSION,
* or Sphinx search backends.
*
* @param Notice $notice
- * @param string $search
+ * @param string $search
* @return boolean
*/
function matchSearch(Notice $notice, $search)
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));
} else {
$form = new SearchSubForm($action, $search);
}
+
$action->elementStart('div', 'entity_actions');
$action->elementStart('ul');
$action->elementStart('li', 'entity_subscribe');
$action->elementEnd('ul');
$action->elementEnd('div');
}
+
return true;
}
*
* @return boolean hook return
*/
-
function onEndSubGroupNav($widget)
{
$action = $widget->out;
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.
{
$user = common_current_user();
- $searches = SearchSub::forProfile($user->getProfile());
+ if (!empty($user)) {
+ $searches = SearchSub::forProfile($user->getProfile());
- if (!empty($searches) && count($searches) > 0) {
- $searchSubMenu = new SearchSubMenu($menu->out, $user, $searches);
- $menu->submenu(_m('Searches'), $searchSubMenu);
+ 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;
}
-
}