Drupal Planet

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 9 hours 51 min ago

Code Karate: An introduction to Git (part 2): Your first Git repository

Tue, 01/27/2015 - 2:49pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn a href=/blog/introduction-git-part-1An introduction to Git Part 1/a, you learned a littl/p/div/div/div
Categories: Drupal Feeds

DrupalCon News: Calling UX Designers

Tue, 01/27/2015 - 12:13pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpWelcome UX Design experts. We want to hear your latest thoughts, ideas, techniques and analysis on the latest state of the web. If you’ve got a burning idea you want to share about how to do things better, a href=https://events.drupal.org/losangeles2015/submit-sessionwe want to hear about it/a./p pWe’re looking for talks on:/p/div/div/div
Categories: Drupal Feeds

Cheeky Monkey Media: How to automatically send your content to social networks

Tue, 01/27/2015 - 11:00am
div class=field field--name-field-article-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evena href=/blog/drupal-planet/how-automatically-send-your-content-social-networksimg src=http://cheekymonkeymedia.ca/sites/default/files/automating-social.jpg width=1380 height=444 alt=Send your content to social networks //a/div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpA few months ago I was asked to help manage our company blog. As a busy drupal developer, I had little time to post all of our new blog content on every social media site. So I decided to automate this so I could spend more time on client projects./ppMy first step was to look around and see what was currently available. Although there was some options, I found them to be a bit heavy for my application./ppOne of the things I was looking for was to be able to choose what social networks our content would be posted to. For example, I wanted to be able to choose to post this page to...a href=/blog/drupal-planet/how-automatically-send-your-content-social-networks class=more-linkRead More/a/p/div/div/div
Categories: Drupal Feeds

Aten Design Group: Creating Custom Ctools Layout Plugins with Yeoman

Tue, 01/27/2015 - 9:30am
img src=http://atendesigngroup.com/sites/default/files/yeoman-drupal_1.png width=1000 height=600 alt= /pAs a front-end developer working with Drupal, I often need to create custom Ctools layout plugins. a href=https://www.drupal.org/project/ctoolsCtools/a is an essential suite of tools for Drupal developers and the basis of many popular modules, including a href=https://www.drupal.org/project/viewsViews/a, a href=https://www.drupal.org/project/panelsPanels/a, a href=https://www.drupal.org/project/contextContext/a and a href=https://www.drupal.org/project/dsDisplay Suite/a. Its layout plugins provide a flexible alternative to Drupal’s core page region system./p pa href=https://www.drupal.org/node/495654Creating a custom Ctools layout plugin/a for Drupal is actually quite easy. You define your layout in a .info file, create the html structure in a template (#42;.tpl.php), style it in a stylesheet (#42;.css or *.scss) and provide a thumbnail image so the site administrator has an idea of what it looks like. Each of these files follows similar but slightly different naming conventions. This can be tedious when you need to create a number of custom layouts for a project as we often do at Aten./p pMy previous workflow looked like this./p ol liFind another layout plugin – either an existing custom layout or one from the Panels module./li liCopy that folder into the plugins folder in my module or theme./li liRename the folder to match my plugin./li liRename all the files to match my plugin’s name, using the appropriate naming convention and file extensions./li liEdit the .info file to point to the appropriate files and change the array of regions to match the new layout./li liEdit the template file to match the newly created regions./li liWrite the CSS to style the layout./li liCreate a new thumbnail image./li /ol pA lot of these steps consist of copy, paste, find and replace – the kind of stuff that’s better suited for computers. That's where a href=http://yeoman.io/Yeoman/a comes in. Yeoman is a scaffolding tool. It's most often used to quickly create boilerplate code that can be customized to your needs./p pI recently published a a href=https://www.npmjs.com/package/generator-ctools-layoutYeoman generator/a that automatically creates a ctools layout plugin based on a few simple settings. Now my workflow looks like this:/p ol liCreate a directory for my plugin./li liType span class=geshifiltercode class=text geshifilter-textyo ctools-layout/code/span./li liAnswer questions about my layout./li liAdd any extra markup to the template file./li liWrite the CSS to style the layout./li liCreate a new thumbnail image./li /ol pThe new workflow eliminates the tedious tasks and allows me to focus on the code that makes a given layout unique: markup, style and a thumbnail./p pHere’s how to use it./p pa href=http://yeoman.io/learning/Install Yeoman/a *note: Yeoman is a Node.js tool, so you need to a href=http://nodejs.org/download/install Node.js/a in order to use it./p pTo install Yeoman type the following into your terminal:/p div class=geshifilterpre class=geshifilter-textnpm install yo -g/pre/div pThe span class=geshifiltercode class=text geshifilter-text-g/code/span flag installs this package globally. Doing so allows you to run the span class=geshifiltercode class=text geshifilter-textyo/code/span command outside of an existing node project. A common Yeoman use case is scaffolding out a brand new project, after all./p pemNote: Depending on your environment, you may need to run these commands with span class=geshifiltercode class=text geshifilter-textsudo/code/span./em/p pNow you have the general Yeoman application. But to be useful, you need some a href=http://yeoman.io/generators/generators/a./p div class=geshifilterpre class=geshifilter-textnpm install ctools-layout-generator -g/pre/div pThe ctools layout generator assumes you already have a custom module or theme that you are adding a layout to. For this example we'll assume this custom layout is in our theme. From your theme's root directory create a new directory for your layout plugin, change to your new directory and run the ctools_layout generator command./p prediv class=geshifilterpre class=geshifilter-textmkdir plugins/layout/landing_page cd plugins/layout/landing_page yo ctools_layout/pre/div/pre pYeoman will prompt you with a few questions about your layout, such as the name of your layout, the name of the module or theme it exists in and the regions you want to include. After answering the questions, Yeoman creates all the necessary files needed for a working layout./p pThe ctools layout generator makes no assumptions about what your layout looks like or the actual CSS styles and markup needed to make it functional. That's your world! It's completely up to you. It simply takes your list of regions and adds them to the layout's .inc file and to the template file in which you can add the appropriate markup./p pSimilarly, the generator will add a placeholder .png thumbnail of your layout. The generator has no idea what you have in mind for your layout, so you'll want to create your own thumbnail and save it over the placeholder. The thumbnail is important as it gives the end user a good idea of what the layout looks like. I've shared a a href=https://www.dropbox.com/s/7jpice0xjfxjj5n/ctools-layout-thumbnail.psd?dl=0Photoshop template/a that I use for creating layout thumbnails./p pI hope you find this useful. If run into any problems or have feedback, please a href=https://github.com/pixelwhip/generator-ctools-layout/issuescreate an issue on github/a./p pP.S. In case yeoman isn’t your thing, there is a a href=https://www.drupal.org/project/plugin_stubdrush plugin/a that has similar functionality and works for more than just layouts./p
Categories: Drupal Feeds

Gábor Hojtsy: Drupal 8 multilingual tidbits 17: content translation basics

Tue, 01/27/2015 - 9:27am
div class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item evenpemI just updated a href=http://hojtsy.hu/multilingual-drupal8all prior 16 posts in this series/a with up to date screenshots and text over the weekend and here is the new post!/em/p pIn the a href=http://hojtsy.hu/blog/2013-sep-13/drupal-8-multilingual-tidbits-14-intro-content-and-configurationintroduction to content and configuration translation/a piece we discussed what is considered emcontent/em in Drupal 8. This is a somewhat misleading term because custom blocks, custom menu items and even user entities (user profiles) are considered content in terms of their implementation. /p pContent is always stored as entities. The main difference between configuration and content entities is configuration is usually created on the backend (think views, vocabularies, etc.) while content is usually created on the frontend (think free tagging taxonomy terms, comments, blog posts). This is not a black and white differentiation but it helps think of the categories. The other key differentiator is content entities emusually/em get to have configurable fields. You can add new fields to user profiles, taxonomy terms or comments. Again there are exceptions, for example custom menu items cannot get configurable fields in core. Finally, there are even content entities that will not be stored, in Drupal 8 contact form submissions are content entities that live only until they are sent via email. For this tidbit we are concerned for content entities that are stored and multilingual./p /div/div/div
Categories: Drupal Feeds

Drupal Easy: Creating a Talent Underpinning

Tue, 01/27/2015 - 8:09am
pimg src=http://drupaleasy.com/sites/drupaleasy.com/files/de_heart_acquiau.png alt=DrupalEasy hearts AcquiaU //p pHaving just completed presenting the Drupal career training portion of AcquiaU, we are anticipating great experiences for all ten students as they begin their eight weeks of rotations within three different business groups within Acquia. The past two months have been a whirlwind of teaching, learning and team building, which provided great insight into a forward-thinking approach to building Drupal talent, made possible by the commitment of Acquia./p pWe are pleased to have contributed to the new AcquiaU with the customization of our a href=http://drupaleasy.com/academy/dco/course-informationDrupal Career Online/a curriculum. I’d like to share some great lessons learned, as well as introduce the ten people who were lucky enough (luck favors the prepared) to be selected for this amazing program./p !-- rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:dc=http://purl.org/dc/elements/1.1/ xmlns:trackback=http://madskills.com/public/xml/rss/module/trackback/ rdf:Description rdf:about=http://drupaleasy.com/blogs/ultimike/2015/01/creating-talent-underpinning dc:identifier=http://drupaleasy.com/blogs/ultimike/2015/01/creating-talent-underpinning dc:title=Creating a Talent Underpinning trackback:ping=http://drupaleasy.com/trackback/706 / /rdf:RDF -- pa href=http://drupaleasy.com/blogs/ultimike/2015/01/creating-talent-underpinning target=_blankread more/a/pdiv class=feedflare a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=46sCI5r11qY:BXimzBMSFh4:yIl2AUoC8zAimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=yIl2AUoC8zA border=0/img/a a href=http://feeds.feedburner.com/~ff/DrupalEasy?a=46sCI5r11qY:BXimzBMSFh4:qj6IDK7rITsimg src=http://feeds.feedburner.com/~ff/DrupalEasy?d=qj6IDK7rITs border=0/img/a /divimg src=//feeds.feedburner.com/~r/DrupalEasy/~4/46sCI5r11qY height=1 width=1 alt=/
Categories: Drupal Feeds

Makina Corpus: Turning hackability into a use case

Tue, 01/27/2015 - 6:45am
When a CMS does not allow happy hacking anymore, it loses a very valid use case.
Categories: Drupal Feeds

InternetDevels: Drupal module for messages just like in Facebook

Tue, 01/27/2015 - 4:00am
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=text-align: justify;We worked hard during a few days and developed our own module called a href=https://www.drupal.org/project/privatemsg_nodejs target=_blank rel=nofollowPrivate message with node.js/a./p a href=http://internetdevels.com/blog/drupal-private-message-module-nodejsRead more/a/div/div/div
Categories: Drupal Feeds

Appnovation Technologies: 5 Cool Drupal Websites

Mon, 01/26/2015 - 5:27pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded divIt’s hard enough trying to find cool websites in general, let alone cool websites made using Drupal./div/div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/5-cool-drupal-websitesimg typeof=foaf:Image src=http://www.appnovation.com/sites/default/files/styles/blog_listing_page_header/public/5cool-drupals.jpg?itok=RuEMvjqr width=700 height=200 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=http://www.appnovation.com/blog/5-cool-drupal-websites st_title=5 Cool Drupal Websites class=st_facebook/span span st_url=http://www.appnovation.com/blog/5-cool-drupal-websites st_title=5 Cool Drupal Websites class=st_twitter/span span st_url=http://www.appnovation.com/blog/5-cool-drupal-websites st_title=5 Cool Drupal Websites class=st_sharethis/span script type='text/javascript'var switchTo5x = false;/scriptscript type='text/javascript' src='http://w.sharethis.com/button/buttons.js'/scriptscript type='text/javascript'stLight.options({publisher:dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683});/script/div/div
Categories: Drupal Feeds

Phase2: Ultimate Flexibility: Open Atrium’s New Related Content Feature

Mon, 01/26/2015 - 3:00pm
pa href=http://phase2technology.com/wp-content/uploads/2014/01/atrium-logo-1.pngimg class=alignright size-full wp-image-6462 alt=atrium-logo (1) src=http://phase2technology.com/wp-content/uploads/2014/01/atrium-logo-1.png width=300 height=82 //aThe constant struggle between content editors and web developers:/p ul liContent editors want to embed rich media, callouts, and references to related content anywhere within their WYSIWYG.  They love the Body field and want more buttons added to the WYSIWYG./li liWeb developers want to add additional fields for media, attachments, related content to support rich content relationships and access control.  Web developers hate the Body field and wish they didn#8217;t need a WYSIWYG./li /ul pspan style=line-height: 1.5em;In the latest 2.30 version of Open Atrium, we attempt to help both content editors and web developers with a new approach to building rich story content using the a href=https://www.drupal.org/project/paragraphsParagraphs module/a.  Rather than having a single WYSIWYG body, content editors can build their story using multiple paragraphs of different types and layouts. The order of these paragraphs can be rearranged via drag and drop to create long-form content./span/p pSite builders can add their own custom paragraph types to their sites, but Open Atrium comes with four powerful paragraph types #8220;out of the box#8221;:/p h2(1) Text Paragraphs/h2 p style=text-align: center;a href=http://phase2technology.com/wp-content/uploads/2015/01/OA2_Test_Paragraph1.pngimg class=aligncenter wp-image-9458 alt=OA2_Test_Paragraph src=http://phase2technology.com/wp-content/uploads/2015/01/OA2_Test_Paragraph1.png width=667 height=343 //a/p pThe simplest paragraph type is the #8220;Text#8221; paragraph.  It works just like the normal Body field with it#8217;s own WYSIWYG editor.  But an additional Layout field is added to control how the text is rendered.  There are options for multiple columns of wrapping text within the paragraph (something nearly impossible to do with the normal Body field), as well as options for left or right floating #8220;callouts#8221; of text./p h2(2) Media Gallery/h2 p style=text-align: center;a href=http://phase2technology.com/wp-content/uploads/2015/01/OA_Media_Paragraph.pngimg class=aligncenter wp-image-9461 alt=OA_Media_Paragraph src=http://phase2technology.com/wp-content/uploads/2015/01/OA_Media_Paragraph.png width=674 height=679 //a/p pThe #8220;Media Gallery#8221; paragraph handles all of the images and videos you want to add to your story.  It can replace the normal Attachments field previously used to add media to a document.  Each Media paragraph can contain one or more images, videos, or files.  The Layout field controls how that media is displayed, providing options for left or right floating regions, or a grid-like gallery of media.  Videos can be embedded as preview images or full video players./p pWhen floating media to the left or right, the text from other paragraphs will flow around it, just as if the media had been embedded into the WYSIWYG.  To move the images to a different part of the story, just drag the media paragraph to a new position in the story./p pIn Open Atrium, images directly embedded into the Body WYSIWYG field becomes Public, bypassing the normal OA access control rules.  However, anything added to a Media paragraph works more like the Attachment field and properly inherits the access permission of the story document being created.  Thus, the Media paragraph provides a way to embed Media within your story while retraining proper privacy permissions./p h2(3) Snippets/h2 p style=text-align: center;a href=http://phase2technology.com/wp-content/uploads/2015/01/OA_Snippet_Demo.pngimg class=aligncenter wp-image-9463 alt=OA_Snippet_Demo src=http://phase2technology.com/wp-content/uploads/2015/01/OA_Snippet_Demo.png width=662 height=374 //a/p pThe #8220;Snippet#8221; paragraph type allows you to embed text from any other content on your site.  You can specify whether the Summary, Body, or full Node is embedded and also control the Layout the same as with Text paragraphs.  You can also either display the Title of the referenced content or hide the title, or override the title with your own text./p pOne of the best features of Snippets is the ability to lock which revision you want to display.  For example, imagine you want to embed a standard operating procedure (SOP) within your story document.  You create a Snippet paragraph that points to the SOP.  However, if the related SOP node is updated in the future, you don#8217;t want your old document to change.  For compliance purposes it still needs to contain the original SOP text.  By #8220;locking#8221; the snippet to the old revision, the old document will continue to display the original SOP even if the SOP is updated later.  If you #8220;unlock#8221; the snippet, then it will display the latest version of the related SOP./p pOpen Atrium access controls are also respected when displaying snippets.  If you reference content that the user doesn#8217;t have permission to view, that snippet will be removed from the displayed text.  Users still only see the content they are allowed.  This provides a very powerful way to create rich documents that contain different snippets of reusable content for different user roles and permissions.  Similar to adding additional fields with Field Permissions, but much more flexible and easy to use./p h2(4) Related Content/h2 p style=text-align: center;a href=http://phase2technology.com/wp-content/uploads/2015/01/OA_Related_Demo.pngimg class=aligncenter wp-image-9464 alt=OA_Related_Demo src=http://phase2technology.com/wp-content/uploads/2015/01/OA_Related_Demo.png width=667 height=628 //a/p pThe #8220;Related Content#8221; paragraph type is similar to Snippets, but displays the Summary or Full rendered node of the related content.  Like the Media paragraph, the Related Content can contain one or more references to other content on the site.  The Layout provides options for displaying the content as a table of files, or a list of node summaries (teasers), or as full node content.  When full node content is used, any paragraphs used in the related content will also being displayed (paragraph #8220;inception#8221;!).  In addition, any special fields from the full related node can be shown.  For example, a Related Event will show the map of the event location.  A Related Discussion will show all of the discussion replies and even provide the Reply Form, allowing you to reply to a related discussion directly from the story document itself!/p pRelated Content is also a bi-directional link.  When you view the related content node, a sidebar widget called #8220;Referenced From#8221; will show all of the stories that reference the node being viewed./p h2A Real World Example/h2 pTo pull all of this together with a real-world example, imagine that you are scheduling a Meeting.  You want to create an Agenda for that meeting and allow your team to discuss and edit the agenda before the meeting.  In Open Atrium you can now do this all from a single document:/p ol liCreate the Event for the Meeting, adding your team to the Notifications/li liAdd a Related Content paragraph for the meeting Agenda document/li liAdd a Related Content paragraph for the agenda Discussion/li /ol pOpen Atrium is smart about where this related content is created.  If you already have a section for documents, the Agenda will be created within that section.  If you already have a section for discussions, the related discussion will be placed there.  You can change these locations if you wish, but the default behavior reflects the most common information architecture./p pWhen your team members receive the email notification about the meeting and click the link, they will be taken to your Event and will see the agenda document and discussion as if they were a normal part of the event body.  They can view the agenda content directly and can post replies directly into the discussion reply field.  They don#8217;t need to go to separate places on the site to see the document or discussion.  If you *do* view the document or discussion nodes directly, such as from a search results page, you#8217;ll see a link back to the meeting event in the References From list in the sidebar./p h2Conclusion/h2 pNot only do the Paragraph features help content editors build rich stories quickly and easily, they allow web developers to create related documents, linked content, better search results, better data structures.  It#8217;s still not a magical unicorn wysiwig of content editor#8217;s dreams, but it#8217;s a significant step for Open Atrium and Drupal. It opens a whole new world of collaboration where all related content can be viewed together./p pLooking for more information about Open Atrium? a href=http://eepurl.com/EeebHSign up to receive Open Atrium newsletters and updates!/a Don#8217;t miss our a href=https://attendee.gotowebinar.com/register/2212501432925200386winter release webinar/a on Wednesday, January 28th, at 11am EST!a href=https://www.linkedin.com/redirect?url=https%3A%2F%2Fattendee%2Egotowebinar%2Ecom%2Fregister%2F2212501432925200386amp;urlhash=-5NXamp;_t=tracking_anet target=blank rel=nofollowbr / /a/p img src=http://track.hubspot.com/__ptq.gif?a=457100k=14bu=http%3A%2F%2Fwww.phase2technology.comr=http%3A%2F%2Fwww.phase2technology.com%2Fblog%2Fultimate-flexibility-open-atriums-new-related-content-feature%2Fbvt=rssp=wordpress style=float:left; xml:base=http://www.phase2technology.com/feed/ width=1 height=1 border=0 align=right/
Categories: Drupal Feeds

Chocolate Lily: Drupal 8 and distributions part 2: problems and prospects

Mon, 01/26/2015 - 1:10pm
div class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even property=content:encodedpemThis is part two of a series on configuration management challenges in Durpal 8. Part 1 looked at a href=http://chocolatelilyweb.ca/blog/drupal-8-configuration-management-what-about-small-sites-and-distributionschallenges for small sites and distriubtions/a./em/p pWhat is the state of support for distributions in Drupal 8?/p pTrying to gauge the state of emanything/em in Drupal 8 has its inherent pitfalls. The software itself is still changing rapidly, and efforts in the contributed extensions space have barely begun./p/div/div/div
Categories: Drupal Feeds

Another Drop in the Drupal Sea: Seeking Pilot members for Udemy Drupal Training course

Mon, 01/26/2015 - 12:22pm
pThe Kickstarter campaign was not funded, but that does not mean that it was not successful! We are still moving ahead. I've just published my first course on Udemy and would like to get pilot members to provide feedback so that I can make sure the course ends up being world class./p pHere is a coupon code to access the course for free: a href=https://www.udemy.com/getting-started-with-drupal-for-total-beginners/?couponCode=anotherDropPilot title=https://www.udemy.com/getting-started-with-drupal-for-total-beginners/?couponCode=anotherDropPilothttps://www.udemy.com/getting-started-with-drupal-for-total-beginners/?c.../a/p pa href=http://blog.isaacsonwebdevelopment.com/blog/2015/01/26/seeking-pilot-members-udemy-drupal-training-course target=_blankread more/a/p
Categories: Drupal Feeds

Web Omelette: Creating a custom Views filter in Drupal 8

Mon, 01/26/2015 - 2:05am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn the a href=http://www.webomelette.com/creating-custom-views-field-drupal-8previous/a article we've seen how we can interact programatically with Views in Drupal 8 in order to create a custom field in our Views results. Today, we will be looking a bit at how we can create a custom filter you can then add to the View in the UI and influence the results based on that./p pThe code we write here will be available also in a href=https://github.com/upchuk/d8viewsthis repository/a together with the one we explored in the previous tutorial./p pFilters in Views have to do with the query being run by Views on the base table. Every filter plugin is responsible with adding various clauses in this query in an attempt to limit the results. Some (probably most) take on configuration parameters so you can specify in the UI how the filtering should be done./p pIf you remember from the last article, to create our field we extended the codeFieldPluginBase/code class. Similarly, for filters, there is a codeFilterPluginBase/code class that we can extend to create our own custom filter. Luckily though, Views also provides a bunch of plugins that extend the base one and which we can use or extend to make our lives even easier. For example, there is a codeBooleanOperator/code class that provides a lot of the functionality needed for this type of filter. Similarly, there is an codeInOperator/code class, a codeString/code class, etc. You can find them all inside the codeviews/src/Plugin/views/filter/code directory of the Views core module./p pIn this tutorial, we will create 2 custom filters. One will be a very simple one that won't even require creating a new class. The second one will be slightly more complex and for which we will create our own plugin./p pThe code we write will go in the same module we started in the previous article and that can be found in a href=https://github.com/upchuk/d8viewsthis repository/a./p h2Node type filter/h2 pThe first filter we will write is very simple. We want to be able to filter our node results by the machine name of the node type. By default, we can use a filter in which we select which node types to be included. Let's say, for the sake of argument, we want a more complex one, such as the one available for a regular text value like the title. The codeString/code class will be perfect for this and will provide actually 100% of our needs./p pSo let's go to our codehook_views_data_alter()/code implementation and add a new filter:/p precode... $data['node_field_data']['node_type_filter'] = array( 'title' =gt; t('Enhanced node type filter'), 'filter' =gt; array( 'title' =gt; t('Enhanced node type filter'), 'help' =gt; t('Provides a custom filter for nodes by their type.'), 'field' =gt; 'type', 'id' =gt; 'string' ), ); ... /code/pre pSince the table that we are interested in altering the query for is the codenode_field_data/code table, that is what we are extending with our new filter. Under the codefilter/code key we have some basic info + the id of the plugin used to perform this task. Since our needs are very simple, we can directly use the codeString/code plugin without us having to extend it. The most important thing here though is the codefield/code key (under codefilter/code). This is where we specify that our codenode_type_filter/code field (which is obviously a non-existent table column) should be treated as being the codetype/code column on the codenode_field_data/code table. So, by default, the query alter happens on that column. And this way we don't have to worry about anything else, the codeString/code plugin will take care of everything. If we didn't specify that, we would have to extend the plugin and make sure the query happens on the right column./p pAnd that's it. You can clear your cache, create a View with nodes of multiple types and add the codeEnhanced node type filter/code to it. In its configuration you'll have many matching options such as codeequals/code, codecontains/code, codedoes not contain/code etc you can use. For example, you can use codecontains/code and specify the letters codeart/code in order to return results whose node type machine names contain these letters./p h2Node title filter/h2 pThe second custom filter we build will allow Views UI users to filter the node results by their title from a list of possibilities. In other words, they will have a list of checkboxes which will make it possible to include/exclude various node titles from the result set./p pdiv id=block-inject-2 class=block-inject block-inject-2/divdiv class=clearfix/divpLike before, we need to declare our filter inside the codehook_views_data_alter()/code implementation:/p precode... $data['node_field_data']['nodes_titles'] = array( 'title' =gt; t('Node titles'), 'filter' =gt; array( 'title' =gt; t('Node titles'), 'help' =gt; t('Specify a list of titles a node can have.'), 'field' =gt; 'title', 'id' =gt; 'd8views_node_titles' ), ); ... /code/pre pSince we are filtering on the title column, we are extending again on the codenode_field_data/code table but with the codetitle/code column as the real codefield/code to be used. Additionally, this time we are creating a plugin to handle the filtering identified as coded8views_node_titles/code. Now it follows to create this class:/p pstrongsrc/Plugin/views/filter/NodeTitles.php:/strong/p precodelt;?php /** * @file * Definition of Drupal\d8views\Plugin\views\filter\NodeTitles. */ namespace Drupal\d8views\Plugin\views\filter; use Drupal\views\Plugin\views\display\DisplayPluginBase; use Drupal\views\Plugin\views\filter\InOperator; use Drupal\views\ViewExecutable; /** * Filters by given list of node title options. * * @ingroup views_filter_handlers * * @ViewsFilter(d8views_node_titles) */ class NodeTitles extends InOperator { /** * {@inheritdoc} */ public function init(ViewExecutable $view, DisplayPluginBase $display, array amp;$options = NULL) { parent::init($view, $display, $options); $this-gt;valueTitle = t('Allowed node titles'); $this-gt;definition['options callback'] = array($this, 'generateOptions'); } /** * Override the query so that no filtering takes place if the user doesn't * select any options. */ public function query() { if (!empty($this-gt;value)) { parent::query(); } } /** * Skip validation if no options have been chosen so we can use it as a * non-filter. */ public function validate() { if (!empty($this-gt;value)) { parent::validate(); } } /** * Helper function that generates the options. * @return array */ public function generateOptions() { // Array keys are used to compare with the table field values. return array( 'my title' =gt; 'my title', 'another title' =gt; 'another title', ); } } /code/pre pSince we want our filter to be of a type that allows users to select from a list of options to be included in the results, we are extending from the codeInOperator/code plugin. The class is identified with the code@ViewsFilter(d8views_node_titles)/code annotation (the id we specified in the codehook_views_data_alter()/code implementation)./p pInside our plugin, we override three methods:/p pInside codeinit()/code, we specify the title of the set of filter options and the callback that generates the values for options. This callback has to be a callable and in this case we opted for the codegenerateOptions()/code method on this class. The latter just returns an array of options to be presented for the users, the keys of which being used in the query alteration. Alternatively, we could have also directly created the options inside the codeinit()/code method by filling up the code$this-gt;valueOptions/code property with our available titles. Using a callback is cleaner though as you can perform various logic in there responsible for delivering the necessary node titles./p pThe point of overriding the codequery()/code and codevalidate()/code methods was to prevent a query and validation from happening in case the user created the filter without selecting any title. This way the filter has no effect on the results rather than returning 0 results. It's a simple preference meant to illustrate how you can override various functionality to tailor your plugins to fit your needs./p pAnd that's it. You can add the emNode titles/em filter and check the box next to the titles you want to allow in the results./p h2Conclusion/h2 pIn this article we've looked at how we can create custom filters in Drupal 8 Views. We've seen what are the steps to achieve this and looked at a couple of the existing plugins that are used across the framework which you can use as is or extend from./p pThe best way to learn how all these work is by studying the code in those plugin classes. You will see there if they are enough for what you want to build or extending them makes sense. In the next article we are going to look at some other Views plugins, so stay tuned./p /div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=http://www.webomelette.com/creating-custom-views-filter-drupal-8 st_title=Creating a custom Views filter in Drupal 8 class=st_facebook/span span st_url=http://www.webomelette.com/creating-custom-views-filter-drupal-8 st_title=Creating a custom Views filter in Drupal 8 class=st_twitter st_via=drupalexp/span span st_url=http://www.webomelette.com/creating-custom-views-filter-drupal-8 st_title=Creating a custom Views filter in Drupal 8 class=st_googleplus/span script type='text/javascript'var switchTo5x = true;/scriptscript type='text/javascript' src='http://w.sharethis.com/button/buttons.js'/scriptscript type='text/javascript'stLight.options({publisher:dr-8de6c3c4-3462-9715-caaf-ce2c161a50c});/script/div/div
Categories: Drupal Feeds

Drupal Association News: Drupal.org team week notes #31: 2014 in review

Sun, 01/25/2015 - 6:24am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpNow that we are few weeks into 2015, we’d like to look back at 2014 and share some interesting numbers about Drupal.org./p h2Audience/h2 pLast year Drupal.org received almost 48.9 million visits from 21.2 million unique visitors. The spike around September/October is due to spam-related traffic, and, of course, DrupalCon Amsterdam./p pimg class=left width=300 src=/files/site-traffic.png /img width=300 src=/files/unique-visitors.png //p h2Users/h2 p152,200 users logged in to Drupal.org at least once during the year. Out of those, 31,466 users performed at least one activity on the site, such as commented, created a node or committed code./p pMore than 21,500 people left a comment or more in the issue queues. More than 4,000 people commented in the Drupal core issue queue./p pimg width=620px style=clear: both; src=/files/participants-core.png //p h2Commits/h2 pOverall 145,907 commits happened on Drupal.org, with more than 4,000 commits to Drupal core specifically./p pMore than 3,200 people committed code to contributed projects (not counting Drupal core), with an average of 37.43 commits per user./p pMore than 1,400 people got commit mention in Drupal core patches./p pimg width=620px src=/files/core-contributors.png //p h2Comments amp; Issues/h2 pOur users left 569,217 comments, 94% of them were comments in the issue queues. 30% of all comments in the issue queues happened in Drupal core queue./p pOn average there were 22.4 comments per user, with 38.74 comments per user in the Drupal core issue queue./p pOur users created 78,505 issues, with an average of 4.55 issues per user./p p5,192 contributed projects were created on Drupal.org in 2014. 31% of those are sandbox projects./p h2Infrastructure/h2 pOn the infrastructure side our uptime was 99.97% over 12 months, and the average full page load time for the year is 3.64 across Drupal.org. It improved throughout the year; we are down to 3.08 as an average for December. Our time to first byte response was 1,374ms in January; we are down to 441ms for December./p pimg width=620px src=/files/testbots.png /br / Drupal.org testbots tested over 33,300 patches. An average test queue and test duration times for Drupal 8 core were about 35 minutes each./p h2Support/h2 pOn support front 82% of issues in Drupal.org-related issue queues got a response within 48 hours after being created./p pAn average response time (time between an issue was created and first comment not by issue author) across all issue queues on Drupal.org was 82.87 hours. For Drupal core issue queue this number was 60.68 hours. For Drupal.org related queues 34.19 hours./p p* * * /p pFull stats you can find in the a href=https://docs.google.com/a/association.drupal.org/spreadsheet/ccc?key=0AhdZJLpxJkY5dExtZnRBY2U3UTZTZEVYSzRucG83NHc#gid=02014 stats spreadsheet/a./p pCompared to 2013 some of the user activity numbers go down, which is directly related to the phase of the Drupal release cycle. Right after Drupal 7 release user activity peaked and then was slowly going down as Drupal 7 and contrib ecosystem matured. We are looking forward to Drupal 8 release! In the recent a href=https://assoc.drupal.org/blog/jsaylor/few-things-unwrap-drupals-birthdayDrupal Association community survey/a about 80% of respondents said they have firm plans to adopt Drupal 8, suggesting that release will cause a huge boost in user activity on Drupal.org./p p2014 was a great year, and thank you for spending some part of it on Drupal.org! We are excited to see what 2015 will bring./p /div/div/div
Categories: Drupal Feeds

Commerce Guys: Platform.sh hosting for eCommerce – it’s a game changer

Sat, 01/24/2015 - 2:05pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedh2Agency and online customer Use Case amp; experiences/h2 pimg align=right src=/sites/default/files/blog/files/cloud-platform.png style=padding: 5px; /Platform.sh is a 2nd generation a href=http://en.wikipedia.org/wiki/Platform_as_a_servicePlatform as a Service (PaaS)/a. It accelerates your PHP/Drupal/Symfony based project development and reduces the risk of moving new features into live. Some customers are seeing circa. 40% reduction in project budgets and revenue loss prevention, whilst gaining huge improvements in developer productivity, eliminating environmental resource management and reducing live downtime to zero, all at commodity hosting prices! For an Agency providing web development, commerce and hosting services, or the end customer themselves, understanding the detail behind these very powerful messages is an important factor to making the right decisions around the critical tools and technologies that impact their business, especially if say the pricing structure appears to be a little higher than the known alternatives.br /  /p h2emThere is a huge amount of eCommerce experience built into Platform.sh/em/h2 pCommerce Guys are involved in many leading edge developments that are pushing the boundaries of how eCommerce is being utilized and evolved to meet new business models, many of which are tied into faster development, more frequent changes and better uptime. These include the migration of offline customers into advanced online purchase environments; encouraging said customers to spend more money whilst at the same time becoming less expensive to support, requiring tighter integrations of support and customer care functions; also important is the delivery of B2C-like experience for B2B customers; as well as defining online and mobile strategies in conjunction with each other; Drupal 8, a href=https://www.drupal.org/project/project_distributionDistributions/a etc. etc.br /br / What gives Commerce Guys the credibility to offer such a convincing project development tool? We are a commercial software vendor, and we’ve invested several $m into building the a href=http://drupalcommerce.comDrupal Commerce/a application and its Kickstart distribution (deployed into over 50,000 active sites), so we know how to develop successful software products on an industrial scale. Of further relevance is the deep involvement we have in so many of our partner projects each year, providing analysis, design authority and development skills that puts us in the middle of hundreds of individual and unique development processes ! What we have engineered into the heart of Platform.sh is the flexibility to overcome the big problems and common manual activities that hold project teams back.br /  /p h2emDifferent customers, all with common problems/em/h2 pLet’s take a look at a handful of typical eCommerce customers, and work through their issues:/p ulliA strongDigital Agency (DA)/strong with a global pharmaceutical client who has many simple but different web-shop brands across 18 European countries./li liA strongSystems Integrator (SI)/strong with a high street optician as their customer, with an eCommerce system covering 14 territories. They have all the usual requirements of a high end client plus an unusually complex hosted infrastructure accommodating various index sites and 10 plus environments in each location, totalling 150 service instances./li liA strongRetail Fashion/strong client rolling out a Distribution based eCommerce system to 4 geographies./li liA pureplay strongonline marketing/strong business providing 4,000 products through a Social Media community exceeding 200,000 people in 22 countries around the world, of which the mobile traffic accounts for over 70% of their revenues./li /ulpAnd although both the Agency and the Integrator are at the high end of technical capability, and the 2 retailers have way less experience, they all have similar sets of problems that only Platform.sh seems to be able to solve./p p /p h2emComplex eCommerce applications versus simple brochure-ware sites/em/h2 p /p pTo properly emphasize the advantages that Platform.sh brings to an eCommerce system, we first need to draw a comparison between the complex and transactional nature of these customers’ applications, and that they usually work differently in each country, and as such require various different code bases. By comparison, these are very different for example, to brochure-ware sites with a central content repository, combined with simple language differences plus content change workflow pushed out through a multi-site architecture.br /  /p h2emTypical lifecycle issues that all 4 of these online businesses worry about/em/h2 pimg align=right src=/sites/default/files/blog/files/lifecycle.jpg style=padding:5px; width:300px; /To start with, the development process differences between these two project personalities (multi-region eCommerce and multi-site brochure ware) are significant, the differences being 1) many more environments through which the upstream movement of code is being managed, 2) a much longer code-test-production timeframe, 3) bigger testing overheads (including tools, time and people), 4) complex content approval workflows, 5) higher consequential management costs, and 6) a severe risk impact of changes not working in production and feature release delays due to poor Continuous Integration (CI).br /br / All the above are directly related to revenue loss - exacerbated by reputational damage in severe circumstances – which of course make them fairly unique to eCommerce. The effects on cost, time and business risk all increase exponentially when considering multi-country implementations./p p /p h2emWhat Platform.sh does for eCommerce that nobody else can !/em/h2 pPlatform.sh solves many problems specific to this eCommerce Use Case, as well as easing various issues that make such projects more expensive to deliver and very laborious to manage,as follows:/p olliMany development process issues are greatly affected, resulting in a significantly reduced number of coding errors due to inconsistent environments, and greatly reduced elapsed times in the code delivery process from local environment through test, staging and user sign-off./li liHugely improved Continuous Integration (CI) process that speeds up the change process for similar features across multiple environments into different local production services./li liTrue Continuous Delivery (CD) now becomes possible because the process no longer requires large number of changes to be bundled up and tested together before going to production say every 6-8 weeks. In this new regime, even the smallest of changes can whistle through in less than 60 minutes, which is vital for changes to aspects of the ‘Sale Offer’ during peak season, modifying coupon functionality for instance, or making micro changes during the advertising campaign./li liSteep cost reductions associated with maintaining multiple static environments (because re-creating from staging for new development environments isn’t possible or takes too long). Developers now have the power to create and destroy their own full-stack environments that mirror staging or say the master./li /olpWe’ve learned from various retailers using Platform.sh in the run up to holiday periods and promotions (especially Black Friday, Cyber Monday and December 26th) that the reduced risk of making changes into live offered by Platform.sh, plus the triple redundancy we provide in the Platform Enterprise (PE) offering with its ability to seamlessly upscale around traffic peaks are all regarded as extremely valuable to their business, the combination of which simply cannot be provided by alternate vendors ! This makes a href=https://platform.sh.com/Platform.sh/a a must for any mission critical eCommerce site./p /div/div/div
Categories: Drupal Feeds

DrupalCon News: Send Us Your Sessions and Training Proposals

Fri, 01/23/2015 - 6:28pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpThink you’ve got Drupal or web smarts? We’re seeking mind-blowingly good sessions for a href=https://events.drupal.org/losangeles2015DrupalCon Los Angeles/a, and want to hear from you about what you know best./p pYou don’t have to be the best in everything, but if there’s one topic you know inside and out, you should submit a session./p pWe’re looking for topics for the following tracks:/p/div/div/div
Categories: Drupal Feeds

cs_shadow: Tips for Google Summer of Code

Fri, 01/23/2015 - 4:41pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpa href=https://www.google-melange.com/gsoc/homepage/google/gsoc2015 title=Google Summer of Code 2015 - HomepageGoogle Summer of Code 2015/a is approaching and few people started asking me about how to get selected in GSoC 2015 and where to start. So I though to go ahead and write a blog post so that others can also benefit. This post targets students who have never participated in GSoC before and want to know how to get started with the application process and open source in general./p pimg src=http://1-ps.googleusercontent.com/xk/lUi00NOiZZtaYcm5-HDw_Ypz0k/s.google-melange.appspot.com/www.google-melange.com/soc/content/2-1-20150114-p1-2-gabbdf90-head/images/gsoc/logo/banner-gsoc2015.png.pagespeed.ce.1-XG35qq3Rvu7vgd5gq6.png alt=Google Summer of Code 2015 logo //p h2What is Google Summer of Code? How it works?/h2 pThe a href=http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page title=Google Summer of Code 2015 Frequently Asked QuestionsGSoC FAQ page/a should suffice to answer most of your queries and I strongly suggest to go through it before looking anywhere else for answers./p blockquotepGoogle Summer of Code is a program that offers student developers stipends to write code for various open source projects. We work with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together over 8,500 successful student participants from over countries and over 8,000 mentors from 109 countries worldwide to produce over 55 million lines of code./p /blockquote pSo, basically this is how it works:/p ulliDifferent orgs (open source organizations) submit their applications to be part of the program and Google chooses about 190 of those based on their application and past record./li liOnce the orgs are selected, the list will be available on Melange. Each org will have an ideas list and a homepage./li liYou need to choose one of the ideas from the list on the ideas page and submit your proposal. (Details on this below)/li liThen you wait for Google to announce the list of selected proposals. If you find your proposal there, then the hardest part is over and now you code with your org for about three months and complete the proposed project./li liIf everything went smoothly so far, you'll get a handsome paycheck for your contribution and you'd have learnt a lot about your project, org and open source./li /ulh2There are so many orgs, which one do I choose?/h2 pThis is probably the single most asked question every year around this time. The answer is pretty straightforward if you're already involved with any open source organization and want to continue work with the same org, then go for that one. If the answer to the previous question is no (which might be the case for most of you reading this post), then you need to choose a few orgs from the list of all accepted orgs. Although you will finally work with only one org, it might be a nice idea to select 1-3 orgs to which you may submit your proposals. You can shortlist the orgs based based on tags, for example if you're familiar with C++, you can filter the orgs which have the C++ tags mentioned on Melange./p pIf the org list of this not out yet, you can look at the list of orgs which participated in GSoC last year. For instance, you can take a look at the list of orgs which took part in a href=http://www.google-melange.com/gsoc/org/list/public/google/gsoc20142014/a and a href=http://www.google-melange.com/gsoc/org/list/public/google/gsoc20132013/a. Filter the orgs based on the tags you're either familiar with or want to work on. Orgs which participated in previous years and took in more than a couple of students are more likely to get accepted again this year. Based on this and your favorite tags, you filter out 1-3 orgs./p pAfter this, the next task is to go through the idea list for those orgs and decide what ideas interest you most. If you don't fully understand the ideas, it's completely fine and the next step will be to get your doubts cleared up by contacting the org and/or the mentor of the task (more on this in the next section)./p h2Okay, I've decided an org and project idea, what do I do next?/h2 pOnce you've decided what project idea interests you most and some parts of the description are either unclear to you or you want to clarify a few details, you should get in touch with the task mentor and the organization in general. All the orgs have a contact section on Melange which will tell you how to contact the org. Most orgs prefer communication either via IRC or mailing lists so you can get in touch with the org. You can also ping the task mentor in IRC or mail him to clarify any doubts that you might have regarding the project./p pAlthough its not compulsory, its usually a good idea to contribute to the org before sending your proposal. In order to that, you can ask questions like Hey I'm new here, can anyone help me get started on how to contribute. either on IRC or the mailing lists. Since orgs get asked such questions very frequently, many of those have a 'Getting Started' page and if it'll be very helpful if you find that page and follow the instructions. If you've any doubts don't hesitate to ask those. Mentors are generally nice people and will help you through./p h3How to start contributing/h3 pContributing to an org means either helping to fix bugs (issues), writing documentation or doing testing etc. All the orgs use an issue tracker to keep track of their issues/bugs and most of those orgs have a novice/beginner/quick-fix tag which lists tasks which are easy to fix for beginners. You can get more info on that by contacting the org. strongContributing to open source is fun and if you're not having fun, you're doing it wrong./strong/p h2Writing a good proposal/h2 pOnce you've finalized the project idea, and have got started contributing to the org, the next and the most important step is to strongwrite a proposal/strong. Many orgs have a application template of sorts and if your org has one, you need to follow that. Otherwise, you can start by specifying your personal information and then moving on to project description. Following are a few tips for writing your project proposal:/p ulliInclude a detailed timeline based on how you intend to complete the project./li liMake sure to list any bugs you've worked on and/or links to your contributions./li liDouble, actually triple check for spelling mistakes./li liDon't forget to mention your contact info./li liLast but not the least, don't forget to update Melange with your latest proposal./li /ulpOnce your proposal is ready, you can ask the task mentor (and/or the org admin) to review it before you submit it finally to Melange. Ask them if you could explain any parts of it in a better manner and follow up on their feedback. The most important part is really understanding the project idea and reflecting that in your proposal./p h2Some emDo/em's and emDon't/ems/h2 pFollowing are some miscellaneous tips for communicating with your org in a better manner:/p olli pstrongDon't ask to ask:/strong Don't hesitate to ask any questions and its much better than asking something like emHello! I ran into an isuue, can anyone help me?/em Instead you're more likely to get a helpful answer by asking your real question instead of asking to ask your question./p /li li pstrongBe patient and don't spam:/strong Once you've asked your question, wait for some time for someone to answer it. Its not a good idea to spam the channel again and again with the same question at short intervals./p /li li pstrongMentors are humans (and volunteers):/strong After mailing a mentor, at least wait for 48 hours for them to reply. You need to understand that they are humans and most of them contribute in their volunteer time./p /li li pstrongUse proper English language:/strong Its really not a good idea to use SMS language while communicating on IRC or mailing lists. Also, note that strongexcessive use of question marks is frowned upon/strong. Although you need to be respectful, but addressing mentors as Sir/Ma'am is not such a great idea./p /li /olh2Final words/h2 pIf you follow the steps mentioned above sincerely, you'll have a great chance of getting selected into GSoC this year. If you have any doubts, feel free to ask those in comments below./p h2PS: A little background about me/h2 pI was a Google Summer of Code student with Drupal in 2014 and org admin for Drupal in a href=http://www.google-melange.com/gci/homepage/google/gci2014Google Code-In 2014/a./p !-- Images --/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=http://chandansingh.net/blog/tips-google-summer-code-0 st_title=Tips for Google Summer of Code class=st_twitter_hcount displayText=twitter/span span st_url=http://chandansingh.net/blog/tips-google-summer-code-0 st_title=Tips for Google Summer of Code class=st_facebook_hcount displayText=facebook/span span st_url=http://chandansingh.net/blog/tips-google-summer-code-0 st_title=Tips for Google Summer of Code class=st_linkedin_hcount displayText=linkedin/span span st_url=http://chandansingh.net/blog/tips-google-summer-code-0 st_title=Tips for Google Summer of Code class=st_googleplus_hcount displayText=googleplus/span /div/div div class=field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item even rel=dc:subjecta href=/tags/google-summer-code typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Google Summer of Code/a/divdiv class=field-item odd rel=dc:subjecta href=/tags/gsoc typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=gsoc/a/divdiv class=field-item even rel=dc:subjecta href=/tags/gsoc2015 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=gsoc2015/a/divdiv class=field-item odd rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/div/div/div
Categories: Drupal Feeds

Drupal Association News: India – Embracing a Contribution Culture

Fri, 01/23/2015 - 2:25pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg class=left alt=DrupalCamp Delhi src=https://assoc.drupal.org/files/drupalcampdelhi.png style=width: 240px; height: 135px; /While we know there are over 33,000 Drupal developers around the globe, I had no idea how strong Drupal was in India until I was there with Rachel Friesen, scouting locations for a possible DrupaCon Asia. By meeting with the community at camps, meetups, and dinners, we saw first hand how strongly India is innovating with Drupal and contributing back to the Project./p pWhen it comes to geographic referrals, India is second in driving traffic to Drupal.org. However, they aren’t second in contributions, but things are changing. I was especially impressed with the relationship between Tata Consultancy Services (TCS) and Pfizer, a $51.5B life sciences company. Pfizer allows TCS to contribute their code, which is often not allowed for legal reasons. Since contributing back is a one of Pfizer’s top values, they asked TCS to make contribution part of their culture - and they did. At TCS, Rachit Gupta has created contribution programs that teach staff how to contribute and gives them time during work hours each week to contribute code. With a staff of several hundred developers, this can make TCS become a mighty contribution engine for the Project./p pI’m equally impressed by other Indian web development consulting agencies that I met like Axelerant, Blisstering Solutions, Kellton Tech, and Srijan, who also have a contribution culture in their organizations. They even set up KPIs around staff contributions to make sure they are keeping this initiative top of mind./p pWhile India celebrates its 68th birthday on January 25, it’s a time to celebrate its growth as a nation-- and, in its own way, Drupal has a hand in the country’s prosperity. a href=http://shine.comShine.com/a, a Drupal job search site, shows there are over 15,000 Drupal jobs in India.  All of the companies I talked to are growing their teams to meet that demand. Imagine if this contribution culture is fully embraced by Indian web development companies? The impact on the Project will be significant./p pIndividuals are also stepping up to support the Project and there is a passion for contribution that is spreading. I keynoted DrupalCamp Delhi, where over 1,000 people registered and 575 people attended. I saw first hand how dedicated the organizers were to make the event informative and fun. Several sprint mentors were on hand to lead more than 75 people through a full day sprint. Plus, the following weekend was Global Sprint Weekend and sprints popped up all over India in Bangalore, Chennai, Delhi, Goa, Hyderabad and Pune./p pNot only are Drupalers in India helping the Project, but they are also using Drupal to create change in India with leapfrog solutions that give Indians access to more digital services. For example, many villages don’t have access to products found in major cities due to lack of infrastructure. The village stores simply can’t scale to buy and hold large quantities of inventory./p pIksula, an Indian eRetail consulting agency,  created a headless Drupal solution for Big Bazaar, India’s largest hypermarket, which provides lightweight tablets for store owners throughout India. Using those tablets, villagers can go into their local store and buy their goods online. The products are delivered to the shop owner, who hand delivers products to the consumer, giving people easier access to goods that can improve their quality of life./p pAs another example, we can look at IIT Bombay, India’s top engineering university, which uses Drupal at the departmental level. Professors P Sunthar and Kannan are taking Drupal to the masses by creating a MOOC in conjunction with MIT’s EDx. The work is funded by a government initiative called FOSSEE (Free and Open Source Software for Education), and through it, Indian university students can watch videos on several open source technologies, including Drupal./p pThe initiative bridges learning divides by providing the trainings in several languages found throughout India and provides low cost tablets for students who do not have a personal computer. This well thought-out program can help students learn the tools faster to meet the needs of of future employers. /p pIndia has clearly embraced Drupal. They are making innovative solutions with the software and they are learning to contribute that back to the Project. Its for these reasons we want to host DrupalCon Asia. It will be a chance to highlight India’s Drupal talent and accelerate their adoption of a contribution culture./p pA huge thank you to Chakrapani R, Hussain Abbas, Rahul Dewal, Jacob Singh, Mayank Chadha, Parth Gohil, Ankur Gupta, Piyush Poddar, Karanjit Singh, Mahesh Bukka, Vishal Singhal, Ani Gupta, Rachit Gupta, Sunit Gala, Professor P Sunthar and all the other community members who helped organize our trip to India. I’m personally moved and professionally inspired by all that you do./p pemImage credit to DrupalCamp Delhi/em/p /div/div/div
Categories: Drupal Feeds

OpenLucius: Drupal REST Web Services - What, why and how

Fri, 01/23/2015 - 3:06am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpSo, here at Lucius HQ we are planning on building a RESTful API (web services) on top on Drupal distribution a href=https://www.drupal.org/project/openluciusOpenLucius/a./ppWe want to do this so all 3rd party programmers, thus 3rd party applications, can integrate with OpenLucius. And not only Drupal developers and Drupal modules. /p/div/div/div
Categories: Drupal Feeds

groups.drupal.org frontpage posts: Drupalcamp New Orleans 2015

Thu, 01/22/2015 - 8:19pm
div class=field field-type-datestamp field-field-start7 div class=field-items div class=field-item odd div class=field-label-inline-first Start:nbsp;/div span class=date-display-single2015-03-28 span class=date-display-start09:00/spanspan class=date-display-separator - /spanspan class=date-display-end17:00/span America/Chicago/span /div /div /div div class=field field-type-text field-field-event-type div class=field-items div class=field-item odd User group meeting /div /div /div div class=field field-type-userreference field-field-organizers div class=field-labelOrganizers:nbsp;/div div class=field-items div class=field-item odd a href=/user/14020 title=View user profile.jeffdiecks/a /div div class=field-item even a href=/user/75880 title=View user profile.jasonawant/a /div div class=field-item odd a href=/user/33624 title=View user profile.schmook/a /div div class=field-item even a href=/user/70116 title=View user profile.bberl/a /div /div /div div class=field field-type-text field-field-url div class=field-items div class=field-item odd pa href=http://www.drupalcampnola.com title=http://www.drupalcampnola.comhttp://www.drupalcampnola.com/a/p /div /div /div pa href=http://www.drupalcampnola.comimg src=https://groups.drupal.org/files/ladug-logo.png align=right hspace=10 alt=Drupalcamp New Orleans //aJoin us for the second annual Drupalcamp New Orleans on Saturday, March 28, 2015. Visit a href=http://www.drupalcampnola.com title=www.drupalcampnola.comwww.drupalcampnola.com/a for more information, to register and to submit a session./p pDrupalcamp New Orleansbr / Saturday, March 28, 2015 - 9 am - 5 pmbr / Launch Padbr / 643 Magazine Stbr / New Orleans, LAbr / a href=http://www.drupalcampnola.com title=www.drupalcampnola.comwww.drupalcampnola.com/a/p
Categories: Drupal Feeds