Thorsten Scherler wrote:
Hmm, since a logo is only visible in presentation its for me
presentational.
If that was the criterion then text content would also be
presentational because it only becomes visible when presented.
From a different angle: A logo is not a way to present
something else. The logo is this something else. It is data.
Presentation of a logo could be where it is placed, how it
is sized or if it gets grayscales for printing (though
ci-experts would question even this as manipulation the data)
The structurer (based on jx) is used
to define which functionality should be used and passes extra
configuration parameter to the contracts.
I may have gotten this wrong, but it looks like these params
are embedded in the structurer/contract files instead of a
properties-document.
If this is so I wonder why.
If dispatcher/structurer is to replace skins the
configuration options need to be simple.
Is it possible to have a properties-files for contracts and
a additional layer of properties for a structurer configuration?
However each contract can as well access all forrest properties (e.g.
index.props in a dispatcher project will show them) by implementing
following lines:
<!-- If you need default variables: -->
<xsl:param name="defaultVariables" select="'test.html'"/>
<!-- then extract the variable like: -->
<xsl:variable name="skin-img-dir" select="$defaultVariables/*/[EMAIL
PROTECTED]'skin-img-dir']/@value"/>
I'm not sure I understand this, but it looks to me like a
way to access the project properties.
Yet what I'm looking /asking for is a way to offer a default
configuration of a "skin" created with dispatcher/structurer
so that I can create a ready made "skin" w/o the user
having to set additional properties but with the option of
changing them in a properties file if they want/need to.
So you see the dispatcher implements following configurations:
- global - forrest.properties.xml
Accessible via <xsl:param name="defaultVariables" /> in any contract.
- theme/url specific via structurer/panel
I understand that I really need to play with your baby a lot
more to know what you are saying.
If you look into
https://svn.apache.org/repos/asf/forrest/trunk/whiteboard/cocoon-2.2-blocks/
there I ported only three plugins/core functionality to
cocoon-2.2-blocks/. Meaning it is very much possible.
The two blocks
- locationmap/
- propertiesGenerator/
are mainly responsible for the configuration of forrest. However in the
above case they are decoupled from the core.
Ah, so you have done work there to decouple this once we
move to cocoon-2.2-blocks?
- to add styling hints that suggest to the presentational
engine how these classes could be presented.
That is very much possible (not for skins but for dispatcher). Skins are
very limited in this context since plugin cannot add output specific
processing to skins. However that is not true for the dispatcher. e.g.
the solr plugin is a very good example where we do this.
Wow! Now you have me hooked. Will look at that plugin.
As a result a plugin can at best add class attributes (and
hope they don't disappear) and the user can then either
accept that their classes "instruction step" or "instruction
result" or "board members" will all look the same (perhaps
like a bulleted list) or they take the extra step of adding
extra css or adjusting the skin or a contract.
css is always presentational. All above is a problem of skins but is
solved in the dispatcher.
Oops. I've missed that. Too much playing with my son :-)
Great.
And that is what I see as breaking the plugin-concept here.
No the plugin-concept works very fine as it is IMHO.
By being able to offer style hints, an input-plugin could
pass the information that the list of board members might
look good with a little people logo in front of it.
This is perfectly possible with the current code.
Wonderful.
And the
"skinning" could then deside to take that hin, do something
of its own with a class or ignore the class and hint altogether.
That is how dispatcher work but not skins. You describe the many
problems of skins as presentational engine but the dispatcher solves all
of the above.
Sorry, yes. I seem way behind with understanding your work.
...
But why flatten? What's wrong with bundling properties that
belong together in a parent element?
With flatten I mean:
In forrest.properties or forrest.properties.xml. That would mean to
flatten some
<pdf>
...
<page size="letter" orientation="portrait" text-align="left"/>
into e.g. forrest.properties.xml:
<properties>
<property name="pdf.page.size" value="letter"/>
<property name="pdf.page.orientation" value="portrait"/>
<property name="pdf.page.text-align" value="left"/>
The hierarchy is reflected in the name.
Yes I see that. But why do that. After all one of the
beauties of xml-config files is the ability to use true
propertie-hierachies rather then the look a like of
dot-notation.
What I'm trying to understand is why hierarchies are bad or
harder to use?
David has cleaned up a lot of forrest.properties files to only add what
is needed. We are close to a blank file.
Bless you, David.
Why are the plugins wedged in between the xml and the
non-xml-version of the default properties.
Not sure myself.
Would it not make more sense to load them after both?
Yeah, why not.
Can we change this right away before writing the documentation?
Cool!
Can I also get a list where the source of a setting is
shown? How about adding the source of a setting as a third
element?
Yeah would be possible, what would be the benefit?
The benefit would be the easy of tracking down where a
property originated. Rather than checking perhaps a dozent
or more properties files (if all the places are used).
Perfect, hopefully somebody can find the time to document the outcoming
of the thread.
I volunteer to document the properties mechanism.
Best regards,
Ferdinand Soethe