Elxis CMS Forum

Support => Database => Topic started by: muharihar on October 24, 2008, 21:01:07

Title: [Oracle Problem] Error when copy menu to another one
Post by: muharihar on October 24, 2008, 21:01:07
i found these error message when i'm try to copy menu to a nother one:

URI: index2.php
Message: ORA-00904: "UTQQACCESS": invalid identifier
INSERT INTO web2_menu ( menutype,name,link,type,published,componentid,parent,sublevel,ordering,checked_out,checked_out_time,pollid,qqaccess,utqqaccess,params,language ) VALUES ( 'topmenu','Links','index.php?option=com_weblinks','components','1','4','0','0','3','0','1979-12-19 00:00:00','0','29','0','menu_image=-1 menu_image_only=0 pageclass_sfx= back_button= lastmodified=1 hits= item_description=1 other_cat_section=1 other_cat=1 description=1 description_text= image=-1 image_align=right weblink_icons= sshots=1','english,indonesian' )

these error happen because field UTQQACCESS does not exis on table __MENU.

table __MENU description:
-----------------------------------------------------------
describe web2_menu;
Describing web2_menu....
NAME                            Null?     Type
------------------------------- --------- -----
ID                              NOT NULL  NUMBER(10,0)
MENUTYPE                                  VARCHAR2(25)
NAME                                      VARCHAR2(100)
LINK                                      VARCHAR2(4000)
TYPE                                      VARCHAR2(50)
PUBLISHED                       NOT NULL  NUMBER(3,0)
PARENT                          NOT NULL  NUMBER(10,0)
COMPONENTID                     NOT NULL  NUMBER(10,0)
SUBLEVEL                                  NUMBER(10,0)
ORDERING                                  NUMBER(10,0)
CHECKED_OUT                     NOT NULL  NUMBER(10,0)
CHECKED_OUT_TIME                NOT NULL  DATE
POLLID                          NOT NULL  NUMBER(10,0)
BROWSERNAV                                NUMBER(10,0)
QQACCESS                        NOT NULL  NUMBER(10,0)
UTACCESS                        NOT NULL  NUMBER(10,0)
PARAMS                                    VARCHAR2(4000)
LANGUAGE                                  VARCHAR2(255)
SEOTITLE                                  VARCHAR2(255)
---------------------------------------------------------

and i'm try to fix it by adding this script to _replaceCompat (core file: database.php):

protected function _replaceCompat($sql) {
......
$sql = preg_replace($pat, $rep, $sql);

//added script         
$pat2 = array('/utqqaccess/');
$rep2 = array('utaccess');
$sql = preg_replace($pat2, $rep2, $sql);

}

am i wrong?

thanks...
sorry for my english
Title: Re: [Oracle Problem] Error when copy menu to another one
Post by: datahell on October 25, 2008, 12:27:04
open includes/Core/database.php
Go to line 269

Change this:
$pat = array('/access/', '/\_qqaccess/', '/date/', '/\_qqdate/', '/qqdate\_/', '/qqdateadded/', '/lastvisitqqdate/', '/option/', '/\?qqoption/', '/qqoptions/', '/birthqqdate/', '/registerqqdate/');
$rep = array('qqaccess', '_access', 'qqdate', '_date', 'date_', 'dateadded', 'lastvisitdate', 'qqoption', '?option', 'options', 'birthdate', 'registerdate');

to this:
$pat = array('/access/', '/\_qqaccess/', '/date/', '/\_qqdate/', '/qqdate\_/', '/qqdateadded/', '/lastvisitqqdate/', '/option/', '/\?qqoption/', '/qqoptions/', '/birthqqdate/', '/registerqqdate/','/utqqaccess/');
$rep = array('qqaccess', '_access', 'qqdate', '_date', 'date_', 'dateadded', 'lastvisitdate', 'qqoption', '?option', 'options', 'birthdate', 'registerdate', 'utaccess');

As you see I added a replacement from utqqaccess back to utaccess in order to reverse the replacement made by the "access" pattern.
"qq" is a compatibility prefix we added for Oracle.
Title: Re: [Oracle Problem] Error when copy menu to another one
Post by: muharihar on October 27, 2008, 06:18:46
thanks....
it's work for me.....

-------------------------------
sorry for my english....