What is jDrupal?

A JavaScript Library and API for Drupal 8 REST.

What is jDrupal used for?

Drupal 8 Application Development.

What kind of apps?

A variety of application architectures, including...

  • Mobile Applications (Android, iOS, etc)
  • Web Applications
  • Headless Drupal / Decoupled Drupal
  • PhoneGap (Cordova)
  • Drupal Frontend

Drupal 8 REST Tools

  • Connect
  • User Login / Logout & Account Load
  • Create, Retrieve, Update & Delete Nodes
  • Views Integration

jDrupal...

  • solves many common development needs for Drupal based applications.
  • provides a familiar Drupal coding experience and syntax for developers.
  • runs alongside any frontend client side framework, or with no framework at all.
  • utilizes JavaScript prototypes and promises.

Since jDrupal has no dependencies and is written in pure JavaScript, it can be used in a wide variety of architectures and frameworks. Just include it in the <head> of your app's index.html file:

<html>
  <head>
    <!-- ... -->
    <script src="jdrupal.min.js"></script>
    <!-- ... -->
  </head>
  <body><!-- ... --></body>
</html>

Quick Examples

See more examples

// Connect to Drupal and say hello to the current user.
jDrupal.connect().then(function() {
  var user = jDrupal.currentUser();
  var msg = user.isAuthenticated() ?
    'Hello ' + user.getAccountName() : 'Hello World';
  alert(msg);
});
// Load a node and display the title.
jDrupal.nodeLoad(123).then(function(node) {
  alert(node.getTitle());
});
// Login and show the user their id.
jDrupal.userLogin('bob', 'secret').then(function() {
  alert(jDrupal.currentUser().id());
});
// Get results from a view and print the node ids to the console.
jDrupal.viewsLoad('my-view-url').then(function(view) {
  var results = view.getResults();
  for (var i = 0; i < results.length; i ++) {
    var node = new jDrupal.Node(results[i]);
    console.log('node id: ' + node.id());
  }
});

Drupal Render Element

Learn more about jDrupal on the Drupal front end

$element = array(
  '#markup' => '<div id="msg">Loading...</div>',
  '#attached' => array(
    'library' => array(
      'jdrupal/jdrupal',
      'example/app'
    )
  )
);

Drupal 7

jDrupal doesn't need its own module in D7, instead refer to the jDrupal 7 docs for more info.

JavaScript Library

https://github.com/signalpoint/jDrupal

Getting Started

jDrupal is best friends with DrupalGap, the open source application development kit for Drupal websites.

Project information

Releases