Çoğu Cotonti betiği, tarihsel olarak bu şekilde inşa edildiği için global kapsamda çalışır. Bazı değişkenler, kodun birçok yerinde yaygın olarak görülebilir. Bu makale, en önemli global değişkenleri kapsar.
Not: Bu kılavuz, tema geliştiricileri için de faydalıdır. Bu global değişkenleri global şablon etiketleri olarak da kullanabilirsiniz. Tek yapmanız gereken, CoTemplate sözdizimini hatırlamaktır. Örneğin, bir şablonda
$usr['profile']['user_avatar']
değişkeni şu şekilde kullanılır:{PHP.usr.profile.user_avatar}
.
Sistemde bazı kancalar (hooks) sistem fonksiyonları içinde çalıştırıldığından, bazı uzantı dosyaları fonksiyon kapsamına dahil edilir. Bu nedenle, tarihsel olarak bazı sistem değişkenlerine erişmek için global
anahtar kelimesi kullanılmıştır. Ancak bu her zaman en iyi yöntem değildir. Bu yüzden Cot facade sınıfı tanıtılmıştır.
0.9.15 sürümünden itibaren, ($cfg, $usr, $db, $id, $structure vb.) gibi ana global değişkenlere artık cot
facade sınıfı aracılığıyla erişilebilir. Böylece global
anahtar kelimesini kullanmanıza gerek kalmaz, doğrudan cot
sınıfını kullanabilirsiniz. Örnek:
if ( cot::$cfg['plugin']['comments']['enabled'] ) { // bazı kodlar }
Facade içinde erişilebilen değişkenlerin tam listesi: $cache, $cfg, $cot_extrafields, $db, $db_x, $env, $L, $out, $R, $structure, $sys, $usr.
$usr
değişkeni, mevcut kullanıcıyı temsil eder ve diğer global değişkenler arasında en yaygın olarak kullanılanıdır.
Giriş yapmış kullanıcıları misafirlerden ayırmak için $usr['id'] değişkenini kontrol edebilirsiniz:
if ($usr['id'] > 0) { // Kullanıcı giriş yapmış } else { // Misafir kullanıcı }
Bu dizinin içerdiği standart anahtarlar şunlardır:
$usr['id']
- Kullanıcının veritabanındaki benzersiz kimlik numarası.$usr['name']
- Kullanıcının kullanıcı adı (giriş adı).$usr['maingrp']
- Kullanıcının ait olduğu ana grubun kimliği (gruplar tablosundaki grp_id
değeri).$usr['ip']
- Kullanıcının mevcut IP adresi.$usr['lang']
- Kullanıcının dil tercihi. Alternatif olarak, $lang
global değişkeni de bu değeri kısayol olarak tutar.$usr['theme']
- Kullanıcının tema tercihi.$usr['scheme']
- Kullanıcının renk şeması tercihi.$usr['timezone']
- Kullanıcının saat dilimi farkı (saat cinsinden).$usr['timezonename']
- Kullanıcının saat dilimi adı.$usr['lastvisit']
- Kullanıcının sitedeki son etkinlik zaman damgası.$usr['lastlog']
- Kullanıcının en son giriş yaptığı zaman damgası.$usr['level']
- Kullanıcının ana grubunun yetki seviyesi.$usr['profile']
- Kullanıcı tablosundaki tüm alanlara erişim sağlayan bir dizi. (Aşağıda açıklanmıştır.)$usr['profile']
dizisini kullanarak, kullanıcı profilindeki ham değerleri ve ekstra alanları (extra fields) alabilirsiniz. Bu alanlar 'user_'
ön eki ile birlikte gelir. Örneğin, standart olanlar şunlardır:
Örneğin, kullanıcılar tablosuna "first_name" adında bir ekstra alan eklediyseniz, buna şu şekilde erişebilirsiniz: $usr['profile']['user_first_name']
.
Mevcut isteğe göre kullanıcı başına görüntüleme ayarlarını içeren birkaç global değişken bulunmaktadır:
Tüm yapılandırma değişkenlerine $cfg
globali aracılığıyla erişilebilir. Aşağıdaki gibi bir hiyerarşiye sahiptir:
$env
dizisi, çalıştırılmakta olan mevcut uzantı (modül veya eklenti) ve isteğin durum bilgilerini içerir:
Bazı geçici sistem değişkenleri, farklı yerlerde kullanılır ve tekrar tekrar hesaplanması kaynak israfına yol açabilir. Bu tür değişkenler $sys
dizisinde bulunabilir. İşte bazı yaygın elemanlar:
Mevcut URL ve onun bölümlerini algılamaya yönelik değişkenler:
Bu değişkenler, birden fazla şablonda çıktı olarak kullanılmak üzere global etiketler oluşturmak için kullanılır. Bunlar $out
dizisi içinde toplanır. İşte bazı standart öğeler:
Yönetim panelinde / Yapı bölümünde yönetilen sitenin tüm kategori ağacına $structure
globali ile erişilebilir. Kullanım şekli:
$structure['module_name']['category_code']
Burada 'module_name' modülün kodudur (örneğin 'page') ve 'category_code' kategori kodudur (örneğin 'articles'). Döndürülen öğe aşağıdaki anahtarları içeren bir ilişkisel dizidir:
Ekstra yapı alanlarına $structure
globali üzerinden erişilebilir. Örneğin, 'specialty' adlı bir ekstra alan eklediyseniz, şu şekilde erişebilirsiniz:
$structure['module_name']['category_code']['specialty']
İki önemli global değişken daha bulunmaktadır:
Uzantı geliştiricileri için faydalı olabilecek diğer bazı global koleksiyonlar şunlardır:
/** * Kullanıcı grupları hakkında bilgi içerir. Bunu system/common.php dosyasında bulabilirsiniz. */ $cot_groups = array(); /** * Captcha fonksiyonları için kayıt. */ $cot_captcha = array(); /** * Hash fonksiyonları için kayıt. */ $cot_hash_funcs = array('md5', 'sha1', 'sha256'); /** * Özelleştirilmiş cot_import() filtre geri çağrıları dizisi. */ $cot_import_filters = array(); /** * Özelleştirilmiş e-posta gönderme geri çağrıları dizisi. */ $cot_mail_senders = array(); /** * Özelleştirilmiş parser (işleyici) fonksiyonları için kayıt. */ $cot_parsers = array(); /** * Mevcut istekte otomatik olarak tüm URL'lere eklenen parametreler. */ $cot_url_appendix = array(); /** * Yüklü (aktif) eklentilerin listesi. Anahtar, eklenti adı; değer, boolean (TRUE/FALSE). */ $cot_plugins_active = array(); /** * Yüklü (aktif) modüllerin listesi. Anahtar, modül adı; değer, boolean (TRUE/FALSE). */ $cot_modules = array();
Thanked: 181 kez
Thanks! Long time expected article.
Thanked: 7 kez
o_0