• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Extend sdk
 

Extend sdk

on

  • 729 views

This presentation contains description about how to use Developer SDK/API to develop features for langoor.net website builder.

This presentation contains description about how to use Developer SDK/API to develop features for langoor.net website builder.

Statistics

Views

Total Views
729
Views on SlideShare
727
Embed Views
2

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 2

http://extend.langoor.net 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Extend sdk Extend sdk Presentation Transcript

    • Feature SDK / API
      Presentation By:
      Kumar Pratikpratikk@langoor.net
    • Overview: Feature Development
      What a developer should know before coding?
      How widgets work on editor?
      How to create your own feature?
      Creating your first feature ( Hello World! )
      Adding components (widget) to your feature
      SDK / API – Quick Overview
      Response from feature/widgets to editor & website
      Form
      Html
      Code framework functions
      Install
      setProperty
      getProperty
      hasProperty
      Zend DB API
    • What should you know before coding?
      HTML & CSS
      JavaScript (Jqueryframework)
      PHP 5.3
      MySQL
      ZendDB
    • Youtube widget
    • Creating your first feature (hello world)
    • Feature Database
      Every feature has its own database
      When a feature is installed on a domain, it creates a new database (copying from the feature master database)
      Developer can access the database using phpMyAdmin
      A feature can have multiple widgets in it, and all the widgets will use the same database for accessing its data.
    • Feature Database Access database using phpMyAdmin
    • Feature Database Access database using phpMyAdmin
    • // feature.php - Feature Main Installer Class
      // Class pratikHelloWorld extends baseFeature {
      private $key = ‘d21a868268f8a43b268ee4937a1d8161';
      var $db;
      var $instance_id;
      public function __construct($db, $instance_id = -1){
      $this->db = $db;
      $this->instance_id = $instance_id;
      }
      public function setInstanceId($instance_id){
      $this->instance_id = $instance_id;
      }
      public function install($data = array()){
      if(LFeature::setupComplete($this->key,$this->instance_id)){
      $response['done'] = 1;
      $response['action'] = "openWidgetPopup";
      $response['new_widgets'] = LWidget::getWidgetIdsByFeatureKey($this->key);
      }else{
      throw new Exception('Unable to Complete setup');
      }
      return $response;
      }
      //---------------- Developer Code ----------------
      // }
    • // pratikHelloWorldView/widget.php - Feature Main Installer Class
      // Class pratikHelloWorldView extends baseWidget {
      //---------------- Developer Code ----------------
      var $id;
      public function __construct($id, $params=array(), $db){
      $this->db = $db;
      $this->id = $id;
      }
      public function getId() { return $this->id; }
      public function hasProperty() { return 0; }
      public function delete() { }
      private function get() { }
      public function getData() { }
      public static function install($params = array()){
      $response['done'] = 1;
      $response['widget_instance_id'] = -1;
      return $response;
      }
      public functiongetHtml($extra_class=array(),$extra_in_line_style=''){
      $html = '<div style="width:100%; padding-bottom:10px;">';
      $html .= "Hello world!";
      $html .= '</div>';
      return $html;
      }
      public functiongetEditorHtml($extra_class=array(),$extra_in_line_style=''){ return $this->getHtml($extra_class,$extra_in_line_style);}
      // }
    • SDK / API - Response formatcreating a form response (install/getProperty function)
      $response = array();
      $response['done'] = 0;
      $response['action'] = "openDialog";
      $response['dialogContent'] = array( "title"=>'User Comment Widget', "contentType"=>'form', "formaction"=>'install', "content" => array( "fields" => array( array( "label" => 'Name', "name" => 'name', "value" => '', "inputType" => 'input', "class" => 'required' // jQuery Validators ) ) ), "buttonLabel"=>"Install", "type" => "centered“
      );
    • SDK / API - Responsecreating a html response (install/getProperty function)
      $response = array();
      $response['done'] = 0;
      $response['action'] = "openDialog";
      $response['dialogContent'] = array( "title"=>'User Comment Widget', "contentType"=>‘html', "content" => “<h2>html content</h2><br /> This is a test content”, "buttonLabel"=>"Install", "type" => "centered“
      );
    • SDK / API - Responsefor opening widget panel (install/getProperty function)
      $response = array();
      $response['done'] = 1;
      $response['step'] = ++$step;
      $response['widget_instance_id'] = $this->db->lastInsertId();
    • SDK / API - Responsecreating a html response with form (install/getProperty function)
      $html = “
      <h2>html content</h2>
      <br /> This is a test content
      <form action=“addcomment”><table>
      <tr> <td>Name</td>
      <td><input type = “text” name=“name”></td>
      </tr><tr>
      <td>Age</td>
      <td><input type = “text” name=“age” class=“requirednumber”></td>
      </tr>
      </table></form>
      “;
      $response = array();
      $response['done'] = 0;
      $response['action'] = "openDialog";
      $response['dialogContent'] = array( "title"=>'User Comment Widget', "contentType"=>‘html', "content“ => $html,
      "buttonLabel"=>“Add Entry", "type" => "centered“
      );
    • Creating a form handler for widget
      // widget.php
      Public function addcomment($params){
      $params= $params[0];
      $name = $params['name'];
      $age= $params[‘age'];
      $sql = "insert into `l_w_pratikHelloWorld_entry` (`name`, `age`) values (?,?)";
      $res = $this->db->query($sql,array($name,$age));
      return true;
      }
    • Zend DB Sample Query
      $stmt = $db->query(
                  'SELECT * FROM bugs WHERE reported_by = ? AND bug_status = ?',
                  array('goofy', 'FIXED')
              );
      $stmt = $db->query('SELECT * FROM bugs');
       while ($row = $stmt->fetch()) {
          echo $row['bug_description'];
      }
      $stmt = $db->query('SELECT * FROM bugs');
       $rows = $stmt->fetchAll();
       echo $rows[0]['bug_description'];
    • Thank you!
      Kumar Pratik
      pratikk@langoor.net