Diagram PHP Class Overview

The Kendo UI Diagram for PHP is a server-side wrapper for the Kendo UI Diagram widget.

Getting Started

You can populate a Kendo UI Diagram for PHP with remote binding. The Diagram makes AJAX requests and is bound to JSON result.

Configuration

Below are listed the steps for you to follow when configuring the Kendo UI Diagram for PHP with Ajax binding.

Step 1 Make sure you followed all the steps from the introductory article on Telerik UI for PHP—include the autoloader, JavaScript, and CSS files.

Step 2 Create a Diagram and configure it.

    // Specify the url of the PHP page which will act as the remote service
    $read = new \Kendo\Data\DataSourceTransportRead();
    $read->url('index.php')
          ->contentType('application/json')
          ->type('POST');

    $transport = new \Kendo\Data\DataSourceTransport();
    $transport->read($read);

    // Configure the model
    $model = new \Kendo\Data\HierarchicalDataSourceSchemaModel();
    $model->children("items");

    $schema = new \Kendo\Data\HierarchicalDataSourceSchema();
    $schema->model($model);

    // Configure data source
    $dataSource = new \Kendo\Data\HierarchicalDataSource();
    $dataSource->transport($transport)
               ->schema($schema);

Step 3 Create a Diagram and set its data source.

    $layout = new \Kendo\Dataviz\UI\DiagramLayout();
    $layout->type('layered');

    $diagram = new \Kendo\Dataviz\UI\Diagram('diagram');
    $diagram->dataSource($dataSource)
            ->layout($layout);

Step 4 Output the Diagram by echoing the result of the render method.

    echo $diagram->render();

Event Handling

You can subscribe to all Diagram events.

Specify Function Names

The example below demonstrates how to subscribe for events by specifying a JavaScript function name.

    <?php
    $diagram = new \Kendo\Dataviz\UI\Diagram('diagram');
    $diagram->dataSource($dataSource)
            ->layout($layout);

    // The 'diagram_dataBound' JavaScript function will handle the 'dataBound' event of the diagram
    $diagram->dataBound('diagram_dataBound');

    echo $diagram->render();
    ?>
    <script>
    function diagram_dataBound() {
        // Handle the dataBound event
    }
    </script>

Provide Inline Code

The example below demonstrates how to subscribe to events by providing inline JavaScript code.

    <?php
    $diagram = new \Kendo\Dataviz\UI\Diagram('diagram');
    $diagram->dataSource($dataSource)
            ->layout($layout);

    // Provide inline JavaScript code that will handle the 'dataBound' event of the diagram
    $diagram->dataBound('function() { /* Handle the dataBound event */ }');

    echo $diagram->render();
    ?>

Reference

Client-Side Instances

You are able to reference an existing Diagram instance via the jQuery.data(). Once a reference is established, use the Diagram API to control its behavior.

    // Put this after your Kendo Diagram for PHP
    <script>
        $(function() {
            // Notice that the name of the diagram is used to get its client-side instance
            var diagram = $("#diagram").data("kendoDiagram");
            diagram.layout();
        });
    </script>

See Also

In this article