src/Executors/ModImagesInitializer.php
public function init(AType $type, array $defaults = [])
    {
        $type_name = $type->getName();
        $mode = $type->getMode();

        if($type_name !== 'modimages' or $mode !== TypeMode::MODE_A)
        {
            throw new ImageAggrException('Инициализатор предназначен для инициализации блока modimages(A), передано: '.$type_name.'('.$mode.')!');
        }

        //[[[
        //У блока modimages нет своей записи с предопределенными полями и нет полей ссылок, инициализируем только собственные поля

        DB::beginTransaction();

        $Aref = new ARef($type, 0);
        //----------------------------------------------------------------------
        $owns = $type->getOwns();

        foreach($owns as $own_name => $own)
        {
            $family = $own->getFieldTypeFamily();
            $mode = $own->getMode();

            if(array_key_exists($own_name, $defaults))
            {
                $value = $defaults[$own_name];
            }
            else
            {
                $value = null;
            }

            if($mode === TypeMode::MODE_B)
            {
                $initializer = $this->initMediator->getBInitializer($family);
                $initializer->init($Aref, $own, $value);
            }
            elseif($mode === TypeMode::MODE_C)
            {
                $initializer = $this->initMediator->getCInitializer($family);
                $initializer->init($Aref, $own, $value);
            }
        }

        DB::commit();
        //]]]

        return $Aref;
    }
public function init(AType $type, array $defaults = [])
    {
        $type_name = $type->getName();
        $mode = $type->getMode();

        if($type_name !== 'modimages' or $mode !== TypeMode::MODE_A)
        {
            throw new ImageAggrException('Инициализатор предназначен для инициализации блока modimages(A), передано: '.$type_name.'('.$mode.')!');
        }

        //[[[
        //У блока modimages нет своей записи с предопределенными полями и нет полей ссылок, инициализируем только собственные поля

        DB::beginTransaction();

        $Aref = new ARef($type, 0);
        //----------------------------------------------------------------------
        $owns = $type->getOwns();

        foreach($owns as $own_name => $own)
        {
            $family = $own->getFieldTypeFamily();
            $mode = $own->getMode();

            if(array_key_exists($own_name, $defaults))
            {
                $value = $defaults[$own_name];
            }
            else
            {
                $value = null;
            }

            if($mode === TypeMode::MODE_B)
            {
                $initializer = $this->initMediator->getBInitializer($family);
                $initializer->init($Aref, $own, $value);
            }
            elseif($mode === TypeMode::MODE_C)
            {
                $initializer = $this->initMediator->getCInitializer($family);
                $initializer->init($Aref, $own, $value);
            }
        }

        DB::commit();
        //]]]

        return $Aref;
    }
@param \Interpro\Core\Contracts\Taxonomy\Types\AType $type
@param array $defaults

@return \Interpro\Core\Contracts\Ref\ARef