Redaxscript\Installer::insertData PHP Method

insertData() public method

insert the data
Since: 2.4.0
public insertData ( array $optionArray = null )
$optionArray array options of the installation
    public function insertData($optionArray = null)
    {
        $language = Language::getInstance();
        $language->init();
        /* articles */
        Db::forTablePrefix('articles')->create()->set(['title' => 'Welcome', 'alias' => 'welcome', 'author' => $optionArray['adminUser'], 'text' => file_get_contents('database/html/articles/welcome.phtml'), 'category' => 1, 'comments' => 1, 'rank' => 1])->save();
        /* categories */
        Db::forTablePrefix('categories')->create()->set(['title' => 'Home', 'alias' => 'home', 'author' => $optionArray['adminUser'], 'rank' => 1])->save();
        /* extras */
        $extrasArray = ['categories' => ['category' => null, 'headline' => 1, 'status' => 1], 'articles' => ['category' => null, 'headline' => 1, 'status' => 1], 'comments' => ['category' => null, 'headline' => 1, 'status' => 1], 'languages' => ['category' => null, 'headline' => 1, 'status' => 0], 'templates' => ['category' => null, 'headline' => 1, 'status' => 0], 'teaser' => ['category' => 1, 'headline' => 0, 'status' => 0]];
        $extrasRank = 0;
        /* process extras array */
        foreach ($extrasArray as $key => $value) {
            Db::forTablePrefix('extras')->create()->set(['title' => ucfirst($key), 'alias' => $key, 'author' => $optionArray['adminUser'], 'text' => file_get_contents('database/html/extras/' . $key . '.phtml'), 'category' => $value['category'], 'headline' => $value['headline'], 'status' => $value['status'], 'rank' => ++$extrasRank])->save();
        }
        /* comments */
        Db::forTablePrefix('comments')->create()->set(['author' => $optionArray['adminUser'], 'email' => $optionArray['adminEmail'], 'text' => file_get_contents('database/html/comments/hello.phtml'), 'article' => 1, 'rank' => 1])->save();
        /* groups */
        Db::forTablePrefix('groups')->create()->set(['name' => 'Administrators', 'alias' => 'administrators', 'description' => 'Unlimited access', 'categories' => '1, 2, 3', 'articles' => '1, 2, 3', 'extras' => '1, 2, 3', 'comments' => '1, 2, 3', 'groups' => '1, 2, 3', 'users' => '1, 2, 3', 'modules' => '1, 2, 3', 'settings' => 1, 'filter' => 0])->save();
        Db::forTablePrefix('groups')->create()->set(['name' => 'Members', 'alias' => 'members', 'description' => 'Default members group'])->save();
        /* modules */
        if (is_dir('modules/CallHome')) {
            $callHome = new Modules\CallHome\CallHome();
            $callHome->install();
        }
        if (is_dir('modules/Validator')) {
            $validator = new Modules\Validator\Validator();
            $validator->install();
        }
        /* settings */
        $settingArray = ['language' => 'detect', 'template' => 'default', 'title' => $language->get('name', '_package'), 'author' => $optionArray['adminName'], 'copyright' => null, 'description' => $language->get('description', '_package'), 'keywords' => null, 'robots' => null, 'email' => $optionArray['adminEmail'], 'subject' => $language->get('name', '_package'), 'notification' => 0, 'charset' => 'utf-8', 'divider' => ' - ', 'time' => 'H:i', 'date' => 'd.m.Y', 'homepage' => 0, 'limit' => 10, 'order' => 'asc', 'pagination' => 1, 'registration' => 1, 'verification' => 0, 'recovery' => 1, 'moderation' => 0, 'captcha' => 0, 'version' => $language->get('version', '_package')];
        /* process settings array */
        foreach ($settingArray as $name => $value) {
            Db::forTablePrefix('settings')->create()->set(['name' => $name, 'value' => $value])->save();
        }
        /* users */
        $passwordHash = new Hash(Config::getInstance());
        $passwordHash->init($optionArray['adminPassword']);
        Db::forTablePrefix('users')->create()->set(['name' => $optionArray['adminName'], 'user' => $optionArray['adminUser'], 'password' => $passwordHash->getHash(), 'email' => $optionArray['adminEmail'], 'description' => 'God admin', 'groups' => '1'])->save();
    }

Usage Example

 /**
  * testInsertData
  *
  * @since 2.4.0
  */
 public function testInsertData()
 {
     /* setup */
     $installer = new Installer();
     $installer->init($this->_config);
     $installer->insertData(array('adminName' => 'Admin', 'adminUser' => 'admin', 'adminPassword' => 'admin', 'adminEmail' => 'admin@localhost'));
     /* actual */
     $actualArticles = Db::forTablePrefix('articles')->findMany()->count();
     $actualCategories = Db::forTablePrefix('categories')->findMany()->count();
     $actualExtras = Db::forTablePrefix('extras')->findMany()->count();
     $actualGroups = Db::forTablePrefix('groups')->findMany()->count();
     $actualSettings = Db::forTablePrefix('settings')->findMany()->count();
     if (is_dir('modules/CallHome')) {
         $actualModules = Db::forTablePrefix('modules')->findMany()->count();
     }
     $actualUsers = Db::forTablePrefix('users')->findMany()->count();
     /* compare */
     $this->assertEquals(1, $actualArticles);
     $this->assertEquals(1, $actualCategories);
     $this->assertEquals(6, $actualExtras);
     $this->assertEquals(2, $actualGroups);
     $this->assertEquals(26, $actualSettings);
     if (is_dir('modules/CallHome')) {
         $this->assertEquals(1, $actualModules);
     }
     $this->assertEquals(1, $actualUsers);
 }
All Usage Examples Of Redaxscript\Installer::insertData