/** * get task list * * @param string $userId * @return $result will return an object */ public function taskList ($userId) { try { g::loadClass( 'groups' ); $oGroup = new Groups(); $aGroups = $oGroup->getActiveGroupsForAnUser( $userId ); $result = array (); $oCriteria = new Criteria( 'workflow' ); $del = DBAdapter::getStringDelimiter(); $oCriteria->addSelectColumn( TaskPeer::PRO_UID ); $oCriteria->addSelectColumn( TaskPeer::TAS_UID ); $oCriteria->addSelectColumn( TaskPeer::TAS_START ); $oCriteria->setDistinct(); $oCriteria->addAsColumn( 'TAS_TITLE', 'C1.CON_VALUE' ); $oCriteria->addAlias( "C1", 'CONTENT' ); $tasTitleConds = array (); $tasTitleConds[] = array (TaskPeer::TAS_UID,'C1.CON_ID' ); $tasTitleConds[] = array ('C1.CON_CATEGORY',$del . 'TAS_TITLE' . $del ); $tasTitleConds[] = array ('C1.CON_LANG',$del . SYS_LANG . $del ); $oCriteria->addJoinMC( $tasTitleConds, Criteria::LEFT_JOIN ); $oCriteria->addJoin( TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN ); $oCriteria->addOr( TaskUserPeer::USR_UID, $userId ); $oCriteria->addOr( TaskUserPeer::USR_UID, $aGroups, Criteria::IN ); $oDataset = TaskPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $result[] = array ('guid' => $aRow['TAS_UID'], 'name' => $aRow['TAS_TITLE'], 'processId' => $aRow['PRO_UID'], 'initialTask' => $aRow['TAS_START'] == 'TRUE' ? '1' : '0'); $oDataset->next(); } return $result; } catch (Exception $e) { $result[] = array ('guid' => $e->getMessage(),'name' => $e->getMessage() ); return $result; } }