Hi together,
I don’t understand, why the result is different if I’m search a node with «node-name» or «identifier»? In the Documentation I found no indication that something else could be expected. In real world there is a difference, I guess.
# with identifier
title = ${q(node).find('#97a425db-285a-43dc-a4bc-dc100a85f280').property('title')}
output:
# with name
title = ${q(node).find('node-57653b3cc1866').property('title')}
output:
The backend Additional Info is:
the template:
<f:debug>{title}</f:debug>
Do I have some sign insert before (like the hash-sign for indentifier)? Strangely, I get without an .property('title') an object and not null.
So the value for the «node-name» seems correct. But I can’t fiddle out, how I get the title.
title = ${q(node).find('node-57653b3cc1866')}
- Is there a difference in structure of returned value, when I use «node-name» or «identifier»? - Is there somewhere an overview in a part of docu, what I get back? And how I can work with the different returned objects/values? - And much more helpful: Is there some solution to format the <f:debug></f:debug> output/object from <f:debug> more eye-firendly?
Pretty sure you’re just not finding the node using the name.
It’s likely because the node is not a direct child of the node in the context you query from.
You’re debugging the FlowQuery object and not the actual content (the node in this case). Use ${q(node).find('node-57653b3cc1866').get()} to get the content.
FlowQuery is similar to how jQuery works as a wrapper.
I’m quite sure, you are right , but also confused :
Why the find()is finding the node when I’m using the identifier: '#97a425db-285a-43dc-a4bc-dc100a85f280' and not finding the “same” node with using the name: 'node-57653b3cc1866'?
Of course you are right: I just finding not the node: test= ${q(node).find('node-57653b3cc1866').get()}
output:
Understanding-trial: Is .find(«Identifier») search “Neos-wide” and .find(«name») only in direct children, thats why «name» is not finding this «not direct-child» of the node in the context?
Sorry, I have to ask again, otherwise I’ll end up next time in the same dead end: Do I have to use .parent() /. siblings() and Co. in combination with .find(«name») and with .find(«identifier») I don’t have?
How can I find/use content from an other page (other node, not current query from ) in the actual page/node with flowQuery in ts2-file easiest?
Did someone knows a good and easy to understand tutorial/overview? I thought with the Hitchhikers (1, 2, 3, 4) I’ve got it. But this seams to be wrong…
Getting nodes by paths using .children('') only works on one level, whereas .find('') works for several levels.
Again it’s similar to how jQuery works, it might make sense to read up on jQuery for a better understanding.
You can use q(node).find('/relativePath/from/the/site/node') to find from other pages or combine like q(node).find('#identifier').find('collection/specificNode') or start from q(site) instead of q(node)
I only write it down for others, which also misunderstand the term «Name» in the backend/docu and search by google.
So, I misunderstood the term «Name». Thought it will be also an “unique-value” (like a sometimes readable, sometimes hashed) sibling from unique identifier.
Always thought: why two? Will certainly have a deeper reason: Maybe, only because «Name» is “sometimes” readable for humans .
Now I checked my surmise in the typo3_typo3cr_domain_model_nodedata and have found: The value from the term «Name» ist “only” the «last-path-part» from current node. But not unique: Also to find in children’s path.
«Name» means something like «endPartOfPathToCurrentNode» also in Docu.
If I use .find(«node name»), out of the docs, it would be the same like .find(«endPartOfPath»). «node name», «relative path» or «absolute path» is not quite different: The big question for ‘absolute path’, ‘relative-path’ or (‘node name’ aka: 'endPartOfPath’ [kind of shortest relative-path from current node to children’s “endPartOfPath”]) is, where (on which node) I run the query and where my «path»-queryValue begins and ends.
I only get a usable return, when I search with find() an accessible/existing path.
.find(«identifier»)
This is quite different, because «identifier» is not a part of something, it is unique. Therefore no matter if absolute, relative or something else, or where I run the FlowQuery:
If the identifier exist, find() will hit the nail on the head and get always a usable return.
Nope, the node name doesn’t have to be unique.
The (absolute) node path is unique (in one dimension), but it can change (i.e. when you move a node) thus it’s recommended to refer to the identifier