And now, we're going to add a scheduler on the page. The technique used for dhtmlxGrid is the same for all other DHTMLX components,
including dhtmlxScheduler.
We will again divide the step into 2 substeps:
If after completing the step, you will run webhost/laravel_dhtmlx/public/scheduler, the app will produce the following scheduler that loads data from server and saves them back:
We will use a standard code initializing the component again.
For a deeper learning of dhtmlxScheduler initialization, read:
"views/scheduler.php" file
<!DOCTYPE html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<script src="dhtmlxScheduler/codebase/dhtmlxscheduler.js"></script>
<link rel="stylesheet" href="dhtmlxScheduler/codebase/dhtmlxscheduler.css">
</head>
<body>
<div id="scheduler_here" class="dhx_cal_container">
<div class="dhx_cal_navline">
<div class="dhx_cal_prev_button"> </div>
<div class="dhx_cal_next_button"> </div>
<div class="dhx_cal_today_button"></div>
<div class="dhx_cal_date"></div>
<div class="dhx_cal_tab" name="day_tab" style="right:204px;"></div>
<div class="dhx_cal_tab" name="week_tab" style="right:140px;"></div>
<div class="dhx_cal_tab" name="month_tab" style="right:76px;"></div>
</div>
<div class="dhx_cal_header">
</div>
<div class="dhx_cal_data">
</div>
</div>
<script type="text/javascript" charset="utf-8"> document.body.onload = function() {
scheduler.init('scheduler_here',new Date(2010,7,1),"month");
scheduler.setLoadMode("month");
// refers to the 'data' action that we will create in the next substep
scheduler.load("./scheduler_data");
// refers to the 'data' action as well
var dp = new dataProcessor("./scheduler_data");
dp.init(scheduler);
};
</script>
</body>
In the controller, we'll need to implement 2 actions:
To load and process data we will use SchedulerConnector. A common use of SchedulerConnector is:
$connector = new SchedulerConnector(null, "PHPLaravel");
$connector->configure(new SchedulerEvent(),"event_id","start_date,end_date,event_name");
$connector->render();
The GridConnector constructor takes 2 parameters:
The configure method configures the SchedulerConnector object without rendering data and takes 4 parameters:
"controllers/SchedulerController.php" file
<?php
namespace App\Http\Controllers;
use App\SchedulerEvent;
use Dhtmlx\Connector\SchedulerConnector;
"controllers/SchedulerController.php" file
<?php
namespace App\Http\Controllers;
use App\SchedulerEvent;
use Dhtmlx\Connector\SchedulerConnector;
class SchedulercController extends Controller { // here you should place all your functions }
"controllers/SchedulerController.php" file
class SchedulerController extends Controller
{
public function data() { $connector = new SchedulerConnector(null, "PHPLaravel"); $connector->configure( new SchedulerEvent(), "event_id", "start_date, end_date, event_name" ); $connector->render(); } }
$connector->configure(
SchedulerEvent::where('user_id', '=', 1)->get(),
"event_id",
"start_date, end_date, event_name"
);