oms-Editor/Models/EditorDocListTrait.php
Dennis Eichhorn a764d818fb
Some checks failed
Image optimization / general_image_workflow (push) Has been cancelled
CI / general_module_workflow_php (push) Has been cancelled
CI / general_module_workflow_js (push) Has been cancelled
fix version and bugs
2024-05-21 00:09:09 +02:00

118 lines
2.2 KiB
PHP

<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\Editor\Models
* @copyright Dennis Eichhorn
* @license OMS License 2.2
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\Editor\Models;
/**
* EditorDoc class.
*
* @package Modules\Editor\Models
* @license OMS License 2.2
* @link https://jingga.app
* @since 1.0.0
*
* @property \Modules\Editor\Models\EditorDoc[] $notes
*/
trait EditorDocListTrait
{
/**
* EditorDocs.
*
* @var EditorDoc[]
* @since 1.0.0
*/
public array $notes = [];
/**
* Get notes by type
*
* @param int $type EditorDoc type
*
* @return EditorDoc
*
* @since 1.0.0
*/
public function getEditorDocByType(int $type) : EditorDoc
{
foreach ($this->notes as $note) {
if ($note->type?->id === $type) {
return $note;
}
}
return new NullEditorDoc();
}
/**
* Get all notess by type name
*
* @param string $type EditorDoc type
*
* @return EditorDoc
*
* @since 1.0.0
*/
public function getEditorDocByTypeName(string $type) : EditorDoc
{
foreach ($this->notes as $note) {
if ($note->type?->title === $type) {
return $note;
}
}
return new NullEditorDoc();
}
/**
* Get all notess by type name
*
* @param string $type EditorDoc type
*
* @return EditorDoc[]
*
* @since 1.0.0
*/
public function getEditorDocsByTypeName(string $type) : array
{
$notes = [];
foreach ($this->notes as $note) {
if ($note->type?->title === $type) {
$notes[] = $note;
}
}
return $notes;
}
/**
* Check if file with a certain type name exists
*
* @param string $type Type name
*
* @return bool
*
* @since 1.0.0
*/
public function hasEditorDocTypeName(string $type) : bool
{
foreach ($this->notes as $note) {
if ($note->type?->title === $type) {
return true;
}
}
return false;
}
}