On Tue, 2006-01-31 at 11:20 +0100, Andreas Hartmann wrote:
> Josias Thoeny schrieb:
> 
> [...]
> 
> > One problem I see is the parent-child relations.
> > For example, now it's not possible to publish a document if its parent
> > is not published. This guarantees some kind of "integrity".
> > If you have multiple hierarchical site structures, you cannot have this
> > kind of dependency constraints.
> 
> I think that would be possible. The current SiteManager interface
> allows to define a dependency relation, which could be implemented by
> all site structures to ensure integrity constraints.

The constraints are derived from the site structure, which is a directed
acyclic graph. If there are multiple site structures, the constraints
must be derived from the union of all those graphs, which is not acyclic
anymore.
See this simple example with docs A and B:

/struct1/A/B.html
/struct2/B/A.html

Now we have a cyclic dependency between A and B. 
How could this be solved?
We could say it's not allowed to insert A->B if we have B->A in another
site structure, but that would be confusing to the user.
The other option I see is to drop the constraints for all but one of the
site structures, and perform operations like "delete" or "publish
subtree" only on that "main" structure.

Josias

> 
> 
> > Probably there would be a default
> > structure, and the constraints are imposed only on that structure. But
> > IMHO this is somewhat confusing.
> > And what if a user wants to perform operations like "publish subtree" on
> > an alternate (unconstrained) structure? 
> > 
> > And how would an additional site structure be created and edited?
> 
> IMO that's just a GUI issue. For instance, you could create the
> content item and add it to several site structures by clicking
> on a node and selecting "insert as child / insert as sibling".
> 
> Dynamic structures (or indizes, as solprovider suggests) would show
> new items automatically.
> 
> 
> > When Lenya creates a link from a unique ID, how does it determine which
> > url space to use? From the current request, or from the session?
> 
> That's to be decided. IMO the API has to require providing the
> site structure:
> 
> Structure structure = new SiteTree() {
>      public boolean matches(Request request) {
> 
>          // option A
>          String id = request.getSession().getAttribute("navigation");
> 
>          // option B
>          String id = request.getURI().split("/")[2];
> 
>          // option C
>          resolver.resolveURI("cocoon:/get-navigation-id");
>          String id = ...
> 
>          return id.equals(getStructureId());
>      }
> };
> 
> publication.addStructure(structure);
> 
> ...
> 
> Structure structure = area.getStructure(request);
> String url = structure.getURL(contentItem);
> 
> 
> > When you insert a link in BXE or another editor, which site structure
> > will be used to display the tree?
> 
> That could be handled by structure IDs. In the case of lavafilm, the
> navigation IDs would be equal to the language code and would be
> determined using URL spaces.
> 
> [...]
> 
> > I still think that multiple site structures is FS (flexibility syndrome)
> > until someone shows me a usecase which clearly shows some benefits.
> 
> IMO the support for multiple site structures could solve the problem
> of multi-language URLs. If you can just use another site structure
> for a different language version and add some redirects in the sitemap,
> you can handle virtually all multi-language URL spaces.
> 
> -- Andreas
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to