NerdsAndCompany\Schematic\Services\Users::import PHP 메소드

import() 공개 메소드

Attempt to import user settings.
public import ( array $user_settings, boolean $force = true ) : Result
$user_settings array
$force boolean If set to true user settings not included in the import will be deleted
리턴 Result
    public function import(array $user_settings, $force = true)
    {
        Craft::log(Craft::t('Importing Users'));
        // always delete existing fieldlayout first
        Craft::app()->fields->deleteLayoutsByType(ElementType::User);
        if (isset($user_settings['fieldLayout'])) {
            $fieldLayoutDefinition = (array) $user_settings['fieldLayout'];
        } else {
            $fieldLayoutDefinition = [];
        }
        $fieldLayout = Craft::app()->schematic_fields->getFieldLayout($fieldLayoutDefinition);
        $fieldLayout->type = ElementType::User;
        if (!Craft::app()->fields->saveLayout($fieldLayout)) {
            // Save fieldlayout via craft
            $this->addErrors($fieldLayout->getAllErrors());
        }
        return $this->getResultModel();
    }

Usage Example

예제 #1
0
 /**
  * Test users service import.
  *
  * @covers ::import
  */
 public function testUsersServiceImportWithImportError()
 {
     $mockFieldsService = $this->getMockFieldServiceForImport(false);
     $mockSchematicFieldsService = $this->getMockSchematicFieldServiceForImport(true);
     $this->setComponent(Craft::app(), 'fields', $mockFieldsService);
     $this->setComponent(Craft::app(), 'schematic_fields', $mockSchematicFieldsService);
     $import = $this->schematicUsersService->import([]);
     $this->assertTrue($import instanceof Result);
     $this->assertTrue($import->hasErrors('errors'));
 }