$projTasksWithEndDates = array($object->task_id => $AppUI->_('None')); //arrays contains task end date info for setting new task start date as maximum end date of dependenced tasks $all_tasks = array(); $subtasks = $object->getNonRootTasks($task_project); foreach ($subtasks as $sub_task) { // Build parent/child task list $parents[$sub_task['task_parent']][] = $sub_task['task_id']; $all_tasks[$sub_task['task_id']] = $sub_task; build_date_list($projTasksWithEndDates, $sub_task); } $task_parent_options = ''; $root_tasks = $object->getRootTasks((int) $task_project); foreach ($root_tasks as $root_task) { build_date_list($projTasksWithEndDates, $root_task); if ($root_task['task_id'] != $object_id) { $task_parent_options .= buildTaskTree($root_task, 0, array(), $all_tasks, $parents, $task_parent, $object_id); } } // setup the title block $ttl = $object_id > 0 ? 'Edit Task' : 'Add Task'; $titleBlock = new w2p_Theme_TitleBlock($ttl, 'icon.png', $m); $titleBlock->addViewLink('project', $task_project); $titleBlock->addViewLink('task', $object_id); $titleBlock->show(); // Get contacts list $selected_contacts = array(); if ($object_id) { $myContacts = $object->getContacts(null, $object_id); $selected_contacts = array_keys($myContacts); } if ($object_id == 0 && (isset($contact_id) && $contact_id > 0)) {
/** * Deprecated in favor of buildTaskTree which doesn't use any globals. * TODO: Remove for v4.0 - caseydk 20 September 2012 * * @deprecated */ function constructTaskTree_pd($task_data, $parents, $all_tasks, $depth = 0) { global $projTasks, $all_tasks, $task_parent, $task_id; trigger_error("The constructTaskTree_pd function has been deprecated and will be removed in v4.0. Use buildTaskTree() instead.", E_USER_NOTICE); return buildTaskTree($task_data, $depth, $projTasks, $all_tasks, $parents, $task_parent, $task_id); }
function buildTaskTree($task_data, $depth = 0, $projTasks, $all_tasks, $parents, $task_parent, $task_id) { $output = ''; $projTasks[$task_data['task_id']] = $task_data['task_name']; $task_data['task_name'] = mb_strlen($task_data['task_name']) > 45 ? mb_substr($task_data['task_name'], 0, 45) . '...' : $task_data['task_name']; $selected = $task_data['task_id'] == $task_parent ? ' selected="selected"' : ''; $output .= '<option value="' . $task_data['task_id'] . '"' . $selected . '>' . str_repeat(' ', $depth * 3) . w2PFormSafe($task_data['task_name']) . '</option>'; if (isset($parents[$task_data['task_id']])) { foreach ($parents[$task_data['task_id']] as $child_task) { if ($child_task != $task_id) { $output .= buildTaskTree($all_tasks[$child_task], $depth + 1, $projTasks, $all_tasks, $parents, $task_parent, $task_id); } } } return $output; }