Dear Wiki user, You have subscribed to a wiki page or wiki category on "Lenya Wiki" for change notification.
The following page has been changed by JörnNettingsmeier: http://wiki.apache.org/lenya/RandomThingsLearnedWhilePlayingWith1%2e4HEAD The comment on the change is: cleanup ------------------------------------------------------------------------------ == New Publication Wizard / Publication templating == - I'm trying to set up two publications that follow a common corporate design. The idea is to use [http://lenya.apache.org/1_4/reference/publication-templating/index.html publication templating], so that changes to the design will automatically be propagated to the derived publications. This does not work very well for me atm - I need to understand which settings and files are hard-copied once during creation and which are referenced. I'm dumping my findings here as I go along. + Important note (quoting AndreasHartmann): + ''The default publication's instantiator [i.e. the "New publication Wizard] is just an example how it could be done, it is not thoroughly designed and tested. You can fine-tune your own instantiator just as you please.'' + ''(see src/pubs/default/java/src/org/apache/lenya/cms/defaultpub/cms/publication/templating/Instantiator.java)'' - Important note (quoting AndreasHartmann): - ''The default publication's instantiator [i.e. the "New publication Wizard] is just an example how it could be done, it is not thoroughly designed and tested. You can fine-tune your own instantiator just as you please.'' - Ok. This means I have raised my status from RTFM to WTFC :-D Unfortunately, my Java skills are nil for very small values of nil... Let's see. - === Observations === + That said, the default instantiator has some issues: - The grunt work of creating a new publication is done by lenya_1_4_X/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/publication/templating/Instantiator.java. You should browse this file only if you are mentally and emotionally stable ;) + * It does not yet create a sane access control. It always uses the ac settings from the default publication (i.e. it uses the same users and groups, instead of creating its own ac). (CHECK: is this still the case with latest SVN?) + * <newpub>/config/ac/ac.xconf uses "context:///lenya/pubs/default/config/ac/passwd" etc. *But*: it always uses the "default" publication, not the actual template that is used. This can be corrected by using "fallback:///confic/ac/..." throughout /config/ac/ac.xconf. + * The contents of the passwd/ and policy/ dirs are copied into <newpub> from the default publication. + ''(Note: Changes to config/ac/ settings require lenya to be restarted in order to become active.)'' - ==== Access Control: ==== + * It produces an incorrect setting for "templates" in config/publication.xconf. There are two template declarations instead of one, and the first is always "default". Since the first one wins, your new publication will only inherit properties from default unless you remove this line. (CHECK: is this still the case with latest SVN?) - * <newpub>/config/ac/ac.xconf uses "context:///lenya/pubs/default/config/ac/passwd" etc. *But*: it always uses the "default" publication, not the actual template that is used. This can be corrected by using "fallback:///confic/ac/..." throughout /config/ac/ac.xconf. - * The contents of the passwd/ and policy/ dirs are copied into <newpub> from the default publication. - * Changes to config/ac/ settings require lenya to be restarted in order to become active. - ==== Configuration: ==== + == Overriding global resources == - * publication.xml is copied from the template, and the publication name is changed. This seems to be accomplished by weird tricks with the document tree within the Instantiator class. + In order to override anything from lenya/webapp/lenya/<path>/<to>/<somefile> in your publication, you need to create a corresponding file lenya/webapp/lenya/pubs/<yourpub>/lenya/<path>/<to>/<somefile>. Note the additional "lenya" subdir, which basically says "override global stuff". - ==== Content: ==== + For example, to provide your own samples when a user creates a new document, create <yourpub>/lenya/resources/samples/<resource type>.xml. - * content/*/* is copied from the template without changes. - * When the user creates new pages of a certain resource type, s/he will see sample pages which are read from ../modules/<doctype>/samples/<doctype>.xml. - ''How can these be overridden in individual publications? Why are there sometimes multiple files (such as xhtml-2col.xml and xhtml.xml)? How are resource types defined globally?'' + == Misc == + + * Is there a fallback mechanism for the "resources" subdir? What I'd like to have is reference a .css, lenya looks in the resources dir of the current publication, and if it's not there, look in the template. Or better yet, concatenate both css files so that I can overload selected style declarations while the rest is taken from the template. + + ''Yes, there is.'' AndreasHartmann: ''"Actually that should already work (see global-sitemap.xmap): <!-- Ancestors resources, css, js, etc... --><!-- {publication-id}/{area}/{filename}.inherited.{extention} -->"'' + + * How is access control supposed to work? Ideally, users created in a template are valid for all the derived publications, and each publication also has its own local user list. Possible? + + AndreasHartmann: ''"Not yet. That would require a custom accreditable manager."'' (Cf. config/ac/ac.conf -> <accreditable-manager type="file"/>) + * As mentioned in [http://lenya.apache.org/1_4/reference/publication-templating/index.html], templates are defined in <newpub>/config/publication.xconf. + ''I want to be able to add new resource types to the *template* that will automatically be available in all derived publications. possible? IIUC, as it is now I have to add a new fallback entry to each derived publication's config file by hand, which is not so nice.'' + ''Is there a way to say "take all configuration options from the template except those which are explicitly overwritten in the publication's .xconf"? This would be a lot saner IMHO.'' AndreasHartmann says ''"not yet"'', but welcomes patches. - * indexing: in <newpub>/config/index_manager.xconf it says '<indexer role="org.apache.cocoon.components.search.components.Indexer/default" />'. - ''Does this relate to the default publication, or is it just the "default" indexer behaviour?'' - AndreasHartmann guesses it's the latter, but is not sure. - === Other open issues === - - * Is there a fallback mechanism for the "resources" subdir? What I'd like to have is reference a .css, lenya looks in the resources dir of the current publication, and if it's not there, look in the template. Or better yet, concatenate both css files so that I can overload selected style declarations while the rest is taken from the template. - ''Yes, there is.'' AndreasHartmann: ''"Actually that should already work (see global-sitemap.xmap): <!-- Ancestors resources, css, js, etc... --><!-- {publication-id}/{area}/{filename}.inherited.{extention} -->"'' - - * How is access control supposed to work? Ideally, users created in a template are valid for all the derived publications, and each publication also has its own local user list. Possible? - AndreasHartmann: ''"Not yet. That would require a custom accreditable manager."'' (Cf. config/ac/ac.conf -> <accreditable-manager type="file"/>) - * How does the searching behave? (Need to look into that.) Ideally, I want to be able to search only the current publication or all publications derived from the same template(s). - --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
