/**
  * Render the #get_ldap_data parser function
  */
 static function doGetLDAPData(&$parser)
 {
     global $wgTitle, $edgCurPageName, $edgValues;
     // if we're handling multiple pages, reset $edgValues
     // when we move from one page to another
     $cur_page_name = $wgTitle->getText();
     if (!isset($edgCurPageName) || $edgCurPageName != $cur_page_name) {
         $edgValues = array();
         $edgCurPageName = $cur_page_name;
     }
     $params = func_get_args();
     array_shift($params);
     // we already know the $parser ...
     $args = EDUtils::parseParams($params);
     // parse params into name-value pairs
     $mappings = EDUtils::paramToArray($args['data']);
     // parse the data arg into mappings
     $external_values = EDUtils::getLDAPData($args['filter'], $args['domain'], array_values($mappings));
     // Build $edgValues
     foreach ($mappings as $local_var => $external_var) {
         $edgValues[$local_var][] = $external_values[0][$external_var][0];
     }
     return;
 }
 /**
  * Render the #get_ldap_data parser function
  */
 static function doGetLDAPData(&$parser)
 {
     global $edgCurPageName, $edgValues;
     // if we're handling multiple pages, reset $edgValues
     // when we move from one page to another
     $cur_page_name = $parser->getTitle()->getText();
     if (!isset($edgCurPageName) || $edgCurPageName != $cur_page_name) {
         $edgValues = array();
         $edgCurPageName = $cur_page_name;
     }
     $params = func_get_args();
     array_shift($params);
     // we already know the $parser ...
     $args = EDUtils::parseParams($params);
     // parse params into name-value pairs
     if (array_key_exists('data', $args)) {
         $mappings = EDUtils::paramToArray($args['data']);
         // parse the data arg into mappings
     } else {
         return EDUtils::formatErrorMessage(wfMessage('externaldata-no-param-specified', 'data')->parse());
     }
     if (!array_key_exists('filter', $args)) {
         return EDUtils::formatErrorMessage(wfMessage('externaldata-no-param-specified', 'filter')->parse());
     } elseif (!array_key_exists('domain', $args)) {
         return EDUtils::formatErrorMessage(wfMessage('externaldata-no-param-specified', 'domain')->parse());
     } else {
         $external_values = EDUtils::getLDAPData($args['filter'], $args['domain'], array_values($mappings));
     }
     // Build $edgValues
     foreach ($external_values as $i => $row) {
         if (!is_array($row)) {
             continue;
         }
         foreach ($mappings as $local_var => $external_var) {
             if (array_key_exists($external_var, $row)) {
                 $edgValues[$local_var][] = $row[$external_var][0];
             } else {
                 $edgValues[$local_var][] = '';
             }
         }
     }
     return;
 }