wp/wp-admin/link-parse-opml.php
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-admin/link-parse-opml.php	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/link-parse-opml.php	Tue Jun 09 03:35:32 2015 +0200
@@ -9,20 +9,7 @@
 if ( ! defined('ABSPATH') )
 	die();
 
-global $opml, $map;
-
-// columns we wish to find are: link_url, link_name, link_target, link_description
-// we need to map XML attribute names to our columns
-$opml_map = array('URL'         => 'link_url',
-	'HTMLURL'     => 'link_url',
-	'TEXT'        => 'link_name',
-	'TITLE'       => 'link_name',
-	'TARGET'      => 'link_target',
-	'DESCRIPTION' => 'link_description',
-	'XMLURL'      => 'link_rss'
-);
-
-$map = $opml_map;
+global $opml;
 
 /**
  * XML callback function for the start of a new XML tag.
@@ -30,9 +17,6 @@
  * @since 0.71
  * @access private
  *
- * @uses $updated_timestamp Not used inside function.
- * @uses $all_links Not used inside function.
- * @uses $map Stores names of attributes to use.
  * @global array $names
  * @global array $urls
  * @global array $targets
@@ -44,25 +28,31 @@
  * @param array $attrs XML element attributes.
  */
 function startElement($parser, $tagName, $attrs) {
-	global $updated_timestamp, $all_links, $map;
 	global $names, $urls, $targets, $descriptions, $feeds;
 
-	if ($tagName == 'OUTLINE') {
-		foreach (array_keys($map) as $key) {
-			if (isset($attrs[$key])) {
-				$$map[$key] = $attrs[$key];
-			}
+	if ( 'OUTLINE' === $tagName ) {
+		$name = '';
+		if ( isset( $attrs['TEXT'] ) ) {
+			$name = $attrs['TEXT'];
+		}
+		if ( isset( $attrs['TITLE'] ) ) {
+			$name = $attrs['TITLE'];
+		}
+		$url = '';
+		if ( isset( $attrs['URL'] ) ) {
+			$url = $attrs['URL'];
+		}
+		if ( isset( $attrs['HTMLURL'] ) ) {
+			$url = $attrs['HTMLURL'];
 		}
 
-		//echo("got data: link_url = [$link_url], link_name = [$link_name], link_target = [$link_target], link_description = [$link_description]<br />\n");
-
-		// save the data away.
-		$names[] = $link_name;
-		$urls[] = $link_url;
-		$targets[] = $link_target;
-		$feeds[] = $link_rss;
-		$descriptions[] = $link_description;
-	} // end if outline
+		// Save the data away.
+		$names[] = $name;
+		$urls[] = $url;
+		$targets[] = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] :  '';
+		$feeds[] = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] :  '';
+		$descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] :  '';
+	} // End if outline.
 }
 
 /**
@@ -70,14 +60,12 @@
  *
  * @since 0.71
  * @access private
- * @package WordPress
- * @subpackage Dummy
  *
  * @param mixed $parser XML Parser resource.
  * @param string $tagName XML tag name.
  */
 function endElement($parser, $tagName) {
-	// nothing to do.
+	// Nothing to do.
 }
 
 // Create an XML parser
@@ -86,10 +74,13 @@
 // Set the functions to handle opening and closing tags
 xml_set_element_handler($xml_parser, "startElement", "endElement");
 
-if (!xml_parse($xml_parser, $opml, true)) {
-	echo(sprintf(__('XML error: %1$s at line %2$s'),
-	xml_error_string(xml_get_error_code($xml_parser)),
-	xml_get_current_line_number($xml_parser)));
+if ( ! xml_parse( $xml_parser, $opml, true ) ) {
+	printf(
+		/* translators: 1: error message, 2: line number */
+		__( 'XML Error: %1$s at line %2$s' ),
+		xml_error_string( xml_get_error_code( $xml_parser ) ),
+		xml_get_current_line_number( $xml_parser )
+	);
 }
 
 // Free up memory used by the XML parser