自定义组件签入/签出最佳实践

时间:2011-12-05 19:17:30

标签: joomla joomla1.7

我正在Joomla中创建一个组件! 1.7我希望利用框架的结账/登记功能。目前

  • 当用户请求该记录的编辑任务时,如何将组件记录标记为“已签出”?
  • 当用户尝试存储他/她的编辑内容时,如何将记录标记为“已签入”?
  • 如何在编辑时测试组件记录的签入/签出状态?

谢谢!

1 个答案:

答案 0 :(得分:4)

基本上,您需要在模型中使用两种方法,您可以随时调用这些方法:

function checkin()
{
    if ($this->_id)
    {
        $item= & $this->getTable();
        if(! $item->checkin($this->_id)) {
            $this->setError($this->_db->getErrorMsg());
            return false;
        }
    }
    return false;
}

function checkout($uid = null)
{
    if ($this->_id)
    {
        // Make sure we have a user id to checkout the article with
        if (is_null($uid)) {
            $user   =& JFactory::getUser();
            $uid    = $user->get('id');
        }
        // Lets get to it and checkout the thing...
        $item= & $this->getTable();
        if(!$item->checkout($uid, $this->_id)) {
            $this->setError($this->_db->getErrorMsg());
            return false;
        }

        return true;
    }
    return false;
}

要将项目标记为已选中,首先您必须拥有名为checked_out的列,其默认值为0,当项目签出时,您还需要checked_out_time来存储时间。 希望它有所帮助。