Esempio n. 1
0
 private function ImportNews($array, $category)
 {
     foreach ($array as $item) {
         if (!$item['active']) {
             continue;
         }
         $save = false;
         $model = News::findOne($item['id']);
         // Checking is this ID free for use
         if ($model === null) {
             $save = true;
             $model = new News();
             $model->id = $item['id'];
         } else {
             // Asking user what he wants
             $question = 'News with the same id alredy exists in data base:' . PHP_EOL . 'Data from database:' . PHP_EOL . $this->NewsObjToSting($model) . 'New data from file:' . PHP_EOL . $this->NewsArrToString($item) . 'category_id = ' . $category->id . PHP_EOL;
             $this->stdout($question);
             $answer = $this->select('What you want to do?' . PHP_EOL . '(a - assign new id and save data, s - keep database data, d - keep id and save data)' . PHP_EOL, ['a' => 'assign new id and save data', 's' => 'keep database data', 'd' => 'keep id and save data']);
             switch ($answer) {
                 case 'a':
                     $model = new News();
                 case 'd':
                     $save = true;
                     break;
                 case 's':
                     break;
             }
         }
         // Saving data if it is needed
         if ($save) {
             $model->headline = $item['title'];
             $model->description = $item['description'];
             $model->date = $item['date'];
             $model->image = $item['image'];
             $model->content = $item['text'];
             $model->link('category', $category);
             $model->status = $item['active'] ? News::STATUS_ACTIVE : News::STATUS_INACTIVE;
             if ($model->save()) {
                 $this->stdout($this->NewsObjToSting($model) . 'saved sucesfully' . PHP_EOL);
             }
         }
     }
 }