1

I have been playing around with view panes, panels and context, and am struggling to find the best approach for the below:

  1. I have a Panel which, say, is my Home Page and contains various elements.
  2. Inside that panel, in a certain area, I wish to have Two View Panes
  3. View Pane A - Contains, say, a list of node titles
  4. View Pane B - Upon selecting a node title in View Pane A, I want View Pane B to display the content for that node

(My implementation uses Video Titles in Pane A which should display the relevant Videos in Pane B)

Current Approach:

  • Panel is set with URL: homePage/%currentVideo
  • In Page Manager, %currentVideo argument is configured to be assigned to the context Node:ID
  • View Pane B has a contextual filter of Node:ID
  • View Pane B has the Content ID from the Node assigned as the context for Argument Input
  • When adding View Pane B to the Panel, I set the contextual filter to get it's input from %currentVideo
  • View Pane A lists all the titles, and Rewrites the titles to a link that points to homePage/[nid] -- where [nid] is the input for the currentVideo

This works but I would ideally like to do this without using Arguments in the URL, since I want there to be several such Pane A/Pane B combinations on a home page, where selecting something in Pane A outputs content in Pane B. Therefore, the URL would just be /homePage, and wouldn't be used to pass arguments in/out in order to facilitate such a process.

Questions:

  1. Do I need to use Ajax? If so, - could someone suggest how the above process is best implemented?
  2. Or is there another approach using views, view panes, context and panels, that allows selection in one View Pane to trigger output in another View Pane within the same Page/Panel? (I'm not averse to re-loading the page, I just don't want to have to stuff multiple arguments in the URL as I feel it will get unmanageable over time.)

I have found an tried this Excellent tutorial on writing a module to implement an Ajax Callback, but am sure-ish that it could be all done within Views/Panels...

"Creating a Simple AJAX Interface with Views" : http://mrkadin.com/blog/node/70

Many Thanks in advance

1

There is sort of a hackish way to implement such behavior, described on this answer: https://stackoverflow.com/a/1596756/1421920

In short, the answer suggests two displays of the same view, one with the titles on the left with exposed filters (hidden by CSS) and the other one with the acutal content of the nodes. Add JS to the titles to fill the other view's exposed filter (also hidden by CSS) and submit. The relevant node loads on the second view with AJAX.

  • Sorry for late response. I am working on my JS skills and will attempt this & post a full response once I get it working – pcrx20 Sep 27 '13 at 9:31
  • 2
    OP will deliver... – Isaac Oct 30 '13 at 14:09
  • @wanwu - Still strugglin'? – leymannx Sep 25 '15 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.