From 98f3cd0548c0a6e925d73b54151495f211905aad Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Wed, 11 Jun 2014 19:30:26 +0000 Subject: [PATCH] OPML: * Learn how OPML works, cry. * Remove unused globals in `startElement()` * Stop using variable variables in `startElement()` Tested with the OPML importer plugin See #27881. git-svn-id: https://develop.svn.wordpress.org/trunk@28743 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/link-parse-opml.php | 36 +++++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/wp-admin/link-parse-opml.php b/src/wp-admin/link-parse-opml.php index 99e17b2d7a..8616e9cd4b 100644 --- a/src/wp-admin/link-parse-opml.php +++ b/src/wp-admin/link-parse-opml.php @@ -13,7 +13,8 @@ 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', +$opml_map = array( + 'URL' => 'link_url', 'HTMLURL' => 'link_url', 'TEXT' => 'link_name', 'TITLE' => 'link_name', @@ -44,24 +45,29 @@ $map = $opml_map; * @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]
\n"); - // save the data away. - $names[] = $link_name; - $urls[] = $link_url; - $targets[] = $link_target; - $feeds[] = $link_rss; - $descriptions[] = $link_description; + $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 }