costsrl/cost-acl-navigation

Navigation based on Laminas

v1.0.0 2023-03-24 13:35 UTC

This package is auto-updated.

Last update: 2025-02-24 18:53:59 UTC


README

What is CostAclNavigation?

CsnNavigation is a Module for Navigation based on Laminas Framework 2 with Acl

What exactly does CostNavigation?

Installation

Requiremnts "CostAuthorization"

Go to your application configuration in ./config/application.config.phpand add 'CostAclNavigation'. An example application configuration could look like the following:

'modules' => array(
    'Application',
    'CostAuthorization',
    'CostNavigation'
)

Navigation configuration

Create novigo folder under vendor directory Copy or Clone Module under novigo directory Copy ./vendor/cost/cost-acl-navigation/config/navigation.global.php.dist to ./config/autoload/navigation.global.php and edit.

open composer.json and add under auotload key

"autoload" : { "psr-4" : { "CostAclNavigation" : "vendor/cost/cost-acl-navigation/src", }

or 
 "repositories": [
        {
            "type": "vcs",
            "url": "http://git.cost.it/cost/cost-acl-navigation.git"
        }
    ]

Show navigation
=============
Add this somewhere in your layout `./module/Application/view/layout/layout.phtml` :
    navigation('navigation_default'); $containers = $navHelper->getContainer(); $acl = $navHelper->getAcl(); $role = $navHelper->getRole(); foreach($containers->getPages() as $page) { if(! $navHelper->accept($page)) continue; $class = ""; if ($page->isActive() && $navHelper->accept($page)) { $class = "active"; }
                  if(count($page)) {
                       // if there are subpages we render the menu a bit different
                       $label  = $page->getLabel();
                       $label  = $this->translate($label); // translated label
                       $label  = $this->escapehtml($label); // sanitized label
                       printf('<li class="dropdown%s">'."\n",($class?' '.$class:''));
                       printf('<a href="%s" class="dropdown-toggle" data-toggle="dropdown">%s<b class="caret"></b></a>'."\n",
                                                 $page->getHref(),
                                                 $label);
                      echo '<ul class="dropdown-menu" role="menu">'."\n";
                      foreach($page as $subPage) {
                                   if(!$navHelper->accept($subPage)) {
                                           	continue;
                                   }
                                   printf("<li>%s</li>\n",$navHelper->htmlify($subPage));
                                                            }
                               echo "</ul></li>\n";
                 }
                  else {
                   printf("<li class=\"%s\">%s</li>\n",$class,$navHelper->htmlify($page));
             }
       }
        ?>						
    
````

doctrine generate entity

1) ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="CostAclNavigation\\Model\\Entity\\" --filter='Menus' --force  --from-database annotation ./vendor/cost/cost-acl-navigation/src/


2) ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:validate-schema


3) 	./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities --generate-annotations=true --generate-methods=true ./vendor/novigo/Cost-acl-navigation/src 

doctrine create update databse from  entity
4) ./vendor/doctrine/doctrine-module/bin/doctrine-module orm:schema-tool:update  --dump-sql

5) ./vendor/doctrine/doctrine-module/bin/doctrine-module schema-tool:update --force