| 
<?php
 require_once('../_include.php');
 
 $config = SimpleSAML_Configuration::getInstance();
 
 if(array_key_exists('xmldata', $_POST)) {
 $xmldata = $_POST['xmldata'];
 
 SimpleSAML_Utilities::validateXMLDocument($xmldata, 'saml-meta');
 $entities = SimpleSAML_Metadata_SAMLParser::parseDescriptorsString($xmldata);
 
 /* Get all metadata for the entities. */
 foreach($entities as &$entity) {
 $entity = array(
 'shib13-sp-remote' => $entity->getMetadata1xSP(),
 'shib13-idp-remote' => $entity->getMetadata1xIdP(),
 'saml20-sp-remote' => $entity->getMetadata20SP(),
 'saml20-idp-remote' => $entity->getMetadata20IdP(),
 );
 
 }
 
 /* Transpose from $entities[entityid][type] to $output[type][entityid]. */
 $output = SimpleSAML_Utilities::transposeArray($entities);
 
 /* Merge all metadata of each type to a single string which should be
 * added to the corresponding file.
 */
 foreach($output as $type => &$entities) {
 
 $text = '';
 
 foreach($entities as $entityId => $entityMetadata) {
 
 if($entityMetadata === NULL) {
 continue;
 }
 
 /* Remove the entityDescriptor element because it is unused, and only
 * makes the output harder to read.
 */
 unset($entityMetadata['entityDescriptor']);
 
 $text .= '$metadata[' . var_export($entityId, TRUE) . '] = ' .
 var_export($entityMetadata, TRUE) . ";\n";
 }
 
 $entities = $text;
 }
 
 } else {
 $xmldata = '';
 $output = array();
 }
 
 
 $template = new SimpleSAML_XHTML_Template($config, 'metadata-converter.php', 'admin');
 
 $template->data['xmldata'] = $xmldata;
 $template->data['output'] = $output;
 
 $template->show();
 
 |