L’articolo illustra la creazione di un modulo in VUFIND e la sua integrazione, in particolare vedremo la creazione di un modulo per la lettura delle news.
Il modulo ha una struttura ben definita, è una directory all’interno della cartella module e presenta la seguente alberatura
1 2 3 |
config src Module.php |
Il file Module.pho definisce il modulo e ha un contenuto di questo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php namespace VuFindNews; use Zend\ModuleManager\ModuleManager, Zend\Mvc\MvcEvent; class Module { public function getConfig() { return include __DIR__ . '/config/module.config.php'; } public function getAutoloaderConfig() { return array( 'Zend\Loader\StandardAutoloader' => array( 'namespaces' => array( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__, ), ), ); } public function init(ModuleManager $m) { } public function onBootstrap(MvcEvent $e) { } } |
Come si può notare il modulo recupera la configurazione dal file module.config.php presente nella directory config. Definiamo nel file il nostro controller tramite la sintassi:
1 2 3 4 5 6 7 |
<?php namespace VuFindNews\Module\Configuration; $config = array( 'controllers' => array( 'invokables' => array( 'vufindnews' => 'VuFindNews\Controller\VuFindNewsController',),),); return $config; |
A questo punto implementiamo il controller e la relativa action
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php namespace VuFindNews\Controller; class VuFindNewsController extends \VuFind\Controller\AbstractBase { public function testAction() { $view = $this->createViewModel(); return $view; } public function homeAction() { $view = $this->createViewModel(); return $view; } } |
e la view relativa ad ogni action all’interno del nostro tema nel percorso
\vufind\themes\<nomeTema>\templates\<nomeModulo>
nel nostro caso definiamo i file test.phtml e home.phtml
Non resta che dichiarare il modulo nel file application.config.ini
1 2 3 4 |
<?php $config = array( 'modules' => array( 'VuFindHttp', 'VuFindTheme', 'VuFindSearch', 'VuFind', 'VuFindAdmin', 'VuFindNews'), |
A questo punto è possibile verificare la correttezza delle operazioni chiamando l’url
1 |
http://localhost/site1/VuFindNews/test |
Infine possiamo definire il nostro modulo come la homepage agendo sul file config.ini agendo sul parametro
1 2 3 |
; The base VuFind URL will load the "Home" action of this module unless the user ; is logged in: defaultModule = VuFindNews |
In tal modo invocando la home VUFIND chiamerà la action home del modulo scelto