コード例 #1
0
ファイル: Controller.php プロジェクト: rjsmelo/tiki
 function action_add_field($input)
 {
     $modal = $input->modal->int();
     $trackerId = $input->trackerId->int();
     $perms = Perms::get('tracker', $trackerId);
     if (!$perms->admin_trackers) {
         throw new Services_Exception_Denied(tr('Reserved for tracker administrators'));
     }
     $trklib = TikiLib::lib('trk');
     $definition = Tracker_Definition::get($trackerId);
     if (!$definition) {
         throw new Services_Exception_NotFound();
     }
     $name = $input->name->text();
     $permName = $input->permName->word();
     $type = $input->type->text();
     $description = $input->description->text();
     $wikiparse = $input->description_parse->int();
     $adminOnly = $input->adminOnly->int();
     $fieldId = 0;
     $types = $this->utilities->getFieldTypes();
     if (empty($type)) {
         $type = 't';
     }
     if (!isset($types[$type])) {
         throw new Services_Exception(tr('Type does not exist'), 400);
     }
     if ($input->type->word()) {
         if (empty($name)) {
             throw new Services_Exception_MissingValue('name');
         }
         if ($definition->getFieldFromName($name)) {
             throw new Services_Exception_DuplicateValue('name', $name);
         }
         if ($definition->getFieldFromPermName($permName)) {
             throw new Services_Exception_DuplicateValue('permName', $permName);
         }
         $fieldId = $this->utilities->createField(array('trackerId' => $trackerId, 'name' => $name, 'permName' => $permName, 'type' => $type, 'description' => $description, 'descriptionIsParsed' => $wikiparse, 'isHidden' => $adminOnly ? 'y' : 'n'));
         if ($input->submit_and_edit->none() || $input->next->word() === 'edit') {
             return array('FORWARD' => array('action' => 'edit_field', 'fieldId' => $fieldId, 'trackerId' => $trackerId, 'modal' => $modal));
         }
     }
     return array('title' => tr('Add Field'), 'trackerId' => $trackerId, 'fieldId' => $fieldId, 'name' => $name, 'permName' => $permName, 'type' => $type, 'types' => $types, 'description' => $description, 'descriptionIsParsed' => $wikiparse, 'modal' => $modal);
 }