DCEwiki:Extensions

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Extensions (rozšíření) jsou doplňkové moduly, které nejsou součástí základní instalace MediaWiki, ale které významně rozšiřují její možnosti. Zde se používají následující rozšíření:

Kontakt na administrátory

AccessControl

Je naše původní rozšíření, které naprogramoval v r. 2008 Aleš Kapica pro potřeby wiki katedry DCE. Od r. 2012 jsou zdrojové kódy rozšíření AccessControlspravovány v rámci oficiálního git repozitáře MediaWiki. Smyslem rozšíření je přenechat právo rozhodnout o omezení přístupu k obsahu stránek uživatelům kteří ho tvoří.

Původní verze rozšíření vycházela z podobného rozšíření [1] (accesscontrol-0.8), které kromě toho, že nebylo schopno pokrýt naše potřeby, obsahovalo řadu drobných nedostatků:

  • Za každou skupinou v elementu accesscontrol musely následovat dvě oddělovací čárky a to včetně poslední skupiny v seznamu. Pokud tomu tak nebylo, nevytáhnul skript seznam skupin správně.
  • Jmenný prostor pro vytváření uživatelských skupin bylo možné nastavit pouze "natvrdo" na jednu skupinu přímo v kódu rozšíření.
  • Nebylo možné současně používat systémové skupiny a uživatelské skupiny. Buď jedno, nebo druhé
  • Nebylo možné nastavit pouze právo čtení na jednotlivce, vždy pouze na skupinu
  • Rozšíření postrádalo standardní lokalizaci používanou v MediaWiki

Kromě toho byl kód původního rozšíření slušně řečeno velmi nepřehledný.

Jak použít AccessControl

Chce-li někdo omezit přístup k některé stránce, musí buď nastavit některou z existujících systémových skupin, nebo nejprve založit vlastní uživatelskou skupinu.

Uživatelskou skupinu tvoří množina uživatelských jmen, které jsou položkami první úrovně odrážkového seznamu. Název této uživatelské skupiny pak tvoří titul stránky s tímto seznamem, což může být libovolná stránka v libovolném jmenném prostoru. Lze tedy jak založit vlastní jmenný prostor, tak využít pro založení uživatelské skupiny některý stávající, který může mít přístup chráněný i jinak než přes AccessControl. Viz Nápověda:Jak omezit přístup ke stránce .

Postup pro vytvoření takové stránky je následující:

  1. V již existující stránce vytvořím (zatím neplatný) odkaz na uživatelskou skupinu. Zvolím si název kupř. Moje:Skupina
  2. Kliknutím na tento odkaz a založením stránky mi tak vznikne jmenným prostor s názvem Moje, který bude zahrnovat stránku Skupina. Jiní uživatelé si mohou pro své uživatelské skupiny založit třeba jmenný prostor Naše, který také může mj. obsahovat stránku s názvem Skupina
  3. Do této stránky pak umístím seznam uživatelů, kterým chci povolit přístup ke své stránce. Použiji přitom následující syntaxi:
Poznámka
* Já
* Jiný uživatel
* Další uživatel (ro)
Upozornění Do uživatelského seznamu je třeba zapsat uživatelské jméno tak jak s ním pracuje wiki, tj. s velkým počátečním písmenem

Tím, že jsem uživateli "Další uživatel" přidal za jméno (ro) jsem mu nastavil pouze právo pro čtení. Nebude-li tedy současně členem jiné skupiny s právem editovat mou stránku, pak bude moci její obsah pouze prohlížet, nikoliv upravovat.

Přístup k této uživatelské skupině pak mohu rovnou ochránit přidáním elementu accesscontrol

Poznámka
<accesscontrol>Moje:skupina</accesscontrol>
Upozornění Pokud se zapomenete do této uživatelské skupiny přidat, nebo se překlepnete při psaní svého jména, nebo si omylem nastavíte pouze readonly přístup, nebudete jí už moci nikdy upravit! Navíc také může mít toto rozšíření nastaveno, že stránky ve jmenných prostorech mohou upravovat pouze správci. Pak se k ní rovněž už nemusíte víckrát dostat (i když budete tuto uživatelskou skupinu jinak moci bez problémů používat.

Aplikace práv je už ze zmíněného patrná. Do stránky u které budete chtít omezit přístup vložíte element accesscontrol se seznamem skupin. Kromě uživatelských skupin můžete nastavit také přístup pro členy systémových skupin.

Poznámka
<accesscontrol>Moje:Skupina,Naše:Skupina (ro),bureucrat</accesscontrol>

Jak si můžete povšimnout, readonly přístup lze nastavit také na celou skupinu. Pokud tedy nebude uživatel členem i některé jiné skupiny s právem k editaci, bude moct stránku pouze prohlížet.

Upozornění Členové skupiny sysop mají ( pokud to není zakázáno přímo v rozšíření hodnotou proměnné $wgAdminCanReadAll ) automaticky právo číst všechny stránky

Každý kdo ke stránce nebude mít přístup pak bude automaticky přesměrován na některou z předem nastavených systémových stránek, které se nacházejí v systémovém jmenném prostoru wiki ( v našem případě DCEwiki ) s informací proč jim byl přístup zamezen.

Naše výchozí pravidla

  • Anonymní uživatelé na stránky chráněné elementem accesscontrol nemají přístup nikdy
  • Stránky nechráněné mohou anonymní uživatelé pouze číst
  • Přihlášení uživatelé mají přístup na stránky chráněné elementem accesscontrol vždy pouze na základě svého členství v některé ze systémových, nebo uživatelských skupin
  • Uživatelé co jsou členy skupiny Správci (sysop) mohou stránky chráněné elementem accesscontrol editovat vždy

Cite

Umožňuje vkládat do stránek poznámky pod čarou

DynamicPageList

Komplexní rozšíření, které umožňuje tvořit dynamické seznamy

DynamicSidebar

Parametricky generovaný postraní panel

GroupPermissionManager

Dává větší možnosti pro sofistikovanější nastavení práv systémovým uživatelským skupinám

ImportUsers

Rozšíření umožňující přes speciální stránku ImportUsers hromadný import uživatelů:

Formát importovaného CSV souboru

CSV soubor v UTF-8 musí obsahovat čtyři sloupce oddělené čárkou:

  1. username
  2. heslo
  3. email
  4. plné jméno
Poznámka
user1,pass1,user1@gmail.com,User One
user2,pass2,user2@gmail.com,User Two
user3,pass3,user3@gmail.com,User Three
user4,pass4,user4@gmail.com,User Four
user5,pass5,user5@gmail.com,User Five
user6,pass6,user6@gmail.com,User Six
.
.
.
userN,passN,userN@gmail.com,User Nnn
Poznámka V případě duplicitního username k importu nedojde

Vložené heslo si pak po přihlášení může uživatel změnit.

Lockdown

Toto rozšíření umožňuje omezit přístup pro celý jmenný prostor na jednu systémovou skupinu. Více viz Nápověda:Jak omezit přístup ke stránce .

MultiBoilerplate

Toto rozšíření aktivuje používání předdefinovaných šablon při zakládání stránek

ParserFunctions

ParserFunctions Rozšíření které umožňuje ve wiki používat nejrůznější funkce viz http://meta.wikimedia.org/wiki/Help:ParserFunctions

PasswordReset

Administrátorské rozšíření, které umožňuje mj. přenastavit uživatelské heslo.

PdfHandler

Umožňuje prohlížení vložených pdf dokumentů bez toho že by je bylo nutné stahovat. Funguje podobným způsobem jak prohlížení djvu souborů, které je v MediaWiki standardní součástí, za předpokladu, že jsou na serveru nainstalovány knihovny a utility djvulibre.

SyntaxHighlight

Přidává do wiki možnost barevně zvýrazňovat syntaxi ukázek programových kódů. Použití je velmi jednoduché. Kód se vloží do stránky jako obsah elementu syntaxhighlight viz příklad:

Upozornění Rozšíření původně používalo element source, ten se sice stále dá použít, ale s ohledem na jeho omezené konfigurační možnosti se to nedoporučuje.
Poznámka
<syntaxhighlight lang="bash" strict>
#! /bin/bash

gksu -p -m "Zadej své heslo.." sudo echo
sudo /etc/init.d/mysql start
sudo /etc/init.d/apache
</syntaxhighlight>

..se ve stránce zobrazí takto:

#! /bin/bash

gksu -p -m "Zadej své heslo.." sudo echo
sudo /etc/init.d/mysql start
sudo /etc/init.d/apache


Poznámka
  • Element nowiki se používá aby wiki neprovedla nežádoucí interpretaci kódu. Jeho obsah není interpretován, ale zobrazuje se tak jak je. Pokud použijete pro zobrazení zdrojového kódu element syntaxhighlight, není zapotřebí.
  • Parametr strict zajišťuje aby se rozšíření správně generovalo i kód pro tiskové verze stránky.

Rozšíření pro zvýrazňování syntaxe na této wiki je založeno na php aplikaci geshi, která není integrální součástí MediaWiki. Atributem parametru lang je kód programovacího jazyka, který odpovídá názvu skriptu v geshi. V současné chvíli podporuje zvýrazňování kódu pro tyto programovací jazyky:

abap		actionscript	actionscript3	ada
apache		applescript	asm		asp
autoit		bash		basic4gl	blitzbasic
bnf		caddcl		cadlisp		cfdg
cfm		c_mac		c		cpp
cpp-qt		csharp		css		delphi
diff		div		dos		dot
d		eiffel		fortran		freebasic
genero		gettext		glsl		gml
groovy		haskell		html4strict	idl
ini		inno		io		java
javascript	java5		kixtart		latex
lisp		lotusformulas	lotusscript	lua
matlab		mirc		mpasm		mxml
mysql		m68k		nsis		objc
ocaml-brief	ocaml		oobas		oracle8
pascal		perl		per		php-brief
php		plsql		python		qbasic
rails		reg		robots		ruby
sas		scala		sdlbasic	scheme
smalltalk	smarty		sql		tcl
text		thinbasic	tsql		vbnet
vb		verilog		vhdl		visualfoxpro
winbatch	xml		xpp		z80

UserRightList

Upozornění Toto rozšíření muselo být zrušeno kvůli nekompatibilitě s poslední verzí wiki

Toto rozšíření umožňuje pomocí stránky Special:UserRightsList přehledným způsobem nastavovat registrovaným uživatelům členství v systémových uživatelských skupinách. V podstatě jde o elegantnější správu členství v systémových skupinách než přes standardní stránku MediaWiki Special:Userrights

Tyto systémové skupiny lze vytvářet pomocí speciální stránky Special:GroupPermissions která je součástí rozšíření GroupPermissionsManager

YouTube

Umožňuje jednoduchým způsobem vkládat do stránek ve wiki videa z Youtube. A to tak, že do párového tagu youtube se umístí z URL kód, který odkazuje na příslušné video. Toto rozšíření neumožňuje nastavit žádné další parametry, jako šířku, výšku, atp.