A client of mine choose Oracle 9.2 as the DBMS for its OpenACS 5.1.4 site, but soon
encountered serious problems with edit-this-page.
Making it working required only a small amount of code, but a quite painful debugging session to find, understand and fix it.
Making it working required only a small amount of code, but a quite painful debugging session to find, understand and fix it.
I'm posting here the steps I did, because I've not commit rights and it is not easy for me to match the existing open bugs.
- sql/oracle/edit-this-page-create.sql
In the last fiew rows of the file the etp_page_revision content type was created with the PostgreSQL syntax content_type__create_type instead of content_type.create_type, thus preventing the correct installation of the data model. - sql/oracle/edit-this-page-create.sql
This fragment of the 'get_relative_url' function:if v_object_type = 'content_item' then return name; end if;should read instead:if v_object_type = 'etp_page_revision' then return name; end if; - www/etp-setup-2-oracle.xql
The two queries 'register_types' and 'register_folders':<fullquery name="register_types"> <querytext> select content_folder.register_content_type(:folder_id,'content_revision','t') </querytext> </fullquery> <fullquery name="register_folders"> <querytext> select content_folder.register_content_type(:folder_id,'content_folder','f') </querytext> </fullquery>should read instead:<fullquery name="register_types"> <querytext> begin content_folder.register_content_type(:folder_id,'content_revision','t'); end; </querytext> </fullquery> <fullquery name="register_folders"> <querytext> begin content_folder.register_content_type(:folder_id,'content_folder','f'); end; </querytext> </fullquery> - www/etp-edit.tcl
Added a row to set latest_revision_id in the following fragment:
if { ![empty_string_p [db_map update_${attribute}_attribute_clob]] } { db_dml update_${attribute}_attribute_clob "" -blobs [list $value] } else { db_dml update_attribute "" }wich should read instead:if { ![empty_string_p [db_map update_${attribute}_attribute_clob]] } { set latest_revision_id [etp::get_latest_revision_id $package_id $name] db_dml update_${attribute}_attribute_clob "" -blobs [list $value] } else { db_dml update_attribute "" } - www/etp-edit-oracle.xql
Added the column 'mime_type' to the 'get_standard_attribute' query.
Copied the query 'update_content_attribute_clob' here from www/etp-edit-2-oracle.xql - www/etp.adp
Changed the line:
<if @content_items.object_type@ eq "content_item">
into:<if @content_items.object_type@ eq "etp_page_revision">
Removed the lines:<if @content_items.rownum@ ne 1> | <a href="etp-swap?sort_order=@content_items.sort_order@">move up</a> </if>
This is necessary because the Oracle cr_items table lacks the tree_sortkey attribute and, without changing the actual logic, it is not possible the reordering of the dependent items with the 'move up' link. - tcl/etp-procs-oracle.xql
Added the column 'mime_type' to the queries 'get_page_attributes' and 'get_page_attribute_other_revisions'
Hope this helps.
Request notifications