示例#1
0
function echoTask($oPHPProject, $oTask, $level = 0)
{
    echo '<strong>' . str_repeat('>', 2 * $level) . ' Task : ' . $oTask->getName() . '</strong>' . EOL;
    echo ' ' . str_repeat('>', 2 * ($level + 1)) . ' Duration : ' . $oTask->getDuration() . EOL;
    echo ' ' . str_repeat('>', 2 * ($level + 1)) . ' StartDate : ' . date('Y-m-d', $oTask->getStartDate()) . EOL;
    echo ' ' . str_repeat('>', 2 * ($level + 1)) . ' Progress : ' . $oTask->getProgress() . EOL;
    echo ' ' . str_repeat('>', 2 * ($level + 1)) . ' Resources : ' . EOL;
    $oTaskResources = $oTask->getResources();
    if (!empty($oTaskResources)) {
        foreach ($oTaskResources as $oResource) {
            echo ' ' . str_repeat('>', 2 * ($level + 2)) . ' Resource : ' . $oResource->getTitle() . EOL;
        }
    }
    echo EOL;
    $level++;
    if ($oTask->getTaskCount() > 0) {
        foreach ($oTask->getTasks() as $oSubTask) {
            echoTask($oPHPProject, $oSubTask, $level);
        }
    }
    $level--;
}
$objReader = IOFactory::createReader('GanttProject');
$objPHPProject = $objReader->load(__DIR__ . DIRECTORY_SEPARATOR . 'resources' . DIRECTORY_SEPARATOR . 'Sample_02.gan');
// Set properties
echo date('H:i:s') . ' Get properties' . EOL;
echo 'Creator > ' . $objPHPProject->getProperties()->getCreator() . EOL;
echo 'LastModifiedBy > ' . $objPHPProject->getProperties()->getLastModifiedBy() . EOL;
echo 'Title > ' . $objPHPProject->getProperties()->getTitle() . EOL;
echo 'Subject > ' . $objPHPProject->getProperties()->getSubject() . EOL;
echo 'Description > ' . $objPHPProject->getProperties()->getDescription() . EOL;
echo EOL;
// Add some data
echo date('H:i:s') . ' Get some data' . EOL;
echo 'StartDate > ' . $objPHPProject->getInformations()->getStartDate() . EOL;
echo 'EndDate > ' . $objPHPProject->getInformations()->getEndDate() . EOL;
echo EOL;
// Ressources
echo date('H:i:s') . ' Get ressources' . EOL;
foreach ($objPHPProject->getAllResources() as $oResource) {
    echo 'Resource : ' . $oResource->getTitle() . EOL;
}
echo EOL;
// Tasks
echo date('H:i:s') . ' Get tasks' . EOL;
foreach ($objPHPProject->getAllTasks() as $oTask) {
    echoTask($objPHPProject, $oTask);
}
// Echo done
echo date('H:i:s') . ' Done reading file.' . EOL;
if (!CLI) {
    include_once 'Sample_Footer.php';
}