Example #1
0
 function serialize_process($pId)
 {
     // <process>
     $out = '<process>' . "\n";
     $proc_info = $this->get_process($pId);
     $procname = $proc_info['normalized_name'];
     $out .= '  <name>' . htmlspecialchars($proc_info['name']) . '</name>' . "\n";
     $out .= '  <isValid>' . htmlspecialchars($proc_info['isValid']) . '</isValid>' . "\n";
     $out .= '  <version>' . htmlspecialchars($proc_info['version']) . '</version>' . "\n";
     $out .= '  <isActive>' . htmlspecialchars($proc_info['isActive']) . '</isActive>' . "\n";
     $out .= '   <description>' . htmlspecialchars($proc_info['description']) . '</description>' . "\n";
     $out .= '  <lastModif>' . date("d/m/Y [h:i:s]", $proc_info['lastModif']) . '</lastModif>' . "\n";
     $out .= '  <sharedCode><![CDATA[';
     $fp = fopen(GALAXIA_PROCESSES . "/{$procname}/code/shared.php", "r");
     while (!feof($fp)) {
         $line = fread($fp, 8192);
         $out .= $line;
     }
     fclose($fp);
     $out .= '  ]]></sharedCode>' . "\n";
     // Now loop over activities
     $query = "select * from " . GALAXIA_TABLE_PREFIX . "activities where pId={$pId}";
     $result = $this->query($query);
     $out .= '  <activities>' . "\n";
     $am = new ActivityManager($this->db);
     while ($res = $result->fetchRow()) {
         $name = $res['normalized_name'];
         $out .= '    <activity>' . "\n";
         $out .= '      <name>' . htmlspecialchars($res['name']) . '</name>' . "\n";
         $out .= '      <type>' . htmlspecialchars($res['type']) . '</type>' . "\n";
         $out .= '      <description>' . htmlspecialchars($res['description']) . '</description>' . "\n";
         $out .= '      <lastModif>' . date("d/m/Y [h:i:s]", $res['lastModif']) . '</lastModif>' . "\n";
         $out .= '      <isInteractive>' . $res['isInteractive'] . '</isInteractive>' . "\n";
         $out .= '      <isAutoRouted>' . $res['isAutoRouted'] . '</isAutoRouted>' . "\n";
         $out .= '	   <expirationTime>' . $res['expirationTime'] . '</expirationTime>' . "\n";
         $out .= '      <roles>' . "\n";
         $roles = $am->get_activity_roles($res['activityId']);
         foreach ($roles as $role) {
             $out .= '        <role>' . htmlspecialchars($role['name']) . '</role>' . "\n";
         }
         $out .= '      </roles>' . "\n";
         $out .= '      <code><![CDATA[';
         $fp = fopen(GALAXIA_PROCESSES . "/{$procname}/code/activities/{$name}.php", "r");
         while (!feof($fp)) {
             $line = fread($fp, 8192);
             $out .= $line;
         }
         fclose($fp);
         $out .= '      ]]></code>';
         if ($res['isInteractive'] == 'y') {
             $out .= '      <template><![CDATA[';
             $fp = fopen(GALAXIA_PROCESSES . "/{$procname}/code/templates/{$name}.tpl", "r");
             while (!feof($fp)) {
                 $line = fread($fp, 8192);
                 $out .= $line;
             }
             fclose($fp);
             $out .= '      ]]></template>';
         }
         $out .= '    </activity>' . "\n";
     }
     $out .= '  </activities>' . "\n";
     $out .= '  <transitions>' . "\n";
     $transitions = $am->get_process_transitions($pId);
     foreach ($transitions as $tran) {
         $out .= '     <transition>' . "\n";
         $out .= '       <from>' . htmlspecialchars($tran['actFromName']) . '</from>' . "\n";
         $out .= '       <to>' . htmlspecialchars($tran['actToName']) . '</to>' . "\n";
         $out .= '     </transition>' . "\n";
     }
     $out .= '  </transitions>' . "\n";
     $out .= '</process>' . "\n";
     //$fp = fopen(GALAXIA_PROCESSES."/$procname/$procname.xml","w");
     //fwrite($fp,$out);
     //fclose($fp);
     return $out;
 }