Extension:Loops

From mediawiki.org
This page is a translated version of the page Extension:Loops and the translation is 100% complete.
MediaWiki manüel uzantıları
OOjs UI icon advanced-invert.svg
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
  • $wgLoopsEnabledFunctions
  • $wgLoopsCountLimit
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 sürüm 1.0.0, çok fazla döngüye sahip sayfalar için Uzantı kayıtı , Tracking categories ve gerilemeleri önlemek için Parser tests içeren geliştirme aşamasındadır. Aşağıdaki belgeler, en son kararlı sürüm olan v0.5.2 hedeflemektedir.

Şu anda, bu uzantı MGChecker tarafından temel düzeyde korunur.

Kullanım

Aşağıdaki örnekler Variables uzantısını ve bazı durumlarda da ParserFunctions uzantısını kullanır.

#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 &#32; 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.

Her döngü için genişletilmesi ve doğrulanması gereken bir koşul olmadığından, tüm döngü işlevlerinden #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> into <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

Bu uzantı tarafından sağlanan ayrıştırıcı işlevlerinden bazıları, önce ParserFunctions uzantısının yanı sıra Variables uzantısının yüklenmesini gerektirir.
  • Dosyaları indirin ve extensions/ klasörünüzdeki Loops adlı dizine yerleştirin.
  • $LocalSettings dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'Loops' );
    
  • Size uygun şekilde yapılandırın
  • Yes 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.

ExtLoops::$maxLoops (Önümüzdeki 1.0.0 sürümünde $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