Merge "Don't check namespace in SpecialWantedtemplates"
[lhc/web/wiklou.git] / includes / specials / SpecialExport.php
index dfc7cdd..39c4d77 100644 (file)
@@ -30,7 +30,6 @@
  */
 class SpecialExport extends SpecialPage {
        private $curonly, $doExport, $pageLinkDepth, $templates;
-       private $images;
 
        public function __construct() {
                parent::__construct( 'Export' );
@@ -46,7 +45,6 @@ class SpecialExport extends SpecialPage {
                $this->doExport = false;
                $request = $this->getRequest();
                $this->templates = $request->getCheck( 'templates' );
-               $this->images = $request->getCheck( 'images' ); // Doesn't do anything yet
                $this->pageLinkDepth = $this->validateLinkDepth(
                        $request->getIntOrNull( 'pagelink-depth' )
                );
@@ -188,113 +186,121 @@ class SpecialExport extends SpecialPage {
                        $categoryName = '';
                }
 
-               $form = Xml::openElement( 'form', array( 'method' => 'post',
-                       'action' => $this->getPageTitle()->getLocalURL( 'action=submit' ) ) );
-               $form .= Xml::inputLabel(
-                       $this->msg( 'export-addcattext' )->text(),
-                       'catname',
-                       'catname',
-                       40,
-                       $categoryName
-               ) . ' ';
-               $form .= Xml::submitButton(
-                       $this->msg( 'export-addcat' )->text(),
-                       array( 'name' => 'addcat' )
-               ) . '<br />';
-
+               $formDescriptor = array(
+                       'catname' => array(
+                               'type' => 'textwithbutton',
+                               'name' => 'catname',
+                               'horizontal-label' => true,
+                               'label-message' => 'export-addcattext',
+                               'default' => $categoryName,
+                               'size' => 40,
+                               'buttontype' => 'submit',
+                               'buttonname' => 'addcat',
+                               'buttondefault' => $this->msg( 'export-addcat' )->text(),
+                       ),
+               );
                if ( $config->get( 'ExportFromNamespaces' ) ) {
-                       $form .= Html::namespaceSelector(
-                               array(
-                                       'selected' => $nsindex,
-                                       'label' => $this->msg( 'export-addnstext' )->text()
-                               ), array(
+                       $formDescriptor += array(
+                               'nsindex' => array(
+                                       'type' => 'namespaceselectwithbutton',
+                                       'default' => $nsindex,
+                                       'label-message' => 'export-addnstext',
+                                       'horizontal-label' => true,
                                        'name' => 'nsindex',
                                        'id' => 'namespace',
-                                       'class' => 'namespaceselector',
-                               )
-                       ) . '&#160;';
-                       $form .= Xml::submitButton(
-                               $this->msg( 'export-addns' )->text(),
-                               array( 'name' => 'addns' )
-                       ) . '<br />';
+                                       'cssclass' => 'namespaceselector',
+                                       'buttontype' => 'submit',
+                                       'buttonname' => 'addns',
+                                       'buttondefault' => $this->msg( 'export-addns' )->text(),
+                               ),
+                       );
                }
 
                if ( $config->get( 'ExportAllowAll' ) ) {
-                       $form .= Xml::checkLabel(
-                               $this->msg( 'exportall' )->text(),
-                               'exportall',
-                               'exportall',
-                               $request->wasPosted() ? $request->getCheck( 'exportall' ) : false
-                       ) . '<br />';
+                       $formDescriptor += array(
+                               'exportall' => array(
+                                       'type' => 'check',
+                                       'label-message' => 'exportall',
+                                       'name' => 'exportall',
+                                       'id' => 'exportall',
+                                       'default' => $request->wasPosted() ? $request->getCheck( 'exportall' ) : false,
+                               ),
+                       );
                }
 
-               $form .= Xml::element(
-                       'textarea',
-                       array( 'name' => 'pages', 'cols' => 40, 'rows' => 10 ),
-                       $page,
-                       false
+               $formDescriptor += array(
+                       'textarea' => array(
+                               'class' => 'HTMLTextAreaField',
+                               'name' => 'pages',
+                               'nodata' => true,
+                               'cols' => 40,
+                               'rows' => 10,
+                               'default' => $page,
+                       ),
                );
-               $form .= '<br />';
 
                if ( $config->get( 'ExportAllowHistory' ) ) {
-                       $form .= Xml::checkLabel(
-                               $this->msg( 'exportcuronly' )->text(),
-                               'curonly',
-                               'curonly',
-                               $request->wasPosted() ? $request->getCheck( 'curonly' ) : true
-                       ) . '<br />';
+                       $formDescriptor += array(
+                               'curonly' => array(
+                                       'type' => 'check',
+                                       'label-message' => 'exportcuronly',
+                                       'name' => 'curonly',
+                                       'id' => 'curonly',
+                                       'default' => $request->wasPosted() ? $request->getCheck( 'curonly' ) : true,
+                               ),
+                       );
                } else {
                        $out->addWikiMsg( 'exportnohistory' );
                }
 
-               $form .= Xml::checkLabel(
-                       $this->msg( 'export-templates' )->text(),
-                       'templates',
-                       'wpExportTemplates',
-                       $request->wasPosted() ? $request->getCheck( 'templates' ) : false
-               ) . '<br />';
+               $formDescriptor += array(
+                       'templates' => array(
+                               'type' => 'check',
+                               'label-message' => 'export-templates',
+                               'name' => 'templates',
+                               'id' => 'wpExportTemplates',
+                               'default' => $request->wasPosted() ? $request->getCheck( 'templates' ) : false,
+                       ),
+               );
 
                if ( $config->get( 'ExportMaxLinkDepth' ) || $this->userCanOverrideExportDepth() ) {
-                       $form .= Xml::inputLabel(
-                               $this->msg( 'export-pagelinks' )->text(),
-                               'pagelink-depth',
-                               'pagelink-depth',
-                               20,
-                               0
-                       ) . '<br />';
+                       $formDescriptor += array(
+                               'pagelink-depth' => array(
+                                       'type' => 'text',
+                                       'name' => 'pagelink-depth',
+                                       'id' => 'pagelink-depth',
+                                       'label-message' => 'export-pagelinks',
+                                       'default' => '0',
+                                       'size' => 20,
+                               ),
+                       );
                }
 
-               /* Enable this when we can do something useful exporting/importing image information.
-               $form .= Xml::checkLabel(
-                               $this->msg( 'export-images' )->text(),
-                               'images',
-                               'wpExportImages',
-                               false
-                       ) . '<br />';
-               */
-               $form .= Xml::checkLabel(
-                       $this->msg( 'export-download' )->text(),
-                       'wpDownload',
-                       'wpDownload',
-                       $request->wasPosted() ? $request->getCheck( 'wpDownload' ) : true
-               ) . '<br />';
+               $formDescriptor += array(
+                       'wpDownload' => array(
+                               'type' => 'check',
+                               'name' =>'wpDownload',
+                               'id' => 'wpDownload',
+                               'default' => $request->wasPosted() ? $request->getCheck( 'wpDownload' ) : true,
+                               'label-message' => 'export-download',
+                       ),
+               );
 
                if ( $config->get( 'ExportAllowListContributors' ) ) {
-                       $form .= Xml::checkLabel(
-                               $this->msg( 'exportlistauthors' )->text(),
-                               'listauthors',
-                               'listauthors',
-                               $request->wasPosted() ? $request->getCheck( 'listauthors' ) : false
-                       ) . '<br />';
+                       $formDescriptor += array(
+                               'listauthors' => array(
+                                       'type' => 'check',
+                                       'label-message' => 'exportlistauthors',
+                                       'default' => $request->wasPosted() ? $request->getCheck( 'listauthors' ) : false,
+                                       'name' => 'listauthors',
+                                       'id' => 'listauthors',
+                               ),
+                       );
                }
 
-               $form .= Xml::submitButton(
-                       $this->msg( 'export-submit' )->text(),
-                       Linker::tooltipAndAccesskeyAttribs( 'export' )
-               );
-               $form .= Xml::closeElement( 'form' );
-
-               $out->addHTML( $form );
+               $htmlForm = HTMLForm::factory( 'div', $formDescriptor, $this->getContext() );
+               $htmlForm->setSubmitTextMsg( 'export-submit' );
+               $htmlForm->prepareForm()->displayForm( false );
                $this->addHelpLink( 'Help:Export' );
        }
 
@@ -320,7 +326,6 @@ class SpecialExport extends SpecialPage {
                if ( $exportall ) {
                        $history = WikiExporter::FULL;
                } else {
-
                        $pageSet = array(); // Inverted index of all pages to look up
 
                        // Split up and normalize input
@@ -345,11 +350,6 @@ class SpecialExport extends SpecialPage {
                                $pageSet = $this->getPageLinks( $inputPages, $pageSet, $linkDepth );
                        }
 
-                       // Enable this when we can do something useful exporting/importing image information.
-                       // if( $this->images ) ) {
-                       // $pageSet = $this->getImages( $inputPages, $pageSet );
-                       // }
-
                        $pages = array_keys( $pageSet );
 
                        // Normalize titles to the same format and remove dupes, see bug 17374
@@ -372,9 +372,9 @@ class SpecialExport extends SpecialPage {
                        $buffer = WikiExporter::STREAM;
 
                        // This might take a while... :D
-                       wfSuppressWarnings();
+                       MediaWiki\suppressWarnings();
                        set_time_limit( 0 );
-                       wfRestoreWarnings();
+                       MediaWiki\restoreWarnings();
                }
 
                $exporter = new WikiExporter( $db, $history, $buffer );
@@ -535,24 +535,6 @@ class SpecialExport extends SpecialPage {
                return $pageSet;
        }
 
-       /**
-        * Expand a list of pages to include images used in those pages.
-        *
-        * @param array $inputPages List of titles to look up
-        * @param array $pageSet Associative array indexed by titles for output
-        *
-        * @return array Associative array index by titles
-        */
-       private function getImages( $inputPages, $pageSet ) {
-               return $this->getLinks(
-                       $inputPages,
-                       $pageSet,
-                       'imagelinks',
-                       array( 'namespace' => NS_FILE, 'title' => 'il_to' ),
-                       array( 'page_id=il_from' )
-               );
-       }
-
        /**
         * Expand a list of pages to include items used in those pages.
         * @param array $inputPages Array of page titles