WP Manifestindependent plugin directory
manifest / content / wordpress-aylik-yemek-listesi

Aylık Yemek Listesi

Aylık Yemek listesi oluşturup ilgili sayfalara embed ile yerleştirebilirsiniz. Değerlendirme modülü vardır.

★ 0stars

Install

Download source zip No release zip yet

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.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WordPress 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

  1. Bu repository'yi klonlayın veya ZIP olarak indirin
  2. aylik-yemek-listesi klasörünü WordPress'in wp-content/plugins/ klasörüne kopyalayın
  3. WordPress admin paneline giriş yapın
  4. Eklentiler > Yüklü Eklentiler sayfasına gidin
  5. 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 tablosu
  • wp_wm_yemek_rate: Kullanıcı değerlendirmeleri tablosu
  • wp_wm_yemek_rate_criteria: Değerlendirme kriterleri tablosu

4. Taksonomiler

Eklenti aşağıdaki özel taksonomileri oluşturur:

  • wm_yemek_lokasyon: Lokasyon taksonomisi
  • wm_yemek_vakitleri: Yemek vakitleri taksonomisi
  • wm_yemek_etiket: Etiket taksonomisi
  • wm_yemek_ozel_gun: Özel günler taksonomisi
  • wm_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ği
  • height: 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:

  1. Tema'nızın style.css dosyasına özel CSS ekleyin
  2. 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

  1. Composer bağımlılıklarının yüklü olduğundan emin olun
  2. PHP'nin zip ve xml extension'larının aktif olduğunu kontrol edin
  3. Sunucu loglarını kontrol edin

Değerlendirme Butonları Görünmüyor

  1. Ayarlar > Değerlendirme Sistemi'nin aktif olduğunu kontrol edin
  2. JavaScript hatalarını kontrol edin (tarayıcı konsolu)
  3. Cache'i temizleyin

Shortcode Çalışmıyor

  1. Eklentinin aktif olduğundan emin olun
  2. Shortcode syntax'ını kontrol edin
  3. Tema'nın shortcode'ları desteklediğinden emin olun

Veritabanı Hatası

  1. WordPress veritabanı kullanıcısının yeterli yetkilere sahip olduğundan emin olun
  2. Eklentiyi deaktif edip tekrar aktifleştirin (tablolar yeniden oluşturulur)
  3. wp_wm_yemek_listesi tablosunun 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

📄 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:

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. Pull Request açın

📞 Destek

Sorularınız için issue açabilirsiniz.

🔗 İlgili Kaynaklar