Planet Drupal

Syndicate content
drupal.org - aggregated feeds in category Drupal Planet
Updated: 24 min 30 sec ago

EmmaJane: What You Don't Know About Drupal Can Make Theming More Expensive

Fri, 02/22/2013 - 00:11
pGoing from static design files to a completed Drupal theme can be a daunting task. I often get asked quot;strategicquot; questions by companies who are looking to hire a designer/themer for an upcoming redesign and aren#39;t quite sure what skills they should be looking for. And I often get asked by new-to-Drupal designers how they should approach the task of transforming their design into a Drupal theme. In these conversations the following question (almost) always comes up:/p pShould I create a static HTML page of my design and convert that into a Drupal theme?/p pCan you guess what my answer is?/p pFive years ago, when I was first writing Front End Drupal, the answer would have been quot;Yes!quot; Five years ago there were fewer moving parts to creating a Drupal theme. There were fewer contributed modules. Responsive design wasn#39;t even an idea yet. Five years ago I don#39;t think that quot;mobilequot; was even a thought for most businesses, let alone a concern./p pBut today, in 2013, my answer has definitely changed. Now when asked if people should create a static HTML page of their design before converting it into a Drupal theme, my answer is quot;No!quot; In fact, depending on your budget size for the entire build and the type of site you#39;re building, you may actually want to skip quot;staticquot; design files for each layout (and layout variant if you#39;re building a responsive site) and have your designer supplement their work by creating quot;a href=http://styletil.es/style tiles/aquot; instead of piles and piles of page-specific layouts./p pDesigning for a style, instead of a specific layout, is a different workflow though. You#39;ll need to have a relatively experienced content strategist, designer *and* themer to help you navigate this workflow for theming Drupal. Pixel precise designers are much easier to find. But here#39;s the problem with pixel perfect design: it relies on exact markup. Drupal is markup-heavy and can drive a themer crazy if every single tag, and every single class must be exactly perfect. These days, it#39;s easier to skip the quot;staticquot; step and get into Drupal as fast as possible. Sure, you#39;ll still want to refactor some markup (or maybe just start with a different base theme), but the point is that you aren#39;t starting from thin air./p pThemers who want markup purity tend to be coming at their work from an Model-View-Controller (a href=http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controllerMVC/a) perspective...which isn#39;t what Drupal does. We#39;re a Presentation-abstraction-control (a href=http://en.wikipedia.org/wiki/Presentation%E2%80%93abstraction%E2%80%93controlPAC/a) framework. The main difference between the two (in laymen#39;s terms) is the fragmentation of the output/markup files. Our system has lots of little nested template fragements which are compiled, or collected, into a whole. This means if you want very, very precise markup, you have to alter a lot of little files. Some of us love it because you can get really fine grained control in very tiny places without having to touch all of the markup, others hate it for exactly the same reason./p pRegardless of which camp you#39;re in, there doesn#39;t seem to be a lot of information about building themes that talk about these emsoftware/em design patterns. A quick search reveals the following tutorials and articles (most are quite old). If you#39;ve got others you#39;d like to add to the pile, please leave them in the comments. Things get very technical very quickly...but hey, this emis/em a list of links about software design patterns. It#39;s supposed to be technical./p ul lia href=http://www.garfieldtech.com/blog/mvc-vs-pacMVC vs. PAC/a (from Crell in 2006!)/li lia href=http://dsheiko.com/weblog/building-a-site-on-drupal-using-mvcBuilding a site on Drupal using MVC/a/li lia href=http://www.dhmedia.com.au/blogs/drupal-mvc-frameworkDrupal as an MVC Framework/a (the difficulties of integrating Zend + Drupal)/li lia href=http://www.digett.com/2010/04/26/object-oriented-approach-drupal-module-developmentAn Object-Oriented Approach for Drupal Module Development/a (or how you will go slowly crazy if you try to treat Drupal like an MVC framework)/li liA pretty awesome description of the MVC empattern/em and how module developers can take advantage of it (when it#39;s appropriate): a href=http://drupalzombie.com/article/mvc-z-model-view-controller-and-zombiesMVCZ: Model, View, Controller, and Zombies/a./li li(Software) a href=http://drupalwatchdog.com/1/1/design-patterns-of-drupalDesign Patterns of Drupal/a/li /ul

Four Kitchens: Minified JavaScript, on the Fly!

Thu, 02/21/2013 - 23:38
div class=field-body pAs web applications become richer and more complicated the amount of JavaScript running them increases. More code means longer download times which means more waiting before your application or web site is usable. Thankfully there’s an easy solution that’s already widely used in the web development community: minification. Minified JavaScript strips whitespace and renames variables to produce a smaller downloadnbsp;size./p pRemoving whitespace is pretty straightforward, but renaming variables is a more abstract concept. With tools like a href=https://github.com/mishoo/UglifyJS/UglifyJS/a this is handled for you but here’s an example of what’s going on. Let’s look at this simple function that takes a parameter and alerts a message with thatnbsp;variable:/p div class=geshifilter pre class=javascript geshifilter-javascript style=font-family:monospace;span style=color: #003366; font-weight: bold;var/span sayHi span style=color: #339933;=/span span style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanspan style=color: #000066;name/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000066;alert/spanspan style=color: #009900;(/spanspan style=color: #3366CC;'Hi '/span span style=color: #339933;+/span span style=color: #000066;name/span span style=color: #339933;+/span span style=color: #3366CC;'!'/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/spanspan style=color: #339933;;/span/pre/div pWith script minification the above code will be changed tonbsp;this:/p div class=geshifilter pre class=javascript geshifilter-javascript style=font-family:monospace;span style=color: #003366; font-weight: bold;var/span sayHispan style=color: #339933;=/spanspan style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanaspan style=color: #009900;)/spanspan style=color: #009900;{/spanspan style=color: #000066;alert/spanspan style=color: #009900;(/spanspan style=color: #3366CC;Hi /spanspan style=color: #339933;+/spanaspan style=color: #339933;+/spanspan style=color: #3366CC;!/spanspan style=color: #009900;)/spanspan style=color: #009900;}/spanspan style=color: #339933;;/span/pre/div pwithout altering the behavior of the function. As you can see, all whitespace that can be removed has been and the variable “span class=geshifiltercode class=text geshifilter-textname/code/span” was changed to “span class=geshifiltercode class=text geshifilter-texta/code/span”. The end result is the removal of 26 characters from the code. It’s not hard to see that the savings from minification will quickly addnbsp;up!/p pYou can take this one step further by wrapping your code in immediately-invoked function expressions (IIFEs). That’s a pretty scary looking name, but chances are you’ve seen these before, this is annbsp;example:/p div class=geshifilter pre class=javascript geshifilter-javascript style=font-family:monospace;span style=color: #009900;(/spanspan style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/span$span style=color: #009900;)/span span style=color: #009900;{/span $span style=color: #009900;(/spanspan style=color: #3366CC;'h1'/spanspan style=color: #009900;)/span.span style=color: #660066;css/spanspan style=color: #009900;(/spanspan style=color: #3366CC;'text-decoration'/spanspan style=color: #339933;,/span span style=color: #3366CC;'blink'/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/spanspan style=color: #009900;(/spanjQueryspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span/pre/div pThe function wrapped in parentheses is immediately invoked with jQuery as its argument. Within the function jQuery is accessed with the span class=geshifiltercode class=text geshifilter-text$/code/span variable. Abstracting variables in IIFEs is not required though, consider thisnbsp;case:/p div class=geshifilter pre class=javascript geshifilter-javascript style=font-family:monospace;span style=color: #009900;(/spanspan style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanDrupalspan style=color: #009900;)/span span style=color: #009900;{/span Drupal.span style=color: #660066;behaviors/span.span style=color: #660066;sayHi/span span style=color: #339933;=/span span style=color: #009900;{/span attachspan style=color: #339933;:/span span style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanspan style=color: #000066;name/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #000066;alert/spanspan style=color: #009900;(/spanspan style=color: #3366CC;'Hi '/span span style=color: #339933;+/span span style=color: #000066;name/span span style=color: #339933;+/span span style=color: #3366CC;'!'/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span span style=color: #009900;}/spanspan style=color: #339933;;/span span style=color: #009900;}/spanspan style=color: #009900;(/spanDrupalspan style=color: #009900;)/spanspan style=color: #009900;)/spanspan style=color: #339933;;/span/pre/div pMinifying this code produces thenbsp;following:/p div class=geshifilter pre class=javascript geshifilter-javascript style=font-family:monospace;span style=color: #009900;(/spanspan style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanaspan style=color: #009900;)/spanspan style=color: #009900;{/spana.span style=color: #660066;behaviors/span.span style=color: #660066;sayHi/spanspan style=color: #339933;=/spanspan style=color: #009900;{/spanattachspan style=color: #339933;:/spanspan style=color: #003366; font-weight: bold;function/spanspan style=color: #009900;(/spanaspan style=color: #009900;)/spanspan style=color: #009900;{/spanspan style=color: #000066;alert/spanspan style=color: #009900;(/spanspan style=color: #3366CC;Hi /spanspan style=color: #339933;+/spanaspan style=color: #339933;+/spanspan style=color: #3366CC;!/spanspan style=color: #009900;)/spanspan style=color: #009900;}/spanspan style=color: #009900;}/spanspan style=color: #009900;}/spanspan style=color: #009900;)/spanspan style=color: #009900;(/spanDrupalspan style=color: #009900;)/spanspan style=color: #339933;;/span/pre/div pKeeping the “span class=geshifiltercode class=text geshifilter-textDrupal/code/span” variable in your script makes sense because that’s the namespace you#8217;re used to accessing it with and it does have meaning in the code, but by including it as an argument to the span class=capsIIFE/span UglifyJS will replace any instances of “span class=geshifiltercode class=text geshifilter-textDrupal/code/span” with a shortenednbsp;variable./p h2What aboutnbsp;Drupal?/h2 pSo, this is pretty cool, right? Unfortunately Drupal 7 doesn’t provide minification out of the box. Thankfully, there are contrib solutions to this problem! The a href=http://drupal.org/project/speedySpeedy/a module provides pre-minified scripts but unfortunately needs to be re-released a href=http://drupal.org/node/1839478every time core is updated/a or you need to re-minify the files yourself on corenbsp;updates./p pI wasn’t completely satisfied with this approach so I built a href=http://uglify.meuglify.me/a and a companion Drupal module, a href=http://drupal.org/project/uglifyjsUglifyJS/a, to do script minification on the fly. uglify.me isn’t the only “minifier-as-a-service” out there, but I wanted to be able to throw something up quickly and be fairly confident that it wouldn’t upset some other poor developer out there hosting their ownnbsp;service./p pThe uglify.me service accepts span class=capsPOST/span requests of un-minified JavaScript and returns the minified version. Simple! The UglifyJS module provides an span class=capsAPI/span to expose Drupal scripts that should benbsp;minified:/p div class=geshifilter pre class=php geshifilter-php style=font-family:monospace;span style=color: #009933; font-style: italic;/** * Implements hook_uglifyjs_info(). *//span span style=color: #000000; font-weight: bold;function/span mymodule_uglifyjs_infospan style=color: #009900;(/spanspan style=color: #009900;)/span span style=color: #009900;{/span span style=color: #b1b100;return/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;(/span drupal_get_pathspan style=color: #009900;(/spanspan style=color: #0000ff;'module'/spanspan style=color: #339933;,/span span style=color: #0000ff;'mymodule'/spanspan style=color: #009900;)/span span style=color: #339933;./span span style=color: #0000ff;'/js/mymodule.js'/spanspan style=color: #339933;,/span span style=color: #009900;)/spanspan style=color: #339933;;/span span style=color: #009900;}/span/pre/div pThe downside to this approach is that each script will create another request to the uglify.me service when the site cache is cold. If you expose a lot of scripts to the UglifyJS span class=capsAPI/span this will be time consuming and could causenbsp;timeouts./p pIf you’re running a href=https://github.com/pressflow/7/tree/pressflow-7.20.1Pressflow 7.20.1+/a or apply a href=https://github.com/pressflow/7/commit/53098cf059236110716ca97c18565a178c458b43.diffthis patch/a to core and you have JavaScript concatenation enabled (which you should, if you’re in production) the UglifyJS module will automatically minify the concatenated scripts. This greatly reduces the number of requests to the web service and overhead associated withnbsp;minification./p h2Caveats/h2 pThe biggest issue that I’ve encountered with this module is the requests made to the external web service. If there’s a problem connecting to the remote server the time spent waiting for the response is wasted and can cause timeouts on cold caches. This is mitigated if you’re using Pressflow 7.20.1+ since core will not request files to be rebuilt if the hash of the concatenated scripts did notnbsp;change./p pThe uglify.me service also currently strips some header comments from scripts which delwould/del could remove any copyright or license information if they exist. delThis should be fixable from the uglify.me service, so if it’s bothering you and I haven’t had time to fix it before you need it,/del As of uglify.me v0.1.0 any comment containing the words “license” or “copyright” (case insensitive), or the common build tags “@preserve” and “@cc_on” will not be stripped from the source code. This is controlled by a regular expression so if you find a emgeneral/em case that#8217;s not met by the current regular expression open a a href=https://github.com/elliotttf/uglify.mepull request/a to fixnbsp;it!/p h2Conclusion/h2 pScript minification is a great way to reduce your site’s download footprint and increase usability. If bandwidth and performance are concerns you should be minifying, regardless of your ultimate solution. Informal testing on the recently released a href=http://fullplateliving.orgFull Plate Living/a site showed reduction in the front page’s download weight by an average of span class=caps110KB/span*. Not monumental, but not too badnbsp;either./p pHappynbsp;minifying!/p p* Note: The UglifyJS module is not currently in use on the production Full Plate Living site, but it likely will benbsp;soon!/p /div

Mediacurrent: Featured Recipe: FileMaker and Drupal

Thu, 02/21/2013 - 19:52
img src=http://www.mediacurrent.com/sites/default/files/imagecache/thumb_blog_spotlight/filemaker.jpg alt= title= class=imagecache imagecache-thumb_blog_spotlight imagecache-default imagecache-thumb_blog_spotlight_default width=200 height=150 / pemWould you like to see this topic presented at DrupalCon Portland? +1 a href=http://portland2013.drupal.org/session/integrating-filemaker-drupal-case-studythe session proposal/a and leave a comment for the selection committee! a href=http://portland2013.drupal.org/session/integrating-filemaker-drupal-case-studyLink to DrupalCon Session Proposal/a./em/p pDo you love a href=http://www.filemaker.comFileMaker/a? Do you work with (or for!) someone who does? I’m now a Drupal Developer at Mediacurrent, but my last position (at a href=http://www.gatech.eduGeorgia Tech/a’s a href=http://oie.gatech.eduOffice of International Education/a) involved a lot of FileMaker work, and this FileMaker integration would have been a lifesaver, so here goes!/p

TimOnWeb.com: Working with Drupal Fields: Getting Single Field Values For Display and Manipulaton

Thu, 02/21/2013 - 18:48
div class=field field-name-field-image field-type-image field-label-hiddenimg typeof=foaf:Image src=http://timonweb.com/sites/default/files/styles/post-images/public/fields.jpg width=150 height=150 alt= //divdiv class=field field-name-body field-type-text-with-summary field-label-hiddenpThis post is a quick addition to my previous tutorial: a href=/loading-only-one-field-from-an-entity-or-nodeLoading Only One Field From An Entity or Node in Drupal 7/a. The tricky part there was what to do with node's field data and how to properly display it? Well there are lots of approaches there, but I see three which are of “Drupal Way” kind:/p/div Read on about a href=http://timonweb.com/working-with-drupal-fields-getting-single-field-values-for-display-and-manipulatonWorking with Drupal Fields: Getting Single Field Values For Display and Manipulaton/a

Modules Unraveled: Setting up a newsletter in Drupal 7? I'm putting together a series on all the module options - Feedback wanted!

Thu, 02/21/2013 - 18:40
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpHey guys,br / I'm going to be putting together a mini-series on Newsletters in Drupal 7. Just about every site can benefit from having a mailing list, so I figured I'd flesh out the options that are available, right now, for Drupal 7. I'm hoping to have someone on the show to talk about each of the following modules./p/div/div/div!-- THIS FILE IS NOT USED AND IS HERE AS A STARTING POINT FOR CUSTOMIZATION ONLY. See http://api.drupal.org/api/function/theme_field/7 for details. After copying this file to your theme's folder and customizing it, remove this HTML comment. -- div class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix div class=field-labelTags:nbsp;/div div class=field-items div style=display:inline; class=field-item even rel=dc:subject a href=/tags/newsletters typeof=skos:Concept property=rdfs:label skos:prefLabelnewsletters/a, /div div style=display:inline; class=field-item odd rel=dc:subject a href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabelplanet-drupal/a /div /div /div

Toronto Website Developer: Drupal 7 Views Module Tutorial 7 of 10: Integrating Your Module with the Views API

Thu, 02/21/2013 - 17:15
div class=field field-type-text field-field-video-description div class=field-items div class=field-item odd pIn the 7 video of this 10 part Drupal video tutorial series on the Views module, we look at the Views API and how to integrate a custom module with Views 3 so that we can build views based on our custom content. /p pThe Views API allows you to leverage the awesomeness that is the Views module when you are doing custom Drupal development and so I show you how to link up our database fields to view fields, filters, sorting, arguments and relationships./p pOnce this is done, I walk you through building another view based on our custom module and again, we take a quick look at using relationships and contextual filters./p /div /div /div

Wunderkraut blog: Screencast: Semantic panels

Thu, 02/21/2013 - 14:41
div class=field-ns-prod-entrpr-thumbnail div id=file-3230 class=file file-image file-image-png div class=content img src=http://wunderkraut.com/sites/wunderkraut.com/files/styles/ns_prod_enterprise_thumbnail/public/field_ns_prod_entrpr_thumbnail/semantic_panels.png alt=semantic_panels.png / /div /div /div p class=field-ns-blog-post-lead Semantic panels is for Panels what Semantic Views is for Views - better control of the markup. /p div class=field-ns-blog-post-body clearfix div class=field-item even pTodays screencast subject is Semantic Panels. If you are new to panels and Page manager, I recomend you to watch a href=http://nodeone.se/sv/node/21Johan Falks screencasts on the suject/a./ppYou could also a href=https://archive.org/details/SemanticPanelsfind the screencast at archive.org/a./p /div /div

David Corbacho: Drupal Code Base

Thu, 02/21/2013 - 09:29
div class=field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=http://drupalmotion.com/sites/default/files/styles/thumbnail/public/field/image/code_base_chart_2.jpg width=90 height=90 alt=Drupal core Statistics Evolution //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpNow that we've passed the Drupal 8 feature freeze, it's a good moment to present some statistics of Drupal core code base evolution.br / All the charts are here together in this infographic:/p pstrongUpdate/strong. Just to clarifybr / Drupal 8 core has experienced big changes in the file structure, probably the biggest ones in all Drupal's history, so I wanted to help to assimilate this change in a visual way.br / But clearly isn't it enough to understand the full picture of Drupal 8 core changes, and I hope the graphs are not misleading. Please, I encourage you reading a href=http://buytaert.net/Dries/a, a href=http://www.garfieldtech.com/Crell/a, a href=http://ca.tchpole.net/catch/a and the other a href=http://groups.drupal.org/drupal-initiativesinitiative owners/a to know more about the conceptual and underlying architectural changes of Drupal 8./p pstrongUpdate2/strongbr / Tim Plunkett ‏points me via Twitter to this issue: a href=http://drupal.org/node/1475510http://drupal.org/node/1475510/a . If this issue gets fixed, then Composer (tool for project dependency management) will take care of downloading the Symfony Components and we won't need them in the vendor folder./p pStill, I would consider those components part of Drupal core, but what do you think? Should the a href=http://drupalcode.org/project/drupal.git/tree/HEAD:/core/vendorvendor subdirectory/a be considered part of Drupal core or not? /p pstrongUpdate3/strongbr / For the sake of completeness I added in the first chart a variant of Drupal 8 core without the vendor subdirectory./p iframe src=//infogr.am/Drupal-Code-Base width=560 height=4751 scrolling=no frameborder=0 style=border:none;/iframep For Drupal 8, the slogan of our company a href=http://aberdeencloud.com#AberdeenCloud/a has more sense than ever a virtual clustering platform for Big Drupal/p pa class=twitter-timeline href=https://twitter.com/search?q=http%3A%2F%2Fdrupalmotion.com%2Farticle%2Fdrupal-code-base data-widget-id=304573328776110080Tweets about this article/a/p script !--//--![CDATA[// !-- !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=//platform.twitter.com/widgets.js;fjs.parentNode.insertBefore(js,fjs);}}(document,script,twitter-wjs); //--!]] /script/div/div/div

Web Wash: Manage Comments with Better Comments Administration Module in Drupal 7

Thu, 02/21/2013 - 09:25
div class=field field-name-field-ww-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpAdding the ability to comment on a blog is one way of allowing two-way communication with your readers. If your readers have an opinion or question, they'll simply leave a comment on your blog post. If you want to keep comments clean and without spam, you'll have to manually approve them. Of course, there are services like a href=http://mollom.com/Mollom/a and a href=http://akismet.com/Akismet/a that do a great job with filtering spam but some still get through./p pDrupal's default comments administration page is very basic and if you want to review and approval comments you'll have to jump between two pages./p pThe a href=http://drupal.org/project/better_comments_adminBetter comments administration/a module allows you to preview, approve and search comments on a single page./p /div/div/div

Code Karate: Drupal 7 Module Development - JavaScript confirm part 3

Thu, 02/21/2013 - 07:59
div class=field field-type-number-integer field-field-episode-number div class=field-labelEpisode Number:nbsp;/div div class=field-items div class=field-item odd 113 /div /div /div div class=field field-type-content-taxonomy field-field-post-topics div class=field-labelPost Topics:nbsp;/div div class=field-items div class=field-item odd Drupal /div div class=field-item even Drupal 7 /div div class=field-item odd Module Development /div div class=field-item even Drupal Planet /div div class=field-item odd Javascript /div /div /div pIn the last two episodes, we covered building a basic Drupal 7 module that displayed a JavaScript confirmation before a user leaves a specific page. In this episode we continue where we left off and add the ability to display the JavaScript confirm form on specific content type node edit pages./p pIn this episode you will learn:/p ul liHow to add a checkbox field on the administration form that displays all the content types on your Drupal site/li liHow to verify you are on the node edit page of a specific content type/li /ul div class=field field-type-emvideo field-field-ddod-video div class=field-labelDDoD Video:nbsp;/div div class=field-items div class=field-item odd div class=emvideo emvideo-video emvideo-youtubediv id=media-youtube-3 class=media_youtube_flash media-youtube div id=media-youtube-default-external-3 object type=application/x-shockwave-flash height=488 width=600 data=http://www.youtube.com/v/xaXkTCeMY7Iamp;amp;rel=0amp;amp;hd=1amp;amp;enablejsapi=1amp;amp;playerapiid=ytplayeramp;amp;fs=1 id=media-youtube-default-external-object-3 param name=movie value=http://www.youtube.com/v/xaXkTCeMY7Iamp;amp;rel=0amp;amp;hd=1amp;amp;enablejsapi=1amp;amp;playerapiid=ytplayeramp;amp;fs=1 / param name=allowScriptAccess value=sameDomain/ param name=quality value=best/ param name=allowFullScreen value=true/ param name=bgcolor value=#FFFFFF/ param name=scale value=noScale/ param name=salign value=TL/ param name=FlashVars value=playerMode=embedded / param name=wmode value=transparent / !-- Fallback content -- a href=http://www.youtube.com/watch?v=xaXkTCeMY7Iimg src=http://codekarate.com/sites/new.codekarate.com/files/emvideo-youtube-xaXkTCeMY7I.jpg alt=See video title=See video width=600 height=488 //a /object /div /div /div /div /div /div pa href=http://codekarate.com/daily-dose-of-drupal/drupal-7-module-development-javascript-confirm-part-3 target=_blankread more/a/p

DrupalCon Portland 2013: DrupalCon Portland Call for Core Conversations Now Open: Help shape the future of Drupal

Thu, 02/21/2013 - 00:13
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWay back at DrupalCon Chicago the local team created a new track called Core Conversations. The purpose of this track was to focus squarely on the interests of core developers and those interested in keeping up with the bleeding edge of Drupal development. Crazy ideas and wild rants were encouraged, as long as they were focused and discussion and finding solutions. Since then Core Conversations have been a part of every DrupalCon./p/div/div/div

Baris Wanschers: Working with Drush alias files in teams

Thu, 02/21/2013 - 00:00
div class=field field-name-body field-type-text-with-summary field-label-hidden clearfix div class=field-items div class=field-item even pWithin our company we use a href=http://www.drush.org/Drush/a and Drush alias files a lot. Recently I wrote a href=http://www.limoengroen.nl/blog/drush-alias-files-gebruiken-in-teamsa company blog post/a (in Dutch) about the workflow we’ve set-up and this post is its English translation. For those of you not familiar with Drush, I’ll start with a short introduction. If you are already familiar with Drush and Drush alias files, you can skip to a href=#coolstuffthe interesting part/a./p h2What is Drush?/h2 pA lot of Drupal developers use Drush (Drupal Shell) to speed-up their daily processes. After you’ve install Drush locally, you can run tasks on the command-line which you would normally run via the interface. Here are some often used commands:/p ulliemdrush cc all/em: clear all Drupal caches/li liemdrush fra/em: revert all features/li liemdrush upwd Baris –password=”test”/em: change the password of user Baris to ‘test’/li liemdrush sql-dump gt; dump.sql/em: export the current database to a file/li liemdrush sqlc lt; dump.sql/em: import an exported database-dump/li /ulpIt is quite easy to create custom drush commands for task that you need often in your daily work. Many contrib modules come with their own drush implementation (for example emdrush search-api-index/em to index your site content)./p h2What are Drush alias files?/h2 pIn so-called emalias files/em you describe the server information per website. They contain paths and usernames of all environments of a site (dev, test, staging, live). Here’s an example:/p pFilename: emcustomer.aliases.drushrc.php/em. I’ve placed this file in my ‘aliases’ folder within my .drush folder. On Linux you can find it here: em~/.drush/aliases/em/p h3limoengroen.aliases.drushrc.php/h3 pre class=brush: php$aliases['dev'] = array( 'root' =gt; '/Users/BarisW/Sites/company.com', 'uri' =gt; 'dev.company.com', 'path-aliases' =gt; array( '%dump' =gt; '/tmp/dump-company.sql', '%files' =gt; 'files', ), ); $aliases['test'] = array( 'root' =gt; '/var/www/company-test/htdocs', 'remote-host' =gt; 'webserver1.company.com', 'remote-user' =gt; 'username-test', 'uri' =gt; 'test.company.com', 'path-aliases' =gt; array( '%dump' =gt; '/tmp/dump-company.sql', '%files' =gt; 'files', ), ); $aliases['prod'] = array( 'root' =gt; '/var/www/company-prod/htdocs', 'remote-host' =gt; 'webserver2.company.com', 'remote-user' =gt; 'username-prod', 'uri' =gt; 'www.company.com', 'path-aliases' =gt; array( '%dump' =gt; '/tmp/dump-company.sql', '%files' =gt; 'files', ), ); /pre pThe main advantage of using alias files is that you can use them to run all the drush commands on external servers. To be able to do this you need SSH access to the external server and that Drush is installed on the external server as well. If you don’t want to enter your password each time you run an external Drush command, you can also add your SSH key to the external server./p pUsing these alias files I can now simple run a command like this to clear the caches on the production environment:/p pre class=brush: phpdrush @company.prod cc all/pre pOr, to copy the production database to my local machine:/p pre class=brush: phpdrush sql-sync @company.prod @company.dev/pre pIdeal! Optionally, Drush sql-sync can also sanitize the data (to obscure all e-mails and passwords). This prevents developers to store sensitive customer data on their laptops./p pre class=brush: phpdrush sql-sync @company.prod @company.dev --sanitize/pre h2a name=coolstuff id=coolstuff/aHow to use Drush alias files in teams?/h2 pExtremely handy, but each developer had to enter all the settings from the various local environments in their alias files. The solution we found for this is simple and very effective: Dropbox / SparkleShare or similar./p pWe created a folder in Dropbox that contains all alias files. We symlinked the alias directory in ~/.drush/aliases to that folder. In this way, each team member always uses the correct data for all the project environments. You can also use these same alias files for your Continuous Integration environment (we re-use them also for our automated deployments using Jenkins)./p pTo be able to do so we had to change one setting: instead of the ‘dev’ alias we use the names of our employees (because each employee runs his local environment somewhere else). So in my case it is now:/p pre class=brush: phpdrush sql-sync @company.prod @company.baris/pre h2Bonus tip: alias files inheritance/h2 pThe real fun starts when you start using inheritance within your alias files. For example; we use a ‘localdev’ alias for all local environments:/p h3defaults.aliases.drushrc.php/h3 pre class=brush: php$aliases['localdev'] = array( 'target-command-specific' =gt; array( 'sql-sync' =gt; array( 'sanitize' =gt; TRUE, 'confirm-sanitizations' =gt; TRUE, 'no-ordered-dump' =gt; TRUE, 'no-cache' =gt; TRUE, 'enable' =gt; array( 'devel', 'stage_file_proxy', 'ds_ui', 'fields_ui', 'views_ui', ), ), ), ); /pre h3customer.aliases.drushrc.php/h3 pre class=brush: php$aliases['localdev'] = array( 'parent' =gt; '@defaults.localdev', 'uri' =gt; 'dev.company.com', 'path-aliases' =gt; array( '%dump' =gt; '/tmp/company-dump.sql', '%files' =gt; 'files', ), ); $aliases['baris'] = array( 'parent' =gt; '@company.localdev', 'root' =gt; '/Users/BarisW/Sites/company.com', ); $aliases['eric'] = array( 'parent' =gt; '@company.localdev', 'root' =gt; '/Users/EricM/Sites/dev.company.com', ); /pre pThis setup ensures that every sql-sync is automatically sanitized, and that a number of dev modules are enabled that are turned off on the live environment (like the devel module)./p pPS: to use the 'enable' command, you need to copy the emsync_enable.drush.inc/em file from your drush installation folder to your ~/.drush folder./p pHow do you use Drush alias files in your team? Please share your tips in the comments!/p /div /div /div div class=field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfix clearfix div class=field-labelTags:nbsp;/div div class=field-items div class=field-item evena href=/tags/drupalDrupal/a/div div class=field-item odda href=/tags/deploymentDeployment/a/div div class=field-item evena href=/tags/drushdrush/a/div div class=field-item odda href=/tags/dtapDTAP/a/div div class=field-item evena href=/tags/commandscommands/a/div div class=field-item odda href=/tags/planet-drupalPlanet Drupal/a/div /div /div

Drupal.org frontpage posts for the Drupal planet: Drupal 7.20 released

Wed, 02/20/2013 - 22:55
p style=position: inherit;Drupal 7.20, a maintenance release which contains fixes for strongsecurity vulnerabilities/strong, is now available for download. See the a href=http://drupal.org/drupal-7.20-release-notesDrupal 7.20 release notes/a for further information./p div style=float: right; margin: 0 0 1em 1em; text-align: center; a href=http://ftp.drupal.org/files/projects/drupal-7.20.tar.gz class=link-button style=margin: 0 0 0.6em 0;spanDownload Drupal 7.20/span/a/div p style=position: inherit;stronga href=/upgrade/Upgrading/a your existing Drupal 7 sites is strongly recommended./strong There are no new features or non-security-related bug fixes in this release. For more information about the Drupal 7.x release series, consult the a href=http://drupal.org/drupal-7.0Drupal 7.0 release announcement/a./p !--break--!--break--div style=float: right; padding: 0 0 2em 1em; margin-left: 2em; width: 35%; border-left: 1px solid #cdcdcd; h2Security information/h2 pWe have a a href=/securitysecurity announcement mailing list and a history of all security advisories/a, as well as an a href=/security/rss.xmlRSS feed with the most recent security advisories/a. We strongstrongly advise Drupal administrators to a href=/securitysign up/a/strong for the list./p pDrupal 7 includes the built-in Update Manager module, which informs you about important updates to your modules and themes./p h2Bug reports/h2 pDrupal 7.x is being maintained, so given enough a href=http://drupal.org/project/issues/search/drupal?categories%5B%5D=bugamp;status%5B%5D=8bug fixes/a (not just a href=http://drupal.org/project/issues/search/drupal?categories%5B%5D=bugamp;status%5B%5D=1bug reports/a), more maintenance releases will be made available, according to our a href=http://drupal.org/documentation/version-info#whenmonthly release cycle/a. /p/div h2Changelog/h2 pDrupal 7.20 is a security release only. For more details, see the a href=http://drupal.org/drupal-7.20-release-notes7.20 release notes/a./p pA complete list of all bug fixes in the stable 7.x branch can be found in a href=http://drupalcode.org/project/drupal.git/shortlog/refs/heads/7.xthe git commit log/a./p h2Security vulnerabilities/h2 pDrupal 7.20 was released in response to the discovery of security vulnerabilities. Details can be found in the official security advisory:/p ul lia href=http://drupal.org/SA-CORE-2013-002SA-CORE-2013-002/a/li /ul pTo fix the security problems, please upgrade to Drupal 7.20./p h2Known issues /h2 pDue to the nature of the security fix, some sites will require extra testing and care when deploying this release of Drupal core, and several contributed modules require code changes in order to continue working correctly. See the a href=http://drupal.org/drupal-7.20-release-notesrelease notes/a for more information./p div style=clear: both; height: 1em;/div

Aten Design Group: Aten's Modest Session Proposals for Portland

Wed, 02/20/2013 - 18:01
div class=field-image-blog img src=http://atendesigngroup.com/sites/default/files/portlandProposals.png width=530 height=250 alt= / /divdiv class=body pIt's hard to believe that we're closing in on a year since DrupalCon Denver. It seems like only yesterday that I was loading up on shwag and excitedly talking Drupal to a bunch of amazing and passionate people. And now we get to relive the fun and joy of another North American a href=http://portland2013.drupal.org/DrupalCon/a in a few short months over in the city that is a href=http://www.youtube.com/watch?v=AVmq9dq6Nsgstuck in the Nineties/a./p pIn addition to our flannel and neon green fannypacks, we're also bringing a case of proposed sessions. We'd love to crack these open and pass them around to everyone at DrupalCon. Enough with the extended metaphors though. Here's the quick and dirty on what we hope to share with everyone./p pOh, and if any of these stand out as sessions you'd like to attend, then leave a friendly comment on the session page letting the presenter(s) know. Comments are also a great way to contact us ahead of time to swap ideas, and get more information on what the session is all about./p hr / h2a href=http://portland2013.drupal.org/session/adaptive-content-drupalAdaptive Content in Drupal/a/h2 pIt's been exciting to see how much attention is being given to the way we structure content to adapt across platforms and devices. One DrupalCon keynote speaker will be a href=http://karenmcgrane.com/Karen McGrane/a, who wrote the seminal piece ema href=http://www.abookapart.com/products/content-strategy-for-mobileContent Strategy for Mobile/a/em. It's a touchstone text for our company as we work with clients during the Information Architecture process to think about the ways their content will live beyond the page and then structure it accordingly. a href=http://atendesigngroup.com/person/joel-steidlJoel/a and I see this as a great follow up to Karen's talk- a time to look at the concrete ways we can put the concepts of Adaptive Content into practice./p p class=clearfixa href=http://portland2013.drupal.org/session/adaptive-content-drupal class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/javascript-drupalDapper Drupal- Custom Tailored Themes/a/h2 pSubthemes are great for leveraging the hard work done by a base theme and customize from there. At some point though, you might want to define those fundamental assumptions yourself. We certainly found that to be true and a href=http://atendesigngroup.com/person/garrett-dawsonGarrett/a and a href=http://atendesigngroup.com/person/john-ferrisJohn/a, with all their front-end swag, will share the lessons they've learned from building the base theme a href=http://drupal.org/sandbox/kenwoodworth/1250998Center/a and its subtheme sidekick a href=http://drupal.org/sandbox/pixelwhip/1836932Prototype/a. Expect to see some great tips and at least one pair of very cool boots./p p class=clearfixa href=http://portland2013.drupal.org/session/javascript-drupal class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/design-smarter-not-harderDesign Smarter, Not Harder/a/h2 pAn ever-changing web and the subjective nature of design can make it difficult to carry out a design process that is both flexible and efficient. a href=http://atendesigngroup.com/person/ken-woodworthKen/a has some great principles and tools to work from to make this complex dance with the client a graceful one. Learn and share some valuable advice to make sure you're designing smarter, not harder./p p class=clearfixa href=http://portland2013.drupal.org/session/design-smarter-not-harder class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/javascript-drupalJavascript in Drupal/a/h2 pIt's not always obvious the best way to manage or apply JavaScript with Drupal. Luckily, a href=http://atendesigngroup.com/person/rob-ballouRob/a has some thoughts on the matter. From best practices for Drupal.behaviors to a peek at what's in store for JavaScript and Drupal 8, this session will be covering a lot important bases when it comes to JavaScript in Drupal./p p class=clearfixa href=http://portland2013.drupal.org/session/javascript-drupal class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/line%E2%80%99em-and-knock%E2%80%99em-down-planning-and-executing-multiple-projects-maximum-efficiency-andLine'em Up and Knock'em Down: Planning and Executing Multiple Projects for Maximum Efficiency and Amazing Results/a/h2 pEvery Monday, as we check in with one another on the work we're doing I'm amazed at how much our company is managing simultaneously. The ability to manage multiple projects at a time comes into play in an especially poignant way when a client wants to roll out several related projects together. This approach makes a lot of sense and can be a lot of fun to implement, but can also get ugly quickly. a href=http://atendesigngroup.com/person/justin-toupinJustin/a and a href=http://atendesigngroup.com/person/jon-clarkJon/a will share their insights into how to avoid the ugly and deliver those multiple projects like a boss./p p class=clearfixa href=http://portland2013.drupal.org/session/line%E2%80%99em-and-knock%E2%80%99em-down-planning-and-executing-multiple-projects-maximum-efficiency-and class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/making-drupal-meetups-and-events-rockMaking Drupal Meetups and Events Rock/a/h2 pEver planned a Meetup only to have your mother, an-out-of work clown and your cat Edgar show up? Awkward. Maybe you have a regular meetup, but the villagers are getting restless and you're looking to spice things up. Or maybe you've always wished your town had more going on in the ways of Drupal. Well, if you're interested in planning or improving upon the Drupal events in your neighborhood be sure to check out this panel./p pThis discussion will feature some great leaders in the Drupal community, including a href=http://atendesigngroup.com/person/karyn-cassioKaryn/a and a href=http://atendesigngroup.com/person/scott-reynenScott/a. While we all work together, they'll be offering two unique perspectives on this topic. Karyn is a Women in Drupal community leader and Drupal Ladder evangelist, while Scott has been MCing the Denver Drupal Meetup ever since a href=http://www.opensourcery.com/people/jyeeJason Yee/a was shipped off to Portland. This is sure to have some interesting and original thoughts batted around when it comes to making Drupal events rock./p p class=clearfixa href=http://portland2013.drupal.org/session/making-drupal-meetups-and-events-rock class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/session/standardized-development-vagrant-and-puppetStandardized Development with Vagrant and Puppet/a/h2 pOh the time I have lost trying to replicate a problem locally because a site's server is configured differently...If I had that time back I'd be soaking it up in a bubble bath. Anyways, that's what Puppet and Vagrant are here for. No more fiddling with MAMP, WAMP, XAMPP configuration. When you standardize your development environment the angels sing. Get the nitty gritty from a href=http://atendesigngroup.com/person/ryan-koisRyan/a on Virtualizing with Vagrant and Provisioning with Puppet, then go home and get that bath started./p p class=clearfixa href=http://portland2013.drupal.org/session/standardized-development-vagrant-and-puppet class=buttonInterested? Leave a comment/a/p hr / h2a href=http://portland2013.drupal.org/content/successful-drupal-contrib-projects-some-non-technical-tipsSuccessful Contrib Projects: Some Non-Technical Tips/a/h2 pYou don't want to be that guy/gal they talk about in IRC with the abandoned project people wish they could use but whose neglect has rendered it obsolete- do you? Do you?!? I didn't think so. There's a lot to know about managing a contrib project beyond the initial code you wrote. a href=http://atendesigngroup.com/person/scott-reynenScott/a will clue you in on how to manage a successful Drupal contrib project in a way that leaves you fulfilled and the people around you happy. That way, when people mention your name in the forums, you'll know it's a good thing./p p class=clearfixa href=http://portland2013.drupal.org/content/successful-drupal-contrib-projects-some-non-technical-tips class=buttonInterested? Leave a comment/a/p /div

Aten Design Group: Project Review Wednesday: Webform Event

Wed, 02/20/2013 - 17:25
div class=field-image-blog img src=http://atendesigngroup.com/sites/default/files/project_review_1_0_0_5.png width=520 height=250 alt= / /divdiv class=body pThere are currently a href=http://drupal.org/project/issues/projectapplications?text=amp;status=8amp;priorities=Allamp;categories=Allamp;component=All69 new Drupal contributors/a awaiting review of their first project. This is a great place to contribute to the community and learn about interesting upcoming projects, for example.../p h2Module: Webform Event/h2 h3What does it do?/h3 pOne of the more exciting aspects of working on Project Review Wednesday is getting a quick glance at things that people are working on out in the world. Many modules solve a particular problem, some provide a means to solve a set of issues./p pThe a href=http://drupal.org/node/1914096Webform Event/a module is a key example of trying to solve a set of problems. Essentially the module provides an event content type, but also signup (or add their name to a queue if the event is full) for the event. Events can be closed by an end date or by a number of participants and the process ties in with several existing modules./p div a href=http://drupal.org/files/manage_page.png data-images=http://drupal.org/files/manage_page.png class=image-tag image-leftimg src=http://drupal.org/files/manage_page.png width=500 //a /div h2Look Useful? Review it!/h2 pIf this sounds like something you'd like to see readily available on Drupal.org, you should review it and help make that happen./p p class=clearfixa href=http://drupal.org/node/1914096 class=buttonReview It/a/p pPro Tip: If you've never reviewed a project application before, you can find a href=http://drupal.org/node/894256instructions for reviewers on Drupal.org/a and the a href=http://groups.drupal.org/code-reviewCode Review group/a is happy to help more people get involved./p /div

Drupal Association News: Drupal Association Membership: What You Give and What You Get

Wed, 02/20/2013 - 16:43
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpspan id=internal-source-marker_0.15587934660508196img alt=Individual Member badge src=http://drupal.org/files/images/DA-individual-120.png style=width: 120px; height: 120px; float: right; /Drupal community members are supporters of the Drupal Association because they want to support the Drupal project and DA membership is an easy way to do so. When you join or renew, you get more than just good karma, and you give Drupal more than just member funds./span/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-4 field-type-taxonomy-term-reference field-label-abovediv class=field-labelPersonal blog tags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/334Membership/a/divdiv class=field-item odda href=/taxonomy/term/200Drupal Association/a/div/div/div

Mediacurrent: Rational Redesigns - Visual Planning

Wed, 02/20/2013 - 16:37
img src=http://www.mediacurrent.com/sites/default/files/imagecache/thumb_blog_spotlight/wireframe.jpg alt= title= class=imagecache imagecache-thumb_blog_spotlight imagecache-default imagecache-thumb_blog_spotlight_default width=200 height=150 / pThe blank canvas in Photoshop is where many well-intentioned Web redesign projects go to die./p pIf you want a beautiful magazine ad, then find a talented graphic designer and have them draw up something pretty for you. If you want a rational redesign, you need to start somewhere else./p pAs defined in a href=http://www.mediacurrent.com/blog/rational-redesigns-diving-right-reasonsthe first part of this series/a, a rational redesign delivers true value to an organization, instead of simply consuming time and money for window dressing./p

John VanDyk: CCK - The New Fragrance

Wed, 02/20/2013 - 16:24
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpA little fun this morning. I had a great talk with Jacob Redding yesterday as part of his academic work on open source communities. We talked a bit about the early times of Drupal, including the heady days in Antwerp in 2005 when the ideas for what was to become CCK and then fields-in-core were being explored, debated, and scrawled on whiteboards. I thought I'd share this creation by a href=http://acko.netSteven Wittens/a. He whipped it up late one night after a long day of architectural discussions. It's been on the wall of my office for years./p pimg src=http://www.sysarchitects.com/files/clouseau_jonbob_cck.jpg/p pemJohn VanDyk, a href=http://rapiddg.com/teamJonathan Chaffer/a, and the new fragrance of CCK./em/p /div/div/divdiv class=field field-name-taxonomyextra field-type-taxonomy-term-reference field-label-abovediv class=field-labelTopic:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/8Drupal/a/divdiv class=field-item odda href=/topic/drupal-historyDrupal History/a/div/div/div

Web Omelette: I’m Hooked! 3: Block configuration with hooks

Wed, 02/20/2013 - 16:00
div class=section field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item odda href=/drupal-configuration-form-hook class=colorbox-loadimg data-src=http://www.webomelette.com/sites/default/files/styles/tb-wall-double-style/public/field/image/blocks_1.jpg src=http://www.webomelette.com/sites/default/files/tb_wall_lazyload_images/500x375.png width=500 height=375 alt=Drupal blocks //a/div/div/divdiv class=section field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item oddpGiven that they really go together, this week we will look at two different hooks: a href=http://api.drupal.org/api/drupal/modules%21block%21block.api.php/function/hook_block_configure/7 target=_blankhook_block_configure()/a and a href=http://api.drupal.org/api/drupal/modules%21block%21block.api.php/function/hook_block_save/7 target=_blankhook_block_save()/a. Their purpose is to programatically add extra configuration options to the block configuration form: you know, the one with the region and visibility settings./p /div/div/div

Drupal core announcements: Drupal 8 is feature frozen but you cannot translate the site name or node titles

Wed, 02/20/2013 - 15:16
pYou did not read that wrong! Yes, Drupal 8 features are frozen, and the massive Drupal 8 Multilingual Initiative is not there to let you even translate a node title or the site name. strongWe made massive amounts of progress/strong with heroic efforts from key contributors, but we are not nearly close to be done yet. Yes, your help is needed! The way the Drupal core release cycle is set up, many things that emyou/em might consider features are not classified as such (verified with core maintainers) in the process. Feature freeze means all base features should be in core, however, many things that need to be integrated with these new features are not done yet. Otherwise what would we do for months on still, right? So let's look at the two use cases with this in mind. Start with the bad news!/p h3Translate site name/h3 pThe biggest feature that will still not be native in Drupal 8 is translation of stronguser provided/strong configuration. We still have lot to work on translating strongshipped/strong configuration. We've worked hard for months to get a configuration schema system accepted so we can have a programatic understanding of the translatable pieces of configuration. We started work on that in 2012 June at Drupal Dev Days, and it took several forked issues, alternate proposals, personal, IRC and phone meetings to get a universal understanding that a configuration schema system is needed in the first place, with the actual implementation not too far from the original proposals, that landed in core. We would have loved to achieve this milestone sooner but that did not work out./p pSo the sad news is you will not be able to translate your site name or custom created Views with Drupal 8 core only. Drupal 8 core should be capable to translate shipped configuration though, that is email texts, image styles, default content types, default fields, etc. shipped with Drupal core. The text for these should eventually end up on a href=http://localize.drupal.org title=http://localize.drupal.orghttp://localize.drupal.org/a for translation. You'll need to use a contributed module to translate user entered configuration though (such as user created Views and your site name). Good news is that the underlying schema system and the configuration override system in core (as well as the a href=http://drupal.org/node/1763640soon to be committed configuration context system/a) supports this use case too, so the missing piece is a user interface to be generated for configuration translation. A emvery early/em version of that user interface can be seen in a href=http://drupal.org/sandbox/reyero/1635230 title=http://drupal.org/sandbox/reyero/1635230http://drupal.org/sandbox/reyero/1635230/a./p pSo as of right now you cannot even translate the shipped email texts, but that is a feature targeted for Drupal 8 core (in combination with a href=http://localize.drupal.org title=http://localize.drupal.orghttp://localize.drupal.org/a as usual for software translation). Translating configuration created on the user interface and not shipped with modules/themes/profiles will need a contributed module./p h3Translate node titles/h3 pAll right, this is a flat out regression, right? Right! Drupal 8 trades node-copy translation that is native to Drupal 7 (using the Content translation module in Drupal 7), where translating a node creates a new copy of the node. In Drupal 8, the module named the same on the user interface (Content translation) works totally differently. It does not create new copies but stores translations in fields under the entity. This has several advantages. For one, it lets us support all kinds of entity types, for example, fields on users, taxonomy terms, comments, etc. We also provide a neat cross-entity configuration screen to set up all your entity types for language./p pYet, node titles remain non-translatable. The basic reason for that is that node titles are not fields on nodes, they are good old properties. Properties do not support multilingual storage natively. We introduced a multilingual property system earlier (for the entity_test entity type), and the integration to other entity types did not yet happen. Why? Well, the more sweeping a href=http://drupal.org/node/1818580next generation Entity API conversions/a are still widely underway. Comment entities are done (with performance regressions that are being worked out) and we are hard at work on nodes. There are still files, users, taxonomy terms, etc. ahead./p pAnd emthen/em the multilinugal property conversions can happen on top of the new entity system much easier since that system has built-in support for them. That is still not a trivial task and we'll definitely need all hands possible to achieve./p p(Side note: once node properties become multilingual, we also need to provide a migration path in core for the legacy content translation module and remove that module from core for good.)/p h3How can I help?/h3 pThe configuration schema system is easy! We have documentation at a href=http://drupal.org/node/1905070 title=http://drupal.org/node/1905070http://drupal.org/node/1905070/a and a visual configuration browser that applies the schema at a href=http://drupal.org/sandbox/reyero/1635230 title=http://drupal.org/sandbox/reyero/1635230http://drupal.org/sandbox/reyero/1635230/a. There is a huge set of issues at a href=http://www.drupal8multilingual.org/issues/schema title=http://www.drupal8multilingual.org/issues/schemahttp://www.drupal8multilingual.org/issues/schema/a to fill in the blanks of schemas where not yet provided or incorrectly written. Tips to help are in the meta issue at a href=http://drupal.org/node/1910624#comment-7088154 title=http://drupal.org/node/1910624#comment-7088154http://drupal.org/node/1910624#comment-7088154/a/p pThe entity API conversions are more involved work. You can participate in the conversion issues at a href=http://drupal.org/node/1818580 title=http://drupal.org/node/1818580http://drupal.org/node/1818580/a - however the process so far has been to attack one type at a time, and nodes are in focus righ now (a href=http://drupal.org/node/1818556 title=http://drupal.org/node/1818556http://drupal.org/node/1818556/a). Performance expertise, reroll experience and all kinds of other skills are needed here./p h3So how can you call Drupal 8 feature frozen? And when will it ever be ready?/h3 pReality is features from the point of the development process are not necessarily the same as user's perceptions. While we wanted to get in solutions sooner (eg. targeted configuration schema and context for Dec 1st 2012), their declared belonging to a later development phase does not help to get reviewers and push them harder for inclusion. We are doing our best to not let this affect the eventual readiness of Drupal 8, but in the state we are in, we are not looking at an integration phase where we can sit back and relax./p pThe current planned deadline for the integration phase (when all entity properties should be multilingual and all configuration should have schemas) is July 1st 2013. There are three big sprints until then that we plan to use to boost our standing (please come and sign up for these):/p ul lia href=http://groups.drupal.org/node/277768Drupal sprint weekend, March 9th and 10th all around the globe/a/li lia href=http://groups.drupal.org/node/281033Sprints on the weekends both before and after DrupalCon Portland, May 18-19th and 24-26th/a/li lia href=http://dublin2013.drupaldays.org/aboutSprints all week before Drupal Dev Days Dublin, June 24-27th/a/li /ul pSitting around and waiting for later opportunities does not help, so jumping on these issues would be especially helpful. If you have no better idea, start reviewing the configuration schema issues today!/p h3A huge thanks once again for all contributors/h3 pI'd like to reiterate once again that strongall the people on the multilingual intiative worked exceptionally hard/strong (in some cases all the way to burning out) to make Drupal 8 as multilingual as possible for you all. The gaps in implementation are not at all due to people doing poor work, they are due to all the uncertainties involved in working on an Open Source project with set goals but heavy interdependencies and lack of resource commitments possible. As well as all the bliss and baggage of making large scale decisions in an open issue queue format./p pSee a href=http://www.drupal8multilingual.org/team title=http://www.drupal8multilingual.org/teamhttp://www.drupal8multilingual.org/team/a for more information on our team. /p