function displayProject($p, $showVolunteersAssigned = true) { global $global, $dao; $this->engine->assign('info', $this->model->info); $volunteers = $dao->getVolunteers($p->proj_id); $numVolunteers = $dao->getVolunteersInProject($p->proj_id); // get location hierarchy require_once $global['approot'] . 'inc/lib_location.inc'; $parents = array(); shn_get_parents($p->info['location_id'], $parents); $locations = array(); if (!empty($parents)) { foreach ($parents as $loc_id) { if ($loc_id != 'NULL') { $loc = $dao->getLocation($loc_id); $locations[] = $loc['name']; } } } /* * The sorting here just for using in Taiwan. */ krsort($locations); $locations = join("-->", $locations); $projectExpired = false; if ($p->info['end_date'] == '0000-00-00') { $endDate = ''; } else { $endDate = $p->info['end_date']; if (strtotime($p->info['end_date'] . ' 23:59:59') < mktime()) { $projectExpired = true; } } $projectManager = $dao->getProjectManager($p->proj_id); $this->engine->assign('projectExpired', $projectExpired); $this->engine->assign('info', $p->info); $this->engine->assign('start_date', $p->info['start_date'] == '0000-00-00' ? '' : $p->info['start_date']); $this->engine->assign('end_date', $p->info['end_date'] == '0000-00-00' ? '' : $p->info['end_date']); $this->engine->assign('location', $locations); $this->engine->assign('skills', $dao->getVolSkillsTree($p->proj_id, true)); $this->engine->assign('requiredVolunteers', $dao->getRequiredVolunteers($p->proj_id)); $this->engine->assign('numVolunteers', $numVolunteers); $this->engine->assign('showVolunteersAssigned', $showVolunteersAssigned); $this->engine->assign('proj_id', $p->proj_id); $this->engine->assign('projectManager', $projectManager['full_name'] . '(' . (!empty($projectManager['option_description']) ? _($projectManager['option_description']) : '') . ':' . $projectManager['contact_value'] . ')'); $this->engine->assign('position_title', $p->ptype_title); $this->engine->assign('positions', $p->positions); $ac = new AccessController(); $this->engine->assign('edit_auth', $ac->isAuthorized(false, $ac->buildURLParams('project', 'display_edit', array('proj_id' => $p->proj_id)))); $this->engine->assign('delete_auth', $ac->isAuthorized(false, $ac->buildURLParams('project', 'display_confirm_delete', array('proj_id' => $p->proj_id)))); $this->engine->assign('add_pos_auth', $ac->isAuthorized(false, $ac->buildURLParams('project', 'add_position', array('proj_id' => $p->proj_id)))); $this->engine->assign('delete_pos_auth', $ac->isAuthorized(false, $ac->buildURLParams('project', 'remove_position', array('proj_id' => $p->proj_id)))); $this->engine->assign('assign_auth', $ac->isAuthorized(false, $ac->buildURLParams('project', 'display_assign', array('proj_id' => $p->proj_id)))); $this->engine->display('project/display.tpl.php'); if ($showVolunteersAssigned && $numVolunteers > 0) { $extra_opts = array('showPictures' => true, 'showLocation' => true, 'showRemove' => !$projectExpired, 'modifyProjId' => $p->proj_id, 'showPositions' => true, 'showHours' => true); $vView = new VolunteerView(); $vView->listVolunteers($volunteers, $extra_opts); $this->showPagingNavigation("index.php?mod=vm&act=project&vm_action=display_single&proj_id={$p->proj_id}"); } }