Extension:Loops
Loops Sürüm durumu: kararlı |
|
---|---|
Uygulama | Ayrıştırıcı işlevi |
Açıklama | Döngüleri gerçekleştirmek için ayrıştırıcı işlevleri sağlar |
Yazar(lar) | |
En son sürüm | 0.5.2 (2019-08-05) |
MediaWiki | 1.34+ |
PHP | 5.6+ |
Veritabanı değişiklikleri | Hayır |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | README RELEASE-NOTES |
Örnek | sandbox.semantic-mediawiki.org |
|
|
Quarterly downloads | 37 (Ranked 97th) |
Translatewiki.net adresinde mevcutsa, Loops uzantısını çevirin | |
Sorunlar | Açık görevler · Hata bildir |
Loops uzantısı, döngüler gerçekleştirmek için Ayrıştırıcı işlevleri sağlar.
Şu anda, bu uzantı MGChecker tarafından temel düzeyde korunur.
Kullanım
#while
{{#while}}
, koşul işaretlemesi boşluk olmayan olarak değerlendirildiği sürece bir döngü gerçekleştirir (yani belirli bir viki biçimlendirme blok ifadesini tekrar tekrar ayrıştırır).
{{#while: | <durum metni> | <blok ifadesi> }}
- Örnekler
Viki işaretlemesi:
{{#vardefine: i | 0 }}{{#while: | {{#ifexpr: {{#var: i }} < 5 | true }} | <nowiki /> * {{#var: i }}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }} }}
aşağıdakine üretir:
- 0
- 1
- 2
- 3
- 4
{{#while}}
, numaralandırılmış bir diziyi simüle etmek için bir şablonda da kullanılabilir.
"Template:Loops Test" sayfası içeryorsa
{{#vardefine: i | 0 }}{{#while: | {{{arg{{#var: i }} |}}} | <nowiki /> * {{{arg{{#var: i }} }}}{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }} }}
sonra viki biçimlendirmesi
{{Loops Test |arg0=sıfır |arg1=bir |arg2=iki |arg3=üç |arg4=dört }}
üretir
- sıfır
- bir
- iki
- üç
- dört
Yeni satırlar, sekmeler ve boşluklar dahil olmak üzere boşlukların, bu ayrıştırıcı işlevlerinin tüm bağımsız değişkenlerinin başından ve sonundan çıkarıldığını belirtmek önemlidir.
Bu istenmiyorsa, boşluk olmayan karakterlerin eklenmesi (bir boşluk karakteri  
için HTML kodlaması dahil) daha fazla sıyrılmayı önleyecektir (dolayısıyla yukarıdaki örneklerde <nowiki>
etiketleri).
#dowhile
{{#dowhile}}
, blok ifadesinin en az bir kez ayrıştırılması ve görüntülenmesi (görüntülenebilir metinle sonuçlanırsa) garanti edilmesi dışında, tam olarak {{#while}}
gibi çalışır.
Bu, koşul metni değerlendirilmeden önce yapılır.
#loop
{{#loop: <variable name> | <starting value> | <number of loops to be performed> | <wiki markup> }}
{{#loop}}
tekrar tekrar ayrıştırır ve <wiki markup> mutlak değerine <number of loops to be performed> eşit olarak birkaç kez görüntüler.
<Starting value>, <variable name> adını kullanan bir değişkene (Variables uzantısının {{#var:}}
ayrıştırıcı işleviyle erişilebilir) yerleştirilir.
Her döngüden sonra, <number of loops to be performed> pozitifse değişken bir artırılır veya <number of loops to be performed> negatifse bir-bir azaltılır.
#loop
en iyi performansa sahip olmalıdır.- Örnekler
Aşağıdaki kod:
{{#loop: varname | 4 | 4 | <nowiki /> * Bu raunt {{#var: varname }} ve {{#expr: 7 - {{#var: varname }} }} tane daha var }}
üretir
- Bu raunt 4 ve 3 tane daha var
- Bu raunt 5 ve 2 tane daha var
- Bu raunt 6 ve 1 tane daha var
- Bu raunt 7 ve 0 tane daha var
#forargs
(deneysel)
{{#forargs}}
şablonlarda kullanılır.
Şablona iletilen bağımsız değişkenleri alır ve bunları Variables uzantısının {{#var:}}
ayrıştırıcı işlevi tarafından erişilebilen değişkenlere yerleştirir.
{{#forargs: <prefix> | <key> | <value> | <block statement> }}
Bu işlev, adı <prefix> ile başlayan her bir bağımsız değişkeni yineler.
Her yinelemede, bağımsız değişken adını, sanki {{#vardefine: <key> }}
çağırıyormuş gibi eksi <prefix> <key> koyar.
Daha sonra bağımsız değişkenin değerini alır ve benzer bir yöntemde onu <value> içine koyar.
Blok ifadesi daha sonra genişletilir.
Blok ifadesi, saklanan bağımsız değişkenleri erişmek için {{#var: <key> }}
ve {{#var: <value> }}
içerebilir.
- Örnek
"Template:Loops Test" sayfası içeryorsa
{{#forargs: arg | key | value | <nowiki /> * {{#var: key }} = {{#var: value }} }}
sonra viki biçimlendirmesi
{{Loops Test | arg1=val1 | spam=spammity | arg5=val5 | argument=value }}
produces
- 1 = val1
- 5 = val5
- ument = value
#fornumargs
(deneysel)
{{#fornumargs: <key> | <value> | <block statement> }}
{{#fornumargs}}
, {{#forargs}}
ile benzer şekilde çalışır, ancak iki büyük fark vardır: Bir önek bağımsız değişkeni almaz ve yalnızca, açıkça numaralandırılmış olsun ya da olmasın, numaralandırılmış bağımsız değişkenler üzerinde çalışır.
{{Template | 1=one | 2=two }}
veya dolaylı olarak numaralandırılmıştır.
{{Template | one | two }}
Bu yöntemleri tek bir şablon çağrısında karıştırmak, değerlerin üzerine yazılmasına neden olabilir, bu yüzden dikkatli olun.
- Örnekler
"Template:Loops Test" aşağıdakileri içerecek şekilde düzenlenirse:
{{#fornumargs: number | value | <nowiki /> * {{#var: number }} = {{#var: value }} }}
sonra
{{Loops Test | Apricot | B = Bolognese | Caramel slice | 5 = Eclair }}
sonuçlanacak
- 1 = Apricot
- 2 = Caramel slice
- 5 = Eclair
Kurulum
- Dosyaları indirin ve
extensions/
klasörünüzdekiLoops
adlı dizine yerleştirin.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Loops - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'Loops' );
- Size uygun şekilde yapılandırın
- Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.
Yapılandırma
Bu yapılandırma değişkenleri, bu uzantının eklenmesinden sonra LocalSettings.php
dosyasında ayarlanmalıdır.
$egLoopsCountLimit
- Bu parametre, bir sayfanın gerçekleştirmesine izin verilen maksimum döngü sayısını ayarlar (varsayılan
100
).-1
olarak ayarlamak, döngülerin phps ortamının sınırları içinde çalışmasına izin verir. Bu parametre, ne{{#forargs:}}
ne de{{#fornumargs:}}
ayrıştırıcı işlevlerini etkilemez.
$egLoopsEnabledFunctions
- Hangi Loops işlevlerinin etkinleştirilmesi gerektiğini tanımlamak için yapılandırma değişkeni (dizi). Varsayılan olarak, Variables uzantısı da kuruluysa tüm işlevler etkinleştirilir. Variables uzantısı kurulu değilse, kurulmadan çalışmadıkları için
#loop
,#forargs
ve#fornumargs
devre dışı bırakılır. Yalnızca#fornumargs
ve#forargs
işlevlerini etkinleştirmek için şunlar kullanılabilir:
$egLoopsEnabledFunctions = array_diff(
$egLoopsEnabledFunctions, [
'forargs', 'fornumargs'
]
);
Ayrıca bakınız
- Extension:LoopFunctions - Döngüler için başka bir uzantı
- Module:Loops
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |