コード例 #1
0
    }
    $mods = $template->query("ancestor-or-self::*[@type='module'][1]", $li);
    if ($mods->length == 1 && ($mod = $mods->item(0)->getAttribute('name'))) {
        $qry['mods'] = $mod;
    }
    $qry['text'] = $a->textContent;
    $data[$type] = $qry;
}
$list_storage = I2CE_MagicData::instance("temp_lists");
$list_storage->modules->Lists->auto_list = $data;
foreach ($list_storage->modules->Lists->auto_list as $type => $listConfig) {
    $listConfig->traverse('text', true, false)->setTranslatable();
}
I2CE::setupFileSearch(array('XML' => array(dirname(dirname(__FILE__) . "/../modules/MagicDataExport/xml/export_magicdata.xml"))));
echo $list_storage;
$export = new I2CE_MagicDataExport_Template();
$export->loadRootFile(dirname(dirname(__FILE__) . "/../modules/MagicDataExport/xml/export_magicdata.xml") . "/export_magicdata.xml");
$configNodes = $export->query('/I2CEConfiguration/configurationGroup');
$configNode = $configNodes->item(0);
$configNode->setAttribute('name', 'auto_list');
$configNode->setAttribute('path', '/modules/Lists/auto_list');
$export->createExport($configNode, $list_storage->modules->Lists->auto_list);
foreach ($export->query('//displayName', $configNode) as $dp) {
    $dp->parentNode->removeChild($dp);
    //condense the .xml export
}
foreach ($export->query('//*[@name="category"] | //*[@name="subcategory"] | //*[@name="text"]') as $t) {
    $t->setAttribute('locale', 'en_US');
    //shouldn't have to do this because we set the nodes as translatbale above.  there is a bug in magic data export
}
$out = $export->getDisplay();
コード例 #2
0
 protected function _getReportViewDisplayedFieldsWalker($getDisabled, $all_aggregates, $baseConfig, &$field_list, $parent_report, $parent_ref)
 {
     if (!$parent_report || !($reportConfig = I2CE::getConfig()->traverse("/modules/CustomReports/reports/{$parent_report}")) instanceof I2CE_MagicDataNode) {
         return;
     }
     if (!$baseConfig instanceof I2CE_MagicDataNode || !$baseConfig->is_parent("fields")) {
         return;
     }
     $fieldBaseConfig = $baseConfig->fields;
     $sub_field_list = array();
     $displayedFields = array();
     $seen_forms = array();
     $headers = array('sum' => 'Sum', 'maximum' => 'Maximum', 'minimum' => 'Minimum', 'average' => 'Average', 'count_distinct' => 'Total Distinct', 'count' => 'Total');
     if (($headerConfig = I2CE::getConfig()->traverse("/modules/CustomReports/text/headers")) instanceof I2CE_MagicDataNode) {
         foreach ($headers as $k => &$v) {
             $headerConfig->setIfIsSet($v, $k);
         }
     }
     foreach ($fieldBaseConfig as $formfield => $formFieldConfig) {
         //cyclying on feilds in report view
         if (!$formFieldConfig instanceof I2CE_MagicDataNode) {
             continue;
         }
         list($form, $field_agg) = array_pad(explode('+', $formfield), 2, '');
         list($field, $aggregate) = array_pad(explode('+', $field_agg), 2, '');
         $link = false;
         $link_append = '';
         $link_target = false;
         $link_type = 'link';
         $rep_enabled = false;
         if (!$field_agg && $form == $formfield) {
             //this is an internal field and the header is stored in
             $rep_enabled = true;
             $header = I2CE_MagicDataExport_Template::humanText($formfield);
             $reportConfig->setIfIsSet($header, "reporting_internals/{$formfield}/header");
         } elseif (!$form) {
             //this is  function field and the name of the field is stored in
             $header = I2CE_MagicDataExport_Template::humanText($field);
             $reportConfig->setIfIsSet($header, "reporting_functions/{$field_agg}/header");
             $reportConfig->setIfIsSet($rep_enabled, "reporting_functions/{$field_agg}/enabled");
         } else {
             //this is a reportform+field
             $header = I2CE_MagicDataExport_Template::humanText($form) . ' ' . I2CE_MagicDataExport_Template::humanText($field);
             $reportConfig->setIfIsSet($header, "reporting_forms/{$form}/fields/{$field_agg}/header");
             $reportConfig->setIfIsSet($link, "reporting_forms/{$form}/fields/{$field_agg}/link");
             $reportConfig->setIfIsSet($link_append, "reporting_forms/{$form}/fields/{$field_agg}/link_append");
             $reportConfig->setIfIsSet($link_type, "reporting_forms/{$form}/fields/{$field_agg}/link_type");
             $reportConfig->setIfIsSet($link_target, "reporting_forms/{$form}/fields/{$field_agg}/target");
             $reportConfig->setIfIsSet($rep_enabled, "reporting_forms/{$form}/fields/{$field_agg}/enabled");
         }
         if (!$field_agg && $form == $formfield) {
             $aggs = array('');
             $displayedField = $formfield;
         } elseif ($all_aggregates === true) {
             $aggs = array('sum', 'maximum', 'minimum', 'average', 'count', 'count_distinct', '');
             $displayedField = $form . '+' . $field;
         } elseif (is_array($all_aggregates)) {
             $aggs = $all_aggregates;
             $displayedField = $form . '+' . $field;
         } else {
             // get default aggregate stuff
             if (!$aggregate) {
                 $aggreate = '';
                 $formFieldConfig->setIfIsSet($aggregate, "aggregate");
             }
             if ($aggregate == 'none') {
                 $aggregate = '';
             }
             $aggs = array($aggregate);
             $displayedField = $formfield;
         }
         if ($getDisabled) {
             $enabled = true;
         } else {
             $enabled = false;
             $formFieldConfig->setIfIsSet($enabled, "enabled");
         }
         $enabled &= $rep_enabled;
         if ($enabled) {
             if ($form && $form != $formfield) {
                 if (!array_key_exists($form, $seen_forms)) {
                     $seen_forms[$form] = array('parent' => false, 'id' => false);
                 }
                 if ($field == 'id') {
                     $seen_forms[$form]['id'] = true;
                 } else {
                     if ($field == 'parent') {
                         $seen_forms[$form]['parent'] = true;
                     }
                 }
             }
             foreach ($aggs as $agg) {
                 $t_link = false;
                 $t_link_append = false;
                 $t_link_type = false;
                 $t_link_target = false;
                 $t_header = $header;
                 $t_field = $displayedField;
                 if (array_key_exists($agg, $headers)) {
                     $t_header .= ' (' . $headers[$agg] . ')';
                 } else {
                     $agg = '';
                     $t_link = $link;
                     $t_link_append = $link_append;
                     $t_link_type = $link_type;
                     $t_link_target = $link_target;
                 }
                 if ($agg) {
                     $t_field .= '+' . $agg;
                 }
                 $displayedFields[$parent_ref . $t_field] = array('header' => $t_header, 'link' => $t_link, 'target' => $t_link_target, 'link_append' => $t_link_append, 'link_type' => $t_link_type);
             }
         } else {
             if (!array_key_exists($displayedField, $displayedFields)) {
                 $displayFields[$parent_ref . $displayedField] = false;
             }
         }
         $additional = false;
         $add_reportfield = false;
         if ($formFieldConfig->setIfIsSet($additional, 'merge_additional')) {
             // something like  /$report_view/fields/primary_form+job_cadre  or /$report_views
             $additional = explode('/', ltrim($additional, '/'));
             if (count($additional) == 3) {
                 //it is a report view
                 $add_reportfield = array_pop($additional);
                 //array_pop($additional); //fields
                 //array_pop($additional); //reportview
                 $add_merge = 'primary_table:';
             } else {
                 if (count($additional) > 3) {
                     $add_reportfield = array_pop($additional);
                     array_pop($additional);
                     $add_merge = array_pop($additional) . ':';
                 }
             }
         }
         if ($add_reportfield) {
             if (!array_key_exists($displayedField, $displayedFields)) {
                 $displayedFields[$parent_ref . $displayedField] = false;
             }
             if (!array_key_exists($add_merge . $add_reportfield, $displayedFields)) {
                 $displayedFields[$add_merge . $add_reportfield] = false;
             }
         }
         if (!$formFieldConfig->is_parent("merges")) {
             continue;
         }
         $sub_field_list[$displayedField] = array();
         foreach ($formFieldConfig->merges as $mergekey => $mergeConfig) {
             $enabled = false;
             $mergeConfig->setIfIsSet($enabled, 'enabled');
             if (!$enabled) {
                 continue;
             }
             $merge_report = false;
             $reportConfig->setIfIsSet($merge_report, "reporting_forms/{$form}/fields/{$field}/merges/{$mergekey}/report");
             if (!I2CE_MagicDataNode::checkKey($merge_report)) {
                 continue;
             }
             if (in_array($merge_report, $this->seen_merges)) {
                 //don't allow report to be merged in more than once
                 continue;
             }
             $this->seen_merges[] = $merge_report;
             if (!($merge_report_config = I2CE::getConfig()->traverse("/modules/CustomReports/reports/{$merge_report}")) instanceof I2CE_MagicDataNode) {
                 continue;
             }
             $child_ref = "{$mergekey}:{$merge_report}:";
             $this->_getReportViewDisplayedFieldsWalker($getDisabled, $all_aggregates, $mergeConfig, $sub_field_list[$displayedField], $merge_report, $child_ref);
         }
     }
     foreach ($seen_forms as $form => $seen) {
         if (!$seen['id']) {
             $displayedFields[$parent_ref . "{$form}+id"] = false;
         }
         if (!$seen['parent']) {
             $displayedFields[$parent_ref . "{$form}+parent"] = false;
         }
     }
     $displayOrder = '';
     if (array_key_exists('display_order', $this->defaultOptions) && $this->defaultOptions['display_order']) {
         $displayOrder = $this->defaultOptions['display_order'];
     } else {
         $baseConfig->setIfIsSet($displayOrder, 'display_order');
     }
     $displayOrder = explode(',', $displayOrder);
     foreach ($displayOrder as $field) {
         if (!$field) {
             continue;
         }
         $field = $parent_ref . $field;
         foreach ($displayedFields as $fieldName => $details) {
             if (strpos($fieldName, $field) !== 0) {
                 continue;
             }
             if (strlen($fieldName) == strlen($field) || $fieldName[strlen($field)] == '+') {
                 $field_list[$fieldName] = $details;
                 unset($displayedFields[$fieldName]);
                 if (array_key_exists($displayedField, $sub_field_list)) {
                     $field_list = array_merge($field_list, $sub_field_list[$displayedFields]);
                     unset($sub_field_list[$displayedFields]);
                 }
             }
         }
     }
     while (count($displayedFields) > 0) {
         reset($displayedFields);
         $key = key($displayedFields);
         $details = array_shift($displayedFields);
         $field_list[$key] = $details;
         if (array_key_exists($displayedField, $sub_field_list)) {
             $field_list = array_merge($field_list, $sub_field_list[$displayedFields]);
             unset($sub_field_list[$displayedFields]);
         }
     }
     while (count($sub_field_list) > 0) {
         $field_list = array_merge($field_list, array_shift($sub_field_list));
     }
 }