本文整理汇总了PHP中CTask::getTasksForPeriod方法的典型用法代码示例。如果您正苦于以下问题:PHP CTask::getTasksForPeriod方法的具体用法?PHP CTask::getTasksForPeriod怎么用?PHP CTask::getTasksForPeriod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CTask
的用法示例。
在下文中一共展示了CTask::getTasksForPeriod方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getTaskLinks
/**
* Sub-function to collect tasks within a period
*
* @param Date the starting date of the period
* @param Date the ending date of the period
* @param array by-ref an array of links to append new items to
* @param int the length to truncate entries by
* @param int the company id to filter by
* @author Andrew Eddie <eddieajau@users.sourceforge.net>
*/
function getTaskLinks($startPeriod, $endPeriod, &$links, $strMaxLen, $company_id = 0, $minical = false)
{
global $a, $AppUI, $w2Pconfig;
$tasks = CTask::getTasksForPeriod($startPeriod, $endPeriod, $company_id, 0);
$df = $AppUI->getPref('SHDATEFORMAT');
$tf = $AppUI->getPref('TIMEFORMAT');
//subtract one second so we don't have to compare the start dates for exact matches with the startPeriod which is 00:00 of a given day.
$startPeriod->subtractSeconds(1);
$link = array();
$sid = 3600 * 24;
// assemble the links for the tasks
foreach ($tasks as $row) {
// the link
$link['task'] = true;
if (!$minical) {
$link['href'] = '?m=tasks&a=view&task_id=' . $row['task_id'];
// the link text
if (mb_strlen($row['task_name']) > $strMaxLen) {
$row['short_name'] = mb_substr($row['task_name'], 0, $strMaxLen) . '...';
} else {
$row['short_name'] = $row['task_name'];
}
$link['text'] = '<span style="color:' . bestColor($row['color']) . ';background-color:#' . $row['color'] . '">' . $row['short_name'] . ($row['task_milestone'] ? ' ' . w2PshowImage('icons/milestone.gif') : '') . '</span>';
}
// determine which day(s) to display the task
$start = new w2p_Utilities_Date($AppUI->formatTZAwareTime($row['task_start_date'], '%Y-%m-%d %T'));
$end = $row['task_end_date'] ? new w2p_Utilities_Date($AppUI->formatTZAwareTime($row['task_end_date'], '%Y-%m-%d %T')) : null;
// First we test if the Tasks Starts and Ends are on the same day, if so we don't need to go any further.
if ($start->after($startPeriod) && ($end && $end->after($startPeriod) && $end->before($endPeriod) && !$start->dateDiff($end))) {
if ($minical) {
$temp = array('task' => true);
} else {
$temp = $link;
if ($a != 'day_view') {
$temp['text'] = w2PtoolTip($row['task_name'], getTaskTooltip($row['task_id'], true, true, $tasks), true) . w2PshowImage('block-start-16.png') . $start->format($tf) . ' ' . $temp['text'] . ' ' . $end->format($tf) . w2PshowImage('block-end-16.png') . w2PendTip();
$temp['text'] .= '<a href="?m=tasks&a=view&task_id=' . $row['task_id'] . '&tab=1&date=' . $AppUI->formatTZAwareTime($row['task_end_date'], '%Y%m%d') . '">' . w2PtoolTip('Add Log', 'create a new log record against this task') . w2PshowImage('edit_add.png') . w2PendTip() . '</a>';
}
}
$links[$end->format(FMT_TIMESTAMP_DATE)][] = $temp;
} else {
// If they aren't, we will now need to see if the Tasks Start date is between the requested period
if ($start->after($startPeriod) && $start->before($endPeriod)) {
if ($minical) {
$temp = array('task' => true);
} else {
$temp = $link;
if ($a != 'day_view') {
$temp['text'] = w2PtoolTip($row['task_name'], getTaskTooltip($row['task_id'], true, false, $tasks), true) . w2PshowImage('block-start-16.png') . $start->format($tf) . ' ' . $temp['text'] . w2PendTip();
$temp['text'] .= '<a href="?m=tasks&a=view&task_id=' . $row['task_id'] . '&tab=1&date=' . $AppUI->formatTZAwareTime($row['task_start_date'], '%Y%m%d') . '">' . w2PtoolTip('Add Log', 'create a new log record against this task') . w2PshowImage('edit_add.png') . w2PendTip() . '</a>';
}
}
$links[$start->format(FMT_TIMESTAMP_DATE)][] = $temp;
}
// And now the Tasks End date is checked if it is between the requested period too.
if ($end && $end->after($startPeriod) && $end->before($endPeriod) && $start->before($end)) {
if ($minical) {
$temp = array('task' => true);
} else {
$temp = $link;
if ($a != 'day_view') {
$temp['text'] = w2PtoolTip($row['task_name'], getTaskTooltip($row['task_id'], false, true, $tasks), true) . ' ' . $temp['text'] . ' ' . $end->format($tf) . w2PshowImage('block-end-16.png') . w2PendTip();
$temp['text'] .= '<a href="?m=tasks&a=view&task_id=' . $row['task_id'] . '&tab=1&date=' . $AppUI->formatTZAwareTime($row['task_end_date'], '%Y%m%d') . '">' . w2PtoolTip('Add Log', 'create a new log record against this task') . w2PshowImage('edit_add.png') . w2PendTip() . '</a>';
}
}
$links[$end->format(FMT_TIMESTAMP_DATE)][] = $temp;
}
}
}
}
示例2: getTaskLinks
/**
* Sub-function to collect tasks within a period
*
* @param Date the starting date of the period
* @param Date the ending date of the period
* @param array by-ref an array of links to append new items to
* @param int the length to truncate entries by
* @param int the company id to filter by
* @author Andrew Eddie <eddieajau@users.sourceforge.net>
*/
function getTaskLinks($startPeriod, $endPeriod, &$links, $strMaxLen, $company_id = 0)
{
global $a, $AppUI, $dPconfig;
$tasks = CTask::getTasksForPeriod($startPeriod, $endPeriod, $company_id, $AppUI->user_id, true);
$durnTypes = dPgetSysVal('TaskDurationType');
$link = array();
$sid = 3600 * 24;
// assemble the links for the tasks
foreach ($tasks as $row) {
// the link
$link['href'] = "?m=tasks&a=view&task_id=" . $row['task_id'];
$link['alt'] = $row['project_name'] . ":\n" . $row['task_name'];
// the link text
if (strlen($row['task_name']) > $strMaxLen) {
$row['task_name'] = substr($row['task_name'], 0, $strMaxLen) . '...';
}
$link['text'] = '<span style="color:' . bestColor($row['color']) . ';background-color:#' . $row['color'] . '">' . $row['task_name'] . '</span>';
// determine which day(s) to display the task
$start = new CDate($row['task_start_date']);
$end = $row['task_end_date'] ? new CDate($row['task_end_date']) : null;
$durn = $row['task_duration'];
$durnType = $row['task_duration_type'];
if (($start->after($startPeriod) || $start->equals($startPeriod)) && ($start->before($endPeriod) || $start->equals($endPeriod))) {
$temp = $link;
$temp['alt'] = "START [" . $row['task_duration'] . ' ' . $AppUI->_($durnTypes[$row['task_duration_type']]) . "]\n" . $link['alt'];
if ($a != 'day_view') {
$temp['text'] = dPshowImage(dPfindImage('block-start-16.png')) . $temp['text'];
}
$links[$start->format(FMT_TIMESTAMP_DATE)][] = $temp;
}
if ($end && $end->after($startPeriod) && $end->before($endPeriod) && $start->before($end)) {
$temp = $link;
$temp['alt'] = "FINISH\n" . $link['alt'];
if ($a != 'day_view') {
$temp['text'] .= dPshowImage(dPfindImage('block-end-16.png'));
}
$links[$end->format(FMT_TIMESTAMP_DATE)][] = $temp;
}
// convert duration to days
if ($durnType < 24.0) {
if ($durn > $dPconfig['daily_working_hours']) {
$durn /= $dPconfig['daily_working_hours'];
} else {
$durn = 0.0;
}
} else {
$durn *= $durnType / 24.0;
}
// fill in between start and finish based on duration
// notes:
// start date is not in a future month, must be this or past month
// start date is counted as one days work
// business days are not taken into account
$target = $start;
$target->addSeconds($durn * $sid);
if (Date::compare($target, $startPeriod) < 0) {
continue;
}
if (Date::compare($start, $startPeriod) > 0) {
$temp = $start;
$temp->addSeconds($sid);
} else {
$temp = $startPeriod;
}
// Optimised for speed, AJD.
while (Date::compare($endPeriod, $temp) > 0 && Date::compare($target, $temp) > 0 && ($end == null || $temp->before($end))) {
$links[$temp->format(FMT_TIMESTAMP_DATE)][] = $link;
$temp->addSeconds($sid);
}
}
}
示例3: CDate
// establish the focus 'date'
$this_week = new CDate($date);
$dd = $this_week->getDay();
$mm = $this_week->getMonth();
$yy = $this_week->getYear();
// prepare time period for 'events'
$first_time = new CDate(Date_calc::beginOfWeek($dd, $mm, $yy, FMT_TIMESTAMP_DATE, LOCALE_FIRST_DAY));
$week_time = new CDate($first_time);
// Can't use first_time after we adjust it.
$first_time->setTime(0, 0, 0);
$first_time->subtractSeconds(1);
$last_time = new CDate(Date_calc::endOfWeek($dd, $mm, $yy, FMT_TIMESTAMP_DATE, LOCALE_FIRST_DAY));
$last_time->setTime(23, 59, 59);
$prev_week = new CDate(Date_calc::beginOfPrevWeek($dd, $mm, $yy, FMT_TIMESTAMP_DATE, LOCALE_FIRST_DAY));
$next_week = new CDate(Date_calc::beginOfNextWeek($dd, $mm, $yy, FMT_TIMESTAMP_DATE, LOCALE_FIRST_DAY));
$tasks = CTask::getTasksForPeriod($first_time, $last_time, $company_id);
$events = CEvent::getEventsForPeriod($first_time, $last_time);
$links = array();
// assemble the links for the tasks
require_once DP_BASE_DIR . '/modules/calendar/links_tasks.php';
getTaskLinks($first_time, $last_time, $links, 50, $company_id);
// assemble the links for the events
require_once DP_BASE_DIR . '/modules/calendar/links_events.php';
getEventLinks($first_time, $last_time, $links, 50);
$cal_week = new CMonthCalendar($date);
$cal_week->setEvents($links);
// get the list of visible companies
$company = new CCompany();
$companies = $company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name');
$companies = arrayMerge(array('0' => $AppUI->_('All')), $companies);
// setup the title block