diff --git a/main/admin/extra_fields.php b/main/admin/extra_fields.php index fa2ad6f91f4..a699ff41bec 100755 --- a/main/admin/extra_fields.php +++ b/main/admin/extra_fields.php @@ -118,16 +118,17 @@ // The validation or display if ($form->validate()) { //if ($check) { - $values = $form->exportValues(); - $res = $obj->save($values); - if ($res) { - Display::display_confirmation_message(get_lang('ItemAdded')); - } + $values = $form->exportValues(); + $res = $obj->save($values); + if ($res) { + Display::display_confirmation_message(get_lang('ItemAdded')); + } //} $obj->display(); } else { echo '
'; - echo ''.Display::return_icon('back.png',get_lang('Back'),'',ICON_SIZE_MEDIUM).''; + echo ''. + Display::return_icon('back.png',get_lang('Back'),'',ICON_SIZE_MEDIUM).''; echo '
'; $form->addElement('hidden', 'sec_token'); $form->setConstants(array('sec_token' => $token)); @@ -142,14 +143,15 @@ // The validation or display if ($form->validate()) { //if ($check) { - $values = $form->exportValues(); - $res = $obj->update($values); - Display::display_confirmation_message(sprintf(get_lang('ItemUpdated'), $values['field_variable']), false); + $values = $form->exportValues(); + $res = $obj->update($values); + Display::display_confirmation_message(sprintf(get_lang('ItemUpdated'), $values['field_variable']), false); //} $obj->display(); } else { echo '
'; - echo ''.Display::return_icon('back.png',get_lang('Back'),'',ICON_SIZE_MEDIUM).''; + echo ''. + Display::return_icon('back.png',get_lang('Back'),'',ICON_SIZE_MEDIUM).''; echo '
'; $form->addElement('hidden', 'sec_token'); $form->setConstants(array('sec_token' => $token)); @@ -159,10 +161,10 @@ case 'delete': // Action handling: delete //if ($check) { - $res = $obj->delete($_GET['id']); - if ($res) { - Display::display_confirmation_message(get_lang('ItemDeleted')); - } + $res = $obj->delete($_GET['id']); + if ($res) { + Display::display_confirmation_message(get_lang('ItemDeleted')); + } //} $obj->display(); break; @@ -215,4 +217,44 @@ +CREATE TABLE IF NOT EXISTS calendar_event_field( + id INT NOT NULL auto_increment, + field_type int NOT NULL DEFAULT 1, + field_variable varchar(64) NOT NULL, + field_display_text varchar(64), + field_default_value text, + field_order int, + field_visible tinyint default 0, + field_changeable tinyint default 0, + field_filter tinyint default 0, + tms DATETIME NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY(id) +); + +DROP TABLE IF EXISTS calendar_event_options; +CREATE TABLE IF NOT EXISTS calendar_event_options ( + id int NOT NULL auto_increment, + field_id int NOT NULL, + option_value text, + option_display_text varchar(64), + option_order int, + tms DATETIME NOT NULL default '0000-00-00 00:00:00', + priority VARCHAR(255), + priority_message VARCHAR(255), + PRIMARY KEY (id) +); + +DROP TABLE IF EXISTS calendar_event_values; +CREATE TABLE IF NOT EXISTS calendar_event_values( + id bigint NOT NULL auto_increment, + calendar_event_id int unsigned NOT NULL, + field_id int NOT NULL, + field_value text, + comment VARCHAR(100) default '', + tms DATETIME NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY(id) +); + + + */ diff --git a/main/cron/import_csv.php b/main/cron/import_csv.php index 79d17890278..cf381525573 100755 --- a/main/cron/import_csv.php +++ b/main/cron/import_csv.php @@ -28,6 +28,7 @@ class ImportCsv 'session' => 'external_session_id', 'course' => 'external_course_id', 'user' => 'external_user_id', + 'calendar_event' => 'external_calendar_event_id' ); public $defaultAdminId = 1; public $defaultSessionVisibility = 1; @@ -199,18 +200,28 @@ private function prepareImport() 'External user id', null ); + // Create course extra field: extra_external_course_id CourseManager::create_course_extra_field( $this->extraFieldIdNameList['course'], 1, 'External course id' ); + // Create session extra field extra_external_session_id SessionManager::create_session_extra_field( $this->extraFieldIdNameList['session'], 1, 'External session id' ); + + // Create calendar_event extra field extra_external_session_id + $extraField = new ExtraField('calendar_event'); + $extraField->save(array( + 'field_type' => ExtraField::FIELD_TYPE_TEXT, + 'field_variable' => $this->extraFieldIdNameList['calendar_event'], + 'field_display_text' => 'External calendar event id' + )); } /** @@ -625,7 +636,7 @@ private function importCoursesStatic($file) /** * @param string $file - * @param bool $moveFile + * @param bool $moveFile * * @return int */ @@ -719,7 +730,8 @@ private function importCalendarStatic($file, $moveFile = true) 'title' => $title, 'sender_id' => $teacherId, 'course_id' => $courseInfo['real_id'], - 'session_id' => $sessionId + 'session_id' => $sessionId, + $this->extraFieldIdNameList['calendar_event'] => $row['external_calendar_itemID'] ); } } @@ -732,38 +744,87 @@ private function importCalendarStatic($file, $moveFile = true) return 0; } - if ($errorFound == false) { + $this->logger->addInfo( + "Ready to insert events" + ); + + $content = null; + $agenda = new Agenda(); + + $extraFieldValue = new ExtraFieldValue('calendar_event'); + $extraFieldName = $this->extraFieldIdNameList['calendar_event']; + $externalEventId = null; + + $extraField = new ExtraField('calendar_event'); + $extraFieldInfo = $extraField->get_handler_field_info_by_field_variable($extraFieldName); + + if (empty($extraFieldInfo)) { $this->logger->addInfo( - "Ready to insert events" + "No calendar event extra field created: $extraFieldName" ); - $content = null; - $agenda = new Agenda(); - - foreach ($eventsToCreate as $event) { - $courseInfo = api_get_course_info_by_id($event['course_id']); - $agenda->set_course($courseInfo); - $agenda->setType('course'); - $agenda->setSessionId($event['session_id']); - $agenda->setSenderId($event['sender_id']); - $eventId = $agenda->add_event( - $event['start'], - $event['end'], - false, - $event['title'], - $content, - array('everyone'), // send to - false //$addAsAnnouncement = false + return 0; + } + + foreach ($eventsToCreate as $event) { + if (!isset($event[$extraFieldName])) { + $this->logger->addInfo( + "No external_calendar_itemID found. Skipping ..." + ); + continue; + } else { + $externalEventId = $event[$extraFieldName]; + $item = $extraFieldValue->get_item_id_from_field_variable_and_field_value( + $extraFieldName, + $externalEventId + ); + + if (!empty($item) || empty($externalEventId)) { + $this->logger->addInfo( + "Event #$externalEventId was already added . Skipping ..." + ); + continue; + } + } + + $courseInfo = api_get_course_info_by_id($event['course_id']); + $agenda->set_course($courseInfo); + $agenda->setType('course'); + $agenda->setSessionId($event['session_id']); + $agenda->setSenderId($event['sender_id']); + + if (empty($courseInfo)) { + $this->logger->addInfo( + "No course found for added: #".$event['course_id']." Skipping ..." ); + continue; + } + if (empty($event['sender_id'])) { $this->logger->addInfo( - "Event added: #$eventId" + "No sender found: #".$event['sender_id']." Skipping ..." ); + continue; } - } else { - echo 'There was an error check the logs in '.api_get_path(SYS_ARCHIVE_PATH).'import_csv.log'."\n"; - return 0; + $eventId = $agenda->add_event( + $event['start'], + $event['end'], + false, + $event['title'], + $content, + array('everyone'), // send to + false //$addAsAnnouncement = false + ); + + $extraFieldValue->save(array( + 'field_value' => $externalEventId, + 'field_id' => $extraFieldInfo['id'] + )); + + $this->logger->addInfo( + "Event added: #$eventId" + ); } } @@ -1237,6 +1298,8 @@ private function dumpDatabaseTables() $cronImportCSVConditions = isset($_configuration['cron_import_csv_conditions']) ? $_configuration['cron_import_csv_conditions'] : null; +echo 'To check error in '.api_get_path(SYS_ARCHIVE_PATH).'import_csv.log'."\n"; + $import = new ImportCsv($logger, $cronImportCSVConditions); if (isset($_configuration['default_admin_user_id_for_cron'])) { diff --git a/main/inc/lib/database.constants.inc.php b/main/inc/lib/database.constants.inc.php index 7a5e68c1230..030e8689c13 100755 --- a/main/inc/lib/database.constants.inc.php +++ b/main/inc/lib/database.constants.inc.php @@ -57,7 +57,7 @@ define('TABLE_MAIN_GRADEBOOK_SCORE_DISPLAY','gradebook_score_display'); define('TABLE_MAIN_GRADEBOOK_CERTIFICATE', 'gradebook_certificate'); -//Profiling +// Profiling define('TABLE_MAIN_USER_FIELD', 'user_field'); define('TABLE_MAIN_USER_FIELD_OPTIONS', 'user_field_options'); define('TABLE_MAIN_USER_FIELD_VALUES', 'user_field_values'); @@ -66,6 +66,10 @@ define('TABLE_MAIN_LP_FIELD_OPTIONS', 'lp_field_options'); define('TABLE_MAIN_LP_FIELD_VALUES', 'lp_field_values'); +define('TABLE_MAIN_CALENDAR_EVENT_FIELD', 'calendar_event_field'); +define('TABLE_MAIN_CALENDAR_EVENT_OPTIONS', 'calendar_event_options'); +define('TABLE_MAIN_CALENDAR_EVENT_VALUES', 'calendar_event_values'); + //User tags define('TABLE_MAIN_TAG', 'tag'); define('TABLE_MAIN_USER_REL_TAG', 'user_rel_tag'); diff --git a/main/inc/lib/extra_field.lib.php b/main/inc/lib/extra_field.lib.php index b8f0ed56733..f9d219d6fe3 100755 --- a/main/inc/lib/extra_field.lib.php +++ b/main/inc/lib/extra_field.lib.php @@ -20,7 +20,6 @@ class ExtraField extends Model 'tms' ); - public $ops = array( 'eq' => '=', //equal 'ne' => '<>', //not equal @@ -38,20 +37,20 @@ class ExtraField extends Model 'nc' => 'NOT LIKE' //doesn't contain ); - const FIELD_TYPE_TEXT = 1; - const FIELD_TYPE_TEXTAREA = 2; - const FIELD_TYPE_RADIO = 3; - const FIELD_TYPE_SELECT = 4; + const FIELD_TYPE_TEXT = 1; + const FIELD_TYPE_TEXTAREA = 2; + const FIELD_TYPE_RADIO = 3; + const FIELD_TYPE_SELECT = 4; const FIELD_TYPE_SELECT_MULTIPLE = 5; - const FIELD_TYPE_DATE = 6; - const FIELD_TYPE_DATETIME = 7; - const FIELD_TYPE_DOUBLE_SELECT = 8; - const FIELD_TYPE_DIVIDER = 9; - const FIELD_TYPE_TAG = 10; - const FIELD_TYPE_TIMEZONE = 11; - const FIELD_TYPE_SOCIAL_PROFILE = 12; - const FIELD_TYPE_CHECKBOX = 13; - const FIELD_TYPE_MOBILE_PHONE_NUMBER = 14; + const FIELD_TYPE_DATE = 6; + const FIELD_TYPE_DATETIME = 7; + const FIELD_TYPE_DOUBLE_SELECT = 8; + const FIELD_TYPE_DIVIDER = 9; + const FIELD_TYPE_TAG = 10; + const FIELD_TYPE_TIMEZONE = 11; + const FIELD_TYPE_SOCIAL_PROFILE = 12; + const FIELD_TYPE_CHECKBOX = 13; + const FIELD_TYPE_MOBILE_PHONE_NUMBER = 14; public $type = 'user'; //or session or course public $handler_id = 'user_id'; @@ -65,21 +64,28 @@ public function __construct($type) { $this->type = $type; switch ($this->type) { + case 'calendar_event': + $this->table = Database::get_main_table(TABLE_MAIN_CALENDAR_EVENT_FIELD); + $this->table_field_options = Database::get_main_table(TABLE_MAIN_CALENDAR_EVENT_OPTIONS); + $this->table_field_values = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); + $this->handler_id = 'calendar_event_id'; + $this->primaryKey = 'id'; + break; case 'course': $this->table_field_options = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_OPTIONS); $this->table_field_values = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); - //Used for the model - $this->table = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); + // Used for the model + $this->table = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); $this->handler_id = 'course_code'; $this->handlerEntityId = 'courseCode'; $this->primaryKey = 'id'; break; case 'user': $this->table_field_options = Database::get_main_table(TABLE_MAIN_USER_FIELD_OPTIONS); - $this->table_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); + $this->table_field_values = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); - //Used for the model + // Used for the model $this->table = Database::get_main_table(TABLE_MAIN_USER_FIELD); $this->handler_id = 'user_id'; $this->handlerEntityId = 'userId'; @@ -89,7 +95,7 @@ public function __construct($type) //$this->table_field_options = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_OPTIONS); $this->table_field_values = Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES); - //Used for the model + // Used for the model $this->table = Database::get_main_table(TABLE_MAIN_SESSION_FIELD); $this->handler_id = 'session_id'; $this->handlerEntityId = 'sessionId'; @@ -99,7 +105,7 @@ public function __construct($type) $this->table_field_options = Database::get_main_table(TABLE_MAIN_QUESTION_FIELD_OPTIONS); $this->table_field_values = Database::get_main_table(TABLE_MAIN_QUESTION_FIELD_VALUES); - //Used for the model + // Used for the model $this->table = Database::get_main_table(TABLE_MAIN_QUESTION_FIELD); $this->handler_id = 'question_id'; $this->handlerEntityId = 'questionId'; @@ -124,14 +130,15 @@ public function __construct($type) /** * @return array */ - static function getValidExtraFieldTypes() + public static function getValidExtraFieldTypes() { return array( 'user', 'course', 'session', 'question', - 'lp' + 'lp', + 'calendar_event' ); } @@ -174,14 +181,16 @@ public function get_all($where_conditions = array(), $order_field_options_by = n } /** - * @param $field_variable + * @param string $field_variable + * * @return array|bool */ public function get_handler_field_info_by_field_variable($field_variable) { $field_variable = Database::escape_string($field_variable); - $sql_field = "SELECT * FROM {$this->table} WHERE field_variable = '$field_variable'"; - $result = Database::query($sql_field); + $sql = "SELECT * FROM {$this->table} + WHERE field_variable = '$field_variable'"; + $result = Database::query($sql); if (Database::num_rows($result)) { $r_field = Database::fetch_array($result, 'ASSOC'); @@ -210,23 +219,24 @@ public function get_max_field_order() /** * @param $handler + * * @return array */ public static function get_extra_fields_by_handler($handler) { - $types = array(); - $types[self::FIELD_TYPE_TEXT] = get_lang('FieldTypeText'); - $types[self::FIELD_TYPE_TEXTAREA] = get_lang('FieldTypeTextarea'); - $types[self::FIELD_TYPE_RADIO] = get_lang('FieldTypeRadio'); - $types[self::FIELD_TYPE_SELECT] = get_lang('FieldTypeSelect'); + $types= array(); + $types[self::FIELD_TYPE_TEXT] = get_lang('FieldTypeText'); + $types[self::FIELD_TYPE_TEXTAREA] = get_lang('FieldTypeTextarea'); + $types[self::FIELD_TYPE_RADIO] = get_lang('FieldTypeRadio'); + $types[self::FIELD_TYPE_SELECT] = get_lang('FieldTypeSelect'); $types[self::FIELD_TYPE_SELECT_MULTIPLE] = get_lang('FieldTypeSelectMultiple'); - $types[self::FIELD_TYPE_DATE] = get_lang('FieldTypeDate'); - $types[self::FIELD_TYPE_DATETIME] = get_lang('FieldTypeDatetime'); - $types[self::FIELD_TYPE_DOUBLE_SELECT] = get_lang('FieldTypeDoubleSelect'); - $types[self::FIELD_TYPE_DIVIDER] = get_lang('FieldTypeDivider'); - $types[self::FIELD_TYPE_TAG] = get_lang('FieldTypeTag'); - $types[self::FIELD_TYPE_TIMEZONE] = get_lang('FieldTypeTimezone'); - $types[self::FIELD_TYPE_SOCIAL_PROFILE] = get_lang('FieldTypeSocialProfile'); + $types[self::FIELD_TYPE_DATE] = get_lang('FieldTypeDate'); + $types[self::FIELD_TYPE_DATETIME] = get_lang('FieldTypeDatetime'); + $types[self::FIELD_TYPE_DOUBLE_SELECT] = get_lang('FieldTypeDoubleSelect'); + $types[self::FIELD_TYPE_DIVIDER] = get_lang('FieldTypeDivider'); + $types[self::FIELD_TYPE_TAG] = get_lang('FieldTypeTag'); + $types[self::FIELD_TYPE_TIMEZONE] = get_lang('FieldTypeTimezone'); + $types[self::FIELD_TYPE_SOCIAL_PROFILE] = get_lang('FieldTypeSocialProfile'); $types[self::FIELD_TYPE_MOBILE_PHONE_NUMBER] = get_lang('FieldTypeMobilePhoneNumber'); switch ($handler) { @@ -292,7 +302,9 @@ public function get_handler_extra_data($item_id) if (!empty($fields) > 0) { foreach ($fields as $field) { - $field_value = $field_values->get_values_by_handler_and_field_id($item_id, $field['id']); + $field_value = $field_values->get_values_by_handler_and_field_id( + $item_id, $field['id'] + ); if ($field_value) { $field_value = $field_value['field_value']; @@ -334,7 +346,7 @@ public function get_handler_extra_data($item_id) public function get_all_extra_field_by_type($field_type) { // all the information of the field - $sql = "SELECT * FROM {$this->table} + $sql = "SELECT * FROM {$this->table} WHERE field_type = '".Database::escape_string($field_type)."'"; $result = Database::query($sql); $return = array(); @@ -372,12 +384,17 @@ public function get_field_type_by_id($id) * Converts a string like this: * France:Paris;Bretagne;Marseilles;Lyon|Belgique:Bruxelles;Namur;Liège;Bruges|Peru:Lima;Piura; * into - * array('France' => array('Paris', 'Bregtane', 'Marseilles'), 'Belgique' => array('Namur', 'Liège', etc + * array( + * 'France' => + * array('Paris', 'Bregtane', 'Marseilles'), + * 'Belgique' => + * array('Namur', 'Liège') + * ), etc * @param string $string * * @return array */ - static function extra_field_double_select_convert_string_to_array($string) + public static function extra_field_double_select_convert_string_to_array($string) { $options = explode('|', $string); $options_parsed = array(); @@ -398,7 +415,7 @@ static function extra_field_double_select_convert_string_to_array($string) * @param array $options * @return array */ - static function extra_field_double_select_convert_array_to_ordered_array($options) + public static function extra_field_double_select_convert_array_to_ordered_array($options) { $options_parsed = array(); if (!empty($options)) { @@ -419,7 +436,7 @@ static function extra_field_double_select_convert_array_to_ordered_array($option * * @return string */ - static function extra_field_double_select_convert_array_to_string($options) + public static function extra_field_double_select_convert_array_to_string($options) { $string = null; $options_parsed = self::extra_field_double_select_convert_array_to_ordered_array($options); @@ -459,7 +476,7 @@ public function clean_parameters($params) } if (!isset($params['field_order'])) { - $max_order = self::get_max_field_order(); + $max_order = self::get_max_field_order(); $params['field_order'] = $max_order; } @@ -468,16 +485,16 @@ public function clean_parameters($params) /** * @param array $params - * @param bool $show_query + * @param bool $show_query * * @return bool */ public function save($params, $show_query = false) { - $session_field_info = self::get_handler_field_info_by_field_variable($params['field_variable']); + $fieldInfo = self::get_handler_field_info_by_field_variable($params['field_variable']); $params = self::clean_parameters($params); - if ($session_field_info) { - return $session_field_info['id']; + if ($fieldInfo) { + return $fieldInfo['id']; } else { if (!isset($params['tms'])) { $params['tms'] = api_get_utc_datetime(); @@ -495,6 +512,7 @@ public function save($params, $show_query = false) /** * @param $params + * * @return bool|void */ public function update($params) @@ -510,6 +528,7 @@ public function update($params) /** * @param $id + * * @return bool|void */ public function delete($id) @@ -699,7 +718,7 @@ public function set_extra_fields_in_form( global $app; $optionsExists = $app['orm.em']->getRepository('ChamiloLMS\Entity\ExtraFieldOptionRelFieldOption')-> - findOneBy(array('fieldId' => $field_details['id'])); + findOneBy(array('fieldId' => $field_details['id'])); if ($optionsExists) { if (isset($userInfo['status']) && !empty($userInfo['status'])) { @@ -1372,20 +1391,20 @@ public function getJqgridActionLinks($token) //With this function we can add actions to the jgrid (edit, delete, etc) return 'function action_formatter(cellvalue, options, rowObject) { return \''.Display::return_icon( - 'edit.png', - get_lang('Edit'), - '', - ICON_SIZE_SMALL - ).''. - ' '.Display::return_icon( - 'delete.png', - get_lang('Delete'), - '', - ICON_SIZE_SMALL - ).''. - '\'; + 'edit.png', + get_lang('Edit'), + '', + ICON_SIZE_SMALL + ).''. + ' '.Display::return_icon( + 'delete.png', + get_lang('Delete'), + '', + ICON_SIZE_SMALL + ).''. + '\'; }'; } diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php index cb013d30432..7958ea59861 100755 --- a/main/inc/lib/extra_field_value.lib.php +++ b/main/inc/lib/extra_field_value.lib.php @@ -18,7 +18,8 @@ class ExtraFieldValue extends Model /** * Formats the necessary elements for the given datatype - * @param string The type of data to which this extra field applies (user, course, session, ...) + * @param string $type The type of data to which this extra field + * applies (user, course, session, ...) * @return void (or false if unmanaged datatype) * @assert (-1) === false */ @@ -29,6 +30,12 @@ public function __construct($type) $this->handler_id = $extra_field->handler_id; switch ($this->type) { + case 'calendar_event': + $this->table = Database::get_main_table(TABLE_MAIN_CALENDAR_EVENT_FIELD); + $this->table_field_values = Database::get_main_table(TABLE_MAIN_CALENDAR_EVENT_FIELD); + $this->table_field_values = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); + $this->author_id = 'user_id'; + break; case 'course': $this->table = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $this->table_handler_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); @@ -168,8 +175,8 @@ public function save_field_values($params) /** * Save values in the *_field_values table - * @param array Structured array with the values to save - * @param boolean Whether to show the insert query (passed to the parent save() method) + * @param array $params Structured array with the values to save + * @param boolean $show_query Whether to show the insert query (passed to the parent save() method) * @result mixed The result sent from the parent method * @assert (array()) === false */ @@ -198,22 +205,22 @@ public function save($params, $show_query = false) case ExtraField::FIELD_TYPE_SELECT: case ExtraField::FIELD_TYPE_SELECT_MULTIPLE: //$field_options = $session_field_option->get_field_options_by_field($params['field_id']); - //$params['field_value'] = split(';', $value_to_insert); - /* - if ($field_options) { - $check = false; - foreach ($field_options as $option) { - if (in_array($option['option_value'], $values)) { - $check = true; - break; + //$params['field_value'] = split(';', $value_to_insert); + /* + if ($field_options) { + $check = false; + foreach ($field_options as $option) { + if (in_array($option['option_value'], $values)) { + $check = true; + break; + } + } + if (!$check) { + return false; //option value not found } - } - if (!$check) { - return false; //option value not found - } - } else { - return false; //enumerated type but no option found - }*/ + } else { + return false; //enumerated type but no option found + }*/ break; case ExtraField::FIELD_TYPE_TEXT: case ExtraField::FIELD_TYPE_TEXTAREA: @@ -222,7 +229,7 @@ public function save($params, $show_query = false) if (is_array($value)) { if (isset($value['extra_'.$extra_field_info['field_variable']]) && isset($value['extra_'.$extra_field_info['field_variable'].'_second']) - ) { + ) { $value_to_insert = $value['extra_'.$extra_field_info['field_variable']].'::'.$value['extra_'.$extra_field_info['field_variable'].'_second']; } else { $value_to_insert = null;