Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
Oct 04 2016
Oct 04

Hello fellow Drupalers,

As the dust setteles upon Drupalcon Ireland we wish to invite you to a sunnier location in the middle of the winter.
Come join us for <strong>DrupalCamp TLV 2016</strong> at November 29th in Tel Aviv, Israel !

The conference site ws set up by Royi from Gizra and can be seen here - http://2016.drupal.org.il

We have great sessions proposed from around the world including Bojan from Drupal Commerce and Michael Schmid from Amazee and of course Amitai, Aron, Royi and many more.

Early bird tickets season ends in October 15th so register or get your organization to sponser you asap.

See you in sunny Israel in November!

Jun 05 2014
Jun 05

It's a bird - It's a plane - No! It's AnguDrop

Angularjs and Drupal - A new power couple in the open web space.

Angularjs is a refreshing javascript framework created and promoted by Google and is one of those open source projects (like Drupal) where you simply know will be around for the next 4-5 years and are about to leave a dent in the open web space. Angular is one of the prime members of our new M.E.A.N framework which contemplates Drupal for high performance mobile backends and more challanging startups - Get some Angular.js help now from our resident Ninjas :). The beauty in Angular (as in most javascript MVC frameworks) is how it organizes the different parts of the application (views, controllers, services..) and enforces it's opinionated view of how things work and why. This lets you build complex single page applications in a predictable and standardized way. It also presents an interesting approach on how to address some of the more common customer scenarios..

A refreshing coke in Drupal Hell

We have seen many customers that are stuck in some kind of Drupal Hell with codebase from Drupal 5 stuck in time because their original developer hacked core or views and they never had the budget to upgrade. It's extremely challenging to provide value to this type of customer but we've found an interesting pattern using Angularjs to create modern cutting edge interfaces even within the weirdest sphagetticoded nightmares. So let's say we have a Drupal5 site stuck in 2008...

  • Create a content type called angularapp
  • Overide page.tpl.php as page-node-angularapp.tpl.php (Drupal 5 needed custom code in template.php
  • Load the angular.js library and dependencies plus your apps code
  • Comment out the print of the $content in you're overiden template and instead add
  • The code above renders the angular app based on the code

The idea is to replace the rendering of $content all together when the angularjs is rendered.

Is there anybody out there?

It doesn't matter how much amount of frontend wizardry goes on we still need someone to answer those angular services and provide the frontend with the data coming from the Drupal site. We do a fair amount of node.js server side programming so sometimes drupal isn't even part of the equation but when Drupal is the server side there are several options to address it. * 1. [Services module](http://drupal.org/project/services) (Drupal - 5-8) 2. [restws module](http://drupal.org/project/restws) (Drupal 7) 3. As Will Vincent pointed out you can roll your own with returning drupal_json_output in your hook_menu. For the Angular curious - I created a gist (rendered belowe) - walking through the relevant steps in an angular app - https://gist.github.com/liorkesos/5528234

Mar 06 2014
Mar 06

Maybe it's just me.. But I see more and more DG's (Drupal Geezers) find themselves introspecting and thinking about the technology they have invested their past 7-8 years in.

The web is exploding with tons of amazing javascript mvc platforms, crazy socket madness and stunning widgetry all running client-side (in the browser) with amazing sub-second speeds.

Our reality is that we still live in a world where 10% of the functions we use frequently in drupal end with .+_alter - Drupal typically will output whatever markup you want and then you find yourself wrestling with it and altering it to fit the semantic html you want. To actually get Drupal to come close to sub-second performance means to wrap it with so many caches it looks like an Egyptian mummy.

Unthemeing

The main challenge I see with Drupal revolves around theming, because Drupal is a great CMS for beginners it bundles every layer of markup possible so it can be tweakable from the admin UI, but in the process if you want clean, simple semantic markup of blocks, menus, views, panels etc... - you really need to know what you're doing. Thus you see more and more Drupal shops experiment with decoupling the front and back side of Drupal. Drupal is awesome in managing content, users, groups and processes but when it renders that information it's sometimes heavy, bloated and inflexible. The way we approach this is through building the interface with angular.js an awesome MVC javascript framework and connecting through web services to the Drupal containing the data. In the past 2 years we have started to experiment with technologies augmenting Drupal - building apis powered by node.js and mongoDB for scalable mobile endpoints, and building angularjs based widgets that we've inserted in to existing Drupal sites. I talked about this in a webinar by acquia 2 years ago but as we reimplemented these fullstack javascript implementations we felt we needed to standardise around a common solution for our internal needs.

Mean.io

We've merged all of the best practices for fullstack javascript development within the mean.io project. MEAN is an acronym coined by Valery Koltarov from MongoDB and is used to describe applications built by MongoDB, Express, Angular.js and Node.js. We and over 3200 developers which stared the project in github are awed in the speed and quality that comes when you're actual building what you need and not constantly altering what you got from Drupal. So we have this awesome js framework that knows how to serve content very well but lacks a CMS, and we have a CMS (that we still love) which does an awesome job of managing content but can do a better job serving it. We combined both worlds with the mean module providing a standard way to bi-directionly communicate between mean.io instances and Drupal.

The mean module

Although Drupal 8 is coming up there are tons of Drupal 6 sites out there that want to spice up the look and feel yet maintain the content, ccks and views involved. We thought how to expose the data within drupal to rich widgets or single page applications which either feed information in to drupal or use information fro within to provide a dynamic experience. The mean module (at http://drupal.org/project/mean) provides the means to export blocks,menus views and variables to one big json file which is accessed by an angular.js service which reads it and makes it available to the mean application.

Integration Strategies

There are two types of patterns that can be implemented using the mean module.

Mean in front

mean.io is used in many places as an engine for SPA (single page applications) now we can create applications that are built from information which is held in drupal. Mean provides an interface to load various pieces of data from a Drupal sites and to render a single-page application which uses Drupal as an additional data source. We implemented this approach lately with Strauss an established enterprise customer which had an OpenIdeal - Drupal 6 site which they wanted to face lift. You can browse here to see the result and here to peek in to the drupal in the backend which powers it.

After enabling the mean module you can browse /mean/json/help/me and see the following possabilities...

URL stucture: /mean/json/[TYPE]/[NAME]/[ARG1]/[ARG2]/[ARG3]
currently supported TYPE values and their arguments:
- view - returns results for requested Drupal view object, arguments:
  - NAME - view's name
  - ARG1 - (optional) display_name
  - ARG2 - (optional) items per page value (-1 for unlimited, 0 - skip arg)
  - ARG3 - (optional) arguments divided by '+' sign without whitespaces
- menu - output from menu_tree_all_data() function
- load - looks for load_[NAME_mandatory] function and returns its output
(node_load([ARG1]), user_load([ARG1]), menu_load([ARG1]) ...), arguments:
  - ARG1 - ID or name to pass to load function
- help - /mean/json/help/me will output current instruction
- user - /mean/json/user/logout - Logging current user out
  - /mean/json/user/login (along with name and pass values passed as post
  will log user in and return its object)
  - /mean/json/user/session - returns $_SESSION
  - /mean/json/user/me - returns global user object
- get-mean-packet
  - returns set of JSON objects, set at admin/build/mean-packets
  - NAME - packet's name
-------------------------------------------------------------------------
To skip any optional ARG, use 0, (example: /mean/json/forum_search/0/5)

Angular apps in blocks/panel panes

In many cases we have to continue hosting with Drupal - for instance if you have a governmental site that has been security cleared to run Drupal there is a very slim chance you could change that. With the next approach you can still get the "single page" behaviour or implement a complex widget that you'd rather implement on a client-side MVC rather then in a bunch of spaghetti code in jquery.

We have been working with a financial client from new-york for the past year which has a huge antiquated drupal-5 site and the ability to insert rich angular.js driven application that connect to the data within the drupal site - can create a modern feel even if you're stuck in the past, it also can provide a clear path to fix sites that can't be upgraded because their core has been altered.

Drush support

One of the concepts and tools we've built to help with both types of integrations - has to do in how to swiftly enter the Drupal data in to a mongodb based db so it can be served effectively to mobile devices, widgets and single page applications. We have bundled the mean shadow module with the the mean module which provides a standard way to sending drupal information upon content update to the Mongo/Node based service. To make the initial import of the data in to the mean easy we provide the drupal shanties (shadow entities) command...

Here are some examples of the possible usage..

Examples:
 Standard example (all the user entities)  drush shadow-entities              
 Type example (all the node entities)      drush shadow-entities node         
 Id example (specific user)                drush shadow-entities user 42      
 Id example 2 (specific node)              drush shadow-entities node 42      
 Bundle example (all the entites of        drush shadow-entities node article 
 bundle article)                                                              

To summarize - mean.io is an amazing way to develop cool and modern applications but the mean module integration lets us start building mean apps now and helps them co-exist and augment Drupal.

May 06 2013
May 06
angularjs drupal

It's a bird - It's a plane - No! It's AnguDrop

Angularjs and Drupal - A new power couple in the open web space.

Angularjs is a refreshing javascript framework created and promoted by Google and is one of those open source projects (like Drupal) where you simply know will be around for the next 4-5 years and are about to leave a dent in the open web space. Angular is one of the prime members of our new M.E.A.N framework which contemplates Drupal for high performance mobile backends and more challanging startups - Get some Angular.js help now from our resident Ninjas :). The beauty in Angular (as in most javascript MVC frameworks) is how it organizes the different parts of the application (views, controllers, services..) and enforces it's opinionated view of how things work and why. This lets you build complex single page applications in a predictable and standardized way. It also presents an interesting approach on how to address some of the more common customer scenarios..

A refreshing coke in Drupal Hell

We have seen many customers that are stuck in some kind of Drupal Hell with codebase from Drupal 5 stuck in time because their original developer hacked core or views and they never had the budget to upgrade. It's extremely challenging to provide value to this type of customer but we've found an interesting pattern using Angularjs to create modern cutting edge interfaces even within the weirdest sphagetticoded nightmares. So let's say we have a Drupal5 site stuck in 2008...

  • Create a content type called angularapp
  • Overide page.tpl.php as page-node-angularapp.tpl.php (Drupal 5 needed custom code in template.php
  • Load the angular.js library and dependencies plus your apps code
  • Comment out the print of the $content in you're overiden template and instead add
  • The code above renders the angular app based on the code

The idea is to replace the rendering of $content all together when the angularjs is rendered.

Is there anybody out there?

It doesn't matter how much amount of frontend wizardry goes on we still need someone to answer those angular services and provide the frontend with the data coming from the Drupal site. We do a fair amount of node.js server side programming so sometimes drupal isn't even part of the equation but when Drupal is the server side there are several options to address it. * 1. [Services module](http://drupal.org/project/services) (Drupal - 5-8) 2. [restws module](http://drupal.org/project/restws) (Drupal 7) 3. As Will Vincent pointed out you can roll your own with returning drupal_json_output in your hook_menu. For the Angular curious - I created a gist (rendered belowe) - walking through the relevant steps in an angular app - https://gist.github.com/liorkesos/5528234

Sep 24 2012
Sep 24

As the temperatures here in Israel start changing to something sane and in the peak of the holiday season... I want to re invite whomever is the mideast (that's the world's middle east not Ohio :) ) to Drupalcamp Israel. Attendence is almost fully booked due to a high signup (around 170 people payed) and another big group of 60 Drupal newbies sponsered by the local internet association. We have awesome speakers like Minister Michael Eitan that has been championing Drupal in the Government, Amitai Burstein from Gizra (an ex linnovatee) and Tsachi, Zohar, Yuval, Yaniv and myself giving lectures. Jeffery (JAM) Macguire from Acquia will fill in the slot for that lecture you can actually understand if you don't speak hebrew, yet if you have spent some time in jewish school or just want to listen to a funky language with scattered "views", "commerce" , "context" and more you're more then invited :) ). Google, ISOC,Incapsula (real cool Israeli startup), Raid are sponsoring the event and by the level of the lectures and engagement of the local community - I think it'll be a blast. So... If you are in the neighberhood - be sure to drop by to http://2012.drupal.org.il/ (warning hebrew!) and join us for the fun!

Aug 23 2011
Aug 23

The past 3 weeks where insane.
Utterly insane.
If you haven't been following the news - one of Israel's biggest civil protests has been going on for more then a month.
I won't go in to the reasons and dramas behind the protest but like many protest in our region lately social-media, smartphone use and the internet are key enablers for the transparency and organization ability of the crowd.
This dynamic created one of the most interesting beta environments a product could launch with.
We donated an installation and modification of our Innovation management platform - IdeaL which let's the people voice their opinion and enables the protest leaders to understand the controversies and consensus of the crowd and focuses them while dealing with the govermental comitees.
Ideal was implemented initially in the ohel.org.il - the official brainstorming and policy forging site.
The Israel government spotted the advances in the platform since it's first incarnation in shituf.gov.il and ordered another installment in http://hidavrut.gov.il/.
The irony is that hidavrut is the platform for the committee which is supposed to discuss with the protesters (which are powered by Ohel).
So... Ideal is experiencing one of the most intensive betas of direct democracy in the past two weeks and we're constantly challenged by what the different sides require.
While ideaL still gets some polishing, if you want to help out or give ideaL a spin you can clone it's implementation at https://github.com/linnovate/IdeaL--ohel.org.il-

Apr 25 2011
Apr 25
We have been hacking with android and drupal for quite a while but we finally got a chance to give "DrupalNews" some love. Our inspiration for updating the app was based on Johan Falk from nodeone, who built a bunch of RSS feeds which are more fitting to the new github/sandboxed era on drupal.org. This got us back on track integrating the new feeds and rethinking the app. As we played with the app (and reflecting on node one's kitten killers meme) we understood that we need another feed - The culture feed. This feed is the collection of all of those cool moments which consist of Drupal s culture. We started hosting that feed but when I told Johan about it and he bombarded me with a bunch of new drupal moments, I understood that this should be released - https://drupal.org/sandbox/liorkesos/1126176 Currently I, Johan and Dries have commit rights but we're accepting cultural patches :)
Mar 01 2011
Mar 01

We've been working lately helping kaltura port their module to drupal 7.
The cool insight I found is that once we where able to migrate the kaltura node to a fieldable entitiy, their is tons of stuff we can now do with video fields associated to various elements.
Just though of sharing some of the usecases I toyed with.

Video on Comments
Let's say you want to communicate soley using video.
You post a video in a node and the commenters answer inside the comments by recording a video of their selfs from the kaltura field in the comments

Video powered bio for Users:
Imagine a linkedin clone or a dating site with an intro video per user.
By associating the kaltura video field to the user we can have his bio as a recorded video - instead of the classic bio text.

Category video
Imagine taxonomy image on steroids! , The Kaltura field can be any type of media (picture, audio, video).
Now think about a site that has a category for elephants - you could post the taxonomy video in the head of the taxonomy page, showing a video about elephants alongside the tagged nodes.

If you're going to DrupalCon Chicago we'd love to show you some d7 kaltura coolness in our booth (#73) Stop by and grab a (drupal)lager as well.

Jul 29 2010
Jul 29

We're very proud to see the first fruit of several months of work and several year of building the Drupal enterprise eco-system in Israel.
The first site shipped, http://shituf.gov.il is a site which exposes the latest rules and discussions from the government to the public.
That way legislators get a very short feedback loop on the current activity and the public gets to state it's opinion and vote up or down on the stream of new rules and political activity.
This "political digg" is the first time in Israel where official governmental activity is letting the public create content in the website and the first time Drupal and it's underlaying open stack is used in official governmental hosting.
The site is seeing great engagement (for instance a rule about monitoring the state of israeli education had 544 votes, divided almost equally and hundreds of comments.
Shlomi Tsadok, Our reprasentitve in the government has led this project and we are showing day after day the flexability, ROI, lower TCO and general awesomeness which is Drupal.
YADGSCTL - Yet Another Drupal Govermental Site Comes To Life (I'm not sure about the popularity of the acronym, but Drupal is gaining popularity in Enterprise Israel and that what counts :) ).
World Domination is now.

Jul 15 2010
Jul 15
I'm attending Startup Weekend in TLV which is turning out to be a really great and colorful event. One of the coolest things is that I finally got to meet Tim Cullen which is leading the development of a local Drupal community in Ramalah. I'm a big believer in the epic power of open-source to enable communication where none exists or where barriers (technological or political) might limit communication and innovation. I took ( a low quality and shaky ) video of Tim's presentation. This brings me to make the safe assumption that a local peace initiative can really help Drupal 8 adoption ;)
Apr 19 2010
Apr 19

In the following week we've developed an android application to manage drupalcon oriented information.
Currently we only have the sessions info in place but our vision to the next drupalcons is to add twitter based activity streams, relevant map info and to become a one stop shop for your mobile experience using android.

To find the app search for drupalcon in the android market.

There is a very comprehensive mobile version of the drupalcon site which has more features built in - it's optimized for webkit and iphones yet it works well with android as well.

We're very excited about providing android native applications to our customers and we'd be if you (or your customers) need native android app support tailored to work with Drupal - try to find us in Drupalcon.

Apr 19 2010
Apr 19
Drupalcohol by Ben-Hana winery and Linnovate

After Drupalager and Drupalager 2009 we decided to explore new directions for this meta category we've created - Drupalcohol.

Shlomi Tsadok, one of our newest recruits, who is leading the team integrating Drupal in the Israeli government, is a big wine fan - so big that he quit the computing business to open his own winery in 2003.
He exports 4000 liters of Wine a year (mainly reds) and is our latest "brewing partner" (after yhager and hinbit in the previous batches).

We are proud to be part of this community and to try to find fun ways of promoting Drupal!

Mar 31 2010
Mar 31

In one of the most epic chapters of Sienfeld - George and Jerry are confronted with the Dillema "Tuck or No Tuck"?
A brave group has decided that this Dillema must be resolved and that blankets (like people, data and source) should be free!

They started the liberation front and have founded - "Free The Blankets!" a site with one clear agenda and goal - Untucked blankets by 2020.
Aren't you sick and tired of entering your hotel room and fighting with the tightly tucked blankets messing up everything in the process?!

Like George, We are free spirits, and can't be confined to the atrocities of maids stretching blankets to confining walls.
Now note it is not the maids fault - IT IS POLICY! and because of this it will be resolved by the policy creators - the managers and boards of Hotels and Hostels.
Joining this effort they will create a social movement that will free the blankets and will let us wake up at a fine morning in 2020 (or sooner!) stretch are legs and sigh...

Jul 26 2009
Jul 26

37 days to go and as we lift our heads from the crunch of delivering projects, working with clients, and raising families we finally have some time to outreach about what you can expect from Linnovate at DrupalCon paris...

Drupalager take 2

The beer is fermenting as we speak, this timed brewed by "DrupalHager" - yhager - the guy from imagefield crop fame, and one of the most talented Drupal developers we know.
We'll try to bring in the next batch of Drupalager - (hopefully the French customs will be understanding), and we hope to continue this fine tradition.

Sessions submitted for DrupalCon Paris

Lior has submitted a panel (No Vendor lockin - the drupalshop ecosystem) which will include Jeff Eaton, David Strauss and Bryan House to talk about the drupalshop ecosystem and how adopting best practices lets drupalshops cooperate in bigger projects and provide true choice to our customers by letting them switch vendors based on quality of service or product.

Zohar will also demonstrate how to use this package of extentions for nodequeue, in other use cases, such as a multi-user blogging system (a good one ;-) ).

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web