Board Thread:Support Requests - Getting Technical/@comment-7630509-20151101220323/@comment-15636815-20151112201337

Sort of. You're close.

B doesn't actually check anything in A. B just follows A's instructions.

Here's an analogy that I hope makes things more clear.

Mary gives a shopping list to her husband, Fred, and instructs him to purchase everything on the list. Mary also tells Fred that some items have specific instructions and that he needs to pay close attention to the list. As Fred leaves for the grocery store, Mary lies down to take a nap.

Fred goes to the grocery store and, using the shopping list as a guide, begins filling his cart. Then Fred realizes that he can't read Mary's writing for one item, but he knows he can't phone her because she's sleeping. Fred does the best he can, then returns home and gives the groceries to Mary, who woke up just in time. ;-)

So, when one template calls another, it's like giving the called template a "shopping list" of parameters. The calling template expects the called template to know what to do with the information given. If, for some reason, the called template doesn't understand something, it either will give unexpected output or will throw an error. In any case, it cannot ask the calling template for clarification.

Therefore, in your case, B simply checks A's shopping list to see if "cat" is there. With your desired setup, A always will send "cat" to B, and no other template will send "cat" to B. For its part, B doesn't know what's going to be on the list when it goes to work. It just reads what it's given and goes from there.

I hope that wasn't too technical. I hope that gives you a better understanding of how templates interact with each other and what happens when a user (or another template) sends parameters in a template call. :-)