- Konbuyu başlatan
- #21
Bir Görünümün Anatomisi
Views eklentisi asıl olarak SQL sorgularını görsel olarak oluşturmanızı sağlar. Örneğin Views kullanmadığınızda sitenizdeki en son yorumlanan içeriklerin bir listesini elde etmek için aşağıdaki gibi bir SQL sorgusu yazmanız gerekir.
Doğal olarak böyle bir sorguyu yazabilmek için SQL dilini biliyor olmalısınız. İşte Views bu zorunluluğu sunduğu görsel arayüz ile ortadan kaldırıyor. node_comment_statistics node_comment_statistics_last_comment_timestampGörünüm Yapısı
Her görünümün SQL dilinde yazılan bir karşılığı bulunur. Dolayısıyla Views, SQL dilindeki çeşitli komutları Views ortamında kullanabilmenizi sağlayan çeşitli yapılar sunar. Bu yapıları kısaca şöyle özetleyebiliriz:
Views eklentisi asıl olarak SQL sorgularını görsel olarak oluşturmanızı sağlar. Örneğin Views kullanmadığınızda sitenizdeki en son yorumlanan içeriklerin bir listesini elde etmek için aşağıdaki gibi bir SQL sorgusu yazmanız gerekir.
Kod:
SELECT node[COLOR=#339933].[/COLOR]nid [COLOR=#B1B100]AS[/COLOR] nid[COLOR=#339933],[/COLOR]
node[COLOR=#339933].[/COLOR]title [COLOR=#B1B100]AS[/COLOR] node_title[COLOR=#339933],[/COLOR]
node_comment_statistics[COLOR=#339933].[/COLOR]last_comment_timestamp [COLOR=#B1B100]AS[/COLOR]
FROM node node
LEFT [URL="http://www.php.net/join"][COLOR=#990000]JOIN[/COLOR][/URL] node_comment_statistics node_comment_statistics ON node[COLOR=#339933].[/COLOR]nid [COLOR=#339933]=[/COLOR][COLOR=#339933].[/COLOR]nid
WHERE [COLOR=#009900]([/COLOR]node_comment_statistics[COLOR=#339933].[/COLOR]comment_count [COLOR=#339933]>=[/COLOR] [COLOR=#CC66CC]1[/COLOR][COLOR=#009900])[/COLOR] AND [COLOR=#009900]([/COLOR]node[COLOR=#339933].[/COLOR]status [COLOR=#339933]<>[/COLOR] [COLOR=#800080]0[/COLOR] OR node[COLOR=#339933].[/COLOR]uid [COLOR=#339933]=[/COLOR] [COLOR=#339933]***[/COLOR]CURRENT_USER[COLOR=#339933]***[/COLOR] or [COLOR=#339933]***[/COLOR]ADMINISTER_NODES[COLOR=#339933]***[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#CC66CC]1[/COLOR][COLOR=#009900])[/COLOR]
ORDER BY node_comment_statistics_last_comment_timestamp DESC
Doğal olarak böyle bir sorguyu yazabilmek için SQL dilini biliyor olmalısınız. İşte Views bu zorunluluğu sunduğu görsel arayüz ile ortadan kaldırıyor. node_comment_statistics node_comment_statistics_last_comment_timestampGörünüm Yapısı
Her görünümün SQL dilinde yazılan bir karşılığı bulunur. Dolayısıyla Views, SQL dilindeki çeşitli komutları Views ortamında kullanabilmenizi sağlayan çeşitli yapılar sunar. Bu yapıları kısaca şöyle özetleyebiliriz:
- [1] Fields (tr: alan): SQL'deki SELECT'e karşılık gelir, oluşturulacak görünümde veritabanı tablolarından hangi alanların gösterileceğini belirtir. Örneğin düğümleri listeleyen bir görünüme Node: Title (Düğüm: Başlık), Node: Type (Düğüm: Tür), ve Node: Post date (Düğüm: Yazılma tarihi) alanları eklendiğinde, görünümün çıktısında yer alan her içerik için başlık, içerik türü ve yazılma tarihi bilgileri gösterilir. Bir görünüm için alan seçmek zorunlu değildir. Örneğin site anasayfasındaki gibi bir görünüm elde etmek için alanlar yerine düğüm özetleri kullanılır.
- [2] Relationships (tr: ilişki): İstediğiniz veriler veritabanındaki farklı tablolarda yer alıyorsa, bu tablolar arasında bir ilişki kurulması gerekir. Views eklentisi bazı temel sorgular için bu ilişkileri görünüm ekleme sayfasında göstermeden kendisi kurar. Örneğin düğüm (node) ve kullanıcı (user) tabloları arasındaki ilişki kendiliğinden eklenmektedir. Böylece düğümleri listelerken, düğümlerin yazarlarına ait bilgiler de listelenebilmektedir (bu bilgileri Fields bölümünden görünüme ekleyebilirsiniz). Genellikle çekirdekte olmayan eklentilere ait veritabanı tablolarına erişmek için gerekli ilişkileri sizin kurmanız gerekmektedir. Örneğin Fivestar eklentisi tabloları için Düğüm: Oylama Sonuçları ilişkisi gibi. Bu ilişkiler eklendiğinde Fields, Arguments, Sort Criteria kısımlarında görünüme ekleyebileceğiniz bazı yeni alanlar yer alacaktır.
- [3] Filters (tr: filtre, süzgeç): Filtreler SQL'deki WHERE'e karşılık gelir; tüm içerikler arasından hangilerini seçmek istediğinizi görünüme filtreler ekleyerek belirtirsiniz. Örneğin düğümleri listeleyen bir görünüme Node: Published (Düğüm: Yayında) filtresi ekleyerek sadece yayında olan içerikleri, Node: Type (Düğüm: Tür) filtresi ile sadece belirli bir türdeki içerikleri veya User: Current (Kullanıcı: Current) ile sadece oturum açmış olan kullanıcıya ait içerikleri listeletebilirsiniz.
- [4] Arguments (tr: değişken): Değişkenler dinamik filtreler olarak çalışırlar ve değerlerini genellikle görünümün yayınlandığı sayfanın URL'sinden alırlar. Örneğin sitenizin farklı sayfalarında farklı türlerdeki içerikleri listelemek istiyorsunuz. Bu durumda Node: Type (Düğüm: Tür) değişkenini kullandığınız görünüm, siteniz.com/kitap sayfasında sadece kitap içeriklerini ve siteniz.com/dizi sayfasında da sadece dizi içeriklerinizi gösterecektir.
- [5] Sort Criteria (tr: sıralama kriteri): SQL'deki ORDER BY'a karşılık gelir; içeriklerinizi hangi sırada listeleceğinizi tanımlar. Örneğin düğümleri listeleyen bir görünüme Node: Post date (desc) (Düğüm: Yazılma tarihi (azalan)) sıralama kriteri eklendiğinde, görünümün çıktısında yer alan içerikler en son yazılandan ilk yazılana doğru sıralanacaktır.
- [6] Display (tr: çıktı, görüntü): Bir görünümün çıktısı sayfa, blok veya RSS beslemesi olabilir. Her görünüm için bir adet varsayılan (ing: Default) görüntü tanımlıdır; burada görünümün diğer çıktıları için ortak olan ayarlar kaydedilmektedir. Çıktılar varsayılan görünümden farklı ayarlar kullanabilirler. Sayfa çıktısı içerik listesini tanımlanan adreste sunarken, blok çıktısı ise Blok yönetim sayfasından temanızın çeşitli bölgelerine yerleştirebileceğiniz bir blok oluşturur.
TurkHackTeam.Net/Org - The Cry 2011