2012-03-09 85 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