Пример #1
0
 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);
}
Пример #3
0
 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'));
 }