MediaWiki REL1_33
SiteExporter.php
Go to the documentation of this file.
1<?php
2
31
35 private $sink;
36
40 public function __construct( $sink ) {
41 if ( !is_resource( $sink ) || get_resource_type( $sink ) !== 'stream' ) {
42 throw new InvalidArgumentException( '$sink must be a file handle' );
43 }
44
45 $this->sink = $sink;
46 }
47
54 public function exportSites( $sites ) {
55 $attributes = [
56 'version' => '1.0',
57 'xmlns' => 'http://www.mediawiki.org/xml/sitelist-1.0/',
58 ];
59
60 fwrite( $this->sink, Xml::openElement( 'sites', $attributes ) . "\n" );
61
62 foreach ( $sites as $site ) {
63 $this->exportSite( $site );
64 }
65
66 fwrite( $this->sink, Xml::closeElement( 'sites' ) . "\n" );
67 fflush( $this->sink );
68 }
69
75 private function exportSite( Site $site ) {
76 if ( $site->getType() !== Site::TYPE_UNKNOWN ) {
77 $siteAttr = [ 'type' => $site->getType() ];
78 } else {
79 $siteAttr = null;
80 }
81
82 fwrite( $this->sink, "\t" . Xml::openElement( 'site', $siteAttr ) . "\n" );
83
84 fwrite( $this->sink, "\t\t" . Xml::element( 'globalid', null, $site->getGlobalId() ) . "\n" );
85
86 if ( $site->getGroup() !== Site::GROUP_NONE ) {
87 fwrite( $this->sink, "\t\t" . Xml::element( 'group', null, $site->getGroup() ) . "\n" );
88 }
89
90 if ( $site->getSource() !== Site::SOURCE_LOCAL ) {
91 fwrite( $this->sink, "\t\t" . Xml::element( 'source', null, $site->getSource() ) . "\n" );
92 }
93
94 if ( $site->shouldForward() ) {
95 fwrite( $this->sink, "\t\t" . Xml::element( 'forward', null, '' ) . "\n" );
96 }
97
98 foreach ( $site->getAllPaths() as $type => $path ) {
99 fwrite( $this->sink, "\t\t" . Xml::element( 'path', [ 'type' => $type ], $path ) . "\n" );
100 }
101
102 foreach ( $site->getLocalIds() as $type => $ids ) {
103 foreach ( $ids as $id ) {
104 fwrite( $this->sink, "\t\t" . Xml::element( 'localid', [ 'type' => $type ], $id ) . "\n" );
105 }
106 }
107
108 // @todo: export <data>
109 // @todo: export <config>
110
111 fwrite( $this->sink, "\t" . Xml::closeElement( 'site' ) . "\n" );
112 }
113
114}
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
exportSites( $sites)
Writes a <site> tag for each Site object in $sites, and encloses the entire list between <sites> tags...
resource $sink
__construct( $sink)
exportSite(Site $site)
Writes a <site> tag representing the given Site object.
Definition Site.php:29
const GROUP_NONE
Definition Site.php:33
const TYPE_UNKNOWN
Definition Site.php:30
const SOURCE_LOCAL
Definition Site.php:38