File: /home/accemeff/vendor/craftcms/cms/src/models/MatrixBlockType.php
<?php
/**
* @link https://craftcms.com/
* @copyright Copyright (c) Pixel & Tonic, Inc.
* @license https://craftcms.github.io/license/
*/
namespace craft\models;
use craft\base\Model;
use craft\behaviors\FieldLayoutBehavior;
use craft\elements\MatrixBlock;
/**
* MatrixBlockType model class.
*
* @property bool $isNew Whether this is a new block type
* @mixin FieldLayoutBehavior
* @author Pixel & Tonic, Inc. <support@pixelandtonic.com>
* @since 3.0
*/
class MatrixBlockType extends Model
{
// Properties
// =========================================================================
/**
* @var int|string|null ID The block ID. If unsaved, it will be in the format "newX".
*/
public $id;
/**
* @var int|null Field ID
*/
public $fieldId;
/**
* @var int|null Field layout ID
*/
public $fieldLayoutId;
/**
* @var string|null Name
*/
public $name;
/**
* @var string|null Handle
*/
public $handle;
/**
* @var int|null Sort order
*/
public $sortOrder;
/**
* @var bool
*/
public $hasFieldErrors = false;
/**
* @var string|mixed
*/
public $uid;
// Public Methods
// =========================================================================
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'fieldLayout' => [
'class' => FieldLayoutBehavior::class,
'elementType' => MatrixBlock::class
],
];
}
/**
* @inheritdoc
*/
public function rules()
{
$rules = parent::rules();
$rules[] = [['id', 'fieldId', 'sortOrder'], 'number', 'integerOnly' => true];
return $rules;
}
/**
* Use the block type handle as the string representation.
*
* @return string
*/
public function __toString(): string
{
return (string)$this->handle ?: static::class;
}
/**
* Returns whether this is a new block type.
*
* @return bool
*/
public function getIsNew(): bool
{
return (!$this->id || strpos($this->id, 'new') === 0);
}
}