我是新的全日曆,所以我真的不確定在哪裏打破我的問題的代碼。可以全日曆創建一個多日事件作爲單獨的事件(事件peppers)每天
首先,全日曆是偉大的,哇什麼節省時間,偉大的工作! 其次,我使用保羅的修改版本的荷蘭人: 這裏下載:http://www.paulthedutchman.nl/portfolio/?mi=113
我需要看到多日的事件,多個事件在那些日子裏,而不是在默認情況下,周視圖,其中多天事件跨越事件設置日期的列高度。
最好把它想成這樣。 3天的工作是3個工作班次不同的細節。(..但真正的三個事件全日曆)
MON:1 of 3 | TUE:2/3 | WED:3之3
- 我不需要ID來堅持事件「件」,它們實際上是分開的事件。
- 我只是試圖幫助用戶在創建新事件時設置多個工作班次
- 爲什麼? =用戶可以有三個連續的工作days..but那麼一個班次/隊被感動,這就是爲什麼默認的事件行爲(和獨立的ID)是最好的解決辦法
我想象中的簡單的東西在服務器端代碼爲的addEvent函數會:
- 檢查開始結束日期,減去差值
PHP的「而」 $ I < =日期DIFF - 創建單獨的事件,只有名稱被傳遞
$ck_str= date("d",$frm_submitted['date_start']); $ck_end= date("d",$frm_submitted['date_end']); <br/> if($ck_str != $ck_end){ // are the day the same? if not do this $ck_diff = $ck_end - $ck_str; // subtract days for events needed $i = 1; while ($i <= $ck_diff) { // add event or modify array if already inside the add function // customize the name "Day1: Job Name" }}
最終結果,對具有相同名稱的
創建多事件可能不會是簡單?
這裏是保羅修改日曆的功能的addEvent:
function addEvent() {
global $error;
$arr_submit = array(
array('cal_id', 'int', false, ''),
array('color', 'varchar', false, ''),
array('date_end', 'int', false, ''),
array('date_start', 'int', false, ''),
array('title', 'varchar', false, ''),
array('location', 'varchar', false, ''),
array('description', 'varchar', false, ''),
array('cal_type', 'varchar', false, ''),
array('interval', 'varchar', false, ''),
array('weekdays', 'varchar', false, ''),
array('monthday', 'varchar', false, ''),
);
$frm_submitted = validate_var($arr_submit);
$frm_submitted['title'] = stripslashes($frm_submitted['title']);
$frm_submitted['cal_id'] = 1; // for this test there is only one calendar
// time offset
$frm_submitted['date_start'] -= TIME_OFFSET;
if(empty($frm_submitted['date_end'])) {
$frm_submitted['date_end'] = $frm_submitted['date_start'];
} else {
$frm_submitted['date_end'] -= TIME_OFFSET;
}
if($frm_submitted['title'] == 'undefined') {
echo json_encode(array('success'=>false));exit;
}
//if(USE_CALENDAR_COLOR_FOR_EVENT) {
if(empty($frm_submitted['color']) || $frm_submitted['color'] == 'undefined') {
$frm_submitted['color'] = Calendar::getColor($frm_submitted['cal_id']);
}
//}
if(empty($error)) {
// check if repeating event
if(isset($frm_submitted['interval']) && ($frm_submitted['interval'] == 'W' ||
$frm_submitted['interval'] == '2W' ||
$frm_submitted['interval'] == 'M' ||
$frm_submitted['interval'] == 'Y')) {
// weekday
$arr_days = Utils::getDaysInPattern($frm_submitted);
$arr_event = Events::insertRepeatingEvent($arr_days, $frm_submitted);
echo json_encode(array('success'=>true));exit;
} else {
// check if this calendar allows overlapping
//if(!CalendarOwners::allowOverlapping($frm_submitted['cal_id'])) {
if(Events::isTimeAvailable($frm_submitted) || $frm_submitted['date_end'] != $frm_submitted['date_start']) {
$arr_event = Events::insertEvent($frm_submitted);
echo json_encode(array('success'=>true, 'event'=>$arr_event));exit;
} else {
echo json_encode(array('success'=>false, 'error'=>'Overlapping'));exit;
}
//} else {
//$arr_event = Events::insertEvent($frm_submitted);
//echo json_encode(array('success'=>true, 'event'=>$arr_event ));exit;
//}
}
}
echo json_encode(array('success'=>false));exit;
}
你們是不是要複製某種形式的事件再次發生呢?即用戶可以定期重現一個事件,然後根據需要單獨更改各個事件的特徵? – karancan 2013-05-11 20:22:20
我認爲這個請求最簡單的形式是...我希望用戶創建1個事件,但是當它運行時,它將分裂成具有相同名稱的日子。我想它可能會像經常性的連續幾天而不是幾周或幾個月? ......這將涉及什麼? – zzipper72 2013-05-11 20:29:50