Finally, we'll add a gantt on the page. The technique used for dhtmlxGrid is the same for all other DHTMLX components,
including dhtmlxGantt.
We will divide the step into 2 substeps again:
If after completing the step, you will run webhost/codeigniter_dhtmlx/gantt, the app will produce the following gantt that loads data from server and saves them back:
Let's create a View file that will present our gantt.
For a deeper learning of dhtmlxGantt initialization, read:
"views/GanttView.php" file
<!DOCTYPE html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script src="./static/lib/dhtmlxGantt/codebase/dhtmlxgantt.js"></script>
<link rel="stylesheet" href="./static/lib/dhtmlxGantt/codebase/dhtmlxgantt.css">
</head>
<body>
<div id="gantt_here" style='width:100%; height:250px;'></div>
<script type="text/javascript"> gantt.init("gantt_here", new Date(2010,7,1), new Date(2010,8,1));
// refers to the 'data' action that we will create in the next substep
gantt.load("./gantt/data", "xml");
// refers to the 'data' action as well
var dp = new dataProcessor("./gantt/data");
dp.init(gantt);
</script>
</body>
The configuration of GanttConnector is the same as those of GridConnector and SchedulerConnector. Thus, we need to implement the actions below:
To load and process data we will use GanttConnector. A common use of GanttConnector is:
$controller = new GanttConnector($this->db, "PHPCI");
$controller->render_links("gantt_links", "id", "source,target,type");
$controller->render_table("gantt_tasks", "id", "start_date,duration,text,progress,parent");
The GanttConnector constructor takes 2 parameters:
Remember, in case of working with CodeIgniter, the parameters will always get the values:
$this->db and "PHPCI".
The render_links method configures connector, retrieves data from a table with links and takes 3 parameters:
The render_table method configures connector, retrieves data from a table with tasks and takes 3 parameters:
"controllers/Gantt.php" file
<?php
use Dhtmlx\Connector\GanttConnector;
?>
"controllers/Gantt.php" file
<?php
use Dhtmlx\Connector\GanttConnector;
class Gantt extends CI_Controller { // here you should place all your functions } ?>
"controllers/Gantt.php" file
сlass Gantt extends CI_Controller {
public function index(){ $this->load->view("GanttView"); } };
"controllers/Gantt.php" file
class Gantt extends CI_Controller {
public function index(){
$this->load->view("GanttView");
}
public function data(){ $this->load->database(); // data feed $controller = new GanttConnector($this->db, "PHPCI"); $controller->render_links("gantt_links", "id", "source,target,type"); $controller->render_table( "gantt_tasks", "id", "start_date,duration,text,progress,parent" ); } };