/** * 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; }