As I understand it, Relativity provides two ways to present the list of nodes to attach: either a list by node-type or a tree according to taxonomy.
In my system I have way to many nodes in either view and therefore need another way to select nodes to attach. In fact, I have a interface for searching/browsing nodes and could show this up (in a window or as a div that I am going to show). Only problem is: how can I make it work with Relativity?
I am thinking of a button "browse nodes" instead of the usual "attach existing Page" link. Clicking on "browse nodes" brings up my browser window (or div) and when the user has selected the page she wants, she clicks on it.
So:
- How should I replace "attach existing Page" etc. (hopefully without changing the module code)?
- How can I tell Relativity what node the user selected?
Thanks a lot for any hint!
Kaspar
Comments
Comment #1
JohnG-1 commentedIf I understand you correctly ... your node lists are too big to work effectively as selection lists ... tricky, I have a couple of ideas (nothing more). If you could provide a link to your test site it would be much easier to see the situation you want to deal with.
Comment #2
hbfkf commentedJohnG, thanks a lot for your reply! I am going to take a look at the two modules you mention (more on this later).
Hm, how do you mean this? My problem is not that I have many children or parents; my problem is that when the user clicks for instance "attach existing Page", there are so many pages that it (i) takes long to load and (ii) is cumbersome for the user to find the wanted page. (That's why I intend to use a "node browser".) — Or have I misunderstood you here?
(P.S. Unfortunantely, our site is offline as not all content is public.)
Comment #3
JohnG-1 commentedIf the 'attach existing ...' lists are too long and cumbersome (= what I meant by too many children) I don't understand how placing the same list in another window or whatever is going to make it any more navigable and usable? The 'Attach existing ...' list gets a full page already ... If the lists are too long for users to scope you need to shorten them. You may A) break them up into sublists and/or B) filter out irrelevant or redundant items from that list. I really can't see any other options. So the remaining question is how to go about sorting and sifting - there are a number of tricks, but it all depends on which node relationship modules you're using and the content you are dealing with.
Views module is all about lists of nodes and contains (almost ;) every widget you want for sorting and sifting these lists. If you're not already familiar with it, I would start there. However - whilst Omar's patch_4 does very good job of integrating views for child-nodes, AFAIK no-one has tried to tackle connecting views to the 'Attach existing ...' list. It would require some mods to Relativity module, but hopefully on the back of Omar's work it might not be too difficult. Such a patch might require some views modules features which are not (yet?) included in the official release (the viewsselection & editview 'patches') ... therefore this method is not currently available.
In the short term, a couple of things you might consider / try:
You see what I mean? - several ways to look at structuring your data to make it more navigable ... of course there are many possibilities, which is why I asked for a look at your testsite so I could make more specifc suggestions (if appropriate).
Comment #4
hbfkf commentedAgain, thanks a lot for the detailed answer.
What I meant with the browser is this: We have lots of media assets, each represented by a node. When the user intends to a node as a child, potentially all of them are possible candidates. That's where the browser I mentioned comes in: Instead of providing a list of nodes (which might be huge), it presents to the user an interface to find nodes. That is, based on taxonomy and a search text, the user obtains using AJAX a list of nodes (which hopefully is short). And from this list, the user selects a node. Does this make more sense? Sorry for not explaining it clearly from the start.
One path is now clear to me: Using the hints in your first reply, I'll probably be able to integrate our browser. But I will first look at the two modules you mention and Omar's patch_4; maybe this gives an easier solution.
Thanks for your help, very kind of you. I'll post a summary when I have made some progress.
Kaspar
Comment #5
JohnG-1 commentedYou're welcome - Good luck
Comment #6
leanazulyoro commentedI'm interested in this functionality as well. I want a node parent to be able to attach one or more children at once, and a browser at the top of the attachs page to simplify the search to the user. my solution woul be to have a personalized attachs page, i believe using views mostly. Have you advanced in this matter johnG? it would save me a lot of time...
Comment #7
a_c_m commentedI'm putting a bounty on this (well the ajax selection part) here : http://drupal.org/node/206236
If you've got a few $'s to spare and want this functionality chime in on the thread and pledge some cash :)
Comment #8
pkej commentedWouldn't a popup with a search box (the site search would be a good idea, as it filters content by language which the current system doesn't) be a good idea; or even better a popup which could take a view and present the results from the view (a kind of hook).
Anyway, it should be some kind of ajax solution, the current way of changing the page means extra reloading of the node everytime you add a child. Can take a while under some conditions.
Anyway, to whoever might program this: let the selection be language aware. I often find myself wondering if a name of a place in my nodelist is the English, Norwegian or some other version. There are no hints in the links generated.
That's also why I can relate to the original issue, remember that each of the translations have exactly the same taxonomy terms assigned. So taxonomy refinement doesn't work, nor do refinement by node type.
A view would at least let me create a view for each language (though views should have arguments for language...sigh only filters today).