Manual:Title.php
MediaWiki dosyası: Title.php | |
---|---|
Konum: | includes/title/ |
Kaynak kodu: | master • 1.40.1 • 1.39.5 • 1.35.13 |
Sınıflar: | Title |
Before 1.40:
MediaWiki dosyası: Title.php | |
---|---|
Konum: | includes/ |
Kaynak kodu: | master • 1.40.1 • 1.39.5 • 1.35.13 |
Sınıflar: | Title |
MediaWiki yazılımının Title
sınıfı LinkTarget ve IDBAccessObject arayüzlerini uygular.
Aşağıdakiler dahil olmak üzere birçok amaç için kullanılan makale başlığını temsil eder:
- maddenin okunabilir metin başlığı olarak
- maddeye erişmek için kullanılan URL'de
- maddeye vikimetin bağlantısı
- madde veritabanının anahtarı
Sınıf, bu biçimlerden biriyle başlatılır.
Bir kez başlatıldığında, başlık başka biçimlerde alınabilir veya öznitelikleri için sorgulanabilir.
Title
değerinin değişmez bir "value" sınıfı olması amaçlanmıştır, bu nedenle herhangi bir mutasyon işlevi yoktur.[1][2]
Title
örneğini oluşturmak için statik fabrika yöntemlerinden birini çağırın:
Title::newFromDBKey( $key )
Title::newFromID( ($id, $flags=0) )
Title::newFromText( $text, $defaultNamespace=NS_MAIN )
Title::newFromURL( $url )
- Bu istediğiniz işlev değil. Title::newFromText() kullanın.Title::newFromIDs( $ids )
- bir dizi Başlık döndürürTitle::newFromRedirect( $text )
Title::makeTitleSafe( $ns, $title, $fragment= '', $interwiki= '')
- Bir ad alanı dizininden ve bir DB anahtarından yeni bir Başlık oluşturun. Hata durumunda null değerini döndürür.Title::newFromRedirectArray( $text )
Title::newFromRedirectRecurse( $text )
Title::newFromRow( $row )
Title::newMainPage()
Bir kez başlatıldığında, getText()
, getDBKey()
, getNamespace()
vb. gibi statik olmayan diğer erişimci yöntemleri kullanılabilir.
Bir Title nesneniz varsa, aşağıdakileri alabilirsiniz:
Article::newFromTitle ( $title, IContextSource $context )
kullanarak Article nesneWikiPage::factory ( Title $title )
kullanarak WikiPage nesne
Bu sınıf, veritabanından çeşitli veri türlerini alabilir; ancak bunu verimsiz yapar. Bunun yerine TitleValue nesnesi kullanmayı düşünün. TitleValue daha hafiftir ve küresel duruma veya veritabanına bağlı değildir.
Başlık yapısı
Başlık, isteğe bağlı bir Vikiarası önekinden (mediawiki.org'dan sayfalar için "mw:
" veya Vikipedi maddeler için "w:
") ve ardından isteğe bağlı bir ad alanından oluşur ("Manual:
" gibi) ve ardından sayfa adı.
önek: | ad alanı: | sayfa adı |
isteğe bağlı | isteğe bağlı | gerekli |
Vikiarası önekleri ve ad alanları
Vikiarası önekleri ve ad alanları aynı içerik kurallarına uyar:
- bir harfle başlamalılar
- iki nokta üst üste ile bitmeliler
- yalnızca rakamlar, harfler, boşluk karakteri ve alt çizgi karakteri içerebilirler
- boşluklar ve alt çizgiler değiştirilebilir olarak kullanılabilir
- büyük/küçük harfe duyarlı değiller
Vikiarası önekleri ve ad alanları yalnızca, varsayılan olarak veya yapılandırma yoluyla belirli bir MediaWiki yüklemesi tarafından biliniyorsa tanınır.
Örneğin: Bu vikide "w:Name
", Vikipedi'deki "Name
" maddesine bir bağlantıdır, çünkü "w
" izin verilen vikiarası öneklerinden biri olarak tanınır.
"talk:Name
" başlığı şu anki vikinin "talk
" ad alanındaki madde "adı" na bir bağlantıdır, çünkü "talk
" tanınan bir ad alanıdır.
Her ikisi de mevcut olabilir ve eğer öyleyse, vikiarası önce gelmelidir, örneğin, "w:talk:name
".
Bir başlık, ilk karakteri iki nokta üst üste ile başlıyorsa, hiçbir önek taranmaz ve başlık işlenmeden önce iki nokta üst üste kaldırılır.
Bu kural nedeniyle isimlerinde iki nokta üst üste bulunan yazıların bulunması mümkündür.
"E. Coli 0157:H7
", "Komandolar: Düşman Satırlarının Arkasında" olduğu gibi geçerli bir başlıktır, çünkü "E. Coli 0157
" ve "Commandos
" geçerli vikiaraları veya ad alanları değildir.
Madde adı
Madde adında boşluklar ve alt çizgiler eşdeğer kabul edilir ve uygun bağlamda her biri diğerine dönüştürülür (URL ve veritabanı anahtarlarında alt çizgi, düz metinde boşluklar). 0x80..0xFF aralığındaki "genişletilmiş" karakterlere her yerde izin verilir ve bunlar geçerli karakterlerdir. URL'lerde kodlanmıştır. Genişletilmiş karakterler, metin veya veritabanı anahtarları olarak kullanıldığında urlencoded değildir. Diğer karakterler ASCII harfleri, rakamları, tire, virgül, nokta, kesme işareti, parantez ve iki nokta üst üste olabilir. Başka hiçbir ASCII karakterine izin verilmez ve bulunursa silinir (muhtemelen bir tarayıcının URL'yi yanlış yorumlamasına neden olurlar).
Kanonik formlar
Bir başlığın kanonik biçimi her zaman nesne tarafından döndürülür. Kanonikleştirme aşağıdakileri içerir:
- Bazı Unicode yönlü karakterler (soldan sağa işareti vb.) çıkarılır, çünkü bu genellikle hatalı kopyala ve yapıştır işleminden kaynaklanır.
- Bölüm bağlantıları için kullanıldığı için
#
üzerinden sonraki her şey çıkarılır. - Alt çizgi dizileri ve/veya belirli boşluk karakterleri, tek bir alt çizgi (URL ve DBkey formları için) veya tek bir boşluk (metin formu için) halinde daraltılır. Başlığın (veya ad alanının veya vikiarası önekinin) başında veya sonunda, bunlar çıkarılır.
- Tanınan vikiarası önekleri standartlaştırılmıştır, yani tamamen küçük harfle yazılmıştır.
- Tanınan ad alanı adları standartlaştırılmıştır, yani ilk karakter büyük harfle yazılır ve sonraki karakterler küçük harfle yazılır. (Ancak bu, vikiarası bağlantıları için yapılmaz.)
- Vikiye ve ad alanına bağlı olarak, bir başlığın ilk karakteri büyük harfle yazılabilir. (Ancak bu, vikiarası bağlantıları için yapılmaz.)
- Anonim kullanıcıların kullanıcı sayfalarına bağlantılar için IP adresi standartlaştırılmıştır.
- Kanonikleştirme süreci, çeşitli türden geçersiz başlıkları (çok uzun olanlar veya geçersiz karakterler içerenler gibi) reddetmek için bazı doğrulama mantığı da içerir.
MediaWikiTitleCodec Sınıfı için Diyagramlar
MediaWiki sayfa başlıkları için bir codec bileşeni: [code link]
Örnek
Belirli bir sayfanın zaten mevcut olup olmadığını kontrol etmek ve görmek için:
$titleObject = Title::newFromText( 'Talk:Your desired title here' );
if ( !$titleObject->exists() ) echo "There is no page with that name.";
Bir bağlantıda ne bulacağı gibi metinden yeni bir Başlık oluşturun. Metindeki tüm HTML varlıklarının kodunu çözer. Boşluklar, önekler ve ana ad alanını belirten bir baş harf ':' kabul edilir. Sayfa yoksa, bunun onu oluşturmayacağını unutmayın. Bunun için Manual:Article.php sayfasına bakın.
İşlevler
Bu işlevlerin çoğu Manual:CoreParserFunctions.php tarafından sihirli kelimeleri oluşturmak için kullanılır.
getArticleID()
Bu Başlık için madde kimliğini bağlantı önbelleğinden alın ve gerekirse ekleyin.
"Dahili" maddeler için, makale mevcutsa "page_id" alanını döndürmelidir, madde takdirde 0 döndürür.
Tüm harici makaleler için 0 döndürür. Bir istek sırasında oluşturulan tüm Başlık örneklerinin tüm kimlikleri önbelleğe alınır, böylece çok sayıda dahili bağlantı içeren vikimetin oluşturulurken hızlı bir şekilde aranabilir.
getBaseText()
Boşlukları alt çizgilere dönüştürmeden temel sayfa adını, yani ad alanı hariç en soldaki kısım ve eğik çizgilerden önce alın. {{BASEPAGENAME }} ve {{BASEPAGENAMEE }} sihirli kelimelerine bakın.
getText()
Ana bölümün metin biçimini (alt çizgi olmayan boşluklar), yani ad alanı hariç, ancak eğik çizgi ve sonraki her şeyi içeren başlığı alır. {{PAGENAME }} sihirli kelimesine bakın.
getDBKey()
Alt çizgili ana bölümü (yani ad alanı hariç başlık) alın.
getPrefixedDBKey()
Alt çizgili önekli veritabanı anahtarı formunu alın.
getFragment()
Başlık parçasını (yani # işaretinden sonraki bit) metin biçiminde alın.
getFullText()
Boşluklarla birlikte önekli başlığı ve herhangi bir parçayı ('#' ile başlayan kısım) alın.
getPartialURL()
Ana parçanın URL kodlu biçimini alın. {{PAGENAMEE }} sihirli kelimesine bakın.
getFullURL()
Bu başlığa atıfta bulunan, vikiarası bağlantısı ve parçasıyla gerçek bir URL alın.
getLocalURL()
Parça veya sunucu adı olmayan bir URL alın.
getPrefixedText()
Boşluk içeren önekli başlığı alın. Bu, genellikle görüntüleme için kullanılan formdur. {{FULLPAGENAME }} sihirli kelimesine bakın.
getPrefixedUrl()
Vikiarası dahil, URL kodlu bir başlık (gerçek bir URL değil) alın. {{FULLPAGENAMEE }} sihirli kelimesine bakın.
getSubjectNsText()
Konu sayfasının (tartışma yerine) ad alanı metnini alın. {{SUBJECTSPACE }} ve {{SUBJECTSPACEE }} sihirli kelimelerine bakın.
getSubjectPage()
Bu tartışma sayfasının konu sayfasıyla ilişkili bir başlık nesnesi alın. {{SUBJECTPAGENAME }} sihirli kelimesine bakın.
getSubpageText()
En düşük düzeydeki alt sayfa adını, yani herhangi bir bölü çizgisinden sonra en sağdaki kısmı alın. {{SUBPAGENAME }} sihirli kelimesine bakın.
getSubpageUrlForm()
Alt sayfa metninin URL kodlu bir biçimini alın. {{SUBPAGENAMEE }} sihirli kelimesine bakın.
getTalkNsText()
Tartışma sayfasının ad alanı metnini alın. {{TALKSPACE }} ve {{TALKSPACEE }} sihirli kelimelerine bakın.
getTalkPage()
Bu maddenin tartışma sayfasıyla ilişkili bir Title nesnesi alın. {{TALKPAGENAME }} ve {{TALKPAGENAMEE }} bakın.
getNamespace()
Ad alanı dizinini alın. {{NAMESPACENUMBER }} bakın.
Ayrıca bakınız
- Manual:$wgLegalTitleChars
- Manual:TitleValue.php
- Manual:Modeling pages
- Help:Kötü başlık
- Category:MediaWiki hooks included in Title.php
Kaynakça
- ↑ Değişken, bir const nesnesinin bile bu değişkeni değiştirebileceğini söyleyen normun anahtar kelimesidir. Değişken bir özellik özel veya herkese açık olabilir. Nesne sabit bir bağlamda olsa bile her zaman değiştirilebilir.
- ↑ Mutatör, bir veya daha fazla nesne özel değişkenini dışarıdan değiştirebilen bir üye işlevinin genel adıdır. Özel olarak ayarlamak işe yaramaz.