From 884bb60c7d05eba407ba044cc8e6f795db04c36f Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 6 Sep 2016 16:40:38 -0700 Subject: document the SubModule class and provide an option to change where the submodule name is located in the url path --- Zotlabs/Web/SubModule.php | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'Zotlabs/Web/SubModule.php') diff --git a/Zotlabs/Web/SubModule.php b/Zotlabs/Web/SubModule.php index 122766d5a..5f49b9292 100644 --- a/Zotlabs/Web/SubModule.php +++ b/Zotlabs/Web/SubModule.php @@ -7,13 +7,25 @@ class SubModule { private $controller = false; - function __construct() { + /** + * Initiate sub-modules. By default the submodule name is in argv(1), though this is configurable. + * Example: Given a URL path such as /admin/plugins, and the Admin module initiates sub-modules. + * This means we'll look for a class Plugins in Zotlabs/Module/Admin/Plugins.php + * The specific methods and calling parameters are up to the top level module controller logic. + * + * **If** you were to provide sub-module support on the photos module, you would probably use + * $whicharg = 2, as photos are typically called with a URL path of /photos/channel_address/submodule_name + * where submodule_name might be something like album or image. + */ - if(argc() < 2) + + function __construct($whicharg = 1) { + + if(argc() < ($whicharg + 1)) return; - $filename = 'Zotlabs/Module/' . ucfirst(argv(0)) . '/'. ucfirst(argv(1)) . '.php'; - $modname = '\\Zotlabs\\Module\\' . ucfirst(argv(0)) . '\\' . ucfirst(argv(1)); + $filename = 'Zotlabs/Module/' . ucfirst(argv(0)) . '/'. ucfirst(argv($whicharg)) . '.php'; + $modname = '\\Zotlabs\\Module\\' . ucfirst(argv(0)) . '\\' . ucfirst(argv($whicharg)); if(file_exists($filename)) { $this->controller = new $modname(); } -- cgit v1.2.3