you can use Zend\Navigation or, even better, Spiffy Navigation ( https://github.com/spiffyjr/spiffy-navigation).
just register a navigation instance as a service and have it composed by modules configuration, or decorate it in your modules via the service manager. for other templating stuff, i would suggest a full set of placeholders in a master layout, which your users can then manipulate in their own layouts, via view helpers or output capture. Stefano Torresi Web Developer 2014-06-06 10:25 GMT+02:00 Wojciech Nowogrodzki <[email protected]>: > Hi, > > One of the solutions could be create service i.e. > MyAwesomeAppPluginManager with methods: navAdd(), navGet(), navGetAll(), > navExist(), etc... > > Let's assume that navGetAll() will return an array of added options i.e.: > array( > 0 => array('url' => 'http://domain/first_url', 'name' => 'Super cool > link from 1st plugin'), > 1 => array('url' => 'http://domain/second_url', 'name' => 'Another > awesome link from 1st plugin') > ) > > Then you can inject this array to your view as $pluginsMenuOptions: > > <nav> > <ul> > <li><a href="">Home</a></li> > <li><a href="">First link</a></li> > <li><a href="">Second link</a></li> > <?php foreach($pluginsMenuOptions as $pluginMenuOption): ?> > <li><a href="<?php echo $pluginMenuOption['url'] ?>"><?php > echo $pluginMenuOption['name'] ?></a></li> > <?php endforeach; ?> > </ul> > </nav> > > After that you or someone else can create a plugin (i.e. external library > module). In Module.php method onBootstrap() one gets service > 'MyAwesomeAppPluginManager' and sets navigation options by calling navAdd() > method... > > Of course service 'MyAwesomeAppPluginManager' could also manage another > aspects of system (not only menu options). > > That was my firstthought how it could be solved. > > W dniu 06.06.2014 10:01, Emmanuel Bouton pisze: > > Hello, >> >> I'm working on a web admin interface with Zend Framework 2, and I'd like >> to >> make it extensible by « plugins ». Great for me ZF2 provides a great >> modules system :) >> But I wonder how I could make « cleanly » my templates extensible. >> >> Example : >> >> My « core » admin would render that : >> >> <nav> >> <ul> >> <li><a href="">Home</a></li> >> <li><a href="">First link</a></li> >> <li><a href="">Second link</a></li> >> </ul> >> </nav> >> >> And I want that people could develop modules that could add links to my >> main menu : >> >> <nav> >> <ul> >> <li><a href="">Home</a></li> >> <li><a href="">First link</a></li> >> <li><a href="">Second link</a></li> >> <li><a href="">Super cool link from 1st plugin</a></li> >> <li><a href="">Another awesome link from 1st plugin</a></li> >> <li><a href="">Great link from 2nd plugin</a></li> >> </ul> >> </nav> >> >> How can I manage that in my core views / controllers ? >> >> Thanks, >> Best regards, >> Emmanuel >> >> > -- > *Wojciech Nowogrodzki* >
