[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/specialpage/ -> ImageQueryPage.php (source)

   1  <?php
   2  /**
   3   * Variant of QueryPage which uses a gallery to output results.
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @file
  21   * @ingroup SpecialPage
  22   */
  23  
  24  /**
  25   * Variant of QueryPage which uses a gallery to output results, thus
  26   * suited for reports generating images
  27   *
  28   * @ingroup SpecialPage
  29   * @author Rob Church <[email protected]>
  30   */
  31  abstract class ImageQueryPage extends QueryPage {
  32      /**
  33       * Format and output report results using the given information plus
  34       * OutputPage
  35       *
  36       * @param OutputPage $out OutputPage to print to
  37       * @param Skin $skin User skin to use [unused]
  38       * @param DatabaseBase $dbr (read) connection to use
  39       * @param ResultWrapper $res Result pointer
  40       * @param int $num Number of available result rows
  41       * @param int $offset Paging offset
  42       */
  43  	protected function outputResults( $out, $skin, $dbr, $res, $num, $offset ) {
  44          if ( $num > 0 ) {
  45              $gallery = ImageGalleryBase::factory( false, $this->getContext() );
  46  
  47              # $res might contain the whole 1,000 rows, so we read up to
  48              # $num [should update this to use a Pager]
  49              $i = 0;
  50              foreach ( $res as $row ) {
  51                  $i++;
  52                  $namespace = isset( $row->namespace ) ? $row->namespace : NS_FILE;
  53                  $title = Title::makeTitleSafe( $namespace, $row->title );
  54                  if ( $title instanceof Title && $title->getNamespace() == NS_FILE ) {
  55                      $gallery->add( $title, $this->getCellHtml( $row ) );
  56                  }
  57                  if ( $i === $num ) {
  58                      break;
  59                  }
  60              }
  61  
  62              $out->addHTML( $gallery->toHtml() );
  63          }
  64      }
  65  
  66      // Gotta override this since it's abstract
  67  	function formatResult( $skin, $result ) {
  68      }
  69  
  70      /**
  71       * Get additional HTML to be shown in a results' cell
  72       *
  73       * @param object $row Result row
  74       * @return string
  75       */
  76  	protected function getCellHtml( $row ) {
  77          return '';
  78      }
  79  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1