Extension:BrowseImages

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:BrowseImages and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎dansk • ‎español • ‎polski • ‎русский • ‎中文 • ‎日本語
MediaWiki manüel uzantıları
OOjs UI icon advanced.svg
BrowseImages
Sürüm durumu: bakımsız
Uygulama Kullanıcı arayüzü
Açıklama Resim ad alanında bir sayfayı görüntülerken içerik eylemleri menüsüne sonraki ve önceki görüntünün bağlantılarını ekler.
Yazar(lar) Robert Hänel (roberthaenelmesaj)
En son sürüm 0.1 (2008-04-29)
MediaWiki 1.11
Lisans Lisans belirtilmedi
İndir Bağlantı yok
$wgBrowseImagesGroupMode
Kullanım ve sürüm matrisini kontrol edin.

Bu uzantı ne yapabilir?

Bu uzantı, Resim ad alanında bir sayfayı görüntülerken içerik işlemleri menüsüne "Önceki" ve "Sonraki" bağlantılarını ekleyerek vikinizdeki resimlere alfabetik olarak göz atmanıza olanak tanır.

Aynı zamanda, isimleri Image:[some description][numbering].[extension] kalıbıyla eşleşen resim galerileri için yararlı olan bir grup moduna sahiptir, örneğin Resim:Çiçekler 001.jpg ile Resim:Çiçekler 199.jpg gibi. Grup modu etkinleştirilirse, yalnızca bu resim grubuna göz atabilirsiniz (yani, grubun sırasıyla ilk ve son resmine ulaşıldığında Önceki ve Sonraki bağlantıları devre dışı bırakılır).

Bu uzantı, Rob Church tarafından hazırlanan Extension:Back-and-Forth dayanmaktadır.

İndirme talimatları

Lütfen bulunan aşağıda kodu kesip yapıştırın ve $IP/extensions/BrowseImages/ içine yerleştirin.

$IP , MediaWiki kurulumunuzun kök dizinini, LocalSettings.php ile tutan aynı dizin anlamına gelir.

Kurulum

Bu uzantıyı yüklemek için aşağıdakileri LocalSettings.php ile ekleyin:

require_once("$IP/extensions/BrowseImages/BrowseImages.php");

Grup modunu etkinleştirmek istiyorsanız, aşağıdaki satırı da ekleyin:

$wgBrowseImagesGroupMode = true;

Kod

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&auml;nel',
	'url' => 'https://www.mediawiki.org/wiki/Extension:BrowseImages'
);

function efBrowseImages() {
	global $wgHooks;
	wfLoadExtensionMessages( 'BrowseImages' );
	$wgHooks['SkinTemplateContentActions'][] = 'BrowseImages::contentActionsHook';
}

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;
	}

}

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' => 'Предыдущий',
);