Package: bda.contentproxy
OverviewModule providing some flavour of content proxy for Plone. It works for all
kinds of Archetypes based types.Consider that the Archetypes UID must be present in the portal_catalog
(default in plone 3) and the view for the Type must come along with
amainmacro in it’s view, i.e.:<metal:main fill-slot="main">
  <tal:main-macro metal:define-macro="main">

  <!-- type view goes here -->

  </tal:main-macro>
</metal:main>This macro is called on the proxied content and is inserted into themainslot of themain_templatein the current context.Two kinds of proxy behaviour are provided:A placeless proxyThis is a simple BrowserView namedproxy, with its own
traverser resolving the trailing part of the URL as the Archetype UID, i.e.:http://your.domain.net/some/path/@@proxy/0c6e067822a520eabcfdd1e67d209d96The other way is a simple Archetype with a UID reference field
The first kind of proxy may takes place when rendering search results,
the other one might be used to insertremotecontent to a specified place
in the folder hirarchy.KSSArchetypes provides inline editing stuff. Since the proxied content is indeed
rendered as is, the KSS rules for archetypes apply, but on the wrong context,
so we set a condition inside the kssregistry on at.kss resource to determine
wether it should be loaded or not.If you use the proxy not via the placeless proxy or the proxy type, but out
of your own application, you might have to add your own conditional rule to
avoid at.kss to be loaded. This can be done by the IContentProxiedRule
interface.To provide your custom rule, implement this interface and register your object
as multiadapter for context and request, i.e.:<adapter
  for="foo.bar.interfaces.IBaz
       zope.publisher.interfaces.http.IHTTPRequest"
  factory="foo.bar.baz.Baz"
/>A Base Rule object as well as a default rule object exist in
bda.contentproxy.proxy. The default rule is registered for*. if you want to
provide your own general rule, you have to define your rule implementation in
an overrides.zcml, but its strongly recommended to avoid this due to several
applications registering their own general rules, that might end in confusing
side effects. better bind to the context interface explicit.InstallationMake the egg available in your instance,Make sure to havebda.resultduplexeravailableImport the bda.contentproxy extension profile in your plone instance.This Product is tested with Plone 3.0CopyrightCopyright 2008, BlueDynamics Alliance, Austria -bluedynamics.comCreditsWritten byRobert NiederreiterSquarewave Computing, BlueDynamics Alliance, AustriaIdeas and contributions:Jens KleinBlueDynamics Alliance, Klein & Partner KEG, AustriaThis addon is an outcome of the UN ILO Better Work project.LicenceGNU General Public Licence 2.0 or laterChangelog1.0[jensens] 2010-08-31version handling in setup.py1.0 beta6[rnix] 2010-03-10remove resultduplexer dependency. resultduplexer depends on contentproxy now.try to lookup browser view by template name before calling main macro.[maurits] 2009-12-09version increase1.0 beta5[maurits] 2009-12-09Find the referenced object via the uid_catalog instead of the
portal_catalog so a clear and rebuild of the portal_catalog does not
throw a ContentLookupError when the proxy is indexed before its
referenced proxied content.[rnix] 2008-03-08version increase1.0 beta4[rnix] 2008-03-08Added Interface to define at.kss loading ruleUse a browserview for the expression used in kssregistry to determine wether
to load at.kss or not. This ensures the ability to customize the condition
logic.Made this module installable via Quickinstaller.[rnix] 2008-02-28version increase1.0 beta3[jensens] 2008-02-27formattedREADME.txtto valid ReST.added LinguaPlone support.removed title and fetch it from proxy1.0 beta2[rnix] 2008-02-21added css file to overwrite the :hover event on .inlineEditable classed
elementsadded kssregistry and added expression to at.kss not to be loaded when proxy
type or placeless proxy view is displayed to disable inline editing. in
future this might be done by kss or js directly with some kind of event
unbinding instead of dirty resource registry conditions.