Multilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella
|
|
|
- George Pearson
- 10 years ago
- Views:
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 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
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
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
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
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
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
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
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
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
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 [email protected] Agenda What's coming in Drupal 8 for o End users and clients? o Site builders?
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*
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
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
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
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
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
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
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]
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
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
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
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,
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
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
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
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
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
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
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,
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...
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
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
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
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:
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
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
#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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia [email protected]
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
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
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
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
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
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
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
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
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
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
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
by [email protected] 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
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
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
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
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
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
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
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...
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
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
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
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
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
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
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
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
