Skip to content
This repository

an example template integration of drupal and haxe

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 haxe
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Readme.md
Octocat-spinner-32 menur.info
Octocat-spinner-32 menur.module
Readme.md

An example of use of haxe with Drupal.

active the module menur and call url inside your drupal: /haxe/users/5 With an hook menu that call an instance of DrupalDispatcher

function menur_menu() {
  $items['haxe'] = array(
    'page callback' => 'menur_haxe_router',
    'access arguments' => array('access content'), 
  );
  return $items;
}

function menur_haxe_router() {

  require_once dirname(__FILE__).'/haxe/www/lib/php/Boot.class.php';
    $dp=new DrupalDispatcher('haxe');
    return $dp->getOutput();

}

a Dispatcher for routing the url

class DrupalDispatcher {

  var url:String;
  var api:Api;

  function setUrl(base_url:String) {
     url=untyped __php__("$_GET['q']");
     url=url.replace(base_url + "/", "");
  }

  function dispatch() {

    var d = new Dispatch(url,new Hash());
    api=new Api();

    d.onMeta=function(m,value) {
      if (m=="view") api.view=value;
      if (m=="layout") api.layout=value;
    };
    d.dispatch(api);

  }

  public function new(base_url:String) {
    setUrl(base_url);
    dispatch(); 
  }

  public function getOutput():String {
    return api.output;
  }

  public static function main() {}

}

and the api as callback to url route

class Api extends BaseApi {

    public function new() {}

    @view('user')
    function doUsers(d:Dispatch,id:Int) {
      render({
        name:'mario',
        surname:'rossi'
      });
    }
}
Something went wrong with that request. Please try again.