I want to display the contents of one resource within another. I think this is possible with getResources but I cannot get it working for me. I have:
[[getResources &parents=`-1` $resources =`16`]]
but nothing displays. I have made sure all resources have been published and that getResources is installed correctly.
Can anyone point me in the right direction?
Thanks
Yes - that's exactly what getResources is for, you are not getting anything because you have a few syntax errors.
[[getResources &parents=-1 $resources =16]]
should be:
[[getResources? &parents=-1 &resources =16 &tpl=myTpl]]
the '?' tells Modx that there will be parameters, $resources will get ignored & if you don't specify an &tpl parameter, getResources will just dump the raw array to your page.
Actually there is no need to use a template. This code is working fine:
[[getResources? &resources=1 &tpl=#INLINE [[+content]] &includeContent=1 ]]
Related
I'm quite stuck on an unexpected problem. I'm trying to use Wayfinder to generate a sitemap for a project. The output of the navigation items is as expected, but I need to include a number of documents in addition to the primary navigation elements.
To do this, I have used the includeDocs parameter.
[[Wayfinder? &startId=`0` &includeDocs=`17,18,19,20`]]
When I do this, I get no output at all. Remove includeDocs and I get the standard nav (expected). Use the param and the output is completely empty.
No idea what I'm doing wrong or what (if any) other setting must be defined in order to make this work.
The includeDocs parameter is very misleading. It should rather be named "onlyIncudeDocs" or "restrictTo", since that is what it does. It also requires the docs you include to be directly accessable from your startId, alternatively have the entire path "included".
I would suggest you create weblink resources directly under your startId, and link them to the resources you want to include. That way wayfinder will pick them up by default. (Note that you may need to handle this in your rowTpl for wayfinder, since a weblink stores the actual link in it's content field)
If you also want to include the children of the id's you specify, you would probably be better of slightly revising your resource structure.
I am new to WayFinder but I have been working with it a bit and it has worked great for me, However I need something a little more dynamic that I'm not sure how to do.
I have a set of 5 pages in my website and each page has another side menu, but each menu for all five resources will be slightly different
I need wayfinder to detect what the current ID is and then display the appropriate menu
I've tried a couple things but nothign i can get to work:
[[!If? &subject=[[*28]] &then=[[Wayfinder? &startId=27&excludeDocs=28,29,30,31,32,33,89]]]]
So I need to say if the ID is = to 28 display this menu if the ID is = to 29 display this one and so on.
I've also tried &idIs=28 and a couple other variations but couldn't really find anything to help me out on this Does anyone else have any ideas how to make this work? Thank you.
With the solution typeset suggest, wayfinder will be called each time thereby causing uneeded loading time to your site. This will be faster because wayfinder only will be called when id = 28.
[[[[*id:is=`28`:then=`Wayfinder? &startId=27 &excludeDocs=28,29,30,31,32,33,89`:else=``]]]]
Read more on it here: http://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/
You can use output filters for conditional calls. Documentation for them is here
You code would looks something like this:
[[*id:is=`28`:then=`[[Wayfinder? &startId=27&excludeDocs=28,29,30,31,32,33,89]]`:else=``]]
If the menu needs to start from the current ID then you'd use
&startId=`[[*id]]`
If you want it to show all the resources in the current folder, you can use UltimateParent, so
&startId=`[[UltimateParent]]`
Hope this helps!
This should work. The subject is just the parameter you are comparing it against so it shouldn't contain the value.
[[!If?
&subject=`[[*id]]`
&operator=`EQ`
&operand=`28`
&then=`[[Wayfinder? &startId=`27` &excludeDocs=`28,29,30,31,32,33,89`]]`
]]
Currently on our site we have 4 weblink resources that are displaying in proper order (by the date on the title) on the page, but after adding one more weblink resource, it is added to the page but appears one below the first link, when it should be at the top.
I am not sure where to look to manually re-order these, and there doesn't seem to be any option to do this from the ModX interface or Resource Edit menu (setting the "index" does nothing).
Is there a way to accomplish this? Is it possible that this is custom and I need to find where the ordering is happening? I have looked in the Snippets folder for this page and wasn't able to find anything that looked like it was doing ordering.
Possibly related noob question: If we just want to manually re-order the links via html, how do we modify the source code directly, via ModX?
If you are using a custom snippet to extract the links then modx will not be doing any ordering for you at all, that would need to be written into the snippet itself.
if you are using getResources, [ http://rtfm.modx.com/display/ADDON/getResources ] look up the sortby option in the docs. I'm not 100% sure what the default is.
if you are using WayFinder [ http://rtfm.modx.com/display/ADDON/Wayfinder ] the default sort order will be the order they appear in the resource tree, which I believe is menuindex. I believe WayFinder also has a sorting option. [see the docs]
if you are not seeing changes when moving things around in the resource tree, be sure to clear the cache as changes in the resource tree do not automatically refresh the cache.
to manually add the links into the page/resource, you need to find the chunk/snippet/template that is displaying the links and modify that accordingly.
To manually re-order resources in "Resources Tree" you just need "drag-and-drop" by mouse to change the resources places.
I' am trying to make a custom module to set an active trail path to a menu.
I created a views page.
The active trail must be to a node or taxonmy term.
When I open the pages created by the view the active trail is not active.
I wrote the script here below but it doesn't work, can somebody please help???
function mymodule_views_default_views(&$view, &$display_id, &$args){
if( $view->name = 'productdetail';)
{menu_tree_set_path('menu-categorie', 'node/39');
}
}
Script is the wrong word, I used views and added the fields as mentioned above.
Sorry for the misunderstanding. I hope it helps.
I am happy, I have found the answer to my own question.
I like to share this answer, and hope, that this although helps others...
Here the answer:
In the view I added a field with the term-id / node ID which is although used for my menu and hide the output and do a rewrite of the output
I pasted the following code in text field for rewrite.
field_categorie-tid is my reference term from the menu
menu_tree_set_path('menu-categorie', 'taxonomy/term/[field_categorie-tid]');.
instead of taxonomy term you can although use node/[nid]
I added in the head section a global field
with php and token and put this script:
Thats all.
No hooks or custom scripting in template
I hope this helps someone else.
I need to divide long content to sub-pages.
Rule for dividing: Heading1 (H1)
Cms-system: MODX Evolution
As far as i know, there is nothing in modx to use for this kind of problem.
I probably got to do this manually anyway, but i still would like to know if there is a way to do this in MODX Evo / Revo.
Edit:
I need to do this in MODX; sub-pages got to be actual subpages, and original page becomes to container.
Navigation will be done with wayfinder.
Edit2:
All done.. manually. Question still open, though.
This is not possible out of the box and I don't know of any extra that archieves what you want. You would have to write a plugin that acts everytime you save a resource and split up the content, create/delete sibling resources as needed etc. Sounds like a lot of work for what you want to archieve to me.
I suppose you have a look at the MIGX extra. It provides you with a TV with the possibility to store an indefinite amount of distinct TV content sets. Have a look at the documentation and Mark Hamstra's tutorial (with screenshots) to see how it is done. You should define one MIGX entry to consist of a text field for the <h1> and a rich text field for the content of the "subpage".
Afterwards, you can use form customization to hide the original content field and display your MIGX Tv instead.
I think, this is a much easier way to archieve, what you want, and can't think of any way, where you would benefit from actual subpages.
Edit: Sorry, I just recognized that you were asking about Evolution, not Revolution. My solution would work in Revo, but I don't think there's something like MIGX for Evo. Sorry, my mistake.
not 'out of the box' you will have to run your content through a snippet to parse it into separate divs or something that you can run some javascript on to possibly 'tab' the content.
If you need to show the 'subpages' in your navigation, you will probably have to use the gatResources extra to parse your content ~ which will be very expensive on resource usage.
You can (depending on how you're using the tree) just create actual sub resources under the parent resource, using Ditto or Wayfinder to build navigation for it.
If you can't use the tree like that (though from your description I think you can), you could also set up a number of template variables ("content1", "content2", "content3" etc) and show that with a simple snippet or so.