Forum OpenACS Q&A: Re: Question about OpenACS architecture

Collapse
Posted by Dave Bauer on
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.

Collapse
Posted by Irma Gamez on
Ahh, Ok. So, communication between components (e.g. OpenACS core packages and Applications) uses dependencies too? Like OO?

Thank you.

Collapse
Posted by Jeff Rogers on
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.