From: Chanel W. <Cha...@ya...> - 2013-05-03 23:01:15
|
I'm working on building custom numeric range facets (similar to dateRange). Things were going good until I started dealing with how to process the numeric entries when the form is submitted. It appears (correct me if I'm wrong) that I need to extend Search/Base/Params.php. Only thing is I can't see how that would be possible (per module.config.php). I'm not really understanding the class/method workflow once the form is submitted so maybe I'm going at this all wrong. Any help appreciated. Thanks! chanel Chanel Wheeler Library Network Programmer/Analyst Yavapai Library Network 1120 Commerce Dr. Prescott, AZ 86305 Phone: (928) 442-5741 cha...@ya...<mailto:cha...@ya...> Open a help desk ticket<mailto:he...@yl...> |
From: Demian K. <dem...@vi...> - 2013-05-04 11:23:31
|
You actually want to extend Search/Solr/Params.php (which in turn extends Search/Base/Params.php). You actually can do this through module.config.php. In ['vufind']['plugin_managers']['search_params'], the default configuration generates all search parameter objects using an abstract factory (a class which builds the object based on the name of the service). However, you can add a regular 'factories' section with definitions for specific services... so in your local module's configuration, you would have something like 'factories' => array( 'Solr' => function ($sm) { $options = $sm->get('VuFind\SearchOptionsPluginManager')->get('Solr'); return new \MyNamespace\Search\Solr\Params( clone($options), $sm->get('VuFind\Config') ); }; ), Note that it is possible that the process for constructing Params objects may still change a little bit before the full 2.0 release, so you may need to make adjustments to this factory if \VuFind\Search\Params\PluginFactory is modified in the future -- but that shouldn't be too difficult as long as you are aware that it might happen (if something changes, you'll start getting a fatal error about missing constructor parameters). - Demian ________________________________ From: Chanel Wheeler [Cha...@ya...] Sent: Friday, May 03, 2013 7:01 PM To: vufind-tech (vuf...@li...) Subject: [VuFind-Tech] numeric range facet I’m working on building custom numeric range facets (similar to dateRange). Things were going good until I started dealing with how to process the numeric entries when the form is submitted. It appears (correct me if I’m wrong) that I need to extend Search/Base/Params.php. Only thing is I can’t see how that would be possible (per module.config.php). I’m not really understanding the class/method workflow once the form is submitted so maybe I’m going at this all wrong. Any help appreciated. Thanks! chanel Chanel Wheeler Library Network Programmer/Analyst Yavapai Library Network 1120 Commerce Dr. Prescott, AZ 86305 Phone: (928) 442-5741 cha...@ya...<mailto:cha...@ya...> Open a help desk ticket<mailto:he...@yl...> |
From: Chanel W. <Cha...@ya...> - 2013-05-09 17:09:10
|
Thanks Demian! Oh so literally couldn't do it without you. For others that find ZF2 as mind-boggling as I do, I did have to make a couple of edits to Demain's code snippet for it to work. To save you the brain cycles, it'll work if you do: 'factories' => array( 'Solr' => function ($sm) { $options = $sm->getServiceLocator()->get('VuFind\SearchOptionsPluginManager')->get('Solr'); return new \MyNamespace\Search\Solr\Params( clone($options), $sm->getServiceLocator()->get('VuFind\Config') ); } ), chanel From: Demian Katz [mailto:dem...@vi...] Sent: Saturday, May 04, 2013 4:23 AM To: Chanel Wheeler; vufind-tech (vuf...@li...) Subject: RE: numeric range facet You actually want to extend Search/Solr/Params.php (which in turn extends Search/Base/Params.php). You actually can do this through module.config.php. In ['vufind']['plugin_managers']['search_params'], the default configuration generates all search parameter objects using an abstract factory (a class which builds the object based on the name of the service). However, you can add a regular 'factories' section with definitions for specific services... so in your local module's configuration, you would have something like 'factories' => array( 'Solr' => function ($sm) { $options = $sm->get('VuFind\SearchOptionsPluginManager')->get('Solr'); return new \MyNamespace\Search\Solr\Params( clone($options), $sm->get('VuFind\Config') ); }; ), Note that it is possible that the process for constructing Params objects may still change a little bit before the full 2.0 release, so you may need to make adjustments to this factory if \VuFind\Search\Params\PluginFactory is modified in the future -- but that shouldn't be too difficult as long as you are aware that it might happen (if something changes, you'll start getting a fatal error about missing constructor parameters). - Demian ________________________________ From: Chanel Wheeler [Cha...@ya...] Sent: Friday, May 03, 2013 7:01 PM To: vufind-tech (vuf...@li...<mailto:vuf...@li...>) Subject: [VuFind-Tech] numeric range facet I'm working on building custom numeric range facets (similar to dateRange). Things were going good until I started dealing with how to process the numeric entries when the form is submitted. It appears (correct me if I'm wrong) that I need to extend Search/Base/Params.php. Only thing is I can't see how that would be possible (per module.config.php). I'm not really understanding the class/method workflow once the form is submitted so maybe I'm going at this all wrong. Any help appreciated. Thanks! chanel Chanel Wheeler Library Network Programmer/Analyst Yavapai Library Network 1120 Commerce Dr. Prescott, AZ 86305 Phone: (928) 442-5741 cha...@ya...<mailto:cha...@ya...> Open a help desk ticket<mailto:he...@yl...> |