[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/extensions/Cite/ -> SpecialCite.php (source)

   1  <?php
   2  if ( !defined( 'MEDIAWIKI' ) ) die();
   3  /**
   4   * A special page extension that adds a special page that generates citations
   5   * for pages.
   6   *
   7   * @file
   8   * @ingroup Extensions
   9   *
  10   * @link http://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php Documentation
  11   *
  12   * @author Ævar Arnfjörð Bjarmason <[email protected]>
  13   * @copyright Copyright © 2005, Ævar Arnfjörð Bjarmason
  14   * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  15   */
  16  
  17  $wgExtensionCredits['specialpage'][] = array(
  18      'path' => __FILE__,
  19      'name' => 'Cite',
  20      'author' => 'Ævar Arnfjörð Bjarmason',
  21      'descriptionmsg' => 'cite_article_desc',
  22      'url' => 'https://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php'
  23  );
  24  
  25  $dir = __DIR__ . '/';
  26  # Internationalisation file
  27  $wgMessagesDirs['SpecialCite'] = __DIR__ . '/i18n/special';
  28  $wgExtensionMessagesFiles['SpecialCite'] = $dir . 'SpecialCite.i18n.php';
  29  $wgExtensionMessagesFiles['SpecialCiteAliases'] = $dir . 'SpecialCite.alias.php';
  30  
  31  $wgHooks['SkinTemplateBuildNavUrlsNav_urlsAfterPermalink'][] = 'wfSpecialCiteNav';
  32  $wgHooks['SkinTemplateToolboxEnd'][] = 'wfSpecialCiteToolbox';
  33  
  34  $wgSpecialPages['Cite'] = 'SpecialCite';
  35  $wgAutoloadClasses['SpecialCite'] = $dir . 'SpecialCite_body.php';
  36  
  37  // Resources
  38  $citeResourceTemplate = array(
  39      'localBasePath' => __DIR__ . '/modules',
  40      'remoteExtPath' => 'Cite/modules'
  41  );
  42  
  43  $wgResourceModules['ext.specialcite'] = $citeResourceTemplate + array(
  44      'styles' => 'ext.specialcite.css',
  45      'scripts' => array(),
  46      'position' => 'bottom',
  47  );
  48  
  49  /**
  50   * @param $skintemplate SkinTemplate
  51   * @param $nav_urls
  52   * @param $oldid
  53   * @param $revid
  54   * @return bool
  55   */
  56  function wfSpecialCiteNav( &$skintemplate, &$nav_urls, &$oldid, &$revid ) {
  57      // check whether we’re in the right namespace, the $revid has the correct type and is not empty
  58      // (what would mean that the current page doesn’t exist)
  59      $title = $skintemplate->getTitle();
  60      if ( $title->isContentPage() && $revid !== 0 && !empty( $revid ) )
  61          $nav_urls['cite'] = array(
  62              'args' => array( 'page' => $title->getPrefixedDBkey(), 'id' => $revid )
  63          );
  64  
  65      return true;
  66  }
  67  
  68  /**
  69   * add the cite link to the toolbar
  70   *
  71   * @param $skin Skin
  72   *
  73   * @return bool
  74   */
  75  function wfSpecialCiteToolbox( &$skin ) {
  76      if ( isset( $skin->data['nav_urls']['cite'] ) ) {
  77          echo Html::rawElement(
  78              'li',
  79              array( 'id' => 't-cite' ),
  80              Linker::link(
  81                  SpecialPage::getTitleFor( 'Cite' ),
  82                  wfMessage( 'cite_article_link' )->escaped(),
  83                  # Used message keys: 'tooltip-cite-article', 'accesskey-cite-article'
  84                  Linker::tooltipAndAccessKeyAttribs( 'cite-article' ),
  85                  $skin->data['nav_urls']['cite']['args']
  86              )
  87          );
  88      }
  89  
  90      return true;
  91  }


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