It belongs to the Workflow Designer and must not be distributed without complete extension **/ require_once(realpath(dirname(__FILE__).'/../autoload_wf.php')); class WfTaskMysqlquery extends \Workflow\Task { /*** * @param $context \Workflow\VTEntity * @return string */ public function handleTask(&$context) { if($this->get('provider') == -1) { $this->set('provider', 'vtigerdb'); } $connection = \Workflow\ConnectionProvider::getConnection($this->get('provider')); /** * @var $db \PDO */ $db = $connection->getMySQLConnection(); if($this->get('provider') == 'vtigerdb') { global $dbconfig; try { $db->query("USE `" . $dbconfig['db_name'] . '`;'); } catch (\Exception $exp) {} } if(defined("WF_DEMO_MODE") && constant("WF_DEMO_MODE") == true) { return "yes"; } $query = $this->get("query"); $envVar = $this->get("envvar", $context); $query = preg_replace('/%([A-Za-z0-9-_]+)%/', '%--\$--$1--\$--%', $query); $query = \Workflow\VTTemplate::parse($query, $context); $query = preg_replace('/%--\$--([A-Za-z0-9-_]+)--\$--%/', '%$1%', $query); if(empty($envVar)) { Workflow2::error_handler(E_NONBREAK_ERROR, "You must configure an environment variable in this block to get the correct result."); } $resultMode = $this->get('resultmode'); if(empty($resultMode) || $resultMode == -1) { $resultMode = 'single'; } $this->addStat($query); try { $result = $db->query($query); if(!empty($envVar)) { if($result->rowCount() > 0) { try { if($resultMode == 'single') { $row = $result->fetch(\PDO::FETCH_ASSOC); } elseif($resultMode == 'multi') { $row = $result->fetchAll(\PDO::FETCH_ASSOC); } } catch(\Exception $exp) { $row = array(); } $context->setEnvironment($envVar, $row); } } } catch (\Exception $exp) { \Workflow2::error_handler($exp); //throw new \Exception('MySQL Error: '.$exp->getMessage()); } return "yes"; } public function beforeGetTaskform($viewer) { if(defined("WF_DEMO_MODE") && constant("WF_DEMO_MODE") == true) { echo "
This Task won't work on demo.stefanwarnat.de
"; } $provider = \Workflow\ConnectionProvider::getAvailableConfigurations('mysql'); $viewer->assign('available_providers', $provider); } public function beforeSave(&$data) { //echo "";var_dump($data);echo ""; // echo "RESULT\n";var_dump($data);echo ""; } }