Forum OpenACS Q&A: Re: using an xowiki object outside of xowiki

Collapse
Posted by Stefan Sobernig on
Matthew


As time goes on I am understanding more and more, but I don't have the full picture yet, so I am having trouble asking the questions that need to be asked. At the same time I am trying to learn a new language which hasn't been easy because my background is in a procedural language(ColdFusion) and not an OO one. I appreciate the patience you and Gustaf have shown.

No doubt, it is hard to do all at once: learning Tcl, learning OO, learning the XOTcl OO-flavour, learning OpenACS internals, learning XOWiki internals etc. "Bon merde", as the French would say 😊


However, I think we can use some of the tools like the permissions system and the documentation abilities provided by xowiki in this first version.

Well, the permission system per-se is not an xowiki-specific feature. OpenACS itself offers this as infrastructure service to application packages as xowiki (based on a DB-backed "object system"). XOWiki adds some interesting and powerful features on-top, i.e. what I would refer to "access policies", roughly speaking.

By "documentation facilities", I assume, you refer to xowiki as authoring facility. So, you want end-user written documentation on your "web services" to be easy to contribute, with the help of xowiki, and make it visible a long with the expert documentation you deliver? And that's what your "integration" aims at, integrating xowiki-based end-user doc into the non-xowiki based expert doc? Well, in that case, I'd say option (a), adp-based integration, is a fairly good start.


I could not find ::xo::cc in the api browser.

::xo::cc is a helper object used in XOTcl-based OpenACS development that captures the current connection context, I guess in ColdFusion it is called "request" or something the like. It offers you access to the request information, permission checks for the current scope etc.

The reason why you couldn't find it in the API browser is because XOTcl due to its nature as object system is not natively integrated in the OpenACS API Browser, but it offers a different stage: Point your browser to /xotcl, e.g. http://localhost:8000/xotcl/show-object?show%5fmethods=1&show%5fsource=0&object=%3a%3axo%3a%3aConnectionContext. The XOTcl "Object system browser" offers very nice features, including source inspection, object relationship visualisations, object records etc. Bear in mind that XOTcl or xotcl-core is not (yet) part of the OpenACS Core therefore it is not always integrated seamlessly.


I'm just concerned about being dependent on others to answer questions in a forum. It seems the information that I need is out there, I just haven't found out how to access it properly or look in the right place.

Well, OpenACS API browser and XOTcl Object system browser are certainly a good start. Those more proficient in Tcl or XOTcl have their own strategies of simply reading the code. While there is (a little oldish) framework documentation on OpenACS in general, there is not yet sufficient for XOWiki or xotcl-core (while there is usage documentation). We improve the situation peu à peu, but this is simply a matter of (working) time and priorities. You might also want to check out the xotcl/xowiki-related sections at http://cognovis.de/developer/en/xowiki. A personal note from my side. A good way to handle this all-in-one situation you are facing is always to read others code and experiment with it (in a trial and error manner, indeed). So, look at the xowiki-based packages cited above (code is accessible) and try to link the hints we gave in our Guatemala xowiki tutorial on how to extend xowiki as framework to these code samples, see http://alice.wu-wien.ac.at:8000/s5-xowiki-tutorial/slides

Collapse
Posted by Matthew Smith on
Thank you Stefan. The resources you provided will be of help. I feel a little better now.