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)
- {
- // common_debug("class = $cls");
-
- $dir = dirname(__FILE__);
-
- switch ($cls)
- {
- case 'UserdirectoryAction':
- case 'GroupdirectoryAction':
- include_once $dir
- . '/actions/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
- return false;
- case 'AlphaNav':
- include_once $dir
- . '/lib/' . strtolower($cls) . '.php';
- return false;
- case 'SortableSubscriptionList':
- case 'SortableGroupList':
- include_once $dir
- . '/lib/' . strtolower($cls) . '.php';
- return false;
- default:
- return true;
- }
- }
-
/**
* Map URLs to actions
*
{
$m->connect(
- 'directory/users',
+ 'directory/users/:filter',
array('action' => 'userdirectory'),
- array('filter' => 'all')
+ array('filter' => '[0-9a-zA-Z]|(0-9)')
);
$m->connect(
- 'directory/users/:filter',
- array('action' => 'userdirectory'),
- array('filter' => '([0-9a-zA-Z_]{1,64}|0-9)')
+ 'directory/users',
+ array('action' => 'userdirectory')
);
$m->connect(
'groups/:filter',
array('action' => 'groupdirectory'),
- array('filter' => '([0-9a-zA-Z_]{1,64}|0-9)')
+ array('filter' => '[0-9a-zA-Z]|(0-9)')
+ );
+
+ $m->connect(
+ 'groups',
+ array('action' => 'groupdirectory')
);
return true;
return true;
}
+ // The following three function are to replace the existing groups
+ // list page with the directory plugin's group directory page
+
/**
* Hijack the mapping (Action -> URL) and return the URL to our
* group directory page instead of the normal groups page
*
* @return boolean hook flag
*/
- function onEndShowStatusNetStyles($action)
+ public function onEndShowStylesheets(Action $action)
{
if (in_array(
$action->trimmed('action'),
return true;
}
+ /**
+ * Fool the public nav into thinking it's on the regular
+ * group page when it's actually on our injected group
+ * directory page. This way "Groups" gets hilighted when
+ * when we're on the groups directory page.
+ *
+ * @param type $action the current action
+ *
+ * @return boolean hook flag
+ */
+ function onStartPublicGroupNav($action)
+ {
+ if ($action->trimmed('action') == 'groupdirectory') {
+ $action->actionName = 'groups';
+ }
+ return true;
+ }
+
/**
* Modify the public local nav to add a link to the user directory
*
{
$versions[] = array(
'name' => 'Directory',
- 'version' => STATUSNET_VERSION,
+ 'version' => GNUSOCIAL_VERSION,
'author' => 'Zach Copley',
'homepage' => 'http://status.net/wiki/Plugin:Directory',
// TRANS: Plugin description.