Extension:BrowseImages/ru
|
BrowseImages Статус: beta |
|
|---|---|
| Области применения | User interface |
| Используемые hook'и | SkinTemplateContentActions |
| Описание | Добавляет ссылки для следующей и предыдущей картинки в меню при просмотре страницы в именном пространстве Image. |
| Автор(ы) | Robert Hänel (roberthaenel talk) |
| Версия | 0.1 (2008-04-29) |
| MediaWiki | 1.11 |
| Ссылка для скачивания | no link |
| Параметры | $wgBrowseImagesGroupMode |
Contents |
[edit] Что этот плагин делает?
Этот плагин позволяет просматривать картинки в алфавитном порядке добавляя ссылки на "Следующий" и "Предыдущий" в меню при просмотре страницы в именном пространстве Image.
Так-же существует групповой метод работы, который подходит для галерей с именами в стиле Image:[some description][numbering].[extension] (например Image:Flowers 001.jpg - Image:Flowers 199.jpg). Если групповой метод работы включён, то просмотр возможет только внутри конкретной группы (ссылки Предыдущий и Следующий отключаются при просмотре первой и последней картинки в группе).
Этот плагин основан на Extension:Back-and-Forth (автор - Rob Church).
[edit] Инструкции скачивания
Скопируй код внузу и вставь его в $IP/extensions/BrowseImages/. Внимание: $IP обозначает корневую директорию установки MediaWiki, ту-же директорию, в которой находится LocalSettings.php.
[edit] Инсталляция
Чтобы установить этот плагин нужно добавить следующую строку в LocalSettings.php:
require_once("$IP/extensions/BrowseImages/BrowseImages.php");
Если надо разрешить групповой метод работы, так-же надо добавить:
$wgBrowseImagesGroupMode = true;
[edit] Код
[edit] BrowseImages.php
<?php # # BrowseImages extension for MediaWiki # # Installation: # create a new directory extensions/BrowseImages and copy all files there # add the following to LocalSettings.php: # require_once( "extensions/BrowseImages/BrowseImages.php" ); # # Options: # add the following line to LocalSettings.php if you want to enable group mode: # $wgBrowseImagesGroupMode = true; # group mode is useful for galleries of images whose names match the pattern # Image:[some description][numbering].[extension], like for example # 'Image:Flowers 001.jpg' to 'Image:Flowers 199.jpg' # if group mode is enabled, you can only browse within that group of images # if(! defined('MEDIAWIKI')) { die("This is a MediaWiki extension and can not be used standalone.\n"); } $wgAutoloadClasses['BrowseImages'] = dirname( __FILE__ ) . '/BrowseImages.class.php'; $wgExtensionMessagesFiles['BrowseImages'] = dirname(__FILE__) . '/BrowseImages.i18n.php'; $wgExtensionFunctions[] = 'efBrowseImages'; $wgExtensionCredits['other'][] = array( 'name' => 'BrowseImages', 'description' => 'Adds links for next and previous image to the content actions menu when viewing a page in the Image namespace.', 'version' => '0.1', 'author' => 'Robert Hänel', 'url' => 'http://www.mediawiki.org/wiki/Extension:BrowseImages' ); function efBrowseImages() { global $wgHooks; wfLoadExtensionMessages( 'BrowseImages' ); $wgHooks['SkinTemplateContentActions'][] = 'BrowseImages::contentActionsHook'; }
[edit] BrowseImages.class.php
<?php class BrowseImages { public static function contentActionsHook( &$content_actions) { global $wgTitle; if ( $wgTitle->getNamespace() == NS_IMAGE ) { foreach( array( 'prev' => '<', 'next' => '>' ) as $kind => $op ) { $link = self::getLink( $wgTitle, $op ); $class = $link ? false : 'inactive'; $action = $kind . 'img'; $content_actions[$action] = array( 'class' => $class, 'text' => htmlspecialchars( wfMsg( "browseimages-{$kind}" ) ), 'href' => $link ); } } return true; } private static function getLink( $title, $op ) { global $wgBrowseImagesGroupMode; $dbr = wfGetDB( DB_SLAVE ); $res = $dbr->select( 'page', array( 'page_namespace', 'page_title' ), array( 'page_is_redirect' => 0, 'page_namespace' => $title->getNamespace(), "page_title {$op} " . $dbr->addQuotes( $title->getDBkey() ), ), __METHOD__, array( 'ORDER BY' => 'page_title' . ( $op == '<' ? ' DESC' : '' ), 'LIMIT' => 1, ) ); if( $dbr->numRows( $res ) > 0 ) { $row = $dbr->fetchObject( $res ); $dbr->freeResult( $res ); $target = Title::makeTitleSafe( $row->page_namespace, $row->page_title ); if( $target instanceof Title ) { if ($wgBrowseImagesGroupMode) { $titlegroup = ''; $targetgroup = ''; $regex = '/^(.+)\D\d+(\.\w+)?/'; if (preg_match($regex, $title, $matches)) { $titlegroup = $matches[1]; } if (preg_match($regex, $target, $matches)) { $targetgroup = $matches[1]; } if ((!empty($titlegroup)) && ($titlegroup === $targetgroup)) { return $target->escapeLocalURL(); } } else { return $target->escapeLocalURL(); } } } return false; } }
[edit] BrowseImages.i18n.php
<?php $messages = array(); $messages['en'] = array( 'browseimages-next' => 'Next', 'browseimages-prev' => 'Previous', ); $messages['de'] = array( 'browseimages-next' => 'Vor', 'browseimages-prev' => 'Zurück', ); $messages['zh-tw'] = array( 'browseimages-next' => '下一張', 'browseimages-prev' => '前一張', ); $messages['es'] = array( 'browseimages-next' => 'Siguiente', 'browseimages-prev' => 'Anterior', ); $messages['ru'] = array( 'browseimages-next' => 'Следующий', 'browseimages-prev' => 'Предыдущий', );
[edit] Смотри также
| Язык: | English • Русский |
|---|
