Skip to content

Commit cc99dc9

Browse files
committed
#4 : Reader MSProjectExchange
1 parent cf9314d commit cc99dc9

File tree

10 files changed

+537
-80
lines changed

10 files changed

+537
-80
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 0.2.0 - Not Released
4+
### Features
5+
- MSProjectExchange Reader - @Progi1984 GH-4
6+
### Bugfix
7+
8+
### Miscellaneous
9+
10+
311
## 0.1.0 - 2014-08-08
412

513
### Features

docs/intro.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ Writers
4141
+---------------------------+----------------------+--------+-------+
4242
| | Custom | | |
4343
+---------------------------+----------------------+--------+-------+
44+
| **Document Informations** | | | |
45+
+---------------------------+----------------------+--------+-------+
4446
| **Project** | Task | ||
4547
+---------------------------+----------------------+--------+-------+
4648
| | Resource | ||
@@ -57,11 +59,13 @@ Readers
5759
+---------------------------+----------------------+--------+-------+
5860
| | Custom | | |
5961
+---------------------------+----------------------+--------+-------+
60-
| **Project** | Task | | |
62+
| **Document Informations** | || |
63+
+---------------------------+----------------------+--------+-------+
64+
| **Project** | Task |||
6165
+---------------------------+----------------------+--------+-------+
62-
| | Resource | | |
66+
| | Resource | | |
6367
+---------------------------+----------------------+--------+-------+
64-
| | Allocation | | |
68+
| | Allocation | | |
6569
+---------------------------+----------------------+--------+-------+
6670

6771
Contributing

samples/Sample_02_ReadGanttProject.php

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,38 +35,11 @@
3535

3636
// Tasks
3737
echo date('H:i:s') . ' Get tasks'.EOL;
38-
$oTasks = $objPHPProject->getAllTasks();
39-
foreach ($oTasks as $item){
40-
echo 'Task : '.$item->getName().EOL;
41-
echo ' >> Duration : '.$item->getDuration().EOL;
42-
echo ' >> StartDate : '.date('Y-m-d', $item->getStartDate()).EOL;
43-
echo ' >> Progress : '.$item->getProgress().EOL;
44-
echo ' >> Resources : '.EOL;
45-
$oTaskResources = $item->getResources();
46-
if(!empty($oTaskResources)){
47-
foreach ($oTaskResources as $itemRes){
48-
echo ' >>>> Resource : '.$objPHPProject->getResource($itemRes)->getTitle().EOL;
49-
}
50-
}
51-
52-
echo ' >> SubTasks : '.EOL;
53-
if($item->getTaskCount() > 0){
54-
foreach ($item->getTasks() as $itemSub){
55-
echo ' >>>> Task : '.$itemSub->getName().EOL;
56-
echo ' >>>>>> Duration : '.$itemSub->getDuration().EOL;
57-
echo ' >>>>>> StartDate : '.date('Y-m-d', $itemSub->getStartDate()).EOL;
58-
echo ' >>>>>> Progress : '.$itemSub->getProgress().EOL;
59-
echo ' >>>>>> Resources : '.EOL;
60-
$oTaskResources = $itemSub->getResources();
61-
if(!empty($oTaskResources)){
62-
foreach ($oTaskResources as $itemRes){
63-
echo ' >>>>>>>> Resource : '.$objPHPProject->getResource($itemRes)->getTitle().EOL;
64-
}
65-
}
66-
}
67-
}
38+
$arrTasks = $objPHPProject->getAllTasks();
39+
40+
foreach ($arrTasks as $oTask){
41+
echoTask($objPHPProject, $oTask);
6842
}
69-
echo EOL;
7043

7144
// Echo done
7245
echo date('H:i:s') . ' Done reading file.'.EOL;

samples/Sample_02_ReadMSProjectExchange.php

Lines changed: 15 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,69 +7,39 @@
77

88
// Create new PHPProject object
99
echo date('H:i:s') . ' Create new PHPProject object'.EOL;
10-
$objReader = IOFactory::createReader('MSProjectExchange');
11-
$objPHPProject = $objReader->load('02file.mpx');
10+
$objReader = IOFactory::createReader('MsProjectMPX');
11+
$objPHPProject = $objReader->load(__DIR__ .DIRECTORY_SEPARATOR.'resources'.DIRECTORY_SEPARATOR.'Sample_02.mpx');
1212

1313
// Set properties
14-
echo date('H:i:s') . ' Set properties'.EOL;
15-
echo 'Creator >'.$objPHPProject->getProperties()->getCreator().EOL;
16-
echo 'LastModifiedBy >'.$objPHPProject->getProperties()->getLastModifiedBy().EOL;
17-
echo 'Title >'.$objPHPProject->getProperties()->getTitle().EOL;
18-
echo 'Subject >'.$objPHPProject->getProperties()->getSubject().EOL;
19-
echo 'Description >'.$objPHPProject->getProperties()->getDescription().EOL;
14+
echo date('H:i:s') . ' Get properties'.EOL;
15+
echo 'Creator > '.$objPHPProject->getProperties()->getCreator().EOL;
16+
echo 'LastModifiedBy > '.$objPHPProject->getProperties()->getLastModifiedBy().EOL;
17+
echo 'Title > '.$objPHPProject->getProperties()->getTitle().EOL;
18+
echo 'Subject > '.$objPHPProject->getProperties()->getSubject().EOL;
19+
echo 'Description > '.$objPHPProject->getProperties()->getDescription().EOL;
2020
echo EOL;
2121

2222
// Add some data
2323
echo date('H:i:s') . ' Get some data'.EOL;
24-
echo 'StartDate >'.$objPHPProject->getInformations()->getStartDate().EOL;
25-
echo 'EndDate >'.$objPHPProject->getInformations()->getEndDate().EOL;
24+
echo 'StartDate > '.$objPHPProject->getInformations()->getStartDate().EOL;
25+
echo 'EndDate > '.$objPHPProject->getInformations()->getEndDate().EOL;
2626
echo EOL;
2727

2828
// Ressources
2929
echo date('H:i:s') . ' Get ressources'.EOL;
3030
$oResources = $objPHPProject->getAllResources();
3131
foreach ($oResources as $item){
32-
echo 'Resource :'.$item->getTitle().EOL;
32+
echo 'Resource : '.$item->getTitle().EOL;
3333
}
3434
echo EOL;
3535

3636
// Tasks
3737
echo date('H:i:s') . ' Get tasks'.EOL;
38-
$oTasks = $objPHPProject->getAllTasks();
39-
foreach ($oTasks as $item){
40-
echo 'Task :'.$item->getName().EOL;
41-
echo ' >> Duration :'.$item->getDuration().EOL;
42-
echo ' >> StartDate :'.$item->getStartDate().EOL;
43-
echo ' >> EndDate :'.$item->getEndDate().EOL;
44-
echo ' >> Progress :'.$item->getProgress().EOL;
45-
echo ' >> Resources :'.EOL;
46-
$oTaskResources = $item->getResources();
47-
if(!empty($oTaskResources)){
48-
foreach ($oTaskResources as $itemRes){
49-
echo ' >>>> Resource :'.$objPHPProject->getResource($itemRes)->getTitle().EOL;
50-
}
51-
}
52-
53-
echo ' >> SubTasks :'.EOL;
54-
$oSubTasks = $item->getTasks();
55-
if(!empty($oSubTasks)){
56-
foreach ($oSubTasks as $itemSub){
57-
echo ' >>>> Task :'.$itemSub->getName().EOL;
58-
echo ' >>>>>> Duration :'.$itemSub->getDuration().EOL;
59-
echo ' >>>>>> StartDate :'.$itemSub->getStartDate().EOL;
60-
echo ' >>>>>> EndDate :'.$itemSub->getEndDate().EOL;
61-
echo ' >>>>>> Progress :'.$itemSub->getProgress().EOL;
62-
echo ' >>>>>> Resources :'.EOL;
63-
$oTaskResources = $itemSub->getResources();
64-
if(!empty($oTaskResources)){
65-
foreach ($oTaskResources as $itemRes){
66-
echo ' >>>>>>>> Resource :'.$objPHPProject->getResource($itemRes)->getTitle().EOL;
67-
}
68-
}
69-
}
70-
}
38+
$arrTasks = $objPHPProject->getAllTasks();
39+
40+
foreach ($arrTasks as $oTask){
41+
echoTask($objPHPProject, $oTask);
7142
}
72-
echo EOL;
7343

7444
// Echo done
7545
echo date('H:i:s') . ' Done reading file.'.EOL;

samples/Sample_Header.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,28 @@ function getEndingNotes($writers)
107107
return $result;
108108
}
109109

110+
function echoTask($oPHPProject, $oTask, $level = 0) {
111+
echo '<strong>'.str_repeat('>', 2 * $level).' Task : '.$oTask->getName().'</strong>'.EOL;
112+
echo ' '.str_repeat('>', 2 * ($level + 1)).' Duration : '.$oTask->getDuration().EOL;
113+
echo ' '.str_repeat('>', 2 * ($level + 1)).' StartDate : '.date('Y-m-d', $oTask->getStartDate()).EOL;
114+
echo ' '.str_repeat('>', 2 * ($level + 1)).' Progress : '.$oTask->getProgress().EOL;
115+
echo ' '.str_repeat('>', 2 * ($level + 1)).' Resources : '.EOL;
116+
$oTaskResources = $oTask->getResources();
117+
if(!empty($oTaskResources)){
118+
foreach ($oTaskResources as $itemRes){
119+
echo ' '.str_repeat('>', 2 * ($level + 2)).' Resource : '.$oPHPProject->getResourceFromIndex($itemRes)->getTitle().EOL;
120+
}
121+
}
122+
echo EOL;
123+
$level++;
124+
if($oTask->getTaskCount() > 0){
125+
foreach ($oTask->getTasks() as $oSubTask){
126+
echoTask($oPHPProject, $oSubTask, $level);
127+
}
128+
}
129+
$level--;
130+
}
131+
110132
?>
111133
<title><?php echo $pageTitle; ?></title>
112134
<meta charset="utf-8">

samples/resources/Sample_02.mpx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
MPX;Microsoft Project for Windows;4.0;ANSI
2+
10;$;1;2;.;,
3+
11;2;0;1;8,00;40,00;$10,00/h;$15,00/h;1;0
4+
12;1;0;480;/;:;AM;PM;20;0
5+
20;Standard;0;1;1;1;1;1;0
6+
25;1
7+
25;2;08:00 AM;12:00 PM;01:00 PM;05:00 PM
8+
25;3;08:00 AM;12:00 PM;01:00 PM;05:00 PM
9+
25;4;08:00 AM;12:00 PM;01:00 PM;05:00 PM
10+
25;5;08:00 AM;12:00 PM;01:00 PM;05:00 PM
11+
25;6;08:00 AM;12:00 PM;01:00 PM;05:00 PM
12+
25;7
13+
30;Project1;;;Standard;01/01/2003;;0;05/12/2003;;$0,00;$0,00;$0,00;0h;0h;0h;0%;0d;0d;0d;0%;;;;;0d;0d
14+
40;Name;ID;Max Units;Unique ID
15+
41;1;40;41;49
16+
50;Resource1;1;;1
17+
50;Resource2;2;0,5;2
18+
60;Name;WBS;Outline Level;Duration;% Complete;Start;Actual Start;Predecessors;Fixed;ID;Constraint Type;Unique ID;Outline Number;Summary
19+
61;1;2;3;40;44;50;58;70;80;90;91;98;99;120
20+
70;Summary Task;1.0;1;;;;;;No;1;As Soon As Possible;1;1.0;Yes
21+
70;First Sub Task;1.1;2;10,5d;55,5%;01/01/2003;01/01/2003;;No;2;As Soon As Possible;2;1.1
22+
75;1;1;80h;;40h;;;;;;;;1
23+
76;;0;0;NA;NA
24+
70;Second Sub Task;1.2;2;10d;;11/01/2003;;2;No;3;As Soon As Possible;3;1.2
25+
75;2;1;10d;;;;;;;;;;2
26+
76;;0;0;NA;NA
27+
70;Milestone;1.3;2;0d;;21/01/2003;;3;No;4;As Soon As Possible;4;1.3

src/PhpProject/PhpProject.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public function setProperties(DocumentProperties $pValue)
109109
/**
110110
* Get informations
111111
*
112-
* @return PHPProject_DocumentInformations
112+
* @return DocumentInformations
113113
*/
114114
public function getInformations()
115115
{

0 commit comments

Comments
 (0)