Beispiel #1
0
 protected function getProfileWriter(InputInterface $input)
 {
     $ini = parse_ini_file('profiles/info.ini');
     $activeProfile = $ini['profile.name'];
     $writer = new \Tiki_Profile_Writer("profiles", $activeProfile);
     if ($this->initialized && ($ref = $input->getOption('reference'))) {
         $writer->pushReference($ref);
     }
     return $writer;
 }
Beispiel #2
0
 function export(Tiki_Profile_Writer $writer, $trackerId)
 {
     $trklib = TikiLib::lib('trk');
     $info = $trklib->get_tracker($trackerId);
     if (!$info) {
         return false;
     }
     if ($options = $trklib->get_tracker_options($trackerId)) {
         $info = array_merge($info, $options);
     }
     $data = array('name' => $info['name'], 'description' => $info['description']);
     $optionMap = array_flip(self::getOptionMap());
     $defaults = self::getDefaults();
     $conversions = self::getOptionConverters();
     $allow = array();
     $show = array();
     foreach ($info as $key => $value) {
         if (empty($optionMap[$key])) {
             continue;
         }
         $optionKey = $optionMap[$key];
         $default = '';
         if (isset($defaults[$optionKey])) {
             $default = $defaults[$optionKey];
         }
         if ($value != $default) {
             if (strstr($optionKey, 'allow_')) {
                 $allow[] = str_replace('allow_', '', $optionKey);
             } elseif (strstr($optionKey, 'show_')) {
                 $show[] = str_replace('show_', '', $optionKey);
             } else {
                 if (isset($conversions[$optionKey]) && method_exists($conversions[$optionKey], 'reverse')) {
                     $data[$optionKey] = $conversions[$optionKey]->reverse($value);
                 } else {
                     $data[$optionKey] = $value;
                 }
             }
         }
     }
     if (!empty($allow)) {
         $data['allow'] = $allow;
     }
     if (!empty($show)) {
         $data['show'] = $show;
     }
     $fieldReferences = array();
     foreach (array('sort_default_field', 'popup_fields') as $key) {
         if (isset($data[$key])) {
             $fieldReferences[$key] = $data[$key];
             unset($data[$key]);
         }
     }
     $reference = $writer->addObject('tracker', $trackerId, $data);
     $fields = $trklib->list_tracker_fields($trackerId);
     foreach ($fields['data'] as $field) {
         $writer->pushReference("{$reference}_{$field['permName']}");
         Tiki_Profile_InstallHandler_TrackerField::export($writer, $field);
     }
     foreach (array_filter($fieldReferences) as $key => $value) {
         $value = preg_replace_callback('/(\\d+)/', function ($match) use($writer) {
             return $writer->getReference('tracker_field', $match[1]);
         }, $value);
         $writer->pushReference("{$reference}_{$key}");
         $writer->addObject('tracker_option', "{$key}-{$trackerId}", array('tracker' => $writer->getReference('tracker', $trackerId), 'name' => $key, 'value' => $value));
     }
     return true;
 }