使用'if(empty()'除了表单

时间:2013-06-28 13:19:31

标签: php joomla

通过对Joomla网站进行一些PHP编辑,我试图弄清楚如何重定向点击旧链接以查找已删除项目的用户。所以在\components\com_blah\views\item\view.html.php我输入了以下代码:

if ( empty($item->id) )
{
    $msg = JText::_( 'This item does not exist' );
    $mainframe->redirect(JRoute::_('index.php?option=com_blah&view=item&layout=detailed'),$msg);
}

尝试访问\components\com_blah\views\item\default\form.php

时的表单时有效

但是,使用网址index.php?option=com_blah&view=item&layout=form不允许用户访问表单以创建新项目,因为重定向没有找到ID。

那么如何更改上面的代码以便除了表单页面之外它还能正常工作?

任何帮助将不胜感激,

感谢。

1 个答案:

答案 0 :(得分:0)

您需要为if添加额外条件:

  1. 如果item_id为空且
  2. layout!=“form”
  3. 提供此代码:

    $layout = JFactory::getApplication()->input->get('layout');
    if ( empty($item->id) && ($layout != "form"))
    {
        $msg = JText::_( 'This item does not exist' );
        $mainframe->redirect(
           JRoute::_('index.php?option=com_blah&view=item&layout=detailed'),
           $msg);
    }