Extension:AbuseFilter/Rules format/tr

Kurallar, C/Java/Perl benzeri bir dilde koşullara benzer şekilde biçimlendirilmiştir.

Dizeler
Tek veya çift tırnak içine yerleştirerek (dizeler için) veya olduğu gibi yazarak (sayılar için hem kayan nokta hem de tamsayı) bir değişmez belirtebilirsiniz. ile satır sonu,  ile sekme karakterleri alabilir ve ayrıca bir ters eğik çizgi ile tırnak karakterinden kaçabilirsiniz.

(artı) sembolünü birleştirme iki değişmez dize veya bir dizeyle iki değişken için kullanın.


 * Örnekler:

Kullanıcı tanımlı değişkenler
Bir koşul içinde bir satırda ( ile kapatılmış)   atama simgesiyle anlaşılması kolay olacak özel değişkenler tanımlayabilirsiniz. Bu tür değişkenler harf, alt çizgi ve sayı (ilk karakter dışında) kullanabilir ve büyük/küçük harfe duyarlı değildir. Örnek (w:Special:AbuseFilter/79):

Diziler
AbuseFilter, aşağıdaki örneklerde olduğu gibi kullanılabilen ilişkisel olmayan dizileri destekler.

Yorumlar
Aşağıdaki sözdizimini kullanarak yorumları belirtebilirsiniz: /* Bu bir yorum */

Aritmetik
Aşağıdaki sözdizimi ile değişkenler ve değişmezler üzerinde aritmetik yapmak için temel aritmetik sembolleri kullanabilirsiniz:


 * — Sağ-el işleneni sol-el işlenenden çıkar.
 * — Sağ-el işleneni sol-el işlenene ekleyin.
 * — Sol el operandını sağ taraf operandıyla çarpın.
 * — Soldaki işleneni sağ el işlenene bölün.
 * — Sol-el işleneni sağ-el işleneni tarafından belirtilen üssel kuvvete yükseltin.
 * — Soldaki işlenen sağ taraftaki işlenene bölündüğünde verilen kalanı döndür.

Döndürülen sonucun türü, PHP tarafından döndürülecek olanla aynıdır ve bunun için birçok belge çevrimiçi bulunabilir. Bu AF ayrıştırıcı testinde daha kapsamlı örnekler bulunabilir.

Boole işletmeleri
Sadece ve ancak birkaç koşulun tümü true ise, birkaç koşuldan biri true ise veya tüm koşullardan biri ve yalnızca biri true ise eşleşebilirsiniz.


 * &mdash; OR – koşullardan biri veya daha fazlası true ise true döndürür.
 * &mdash; AND – her iki koşul da true ise true döndürür.
 * &mdash; XOR – biri true ise ve iki koşuldan yalnızca biri true ise true döndürür.
 * &mdash; NOT – koşul true değilse true döndürür.

Örnekler

Basit karşılaştırmalar
Değişkenleri diğer değişkenlerle ve değişmezleri aşağıdaki sözdizimi ile karşılaştırabilirsiniz:


 * &mdash; Sol el işlenen sağ taraftaki işlenenden küçük/büyükse true döndür. Dikkat edin: işlenenler dizelere dönüştürülür ve PHP'de olduğu gibi  ve   olur.
 * &mdash; Sol taraftaki işlenen, sağ taraftaki işlenenden küçük veya ona eşit/büyük ise true döndürür. Dikkat edin: işlenenler dizelere dönüştürülür ve PHP'de olduğu gibi  ve.
 * (veya ),   &mdash; Soldaki işlenen, sırasıyla sağdaki işlenen eşit/eşit değil ise true döndürür.
 * &mdash; Soldaki işlenen, sağ el işlenene eşit/eşit değil ise VE sol el işlenen, sağ el işleneni için sırasıyla aynı/aynı değil veri türündeyse true döndür.

Yerleşik değişkenler
Kötüye kullanım filtresi, çeşitli değişkenleri adlarına göre ayrıştırıcıya aktarır. Bu değişkenlere, harflerin çalışacağı bir yere isimlerini yazarak erişilebilir. Kötüye kullanım günlüğünde her bir taleple ilişkili değişkenleri görüntüleyebilirsiniz.

Notlar
olduğunda, yalnızca,  ,   ve   değişkenleri kullanılabilir. değişkenleri de mevcuttur, ancak önek, sırasıyla orijinal makale adının ve hedef olanın değerlerini temsil eden  ve   ile değiştirilir. Örneğin,  yerine   ve.

MediaWiki 1.28 (295254) sürümünden beri,  yalnızca bir karşıya yükleme yayınlanırken kullanılır ve saklanacak yüklemeler için kullanılmaz. Depolamaya yapılan yüklemeler de dahil olmak üzere tüm yüklemeler için kullanılan yeni bir  tanıtıldı. Bu, eskiden  gibi davranır ve yalnızca dosya meta veri değişkenlerini  sağlar. ,  ve diğerleri dahil olmak üzere sayfa düzenlemeyle ilgili değişkenler artık   için mevcuttur. Her dosya yüklemesi için, filtreler  ile çağrılabilir (yüklemelerin saklanması için) ve her zaman  ;   ile çağrılmazlar.

Filtre yazarları, bir dosya yalnızca dosya içeriğine dayalı olarak kontrol edilebildiğinde (örneğin, düşük çözünürlüklü dosyaları reddetmek için) filtre kodunda  ve yalnızca düzenlemenin vikimetin bölümlerinin de incelenmesi gerektiğinde   kullanmalıdır. Örneğin, açıklaması olmayan dosyaları reddetmek için. Bu, yükleme ayrıntılarını doldurmak için zaman harcamadan önce kullanıcıyı hata konusunda bilgilendirmek için dosyayı karşıya yüklemeyi ve dosyayı yayınlamayı ayıran araçlara (örneğin UploadWizard veya upload dialog) izin verecektir.

Performans
Yukarıdaki tabloda belirtildiği gibi, bu değişkenlerden bazıları çok yavaş olabilir. Filtreleri yazarken, koşul sınırının filtrelerin ne kadar ağır olduğuna dair iyi bir ölçüt olmadığını unutmayın. Örneğin,  veya   gibi değişkenler her zaman hesaplanacak bir DB sorgusuna ihtiyaç duyarken,   değişkenleri metni ayrıştırmak zorunda kalacak, ki bu yine ağır bir işlemdir; tüm bu değişkenler çok dikkatli kullanılmalıdır. Örneğin, İtalyanca Vikipedi'de 135 aktif filtre ve ortalama 450 kullanım koşuluyla, filtrelerin uygulama süresinin 500 ms civarında olduğu ve piklerin 15 saniyeye ulaştığı gözlemlendi. Tek bir filtreden  değişkeni kaldırmak ve başka bir filtrenin   kullandığı durumları yarıya indirmek, ortalama yürütme süresini 50 ms'ye getirdi. Daha spesifik olarak:

Son olarak, belirli bir filtre için bir değişken her hesaplandığında, kaydedileceğini ve diğer herhangi bir filtrenin onu hemen alacağını unutmayın. Bu değişkeni hesaplayan tek bir filtrenin onu kullanan düzinelerce filtre olarak saydığı anlamına gelir.
 * Yüksek doğruluğa ihtiyaç duyduğunuzda  değişkenleri kullanın ve diğer değişkenlerde (örneğin,  ) "http://..." ile kontrol etmek ağır arızalara yol açabilir;
 * PST olmayan değişkenlerin yeterli olmadığından gerçekten emin olduğunuzda  değişken kullanın. Hangisini kontrol edeceğinize koşullu olarak da karar verebilirsiniz: örneğin, bir imzayı incelemek istiyorsanız, önce ,   içerip içermediğini kontrol edin;
 * Genel olarak, bu değişkenlerle uğraşırken, daha fazla koşulu tüketmek, ancak ağır şeyleri hesaplamaktan kaçınmak her zaman çok daha iyidir. Bunu başarmak için her zaman ağır değişkenleri son koşullar olarak koyun.

Anahtar kelimeleri
Aşağıdaki özel anahtar sözcükler, sık kullanılan işlevler için dahil edilmiştir:


 * (veya ), soldaki işlenen, sağ taraftaki işlenende glob kalıbı ile eşleşirse doğru döndürür.
 * Sağdaki işlenen (bir dizge) sol taraf işleneni içeriyorsa  true döndürür. Not: boş dizeler başka herhangi bir dizede yer almaz veya içermez (boş dizenin kendisi bile).
 * ,  gibi çalışır, ancak sol ve sağ el işlenenleri değiştirildiğinde. Note: empty strings are not contained in, nor contain, any other string (not even the empty string itself).
 * (or ) and   return true if the left-hand operand matches (contains) the regex pattern in the right-hand operand (  is case insensitive).

The system uses PCRE. The only PCRE option enabled is  (modifier   in PHP); for   both   and   are enabled (modifier  ).



Examples

Functions
A number of built-in functions are included to ease some common issues. They are executed in the general format, and can be used in place of any literal or variable. Its arguments can be given as literals, variables, or even other functions.

Order of operations
Operations are generally done left-to-right, but there is an order to which they are resolved. As soon as the filter fails one of the conditions, it will stop checking the rest of them (due to short-circuit evaluation) and move on to the next filter. The evaluation order is:


 * 1) Anything surrounded by parentheses (  and  ) is evaluated as a single unit.
 * 2) Turning variables/literals into their respective data. (e.g.,   to 0)
 * 3) Function calls (,  , etc.)
 * 4) Unary   and   (defining positive or negative value, e.g. ,  )
 * 5) Keywords (,  , etc.)
 * 6) Boolean inversion
 * 7) Exponentiation
 * 8) Multiplication-related (multiplication, division, modulo)
 * 9) Addition and subtraction
 * 10) Comparisons.
 * 11) Boolean operations.

Examples

 * is equivalent to, not to  . In particular, both   and   evaluates to.
 * is equivalent to, not to  . In particular, both   and   evaluates to.

Condition counting
The condition limit is (more or less) tracking the number of comparison operators + number of function calls entered.

Further explanation on how to reduce conditions used can be found at.

Exclusions
Although the AbuseFilter examine function will identify "rollback" actions as edits, the AbuseFilter will not evaluate rollback actions for matching.

Useful links

 * PCRE pattern syntax
 * Edit filters benefiting to various local Wikiprojects