Multilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella

Size: px
Start display at page:

Download "Multilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella"

Transcription

1 Multilingual content in Drupal 8: a highly evolved permutated API DrupalCamp Vienna 2013 Francesco Placella

2 Francesco Placella // plach From Venice, Italy Studied at Ca' Foscari University Owner at PSEGNO Drupal since

3 Outline Drupal 7: a bit of history Drupal 8: entity API overview The content translation UI Entity storage and querying The entity translation API What's left?

4 D7 Field Language API Anatomy of field data $entity->{$field_name}[$langcode][$delta][$column] Field translatability $node->body['en'][0]['value'] $node->body['de'][0]['value'] $node->field_tags[language_none][0]['tid'] Field attach behavior all languages for storage single language for forms and view Good consistency vs bad DX

5 D7 Entity Language API Incomplete Entity API in core entity_language($langcode) Entity API module $entity_wrapper->language($langcode) $entity->gettranslation($property, $langcode = NULL) Entity Translation module CRUD hooks hook_entity_translation_insert(... ) hook_entity_translation_update(... ) hook_entity_translation_delete(... ) Spread in three places and inconsistent

6 D7 translation models Two competing approaches to translating content node translation (core) field translation (core API + contrib UI) Why not node translation? only nodes problems with references sharing data across translations

7 D8 translation model Having two models in core is bad site builders have to choose one developers have to support both everyone has to understand both Increased cognitive / operative / maintenance burden The solution: an unified model every piece of entity data is translatable only one entity for each translation set

8 D8 Entity API Classed objects encapsulated data interfaces and swappable implementations More (swappable) controllers storage, form, translation, render, access, Entity Field API improved DX! unified API for fields (base / dynamic) field definitions (Typed Data API)

9 The Content Translation UI Content Content entity Applies to any translatable entity type Translatability has column granularity entity type bundle field column Exploits language-aware entity forms Is enhanced through translation controllers

10 Entity Storage... Every field needs to be translatable: how? D7 has just a one-off solution Title module D7 fields have native multilingual storage We need multilingual storage for every field The Entity Storage API per-entity storage instead of per-field storage storage-agnostic entities

11 and Querying No fixed storage layout for fields Data is retrieved by querying + loading Entity Query (EFQ v2) multiple / swappable query back-ends improved condition interface unified interface (similar to DBTNG) AND/OR condition groups support for joins and aggregation Entity caching and lazy-loading

12 Multilingual entity queries The Entity Query API does not make any assumption on language conditions $result = \Drupal::entityQuery('node') ->condition('promote', 1) ->condition('status', 1) ->execute(); // Nodes with one published/promoted translation $result = \Drupal::entityQuery('node') ->condition('promote', 1) ->condition('status', 1) ->condition('langcode', 'en') ->execute(); // Nodes with one english promoted translation $result = \Drupal::entityQuery('node') ->condition('promote', 1) ->condition('status', 1) ->condition('default_langcode', 1) ->execute(); // Nodes with promoted original values

13 Core SQL storage Dynamic fields still have per-field tables native multilingual support Base fields get a table layout supporting multilingual base table revision table (base) field data table (base) field revision data table Only the base table is required

14 SQL storage performance This table layout imposes a performance penalty on monolingual sites on query composite PKs, additional joins on save additional records stored How to mitigate that? automatically generate tables dynamically switch table layout Potential improvement by disabling (unused) revision support

15 The Entity Translation API Every entity translation is a different translation object $value = $entity->foo->value; $translation = $entity->gettranslation('it'); $it_value = $translation->foo->value; Field language is no longer exposed in the public API Unified and streamlined existing APIs native hooks

16 Accessing field data We no longer need to worry about field translatability D7 // Determine the $active_langcode somehow. $field = field_info_field('field_foo'); $langcode = field_is_translatable($entity_type, $field)? $active_langcode : LANGUAGE_NONE; $value = $entity->field_foo[$langcode][0]['value']; D8 // Determine the $active_langcode somehow. $translation = $entity->gettranslation($active_langcode); $value = $translation->field_foo->value; The entity system handles it internally

17 The active language Translation objects are plain entity objects D7 function entity_do_stuff($entity, $langcode = NULL) { if (!isset($langcode)) { $langcode = $GLOBALS['language_content']->language; } $field = field_info_field('field_foo'); $langcode = field_is_translatable($entity_type, $field)? $langcode : LANGUAGE_NONE; if (!empty($entity->field_foo[$langcode])) { $value = $entity->field_foo[$langcode][0]['value']; // do stuff } } No need to pass along the active language

18 The active language (2) D8 $langcode = Drupal::languageManager() ->getlanguage(language::type_content); $translation = $entity->gettranslation($langcode); entity_do_stuff($translation); function entity_do_stuff(entityinterface $entity) { $value = $entity->field_foo->value; $langcode = $entity->language()->id; // do stuff } Just figure out the active language once No need to pass it along Language-agnostic code!

19 Determining the active language In D7 only features field language fallback function field_attach_view($entity_type, $entity, $view_mode, $langcode = NULL, $options = array()) { $display_language = field_language($entity_type, $entity, NULL, $langcode); $options['language'] = $display_language; $null = NULL; $output = _field_invoke_default('view', $entity_type, $entity, $view_mode, $null, $options); return $output; } field_language() makes sense / can be used only in rendering contexts if a field value is empty another value in a different language is picked

20 Determining the active language (2) D8 features a reusable entity language negotiation API public function viewentity(entityinterface $entity, $view_mode = 'full', $langcode = NULL) { $langcode = NULL; // Defaults to the current language $translation = $this->entitymanager ->gettranslationfromcontext($entity, $langcode); $build = entity_do_stuff($translation, 'full'); return $build; } negotiation is applied to the whole entity negotiation is alterable by modules empty values will just not be displayed

21 Determining the active language (3) A context can be provided function node_tokens($type, $tokens, array $data = array(), array $options = array()) { if (!isset($options['langcode'])) { $langcode = Language::LANGCODE_DEFAULT; } // The default operation is 'entity_view'. $context = array('operation' => 'node_tokens'); $translation = \Drupal::entityManager() ->gettranslationfromcontext( $data['node'], $langcode, $context ); $items = $translation->get('body'); // do stuff } the default behavior works correctly for rendering and forms

22 API use cases: shared data Field data is shared among all the translation objects $entity->langcode->value = 'en'; $translation = $entity->gettranslation('it'); $en_value = $entity->field_foo->value; $it_value = $translation->field_foo->value; $entity->field_untranslatable->value = 'foo'; $translation->field_untranslatable->value = 'bar'; $value = $entity->field_untranslatable->value; // $value is 'bar' Updated values are available for all the translation objects

23 API use cases: instantiating translations A translation object can be instantiated from any entity / translation object $entity->langcode->value = 'en'; $translation = $entity->gettranslation('it'); $langcode = $translation->language()->id; // $langcode is 'it'; $untranslated_entity = $translation->getuntranslated(); $langcode = $untranslated_entity->language()->id; // $langcode is 'en'; $identical = $entity === $untranslated_entity; // $identical is TRUE $entity_langcode = $translation->getuntranslated()->language()->id; // $entity_langcode is 'en'

24 API use cases: translation handling // Acting an all translations. $languages = $entity->gettranslationlanguages(); foreach ($languages as $langcode => $language) { $translation = $entity->gettranslation($langcode); entity_do_stuff($translation); } if (!$entity->hastranslation('fr')) { $translation = $entity ->addtranslation('fr', array('field_foo' => 'bag')); } // Which is equivalent to the following code, although if an // invalid language code is specified an exception is thrown. $translation = $entity->gettranslation('fr'); $translation->field_foo->value = 'bag'; // Accessing a field on a removed translation object causes an // exception to be thrown. $translation = $entity->gettranslation('it'); $entity->removetranslation('it'); $value = $translation->field_foo->value; // throws an exception

25 API use cases: storage hooks When entity translations are added to or removed from the storage the following hooks are fired respectively: hook_entity_translation_insert() hook_entity_translation_delete()

26 What is missing? Completing Entity Query conversion Dynamic SQL storage multilingual support for all core entity types Make base field definitions translatable (node) UX improvements

27 The Migration API Upgrade from D7 migrate node-based translations migrate field data (contrib) migrate Entity Translation data Support dynamic table layout switching when data is available? <g>

28 More links Entity Translation API Entity Storage (Prague notes) Content Translation UI (celebration video)

29 Questions?

30 Thank you!

The truth about Drupal

The truth about Drupal The truth about Drupal Why Drupal is great Large community of 3rd party developer Quality control over contributed code Most of the indispensable contributed modules are maintained by solid development

More information

How To Fix A Bug In Drupal 8.Dev

How To Fix A Bug In Drupal 8.Dev Drupal 8 Configuration system for coders and site builders who am I? Kristof De Jaeger @swentel co-founder of eps & kaas co-maintainer of Field API Original creator of Display Suite Outline What s the

More information

Entites in Drupal 8. Sascha Grossenbacher Christophe Galli

Entites in Drupal 8. Sascha Grossenbacher Christophe Galli Entites in Drupal 8 Sascha Grossenbacher Christophe Galli Who are we? Sascha (berdir) Christophe (cgalli) Active core contributor Entity system maintainer Porting and maintaining lots of D8 contrib projects

More information

Drupal 8 The site builder's release

Drupal 8 The site builder's release Drupal 8 The site builder's release Antje Lorch @ifrik DrupalCamp Vienna 2015 #dcvie drupal.org/u/ifrik about me Sitebuilder Building websites for small NGOs and grassroots organisations Documentation

More information

Linked Data Publishing with Drupal

Linked Data Publishing with Drupal Linked Data Publishing with Drupal Joachim Neubert ZBW German National Library of Economics Leibniz Information Centre for Economics SWIB13 Workshop Hamburg, Germany 25.11.2013 ZBW is member of the Leibniz

More information

Migrating into Drupal 8

Migrating into Drupal 8 Migrating into Drupal 8 Ryan Weal, Kafei Interactive Inc. Montréal QC [email protected] Drupal.org : https://drupal.org/user/412402 Twitter : http://twitter.com/ryan_weal IRC : weal What is migrate? A collection

More information

MASTER DRUPAL 7 MODULE DEVELOPMENT

MASTER DRUPAL 7 MODULE DEVELOPMENT MASTER DRUPAL 7 MODULE DEVELOPMENT by blair wadman sample available for purchase at http://befused.com/master-drupal/ LESSON 1 INTRODUCTION In this section, you will be introduced to the core Drupal concepts

More information

API Architecture. for the Data Interoperability at OSU initiative

API Architecture. for the Data Interoperability at OSU initiative API Architecture for the Data Interoperability at OSU initiative Introduction Principles and Standards OSU s current approach to data interoperability consists of low level access and custom data models

More information

The following is a comparison between CiviCRM, RedHen and CRM Core which are the leading option for CRM in the Drupal Community.

The following is a comparison between CiviCRM, RedHen and CRM Core which are the leading option for CRM in the Drupal Community. The following is a comparison between CiviCRM, RedHen and CRM Core which are the leading option for CRM in the Drupal Community. Feature CiviCRM RedHen CRM Core Create contacts for individuals, organizations

More information

Drupal 8. Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal [email protected]

Drupal 8. Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal engr.shabir@yahoo.com Drupal 8 Core and API Changes Shabir Ahmad MS Software Engg. NUST Principal Software Engineser PHP/Drupal [email protected] Agenda What's coming in Drupal 8 for o End users and clients? o Site builders?

More information

Everything you ever wanted to know about Drupal 8*

Everything you ever wanted to know about Drupal 8* Everything you ever wanted to know about Drupal 8* but were too afraid to ask *conditions apply So you want to start a pony stud small horses, big hearts Drupal 8 - in a nutshell Learn Once - Apply Everywhere*

More information

Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group

Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group Rules!?!? Reaction rules or so called ECA-Rules Event-driven conditionally

More information

Configuration Management in Drupal 8. Andrea Pescetti Nuvole

Configuration Management in Drupal 8. Andrea Pescetti Nuvole Configuration Management in Drupal 8 Andrea Pescetti Nuvole Nuvole Parma Brussels Prague Pioneers of Code Driven Development: configuration management for Drupal 6 and Drupal 7. Successfully used in projects

More information

Drupal Module Development

Drupal Module Development Drupal Module Development Or: How I Learned to Stop Worrying and Love the Module Alastair Moore & Paul Flewelling 1 What does a module do? Core modules provides functionality Contributed modules extends

More information

A (Web) Face for Radio. NPR and Drupal7 David Moore

A (Web) Face for Radio. NPR and Drupal7 David Moore A (Web) Face for Radio NPR and Drupal7 David Moore Who am I? David Moore Developer at NPR Using Drupal since 4.7 Focus on non-profit + Drupal CrookedNumber on drupal.org, twitter, etc. What is NPR? A non-profit

More information

Migrating into Drupal 8 Migrando a Drupal 8

Migrating into Drupal 8 Migrando a Drupal 8 Migrating into Drupal 8 Migrando a Drupal 8 Ryan Weal // Novella Chiechi Kafei Interactive Inc. Montréal Québec Canada [email protected] // [email protected] https://www.drupal.org/node/2348505 http://twitter.com/ryan_weal

More information

Faichi Solutions. The Changing Face of Drupal with Drupal 8

Faichi Solutions. The Changing Face of Drupal with Drupal 8 Faichi Solutions The Changing Face of Drupal with Drupal 8 Whitepaper published on Dec. 17, 2014 Compiled & Written by: Team Drupal, Faichi Edited by: Payal Mathur, Communication Manager, Faichi CONTENTS

More information

Data Warehouse and Business Intelligence Testing: Challenges, Best Practices & the Solution

Data Warehouse and Business Intelligence Testing: Challenges, Best Practices & the Solution Warehouse and Business Intelligence : Challenges, Best Practices & the Solution Prepared by datagaps http://www.datagaps.com http://www.youtube.com/datagaps http://www.twitter.com/datagaps Contact [email protected]

More information

Introduction to Module Development

Introduction to Module Development Introduction to Module Development Ezra Barnett Gildesgame Growing Venture Solutions @ezrabg on Twitter ezra-g on Drupal.org DrupalCon Chicago 2011 What is a module? Apollo Lunar Service and Excursion

More information

Things Made Easy: One Click CMS Integration with Solr & Drupal

Things Made Easy: One Click CMS Integration with Solr & Drupal May 10, 2012 Things Made Easy: One Click CMS Integration with Solr & Drupal Peter M. Wolanin, Ph.D. Momentum Specialist (principal engineer), Acquia, Inc. Drupal contributor drupal.org/user/49851 co-maintainer

More information

Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia

Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia Simple Tips to Improve Drupal Performance: No Coding Required By Erik Webb, Senior Technical Consultant, Acquia Table of Contents Introduction................................................ 3 Types of

More information

Drupal Training Modules 2015

Drupal Training Modules 2015 Drupal Training Modules 2015 Webikon.com Phone: +40-722-369674 E-mail: [email protected] Web: http://webikon.com Drupal Training Modules 1 / 8 About us Webikon is a Romanian company focused in consulting,

More information

The Search API in Drupal 8. Thomas Seidl (drunken monkey)

The Search API in Drupal 8. Thomas Seidl (drunken monkey) The Search API in Drupal 8 Thomas Seidl (drunken monkey) Disclaimer Everything shown here is still a work in progress. Details might change until 8.0 release. Basic architecture Server Index Views Technical

More information

Creating a Drupal 8 theme from scratch

Creating a Drupal 8 theme from scratch Creating a Drupal 8 theme from scratch Devsigner 2015 (Hashtag #devsigner on the internets) So you wanna build a website And you want people to like it Step 1: Make it pretty Step 2: Don t make it ugly

More information

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION October 2013 Daitan White Paper Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION Highly Reliable Software Development Services http://www.daitangroup.com Cloud

More information

Drupal and ArcGIS Yes, it can be done. Frank McLean Developer

Drupal and ArcGIS Yes, it can be done. Frank McLean Developer Drupal and ArcGIS Yes, it can be done Frank McLean Developer Who we are NatureServe is a conservation non-profit Network of member programs Track endangered species and habitats Across North America Environmental

More information

Commerce Services Documentation

Commerce Services Documentation Commerce Services Documentation This document contains a general feature overview of the Commerce Services resource implementation and lists the currently implemented resources. Each resource conforms

More information

Advanced Object Oriented Database access using PDO. Marcus Börger

Advanced Object Oriented Database access using PDO. Marcus Börger Advanced Object Oriented Database access using PDO Marcus Börger ApacheCon EU 2005 Marcus Börger Advanced Object Oriented Database access using PDO 2 Intro PHP and Databases PHP 5 and PDO Marcus Börger

More information

Magento Extension Developer s Guide

Magento Extension Developer s Guide Magento Extension Developer s Guide Copyright 2012 X.commerce, Inc. All rights reserved. No part of this Guide shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic,

More information

Table of Contents. Magento Certified Developer Exam Study Guide

Table of Contents. Magento Certified Developer Exam Study Guide 2 Table of Contents Introduction... 3 1 Basics... 4 2 - Request Flow... 9 3 Rendering... 15 4 Working with the Database... 22 5 Entity Attribute Value (EAV)... 25 6 Adminhtml... 29 7 Catalog... 35 8 Checkout...

More information

How to pull content from the PMP into Core Publisher

How to pull content from the PMP into Core Publisher How to pull content from the PMP into Core Publisher Below you will find step-by-step instructions on how to set up pulling or retrieving content from the Public Media Platform, or PMP, and publish it

More information

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT

WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT CHAPTER 1 WHAT'S NEW IN SHAREPOINT 2013 WEB CONTENT MANAGEMENT SharePoint 2013 introduces new and improved features for web content management that simplify how we design Internet sites and enhance the

More information

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM

More information

Cache All The Things

Cache All The Things Cache All The Things About Me Mike Bell Drupal Developer @mikebell_ http://drupal.org/user/189605 Exactly what things? erm... everything! No really... Frontend: - HTML - CSS - Images - Javascript Backend:

More information

Getting Started with Telerik Data Access. Contents

Getting Started with Telerik Data Access. Contents Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First

More information

Magento Certified Developer Exam Exam: M70-101

Magento Certified Developer Exam Exam: M70-101 M70-101 Magento Certified Developer Exam Exam: M70-101 Edition: 2.0.1 QUESTION: 1 For an attribute to be loaded on a catalog/product object, which two of the following conditions must be satisfied? (Choose

More information

#d8rules - Support the Rules module for Drupal 8

#d8rules - Support the Rules module for Drupal 8 #d8rules - Support the Rules module for Drupal 8 Introduction Benefits of funding Rules in Drupal 8 On a larger scale For your own business Rules 8.x Overview of the Rules 8.x features Site building based

More information

Drupal 8 Development Retrospective. A timeline and retrospective from a core contributor

Drupal 8 Development Retrospective. A timeline and retrospective from a core contributor Drupal 8 Development Retrospective A timeline and retrospective from a core contributor 2011 2016 Drupal 7, Gates & Initiatives DrupalCon Chicago 2011, Drupal 8 development starts immediately. Dries discusses

More information

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER PEGA MOBILITY A PEGA PLATFORM WHITEPAPER Background Mobile devices now outnumber computers as a means of connecting to the Internet. This new mobile ubiquity presents opportunities for the enterprise to

More information

A Data API for Drupal 7: Key steps to enabling transactional web service support

A Data API for Drupal 7: Key steps to enabling transactional web service support A Data API for Drupal 7: Key steps to enabling transactional web service support Written by: Nedjo Rogers and Henrique Recidive Sponsored by: CivicSpace Date: October 25, 2007 1. Need and Moment The powerful

More information

Simba Apache Cassandra ODBC Driver

Simba Apache Cassandra ODBC Driver Simba Apache Cassandra ODBC Driver with SQL Connector 2.2.0 Released 2015-11-13 These release notes provide details of enhancements, features, and known issues in Simba Apache Cassandra ODBC Driver with

More information

Sage Intelligence Sage 100 ERP Intelligence Reporting Release Notes

Sage Intelligence Sage 100 ERP Intelligence Reporting Release Notes Sage Intelligence Sage 100 ERP Intelligence Reporting Table of contents 3 Introduction 3 New Features 3 Support for Citrix and Terminal Services Load Balanced Environments 3 New Switches Now Supported

More information

Getting Content into Drupal Using Migrate

Getting Content into Drupal Using Migrate Getting Content into Drupal Using Migrate Version 0.4 (Montréal 26 October 2013) Ryan Weal Kafei Interactive Inc. Montréal QC [email protected] Twitter : http://twitter.com/ryan_weal Pump.io : http://comn.ca/ryanweal

More information

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC http://codesorcery.net/dcdc

Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC http://codesorcery.net/dcdc Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC http://codesorcery.net/dcdc Introduction Personal introduction Format & conventions for this talk Assume familiarity

More information

How is it helping? PragmatiQa XOData : Overview with an Example. P a g e 1 12. Doc Version : 1.3

How is it helping? PragmatiQa XOData : Overview with an Example. P a g e 1 12. Doc Version : 1.3 XOData is a light-weight, practical, easily accessible and generic OData API visualizer / data explorer that is useful to developers as well as business users, business-process-experts, Architects etc.

More information

PHP Language Binding Guide For The Connection Cloud Web Services

PHP Language Binding Guide For The Connection Cloud Web Services PHP Language Binding Guide For The Connection Cloud Web Services Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction... 4 What s Required... 5 Language

More information

Tobby Hagler, Phase2 Technology

Tobby Hagler, Phase2 Technology Tobby Hagler, Phase2 Technology Official DrupalCon London Party Batman Live World Arena Tour Buses leave main entrance Fairfield Halls at 4pm Purpose Reasons for sharding Problems/Examples of a need for

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

Middleware- Driven Mobile Applications

Middleware- Driven Mobile Applications Middleware- Driven Mobile Applications A motwin White Paper When Launching New Mobile Services, Middleware Offers the Fastest, Most Flexible Development Path for Sophisticated Apps 1 Executive Summary

More information

Drupal for Designers

Drupal for Designers Drupal for Designers Not decorating on top of what Drupal gives you, but rather, letting Drupal s default behavior simply provide a guide for your design. Drupal for Designers by Dani Nordin http://my.safaribooksonline.com

More information

Beginning Oracle. Application Express 4. Doug Gault. Timothy St. Hilaire. Karen Cannell. Martin D'Souza. Patrick Cimolini

Beginning Oracle. Application Express 4. Doug Gault. Timothy St. Hilaire. Karen Cannell. Martin D'Souza. Patrick Cimolini Beginning Oracle Application Express 4 Doug Gault Karen Cannell Patrick Cimolini Martin D'Souza Timothy St. Hilaire Contents at a Glance About the Authors Acknowledgments iv xv xvil 0 Chapter 1: An Introduction

More information

CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE)

CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE) Chapter 1: Client/Server Integrated Development Environment (C/SIDE) CHAPTER 1: CLIENT/SERVER INTEGRATED DEVELOPMENT ENVIRONMENT (C/SIDE) Objectives Introduction The objectives are: Discuss Basic Objects

More information

Change Color for Export from Light Green to Orange when it Completes with Errors (31297)

Change Color for Export from Light Green to Orange when it Completes with Errors (31297) ediscovery 5.3.1 Service Pack 8 Release Notes Document Date: July 6, 2015 2015 AccessData Group, Inc. All Rights Reserved Introduction This document lists the issues addressed by this release. All known

More information

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Developing Microsoft SharePoint Server 2013 Advanced Solutions Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions Course Details Course Outline Module 1: Creating Robust and Efficient Apps for SharePoint In this module, you will review key

More information

Programmabilty. Programmability in Microsoft Dynamics AX 2009. Microsoft Dynamics AX 2009. White Paper

Programmabilty. Programmability in Microsoft Dynamics AX 2009. Microsoft Dynamics AX 2009. White Paper Programmabilty Microsoft Dynamics AX 2009 Programmability in Microsoft Dynamics AX 2009 White Paper December 2008 Contents Introduction... 4 Scenarios... 4 The Presentation Layer... 4 Business Intelligence

More information

Building native mobile apps for Digital Factory

Building native mobile apps for Digital Factory DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels

More information

CTC 4.1 - What's New?

CTC 4.1 - What's New? Digital Experience CTC 4.1 - What's New? WebSphere User Group 24 th Sept - Royal Society Edinburgh Agenda A reminder, What is the Content Template Catalog A reminder, What is the Site Builder Demo! CTC

More information

COURSE CONTENT Big Data and Hadoop Training

COURSE CONTENT Big Data and Hadoop Training COURSE CONTENT Big Data and Hadoop Training 1. Meet Hadoop Data! Data Storage and Analysis Comparison with Other Systems RDBMS Grid Computing Volunteer Computing A Brief History of Hadoop Apache Hadoop

More information

BUILDING MULTILINGUAL WEBSITES WITH DRUPAL 7

BUILDING MULTILINGUAL WEBSITES WITH DRUPAL 7 BUILDING MULTILINGUAL WEBSITES WITH DRUPAL 7 About us! Getting to know you... What are your multilingual needs? What you need Check A fresh Drupal 7 instance installed locally Download of module files

More information

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia [email protected]

database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia smith@backendmedia.com Lukas Smith database abstraction layers in PHP BackendMedia 1 Overview Introduction Motivation PDO extension PEAR::MDB2 Client API SQL syntax SQL concepts Result sets Error handling High level features

More information

Frequently Asked Questions Sage Pastel Intelligence Reporting

Frequently Asked Questions Sage Pastel Intelligence Reporting Frequently Asked Questions Sage Pastel Intelligence Reporting The software described in this document is protected by copyright, and may not be copied on any medium except as specifically authorized in

More information

Symfony vs. Integrating products when to use a framework

Symfony vs. Integrating products when to use a framework Symfony vs. Integrating products when to use a framework Xavier Lacot Clever Age Who I am Symfony developer since end 2005 Several contributions (plugins, docs, patches, etc.) Manager of the PHP Business

More information

EnterpriseLink Benefits

EnterpriseLink Benefits EnterpriseLink Benefits GGY AXIS 5001 Yonge Street Suite 1300 Toronto, ON M2N 6P6 Phone: 416-250-6777 Toll free: 1-877-GGY-AXIS Fax: 416-250-6776 Email: [email protected] Web: www.ggy.com Table of Contents

More information

Responsive Web Design. birds of feather

Responsive Web Design. birds of feather Responsive Web Design birds of feather Approaches to Mobile Development 1. No Mobile Approach 2. Native Mobile Applications 3. Mobile Websites 4. Responsive (universal) design No Mobile Approach Website

More information

Course Code NCS2013: SharePoint 2013 No-code Solutions for Office 365 and On-premises

Course Code NCS2013: SharePoint 2013 No-code Solutions for Office 365 and On-premises 4 DAYS SHAREPOINT FOR THE POWER USER AND SOLUTIONS BUILDER Course Code NCS: SharePoint No-code Solutions for Office 365 and On-premises AUDIENCE FORMAT COURSE DESCRIPTION Power Users Instructor led training

More information

Android Developer Fundamental 1

Android Developer Fundamental 1 Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility

More information

Auditing Drupal sites for performance, content and optimal configuration

Auditing Drupal sites for performance, content and optimal configuration Auditing Drupal sites for performance, content and optimal configuration! drupal.org/project/site_audit 2014.10.18 - Pacific NW Drupal Summit Jon Peck Senior Engineer at Four Kitchens @FluxSauce - github.com/fluxsauce

More information

Database Programming with PL/SQL: Learning Objectives

Database Programming with PL/SQL: Learning Objectives Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs

More information

Peer 1 Hosting Multisite

Peer 1 Hosting Multisite Peer 1 Hosting Multisite www.appnovation.com Peer 1 Hosting Multisite Contents 1.0 Project Overview P. 3 2.0 Project Information P. 4 3.0 Site Functionalities P. 5 4.0 Modules P. 7 P.2 1.0 Project Overview

More information

The Tiny Book of Rules

The Tiny Book of Rules The Tiny Book of Rules Tiny Drupal Books #1 Creative commons License The Tiny Book of Rules This book was written by Johan Falk (Itangalo) with the help of Wolfgang Ziegler (fago and layout by Leander

More information

by [email protected] http://www.facebook.com/khoab

by khoaofgod@yahoo.com http://www.facebook.com/khoab phpfastcache V2 by [email protected] http://www.facebook.com/khoab Website: http://www.phpfastcache.com Github: https://github.com/khoaofgod/phpfastcache 1. What s new in version 2.0? To take advantage

More information

Financial Management System

Financial Management System DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING UNIVERSITY OF NEBRASKA LINCOLN Financial Management System CSCE 156 Computer Science II Project Student 002 11/15/2013 Version 3.0 The contents of this document

More information

SharePoint Checklist and Resources

SharePoint Checklist and Resources SharePoint Checklist and Resources Activity Labs for Developer Labs for Administrator Resources Create a re-buildable SharePoint environment Lab : Install SharePoint 2010 Exercise 1: Create Active Directory

More information

Database Forms and Reports Tutorial

Database Forms and Reports Tutorial Database Forms and Reports Tutorial Contents Introduction... 1 What you will learn in this tutorial... 2 Lesson 1: Create First Form Using Wizard... 3 Lesson 2: Design the Second Form... 9 Add Components

More information

Configuring CQ Security

Configuring CQ Security Configuring CQ Security About Me CQ Architect for Inside Solutions http://inside-solutions.ch CQ Blog: http://cqblog.inside-solutions.ch Customer Projects with Adobe CQ Training Material on Adobe CQ Agenda

More information

Programming in C# with Microsoft Visual Studio 2010

Programming in C# with Microsoft Visual Studio 2010 Introducción a la Programación Web con C# en Visual Studio 2010 Curso: Introduction to Web development Programming in C# with Microsoft Visual Studio 2010 Introduction to Web Development with Microsoft

More information

OpenText Information Hub (ihub) 3.1 and 3.1.1

OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1 and 3.1.1 OpenText Information Hub (ihub) 3.1.1 meets the growing demand for analytics-powered applications that deliver data and empower employees and customers to

More information

Bubble Code Review for Magento

Bubble Code Review for Magento User Guide Author: Version: Website: Support: Johann Reinke 1.1 https://www.bubbleshop.net [email protected] Table of Contents 1 Introducing Bubble Code Review... 3 1.1 Features... 3 1.2 Compatibility...

More information

Business Application

Business Application 137 Germain CRT Validation Rules for Siebel CRM 7.7,7.8,8.0,8.1,8.2 Validation Rule Name Validation Rule Description Business Application Siebel Repository Level Improve CPU Improve Memory GS-SBL-REP-JDBC-1001

More information

External Network & Web Application Assessment. For The XXX Group LLC October 2012

External Network & Web Application Assessment. For The XXX Group LLC October 2012 External Network & Web Application Assessment For The XXX Group LLC October 2012 This report is solely for the use of client personal. No part of it may be circulated, quoted, or reproduced for distribution

More information

Snare System Version 6.3.3 Release Notes

Snare System Version 6.3.3 Release Notes Snare System Version 6.3.3 Release Notes is pleased to announce the release of Snare Server Version 6.3.3. Snare Server Version 6.3.3 Bug Fixes: Implemented enhanced memory management features within the

More information

XTM Drupal Connector. A Translation Management Tool Plugin

XTM Drupal Connector. A Translation Management Tool Plugin XTM Drupal Connector A Translation Management Tool Plugin Published by XTM International Ltd. Copyright XTM International Ltd. All rights reserved. No part of this publication may be reproduced or transmitted

More information

Ektron to EPiServer Digital Experience Cloud: Information Architecture

Ektron to EPiServer Digital Experience Cloud: Information Architecture Ektron to EPiServer Digital Experience Cloud: Information Architecture This document is intended for review and use by Sr. Developers, CMS Architects, and other senior development staff to aide in the

More information

Author: Ryan J Adams. Overview. Central Management Server. Security. Advantages

Author: Ryan J Adams. Overview. Central Management Server. Security. Advantages Author: Ryan J Adams Overview In this paper we will look at Central Management Server and how it can help you manage a disperse environment. We will look at the requirements for setting up a CMS, the advantages

More information

How To Migrate Qi Analyst To A New Database On A Microsoft Access 7.2.2 (Windows) From A New Version Of Qi.Io To A Newer Version Of A New Qi 8.0 (Windows 7.3

How To Migrate Qi Analyst To A New Database On A Microsoft Access 7.2.2 (Windows) From A New Version Of Qi.Io To A Newer Version Of A New Qi 8.0 (Windows 7.3 Tech Note 915 Migrating QI Analyst Databases from Access to SQL All Tech Notes, Tech Alerts and KBCD documents and software are provided "as is" without warranty of any kind. See the Terms of Use for more

More information

GETTING STARTED WITH DRUPAL. by Stephen Cross

GETTING STARTED WITH DRUPAL. by Stephen Cross GETTING STARTED WITH DRUPAL by Stephen Cross STEPHEN CROSS @stephencross [email protected] ParallaxInfoTech.com www.talkingdrupal.com ASSUMPTIONS You may or may not have development experience You

More information