Forum OpenACS Q&A: Re: Question about OpenACS architecture
2: Re: Question about OpenACS architecture (response to 1)
Posted by Dave Bauer on 03/19/12 02:15 PM
There aren't any set points of integration between packages. You can create dependencies on other packages and use the features of that package by calling the procedures defined in that package and using the page/templates in that package.
Some packages have templates that are reusable in another package under the packagekey/lib/ directory.
3: Re: Question about OpenACS architecture (response to 2)
Posted by Irma Gamez on 03/19/12 06:24 PM
Ahh, Ok. So, communication between components (e.g. OpenACS core packages and Applications) uses dependencies too? Like OO?
4: Re: Question about OpenACS architecture (response to 2)
Posted by Jeff Rogers on 03/20/12 12:27 AM
There's also service contracts, which are sort of like overloaded methods. For example if your package wanted to post events to the calendar it could use a theoretical "create event" service contract to do it. The benefit of doing it this way would be that your package could then work with any calendar which implemented that contract.
See https://openacs.org/doc/acs-service-contract/ for the overview, or browse into the app pages on your installation to look around more. You can see for example that many packages implement the contract for "FtsContentProvider", so that any full-text search engine can get the right text to index.