Similar to menus and views, extension modules may want to add information to "core" business objects. For example, the ]project-open[ Forum module may want to add this box with discussions and incidents to the ProjectViewPage.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The implementation of Dynamic Components consists of "Component Plugins" and "Component Bays".
Component Plugins represent HTML widgets. They are implemented using a database table containing the TCL code to render the HTML widgets and API calls in the busines objects .adp pages:
create table im_component_plugins (
plugin_id integer
constraint im_component_plugin_id_pk
primary key
constraint im_component_plugin_id_fk
references acs_objects,
plugin_name varchar(200) not null,
package_name varchar(200) not null,
sort_order integer not null,
page_url varchar(200) not null,
-- One of "left", "right" or "bottom".
location varchar(100) not null
constraint im_comp_plugin_location_check
check(location in ('left','right','bottom')),
component_tcl varchar(4000),
constraint im_component_plugins_un
unique (plugin_name, package_name)
);
<master src="../master">
<property name="title">Project</property> <!-- left - right - bottom design --> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td valign=top> @project_base_data_html;noquote@ <%= [im_component_bay left] %> </td> <td valign=top> @admin_html;noquote@ @hierarchy_html;noquote@ <%= [im_component_bay right] %> </td> </tr> </table> <br> <table cellpadding=0 cellspacing=0 border=0> <tr><td> <%= [im_component_bay bottom] %> </td> </tr> </table>
]project-open[ Core