X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FDirectory%2FDirectoryPlugin.php;h=e061b89e467ea61215af4b70a4eeca880db0de76;hb=ac44695c44056cdcfc33ff88e1943bbb262a356b;hp=921de71a1a434d2323171d574536198e2f2c41d7;hpb=42e945a42d9578da21dbd008b705677b482ea33f;p=quix0rs-gnu-social.git diff --git a/plugins/Directory/DirectoryPlugin.php b/plugins/Directory/DirectoryPlugin.php index 921de71a1a..e061b89e46 100644 --- a/plugins/Directory/DirectoryPlugin.php +++ b/plugins/Directory/DirectoryPlugin.php @@ -68,41 +68,6 @@ class DirectoryPlugin 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) - { - // 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 * @@ -115,21 +80,25 @@ class DirectoryPlugin extends Plugin { $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; @@ -155,6 +124,9 @@ class DirectoryPlugin extends Plugin 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 @@ -181,7 +153,7 @@ class DirectoryPlugin extends Plugin * * @return boolean hook flag */ - function onEndShowStatusNetStyles($action) + public function onEndShowStylesheets(Action $action) { if (in_array( $action->trimmed('action'), @@ -193,6 +165,24 @@ class DirectoryPlugin extends Plugin 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 * @@ -230,7 +220,7 @@ class DirectoryPlugin extends Plugin { $versions[] = array( 'name' => 'Directory', - 'version' => STATUSNET_VERSION, + 'version' => GNUSOCIAL_VERSION, 'author' => 'Zach Copley', 'homepage' => 'http://status.net/wiki/Plugin:Directory', // TRANS: Plugin description.