コード例 #1
0
 protected function _display($supress_output = false)
 {
     $this->template->addHeaderLink('mootools-core.js');
     $this->template->addHeaderLink('mootools-more.js');
     parent::_display($supress_output);
     if ($errors = I2CE_Dumper::cleanlyEndOutputBuffers()) {
         I2CE::raiseError("Errors:\n" . $errors);
     }
     $this->ff = I2CE_FormFactory::instance();
     if (!$this->request_exists('id') || !($formid = $this->request('id'))) {
         $this->pushError("Bad list id {$id}");
         //needs to be localized
         return false;
     }
     $success = true;
     list($form, $id) = array_pad(explode("|", $formid, 2), 2, '');
     I2CE::raiseError(print_r($this->request(), true));
     if ($id == '*') {
         $where = array('operator' => 'FIELD_LIMIT', 'field' => 'remap', 'style' => 'not_null', 'data' => array());
         $ids = I2CE_FormStorage::search($form, false, $where);
         I2CE::raiseError("Form {$form} has remapping data for " . implode(" ", $ids));
         if (count($ids) > 0) {
             foreach (I2CE_List::getFieldsMappingToList($form) as $rform => $fields) {
                 foreach ($fields as $fieldObj) {
                     $field = $fieldObj->getName();
                     foreach ($ids as $id) {
                         I2CE::raiseError("Checking for remaps on {$rform}+{$field}");
                         $success &= $this->doRemap($rform, $field, $form . '|' . $id);
                     }
                 }
             }
         }
         $url = "index.php/auto_list?form=" . $form;
     } else {
         $form = '';
         if (!$this->request_exists('form') || !($form = $this->request('form')) || !in_array($form, $this->ff->getForms())) {
             $this->pushError("Form {$form} not found");
             return false;
         }
         $field = '';
         if (!$this->request_exists('field') || !($field = $this->request('field'))) {
             $this->pushError("Bad Field {$field}");
             return false;
         }
         $success = $this->doRemap($form, $field, $formid);
         $url = "index.php/auto_list?id={$formid}&form=" . $form;
     }
     if ($success) {
         $this->pushContent("Data was succesully remapped.  Continue on to database lists <a href='{$url}'>site</a>?");
     } else {
         $this->pushContent("Data was <b>not</b> succesully remapped.  Continue on to database lists <a href='{$url}'>site</a>?");
     }
     return true;
 }
コード例 #2
0
 /**
  * method to remap a given id
  * @param string $form
  * @param string $oldid
  * @param string $newid
  */
 public function remapID($form, $oldid, $newid)
 {
     $ff = I2CE_FormFactory::instance();
     $list = $ff->createForm($form);
     if (!$list instanceof I2CE_List) {
         return;
     }
     //go through each  form and each field and
     $forms = I2CE_List::getFieldsMappingToList($list);
     foreach ($forms as $mapForm => $fields) {
         foreach ($fields as $fieldName => $fieldObj) {
             I2CE::raiseError("Remapping {$mapForm}+" . $fieldName . " from {$form}|{$oldid} to {$form}|{$newid}");
             $fieldObj->remapField($form, $oldid, $newid);
         }
     }
 }
コード例 #3
0
 protected function getLinkedFormIds($formObj, &$child_forms)
 {
     if (!$formObj instanceof I2CE_Form) {
         return;
     }
     $formObj->populate();
     $child_forms['form'] = $formObj;
     $links = array();
     $fields = $formObj->getFieldNames();
     $child_forms['links_info'] = array();
     foreach ($fields as $field) {
         $fieldObj = $formObj->getField($field);
         if (!$fieldObj instanceof I2CE_FormField_MAPPED) {
             continue;
         }
         if (!$fieldObj->isValid() || !$fieldObj->isSetValue()) {
             continue;
         }
         if ($fieldObj instanceof I2CE_FormField_MAP) {
             $links[] = $fieldObj->getMappedForm() . '|' . $fieldObj->getMappedID();
             $child_forms['links_info'][$field] = array($fieldObj->getMappedForm() . '|' . $fieldObj->getMappedID());
         } else {
             if ($fieldObj instanceof I2CE_FormField_MAP_MULT) {
                 $child_forms['links_info'][$field] = array();
                 foreach (explode(',', $fieldObj->getDBValue()) as $val) {
                     if (!$val) {
                         continue;
                     }
                     $links[] = $val;
                     $child_forms['links_info'][$field][] = $val;
                 }
             } else {
                 continue;
             }
         }
     }
     if (count($links) > 0) {
         $child_forms['links'] = $links;
     }
     $links_from = array();
     $links_from_info = array();
     if ($formObj instanceof I2CE_List) {
         $data = I2CE_List::getFieldsMappingToList($formObj);
         foreach ($data as $link_form => $link_fields) {
             foreach ($link_fields as $link_field_name => $link_field_obj) {
                 if ($link_field_obj instanceof iHRIS_Currency) {
                     $where = array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'like', 'data' => array('value' => $formObj->getFormID() . '=%'));
                 } else {
                     if ($link_field_obj instanceof I2CE_FormField_MAP) {
                         $where = array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'equals', 'data' => array('value' => $formObj->getFormID()));
                     } else {
                         $where = array('operator' => 'OR', 'operand' => array(array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'like', 'data' => array('value' => $formObj->getFormID() . ',%')), array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'like', 'data' => array('value' => '%,' . $formObj->getFormID())), array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'like', 'data' => array('value' => '%,' . $formObj->getFormID() . ',%')), array('operator' => 'FIELD_LIMIT', 'field' => $link_field_name, 'style' => 'equals', 'data' => array('value' => $formObj->getFormID()))));
                     }
                 }
                 $matches = I2CE_FormStorage::search($link_form, false, $where);
                 if ($matches) {
                     foreach ($matches as $match) {
                         $links_from[] = $link_form . '|' . $match;
                         if (!array_key_exists($link_form . '+' . $link_field_name, $links_from_info)) {
                             $links_from_info[$link_form . '+' . $link_field_name] = array();
                         }
                         $links_from_info[$link_form . '+' . $link_field_name][] = $link_form . '|' . $match;
                     }
                 }
             }
         }
     }
     if (count($links_from) > 0) {
         $child_forms['links_from'] = $links_from;
         $child_forms['links_from_info'] = $links_from_info;
     }
     if (($parentField = $formObj->getField('parent')) instanceof I2CE_FormField) {
         if ($parent = $parentField->getDBValue()) {
             $child_forms['parent'] = $parent;
         }
     }
     foreach ($formObj->getChildForms() as $child_form) {
         $formObj->populateChildren($child_form);
         $children = $formObj->getChildren($child_form);
         if (!is_array($children) || count($children) == 0) {
             continue;
         }
         foreach ($children as $childObj) {
             if (!$childObj instanceof I2CE_Form) {
                 I2CE::raiseError("Baddness getting {$child_form} of " . $formObj->getFormID() . "\n" . gettype($childObj));
                 continue;
             }
             if (!array_key_exists('children', $child_forms)) {
                 $child_forms['children'] = array();
             }
             $child_forms['children'][$childObj->getFormID()] = array();
             $this->getLinkedFormIds($childObj, $child_forms['children'][$childObj->getFormID()]);
         }
     }
     return;
 }