~canonical-sysadmins/wordpress/4.7.2

« back to all changes in this revision

Viewing changes to wp-admin/link-parse-opml.php

  • Committer: Jacek Nykis
  • Date: 2015-01-05 16:17:05 UTC
  • Revision ID: jacek.nykis@canonical.com-20150105161705-w544l1h5mcg7u4w9
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * Parse OPML XML files and store in globals.
 
4
 *
 
5
 * @package WordPress
 
6
 * @subpackage Administration
 
7
 */
 
8
 
 
9
if ( ! defined('ABSPATH') )
 
10
        die();
 
11
 
 
12
global $opml;
 
13
 
 
14
/**
 
15
 * XML callback function for the start of a new XML tag.
 
16
 *
 
17
 * @since 0.71
 
18
 * @access private
 
19
 *
 
20
 * @global array $names
 
21
 * @global array $urls
 
22
 * @global array $targets
 
23
 * @global array $descriptions
 
24
 * @global array $feeds
 
25
 *
 
26
 * @param mixed $parser XML Parser resource.
 
27
 * @param string $tagName XML element name.
 
28
 * @param array $attrs XML element attributes.
 
29
 */
 
30
function startElement($parser, $tagName, $attrs) {
 
31
        global $names, $urls, $targets, $descriptions, $feeds;
 
32
 
 
33
        if ( 'OUTLINE' === $tagName ) {
 
34
                $name = '';
 
35
                if ( isset( $attrs['TEXT'] ) ) {
 
36
                        $name = $attrs['TEXT'];
 
37
                }
 
38
                if ( isset( $attrs['TITLE'] ) ) {
 
39
                        $name = $attrs['TITLE'];
 
40
                }
 
41
                $url = '';
 
42
                if ( isset( $attrs['URL'] ) ) {
 
43
                        $url = $attrs['URL'];
 
44
                }
 
45
                if ( isset( $attrs['HTMLURL'] ) ) {
 
46
                        $url = $attrs['HTMLURL'];
 
47
                }
 
48
 
 
49
                // Save the data away.
 
50
                $names[] = $name;
 
51
                $urls[] = $url;
 
52
                $targets[] = isset( $attrs['TARGET'] ) ? $attrs['TARGET'] :  '';
 
53
                $feeds[] = isset( $attrs['XMLURL'] ) ? $attrs['XMLURL'] :  '';
 
54
                $descriptions[] = isset( $attrs['DESCRIPTION'] ) ? $attrs['DESCRIPTION'] :  '';
 
55
        } // End if outline.
 
56
}
 
57
 
 
58
/**
 
59
 * XML callback function that is called at the end of a XML tag.
 
60
 *
 
61
 * @since 0.71
 
62
 * @access private
 
63
 *
 
64
 * @param mixed $parser XML Parser resource.
 
65
 * @param string $tagName XML tag name.
 
66
 */
 
67
function endElement($parser, $tagName) {
 
68
        // Nothing to do.
 
69
}
 
70
 
 
71
// Create an XML parser
 
72
$xml_parser = xml_parser_create();
 
73
 
 
74
// Set the functions to handle opening and closing tags
 
75
xml_set_element_handler($xml_parser, "startElement", "endElement");
 
76
 
 
77
if (!xml_parse($xml_parser, $opml, true)) {
 
78
        echo(sprintf(__('XML error: %1$s at line %2$s'),
 
79
        xml_error_string(xml_get_error_code($xml_parser)),
 
80
        xml_get_current_line_number($xml_parser)));
 
81
}
 
82
 
 
83
// Free up memory used by the XML parser
 
84
xml_parser_free($xml_parser);