00001 <?php
00002
00011 class CM2 {
00012 public $unitList = array();
00013 public $unitOrder = array();
00014 protected $unitsXml;
00015 protected $moduleXml;
00016 protected $collectionName;
00017 protected $collectionShortName;
00018 protected $moduleName;
00019 protected $moduleShortName;
00020
00028 public function __construct() {
00029
00030
00031 $this->unitsXml = "";
00032 $this->moduleXml = "";
00033 $this->collectionName = "Collection";
00034 $this->collectionShortName = "collection";
00035 $this->moduleName = "Module";
00036 $this->moduleShortName = "module";
00037
00038 }
00039
00048 public function setCollectionName($name) {
00049
00050 $this->collectionName = $name;
00051 }
00052
00061 public function setCollectionShortName($name){
00062
00063 $this->collectionShortName = $name;
00064 }
00065
00075 public function setUnitName($shortName, $unitName) {
00076
00077 if(isset($this->unitList[$shortName]) && is_array($this->unitList[$shortName])) {
00078
00079 $this->unitList[$shortName]['unitName'] = $unitName;
00080
00081 } else {
00082 return false;
00083 }
00084 }
00085
00094 public function setModuleName($name) {
00095 $this->moduleName = $name;
00096 }
00097
00106 public function setModuleShortName($name) {
00107 $this->moduleShortName = $name;
00108 }
00109
00110
00111
00121 public function addToList($unit, $id, $name, $shortName, $content, $thumbnail = "") {
00122
00123 if( ! isset($this->unitList[$unit]) || ! is_array($this->unitList[$unit])) {
00124
00125 $this->unitList[$unit] = array();
00126 $this->unitList[$unit]['id'] = array();
00127 $this->unitList[$unit]['name'] = array();
00128 $this->unitList[$unit]['shortName'] = array();
00129 $this->unitList[$unit]['content'] = array();
00130 $this->unitList[$unit]['thumbnail'] = array();
00131
00132
00133 }
00134
00135 array_push($this->unitList[$unit]['id'], $id);
00136 array_push($this->unitList[$unit]['name'], $name);
00137 array_push($this->unitList[$unit]['shortName'], $shortName);
00138 array_push($this->unitList[$unit]['content'], $content);
00139 array_push($this->unitList[$unit]['thumbnail'], $thumbnail);
00140
00141
00142 }
00143
00151 private function generateModuleXml() {
00152
00153 $retXml =<<<END_RET_XML
00154
00155 <module>
00156 <name>$this->moduleName</name>
00157 <shortName>$this->moduleShortName</shortName>
00158 $this->unitsXml
00159 </module>
00160
00161 END_RET_XML;
00162
00163 $this->moduleXml = $retXml;
00164 }
00165
00173 public function generateXml() {
00174 if ($this->unitOrder == null) {
00175 $this->unitOrder = array_keys($this->unitList);
00176 }
00177
00178 $this->generateUnits();
00179 $this->generateModuleXml();
00180
00181 $retXml =<<<END_RET_XML
00182
00183 <collection>
00184 <name>$this->collectionName</name>
00185 <shortName>$this->collectionShortName</shortName>
00186 $this->moduleXml
00187 </collection>
00188
00189 END_RET_XML;
00190
00191 return $retXml;
00192
00193 }
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00264 private function generateUnits() {
00265
00266 foreach($this->unitOrder as $key=>$value) {
00267
00268 if(isset($this->unitList[$value]) && is_array($this->unitList[$value])) {
00269 $retXml = "";
00270
00271 for($i = 0; $i < count($this->unitList[$value]['id']); $i++) {
00272 $id = $this->unitList[$value]['id'][$i];
00273 $name = $this->unitList[$value]['name'][$i];
00274 $shortName = $this->unitList[$value]['shortName'][$i];
00275 $content = $this->unitList[$value]['content'][$i];
00276 $thumbnail = $this->unitList[$value]['thumbnail'][$i];
00277
00278 if(isset($this->unitList[$value]['unitName'])) {
00279 $unitName = $this->unitList[$value]['unitName'];
00280 } else {
00281 $unitName = $value;
00282 }
00283
00284 $thumbnailCode = "";
00285 if ($thumbnail != "") {
00286 $thumbnailCode = "<thumbnail>$thumbnail</thumbnail>";
00287 }
00288 $retXml .=<<<END_RET_XML
00289 <page id="$id">
00290 <name>$name</name>
00291 <shortName>$shortName</shortName>
00292 $thumbnailCode
00293 <section>
00294 <block>
00295 <![CDATA[
00296 $content
00297 ]]>
00298 </block>
00299 </section>
00300 </page>
00301 END_RET_XML;
00302
00303 }
00304 $retXml =<<<END_RET_XML
00305 <unit id="">
00306 <name>$unitName</name>
00307 <shortName>$value</shortName>
00308 $retXml
00309 </unit>
00310
00311 END_RET_XML;
00312 $this->unitsXml .= $retXml;
00313 }
00314 }
00315 }
00316
00325 public function setUnitOrder($units) {
00326 if(is_array($units)) {
00327 $this->unitOrder = $units;
00328
00329 } else {
00330 return false;
00331 }
00332 }
00333 }
00334 ?>