{"id":359,"date":"2014-07-19T15:10:48","date_gmt":"2014-07-19T13:10:48","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=359"},"modified":"2014-07-19T15:14:59","modified_gmt":"2014-07-19T13:14:59","slug":"vufind-tutorial-8-creazione-di-un-modulo","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/07\/vufind-tutorial-8-creazione-di-un-modulo\/","title":{"rendered":"VUFIND \u2013 Tutorial 8 \u2013 Creazione di un modulo"},"content":{"rendered":"<p>L&#8217;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.<\/p>\n<p>Il modulo ha una struttura ben definita, \u00e8 una directory all&#8217;interno della cartella module e presenta la seguente alberatura<\/p>\n<pre class=\"lang:default decode:true\">config\r\nsrc\r\nModule.php\r\n<\/pre>\n<p>Il file Module.pho definisce il modulo e ha un contenuto di questo<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\nnamespace VuFindNews;\r\nuse Zend\\ModuleManager\\ModuleManager,\r\nZend\\Mvc\\MvcEvent;\r\n\r\nclass Module\r\n{\r\npublic function getConfig()\r\n{\r\nreturn include __DIR__ . '\/config\/module.config.php';\r\n}\r\n\r\npublic function getAutoloaderConfig()\r\n{\r\nreturn array(\r\n'Zend\\Loader\\StandardAutoloader' =&gt; array(\r\n'namespaces' =&gt; array(\r\n__NAMESPACE__ =&gt; __DIR__ . '\/src\/' . __NAMESPACE__,\r\n),\r\n),\r\n);\r\n}\r\n\r\npublic function init(ModuleManager $m)\r\n{\r\n}\r\n\r\npublic function onBootstrap(MvcEvent $e)\r\n{\r\n}\r\n}<\/pre>\n<p>Come si pu\u00f2 notare il modulo recupera la configurazione dal\u00a0file module.config.php presente nella directory config. Definiamo nel file il nostro controller tramite la sintassi:<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\nnamespace VuFindNews\\Module\\Configuration;\r\n$config = array(\r\n'controllers' =&gt; array(\r\n'invokables' =&gt; array(\r\n'vufindnews' =&gt; 'VuFindNews\\Controller\\VuFindNewsController',),),);\r\nreturn $config;<\/pre>\n<p>A questo punto implementiamo\u00a0il controller \u00a0e la relativa action<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\nnamespace VuFindNews\\Controller;\r\nclass VuFindNewsController extends \\VuFind\\Controller\\AbstractBase\r\n{\r\npublic function testAction()\r\n{\r\n$view = $this-&gt;createViewModel();\r\nreturn $view;\r\n}\r\npublic function homeAction()\r\n{\r\n$view = $this-&gt;createViewModel();\r\nreturn $view;\r\n}\r\n}\r\n\r\n<\/pre>\n<p>e la view relativa ad ogni action all&#8217;interno del nostro tema nel percorso<\/p>\n<p>\\vufind\\themes\\&lt;nomeTema&gt;\\templates\\&lt;nomeModulo&gt;<\/p>\n<p>nel nostro caso definiamo i file test.phtml e home.phtml<\/p>\n<p>Non resta che dichiarare il modulo nel file application.config.ini<\/p>\n<pre class=\"lang:default decode:true\">&lt;?php\r\n$config = array(\r\n'modules' =&gt; array(\r\n'VuFindHttp', 'VuFindTheme', 'VuFindSearch', 'VuFind', 'VuFindAdmin', 'VuFindNews'),<\/pre>\n<p>A questo punto \u00e8 possibile verificare la correttezza delle operazioni chiamando l&#8217;url<\/p>\n<pre class=\"lang:default decode:true\">http:\/\/localhost\/site1\/VuFindNews\/test<\/pre>\n<p>Infine possiamo definire il nostro modulo come la homepage agendo sul file config.ini agendo sul parametro<\/p>\n<pre class=\"lang:default decode:true\">; The base VuFind URL will load the \"Home\" action of this module unless the user\r\n; is logged in:\r\ndefaultModule = VuFindNews<\/pre>\n<p>In tal modo invocando la home VUFIND chiamer\u00e0 la action home del modulo scelto<\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;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, \u00e8 una directory all&#8217;interno della cartella module e presenta la seguente alberatura config src Module.php Il file Module.pho definisce il modulo e &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/07\/vufind-tutorial-8-creazione-di-un-modulo\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">VUFIND \u2013 Tutorial 8 \u2013 Creazione di un modulo<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[60],"tags":[68,61],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/359"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=359"}],"version-history":[{"count":7,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/359\/revisions"}],"predecessor-version":[{"id":366,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/359\/revisions\/366"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=359"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}