Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/burakcaylak/wordpress-aylik-yemek-listesi/archive/refs/heads/main.zipWordPress Aylık Yemek Listesi Eklentisi
Aylık yemek listesi yönetimi, değerlendirme ve raporlama sistemi. Lokasyon, vakit, etiket ve özel gün yönetimi ile kullanıcı değerlendirmeleri ve detaylı raporlama özellikleri sunar. CSV ve Excel formatlarında veri export desteği içerir.
🚀 Özellikler
📅 Yemek Listesi Yönetimi
- ✅ Çoklu Görünümler: Aylık, haftalık, yıllık ve günlük görünümler
- ✅ Lokasyon Yönetimi: Birden fazla lokasyon için yemek listesi yönetimi
- ✅ Vakit Yönetimi: Farklı yemek vakitleri (kahvaltı, öğle, akşam vb.)
- ✅ Özel Günler: Tatil ve özel günler için özel içerik yönetimi
- ✅ Etiket Sistemi: Yemekleri kategorize etmek için etiket desteği
- ✅ Yıllık Editör: Tüm yıl için toplu düzenleme imkanı
⭐ Değerlendirme Sistemi
- ✅ Kullanıcı Değerlendirmeleri: Kullanıcılar yemekleri değerlendirebilir
- ✅ Çoklu Kriter: Özelleştirilebilir değerlendirme kriterleri (sıcaklık, hizmet, lezzet vb.)
- ✅ Yemek Bazlı Oylama: Her yemek için ayrı değerlendirme
- ✅ Özel Gün Değerlendirmesi: Özel günler için özel değerlendirme sistemi
- ✅ Yorum Desteği: Değerlendirmelere yorum ekleme
- ✅ Oylama Saati Kontrolü: Belirli saatlerde oylama başlatma
- ✅ Giriş Gereksinimi: İsteğe bağlı kullanıcı girişi zorunluluğu
📊 Raporlama ve Analiz
- ✅ Detaylı Raporlar: Chart.js ile görsel raporlar
- ✅ CSV Export: Verileri CSV formatında dışa aktarma
- ✅ Excel Export: PhpSpreadsheet ile Excel formatında export
- ✅ Dashboard Widget: WordPress dashboard'da özet istatistikler
- ✅ Filtreleme: Tarih, lokasyon, vakit bazlı filtreleme
🎨 Frontend Özellikleri
- ✅ Shortcode Desteği:
[wm_yemek]ve[wmyl_embed]shortcode'ları - ✅ Responsive Tasarım: Mobil uyumlu arayüz
- ✅ AJAX Navigasyon: Sayfa yenilenmeden görünüm değiştirme
- ✅ Embed Desteği: Iframe ile başka sitelere entegrasyon
- ✅ Dinamik Yükseklik: Embed iframe'ler için otomatik yükseklik ayarlama
🔌 API ve Entegrasyon
- ✅ REST API: RESTful API desteği
- ✅ AJAX Endpoints: Frontend için AJAX endpoint'leri
- ✅ Cache Sistemi: Performans için WordPress cache entegrasyonu
📋 Gereksinimler
- WordPress 5.0 veya üzeri
- PHP 7.4 veya üzeri
- MySQL 5.6 veya üzeri
- Composer (bağımlılıklar için)
🔧 Kurulum
1. Composer Bağımlılıklarını Yükleyin
cd aylik-yemek-listesi
composer install
Bu komut, PhpSpreadsheet kütüphanesini ve diğer bağımlılıkları yükleyecektir.
2. Eklentiyi Yükleyin
- Bu repository'yi klonlayın veya ZIP olarak indirin
aylik-yemek-listesiklasörünü WordPress'inwp-content/plugins/klasörüne kopyalayın- WordPress admin paneline giriş yapın
- Eklentiler > Yüklü Eklentiler sayfasına gidin
- Aylık Yemek Listesi eklentisini aktifleştirin
3. Veritabanı Tabloları
Eklenti aktifleştirildiğinde otomatik olarak gerekli veritabanı tabloları oluşturulur:
wp_wm_yemek_listesi: Ana yemek listesi tablosuwp_wm_yemek_rate: Kullanıcı değerlendirmeleri tablosuwp_wm_yemek_rate_criteria: Değerlendirme kriterleri tablosu
4. Taksonomiler
Eklenti aşağıdaki özel taksonomileri oluşturur:
wm_yemek_lokasyon: Lokasyon taksonomisiwm_yemek_vakitleri: Yemek vakitleri taksonomisiwm_yemek_etiket: Etiket taksonomisiwm_yemek_ozel_gun: Özel günler taksonomisiwm_yemek_tatil: Tatil günleri taksonomisi
📖 Kullanım
Shortcode Kullanımı
Temel Kullanım
[wm_yemek]
Parametreler
[wm_yemek view="month" y="2024" m="1" lok="gunesli" ogun="ogle"]
Parametreler:
view: Görünüm tipi (month,week,year,day)y: Yıl (örn:2024)m: Ay (1-12)lok: Lokasyon slug'ıogun: Yemek vakti slug'ıdate: Gün görünümü için tarih (YYYY-MM-DD formatında)weekstart: Hafta görünümü için hafta başlangıç tarihi (YYYY-MM-DD)
Örnekler
Aylık görünüm:
[wm_yemek view="month" y="2024" m="3"]
Haftalık görünüm:
[wm_yemek view="week" weekstart="2024-03-01"]
Yıllık görünüm:
[wm_yemek view="year" y="2024"]
Günlük görünüm:
[wm_yemek view="day" date="2024-03-15"]
Embed Shortcode
Başka sitelere veya iframe içinde gömme için:
[wmyl_embed view="month" y="2024" m="3" lok="gunesli" ogun="ogle" iframe="1" width="100%" height="600"]
Parametreler:
iframe: Iframe kullanımı (1 veya 0)width: Iframe genişliğiheight: Iframe yüksekliği (day, week, month için otomatik)
Admin Paneli
Yemek Listeleri
Yemek Listeleri > Listeler menüsünden:
- Aylık grid görünümü
- Lokasyon ve vakit filtreleme
- Hızlı düzenleme
Yıllık Editör
Yemek Listeleri > Yıllık Editör menüsünden:
- Tüm yıl için toplu düzenleme
- Hızlı kopyalama ve yapıştırma
- Toplu işlemler
Taksonomi Yönetimi
Yemek Listeleri altında:
- Lokasyonlar: Lokasyon ekleme/düzenleme
- Vakitler: Yemek vakitleri yönetimi
- Etiketler: Etiket yönetimi
- Özel Günler: Özel gün tanımlama
- Tatiller: Tatil günleri yönetimi
Her taksonomi için:
- Resim yükleme
- Sıralama (wm_order meta)
- Açıklama ve notlar
Değerlendirmeler
Yemek Listeleri > Değerlendirmeler menüsünden:
- Tüm değerlendirmeleri görüntüleme
- Filtreleme ve arama
- Detaylı görüntüleme
Raporlar
Yemek Listeleri > Raporlar menüsünden:
- Grafiksel raporlar (Chart.js)
- Tarih aralığı seçimi
- Lokasyon ve vakit filtreleme
- CSV ve Excel export
Ayarlar
Yemek Listeleri > Ayarlar menüsünden:
- Değerlendirme sistemi ayarları
- Kriter yönetimi
- Oylama saatleri
- Embed oluşturucu
🎨 Özelleştirme
CSS Özelleştirme
Eklenti kendi CSS dosyalarını yükler. Özelleştirmek için:
- Tema'nızın
style.cssdosyasına özel CSS ekleyin - Veya child theme kullanın
CSS Sınıfları:
.wmyl-month-grid: Aylık grid container.wmyl-week-grid: Haftalık grid container.wmyl-year-grid: Yıllık grid container.wmyl-day: Gün hücresi.wmyl-menu: Yemek menüsü.wmyl-rate-btn: Değerlendirme butonu
JavaScript Hook'ları
Eklenti, JavaScript hook'ları sağlar:
// Değerlendirme modalı açıldığında
jQuery(document).on('wmyl:rate:open', function(e, data) {
console.log('Değerlendirme açıldı', data);
});
// Değerlendirme kaydedildiğinde
jQuery(document).on('wmyl:rate:saved', function(e, data) {
console.log('Değerlendirme kaydedildi', data);
});
📁 Klasör Yapısı
aylik-yemek-listesi/
├── admin/ # Admin panel dosyaları
│ ├── menu.php # Admin menü yapısı
│ ├── admin-listeler.php # Liste ekranı (ay grid)
│ ├── admin-yillik.php # Yıllık editör
│ └── admin-ayarlar.php # Ayarlar sayfası
├── assets/ # CSS, JS ve görseller
│ ├── css/
│ │ ├── admin.css # Admin temel stilleri
│ │ ├── admin-filters.css # Filtre bar stilleri
│ │ ├── admin-yillik.css # Yıllık editör stilleri
│ │ ├── admin-raporlar.css # Raporlar stilleri
│ │ ├── admin-degerlendirmeler.css
│ │ ├── frontend.css # Frontend stilleri
│ │ └── wmyl-rate.css # Değerlendirme stilleri
│ └── js/
│ ├── admin-yillik.js # Yıllık editör scripti
│ ├── admin-raporlar.js # Raporlar scripti
│ ├── admin-degerlendirmeler.js
│ ├── frontend.js # Frontend scripti
│ └── rate-frontend.js # Değerlendirme frontend
├── inc/ # Ana modüller
│ ├── rate/ # Değerlendirme modülleri
│ │ ├── db.php # Veritabanı işlemleri
│ │ ├── ajax.php # AJAX handler'ları
│ │ ├── frontend.php # Frontend değerlendirme
│ │ ├── reports.php # Raporlama
│ │ ├── export.php # CSV export
│ │ ├── export-excel.php # Excel export
│ │ ├── rest-api.php # REST API
│ │ └── security.php # Güvenlik
│ └── embed.php # Embed handler
├── modules/ # Modüller
│ ├── lokasyon.php # Lokasyon taksonomisi
│ ├── vakit.php # Vakit taksonomisi
│ ├── etiket.php # Etiket taksonomisi
│ ├── ozel-gun.php # Özel gün taksonomisi
│ └── shortcode.php # Shortcode handler
├── vendor/ # Composer bağımlılıkları
│ └── phpoffice/phpspreadsheet/
├── composer.json # Composer yapılandırması
├── wm-yemek-listesi.php # Ana eklenti dosyası
└── README.md # Bu dosya
🔒 Güvenlik
- ✅ Nonce kontrolü ile CSRF koruması
- ✅ Veri sanitizasyonu ve doğrulama
- ✅ SQL injection koruması (prepared statements)
- ✅ XSS koruması (WordPress sanitize fonksiyonları)
- ✅ Capability kontrolü (admin işlemleri için)
- ✅ Rate limiting (oylama için throttle)
🌐 Çoklu Dil Desteği
Eklenti çoklu dil desteği için hazırlanmıştır. Text domain: wm-yemek-listesi
Dil dosyalarını languages/ klasörüne ekleyin veya Loco Translate gibi bir eklenti kullanın.
🐛 Sorun Giderme
Composer Bağımlılıkları Yüklenmiyor
cd wp-content/plugins/aylik-yemek-listesi
composer install --no-dev
Excel Export Çalışmıyor
- Composer bağımlılıklarının yüklü olduğundan emin olun
- PHP'nin
zipvexmlextension'larının aktif olduğunu kontrol edin - Sunucu loglarını kontrol edin
Değerlendirme Butonları Görünmüyor
- Ayarlar > Değerlendirme Sistemi'nin aktif olduğunu kontrol edin
- JavaScript hatalarını kontrol edin (tarayıcı konsolu)
- Cache'i temizleyin
Shortcode Çalışmıyor
- Eklentinin aktif olduğundan emin olun
- Shortcode syntax'ını kontrol edin
- Tema'nın shortcode'ları desteklediğinden emin olun
Veritabanı Hatası
- WordPress veritabanı kullanıcısının yeterli yetkilere sahip olduğundan emin olun
- Eklentiyi deaktif edip tekrar aktifleştirin (tablolar yeniden oluşturulur)
wp_wm_yemek_listesitablosunun var olduğunu kontrol edin
📝 Changelog
1.0.0
- İlk sürüm
- Aylık, haftalık, yıllık ve günlük görünümler
- Lokasyon, vakit, etiket ve özel gün yönetimi
- Kullanıcı değerlendirme sistemi
- Raporlama ve analiz
- CSV ve Excel export
- REST API desteği
- Embed desteği
- Dashboard widget
👤 Yazar
Ahmet Burak Çaylak
- Website: https://www.burakcaylak.com/
📄 Lisans
Bu proje GPL v2 veya üzeri lisansı altında lisanslanmıştır.
🤝 Katkıda Bulunma
Katkılarınızı bekliyoruz! Lütfen pull request göndermeden önce:
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request açın
📞 Destek
Sorularınız için issue açabilirsiniz.