2012-03-09 87 views
0

我已經在我的一個Joomla PHP文件中創建了一個函數。本質上,該函數檢查用戶的ID是否在數據庫中找到。如果用戶的ID沒有找到,那麼它會重定向到Content-A。如果在數據庫中找到用戶的ID,那麼它將重定向到內容B.在下面的代碼中,如果$ result返回true,則找到用戶的ID。PHP重定向檢查Joomla:需要排除內容頁面被重定向

這在當前的工作形式:

else 

    { 

     // Get Current Users Joomla ID    
     $user =& JFactory::getUser();   

     // Search Database for Joomla Users ID 

     $db = JFactory::getDbo(); 
     $query = $db->getQuery(true); 
     $query->select('user_id'); 
     $query->from('database_table'); 
     $query->where('user_id = ' . $user->id); 
     $db->setQuery($query); 
     $result = $db->loadResult(); 

    if ($result && ((JRequest::getCmd('option') != 'com_content') || (JRequest::getCmd('view') != 'article') || (JRequest::getInt('id') != 'XXX'))) 

{ 

這個代碼表示,如果有一個$結果,並在瀏覽器中加載的當前頁面不是內容ID XXX,然後執行以下功能。我需要做的還包括其他2個頁面的ID來檢查。所以如果用戶在這三個頁面ID之一上,那麼他們將不會被重定向。

我試過以下,但它似乎並沒有工作:

if ($result && ((JRequest::getCmd('option') != 'com_content') || (JRequest::getCmd('view') != 'article') || ((JRequest::getInt('id') != 'XXX') || (JRequest::getInt('id') != 'YYY') || (JRequest::getInt('id') != 'ZZZ')))) 

{ 

我想我接近,但網站進入重定向循環時,我將這段代碼保存。有人可以提出一種修復語法的方法嗎?預先感謝任何幫助!

編輯:真的有4種內容類型需要在此工作流程中處理。

內容-A =顯示,如果用戶登錄和他們的用戶ID沒有在數據庫中

內容-B =顯示如果用戶登錄和他們的用戶ID在數據庫

發現發現

內容-C =從內容-B通過鏈接

內容d訪問=是顯示在內容A,B & C到光盒彈出(RocketTheme的RokBox)

+0

你應該添加'功能上面的代碼... ... – 2012-03-09 20:21:46

回答

0

只要使它有點乾淨,如果簡單條件將有助於發現問題。

$articleId = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0; //Get the article's ID 

$dont_redirect = array('12','13','15'); //ID's of those specific articles 

if($result && !in_array($articleId , $dont_redirect)) 
{ 

如果它仍然不起作用,它可能是$ result變量,它的價值是什麼? 使用:

var_dump($result); 

之前的條件。

+0

謝謝Ofir!這適用於兩個內容ID,但不是第三個。這裏有更多的背景信息:內容出現在Facebook iFrame中,通過Joomla移植。三個頁面中的兩個將填充主iFrame,但第三個內容是通過使用RocketTheme的RokBox彈出的Lightbox訪問的...所以它是iframe中的iframe。 $ result變量是一個用戶ID,在這種情況下,var_dump顯示「string(2)」id「」。 – Ryan 2012-03-09 20:35:56

+0

等待您的更新。 – 2012-03-09 20:39:29

+0

請提醒我爲什麼你需要'用戶的ID'的條件? – 2012-03-09 20:42:08