From: Martin F. <mf...@su...> - 2013-06-26 13:27:55
|
We use VuFind 2.0 but installed it without taking the standard VuFind installation scripts for user modules described in customizing_vufind_2.0#modules. Now we are trying to override some VuFind classes with our own PHP code. We finally got a local cover provider running. To achieve this, we configured in our local config/module.config.php. $config = array( 'controllers' => array( 'invokables' => array( 'cover' => '[ourmodule]\Controller\CoverController', ), ), ); And we copied VuFind/src/VuFind/Controller/CoverController to [ourmodule]/src/[ourmodule]/Controller/CoverController, changed the namespace and the "use" line to [ourmodule]\Cover\Loader. We then extended \VuFind\Cover\Loader in [ourmodule]/src/[ourmodule]/Cover/Loader and were able to add a new cover provider by simply adding a new method to this Loader class. So far, everything worked well. Is this solution quite the same as the standard VuFind-installation with preparation for user modules? We now want to implement "multiselect"-facets with values concatenated by OR and therefore have to override \VuFind\Search\Solr\Params. (The necessary changes in the file could be derived from the VuFind 1.0-Patch for OR-Facets.) But now we don't see how to override this class because it is not configured in module.config.php - do we really have to override the whole tree of controllers and classes using this class? Is there a good solution to change this - or another random - PHP class from VuFind? Thank you in advance. Martin |