We've sometimes used inheritance in cases like this - check for the value in the current page and if it doesn't exist, check for the value in the getAbsoluteParent(2) page node. The down side of this is a bit of node walking and a lot of null checking.
Could you please elaborate on your answer a bit? Did you create a custom dialog to do the node walking and check the value? Are you storing the data on the page node or some sub node?
One approach would be to have multiple templates using the same design. That would allow you to use a design dialog for this.
Another approach is to have an absolutely referenced global node. So your tag looks like <cq:include path="/content/siteName/globalText" resourceType="appName/components..." />. Obviously you may need to have sort of a wrapper component if the intent is to use this to be dragged onto a parsys.
Actually, you might be able to use an absolute path in the "name" property of your dialog widget. I haven't tried that...
Doesn't CQ store data seperately for each template associated with a design? So if you have 5 templates then you would have five different nodes stored in the design for design mode?
You're right, that is how the nodes are set up, but I could've sworn I'd gotten that to work before... The second approach is one I'm using for my current project.
Yes, by default data in design mode are stored separately per template.
For example there is logo component in sample geometrixx app which also stores logo per template,
At the same time there is inheritance implemented in design mode, so if all your templates inherits from some basic/abstract template (in case of geometrixx it is 'page' template) you can store design properties once and they will be inherited by all templates.
I think what you can do is to override the path where data is stored, e.g. in logo.jsp component you can do that by settingt content path on editContext variable
from now data will be stored under given path regardless of actual template used (here under 'abstract' page template)