コード例 #1
0
 public function postImport3($dic_id)
 {
     Allow::permission($this->module['group'], 'import');
     $dic = Dictionary::where(is_numeric($dic_id) ? 'id' : 'slug', $dic_id)->first();
     if (!is_object($dic)) {
         App::abort(404);
     }
     #Helper::tad($dic);
     ## Get also exists values
     #$exist_values = $dic->values;
     #Helper::ta($exist_values);
     $input = Input::all();
     /*
     foreach ($exist_values as $e => $exist_value) {
         if ($input['rewrite_mode'] == 1)
             $exist_values[$exist_value->name] = $exist_value;
         else
             $exist_values[$exist_value->slug] = $exist_value;
         unset($exist_values[$e]);
     }
     Helper::ta($exist_values);
     */
     $max = count($input['values'][0]);
     $fields = $input['fields'];
     $values = $input['values'];
     ## Filter fields & values
     foreach ($fields as $f => $field) {
         if (is_numeric($field) && $field == 0) {
             #Helper::d($f . " => " . $field . " = 0");
             unset($fields[$f]);
             unset($values[$f]);
         }
     }
     #Helper::d($fields);
     #Helper::d($values);
     ## Make insertions
     $find_key = $input['rewrite_mode'] == 1 ? 'name' : 'slug';
     $array = array();
     $count = count($values[0]);
     for ($i = 0; $i < $count; $i++) {
         $arr = array('dic_id' => $dic->id);
         foreach ($fields as $f => $field) {
             $arr[$field] = @trim($values[$f][$i]);
         }
         $find = array($find_key => @$arr[$find_key], 'dic_id' => $dic->id);
         #unset($arr[$find_key]);
         if (@$input['set_slug'] && ($input['set_slug_elements'] == 'all' || $input['set_slug_elements'] == 'empty' && !@$arr['slug'])) {
             $arr['slug'] = Helper::translit(@$arr['name']);
         }
         if (@$input['set_ucfirst'] && $arr['name']) {
             $arr['name'] = Helper::mb_ucfirst($arr['name']);
         }
         #Helper::dd($find);
         #/*
         $dicval = DicVal::firstOrCreate($find);
         $dicval->update($arr);
         #Helper::ta($dicval);
         #*/
         unset($dicval);
         #$array[] = $arr;
     }
     #Helper::d($array);
     return Redirect::route('dicval.index', $dic_id);
 }