xPages — XOOPS Statik Sayfa Yönetim Modülü
xPages, XOOPS için geliştirilmiş gelişmiş bir statik sayfa yönetim modülüdür.Standart XOOPS sayfa modüllerinin çok ötesine geçen özellikler sunar: her sayfaya özgü ilave alanlar, resim galerisi, SEO araçları, yorum sistemi, arama entegrasyonu ve kapsamlı bir yönetim paneli ile içerik yöneticilerine tam kontrol sağlar.
TEMEL ÖZELLİKLER
Sayfalar başlık, kısa açıklama, tam içerik (HTML editör), durum (aktif/pasif), sıra numarası ve üst sayfa (parent) alanlarıyla yönetilir. Hiyerarşik yapı sayesinde ana sayfa ve alt sayfa ilişkisi kurulabilir. Her sayfanın menüde ve navigasyonda görünüp görünmeyeceği ayrı ayrı kontrol edilir. Ziyaret sayacı (hits) otomatik olarak takip edilir. Sayfalar için SEO dostu alias (kısa URL) desteği bulunur, 301 yönlendirme URL'si de tanımlanabilir.
İlave Alanlar (Custom Fields)
Modülün en güçlü özelliği, her sayfaya veya tüm sayfalara küresel olarak uygulanabilen özel alan sistemidir. Desteklenen alan tipleri şunlardır:
- Text : Tek satırlık metin girişi
- Textarea : Çok satırlı metin alanı
- E-mail : E-posta adresi (format doğrulamalı)
- URL : Web adresi (otomatik protokol normalleşmesi)
- Tel : Telefon numarası
- Number : Sayısal değer
- Checkbox : Evet/Hayır işaret kutusu
- Radio : Tek seçimli radyo düğmesi grubu
- Select : Açılır seçim listesi (dropdown)
- File/Image : Dosya veya resim yükleme (JPG, PNG, GIF, WEBP, PDF, DOC, ZIP)
Her alan için şu özellikler tanımlanır: alan adı (template'de kullanılacak makine adı), etiket (ekranda görünecek başlık), açıklama, zorunluluk durumu, sıra numarası, varsayılan değer ve şablonda gösterilip gösterilmeyeceği.
Alan kapsamı iki türlüdür: page_id = 0 olarak kaydedilen alanlar tüm sayfalarda "global" olarak geçerlidir; belirli bir page_id ile kaydedilen alanlar yalnızca o sayfaya aittir.
Resim Galerisi
Her sayfaya birden fazla resim eklenebilir. Resimler başlık ve açıklama metniyle birlikte yönetilir, sıralama sürükle-bırak ile yapılır. Ön yüzde LightGallery 2 kütüphanesi entegre olarak gelir; ziyaretçiler resim kutusuna tıkladıklarında büyütme, küçük resim şeridi ve klavye navigasyonu ile tam ekran galeri deneyimi yaşar. Resimler sunucuya yüklenerek veya harici URL ile eklenebilir.
SEO Araçları
Her sayfa için ayrı meta başlık (meta title), meta açıklama ve meta anahtar kelime tanımlanabilir. Noindex ve Nofollow bayrakları sayfa bazında ayarlanır. Alias alanı ile SEO dostu kısa URL oluşturulur. Yönlendirme URL'si girildiğinde modül 301 yönlendirmesi yapar.
Yorum Sistemi
XOOPS'un yerleşik yorum motoru entegre edilmiştir. Modül yapılandırmasından yorumlar etkinleştirildiğinde, sayfaların altında standart XOOPS yorum formu ve yorum listesi otomatik olarak görüntülenir.
Arama Entegrasyonu
XOOPS arama altyapısına bağlıdır. Kullanıcılar site genelinde arama yaptığında xPages sayfalarının başlık ve içerikleri de sonuçlarda yer alır.
Bloklar
Son Sayfalar Bloğu: Yönetim panelinden kaç sayfa gösterileceği ve kısa açıklamanın görünüp görünmeyeceği ayarlanabilir. Sayfaları güncelleme tarihine göre azalan sırada listeler.
Sayfa Menüsü Bloğu: Hiyerarşik sayfa yapısını iki kademeli menü olarak gösterir. Ana sayfalar ve varsa alt sayfaları iç içe liste halinde sunar.
Yönetim Paneli
XMF Module Admin uyumlu yönetim arayüzü istatistik kartları (toplam sayfa, aktif sayfa, ilave alan sayısı, galeri resim sayısı), son eklenen sayfalar widgeti, en çok okunan sayfalar widgeti, aylık sayfa istatistikleri grafiği (Chart.js) ve hızlı eylem butonları içerir.
Çok Dil Desteği
Türkçe ve İngilizce dil dosyaları hazır olarak gelir.
VERİTABANI YAPISI
-----------------
xpages_pages : Sayfa içerikleri ve meta bilgileri
xpages_fields : İlave alan tanımları
xpages_field_values : İlave alanlara girilen değerler (sayfa bazında)
xpages_gallery : Galeri resimleri
ŞABLON SİSTEMİ VE İLAVE ALAN KULLANIMI
---------------------------------------
xPages Smarty şablon sınırlayıcısı olarak <{ }> kullanır (XOOPS varsayılanı).
--- xpages_page.tpl (Tekil Sayfa Şablonu) ---
Tekil sayfada kullanılabilecek ana değişken $xpages_page dizisidir.
Temel değişkenler:
<{$xpages_page.title}> Sayfa başlığı
<{$xpages_page.body nofilter}> Tam içerik (HTML, filtresiz basılmalı)
<{$xpages_page.short_desc}> Kısa açıklama
<{$xpages_page.hits}> Görüntülenme sayısı
<{$xpages_page.update_date|date_format:"%d.%m.%Y"}> Son güncelleme tarihi <{$xpages_page.extra_fields.alan_adi.value}> <{$xpages_page.extra_fields.emojiler.value}> .value Alanın değeri (metin, URL, dosya URL'si vs. tipine göre işlenmiş)
.field_label Alanın etiketi (yönetimde girilen başlık)
.field_type Alan tipi (text, select, file, url, email, checkbox, radio, ...)
.field_id Alan ID numarası
.show_in_tpl Şablonda gösterilecek mi (1/0)
.file_ext Yalnızca file tipinde: dosya uzantısı (jpg, pdf, zip, ...) File/Resim alanı:
<{if $xpages_page.extra_fields.kapak_resmi.file_ext == 'jpg'
|| $xpages_page.extra_fields.kapak_resmi.file_ext == 'png'}>
<img src="<{$xpages_page.extra_fields.kapak_resmi.value}>" alt="Kapak">
<{else}>
<a href="<{$xpages_page.extra_fields.kapak_resmi.value}>">Dosyayı İndira>
<{/if}>
URL alanı:
<a href="<{$xpages_page.extra_fields.web_sitesi.value}>" target="_blank">
<{$xpages_page.extra_fields.web_sitesi.value}>
a>
E-posta alanı:
<a href="mailto:<{$xpages_page.extra_fields.iletisim_mail.value}>">
<{$xpages_page.extra_fields.iletisim_mail.value}>
a>
Checkbox alanı:
<{if $xpages_page.extra_fields.onayli.value == '1'}>Onaylı<{else}>Onaysız<{/if}>
Select veya Radio alanı:
<{$xpages_page.extra_fields.kategori.value}>
(Yalnızca seçilen seçenek değeri döner, seçim listesinin tamamı değil.)
Textarea alanı:
<{$xpages_page.extra_fields.aciklama.value|nl2br nofilter}>
Tüm alanları ID ile döngüde listelemek (alan kimliği bilinmiyor veya dinamik
gösterim isteniyorsa):
<{foreach key=fid item=f from=$xpages_page.extra_fields_by_id}>
<{if $f.show_in_tpl && $f.value != ''}>
<strong><{$f.field_label}>:strong> <{$f.value}>
<{/if}>
<{/foreach}>
Galeri değişkeni:
<{foreach item=g from=$xpages_gallery}>
<img src="<{$g.image_url}>" alt="<{$g.title}>">
<p><{$g.title}> — <{$g.description}>p>
<{/foreach}> <{$p.title}> Sayfa başlığı
<{$p.page_url}> Sayfanın tam URL'si
<{$p.short_desc}> Kısa açıklama
<{$p.hits}> Görüntülenme sayısı
<{$p.update_date|date_format:"%d.%m.%Y"}> Son güncelleme tarihi <{foreach item=p from=$xpages_list}>
<{$p.title}>
<{$p.extra_fields.emojiler.value}>
<{$p.extra_fields.kategori.value}>
<{/foreach}> <{$p.extra_fields.emojiler.value}> ================================================================
xPages — XOOPS Statik Sayfa Yönetim Modülü
Geliştirici : Eren Yumak — Aymak (aymak.net)
Versiyon : 1.0.1
Lisans : GPL 2.0
Gereksinim : XOOPS 2.7.0 ve üzeri
================================================================
GİRİŞ
-----
xPages, XOOPS için geliştirilmiş gelişmiş bir statik sayfa yönetim modülüdür.
Standart XOOPS sayfa modüllerinin çok ötesine geçen özellikler sunar: her sayfaya
özgü ilave alanlar, resim galerisi, SEO araçları, yorum sistemi, arama entegrasyonu
ve kapsamlı bir yönetim paneli ile içerik yöneticilerine tam kontrol sağlar.
TEMEL ÖZELLİKLER
----------------
Sayfa Yönetimi
Sayfalar başlık, kısa açıklama, tam içerik (HTML editör), durum (aktif/pasif),
sıra numarası ve üst sayfa (parent) alanlarıyla yönetilir. Hiyerarşik yapı
sayesinde ana sayfa ve alt sayfa ilişkisi kurulabilir. Her sayfanın menüde ve
navigasyonda görünüp görünmeyeceği ayrı ayrı kontrol edilir. Ziyaret sayacı
(hits) otomatik olarak takip edilir. Sayfalar için SEO dostu alias (kısa URL)
desteği bulunur, 301 yönlendirme URL'si de tanımlanabilir.
İlave Alanlar (Custom Fields)
Modülün en güçlü özelliği, her sayfaya veya tüm sayfalara küresel olarak
uygulanabilen özel alan sistemidir. Desteklenen alan tipleri şunlardır:
- Text : Tek satırlık metin girişi
- Textarea : Çok satırlı metin alanı
- E-mail : E-posta adresi (format doğrulamalı)
- URL : Web adresi (otomatik protokol normalleşmesi)
- Tel : Telefon numarası
- Number : Sayısal değer
- Checkbox : Evet/Hayır işaret kutusu
- Radio : Tek seçimli radyo düğmesi grubu
- Select : Açılır seçim listesi (dropdown)
- File/Image : Dosya veya resim yükleme (JPG, PNG, GIF, WEBP, PDF, DOC, ZIP)
Her alan için şu özellikler tanımlanır: alan adı (template'de kullanılacak
makine adı), etiket (ekranda görünecek başlık), açıklama, zorunluluk durumu,
sıra numarası, varsayılan değer ve şablonda gösterilip gösterilmeyeceği.
Alan kapsamı iki türlüdür: page_id = 0 olarak kaydedilen alanlar tüm sayfalarda
"global" olarak geçerlidir; belirli bir page_id ile kaydedilen alanlar yalnızca
o sayfaya aittir.
Resim Galerisi
Her sayfaya birden fazla resim eklenebilir. Resimler başlık ve açıklama metniyle
birlikte yönetilir, sıralama sürükle-bırak ile yapılır. Ön yüzde LightGallery 2
kütüphanesi entegre olarak gelir; ziyaretçiler resim kutusuna tıkladıklarında
büyütme, küçük resim şeridi ve klavye navigasyonu ile tam ekran galeri deneyimi
yaşar. Resimler sunucuya yüklenerek veya harici URL ile eklenebilir.
SEO Araçları
Her sayfa için ayrı meta başlık (meta title), meta açıklama ve meta anahtar
kelime tanımlanabilir. Noindex ve Nofollow bayrakları sayfa bazında ayarlanır.
Alias alanı ile SEO dostu kısa URL oluşturulur. Yönlendirme URL'si girildiğinde
modül 301 yönlendirmesi yapar.
Yorum Sistemi
XOOPS'un yerleşik yorum motoru entegre edilmiştir. Modül yapılandırmasından
yorumlar etkinleştirildiğinde, sayfaların altında standart XOOPS yorum formu
ve yorum listesi otomatik olarak görüntülenir.
Arama Entegrasyonu
XOOPS arama altyapısına bağlıdır. Kullanıcılar site genelinde arama yaptığında
xPages sayfalarının başlık ve içerikleri de sonuçlarda yer alır.
Bloklar
Son Sayfalar Bloğu: Yönetim panelinden kaç sayfa gösterileceği ve kısa
açıklamanın görünüp görünmeyeceği ayarlanabilir. Sayfaları güncelleme
tarihine göre azalan sırada listeler.
Sayfa Menüsü Bloğu: Hiyerarşik sayfa yapısını iki kademeli menü olarak
gösterir. Ana sayfalar ve varsa alt sayfaları iç içe liste halinde sunar.
Yönetim Paneli
XMF Module Admin uyumlu yönetim arayüzü istatistik kartları (toplam sayfa,
aktif sayfa, ilave alan sayısı, galeri resim sayısı), son eklenen sayfalar
widgeti, en çok okunan sayfalar widgeti, aylık sayfa istatistikleri grafiği
(Chart.js) ve hızlı eylem butonları içerir.
Çok Dil Desteği
Türkçe ve İngilizce dil dosyaları hazır olarak gelir.
VERİTABANI YAPISI
-----------------
xpages_pages : Sayfa içerikleri ve meta bilgileri
xpages_fields : İlave alan tanımları
xpages_field_values : İlave alanlara girilen değerler (sayfa bazında)
xpages_gallery : Galeri resimleri
ŞABLON SİSTEMİ VE İLAVE ALAN KULLANIMI
---------------------------------------
xPages Smarty şablon sınırlayıcısı olarak <{ }> kullanır (XOOPS varsayılanı).
--- xpages_page.tpl (Tekil Sayfa Şablonu) ---
Tekil sayfada kullanılabilecek ana değişken $xpages_page dizisidir.
Temel değişkenler:
<{$xpages_page.title}> Sayfa başlığı
<{$xpages_page.body nofilter}> Tam içerik (HTML, filtresiz basılmalı)
<{$xpages_page.short_desc}> Kısa açıklama
<{$xpages_page.hits}> Görüntülenme sayısı
<{$xpages_page.update_date|date_format:"%d.%m.%Y"}> Son güncelleme tarihi
İlave alanlara alan adıyla erişim (en kolay yöntem):
<{$xpages_page.extra_fields.alan_adi.value}>
Örnek: "emojiler" adındaki select alanının seçili değerini basmak için:
<{$xpages_page.extra_fields.emojiler.value}>
Her alan için mevcut alt anahtarlar:
.value Alanın değeri (metin, URL, dosya URL'si vs. tipine göre işlenmiş)
.field_label Alanın etiketi (yönetimde girilen başlık)
.field_type Alan tipi (text, select, file, url, email, checkbox, radio, ...)
.field_id Alan ID numarası
.show_in_tpl Şablonda gösterilecek mi (1/0)
.file_ext Yalnızca file tipinde: dosya uzantısı (jpg, pdf, zip, ...)
Alan tipine göre özel kullanım örnekleri:
File/Resim alanı:
<{if $xpages_page.extra_fields.kapak_resmi.file_ext == 'jpg'
|| $xpages_page.extra_fields.kapak_resmi.file_ext == 'png'}>
<img src="<{$xpages_page.extra_fields.kapak_resmi.value}>" alt="Kapak">
<{else}>
<a href="<{$xpages_page.extra_fields.kapak_resmi.value}>">Dosyayı İndir</a>
<{/if}>
URL alanı:
<a href="<{$xpages_page.extra_fields.web_sitesi.value}>" target="_blank">
<{$xpages_page.extra_fields.web_sitesi.value}>
</a>
E-posta alanı:
<a href="mailto:<{$xpages_page.extra_fields.iletisim_mail.value}>">
<{$xpages_page.extra_fields.iletisim_mail.value}>
</a>
Checkbox alanı:
<{if $xpages_page.extra_fields.onayli.value == '1'}>Onaylı<{else}>Onaysız<{/if}>
Select veya Radio alanı:
<{$xpages_page.extra_fields.kategori.value}>
(Yalnızca seçilen seçenek değeri döner, seçim listesinin tamamı değil.)
Textarea alanı:
<{$xpages_page.extra_fields.aciklama.value|nl2br nofilter}>
Tüm alanları ID ile döngüde listelemek (alan kimliği bilinmiyor veya dinamik
gösterim isteniyorsa):
<{foreach key=fid item=f from=$xpages_page.extra_fields_by_id}>
<{if $f.show_in_tpl && $f.value != ''}>
<strong><{$f.field_label}>:</strong> <{$f.value}>
<{/if}>
<{/foreach}>
Galeri değişkeni:
<{foreach item=g from=$xpages_gallery}>
<img src="<{$g.image_url}>" alt="<{$g.title}>">
<p><{$g.title}> — <{$g.description}></p>
<{/foreach}>
--- xpages_index.tpl (Sayfa Listesi Şablonu) ---
Liste şablonunda $xpages_list dizisi üzerinden foreach döngüsü kurulur.
Döngü değişkeni $p ile her öğeye şu alanlar erişilebilir:
<{$p.title}> Sayfa başlığı
<{$p.page_url}> Sayfanın tam URL'si
<{$p.short_desc}> Kısa açıklama
<{$p.hits}> Görüntülenme sayısı
<{$p.update_date|date_format:"%d.%m.%Y"}> Son güncelleme tarihi
İlave alanlara erişim liste şablonunda da aynı sözdizimi ile çalışır:
<{foreach item=p from=$xpages_list}>
<{$p.title}>
<{$p.extra_fields.emojiler.value}>
<{$p.extra_fields.kategori.value}>
<{/foreach}>
UYARI: İlave alanları kullanırken foreach döngüsünün değişkenini (burada $p)
doğrudan kullanın. Ayrı bir iç foreach döngüsüyle $xpages_list'i tekrar
dolaşmak her satırda tüm sayfaların değerlerini üst üste basar.
Doğru kullanım:
<{$p.extra_fields.emojiler.value}>
Yanlış kullanım:
<{foreach item=page from=$xpages_list}>
<{$page.extra_fields.emojiler.value}> ← liste tekrar döner, yanlış!
<{/foreach}>
Sayfalama değişkenleri:
$xpages_total Toplam kayıt sayısı
$xpages_start Geçerli sayfalama başlangıcı
$xpages_limit Sayfa başına kayıt limiti
$xpages_module_url Modülün kök URL'si
--- xpages_block_recent.tpl (Son Sayfalar Bloğu) ---
<{foreach item=p from=$block.pages}>
<a href="<{$p.page_url}>"><{$p.title}></a>
<{if $block.show_desc}><{$p.short_desc|truncate:80}><{/if}>
<{/foreach}>
--- xpages_block_menu.tpl (Sayfa Menüsü Bloğu) ---
<{foreach item=p from=$block.pages}>
<a href="<{$p.page_url}>"><{$p.title}></a>
<{if $p.children}>
<{foreach item=c from=$p.children}>
<a href="<{$c.page_url}>"><{$c.title}></a>
<{/foreach}>
<{/if}>
<{/foreach}>
MODÜL YAPILANDIRMASI (Yönetim > Modül Ayarları)
-----------------------------------------------
Sayfa başına kayıt : Liste sayfasında kaç sayfa gösterileceği (varsayılan: 10)
Yorumlara izin ver : Sayfalarda yorum sistemi etkinleştirme (varsayılan: kapalı)
Meta anahtar kelimeler : Modül genelinde varsayılan meta keywords
Meta açıklama : Modül genelinde varsayılan meta description
Breadcrumb göster : Üst navigasyon çörüntüsü (varsayılan: açık)
Son güncelleme göster : Sayfa başlığı altında tarih (varsayılan: açık)
KURULUM
-------
1. xpages klasörünü XOOPS_ROOT/modules/ dizinine yükleyin.
2. XOOPS Yönetim > Modüller ekranından xPages'i kurun.
3. Yönetim panelinden sayfa ve ilave alan ekleyin.
4. Şablonları temanıza uygun biçimde düzenleyin.
================================================================
Geliştirici : Eren Yumak
Web : erenyumak.com
================================================================