FOF30\Model\DataModel::isLocked PHP Method

isLocked() public method

Is this record locked by a different user than $userId?
public isLocked ( integer $userId = null ) : boolean
$userId integer
return boolean True if the record is locked
    public function isLocked($userId = null)
    {
        if (!$this->hasField('locked_on') && !$this->hasField('locked_by')) {
            return false;
        }
        $nullDate = $this->getDbo()->getNullDate();
        // Get the locked_by / locked_on
        $locked_on = $nullDate;
        $locked_by = 0;
        if ($this->hasField('locked_on')) {
            $locked_on = $this->getFieldValue('locked_on', $nullDate);
            if (empty($locked_on)) {
                $locked_on = $nullDate;
            }
        }
        if ($this->hasField('locked_by')) {
            $locked_by = $this->getFieldValue('locked_by', 0);
            if (empty($locked_by)) {
                $locked_by = 0;
            }
        }
        $allowedUsers = array(0);
        if (!empty($userId)) {
            $allowedUsers[] = $userId;
        }
        if (in_array($locked_by, $allowedUsers)) {
            return false;
        }
        return $locked_on != $nullDate;
    }

Usage Example

コード例 #1
0
ファイル: Modified.php プロジェクト: akeeba/fof
 /**
  * @param   DataModel  $model
  * @param   \stdClass  $dataObject
  */
 public function onBeforeUpdate(&$model, &$dataObject)
 {
     // Make sure we're not modifying a locked record
     $userId = $model->getContainer()->platform->getUser()->id;
     $isLocked = $model->isLocked($userId);
     if ($isLocked) {
         return;
     }
     // Handle the modified_on field
     if ($model->hasField('modified_on')) {
         $model->setFieldValue('modified_on', $model->getContainer()->platform->getDate()->toSql(false, $model->getDbo()));
         $modifiedOnField = $model->getFieldAlias('modified_on');
         $dataObject->{$modifiedOnField} = $model->getFieldValue('modified_on');
     }
     // Handle the modified_by field
     if ($model->hasField('modified_by')) {
         $model->setFieldValue('modified_by', $userId);
         $modifiedByField = $model->getFieldAlias('modified_by');
         $dataObject->{$modifiedByField} = $model->getFieldValue('modified_by');
     }
 }
All Usage Examples Of FOF30\Model\DataModel::isLocked