I see your point, I think that I have a solution for you. I’ll explain it with an example:
First, here is my structure:
Home(1)
News(2)
Gallery one(3)
Gallery two(4)
Contact(5)
So, I need two different ditto call for two gallery and I want to use only one template. Now...
1)I create a snippet with name
snippet-swap and I put inside this code:
<?php
$docid = $modx->documentIdentifier;
switch($docid) {
case 3:
return "{{gallery-one}}";
break;
case 4:
return "{{gallery-two}}";
break;
default:
return "[*content*]";
break;
}
?>
2) I create two chunks, one named
gallery-one, one named
gallery-two, inside these chunks I put the ditto call for the gallery.
3) I call the snippet from the template
{{header}}
[[snippet-swap]]
{{footer}}
Basically, the "case 3" is the ID Page, and in the snippet means that when you go to page Gallery one, it returns the chunk
gallery-one, when you go to Gallery two, it returns
gallery-two, as a default it will return [*content*]. Obviously you can modify it, it depends on your needs. This is just a example of what you could do to avoid multiple template (and multiple mistakes!)
I use this snippet to make multilanguage websites using just 1 template.
Hope that this helps