From: Joe A. <jo...@bo...> - 2013-11-08 21:17:15
|
Yeah, I find it unsettling that I need to go back to the browser to recreate a new request when I could be satisfying it from the existing request, just because I can't directly affect/replace params. Is this considered a Zend security/feature or something? On Fri, Nov 8, 2013 at 3:52 PM, Demian Katz <dem...@vi...>wrote: > Excellent! Might be handy to have a controller plugin or AbstractBase > method to set these things up -- seems like a problem that will recur, and > having a tool like that would obviously have saved you some pain. > > - Demian > ------------------------------ > *From:* Joe Atzberger [jo...@bo...] > *Sent:* Friday, November 08, 2013 3:53 PM > > *To:* Demian Katz > *Cc:* vufind-tech Tech > *Subject:* Re: [VuFind-Tech] Record lists > > OK, got it: > > /Records/Home?id[]=VuFind%7C15242 # works > /Records/Home?id[]=VuFind|15242&id[]=VuFind|15407&id[]=VuFind|15344 # > WINNER! > > --Joe > > > On Fri, Nov 8, 2013 at 3:48 PM, Joe Atzberger <jo...@bo...> wrote: > >> Hmm, if I try: >> >> $this->params()->set('id', array("VuFind|15242", 15407, 15344)); >> >> I get: >> >>> PHP Fatal error: Call to undefined method >>> Zend\\Mvc\\Controller\\Plugin\\Params::set() >> >> >> So that's a bummer. Otherwise seems like you seem to be saying it has >> to be done exclusively via URL, but that is rather weird because >> semantically, order is not necessarily preserved in HTTP query args, and >> you would want the list order preserved. But if it works, I'm willing to >> go with it. >> >> The version you give results in a URL like:: >> /Records/Home?ids%5B%5D=VuFind%7C15242&ids%5B%5D=15407&ids%5B%5D=15344 >> >> That seems off (since the braces shouldn't be necessary to array-ify >> inherently repeatable HTTP query parameters). Still returns empty set. >> Also tried: >> >> /Records/Home?ids=15344&ids=15242 >> /Records/Home?ids=15344 >> /Records/Home?id=VuFind%7C15344 >> /Records/Home?id=15344 >> >> Only the latter worked. So "id", not "ids"? But it forwarded to >> Record #1, not #15344! (probably split the id string instead of the array) >> >> Finally: >> >> /Records/Home?id[]=15242 # works AND gets right record! >> /Records/Home?id[]=15344&id[]=15242 # fails >> >> So braces and something else? >> >> Inching closer.. >> --joe >> >> >> On Fri, Nov 8, 2013 at 3:01 PM, Joe Atzberger <jo...@bo...> wrote: >> >>> OK, the redirect is working, but my params setting is not. What's the >>> correct invocation? >>> >>> $this->params = array('id' => array(123, 456, 789)); // removed (), >>> still doesn't work >>> >>> I guess I have to build a new Params object, of which there are... 19 >>> different types (on my system). >>> >>> The "VuFind|123" form of the IDs didn't seem to change anything. >>> >>> --Joe >>> >>> >>> On Fri, Nov 8, 2013 at 1:12 PM, Joe Atzberger <jo...@bo...> wrote: >>> >>>> So literally, in NewfangledController.php >>>> >>>> public function someAction() { >>>>> $this->params() = array('id' => array(123, 456,789)); >>>>> return $this->redirect()->toRoute('records-home'); >>>>> } >>>> >>>> >>>> Is it that easy? >>>> >>>> >>>> On Fri, Nov 8, 2013 at 12:29 PM, Demian Katz <dem...@vi... >>>> > wrote: >>>> >>>>> One really easy way to do this, if you don't need to do any >>>>> particular custom displays, is to redirect to the RecordsController, which >>>>> is simply designed to page through a set of arbitrary IDs. If you need to >>>>> custom-build something, you can use the \VuFind\Record\Loader to accomplish >>>>> most of the work. >>>>> >>>>> Does that help, or were you looking for something more specific? >>>>> >>>>> - Demian >>>>> ------------------------------ >>>>> *From:* Joe Atzberger [jo...@bo...] >>>>> *Sent:* Friday, November 08, 2013 12:11 PM >>>>> *To:* vufind-tech Tech >>>>> *Subject:* [VuFind-Tech] Record lists >>>>> >>>>> I know that the VuFind code answers this question a few different >>>>> ways, but I wanted some human opinion on it: starting from a list of IDs >>>>> (externally retrieved, hardcoded, whatever), what is the easiest way to >>>>> have VuFind display the corresponding records? >>>>> >>>>> This problem seems to reoccur with great frequency. Cart, Series, >>>>> Holds, Favorites, etc. >>>>> >>>>> --Joe >>>>> >>>> >>>> >>> >> > |