/** * Add item windows * Purpose : Create one item (backend) * At this state, the item isn't added * */ public function add_item() { $id_definition = $this->input->post('id_item_definition'); $item_definition = $this->item_definition_model->get(array('id_item_definition' => $id_definition), Settings::get_lang('default')); // Element's fields $fields = $this->extend_field_model->get_lang_list(array('parent' => 'item', 'id_parent' => $id_definition, 'order_by' => 'ordering ASC'), Settings::get_lang('default')); $fields_lang = $this->extend_field_model->get_all('extend_field_lang'); foreach ($fields as &$field) { foreach (Settings::get_languages() as $lang) { $langs = array_values(array_filter($fields_lang, create_function('$row', 'return $row["id_extend_field"] == "' . $field['id_extend_field'] . '";'))); $field['langs'][$lang['lang']] = array_pop(array_filter($langs, create_function('$row', 'return $row["lang"] == "' . $lang['lang'] . '";'))); } } $this->template['item_definition'] = $item_definition; $this->template['fields'] = $fields; $lang_fields = array_values(array_filter($fields, create_function('$row', 'return $row["translated"] == 1;'))); $this->template['lang_fields'] = $lang_fields; // Check for langs fields different from $has_lang_fields = FALSE; foreach ($lang_fields as $lf) { if ($lf['type'] != 8) { $has_lang_fields = TRUE; } } $this->template['has_lang_fields'] = $has_lang_fields; // Check for Media type $has_media_fields = FALSE; foreach ($fields as $f) { if ($f['type'] == 8) { $has_media_fields = TRUE; } } $this->template['has_media_fields'] = $has_media_fields; $this->output('item/instance/edit'); }