Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 24 min 44 sec ago

Drupal core announcements: Drupal core updates for July 16, 2014

Thu, 07/17/2014 - 22:45
h2 id=newWhat's new with Drupal 8?/h2 pThis week saw the commit of part one and two of the major menu-system rewrite in which menu-links become plugins. The original patch weighed in at over 600kb and was one of the remaining seven beta-blockers. Splitting it into five separate issues made reviews more forthcoming and this was evident with part one and two moving quickly from needs review to RTBC to ultimately being committed. Reviewers have now moved onto parts three through / There was a massive volume of commits this week with cleanups keeping the committers very-busy, lots of deprecated functions were removed and lots of procedural menu and form code was ported to the new Object-oriented approaches./p h2 id=releaseWhere's Drupal 8 at in terms of release?/h2 pIn the past week, we've fixed 3 critical issues and 8 major issues, and opened 5 criticals and 9 majors. That puts us overall at a href=;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;priorities%5B%5D=400amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D107 release-blocking critical issues/a and a href=;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D623 major issues/a./p h3Outstanding beta blockers/h3 pimg src= alt=Outstanding beta-blocking issues since January 2014, decreasing from 120 to only 7 now! //p h3Outstanding critical issues in Drupal 8/h3 pimg src= alt=Critical issue count in Drupal 8 since 2011, declining since July 2013 //p h3Outstanding major issues in Drupal 8/h3 pimg src= alt=Major issue count in Drupal 8 since 2011, increasing steadily since September 2012 //p h2 id=helpWhere can I help?/h2 h3 id=topTop criticals to hit this week/h3 pEach week, we check with core maintainers and contributors for the extra critical criticals that are blocking other work. These issues are often tough problems with a long history. If you're familiar with the problem-space of one of these issues and have the time to dig in, help drive it forward by reviewing, improving, and testing its patch, and by making sure the issue's summary is up to date and any API changes are documented with a a href= change record/a, we could use your help!/p ul liWe need people to review a href= #2260457: Allow config entities to remove dependent configuration keys when dependencies are deleted/a. Uninstalling modules in Drupal 8 will remove any configuration that has a dependency on that module. This will keep your site working but at the moment the delete is a bit greedy! Two other related issues, a href= and a href= could use some work too./li lia href= #2268939: Config overrides not updated when config changes/a needs review./li liAs mentioned abovea href= #2256521: New plan, Phase 2: Implement menu links as plugins, including static admin links and views, and custom links with menu_link_content entity, all managed via menu_ui module/a has been split into five issues, three of which still needs reviews, API changes documented, a change record drafted, and existing change records that will need updates identified and updated to reference the issue./li liThere are still a href=;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+blocker7 beta-blockers/a that need to be done to provide a stable data model and stable critical APIs (including a couple of the issues above), and a href=;status[]=1amp;status[]=13amp;status[]=8amp;status[]=14amp;status[]=4amp;version[]=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+deadline14 non-critical issues that significantly change the data model or critical APIs, and therefore can only be committed before the first beta is released/a. Please help move them forward!/li /ul h3More ways to help/h3 pa href= #1679344: Race condition in node_save() when not using DB for cache_field/a recently caused a outage. The issue already has a proposed resolution recommended in comment #24 — help out by reviewing the patch for either D7 or D8./p pAdditionally, there are a bunch of easy documentation issues which need some help moving forward. For each of these, there is a Child Issues sidebar. Look there for issues that are active, needs work, or needs review:/p ul lia href= #2269389: Make sure plugin developer info is discoverable/a/li lia href= #2294117: Some @defgroup topics should be moved/renamed/a/li lia href= #1908570: Update or create hook_help() texts for D8 core modules/a/li /ul pAs always, if you're new to contributing to core, check out a href= contribution mentoring hours/a. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on./p pYou can also help by a href= Drupal core development/a. /p h2 id=commitsNotable Commits/h2 pThe best of codegit log --since quot;1 week agoquot; --pretty=oneline/code (112 commits in total):/p ul liVarious conversions of controllers and forms to OO code, only a handful remain now ul lia href= 2010246/a by tim.plunkett, tkuldeep17, plopesc, InternetDevels, pfrenssen, googletorp: Convert update_manager_install_form, update_manager_update_form, update_manager_update_ready_form to the new form interface./li lia href= 2030165/a by Berdir, tim.plunkett, vijaycs85, tkuldeep17 | rteijeiro: Convert form_test_* functions to classes./li lia href= 1978926/a by likin, YesCT, Pancho, kim.pepper, h3rj4n, tim.plunkett, disasm, Luxian, neetu morwani | vijaycs85: Convert locale_translation_status_form to a Controller./li lia href= 2132477/a by tkuldeep17, tim.plunkett | shameemkm: Convert batch_test forms to controllers./li lia href= 2086499/a by phiit, tim.plunkett | Gábor Hojtsy: Convert two page callbacks in language_elements_test.module to the new controller system./li lia href= 2078867/a by tim.plunkett, jackbravo, ianthomas_uk, InternetDevels, piyuesh23, disasm, nano_monkey | vijaycs85: Convert _form_test_* functions to classes./li lia href= 1998198/a by pwolanin, splatio, Albert Volkman, tim.plunkett, andypost, disasm, Les Lim, tkuldeep17: Convert user_pass_reset to a new-style Form object./li lia href= 2302525/a by tim.plunkett: Convert file_module_test_form to a class./li lia href= 2078015/a by er.pushpinderrana, RoSk0 | alexanansi: Modernize views_test_data.module forms./li lia href= 2302531/a by tim.plunkett: Convert database_test_theme_tablesort to a class./li /ul /li lia href= 2291137/a by cilefen | webchick: Rename various *links.yml files to improve DX./li lia href= 2202511/a by hussainweb, benjy | mikeryan: Added Implement migration groups./li lia href= 2302463/a by effulgentsia: Cleanup User::hasPermission() and UserSession::hasPermission() to follow Law of Demeter./li lia href= 2302331/a by kim.pepper: Move drupal_valid_path to PathValidator service./li lia href= 2296839/a by MKorostoff, er.pushpinderrana | YesCT: Remove deprecated comment_num_new()./li lia href= 2289063/a by larowlan, andypost | Berdir: Change contact message entity to behave more like a normal entity./li lia href= 2301239/a by pwolanin, dawehner, Wim Leers, effulgentsia, joelpittet, larowlan, xjm, YesCT, kgoel, victoru, berdir, likin, and plach: MenuLinkNG part1 (no UI or conversions): plugins (static + MenuLinkContent) + MenuLinkManager + MenuTreeStorage./li lia href= 2284103/a by alexpott, fabpot, damiankloip, Xano, Xen, Berdir: Fixed Remove the request from the container - this switches from using Request to RequestStack, gets rid of our custom HttpKernel and the Request scope, lets us upgrade Symfony past 2.3 and closes a critical. Special thanks to Fabien Potencier, Project Lead for Symfony for getting the ball rolling and working with the Drupal community on patches. /liliMore standardising of entity-field API ul lia href= 2292821/a by andypost, larowlan: Use widget for comment subject field./li lia href= 1498662/a by andypost, larowlan | dawehner: Refactor comment entity properties to multilingual./li lia href= 1856562/a by andypost | sun: Convert Subject and Message into Message base fields./li /ul /li liLots of cleanup of deprecated functions ul lia href= 2297487/a by er.pushpinderrana, marcingy: Remove the check_plain function./li lia href= 2301591/a by joshi.rohit100: Remove drupal_rebuild_form() as it is deprecated./li lia href= 2208893/a by ngocketit, longwave: Remove unused functions from Views./li lia href= 2301601/a by joshi.rohit100: Remove drupal_validate_form() as it is deprecated./li lia href= 2301587/a by joshi.rohit100: Remove form_state_defaults() as it is deprecated./li lia href= 2301577/a by ParisLiakos, joshi.rohit100: Remove drupal_alter() as it is deprecated./li lia href= 2300853/a by joshi.rohit100: Remove language() method from as it is deprecated./li lia href= 2300891/a by joshi.rohit100: Remove format_backtrace() from as deprecated./li lia href= 2301597/a by joshi.rohit100: Remove drupal_prepare_form() as it is deprecated./li lia href= 2300831/a by joshi.rohit100: Remove module_exists() as it is deprecated./li lia href= 2300857/a by joshi.rohit100: Remove lock() method from as deprecated./li lia href= 2300821/a by joshi.rohit100: Remove module_invoke_all() as it is deprecated./li lia href= 2300847/a by joshi.rohit100: Remove drupal_get_form() as it is deprecated./li lia href= 2300843/a by joshi.rohit100: Remove drupal_json_encode() and drupal_json_decode() methods as deprecated./li lia href= 2300833/a by joshi.rohit100: Remove module_hook() as it is deprecated./li lia href= 2300697/a by joshi.rohit100: Remove drupal_is_cli() as It is deprecated./li lia href= 2299499/a by joshi.rohit100: Remove form_clear_error() as it is deprecated./li lia href= 2301975/a by kim.pepper: Move drupal_is_front_page to PathMatcher service./li /ul /li lia href= 697760/a by sun: Replace getInfo() in tests with native phpDoc + annotations (following PHPUnit)./li /ul pYou can also always check the a href= records for Drupal core/a for the full list of Drupal 8 API changes from Drupal 7./p h2 id=planetDrupal 8 Around the Interwebs/h2 pBlog posts about Drupal 8 and how much it's going to rock your face./p ul lia href= recap Drupal 8's plugin system./li lia href= give us a preview of their Amsterdam session on packaging and reusing configuration in Drupal 8./li lia href= gives us an update on Drupal 8 from both his and a MongoDB perspective./li lia href= gave us the lowdown on configuration entities in Drupal 8./li liCameron Zemek from PreviousNext a href= us to Mink/a previewing one of the core-conversations from Amsterdam./li /ul h2 id=eventsDrupal 8 in Real Life/h2 ul listrongJuly 17-20/strong: a href= in strongIowa, USA/strong will have a Drupal 8 contributed module sprint. a href= listrongAug 7-10/strong: a href= Cities DrupalCamp/a in strongMinnesota, USA/strong will have a sprint room for all four days and has a a href=;usp=drive_web#gid=0sprint sign-up/a. a href= listrongAug 7-10/strong: a href= at strongLake Balaton, Hungary/strong has Drupal 8 sessions and sprints. a href= listrongAug 22/strong: a href= in strongCanberra, Australia/strong featuring everything relating to Drupal and Australian Government, including Drupal 8 sessions./li /ul h2 id=wrapWhew! That's a wrap!/h2 pDo you follow a href= Planet/a with devotion, or keep a close eye on the a href= event calendar/a, or codegit pull origin 8.x/code every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. a href= xjm/a if you'd like to help communicate all the interesting happenings in Drupal 8!/p table id=attachments class=sticky-enabled theadtrthAttachment/ththSize/th /tr/thead tbody tr class=oddtda href= KB/td /tr tr class=eventda href= KB/td /tr tr class=oddtda href= KB/td /tr /tbody /table

Mediacurrent: How to Start a Drupalcamp

Thu, 07/17/2014 - 18:23
img typeof=foaf:Image src= width=200 height=152 / pGetting a new regional Drupalcamp up and running appears daunting at first, but the support of the Drupal Community helps provide a giant head start. At Drupalcon 2014 in Austin, SVP of Professional Services Jeff Diecks shared some tips to help ease into the planning process./p piframe allowfullscreen= frameborder=0 height=480 src=// width=600/iframe/p pstrongAdditional Resources/strong/p

Advomatic: This Is The House That Jack Themed

Thu, 07/17/2014 - 16:47
pThis is Jack:/p pimg alt= src=/files/jack-2.png //p pUsually, Jack is theming beautiful website like these:/p pimg alt= src=/files/imagecache/blog_image/clintonfoundation_house_that_jack.png style=height:368px; width:600px //p pnbsp;/p pimg alt= src=/files/imagecache/blog_image/dos_house_that_jack.png style=height:368px; width:600px //p pnbsp;/p p img alt= src=/files/imagecache/blog_image/gz_house_that_jack.png style=height:368px; width:600px //p pnbsp;/p pBut when Jack#39;s not in the office, he#39;s got other things on his mind:/p p img alt= src=/files/imagecache/blog_image/screen_shot_2014-07-16_at_3.22.05_pm.png //p pnbsp;/p pSo when Jack#39;s son grew out of his old room, Jack took on a new theming project:/p pimg alt= src=/files/imagecache/blog_image/img_20140522_165700_0.jpg style=height:450px; width:600px //p pimg alt= src=/files/imagecache/blog_image/img_20140522_170158-1.jpg style=height:450px; width:600px //p pimg alt= src=/files/imagecache/blog_image/img_20140522_170216.jpg style=height:450px; width:600px //p pimg alt= src=/files/imagecache/blog_image/img_20140522_170151.jpg style=height:450px; width:600px //p p img alt= src=/files/imagecache/blog_image/img_20140522_170237.jpg style=height:450px; width:600px //p pimg alt= src=/files/imagecache/blog_image/img_20140522_170257.jpg style=height:450px; width:600px //p pimg alt= src=/files/imagecache/blog_image/img_20140522_170323.jpg //p p img alt= src=/files/imagecache/blog_image/pano_20140522_165720.jpg style=height:125px; width:600px //p pnbsp;/p pPretty delightful, huh?/p pnbsp;/p pAnd here#39;s a bonus shot of Jack in his son#39;s old room, where he video chats us from:/p pimg alt= src=/files/imagecache/blog_image/google_hangout_jack.png style=height:371px; width:600px //p pYup, that#39;s a monkey in a tree back there./p

VM(doh): Ensuring Consistent Configuration Across Drupal 7 Environments

Thu, 07/17/2014 - 14:51
pA common issue that many Drupal developers have is maintaining consistent configuration across environments. Quite often, a developer may run into an issue where something that was tested and confirmed working in development fails in production, or vice versa. Typically, the issue stems from an undocumented change that was made in one environment but not the other. This is an adverse side effect of storing configuration within the database./ppIdeally, all configuration should be under version control. In Drupal 8, this issue has been solved by the Configuration Management Initiative. However, to achieve the same goals in Drupal 7, one must implement workarounds./ppFor variables, it's rather trivial to enforce certain parts of your configuration. When it comes to the variable system, the $conf global has the final say on the value of a variable. The a href= function simply retrieves a variable from the global $conf array, and that array is a href= from the variables table with values in settings.php overriding the retrieved values/a. Basically, there are two ways to find out what variables on your site you can force via settings.php: the most thorough is to print out the $conf array (preferably through a href=, but you can also search for instances of variable_set() and variable_get(). Looking for variable_get() might also expose undocumented but useful variables./ppBut what about more complex pieces of configuration, such as fields, Views, entity types, etc? In many cases, you can export those with the a href= module. However, in order to be successful in using Features to manage the configuration of different parts of your site, you need to implement a policy that overridden Features modules in production should be considered broken./ppBut what about things that aren't exportable to Features? What about special steps that need to be taken to implement a bug fix or new feature? We like to leverage a href= within a custom deployment module. With this approach, we're able to define (and therefore easily document) changes in code (and therefore under version control) and simply use drush updb to implement them. (If you're not using Drush, and you really should be using Drush, this is the same as running update.php.) We put all of our configuration changes in one of these hooks in our deployment module, including variable_set(), a href=!, a href=!, a href=!features!features.module/function/features_revert/7features_revert()/a for any Features that we have changed, database queries to fix data issues caused by previous bugs, etc./ppThis has several advantages. For one, deployments become a lot simpler. Ideally, you want your deployments to be hands-off. What this method allows us to do is write a simple deployment script that pulls the new code from Git, put the site into maintenance mode, runs a registry rebuild via drush just in case we moved a module (some moves can cause white screens of death if you don't do this), runs updates via Drush, clears cache (just in case), runs cron (just in case), and takes the site back out of maintenance mode. In cases where we manage the ops side or the client's ops team allows, we'll also send a notification to the monitoring system to make sure that the new deployment is noted (very useful for determining when a problem was introduced)./ppAnother key advantage is documentation. With configuration changes made via update hooks, we can tell exactly when configuration changes were introduced and by whom. It also all but eliminates the risk of a costly missed step on deployment to production as the deployment steps themselves are tested when a developer updates their development environment./ppFor some configuration settings, such as enabling a debug mode for a particular module, we may want to allow those changes to be made temporarily through the UI. However, accidentally leaving those debugging settings enabled can cause performance issues. In these cases, we combat this by defining critical settings in an implementation of a href= (This only works for settings that have not been defined via the global $conf variable.) Using hook_requirements(), we're able to check that settings are appropriate for the environment (typically limited to production) and display a message to users with proper access if they are not in order to warn them that they need to adjust that setting back to the appropriate value./ppBut what should we do with a href= There are two schools of thought here. One is to define all of your final configuration here, and the other is to loop over your implementations of hook_update_N(). I prefer the latter. While looping over hook_update_N() can be a more expensive process if your site has gone through some serious evolution, it's less duplication of code and less of a chance for you to miss something important. The goal of our use of hook_install() is to eliminate database cloning by only requiring the developer to install the deployment module to initialize a fully functional development version of the site./ppEliminate database cloning? For the most part, yes. Database cloning is a bad practice, even cloning upstream from production. Databases can be huge, and cloning a huge database can impact the performance of the site for your users. Databases can contain sensitive information (most standards dealing with the handling of sensitive information dictate that sensitive information only be accessible to those who emabsolutely need/em to access it), and most developers don't need access to sensitive information. Databases in production while a bug existed in production don't usually fit the requirement of presenting a known good starting point for development. Believe it or not, emyour content and customer information are not necessary for development/em./ppSo what can we do about content and other information? The answer is to generate it. Generate dummy content. Generate dummy orders. Generate dummy products. And so forth and so on. If you're doing automated testing, you will be having to do that anyway./ppThere are exceptions to not cloning the production database. Sometimes you will run into bugs that seem to only occur in production. In this case, it is acceptable to clone the database because the bug is likely caused by something that was unanticipated. However, when fixing these bugs you should take steps to ensure that whatever content or other information change that surfaced the bug is tested for before deploying to production thereafter./ppAnother exception is if you are using a staging and/or QA environment. In this case, you will want to clone the production database upstream to staging/QA just before deploying your fresh code to staging/QA. You need to do this to absolutely ensure that the changes in your deployment module cover all of the changes that will need to be made to production./ppFinally, it's important to test. Writing the actual tests are outside the scope of this post, but it is important that you have automated tests in place that ensure that your site is configured exactly how you need it. Even if you have tests for your site's custom modules in those modules, you need to test your deployment module. The goal here is to fail fast. By having a separate test group for your configuration, you can have Jenkins (or whatever other continuous integration software you use) proceed to other tests only after your configuration tests have passed./p

ThinkShout: Safeguard Your Nonprofit's Website with NodeSquirrel

Thu, 07/17/2014 - 13:00
pIn our web hosts we trust, right? Right. They safeguard your nonprofit’s website, ensure it can handle your incoming traffic, and, perhaps most importantly, they backup your site so that if for some reason, your website ever imploded, it wouldn’t be lost for good./p pBut just how accessible are those backups? How surefire is your contingency plan? Have you tested it out? A lot of website administrators will find that actually initiating this plan isn’t as easy as it may seem. Those backups might take hours or days of ticketing and waiting to get a hold of, particularly if your website host is already inundated with other customer support issues. What then are you to do when something breaks and the site comes tumbling down? img href= src= style=float: right; margin: 20px /br/p pEnter a href= NodeSquirrel is a Drupal backup service developed and maintained by a href= Studios/a. It gives site admins control over their site backups. I sat down with Gorton Studios’ Drew Gorton and Keri Poeppe to learn why nonprofits should consider making NodeSquirrel a part of their workflow. /p pstrongStephanie: So what exactly is NodeSquirrel?/strong/p pstrongKeri/strong: It’s a system for creating, managing, and securely storing website backups. Drupal developers out there will know the Backup and Migrate module. NodeSquirrel extends Backup and Migrate, allowing you to make backups of your website and store those backups in the cloud./p pstrongDrew/strong:a href= Backup and Migrate/a is one of the most popular modules in Drupal. One of the reasons it’s so popular is because it’s easy to create a backup. But by default, that backup stays on your server. What we’re trying to do with NodeSquirrel is make it easy to get that backup off of your server and move it somewhere safer - in this case, Amazon’s cloud. What makes NodeSquirrel such an integral addition to your regular hosting is that it’s something you can use whenever you need to access those backups. Getting to your web host’s backups and testing them can be difficult - and just because they’re backed up doesn’t mean they actually work. With NodeSquirrel, there are no surprises. You can get into your backups, make sure nothing is corrupted, and restore it yourself rather than wait on your host./p pstrongStephanie: How does NodeSquirrel accomplish this?/strong/p pstrongKeri/strong: NodeSquirrel is an off-site destination, but the process of getting the copy of your site uses the Backup and Migrate Module./p pstrongDrew:/strong Here’s an example: there was a NodeSquirrel user whose site was being backed up daily by their web host. Unfortunately, that organization had a major failure and needed to restore the whole site, but the backups they received from their host were unusable. The host had to go back two months to find a backup that actually worked. And, this was from a hosting service costing at least $100 a month./p pNodeSquirrel, luckily, was running on their site and they were able to use one of the backups stored on the cloud. It saved them. The problem is that no one ever tests hosting company backups. It’s stored by your host, but no one ever goes back and to check the integrity of the backup and figure out if it can be used when something goes wrong. /p pNodeSquirrel is different because it’s part of Drupal and the Drupal workflow. We’ve made it easy for you or your developer to retrieve and test your backups./p pstrongStephanie: What sets NodeSquirrel apart for the competition? What sort of functionality can I expect from it?/strong/p pstrongKeri/strong: It’s unique in that it makes a very specific kind of backup. It copies the database, code, and the files rather than making a backup of the whole server and all of the extra infrastructure. It’s not a lightweight backup, but it’s one that can be very targeted, and you can be more nimble with it. For example, if someone accidentally deletes a blog post or wipes out blocks on the homepage, you can quickly restore the website from a NodeSquirrel backup. You don’t need to spend lots of money or staff time recreating the blog post or home page! And you don’t need to call your hosting company to solve the problem. I think what distinguishes it from standard backup systems is how much control users have over the management of their backups. NodeSquirrel’s settings are managed in your site’s backend, so your website administrator has full control of your backup schedule and functions. Want to backup your site every hour? Go for it. Make the system as robust or as hands-off as you like. You can have that level of control and granularity./p pstrongStephanie: How can I tell if my organization needs a service like NodeSquirrel? Is there such a thing as being quot;too small?quot;/strong/p pstrongDrew/strong: It’s very affordable for anyone who’s invested time and money into their website and wants to safeguard that investment. The site is probably too valuable emnot/em to backup. We wanted to make this service accessible and affordable, so for about $100 a year, you’ll have this extra protection. Versus the time you spend trying to fix a bad backup, this is a better alternative. With that price point, it’s more of a question of quot;why not?quot;/p pstrongStephanie: It sounds like NodeSquirrel offers users a lot of options. Is there anything it won’t protect against? What emdoesn’t/em it do?/strong/p pstrongDrew/strong: Most people ask how it compares to their standard hosting, since we have no direct competition. It’s not a full-server backup or a backup for a complex server. It doesn’t backup your DNS settings or load balance configuration. Typically though, if you have a complex setup, you’ll have a system admin or a disaster response team in your organization. Even if you do, NodeSquirrel might still be supplemental and helpful as an extra layer of protection./p pstrongKeri/strong: If you can’t call your hosting company and see a backup, you might want to think about NodeSquirrel./p pstrongDrew/strong: That’s actually a great way to test your site host. Call them and ask to access your backups. How long will it take? Will they charge you extra to set up a test environment? /p pstrongKeri/strong: Download and restore a backup. There’s your test to see if you can sleep easy at night. With NodeSquirrel, you can./p pstrongStephanie: Is there anything else we should know about NodeSquirrel? Any tips for getting the most out of the service?/strong/p pstrongKeri/strong: I’d stress the low threshold to use it. It requires no additional software. It’s integrated seamlessly, especially if Backup and Migrate is already installed. Ask your developers to install version 3 of Backup and Migrate. It’ll give you the most flexibility. NodeSquirrel is free to try, too. We have a trial offer that allows you to make 20 free backups. No credit card required./p pstrongDrew/strong: We wanted to make it easy to do the right thing, and having onsite backup is the right thing. If it works, keep on going. /p pstrongOur conclusion:/strong/p pNodeSquirrel is a highly-affordable extra layer of protection that could save you and your stakeholders a major headache and a great deal of money in the event of a site meltdown. Even if your hosting provider has a backup solution, in the event of data loss, NodeSquirrel is a great alternative to sitting in support queues, waiting on your web host to resolve the issue./p pWith NodeSquirrel, you can take complete ownership of your backups and spare yourself the worry of whether or not you’ll be able to get your site up and running. It’s poised to integrate beautifully with your Drupal website administrative workflow, allowing you to safeguard your investment without having to spend time building new safety net systems. With plans starting at $9/month, it’s a question of quot;can you afford emnot/em to use NodeSquirrel?quot; /p pWant to see it in action for yourself?a href= Sign up for the free trial/a. If you do take it for a spin, let us know what you think in the comments section./p #D8Rules As a Proof that Drupal Community Is a Living Cell

Thu, 07/17/2014 - 11:28
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp style=margin: 0px 0px 20px; outline: none; padding: 0px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; line-height: 20px;When a href= style=margin: 0px; outline: none; padding: 0px; color: rgb(66, 141, 172); text-decoration: none; target=_blankD8Rules/a project waiting in a Funding phase had just seven days left to be successfully funded, success didn’t seem likely. The project had raised just over 40% of its funding goal so far. The days shortened; the pressure rose. Happiness exploded exactly two days before the finish line thanks to the rescuing amount which came just in time./p p style=margin: 0px 0px 20px; outline: none; padding: 0px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; line-height: 20px;strong style=margin: 0px; outline: none; padding: 0px; line-height: 1.538em;The Biggest Nest of Funders So Far/strong/p p style=margin: 0px 0px 20px; outline: none; padding: 0px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; line-height: 20px;span style=margin: 0px; outline: none; padding: 0px; line-height: 1.538em;We know that the Drupal Community is generous in donating money. They confirmed it again in the case of the ‘a href= style=margin: 0px; outline: none; padding: 0px; color: rgb(66, 141, 172); text-decoration: none; target=_blankD8Rules - Support the Rules module for Drupal 8/a’ project. Together, 138 backers funded 106% of its funding goal. It equated to 15.973 dollars. With this number, D8Rules is, for the moment, the biggest project successfully funded ona href= style=margin: 0px; outline: none; padding: 0px; color: rgb(66, 141, 172); text-decoration: none; p style=margin: 0px 0px 20px; outline: none; padding: 0px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 'Liberation Sans', FreeSans, sans-serif; line-height: 20px;span style=margin: 0px; outline: none; padding: 0px; line-height: 1.538em;Public crowdfunding for D8Rules on Drupalfund started on May 13th. In one day, funders covered 8% of the funding goal already—quite good for a start. During the first two weeks the donating line grew and then it became static. The days were flowing away and more than a half of the final amount was still missing. What happened next?!/span/p /div/div/div

Deeson Online: Deeson Online create Drupal 8 personas

Thu, 07/17/2014 - 06:30
div class=field field-name-title field-type-ds field-label-hiddendiv class=field-itemsdiv class=field-item even property=dc:titleh1 class=h4Deeson Online create Drupal 8 personas/h1/div/div/divdiv class=metaBy a href=/category/author/lizzie-hodgsonLizzie Hodgson/a | 17th July 2014/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp style=text-align: center;a href= alt= src=/sites/default/files/uploads/d8_page.png style=width: 420px; height: 350px; //a/p h4The momentum behind Drupal 8 is growing, and Deeson Online have been playing their part.../h4 pWe in the Drupal community probably know something about Drupal 8 – even if it's just that we're aware it's coming!/p pBut how do you clearly and simply highlight the benefits of Drupal 8 to a non-developer audience, or those beyond our community?/p pHow can you then potentially create a non-dev community of Drupal 8 advocates and share good practice?/p h4a href= Drupal 8 personas/a/h4 h5What is a persona?/h5 pA persona is a ‘person' that represents a specific group of users./p pOrganisations and companies can use intel from personas to create, for example, 
a piece or pieces of content that will:/p ul liHighlight expectations and use of your site for your 
end user/li liHelp drive the benefits in 
a way that will be immediately understood 
by the audience/li /ul pDeeson Online have been working of a series of personas to help clearly articulate the benefits of Drupal 8./p h5
How did we create Drupal 8 personas?/h5 pUsing interviews with a range of Drupal and non-Drupal users, we got to grips with all the pain points for a range of potential Drupal 8 users. Using a href= Buytaert’s personas from his DrupalCon Prague Keynote speech/a as a starting point, we then focused on:/p ul lia href= lia href= lia href= lia href= lia href= administrators/a/li lia href= /ul pWe then carried out a series of interviews via Skype and Google Hangouts asking people from across the globe from each of these user groups over 30 questions./p pThese questions ranged from How many people work in the company? to From the time you wake up to the time you go to bed, what does a day in your working life look like?/p h5What did we do with the answers?/h5 pWe then analysed all the responses, reducing them down to one 'persona' per user group, ensuring that we captured the persona needs and pain, then matching them against how Drupal 8 will help./p h5The result/h5 pA range of easy to consume dowloadable infographic persona fact sheets, that established and potential users can read and share./p p style=text-align: center;img alt= src=/sites/default/files/uploads/d1.png style=width: 420px; height: 251px; //p pThe results so far have been really positive. The infographic personas are proving especially useful for those within our community to have something to refer to when talking not just about the power and benefits Drupal 8, but Drupal itself./p h4a href= learn more about Drupal 8, download the persona infographics and share the Drupal love! /a/h4 h4 /h4 /div/div/div

PreviousNext: Drupal continuous integration with Docker

Thu, 07/17/2014 - 03:03
div class=field field-name-field-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pContinuous integration platforms are a vital component of any development shop. We rely on it heavily to keep projects at the quality they deserve. Being early adopters of Docker (0.7.6) for our QA and Staging platform we thought it was time to take our CI environment to the next level!/p /div/div/divspan property=dc:title content=Drupal continuous integration with Docker class=rdf-meta/span

Metal Toad: The Best Way to Learn Programming for Beginners

Thu, 07/17/2014 - 00:32
pWhat is the best way to learn programming for beginners? I've spent a lot of time over the past 12 months thinking about this question, and as our firm has grown steadily from 19 to 39 people, I've reflected on what makes the difference between the people who walk in the door and knock things out of the park and those who struggle. Since my blog post on a href=/blog/how-become-web-developerHow to Become a Web Developer/a I have a number of people who regularly ask me this very question, I'd like to share my thoughts and observations./p ul class=links inlineli class=0 first lasta href= rel=tag title=The Best Way to Learn Programming for BeginnersRead more/a/li /ul

Drupal core announcements: Core contact module roadmap

Thu, 07/17/2014 - 00:27
h2Background/h2 pNow that we have a new release cycle, we have the possibility of new features in minor releases, i.e. although we are in feature freeze for 8.0, that doesn't mean we can't add new features until 9.0. Provided they are backwards-compatible, we can add new features in 8.1 and / After recently taking over maintainer-ship of the core contact module, a href= and I, in consultation with a href= and a href= have formulated a draft roadmap for the features we'd like to see in contact module in the / We're publishing it here for wider community-input. /p h2High-level goal/h2 pTo provide the em80%/em use-case of webform. i.e. allowing creation and submission of feedback forms from site-users; and providing editing, listing and administration of submitted form / Webform contains lots of features, we're only after expanding contact module slightly to add storage and administration and in the process meet the basic use-case of webform in / Note that some of these items are features and can be developed in contrib during 8.0 if required with the view to include in point releases eg 8.1, 8.2./p ol li h2Open issues/h2 ol lidelMove subject/message fields to use widgets a href= /li lidelMake contact message behave like normal entity a href= liRename contact category to strongform/strong a href= /li liProvide strongredirect/strong option a href= /li /ol /li li h2Key features/issues on roadmapbr / /h2 ol liAdd (pluggable) storage of messages a href= - we already have a test implementation of this (in a test module) in core, so it is already technically possible. /li liAdd views integration a href= /li liAdd admin listing of submissions w/ bulk actions to delete a href= /li liAdd ability to edit submissions/li liSupport for file-fields attached to emails - requires formatter for file-field. /li liAbility to edit format of messages bodies including tokens /li liMove email logic out of form submit handler to allow submission of messages via REST api that also send email/li liMove email logic into own service and add events for other modules to interact ol li Make email sending optional at category (form) level/li /ol /li liPath integration to allow simple alias management of contact categories /li liPer contact-category permissions to allow granular access /li liProvide a menu-link per category in a custom menu - auto builds menu of contact category links leveraging the menu link API to solve the category selector regression. /li liProvide a configurable and themable block of selected contact forms. Probably needs views to query contact categories. a href= and a href= /li /ol /li /ol h2Approach/h2 ul liMove a href= to a meta and add sub-issues for 2.1, 2.2 and 2.3 /li liCreate issues for 2.4 through 2.11/li /ul frontpage posts for the Drupal planet: Drupal 7.29 and 6.32 released

Wed, 07/16/2014 - 22:37
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenp style=position: inherit;Drupal 7.29 and Drupal 6.32, maintenance releases which contain fixes for strongsecurity vulnerabilities/strong, are now available for download. See the a href= 7.29/a and a href= 6.32/a release notes for further information./p div style=float: right; margin: 0 0 1em 1em; text-align: center; a href= class=link-button style=margin: 0 0 0.6em 0;spanDownload Drupal 7.29/span/abr /a href= class=link-buttonspanDownload Drupal 6.32/span/a/div p style=position: inherit;stronga href=/upgrade/Upgrading/a your existing Drupal 7 and 6 sites is strongly recommended./strong There are no new features or non-security-related bug fixes in these releases. For more information about the Drupal 7.x release series, consult the a href= 7.0 release announcement/a. More information on the Drupal 6.x release series can be found in the a href= 6.0 release announcement/a./p !--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 and 6 include the built-in Update Status module (renamed to Update Manager in Drupal 7), which informs you about important updates to your modules and themes./p h2Bug reports/h2 pBoth Drupal 7.x and 6.x are being maintained, so given enough a href=[]=8amp;categories[]=1bug fixes/a (not just a href=[]=1amp;categories[]=1bug reports/a) more maintenance releases will be made available, according to our a href= release cycle/a. /p/div h2Changelog/h2 pDrupal 7.29 is a security release only. For more details, see the a href= release notes/a. A complete list of all bug fixes in the stable 7.x branch can be found in a href= git commit log/a./p pDrupal 6.32 is a security release only. For more details, see the a href= release notes/a. A complete list of all bug fixes in the stable 6.x branch can be found in a href= git commit log/a./p h2Security vulnerabilities/h2 pDrupal 7.29 and 6.32 were released in response to the discovery of security vulnerabilities. Details can be found in the official security advisory:/p ullia href= /ulpTo fix the security problem, please upgrade to either Drupal 7.29 or Drupal 6.32./p h2Known issues /h2 pNone./p div style=clear: both; height: 1em;/div /div/div/divdiv class=field field-name-taxonomy-vocabulary-34 field-type-taxonomy-term-reference field-label-abovediv class=field-labelFront page news:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/903Planet Drupal/a/div/div/divdiv class=field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-abovediv class=field-labelDrupal version:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/102Drupal 6.x/a/divdiv class=field-item odda href=/taxonomy/term/120Drupal 7.x/a/div/div/div

Acquia: I Dream it and I Drupal it – My Acquia Story

Wed, 07/16/2014 - 22:24
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpI have always been delighted at the prospect of a new beginning which weaves more threads on to it like spider as it goes on. Acquia internship came as this new beginning to me that I always thought of and dreamt of. I admired startups with challenging ideas and read more and more about the entrepreneurs, about their success stories and the way they reached to where they are now and still envisioning in future. I loved to read and analyze what challenges these young entrepreneurs faced and how they overcome it./p /div /div /div span property=dc:title content=I Dream it and I Drupal it – My Acquia Story class=rdf-meta/span

CivicActions: CivicActions is Hiring!

Wed, 07/16/2014 - 21:06
div class=field-body p10 years ago we set out to create a company like no other./p pOur vision was that team members could work from anywhere, collaborate with brilliant people, build cutting edge technology for the greatest civic institutions on the planet, and have a strong sense of purpose. We have exceeded all our expectations and our success is enabling us to scale even more!/p pWe truly believe that emthe way/em we do business is as important as the product we create. We're looking to add new team members who also value quality, diversity, flexibility, healthy work/life balance, humor and supporting one another. Working for CivicActions is more than just a job - it's working with a team of people who are committed to transforming the world. /p pWe believe that the best team is made from those that love what they do. /p pspanIf this sounds like a dream work environment, we encourage you to reach out and share your vision with us, and explore how we can make it a reality together./span/p pCurrently we are looking candidates to fill the following roles:/p pa href= Engineer / Tech Lead / Drupal Architect/a/p pa href= Site Builder / Developer / Themer /a/p pIf you're full of positive energy, desire a strong sense of community, looking for meaning and significance in your work, and crave opportunities to do what you do best, a href=/careerswe'd love to talk/a!/p /p /div h3 class=field-label Topics /h3 ul class=field-featured-categories li a href=/category/drupal-planetDrupal Planet/a /li li a href=/category/careersCareers/a /li /ul

Mediacurrent: Upcoming Webinar: Improve the ROI of Your Drupal Site

Wed, 07/16/2014 - 20:01
img typeof=foaf:Image src= width=200 height=152 alt=Improving the ROI of your Drupal Site with Content Strategy title=Improving the ROI of your Drupal Site with Content Strategy / pCompanies are seeing lower success rates on social media and diminishing conversion rates on the web - a trend that has put us all, especially content marketers, in the position to prove the ROI or face severe fiscal cuts. Unfortunately, reporting metrics like “increased impressions” and “better brand awareness” won’t be enough because companies are looking for hard before/after numbers./p

Freelock : Performance problem: N! database calls

Wed, 07/16/2014 - 18:34
div class=g-plusone-wrapper style=margin: 0 1em 1em 1em;float:right g:plusone href= size=medium annotation=bubble width=250 /g:plusone/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpKicking off some posts about various performance challenges we've fixed./p h3N Factorial/h3 pDuring a code review for a site we were taking over, I found this little gem:/p pcodelt;?php/code/p pcodefunction charity_view_views_pre_render($view) {/codebr /code  // this code takes the rows returned from a view query after the query has been run, and formats it for display.../codebr /code  // snip to the code of interest:/codebr /code  usort($view-gt;result, 'charity_view_sort_popular');/codebr /code}/code/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/tag/performancePerformance/a/divdiv class=field-item odda href=/tag/technicalTechnical/a/divdiv class=field-item evena href=/tag/drupalDrupal/a/divdiv class=field-item odda href=/tag/drupal-planetDrupal Planet/a/div/div/div

Drupal Association News: How Your Membership Gives Back to the Community

Wed, 07/16/2014 - 17:05
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg alt=Picture of globe class=left src= style=width: 240px; height: 160px; /When people ask me, “What’s Drupal?” I find it a complex answer. Of course, in a technical sense, Drupal is a CMS— but to me, and to many others, it’s far more than that. It’s a community full of amazing people with inspiring leaders and huge hearts./p pAt DrupalCon Austin, I was able to share several stories about community members who really pushed the project further, all with the help of community cultivation grants selected and financed by the men and women who love Drupal. I want to thank a href=, a href=, and a href= for letting me share their stories and I'd like to share these stories with all of you./p h2 Drupal Dev Days: A Week of Sprints in Szeged/h2 pEarlier this year, Gábor Hojtsy organized a dev days event that was a huge success. From March 24 to March 30 this year, three hundred people gathered in Szeged to sprint together on Drupal 8 core, Drupal 8 Search and Entity Field API, Documentation, Migration, MongoDB, REST and authentication, Rules for Drupal 8 and, of course, pThere was so much happening, they almost brought D.O to a halt— but fortunately, everything came out OK, and we had huge improvements to as a result./p pThere were big benefits to Drupal 8 at Szeged, too. Some of the things that our great sprinters accomplished were:/p ulli  115 core commits with 706 files changed, 10967 insertions(+), 6849 deletions(-)/li li  19 beta blocker and beta target issues fixed/li /ulpIt was the community that made Dev Days Szeged so great. By turning out and sprinting, they made big improvements to the project, while a community development grant funded part of the Internet fees. It's an important element of any sprint, but the real significance is that Drupal Association members who could not attend the sprints or are not in a role to contribute code were still able to help achieve this success by funding it through their membership./p h2 DrupalCamp Shanghai/h2 pSheng is the community leader of the Shanghai community, and as an ex-New Yorker, he knew firsthand how important Drupal meetups and camps are for networking and learning. After he moved to Shanghai, he decided that he wanted to share the valuable experience of face-to-face time with his new local community, which had skilled developers who were mostly disconnected from each other and the wider global community./p pAfter building momentum through holding a number of meet ups, Sheng applied for grants in 2013 and 2014 to put on a Shanghai Drupal camp. With the funds, he flew in a Drupal Rock Star to come keynote each of the camps — Forest Mars and John Albin — and the camp doubled in size and there are now hundreds of people who come out to these camps./p pWhile the investment of flying John Albin out to Shanghai from Taiwan was relatively small, the impact and ROI was huge both for the camps and for the greater Drupal community: camp attendees learned to contribute back to the larger global community, almost like a small Ramp;D investment. It wouldn’t have been possible without a community grant./p h2 DrupalCamp Donetsk/h2 pTatiana of the Drupal Association worked with her colleagues in Donetsk to put together a DrupalCamp in Donetsk, in spite of the revolution. A lot of people came together and connected both to each other and to the global community, and used a grant to pay for the food and coffee— and for us at the Association, that grant stands as a sign of positive support from the greater Drupal community in spite of the strife that was going on in Donetsk./p pIn the end, lots of thanks needs to go around. First, I’d like to thank Gabor, Sheng and Tatiana and all community leaders for turning your vision into reality and for the time and passion you pour into Drupal. We are appreciate all that you do to unite and grow Drupal./p pSecondly, none of this would be possible without the three community leaders who manage the volunteer program: Mike Anello, Amy Scarvada, and Thomas Turnbull. Your passion for growing the community is doing great things./p pFinally, I want to issue a big thank you to our Drupal Association Members for making these stories a reality. If you want to be come a member and help more of these programs around the world come to life, please sign up today at a href= /div/div/div

Acquia: Drupal for Digital Commerce – Bojan Živanović

Wed, 07/16/2014 - 14:49
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpBojan and I chatted at Drupal Dev Days 2014 about one of the newest and most important weapons available in Drupal's eCommerce arsenal: recurring billing for digital commerce in Drupal Commerce./p /div /div /div span property=dc:title content=Drupal for Digital Commerce – Bojan Živanović class=rdf-meta/span

IXIS: Nippy EdgeCast Purging

Wed, 07/16/2014 - 11:27
div class=field field-type-filefield field-field-blogimage div class=field-items div class=field-item odd img src= alt=teaser image for blog post title=Edgecast caching from Verizon class=imagecache imagecache-blogfull imagecache-default imagecache-blogfull_default width=435 height=181 / /div /div /div pSince we integrated the a href= CDN/a for one of our clients, and released a related a href= Drupal module/a we have been encouraging more and more clients to consider a CDN layer to accelerate performance to multiple geographicnbsp;locations and maintain an excellent uptime even during site maintenance periods./p pA recent international client who is running many domains with federated content using the Domain module needed to make use of the content delivery network to improve performance and resiliance for their sites./ppa href= target=_blankread more/a/p

Acquia: 5 Erreurs à éviter sur votre Site Drupal - Numéro 4: L'Infrastructure

Wed, 07/16/2014 - 11:14
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpimg src=/sites/default/files/lg-ravi-sarma-brooklyn-bridge-ccby2.0.jpg alt=Photo by Ravi Sarma - Brooklyn Bridge, CC BY 2.0 //p/div /div /div span property=dc:title content=5 Erreurs à éviter sur votre Site Drupal - Numéro 4: L#039;Infrastructure class=rdf-meta/span

Mogdesign: #D8Rules As a Proof that Drupal Community Is a Living Cell

Wed, 07/16/2014 - 11:03
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWhen a href= target=_blankD8Rules/a project waiting in a Funding phase had just seven days left to be successfully funded, success didn’t seem likely. The project had raised just over 40% of its funding goal so far. The days shortened; the pressure rose./p/div/div/div