get('envid'); if(empty($envid) || $envid == -1) { return 'yes'; } if($this->notEmpty('relatedto')) { $crmid = $this->get('relatedto', $context); } else { $crmid = $context->getId(); } if($this->notEmpty('count')) { $limit = $this->get('count', $context); } else { $limit = null; } if($this->notEmpty('sort')) { $orderBy = 'createdtime DESC'; } else { switch($this->get('sort')) { case 'date#asc': $orderBy = 'createdtime ASC'; break; case 'date#desc': $orderBy = 'createdtime DESC'; break; } } $extraWhere = ''; switch($this->get('src')) { case 'users': $extraWhere .= ' AND customer = 0'; break; case 'customers': $extraWhere .= ' AND customer != 0'; break; } $sql = "SELECT crmid FROM vtiger_modcomments INNER JOIN `vtiger_crmentity` ON (`vtiger_crmentity`.`crmid` = `vtiger_modcomments`.`modcommentsid`) LEFT JOIN `vtiger_modcommentscf` ON (`vtiger_modcommentscf`.`modcommentsid` = `vtiger_modcomments`.`modcommentsid`) LEFT JOIN vtiger_users ON (vtiger_users.id = vtiger_crmentity.smownerid) WHERE ( ((`vtiger_modcomments`.`related_to` = '".$crmid."')) ".$extraWhere." ) AND vtiger_crmentity.deleted = 0 GROUP BY vtiger_crmentity.crmid ORDER BY ".$orderBy." ".(!empty($limit)?' LIMIT '.$limit:''); $result = $adb->query($sql, true); $content = ''; $example = array(); if($adb->num_rows($result) > 0) { while($row = $adb->fetchByAssoc($result)) { $modComment = \Workflow\VTEntity::getForId($row['crmid'], 'ModComments'); $modComment->setEnvironment('commentAuthor', $this->getCommentAuthor($modComment)); try { $example[] = $this->get('text', $modComment); } catch (\Exception $exp) {} } $divider = $this->get('divider', $context); if(empty($divider)) { $divider = '

'; } $divider = str_replace('\n', PHP_EOL, $divider); $content = implode($divider, $example); $context->setEnvironment($envid, $content); } return "yes"; } public function beforeGetTaskform($viewer) { // text is empty if($this->notEmpty('text') == false) { $this->set('text', '$env["commentAuthor"] - $[DATEFORMAT,$createdtime,\'d.m.Y\']
---------------
$[NL2BR,$commentcontent]'); } if($this->notEmpty('relatedto') == false) { $this->set('relatedto', '$crmid'); } if($this->notEmpty('text')) { $dummy = \Workflow\VTEntity::getDummy(); $example = array(); $orderBy = 'createdtime DESC'; switch($this->get('sort')) { case 'date#asc': $orderBy = 'createdtime ASC'; break; case 'date#desc': $orderBy = 'createdtime DESC'; break; } $extraWhere = ''; switch($this->get('src')) { case 'users': $extraWhere .= ' AND customer = 0'; break; case 'customers': $extraWhere .= ' AND customer != 0'; break; } if($this->notEmpty('count')) { $limit = $this->get('count', $dummy); } if(empty($limit)) { $limit = 3; } $sql = "SELECT vtiger_crmentity.crmid FROM vtiger_modcomments INNER JOIN `vtiger_crmentity` ON (`vtiger_crmentity`.`crmid` = `vtiger_modcomments`.`modcommentsid`) LEFT JOIN `vtiger_modcommentscf` ON (`vtiger_modcommentscf`.`modcommentsid` = `vtiger_modcomments`.`modcommentsid`) LEFT JOIN vtiger_users ON (vtiger_users.id = vtiger_crmentity.smownerid) WHERE vtiger_crmentity.deleted = 0 ".$extraWhere." GROUP BY vtiger_crmentity.crmid ORDER BY ".$orderBy." LIMIT ".$limit; $adb = \PearDatabase::getInstance(); $result = $adb->query($sql, true); if($adb->num_rows($result) > 0) { while($row = $adb->fetchByAssoc($result)) { $modComment = \Workflow\VTEntity::getForId($row['crmid'], 'ModComments'); $modComment->setEnvironment('commentAuthor', $this->getCommentAuthor($modComment)); try { $example[] = $this->get('text', $modComment); } catch (\Exception $exp) {} } $divider = $this->get('divider', $dummy); if(empty($divider)) { $divider = '

'; } $divider = str_replace('\n', PHP_EOL, $divider); $example = implode($divider, $example); } if(!empty($example)) { $viewer->assign('example', $example); } } /* Insert here source code to create custom configurations pages */ } public function getCommentAuthor(\Workflow\VTEntity $modCommentObj) { $return = ''; if($modCommentObj->get('customer') != '' && $modCommentObj->get('customer') != '0') { $return = \Vtiger_Functions::getCRMRecordLabel($modCommentObj->get('customer')); } else { $return = \Vtiger_Functions::getUserRecordLabel($modCommentObj->get('userid')); } return $return; } public function getEnvironmentVariables() { $return = parent::getEnvironmentVariables(); // TODO: Change the autogenerated stub if($this->notEmpty('envid')) { $return[] = $this->get('envid'); } return $return; } public function beforeSave(&$values) { /* Insert here source code to modify the values the user submit on configuration */ } }