2011-06-28 18 views
8

Herkes, olayların saklanmasını, alınmasını ve kaldırılmasını sağlayan açık kaynaklı PHP takvim sınıfını biliyor mu?Yinelenen etkinliklere sahip PHP takvim

Her yere baktım ve bulabildiğim şey, bir takvim için HMTL çıktısını oluşturacak ancak gerçek takvim olaylarını yönetmeyecek sınıflar.

Google Takvim'i, üzerinde çalıştığım proje takvimi herkesin erişimine açık hale getirmeme ve çevrimdışı çalışmasına izin vermemek için kullanamıyorum.

Bu sorunun binlerce kez daha önce sorulduğunu biliyorum, ama asla tam bir cevapla karşılaşmadım.

GÜNCELLEME :: GÜNCELLEŞTİRME :: Bu takvim ticari bir uygulamada kullanılacaktır, ancak maalesef, şu anda tüm yazılım lisanslarını satın almak için gereken finansmana sahip olamayız, böylece tüm üçüncü taraf komut dosyalarının dağıtımı için ücretsiz olması gerekir. ticari uygulama

Teşekkür

+0

Google Calendars herkese açık olarak sunulabilir – Alex

+0

Üzgünüz, Google Takvim'i üzerinde çalıştığım takvim olarak herkese açık ve net olarak görünmemesi gerektiğini belirtti. –

cevap

5

bağlanmasına izin PHP kütüphaneleri vardır, benzer bir meydan okuma oldu. Ayrıca, takvim öğeleri olmayan etkinlikleri, ancak eylem planlarından çıkan öğeleri göstermek istedik.

JSON beslemesini besleyen PHP programlamasıyla birlikte Full Calander'u kullandık. Tam Takvim ayrıca, bizim durumumuzda, veritabanını düzenleyen PHP Programlama için Ajax yayınını tetikleyen birçok etkinlik hooksu sağlar.

Biraz daha detaylı: Örneğin, daha sonra

$('#calendar').fullCalendar({ 
    events: '/pl_feed.php' 
}); 

Tam Takvim ziyaretleri:

Biz Tam Takvim diyoruz

/pl_feed.php?start=1262332800&end=1265011200&_=1263178646 

(ekstra parametre önbelleğe almasını önlemek için kullanılır)

pl_feed.php, Calend'de görüntülenen olayları oluşturur ar. Bu arada: David Powers Date Class'ın (kitabını okudu: iyisi) çalışmanın neşesi olduğunu buldum. Sen yayıncı sitesinden indirebilirsiniz: o pl_feed.php çok boyutlu dizide koyar ve json_encode ile dizi yankıları, istenen etkinlik oluşturmayı bitti http://www.apress.com/9781430210115

:

foreach ($array_events as $array_event) { 

     $array_feed_item['id'] = $array_event['id']; 
     $array_feed_item['title'] = //Whatever you like to be the title; 
     $array_feed_item['start'] = $array_event['start']; //Y-m-d H:i:s format 
     $array_feed_item['end'] = $array_event['end']; //Y-m-d H:i:s format 
     $array_feed_item['allDay'] = 0; 
     $array_feed_item['color'] = 'blue'; //Whatever you like, of course 
     $array_feed_item['borderColor'] = 'blue'; 
     //You can also a CSS class: 
     $array_feed_item['className'] = 'pl_act_rood'; 

     //Add this event to the full list of events: 
     $array_feed_items[] = $array_feed_item; 
    } 

    echo json_encode($array_feed_items); 

Tam Takvim size /pl_feed.php tarafından oluşturulan etkinlikleri gösterir.

Bu yardımcı olur umarım.

+0

Ayrıca FullCalendar kullanmak için arıyorum ama yinelenen olayları düzgün çalışıyoruz alamıyorum. Komut dosyası buna uygun mu? –

+0

PHP ile oluşturduğum JSON-feed'i, tekrarlayan olayları üretir, FullCalandar'ın kendisi değil. Ve bu olayları görünümde küçük bir fark vermek kolaydır, böylece kullanıcının yinelenen bir etkinlik olduğu açıktır. – Rick

+0

Oluşturduğunuz senaryoyu paylaşma şansınız var mı? –

0

Etkinliklerinizi yönetmek için google gdata API'yı kullanabilirsiniz. Harika tekrarlanan etkinlik desteği var.

Ayrıca, etkinliklerinizin herkese açık olmadığını belirten özel etkinlikler özelliği de vardır. Zend framework tarafından da desteklenmektedir -

+0

Yorumunuz için teşekkürler aporat ama maalesef google takvimi yok Bu proje için bir seçenek. Başka açık kaynaklı takvim kütüphaneleri biliyor musunuz? –

1

Uygulamanızı sadece CalDAV gibi bir protokol ile çalıştırmanızı öneririz. Ardından, uygulamanızın kullanıcılarının kendi takvim depolama alanlarını sunmasına izin verebilirsiniz. Bazı kullanıcılar Google Takvim’i kullanmayı seçebilir. Bazı kullanıcılar mevcut bir Apple iCal sunucusuna sahip olabilir. Bazı kullanıcılar bunun için kendi sunucularını kurabilir.

Tamamlanması için (ve yeni kullanıcıların başlamasını kolaylaştırmak için), ör. Henüz bir takvim hizmeti olmayanlar için varsayılan bir çözüm olarak DAViCal (PHP, açık kaynak).

kolayca Şu anda üzerinde çalışıyorum projede bir CalDAV sunucusuna gibi iCalCreator ve iCal Maker

+0

Bu yaklaşımın esnekliğini yaşıyorum ancak DAViCal sadece PostgreSQL ile çalışıyor gibi görünüyor. Bir mysql varyantı biliyor musunuz? –

+0

@James: DAViCal, MySQL, SQLite ve diğer veritabanı arka uçlarına izin verecek bir PDO tabanlı veritabanı erişim katmanına geçiyor. Belki yardım edebilirsin? –