0

I have a view with a list of nodes and their associated edit links. The nodes can be categorised/filtered so I use an argument* in the view that I set manually on the content template of the pages to display the view (different pages should show different sets) -- there is no correlation between this argument and the path to the pages containing the view. This works fine except that every edit link in the view redirects to a path that is a combination of the page's internal path and some string identifier that depends on the page being shown but isn't the page's title. On node/6 the link looks like edit?destination=nodeIdentifierF6. I've confirmed the number at the end corresponds to the node's ID and it is always preceeded by a capital F. My guess is that Identifier is really meant to be % and that Views substitutes some argument I'm not sure where comes from.

Is there a way to fix this, or a different approach altogether (e.g. using filters in a way that allows me to control the node sets dynamically), short of creating a whole template for this minor annoyance?

 

*Actually there are two arguments plus the three from the Views Or module, but I'm assuming it doesn't consume arguments, and the other argument has a default value and shouldn't be used. Using filters would be more appropriate, as users shouldn't have control over what set of nodes to display anyway, but I couldn't find a way to adjust filters dynamically, and the alternative seems to be to create n idental views but for this filter. I am mentioning this in case it's important.

 

22/9 Update: This appears to be related to drupal_get_destination(), which returns an encoded path (/ => %2F). For the view in question the %2 part must then be interpreted as an argument placeholder and substituted. I am no closer to a solution to the problem, unfortunately.

0

I ended up including the node ID and generating the edit link myself, with the catch that I can't hide the field for underprivileged users because it can never be empty (just prints an empty string in that case). It's an acceptable solution but I'd prefer to se the built-in method.

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.