Bug #23431
closedError: No pages are found on the rootlevel! in Frontend when using Oracle
0%
Description
Error No pages are found on the rootlevel! is always thrown when showing frontend when using Oracle. In backend page tree is displayed properly.
After investigating, in t3lib/class.t3lib_page.php, around lines 260, query to retrieve page is following one (MySQL) :
pid=0 AND pages.deleted=0 AND pages.hidden=0 AND pages.starttime<=1281620460 AND (pages.endtime=0 OR pages.endtime>1281620460) AND NOT pages.t3ver_state>0 AND pages.doktype<200 AND (pages.fe_group='' OR pages.fe_group IS NULL OR pages.fe_group='0' OR FIND_IN_SET('0',pages.fe_group) OR FIND_IN_SET('-1',pages.fe_group))
after being transformed for Oracle, through DBAL, the query becomes:
"pid" = 0 AND "pages"."deleted" = 0 AND "pages"."hidden" = 0 AND "pages"."starttime" <= 1281620460 AND ("pages"."endtime" = 0 OR "pages"."endtime" > 1281620460) AND NOT "pages"."t3ver_state" > 0 AND "pages"."doktype" < 200 AND (','||"pages"."fe_group"||',' LIKE '%,-1,%')
It's clear the a whole part has been lost and the condition on pages.fe_group never is true meaning no page is found!
(issue imported from #M15535)
Files
Updated by Xavier Perseguers about 14 years ago
This query already fails:
$query = $GLOBALS['TYPO3_DB']->SELECTquery(
'*',
'pages',
'pages.fe_group=\'\' OR pages.fe_group IS NULL OR '
. 'pages.fe_group=\'0\' OR FIND_IN_SET(\'0\',pages.fe_group) OR '
. 'FIND_IN_SET(\'-1\',pages.fe_group)'
);
Updated by Xavier Perseguers about 14 years ago
Bug found, jetzt macht es das:
SELECT * FROM "pages" WHERE "pid" = 0 AND "pages"."deleted" = 0 AND "pages"."hidden" = 0 AND "pages"."starttime" <= 1281620460 AND ("pages"."endtime" = 0 OR "pages"."endtime" > 1281620460) AND NOT "pages"."t3ver_state" > 0 AND "pages"."doktype" < 200 AND ("pages"."fe_group" = '' OR "pages"."fe_group" IS NULL OR "pages"."fe_group" = '0' OR ','||"pages"."fe_group"||',' LIKE '%,0,%' OR ','||"pages"."fe_group"||',' LIKE '%,-1,%')