Drupal Planet

TC Drupal News: Session Deadline is Monday the 29th!

2 dni 1 godzina ago
The 9th annual Twin Cities Drupal Camp is coming this June, and we want you to be a part of it!

You've got less than one week to get your session proposals in, so submit your ideas today. Get a sneak peek at next year's DrupalCon location, or come back to the camp you know and love.

Why Twin Cities Drupal Camp? Great speakers – we've hosted nine years of keynotes and sessions from well-known Drupal contributors all over the country Great location – located in downtown Minneapolis in a beautiful, modern college campus, with a tall sunny atrium, comfortable classrooms and professional setups Great weather – summer in Minneapolis is not to be missed, and June has always been a beautiful month. Sidewalk cafes, rooftop bars, food trucks, music, lakes, and sun Great socials – outdoor parties with food trucks and karaoke, board game parties with free food and drink, and a welcome gathering with a little of everything Great (free) trainings - each year we host 3-5 trainings from some of the best groups in the country, free for all conference attendees Great networking - we bring 200 to 300 people each year, from universities and colleges, nonprofits, businesses, government, arts, and agencies of all kinds Great reputation - ask a friend or co-worker who's attended in the past, they will surely tell you why to attend.

As always, all accepted presenters get a free ticket to Camp. We'd sure love for you to come see us this June, and that's made a heck of a lot easier by getting your free ticket once your session is accepted. So, please send your sessions to us and we'll let you know first thing in May if we found a place for your talk.

Manifesto: Recipe for a successful Drupal agency

2 dni 3 godziny ago

In March, Gabriele Maira Manifesto’s Lead Drupal Engineer, and I, gave a talk at DrupalCamp London’s CxO day on how to build a successful Drupal agency. It was a highly-calorific meal with plenty to chew over for anyone looking to improve their agency’s ability to win new Drupal work and successfully deliver projects. Here, the. Continue reading...

The post Recipe for a successful Drupal agency appeared first on Manifesto.

Ramsalt Lab: The ultimate guide for faster Drupal: Part 1 Caching

2 dni 4 godziny ago
  • At the Lab section of our name: "Ramsalt Lab" we tried to put Drupal on steroids to test and see how much can we get out of Drupal performance wise and we will now publish a series of blog posts that together make a coherent How-to guide on Drupal performance.

    Experience, general web performance and Drupal optimization articles

    For gathering all the data in this document, we did some heavy research. We have studied a lot of general website performance, Drupal optimization articles and we have done a lot of tests and put in the organization's over 100 years of total Drupal experience into play. A highlight that we would like to point out is this great presentation in DrupalCon 2018 Nashville that you can download its pdf and take a look for yourself.

    Chapters in the "Faster Drupal" blog series

    As a starting point, note that it’s a much easier bet to start with a Drupal 8 installation instead of Drupal 7 since you can get much better results built-in. But in many cases, the current project is already on Drupal 7, so we try to cover both cases. Some of the items are, to say the least, “Obvious” but this list is supposed to be as coherent as possible. For most of this, we consider you have full access to your server and can set up the things listed here, so based on that, let’s kick things off with Caching. Then for the second blog article, we will look into asset distribution, CDN, compression, and aggregation. Thirdly we’ll be taking a look at one of the greatest enemies of performance: Images! Fourth step we will cover some techniques for Database/Web Server Tweaks & Improvements and lastly some general tips and HowTo’s for optimizing theming in Drupal.

    Improving Caching in Drupal:
    1. Use Redis: Integration of Drupal with the Redis key-value store. It provides cache, lock, and path optional backends
      Redis Drupal module
      Not happy with Redis for some unknown reason? Try Memcache
      For a simple drupal installation, we can take advantage of these two modules:
      Drupal Memcache + Drupal Memcache Storage modules
       

    2. Use Varnish Cache: If you want to improve the performance of your website without using Varnish is like trying to cook without a pan! Varnish is an advanced and very fast reverse-proxy system. In the common configurations Varnish will handle all caches regarding anonymous page-views, and sometimes even static files and pages for logged in users via per-role-caches and ESI (Edge Side Includes) for your site.
      Varnish Drupal module (not required for caching, but essential for cache purging).
      But hey I’m on shared hosting and don’t have access to any fancy Varnish HTTP cache thingy? Well then use Boost module
      Drupal Boost module
       

    3. Take advantage of PHP Cache (APC): With APC caching your PHP script executions can run more efficiently, by cutting down on dynamic PHP executions.
       

    4. Let’s all agree we all love CloudFlare: CloudFlare is a FREE reverse proxy, firewall, and global content delivery network and can be implemented without installing any server software or hardware. At least based on Cloudflare module’s page, on average, CloudFlare-powered websites load 30% faster, uses 60% less bandwidth, and process 65% fewer requests. CloudFlare-powered websites are protected from many forms of malicious activity including comment spam, email harvesting, SQL injection, cross-site scripting, and DDoS (denial of service) attacks.
      Drupal CloudFlare module
       

    5. The Purge (Not the movie): So by now you cached the hell out of your website and now you just want to change something on your website? The purge module facilitates cleaning external caching systems, reverse proxies and CDNs as content actually changes. This allows external caching layers to keep unchanged content cached infinitely, making content delivery more efficient, resilient and better guarded against traffic spikes.
      Drupal Purge module
       

    6. Did you know you can cache your views? In Drupal 7 Enable “Views Caching” in each Views manually and in Drupal 8 there’s a module that helps a lot with that.
      Drupal Views Advanced Cache module
       

    7. Using Panels? Enable Panels caching in each Panel
       

    8. Drupal 8: Do you like BigPipe in Drupal 8 core? How about some sessionLess BigPiping? (No pun intended)
      Sessionless BigPipe module
       

    9. Use views with minimum pagination navigation to save some SQL time (just first, previous, next, last links instead of (1,2,3,4,5…). In Drupal 7 you also need to use:
      Views Litepager module
       

    10. A long cache lifetime can speed up repeat visits to your page, Serve static assets with an efficient cache policy
      Read more on Google developers
       

    11. Drupal 7: People need to login to your website and you still would like some caching? AuthCache to the rescue
      Authenticated User Page Caching module
       

    12. Drupal 7: You like Drupal 8 core cache tags and cache max-age? But maybe for Drupal 7?
      Drupal 8 Cache Backport module
       

    13. Drupal 7: Need different caching per block? Fear not
      BlockCache Alter module
       

    14. Drupal 7: Already setup Memcache and Redis? Add some Entity Caching
      Entity Cache module
       

    15. Drupal 7: Render Cache is also quite powerful but has some issues on the cache clearing level, so use with caution.
      Render Cache Drupal module
       

    16. Consider using Google QuickLink Library if possible. Enables faster subsequent page-loads by prefetching in-viewport links during idle time at the cost of increased page loads for the client.
      Google QuickLink Drupal module

    Okay, that was a long list of things to consider/do for just caching, but hey we are here to make something extra performative.

    In the next upcoming part that will be published in about a week, we will focus on Drupal Aggregation / CDN / Compression

    Written by Sohail Lajevardi
    Developer at Ramsalt Lab

     

    Drupal blog: How to prepare for Drupal 9

    2 dni 17 godzin ago

    This blog has been re-posted and edited with permission from Dries Buytaert's blog.

    Upgrading from Drupal 8 to Drupal 9 should be easy if you regularly check for and remove the use of deprecated code.

    With Drupal 9 targeted to be released in June of 2020, many people are wondering what they need to do to prepare.

    The good and important news is that upgrading from Drupal 8 to Drupal 9 should be really easy — radically easier than upgrading from Drupal 7 to Drupal 8.

    The only caveat is that you need to manage "deprecated code" well.

    If your site doesn't use deprecated code that is scheduled for removal in Drupal 9, your upgrade to Drupal 9 will be easy. In fact, it should be as easy as a minor version upgrade (like upgrading from Drupal 8.6 to Drupal 8.7).

    What is deprecated code?

    Code in Drupal is marked as "deprecated" when it should no longer be used. Typically, code is deprecated because there is a better alternative that should be used instead.

    For example, in Drupal 8.0.0, we deprecated \Drupal::l($text, $url). Instead of using \Drupal::l(), you should use Link::fromTextAndUrl($text, $url). The \Drupal::l() function was marked for removal as part of some clean-up work; Drupal 8 had too many ways to generate links.

    Deprecated code will continue to work for some time before it gets removed. For example, \Drupal::l() continues to work in Drupal 8.7 despite the fact that it was deprecated in Drupal 8.0.0 more than three years ago. This gives module maintainers ample time to update their code.

    When we release Drupal 9, we will "drop" most deprecated code. In our example, this means that \Drupal::l() will not be available anymore in Drupal 9.

    In other words:

    • Any Drupal 8 module that does not use deprecated code will continue to work with Drupal 9.
    • Any Drupal 8 module that uses deprecated code needs to be updated before Drupal 9 is released, or it will stop working with Drupal 9.

    If you're interested, you can read more about Drupal's deprecation policy at https://www.drupal.org/core/deprecation.

    How do I know if my site uses deprecated code?

    There are a few ways to check if your site is using deprecated code.

    If you work on a Drupal site as a developer, run drupal-checkMatt Glaman(Centarro) developed a static PHP analysis tool called drupal-check, which you can run against your codebase to check for deprecated code. I recommend running drupal-check in an automated fashion as part of your development workflow.

    If you are a site owner, install the Upgrade Status module. This module was built by Acquia. The module provides a graphical user interface on top of drupal-check. The goal is to provide an easy-to-use readiness assessment for your site's migration to Drupal 9.

    If you maintain a project on Drupal.org, enable Drupal.org's testing infrastructure to detect the use of deprecated code. There are two complementary ways to do so: you can run a static deprecation analysis and/or configure your existing tests to fail when calling deprecated code. Both can be set up in your drupalci.yml configuration file.

    If you find deprecated code in a contributed module used on your site, consider filing an issue in the module's issue queue on Drupal.org (after having checked no issue has been created yet). If you can, provide a patch to fix the deprecation and engage with the maintainer to get it committed.

    How hard is it to update my code?

    While there are some deprecations that require more detailed refactoring, many are a simple matter of search-and-replace.

    You can check the API documentation for instructions on how to remedy the deprecation.

    When can I start updating my code?

    I encourage you to start today. When you update your Drupal 8 code to use the latest and greatest APIs, you can benefit from those improvements immediately. There is no reason to wait until Drupal 9 is released.

    Drupal 8.8.0 will be the last release to deprecate for Drupal 9. Today, we don't know the full set of deprecations yet.

    How much time do I have to update my code?

    The current plan is to release Drupal 9 in June of 2020, and to end-of-life Drupal 8 in November of 2021.

    Contributed module maintainers are encouraged to remove the use of deprecated code by June of 2020 so everyone can upgrade to Drupal 9 the day it is released.

    Drupal.org project maintainers should keep the extended security coverage policy in mind, which means that Drupal 8.8 will still be supported until Drupal 9.1 is released. Contributed projects looking to support both Drupal 8.8 and Drupal 9.0 might need to use two branches.

    How ready are the contributed modules?

    Dwayne McDaniel (Pantheon) analyzed all 7,000 contributed modules for Drupal 8 using drupal-check.

    As it stands today, 44% of the modules have no deprecation warnings. The remaining 56% of the modules need to be updated, but the majority have less than three deprecation warnings.

    Kanopi Studios: Thank you DrupalCon Seattle

    2 dni 17 godzin ago

    Another amazing DrupalCon has passed, and Kanopi had a great time collaborating with the community. Kanopians gave three talks, hosted one summit, participated in two others, led first-time contributor workshops, hosted three BOFs, and two of our engineers (Sean and Jim) passed their Acquia certifications. Our boss Anne even made her first commit.

    If you missed our talks, fear not. The recordings are below:

    Deep Cleaning: Creating Franchise Model Efficiencies with Drupal 8 

    Presenters: Anne Stefanyk and Katherine White

    COIT offers cleaning services and 24/7 emergency restoration services and their 100+ locations serve more than 12 million homes & businesses across the United States and Canada. But their own website was a huge mess. In this case study we will cover the more technical parts of this Drupal 8 implementation.

    How to Work Remotely and Foster a Happy, Balanced Life

    Presenters: Anne Stefanyk

    In this session, we talk about how to be the best remote employee, and provide strategies and ideas if you are a leader of a remote team. We talk about key tactics to keep you (and all other staff) inspired, creative, productive and most importantly, happy!

    The post Thank you DrupalCon Seattle appeared first on Kanopi Studios.

    CiviCRM Blog: civicrm_engage is dead, long live civicrm_engage!

    2 dni 20 godzin ago

    Long, long ago, before we had indoor plumbing, penicillin or `civix generate:module`, a humble drupal module was born.

    It tried its best to be helpful by employing an (at the time) cutting edge technique known as CRM_Utils_Migrate_Import to dump a motley collection of custom fields, profiles and options into your CiviCRM database.

    Along with other cutting edge techniques (such as lobotomies), the process of automatically adding custom fields, profiles and options has been improved and now can be done with managed entities and our lovely api.

    The Progressive Technology Project helped bring about civicrm_engage, and has now prepared a series of much more sane alternatives that provide the same functionality, but are implemented using CiviCRM-native extensions that employ the CiviCRM API.

    The replacement extensions are described below.

    In addition civicrm_engage provided a few demographic fields and then did some magical foo on the display of the custom demographics fields so that they would appear on the summary page in the same box as the core demographics fields. This is pretty, but alas, we decided it was not worth the extra work of maintaining said magical foo so we have not tried to re-implement that feature.

    So, with this blog post, we are starting the process of deprecating civicrm_engage.

    NOTE: If you are currently using civicrm_engage, you can simply disable and uninstall the module and your custom fields, profiles and options will remain. Your custom demographic fields will suddenly appear as a Tab instead of being available in your core demographics box, but otherwise, everything will work the same. Disabling and uninstalling civicrm_engage is the recommended course of action for existing installations.

    For new installations, please see the replacement extensions below.

    Feedback and questions are welcome from anyone (but especially people that actually have civicrm_engage enabled, if any of you exist).

    Replacement extensions:

    • Contstituent Fields: Provides a custom data group for both individuals and organizations that includes a contstituent type multi-select for both individuals and organizations. It also includes a handful of useful custom fields for organizing purposes, such as "Staff resopnsible", "Date started",  "Languages known" and others.
    • Participant Fields: Provides common fields for organizing events that extend the participant records, such as "Dietary Preferences" and "Child care needed."
    • Media Fields: Provides both a media outlet and media contact sub types (extending Organization and Individual) along with fields for tracking such sub types.
    • Voter Fields: Provides a set of fields for tracking voter engagement, including "Party Registration," "VAN Id" and others.
    • Foundation Fields: Creates a Foundation Organization sub type along with useful fields for tracking Foundations. In addition, provides a "letter of inquiry," "proposal," and "report" activity types and custom activity fields to help you track proposals.
    • Turnout:   Provides extra fields that extend the participant records that are    used for tracking turnout efforts. These fields (and a profile)    provide a turnout workflow allowing organizers to make up to three    calls to propsective event participants and track what their    responses to the calls are.

     

    DrupalExtensions

    Chromatic: DrupalCon 2019 Seattle Recap

    2 dni 21 godzin ago

    Another DrupalCon is in the books and our team had a fantastic time gathering with so many members of the worldwide Drupal community in Seattle. Getting together in person with a large portion of our team is always a treat, but it makes it all the sweeter when our team has the chance to share their expertise by presenting at DrupalCon.

    Srijan Technologies: DrupalCamp London 2019

    3 dni 4 godziny ago

    On the evolution of web content approaches and technology perspectives

    Change is in the air!

    In more ways than one, our world is in the throes of change. We live in an era where politics and governance, economy and international relations as also business and technology are all careening through an edge-of-the-seat roller coaster ride, from one ‘cutting edge’ to another.

    Ideas, values, systems, processes, frameworks - what held good yesterday is today up in the air. We see this in our lives - professional and personal. We seek the new constantly, be it a new Mar-Tech platform every few months for our businesses, or a new Soc-Med channel to post our holiday pictures on, discarding the one that was ‘trusted’ till yesterday.

    Not surprisingly, this affects both organizations and individuals - the changes in our experience of institutional frameworks, business models, corporate ethics, interpersonal relationships, the way we shop, eat, dress, travel, even our experiences of climate change.

    KatteKrab: Now migrated to Drupal 8!

    5 dni 4 godziny ago
    Now migrated to Drupal 8! kattekrab Sat, 20/04/2019 - 22:08

    It was easy!

    Ok - I did have help from cafuego, so there's some bits of the process that were just magic to me.  But once I had access to the environments, I enabled the migrate modules, and followed instructions on drupal.org and hey presto it was done!

    I did need to do manual clean up - re position blocks into differently named regions, and recreate some menu items for taxonomy.

    I also got stumped for a bit about why I could no longer free tag, but that turned out to be a simple setting change.

    There's still some tweaking to do, and I know that the path to files has changed, so there's lots of broken images I need to tidy up, but other than that, all seems well.

    During his keynote at DrupalCon a couple of weeks back, Dries said the time to move to D8 is now.

    He's right.

    drupalplanet