<div class="demo-section"> <?php $transport = new \Kendo\Data\DataSourceTransport(); $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('navigation.php?type=create')->contentType('application/json')->type('POST'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('navigation.php?type=read')->contentType('application/json')->type('POST'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('navigation.php?type=update')->contentType('application/json')->type('POST'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('navigation.php?type=destroy')->contentType('application/json')->type('POST'); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $productIDField = new \Kendo\Data\DataSourceSchemaModelField('ProductID'); $productIDField->type('number')->editable(false)->nullable(true); $productNameField = new \Kendo\Data\DataSourceSchemaModelField('ProductName'); $productNameField->type('string'); $unitPriceField = new \Kendo\Data\DataSourceSchemaModelField('UnitPrice'); $unitPriceField->type('number'); $unitsInStockField = new \Kendo\Data\DataSourceSchemaModelField('UnitsInStock'); $unitsInStockField->type('number'); $discontinuedField = new \Kendo\Data\DataSourceSchemaModelField('Discontinued'); $discontinuedField->type('boolean'); $model->id('ProductID')->addField($productIDField)->addField($productNameField)->addField($unitPriceField)->addField($discontinuedField)->addField($unitsInStockField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->errors('errors')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->batch(true)->schema($schema)->pageSize(4); $listview = new \Kendo\UI\ListView('listView');
} require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('index.php?type=create')->contentType('application/json')->type('POST'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('index.php?type=read')->contentType('application/json')->type('POST'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('index.php?type=update')->contentType('application/json')->type('POST'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('index.php?type=destroy')->contentType('application/json')->type('POST'); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $taskIDField = new \Kendo\Data\DataSourceSchemaModelField('taskID'); $taskIDField->type('number')->from('TaskID')->nullable(true); $titleField = new \Kendo\Data\DataSourceSchemaModelField('title'); $titleField->from('Title')->defaultValue('No title')->validation(array('required' => true)); $startField = new \Kendo\Data\DataSourceSchemaModelField('start'); $startField->type('date')->from('Start'); $startTimezoneField = new \Kendo\Data\DataSourceSchemaModelField('startTimezone'); $startTimezoneField->from('StartTimezone'); $endField = new \Kendo\Data\DataSourceSchemaModelField('end'); $endField->type('date')->from('End'); $endTimezoneField = new \Kendo\Data\DataSourceSchemaModelField('endTimezone'); $endTimezoneField->from('EndTimezone'); $isAllDayField = new \Kendo\Data\DataSourceSchemaModelField('isAllDay'); $isAllDayField->type('boolean')->from('IsAllDay'); $descriptionField = new \Kendo\Data\DataSourceSchemaModelField('description'); $descriptionField->type('string')->from('Description');
<script type="text/x-kendo-tmpl" id="template"> <div class="product"> <img src="../content/web/foods/#:ProductID#.jpg" alt="#:ProductName# image" /> <h3>#:ProductName#</h3> </div> </script> <div class="demo-section"> <?php $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('selection.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $productNameField = new \Kendo\Data\DataSourceSchemaModelField('ProductName'); $productNameField->type('string'); $unitPriceField = new \Kendo\Data\DataSourceSchemaModelField('UnitPrice'); $unitPriceField->type('number'); $unitsInStockField = new \Kendo\Data\DataSourceSchemaModelField('UnitsInStock'); $unitsInStockField->type('number'); $model->addField($productNameField)->addField($unitPriceField)->addField($unitsInStockField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->schema($schema)->pageSize(12); $listview = new \Kendo\UI\ListView('listView'); $listview->dataSource($dataSource)->templateId('template')->selectable('multiple')->pageable(true)->dataBound("onDataBound")->change("onChange"); echo $listview->render(); ?> </div>
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $result = new DataSourceResult('sqlite:..//sample.db'); echo json_encode($result->read('Orders', array('OrderID', 'ShipCountry', 'ShipAddress', 'ShipName', 'EmployeeID'), $request)); exit; } require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('column-menu.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $orderIDField = new \Kendo\Data\DataSourceSchemaModelField('OrderID'); $orderIDField->type('number'); $shipNameField = new \Kendo\Data\DataSourceSchemaModelField('ShipName'); $shipNameField->type('string'); $shipAddressField = new \Kendo\Data\DataSourceSchemaModelField('ShipAddress'); $shipAddressField->type('string'); $shipCountryField = new \Kendo\Data\DataSourceSchemaModelField('ShipCountry'); $shipCountryField->type('string'); $model->addField($orderIDField)->addField($shipNameField)->addField($shipAddressField)->addField($shipCountryField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->pageSize(30)->schema($schema)->serverSorting(true)->serverFiltering(true)->serverPaging(true); $grid = new \Kendo\UI\Grid('grid'); $orderID = new \Kendo\UI\GridColumn(); $orderID->field('OrderID')->width(130)->title('Order ID');
function create_makerfaire_scheduler($faire_id) { $transport = new \Kendo\Data\DataSourceTransport(); $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('makerfaire-scheduling-tasks.php?type=create')->contentType('application/json')->type('POST')->dataType('json'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('makerfaire-scheduling-tasks.php?type=read')->contentType('application/json')->type('GET')->dataType('json'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('makerfaire-scheduling-tasks.php?type=update')->contentType('application/json')->type('POST')->dataType('json'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('makerfaire-scheduling-tasks.php?type=destroy')->contentType('application/json')->type('POST')->dataType('json'); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $locationIdField = new \Kendo\Data\DataSourceSchemaModelField('locationID'); $locationIdField->type('number')->from('locationID')->nullable(true); $titleField = new \Kendo\Data\DataSourceSchemaModelField('title'); $titleField->from('Title')->defaultValue('No title')->validation(array('required' => false)); $startField = new \Kendo\Data\DataSourceSchemaModelField('start'); $startField->type('date')->from('Start'); $endField = new \Kendo\Data\DataSourceSchemaModelField('end'); $endField->type('date')->from('End'); $isAllDayField = new \Kendo\Data\DataSourceSchemaModelField('isAllDay'); $isAllDayField->type('boolean')->from('IsAllDay'); $subareaIdField = new \Kendo\Data\DataSourceSchemaModelField('subareaId'); $subareaIdField->from('SubareaID')->nullable(true); $entriesField = new \Kendo\Data\DataSourceSchemaModelField('entries'); $entriesField->from('Entries')->nullable(true); $model->id('locationID')->addField($locationIdField)->addField($titleField)->addField($startField)->addField($endField)->addField($isAllDayField)->addField($subareaIdField)->addField($entriesField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->model($model); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->schema($schema)->batch(false); $subareasResource = new \Kendo\UI\SchedulerResource(); $locations_array = get_entry_locations($faire_id); $subareasResource->field('subareaId')->title('Stage')->name('Stages')->dataSource($locations_array); $entries = get_entries($faire_id); $entriesResource = new \Kendo\UI\SchedulerResource(); $entriesResource->field('entries')->title('Presenter')->multiple(true)->name('Presenters')->dataSource($entries); $pdf = new \Kendo\UI\SchedulerPdf(); $pdf->fileName('Kendo UI Scheduler Export.pdf')->proxyURL('makerfaire-scheduling.php?type=save'); $scheduler = new \Kendo\UI\Scheduler('scheduler'); $scheduler->eventTemplateId('presentation-template')->timezone('UTC')->currentTimeMarker(false)->date(new DateTime('2015/9/26 00:00', new DateTimeZone('UTC')))->height(900)->pdf($pdf)->addToolbarItem(new \Kendo\UI\SchedulerToolbarItem('pdf'))->addResource($subareasResource, $entriesResource)->group(array('resources' => array('Stages')))->addView(array('type' => 'day', 'majorTick' => 30, 'showWorkHours' => true, 'workWeekEnd' => 7, 'workDayStart' => new DateTime('2015/1/1 15:00', new DateTimeZone('UTC')), 'workDayEnd' => new DateTime('2015/1/1 24:00', new DateTimeZone('UTC'))), array('type' => 'workWeek', 'majorTick' => 30, 'selected' => true, 'workWeekStart' => 5, 'workWeekEnd' => 7, 'showWorkHours' => true, 'workDayStart' => new DateTime('2015/1/1 15:00', new DateTimeZone('UTC')), 'workDayEnd' => new DateTime('2015/1/1 24:00', new DateTimeZone('UTC'))), 'agenda')->dataSource($dataSource); return $scheduler; }
} require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('resources.php?type=create')->contentType('application/json')->type('POST'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('resources.php?type=read')->contentType('application/json')->type('POST'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('resources.php?type=update')->contentType('application/json')->type('POST'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('resources.php?type=destroy')->contentType('application/json')->type('POST'); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $meetingIdField = new \Kendo\Data\DataSourceSchemaModelField('meetingID'); $meetingIdField->type('number')->from('MeetingID')->nullable(true); $titleField = new \Kendo\Data\DataSourceSchemaModelField('title'); $titleField->from('Title')->defaultValue('No title')->validation(array('required' => true)); $startField = new \Kendo\Data\DataSourceSchemaModelField('start'); $startField->type('date')->from('Start'); $startTimezoneField = new \Kendo\Data\DataSourceSchemaModelField('startTimezone'); $startTimezoneField->from('StartTimezone'); $endField = new \Kendo\Data\DataSourceSchemaModelField('end'); $endField->type('date')->from('End'); $endTimezoneField = new \Kendo\Data\DataSourceSchemaModelField('endTimezone'); $endTimezoneField->from('EndTimezone'); $isAllDayField = new \Kendo\Data\DataSourceSchemaModelField('isAllDay'); $isAllDayField->type('boolean')->from('IsAllDay'); $descriptionField = new \Kendo\Data\DataSourceSchemaModelField('description'); $descriptionField->type('string')->from('Description');
<?php require_once '../lib/Kendo/Autoload.php'; require_once '../include/header.php'; $data = array(array('meetingID' => 1, 'title' => 'Call Charlie about the project', 'start' => new DateTime('2013/6/13 10:30'), 'end' => new DateTime('2013/6/13 11:30'), 'roomId' => 1, 'attendee' => 1), array('meetingID' => 2, 'title' => 'Performance review', 'start' => new DateTime('2013/6/13 9:00'), 'end' => new DateTime('2013/6/13 12:30'), 'roomId' => 2, 'attendee' => 2), array('meetingID' => 3, 'title' => 'HR Lecture', 'start' => new DateTime('2013/6/13 13:00'), 'end' => new DateTime('2013/6/13 14:30'), 'roomId' => 1, 'attendee' => 2)); $model = new \Kendo\Data\DataSourceSchemaModel(); $startField = new \Kendo\Data\DataSourceSchemaModelField('start'); $startField->type('date'); $endField = new \Kendo\Data\DataSourceSchemaModelField('end'); $endField->type('date'); $titleField = new \Kendo\Data\DataSourceSchemaModelField('title'); $titleField->defaultValue('No title')->validation(array('required' => true)); $roomIdField = new \Kendo\Data\DataSourceSchemaModelField('roomId'); $roomIdField->nullable(true); $attendeeField = new \Kendo\Data\DataSourceSchemaModelField('attendee'); $attendeeField->defaultValue(1); $model->id('meetingID')->addField($roomIdField)->addField($startField)->addField($endField)->addField($attendeeField)->addField($titleField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->model($model); $dataSource = new \Kendo\Data\DataSource(); $dataSource->data($data)->schema($schema); $roomResource = new \Kendo\UI\SchedulerResource(); $roomResource->field('roomId')->title('Room')->name('Rooms')->dataSource(array(array('text' => 'Meeting Room 101', 'value' => 1, 'color' => '#6eb3fa'), array('text' => 'Meeting Room 201', 'value' => 2, 'color' => '#f58a8a'))); $attendeesResource = new \Kendo\UI\SchedulerResource(); $attendeesResource->field('attendee')->title('Attendee')->name('Attendee')->dataSource(array(array('text' => 'Alex', 'value' => 1, 'color' => '#f8a398'), array('text' => 'Bob', 'value' => 2, 'color' => '#51a0ed'))); $scheduler = new \Kendo\UI\Scheduler('scheduler'); $scheduler->date(new DateTime('2013/6/13'))->height(600)->addResource($attendeesResource, $roomResource)->group(array('resources' => array('Rooms')))->addView(array('type' => 'day', 'startTime' => new DateTime('2013/6/13 7:00')))->resize('scheduler_resize')->resizeEnd('scheduler_resizeEnd')->move('scheduler_move')->moveEnd('scheduler_moveEnd')->addEvent('scheduler_add')->save('scheduler_save')->dataSource($dataSource); echo $scheduler->render(); ?> <script>
require_once '../include/header.php'; $categories = $result->read('Categories', array('CategoryID as value', 'CategoryName as text')); $transport = new \Kendo\Data\DataSourceTransport(); $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('foreignkeycolumn.php?type=create')->contentType('application/json')->type('POST'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('foreignkeycolumn.php?type=read')->contentType('application/json')->type('POST'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('foreignkeycolumn.php?type=update')->contentType('application/json')->type('POST'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('foreignkeycolumn.php?type=destroy')->contentType('application/json')->type('POST'); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $productIDField = new \Kendo\Data\DataSourceSchemaModelField('ProductID'); $productIDField->type('number')->editable(false)->nullable(true); $productNameField = new \Kendo\Data\DataSourceSchemaModelField('ProductName'); $productNameField->type('string')->validation(array('required' => true)); $unitPriceValidation = new \Kendo\Data\DataSourceSchemaModelFieldValidation(); $unitPriceValidation->required(true)->min(1); $unitPriceField = new \Kendo\Data\DataSourceSchemaModelField('UnitPrice'); $unitPriceField->type('number')->validation($unitPriceValidation); $categoryIDField = new \Kendo\Data\DataSourceSchemaModelField('CategoryID'); $categoryIDField->type('number'); $model->id('ProductID')->addField($productIDField)->addField($productNameField)->addField($unitPriceField)->addField($categoryIDField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->errors('errors')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->batch(true)->pageSize(30)->schema($schema); $grid = new \Kendo\UI\Grid('grid');
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $result = new DataSourceResult('sqlite:..//sample.db'); echo json_encode($result->read('Orders', array('ShipName', 'Freight' => array('type' => 'number'), 'OrderDate', 'OrderID', 'ShipCity'), $request)); exit; } require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('remote-data-binding.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $shipNameField = new \Kendo\Data\DataSourceSchemaModelField('ShipName'); $shipNameField->type('string'); $shipCityField = new \Kendo\Data\DataSourceSchemaModelField('ShipCity'); $shipCityField->type('string'); $orderIDField = new \Kendo\Data\DataSourceSchemaModelField('OrderID'); $orderIDField->type('number'); $freightField = new \Kendo\Data\DataSourceSchemaModelField('Freight'); $freightField->type('number'); $orderDateField = new \Kendo\Data\DataSourceSchemaModelField('OrderDate'); $orderDateField->type('date'); $model->addField($shipNameField)->addField($freightField)->addField($orderIDField)->addField($shipCityField)->addField($orderDateField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->pageSize(10)->schema($schema)->serverFiltering(true)->serverSorting(true)->serverPaging(true); $grid = new \Kendo\UI\Grid('grid');
require_once 'lib/Kendo/Autoload.php'; include 'header.php'; // --------- Kendo UI DataSource Transport ------- $create = new \Kendo\Data\DataSourceTransportCreate(); $create->url('/api/products/create.php')->contentType('application/json')->type('POST'); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('/api/products/read.php')->contentType('application/json')->type('POST'); $update = new \Kendo\Data\DataSourceTransportUpdate(); $update->url('/api/products/update.php')->contentType('application/json')->type('PUT'); $destroy = new \Kendo\Data\DataSourceTransportDestroy(); $destroy->url('/api/products/destroy.php')->contentType('application/json')->type('POST'); $transport = new \Kendo\Data\DataSourceTransport(); $transport->create($create)->read($read)->update($update)->destroy($destroy)->parameterMap('function(data) { return kendo.stringify(data); }'); // --------- Kendo UI DataSource Schema ------- $model = new \Kendo\Data\DataSourceSchemaModel(); $productNameField = new \Kendo\Data\DataSourceSchemaModelField('ProductName'); $productNameField->type('string'); $unitPriceField = new \Kendo\Data\DataSourceSchemaModelField('UnitPrice'); $unitPriceField->type('number'); $unitsInStockField = new \Kendo\Data\DataSourceSchemaModelField('UnitsInStock'); $unitsInStockField->type('number'); $supplierField = new \Kendo\Data\DataSourceSchemaModelField("Supplier"); $supplierField->defaultValue(new stdClass()); $categoryField = new \Kendo\Data\DataSourceSchemaModelField("Category"); $categoryField->defaultValue(new stdClass()); $model->id("ProductID")->addField($productNameField)->addField($unitPriceField)->addField($unitsInStockField)->addField($supplierField)->addField($categoryField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); // --------- Kendo UI DataSource ------- $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->pageSize(5)->schema($schema)->serverPaging(true);
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $result = new DataSourceResult('sqlite:..//sample.db'); echo json_encode($result->read('Orders', array('ShipCountry', 'Freight', 'OrderDate'), $request)); exit; } require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('selection.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $shipCountryField = new \Kendo\Data\DataSourceSchemaModelField('ShipCountry'); $shipCountryField->type('string'); $frieghtField = new \Kendo\Data\DataSourceSchemaModelField('Frieght'); $frieghtField->type('number'); $orderDateField = new \Kendo\Data\DataSourceSchemaModelField('OrderDate'); $orderDateField->type('date'); $model->addField($shipCountryField)->addField($frieghtField)->addField($orderDateField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->pageSize(5)->serverPaging(true)->serverSorting(true)->schema($schema); $shipCountry = new \Kendo\UI\GridColumn(); $shipCountry->field('ShipCountry')->width(300)->title('Ship Country'); $freight = new \Kendo\UI\GridColumn(); $freight->field('Freight')->width(300); $orderDate = new \Kendo\UI\GridColumn();
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $result = new DataSourceResult('sqlite:..//sample.db'); echo json_encode($result->read('Customers', array('ContactName', 'ContactTitle', 'CompanyName', 'Country'), $request)); exit; } require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('index.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $contactNameField = new \Kendo\Data\DataSourceSchemaModelField('ContactName'); $contactNameField->type('string'); $contactTitleField = new \Kendo\Data\DataSourceSchemaModelField('ContactTitle'); $contactTitleField->type('string'); $companyNameField = new \Kendo\Data\DataSourceSchemaModelField('CompanyName'); $companyNameField->type('string'); $countryField = new \Kendo\Data\DataSourceSchemaModelField('Country'); $countryField->type('string'); $model->addField($contactNameField)->addField($contactTitleField)->addField($companyNameField)->addField($countryField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->errors('errors')->groups('groups')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->pageSize(10)->serverPaging(true)->serverSorting(true)->serverGrouping(true)->schema($schema); $grid = new \Kendo\UI\Grid('grid'); $contactName = new \Kendo\UI\GridColumn(); $contactName->field('ContactName')->title('Contact Name')->width(140);
public function __construct(array $cfg) { if (isset($cfg['primary'])) { $this->id = isset($cfg['id']) ? $cfg['id'] : \bbn\str\text::genpwd(); $this->primary = $cfg['primary']; if (!isset($cfg['builder'])) { $cfg['builder'] = new \bbn\html\builder(); } $this->builder = $cfg['builder']; $this->grid = new \Kendo\UI\Grid($this->id); $this->dataSource = new \Kendo\Data\DataSource(); if (isset($cfg['data'])) { $this->dataSource->data($cfg['data']); } $this->schema = new \Kendo\Data\DataSourceSchema(); $this->schema->data('data'); $this->schema->total('total'); $this->model = new \Kendo\Data\DataSourceSchemaModel(); $this->model->id($cfg['primary']); foreach ($cfg['elements'] as $e) { if (isset($e['attr']['name'])) { $field = new \Kendo\Data\DataSourceSchemaModelField($e['attr']['name']); if (isset($e['attr']['name']) && isset($e['editable']) && $e['editable']) { if (isset($e['type'])) { $field->type($e['type']); } if (isset($e['null']) && $e['null']) { $field->nullable(true); } if (isset($e['attr']['readonly']) && $e['attr']['readonly']) { $field->editable(false); } else { if (isset($e['validation'])) { $field->validation($e['validation']); } } $this->model->addField($field); } if (empty($e['editable'])) { $field->editable(false); } if (!empty($e['default'])) { $field->defaultValue($e['default']); } } $col = new \Kendo\UI\GridColumn(); if (!isset($e['field']) || $e['field'] !== 'hidden') { if (isset($e['editable']) && $e['editable']) { /* if ( !isset($e['editor']) ){ $input = $this->builder->input($e, 1); $sc = $input->ele_and_script(); $e['editor'] = new \Kendo\JavaScriptFunction('function(container, options) { '.$sc[0].'.appendTo(container)'.$sc[1].' }'); } $col->editor($e['editor']); * */ } if (isset($e['raw'])) { $col->encoded(false); } if (isset($e['data'])) { $col->values($e['data']); } if (isset($e['label'])) { $col->title($e['label']); } if (isset($e['attr']['name'])) { $col->field($e['attr']['name']); } if (isset($e['width'])) { $col->width((int) $e['width']); } if (isset($e['format'])) { $col->format('{0:' . $e['format'] . '}'); } if (isset($e['hidden'])) { $col->hidden(true); } if (isset($e['template'])) { $col->template($e['template']); } if (isset($e['editor'])) { $col->editor($e['editor']); } if (isset($e['encoded'])) { $col->encoded($e['encoded']); } if (isset($e['commands'])) { foreach ($e['commands'] as $c) { if (isset($c['click'])) { $c['click'] = new \Kendo\JavaScriptFunction($c['click']); } $col->addCommandItem($c); } } if (count(\bbn\tools::to_array($col)) > 0) { $this->grid->addColumn($col); } } } if (isset($cfg['url'])) { $this->transport = new \Kendo\Data\DataSourceTransport(); if (isset($cfg['all'])) { $this->set_all($cfg['url']); } else { if (isset($cfg['select'])) { $this->set_select($cfg['select'] === 1 || $cfg['select'] === 'on' ? 'json/select/' . $cfg['url'] : $cfg['select']); } if (isset($cfg['insert'])) { $this->set_insert($cfg['insert'] === 1 || $cfg['insert'] === 'on' ? 'json/insert/' . $cfg['url'] : $cfg['insert']); } if (isset($cfg['update'])) { $this->set_update($cfg['update'] === 1 || $cfg['update'] === 'on' ? 'json/update/' . $cfg['url'] : $cfg['update']); } if (isset($cfg['delete'])) { $this->set_delete($cfg['delete'] === 1 || $cfg['delete'] === 'on' ? 'json/delete/' . $cfg['url'] : $cfg['delete']); } } $this->dataSource->transport($this->transport); } if (isset($cfg['data'])) { $this->dataSource->data($cfg['data']); } $this->schema->model($this->model); $this->dataSource->schema($this->schema)->pageSize(50); $this->grid->attr("class", "appui-full-height")->datasource($this->dataSource)->editable(['mode' => 'popup'])->filterable(true)->resizable(true)->sortable(true)->groupable(true)->pageable(true)->columnMenu(true)->edit(new \Kendo\JavaScriptFunction('function(){ $(".k-edit-form-container").parent().css({ height:"auto", width:720, "max-height":appui.v.height-100 }).restyle().data("kendoWindow").title("' . \bbn\str\text::escape_dquotes($cfg['description']) . '").center(); }')); $this->cfg['args'] = [$this->id]; $this->cfg['datasource']['schema']['model']['id'] = $this->primary; } }
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Content-Type: application/json'); $request = json_decode(file_get_contents('php://input')); $result = new DataSourceResult('sqlite:..//sample.db'); echo json_encode($result->read('Employees', array('EmployeeID', 'FirstName', 'LastName', 'Title', 'Country'), $request)); exit; } require_once '../include/header.php'; $transport = new \Kendo\Data\DataSourceTransport(); $read = new \Kendo\Data\DataSourceTransportRead(); $read->url('rowtemplate.php')->contentType('application/json')->type('POST'); $transport->read($read)->parameterMap('function(data) { return kendo.stringify(data); }'); $model = new \Kendo\Data\DataSourceSchemaModel(); $employeeIDField = new \Kendo\Data\DataSourceSchemaModelField('EmployeeID'); $employeeIDField->type('number'); $firstNameField = new \Kendo\Data\DataSourceSchemaModelField('FirstName'); $firstNameField->type('string'); $lastNameField = new \Kendo\Data\DataSourceSchemaModelField('LastName'); $lastNameField->type('string'); $countryField = new \Kendo\Data\DataSourceSchemaModelField('Country'); $countryField->type('string'); $photoField = new \Kendo\Data\DataSourceSchemaModelField('Photo'); $photoField->type('string'); $model->addField($employeeIDField)->addField($firstNameField)->addField($lastNameField)->addField($countryField)->addField($photoField); $schema = new \Kendo\Data\DataSourceSchema(); $schema->data('data')->model($model)->total('total'); $dataSource = new \Kendo\Data\DataSource(); $dataSource->transport($transport)->schema($schema); $picture = new \Kendo\UI\GridColumn();