Example #1
0
 /**
  * @return void
  * @test
  * @group Ui
  */
 public function testElementFactorySelect()
 {
     $element = ['type' => 'select', 'label' => 'Select Element Label', 'id' => 'elementId', 'multiOptions' => ['valueThree' => 'ValueCheckobx Label']];
     $elementRoute = ['view' => ['name' => zbase_tag() . 'test::contents.test.content', 'enable' => true, 'content' => function () use($element) {
         return zbase_ui_form_element($element);
     }], 'url' => '/test/ui-form-element-select', 'enable' => true];
     zbase_route_init('uiFormElementSelect', $elementRoute);
     $this->visit('/test/ui-form-element-select')->see('Select Element Label');
 }
Example #2
0
 /**
  * @group Ui
  */
 public function testTabs()
 {
     $tabOneConfiguration = ['type' => 'tab', 'label' => 'Tab One', 'id' => 'tabOne', 'group' => 'ExampleTab', 'position' => 100, 'contents' => [['id' => 'contentId', 'enable' => true, 'content' => 'The Content of Tab One'], ['id' => 'contentTwoId', 'enable' => true, 'content' => 'The Second Content of Tab One'], ['id' => 'contentThreeId', 'enable' => true, 'content' => 'The third Content of Tab One']]];
     $tabTwoConfiguration = ['type' => 'tab', 'label' => 'Tab Two', 'id' => 'tabTwo', 'group' => 'ExampleTab', 'contents' => [['id' => 'contentId', 'enable' => true, 'content' => 'The Content of Tab Two'], ['id' => 'contentTwoId', 'enable' => true, 'content' => 'The Second Content of Tab Two'], ['id' => 'contentThreeId', 'enable' => true, 'content' => 'The third Content of Tab Two']]];
     $tabThreeConfiguration = ['type' => 'tab', 'label' => 'Tab Three', 'id' => 'tabThree', 'group' => 'ExampleTab', 'contents' => [['id' => 'contentId', 'enable' => true, 'content' => 'The Content of Tab Three'], ['id' => 'contentTwoId', 'enable' => true, 'content' => 'The Second Content of Tab Three'], ['id' => 'contentThreeId', 'enable' => true, 'content' => 'The third Content of Tab Three']]];
     $elementRoute = ['view' => ['name' => zbase_tag() . 'test::contents.test.content', 'enable' => true, 'content' => function () use($tabOneConfiguration, $tabTwoConfiguration, $tabThreeConfiguration) {
         return zbase_ui_tabs([$tabOneConfiguration, $tabTwoConfiguration, $tabThreeConfiguration]);
     }], 'url' => '/test/ui-tab', 'enable' => true];
     zbase_route_init('uiTest', $elementRoute);
     $this->visit('/test/ui-tab')->see('<a data-toggle="tab" href="#ExampleTabtabOne">Tab One</a>');
 }
Example #3
0
/**
 * Run Routing
 * @return void
 */
function zbase_routes_init($routes = null)
{
    if (empty($routes)) {
        $routes = zbase_config_get('routes');
        /**
         * Add dynamic routes
         * for modules
         */
        $adminKey = zbase_admin_key();
        $modules = zbase()->modules();
        if (!empty($modules)) {
            foreach ($modules as $moduleName => $module) {
                $module = zbase()->module($moduleName);
                if ($module instanceof \Zbase\Module\ModuleInterface) {
                    if (empty($routes[$adminKey]['children'])) {
                        $routes[$adminKey]['children'] = [];
                    }
                    if ($module->isEnable()) {
                        $routes = array_merge($routes, $module->getRoutes());
                        if ($module->hasBackend()) {
                            $adminRoute = ['controller' => ['name' => 'backendModule', 'method' => 'index', 'enable' => true, 'params' => ['module' => $module]], 'form' => ['enable' => true], 'url' => $module->sectionUrl('backend'), 'backend' => true, 'enable' => true];
                            $routes[$adminKey]['children'][$module->id()] = $adminRoute;
                            if ($module->isNode()) {
                                $nodes = $module->getNodesSupport();
                                if (!empty($nodes)) {
                                    foreach ($nodes as $n) {
                                        $adminRoute = ['controller' => ['name' => 'backendModule', 'method' => 'index', 'enable' => true, 'params' => ['module' => $module, 'node' => $n, 'nodeNamespace' => $module->nodeNamespace()]], 'form' => ['enable' => true], 'url' => 'nodes/' . $n . '/' . $module->sectionUrl('backend'), 'backend' => true, 'enable' => true];
                                        // var_dump('Module', $module->id(), 'node_' . $module->nodeNamespace() . '_' . $n, 'nodes/' . $n . '/' . $module->sectionUrl('backend'), '===');
                                        $routes[$adminKey]['children']['node_' . $module->nodeNamespace() . '_' . $n] = $adminRoute;
                                    }
                                }
                            }
                        }
                        if ($module->hasFrontend()) {
                            $frontRoute = ['controller' => ['name' => 'pageModule', 'method' => 'index', 'enable' => true, 'params' => ['module' => $module]], 'form' => ['enable' => true], 'url' => $module->sectionUrl(), 'enable' => true];
                            $routes[$module->id()] = $frontRoute;
                            if ($module->isNode()) {
                                $nodes = $module->getNodesSupport();
                                if (!empty($nodes)) {
                                    foreach ($nodes as $n) {
                                        $frontRoute = ['controller' => ['name' => 'pageModule', 'method' => 'index', 'enable' => true, 'params' => ['module' => $module, 'node' => $n, 'nodeNamespace' => $module->nodeNamespace()]], 'form' => ['enable' => true], 'url' => 'nodes/' . $n . '/' . $module->sectionUrl(), 'enable' => true];
                                        $routes['node_' . $module->nodeNamespace() . '_' . $n] = $frontRoute;
                                    }
                                }
                            }
                        }
                        /**
                         * Module Defined Routes
                         */
                        // $routes = array_merge($routes, $module->getRoutes());
                    }
                }
            }
        }
    }
    if (!empty($routes)) {
        foreach ($routes as $name => $route) {
            if (!empty($route['url'])) {
                zbase_route_init($name, $route);
                if (!empty($route['children'])) {
                    $cRoutes = [];
                    $uCRoutes = [];
                    foreach ($route['children'] as $cName => $cRoute) {
                        $cRoute['url'] = $route['url'] . '/' . (!empty($cRoute['url']) ? $cRoute['url'] : $cName);
                        $cRoutes[$name . '.' . $cName] = $cRoute;
                    }
                    zbase_routes_init($cRoutes);
                }
            }
        }
        $usernameRoute = zbase_route_username();
        /**
         * Using Username Route
         */
        if (!empty($usernameRoute)) {
            $routeParameterName = zbase_route_username_prefix();
            $usernameRoutePrefix = '/{' . $routeParameterName . '?}';
            $usernameroute = ['controller' => ['name' => 'user', 'method' => 'username', 'enable' => true], 'url' => $usernameRoutePrefix, 'enable' => true];
            zbase_route_init($routeParameterName, $usernameroute);
            foreach ($routes as $name => $route) {
                $usernameRouteEnable = isset($route['usernameroute']) ? $route['usernameroute'] : true;
                if (!empty($route['url']) && !empty($usernameRouteEnable)) {
                    $route['url'] = str_replace('//', '/', $usernameRoutePrefix . '/' . $route['url']);
                    $route['url'] = str_replace('{' . $routeParameterName . '?}/{' . $routeParameterName . '?}', '{' . $routeParameterName . '?}', $route['url']);
                    $route['controller']['params'][$routeParameterName] = null;
                    $routeName = $routeParameterName . $name;
                    $routeName = str_replace($routeParameterName . $routeParameterName, $routeParameterName, $routeName);
                    zbase_route_init($routeName, $route);
                    if (!empty($route['children'])) {
                        $cRoutes = [];
                        foreach ($route['children'] as $cName => $cRoute) {
                            $cRoute['url'] = $route['url'] . '/' . (!empty($cRoute['url']) ? $cRoute['url'] : $cName);
                            $cRoute['url'] = str_replace('{' . $routeParameterName . '?}/{' . $routeParameterName . '?}', '{' . $routeParameterName . '?}', $cRoute['url']);
                            $cRoute['controller']['params'][$routeParameterName] = null;
                            $cRouteName = $routeParameterName . $name . '.' . $cName;
                            $cRoutes[$cRouteName] = $cRoute;
                        }
                        zbase_routes_init($cRoutes);
                    }
                }
            }
        }
    }
}