function _install() { $data = $this->getData(); $converters = self::getConverters(); $this->replaceReferences($data); foreach ($data as $key => &$value) { if (isset($converters[$key])) { $value = $converters[$key]->convert($value); } } $data = array_merge(self::getDefaultValues(), array('permname' => $this->obj->getRef()), $data); $trklib = TikiLib::lib('trk'); $fieldId = $trklib->get_field_id($data['tracker'], $data['name']); if (!$fieldId && isset($data['permname'])) { $fieldId = $trklib->get_field_id($data['tracker'], $data['name'], 'permName'); } $factory = new Tracker_Field_Factory(); $fieldInfo = $factory->getFieldInfo($data['type']); if (!is_array($data['options'])) { $options = Tracker_Options::fromString($data['options'], $fieldInfo); } else { $options = Tracker_Options::fromArray($data['options'], $fieldInfo); } return $trklib->replace_tracker_field($data['tracker'], $fieldId, $data['name'], $data['type'], $data['link'], $data['searchable'], $data['list'], $data['public'], $data['visible'], $data['mandatory'], $data['order'], $options->serialize(), $data['description'], $data['multilingual'], $data['choices'], $data['errordesc'], $data['visby'], $data['editby'], $data['descparsed'], $data['validation'], $data['validation_param'], $data['validation_message'], $data['permname']); }
function upgrade_20130513_convert_tracker_field_parameters_tiki($installer) { // Using an old version of the definition could be critical here, so making sure // a fresh one is used $cachelib = TikiLib::lib('cache'); $oldCache = $cachelib->replaceImplementation(new CacheLibNoCache()); $fields = $installer->fetchAll('SELECT fieldId, type, options FROM tiki_tracker_fields'); $factory = new Tracker_Field_Factory(); $table = $installer->table('tiki_tracker_fields'); foreach ($fields as $field) { $info = $factory->getFieldInfo($field['type']); $options = Tracker_Options::fromString($field['options'], $info); $table->update(array('options' => $options->serialize()), array('fieldId' => $field['fieldId'])); } $cachelib->replaceImplementation($oldCache); }
function testSeparatorOnEmptyData() { $options = Tracker_Options::fromString('a,,b', array('params' => array('a' => array('legacy_index' => 0), 'b' => array('legacy_index' => 1, 'separator' => '|'), 'c' => array('legacy_index' => 2)))); $this->assertEquals(array(), $options->getParam('b')); }