Forum OpenACS Q&A: Question about OpenACS architecture

Collapse
Posted by Irma Gamez on
Hello.
How a package interoperates with other components? Is there some kind of protocol? I developed a new package and I wonder if I could use other packages. Calendar, by example.

Thank you.

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.

Collapse
Posted by marwa mimo on
Hi. I'm looking for someone how can explain to me the conception of openacs's database. I'm developping an application and I can't understand exactly how to exploit my database and witch relations related the different tables. Please, is there someone that can help me?
Thank you.
Collapse
Posted by Torben Brosten on
Marwa Mimo,

Take a look at the package and platform developer's guide of the core documentation at: http://www.openacs.org/doc/

cheers,

Torben

Collapse
Posted by marwa mimo on
Torben Brosten,
thanks a lot.