Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 3 sec ago

Mediacurrent: Good Form: 5 Tips for a Smooth Sign-up Process

Mon, 11/14/2016 - 20:10
img typeof=foaf:Image src=https://www.mediacurrent.com/sites/default/files/styles/thumb_blog_spotlight/public/img_blog_form-design.png?itok=s7HxAWGk width=200 height=150 / pA lot of effort goes into engaging your visitors to ‘Sign-up’ or ‘Contact’ you. You send them a warm and fuzzy invitation to complete the form, tell them all the great reasons why they should complete the form… but who likes to complete a form? You can help guarantee a smooth sign-up process and increase the completion rate of your web forms with these five tips./p h3#1 Make it Flow/h3 pBefore you begin designing that web form, it is always good to create a User Flowchart. Working to establish the form completion process from start to finish, a flowchart will help you:/p

Chromatic: Introducing ShouldIUpgradetoDrupal8.com

Mon, 11/14/2016 - 19:06
pWe find that there's still uncertainty out there around upgrading to Drupal 8. The natural answer in the Drupal community is, Yes, of course go with Drupal 8!, but in the world of tight deadlines and tighter budgets, the answer isn't so clear. Enter a href=https://shouldiupgradetodrupal8.com/ShouldIUpgradetoDrupal8.com/a, an interactive tool we built to help the community answer that very question./p

Acquia Developer Center Blog: Contribution Stories: Preston So, Decoupled Drupal with Ember

Mon, 11/14/2016 - 18:49
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image class=img-responsive src=https://dev.acquia.com/sites/default/files/styles/blog__190_x110_/public/blog/preston_0.jpg?itok=l9hDmjmQ width=140 height=85 alt=Preston So title=Preston So //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpemDrupal gets better when companies, organizations, and individuals build or fix something they need and then share it with the rest of us. Our community becomes better, stronger, and smarter when others take it upon themselves to make a positive difference contributing their knowledge, time, and energy to Drupal. Acquia is proud to play a part, alongside thousands of others, in some of the stories making tomorrow’s Drupal better than today’s. strongOne of them Preston So’s./strong/em/p /div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/divdiv class=field-item odda href=/tags/ember typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=ember/a/divdiv class=field-item evena href=/tags/javascript typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=javascript/a/divdiv class=field-item odda href=/tags/front-end typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=front end/a/divdiv class=field-item evena href=/tags/drupalcon typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupalcon/a/divdiv class=field-item odda href=/tags/dublin typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Dublin/a/div/div/div

Palantir: Palantir.net's Guide to Digital Governance: URL Naming Conventions

Mon, 11/14/2016 - 17:50
spanPalantir.net's Guide to Digital Governance: URL Naming Conventions/span a href=https://www.palantir.net/blog-series/palantirnets-guide-digital-governance hreflang=enPalantir.net's Guide to Digital Governance/a spanspan lang= about=https://www.palantir.net/people/alex-brandt typeof=schema:Person property=schema:name datatype= xml:lang=brandt/span/span spanMon, 11/14/2016 - 10:50/span Scott DiPerna time datetime=2016-11-14T12:00:00ZNov 14, 2016/timeimg src=https://www.palantir.net/files/styles/hero/public/hero/2016-11/governance-3_0.jpg?itok=1rfJDuk4 width=1300 height=731 alt=Illustrated collage of website icons typeof=foaf:Image /div class=lede pThis is the eighth installment of Palantir.net’s Guide to Digital Governance, a comprehensive guide intended to help get you started when developing a governance plan for your institution’s digital communications./p /div In this post we will cover... ulliA recommended naming convention for URL paths/li liSome tips for choosing section names/li liQuestions to consider when defining rules for redirects and aliases/li /ulsection class=ctah3 class=cta__title /h3pWe want to make your project a success./p span class=cta__link a href=https://www.palantir.net/contactLet's Chat./a /span /sectionpA logical progression from Website organization is defining a naming convention for URL paths. URL paths should follow a consistent naming convention throughout all of your websites. Only under exceptional circumstances should a URL path name deviate from an established naming convention for a Website./p pBest practices for URL path naming conventions recommend consistency in how sections, sub-sections, pages, and sub-pages are written. For most websites, I recommend URL paths follow the general naming convention below. /p p     http://domain.com/SECTION/SUB-SECTION/PAGE/SUB-PAGE/p pThis basic structure gives users an idea of where they are in the site’s hierarchy of pages. This can be especially important considering the volume of traffic that enters the site from web searches that will bypass the homepage and take visitors directly into deeper pages in the site. It’s also a good practice for improving the SEO value of your site’s pages, as it provides more specific context for the content of the page./p h3Section/h3 pUnder this convention, SECTION is the top-level “directory,” and generally refers to the category under which subsequent content resides. For example, in the URL path http://domain.com/about, “About” is a primary category that often appears in a main menu, and thus receives a top-level URL path./p pI generally like SECTION names to be one continuous string of letters without hyphens or underscores (e.g. about, services, people, etc.) because that makes for shorter top-level URL paths, however two word hyphens may also be acceptable if they aren’t too long. Given that top-level SECTION names are usually the label-names of your main navigation, it’s additionally wise to keep them clear, simple and concise./p pAcronyms and abbreviations should be avoided because they often don’t make sense to visitors unfamiliar with the abbreviations. That being said, some abbreviations, such as http://domain.com/faq, may work so long as they make logical sense to most visitors./p pIf your Website has multiple users who are able to write URL path names, I recommended defining in the governance plan some limitation for who may write top-level directory names. These are typically the most highly sought-after URLs in a Website, and you will want to have a well-defined process for how those are distributed and assigned. A free-for-all is probably not a good process./p h3Sub-Section/h3 pSUB-SECTION is the second-level directory, if one exists. Using About as an example, “Meet Our Team” is the second-level “directory” in the URL path:/p p     http://domain.com/about/team/p psince “Meet Our Team” is just one of the sub-sections under “About” in this example./p pSUB-SECTION names also may be one continuous string of letters without hyphens or underscores, such as:/p p     http://domain.com/about/team/p por a string of words separated by hyphens:/p p     http://domain.com/about/meet-our-team./p pThe choice between the two really depends on whether the additional words add value to the user’s understanding of location, and/or if the string of words adds SEO value because it captures important descriptive words for the content of the page./p pIn the example above, the words “meet our” really don’t add much information, and the shorter URL path name is simpler. Simplicity may become more important as you add pages to sub-sections and the URL path names become very long./p pSome URL path names may appear to deviate from this rule if a sub-section does not actually exist, in which case the sub-section location would be occupied by the page name./p h3Page/h3 pPages on the “Meet Our Team” site would then have a URL path structure of:/p p     http://domain.com/about/team/PAGE-NAME/p pwhere PAGE-NAME could be any number of different page names. PAGE-NAMEs should generally describe the content of the page based on the page’s title. This can be expressed either as a single word (if a single word sufficiently describes the page), such as:/p p     http://domain.com/about/team/consultants/p pwhere “consultants” is a page for information about consultants on the team titled “Consultants”; or by a string of hyphenated words, such as:/p p     http://domain.com/about/team/website-consultants/p pwhere “website-consultants” is a page about Website consultants on the team titled “Web Consultants.”/p pFor the purposes of SEO, at the page level, I generally prefer to include all of the keywords in a page’s title (separated by hyphens) in the URL path, especially when it adds descriptive value./p h3Sub-Page/h3 pAs follows, sub-pages for any of the pages in the “Meet Our Team” site would have a URL path structure:/p p     http://domain.com/about/team/PAGE-NAME/SUB-PAGE-NAME SUB-PAGE-NAMEs/p pshould follow the same rules as PAGE-NAMEs, however sub-page names may require longer strings of hyphenated names as pages become more detailed and specific:/p p     http://domain.com/about/team/consultants/drupal-content-management-system/p pConversely, if sub-pages are breaking out content into simpler categories, they may benefit from shorter names:/p p     http://domain.com/about/services/web-platforms/drupal/p prather than:/p p     http://domain.com/about/services/web-platforms/drupal-content-management-system/p pAll of that being said, you should determine the system that works best for your needs and stick to it. Just keep it simple, logical, and as memorable as possible so that it is easy for all users to implement./p h3Multiple-Word Names/h3 pWhen writing URL paths with multiple-word names, I recommend using hyphens, such as:/p p     http://domain.com/about/services/web-platforms/drupal-content-management-system/p prather than underscores:/p p     http://domain.com/about/services/web_platforms/drupal_content_management_system/p por concatenation:/p p     http://domain.com/about/services/webplatforms/drupalcontentmanagementsystem/p pUse of underscores makes it far too easy for a user to misread an underscore as a space, especially when the URL path is hyperlinked:/p p     http://domain.com/about/services/web_platforms/drupal_content_management_system/p pMost hyperlinks are underlined to indicate to users that a section of text is a hyperlink./p pConcatenation is more obviously problematic because it simply creates confusing URL paths./p h3Aliases Redirects/h3 pHow URL path aliases and redirected URL paths are handled will depend on the policies of your organization and the platform you use for your Website. I highly recommend you define the rules and processes surrounding URL aliases and redirects in your governance plan, and here are some questions to consider along those lines./p ulliHow are URL aliases and redirects managed in your Web environment?/li liWho manages URL aliases and redirects?/li liIs there a process or procedure for requesting an alias or a redirect?/li liMay anyone request a URL alias or redirect?/li liAre redirects to Websites outside of your domain or server environment permitted?/li liWho determines whether a URL alias or redirected URL path is appropriate or not?/li liAre there any special rules for using top-level directories as URL path aliases or redirected URL paths?/li /ulp /p blockquote pThis post is part of a larger series of posts, which make up a Guide to Digital Governance Planning. The sections follow a specific order intended to help you start at a high-level of thinking and then focus on greater and greater levels of detail. The sections of the guide are as follows:/p /blockquote ollia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-introduction-and-starting-10000ft-viewStarting at the 10,000ft View/a – Define the digital ecosystem your governance planning will encompass./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-properties-and-platformsProperties and Platforms/a – Define all the sites, applications and tools that live in your digital ecosystem./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-ownershipOwnership/a – Consider who ultimately owns and is responsible for each site, application and tool./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-intended-useIntended Use/a – Establish the fundamental purpose for the use of each site, application and tool./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-roles-and-permissionsRoles and Permissions/a – Define who should be able to do what in each system./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-contentContent/a – Understand how ownership and permissions should apply to content./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-organizationOrganization/a – Establish how the content in your digital properties should be organized and structured./li lia href=https://www.palantir.net/blog/palantirnets-guide-digital-governance-url-naming-conventionsURL Naming Conventions/a – Define how URL patterns should be structured in your websites./li liDesign – Determine who owns and is responsible for the many aspects design plays in digital communications and properties./li liPersonal Websites – Consider the relationship your organization should have with personal websites of members of your organization./li liPrivate Websites, Intranets and Portals – Determine the policies that should govern site which are not available to the public./li liWeb-Based Applications – Consider use and ownership of web-based tools and applications./li liE-Commerce – Determine the role of e-commerce in your website./li liBroadcast Email – Establish guidelines for the use of broadcast email to constituents and customers./li liSocial Media – Set standards for the establishment and use of social media tools within the organization./li liDigital Communications Governance – Keep the guidelines you create updated and relevant./li /olaside class=ctah3 class=cta__title /h3pStay connected with the latest news on web strategy, design, and development./p span class=cta__link a href=http://palantir.net/newsletterSign up for our newsletter./a /span /asideul class=list--simpleli class=taga href=https://www.palantir.net/topics/strategy hreflang=enStrategy/a/li /ul

Drupal Console: Drupal Console RC-9 is out

Mon, 11/14/2016 - 15:34
pLatest DrupalConsole rc-9 is out including several changes and fixes./p h3Support for command aliases/h3 pAliases for commands added making easy to memorize by typing less. You can find aliases definition at a href=https://github.com/hechoendrupal/drupal-console-core/blob/master/config/dist/aliases.ymlhttps://github.com/hechoendrupal/drupal-console-core/blob/master/config/dist/aliases.yml/a/p h3Support to execute the DrupalConsole Launcher on Windows platform/h3 pThis PR a href= https://github.com/hechoendrupal/drupal-console-launcher/pull/51https://github.com/hechoendrupal/drupal-console-launcher/pull/51/a fixes the `\vendor\bin\drupal.php` file not found error./p h3Execute DrupalConsole from any directory within your Drupal site/h3 pNo need to stay at site root directory. You can now switch to any directory as modules, themes, web/modules/custom or any other directory within your Drupal site. This was possible using the DrupalFinder project a href=https://github.com/webflo/drupal-finder/https://github.com/webflo/drupal-finder//a/p pstrongNOTE/strong: Having a configuration file containing `root: web` on the site is no longer required. You can keep the file but is required to remove that value from your `path/to/drupal8/console/config.yml`/p h3Improvements on the `init` command /h3 pThe interactive mode for the init command now ask you and show a list of directories where to copy the configuration files./p ul/ulpstrongUpdate instructions:/strong/p pcode class=gist-embed data-gist-id=a0970e1ea252ecb852fe8c7182d85d3e data-gist-file=instructions.md data-gist-hide-footer=true data-gist-hide-line-numbers=true data-gist-show-loading=false/code /p

Drupal Blog: Drupal 8 will no longer include dev dependencies in release packages

Sat, 11/12/2016 - 02:19
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAs a best practice, development tools should not be deployed on production sites. Accordingly, packaged Drupal 8 stable releases will no longer contain a href=//getcomposer.org/doc/04-schema.md#require-dev rel=nofollowdevelopment PHP libraries/a, because development code is not guaranteed to be secure or stable for production./p pThis only applies to a few optional libraries that are provided with Drupal 8 for development purposes. The many stable required libraries for Drupal 8, like Symfony and Twig, will still be included automatically in packaged releases. Drupal 7 is not affected./p h3Updating your site/h3 pTo adopt this best practice for your site, do one of the following (depending on how you install Drupal):/p ulliIf you install Drupal using the strongstable release packages provided by Drupal.org/strong (for example, with an archive like a href=https://ftp.drupal.org/files/projects/drupal-8.2.2.tar.gz rel=nofollowdrupal-8.2.2.tar.gz/a or via a href=https://github.com/drush-ops/drush rel=nofollowDrush/a), update to the next release (8.2.3) as soon as it is available. (a href=https://www.drupal.org/docs/7/choosing-a-drupal-version/overview#when rel=nofollowRead about core release windows/a.) Be sure to follow the a href=https://www.drupal.org/node/2700999 rel=nofollowcore update instructions/a, including removing old vendor files. Once updated, your site will no longer include development libraries and no further action will be needed./li liIf you use a strongdevelopment snapshot/strong on your production site (like a href=https://www.drupal.org/project/drupal/releases/8.2.x-dev rel=nofollow8.2.x-dev/a), you should either update to a stable release (preferred) or manually remove the dependencies. Remember that development snapshots are not supported for production sites./li liIf you install your site strongvia Composer/strong, you should update your workflows to a href=https://www.drupal.org/docs/develop/using-composer/using-composer-to-manage-drupal-site-dependencies rel=nofollowensure you specify code class=language-php--no-dev/code/a for your production sites./li /ulh3Development and continuous integration workflows/h3 pIf you have a continuous integration workflow or development site that uses these development dependencies, your workflow might be impacted by this change. If you installed from a stable Drupal.org package and need the development dependencies, you have three options:/p olliInstall a href=https://getcomposer.org/ rel=nofollowComposer/a and run code class=language-phpcomposer install --dev/code,/li liUse a development snapshot (for example, 8.2.x-dev) instead of a tagged release for your development site, or/li liInstall the development dependencies you need manually into Drupal's vendor directory or elsewhere./li /olpstrongHowever, remember that these development libraries should not be installed on production sites./strong/p pFor background on this change, see a href=https://www.drupal.org/node/2745355 rel=nofollowUse composer install --no-dev to create tagged core packages/a. For more information on Composer workflows for Drupal, see a href=https://www.drupal.org/docs/develop/using-composer/using-composer-to-manage-drupal-site-dependencies rel=nofollowUsing Composer to manage Drupal site dependencies/a./p/div/div/div

Drupal.org blog: What’s new on Drupal.org? - October 2016

Fri, 11/11/2016 - 21:43
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpsmallRead our a href=https://www.drupal.org/drupalorg/roadmapRoadmap/a to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community./small/p pThe Drupal Association team has been getting back to work after coming back from DrupalCon Dublin in September. For the engineering team, October has been focused on some back-end services and infrastructure that support the Drupal project, while we continue to move forward on some longer term front facing initiatives./p h2Drupal.org updates/h2 h3Promoting Drupal by Industry/h3 pa href=https://www.drupal.org/drupalorg/blog/whats-new-on-drupalorg-september-2016Last month/a we talked about the new homepage we released for Drupal.org, and using those editorial tools to build a membership campaign. We hinted that additional changes will be coming soon. While we're not ready to launch this new content - we can talk about it in some greater detail./p pDries Buytaert, the project founder, has called Drupal the platform for ambitious digital experiences. That phrase expresses the incredible power and flexibility of Drupal, but also encapsulates an aspect of Drupal that can be difficult for newcomers. It can be very hard for newcomers to Drupal to understand how to take a base install of Drupal core, and extend that to achieve that ambitious vision./p pWe want to help close that gap in understanding—to help evaluators see how Drupal achieves these ambitions. To do this, we'll be creating a series of landing pages that focus granularly on how Drupal creates success stories in particular industries. Look for more on this topic in coming months./p h3DrupalCon Vienna Site Launched/h3 pimg alt=Vienna 2017 Logo class=left height=141 src=/files/vienna-2017-logo-sm.jpg width=100 //p pAs is tradition, during the closing session of DrupalCon Dublin we announced that the next DrupalCon in Europe will be held in Vienna! We launched the splash page announcing the event at a href=https://vienna2017.drupal.orgvienna2017.drupal.org/a and we have information about sponsorship and hotel reservations already available./p pDrupalCon Vienna will happen from the 25th to 29th of September 2017, and we'll hope to see you there!/p h3More flexible project testing/h3 pimg alt= class=right src=/files/styles/grid-3/public/project-images/drupalci_0.png width=120px //p pWe've made a significant update to how tests are configured on the Automated Testing tab of any project hosted on Drupal.org. Automated testing, using the DrupalCI infrastructure, allows developers to ensure their code will be compatible with core, and with a variety of PHP versions and database environments. In October, we updated the ca href=https://www.drupal.org/node/2651208onfiguration options for module maintainers/a./p pMaintainers can now select a specific branch of core, a specific environment, and select whether to run the test once, daily, on commit, or for issues. Issues are limited to a single test configuration, to ensure that the code works in a single environment before being regression tested against multiple environments on on-commit or daily tests./p h3Better database replication and reliability/h3 pBehind the scenes, we've made some updates to our database cluster - part of our infrastructure standardization on Debian 8 environments managed in Puppet 4. We've made some improvements to replication and reliability - and while these changes are very much behind the scenes they should help maintain a reliable and performant Drupal.org./p h3Response to Critical Security Vulnerabilities/h3 pimg alt=DirtyCow Public Domain Logo class=left height=138 src=/files/dirty-cow-logo.png width=120 //p pWhen it rains, it pours—a maxim we take to heart in Portland, Oregon—and that was especially true in the realm of security in October. The most widely known vulnerability disclosed was the 'a href=https://dirtycow.ninja/DirtyCow/a' vulnerability in the Linux kernel. A flaw in the copy-on-write system of the Linux kernel made it possible, in principle, for an unprivileged user to elevate their own privileges./p pNaturally, responding to this vulnerability was a high priority in October, but DirtyCow was not the only vulnerability disclosed, as security releases were also made for PHP, mariadb, tar, libxslt, and curl. We mitigated each of these vulnerabilities in short order./p h2Community Initiatives/h2 pa href=https://www.drupal.org/drupalorg/roadmap/community-initiativesCommunity initiatives/a are a collaboration; with dedicated community volunteers building improvements to Drupal.org with the architectural guidance and oversight of the Drupal Association engineering team./p h3Drupal 8 User Guide/h3 pThe Drupal 8 User Guide is getting very close to being available on Drupal.org. We are working closely with contributor a href=https://drupal.org/u/jhodgdonjhodgdon/a to resolve some a href=https://www.drupal.org/node/2757921perplexing inconsistencies/a between what we're seeing in our development environment and in our initial production deployment./p h3Dreditor/h3 pa href=https://drupal.org/u/markcarvermarkcarver/a who is currently leading the charge to port Dreditor features to Drupal.org, has invited anyone interested in contributing to join him in #dreditor on freenode IRC or the a href=https://github.com/unicorn-fail/dreditorDreditor GitHub/a./p h3Documentation Maintainership/h3 pFinally, we want to continue to encourage the community to a href=https://www.drupal.org/node/2682083become maintainers of Drupal documentation/a. If you are a developer interested in contributing code to the new documentation system, please a href=https://www.drupal.org/user/999848/contactcontact tvn/a./p p———/p pAs always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association a href=https://drupal.org/supportersSupporters/a, who made it possible for us to work on these projects./p pIf you would like to support our work as an individual or an organization, consider becoming a a href=https://assoc.drupal.org/membershipmember of the Drupal Association/a./p pFollow us on Twitter for regular updates: a href=https://twitter.com/drupal_org@drupal_org/a, a href=https://twitter.com/drupal_infra@drupal_infra/a/p /div/div/div

MTech, LLC: Categorizing Migrations According to Their Type

Fri, 11/11/2016 - 19:05
spanCategorizing Migrations According to Their Type/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempVery often in a migration of Drupal 6/7 to Drupal 8, have a need to run and test the migration many times. This applies more to sites that are very active, where site editors are updating or adding new content./p pKeep in mind that the Migration API in Drupal 8 offers a few paths to run migrations. The first is a user interface to make migrations through the path code/upgrade/code. Through this method, the migration process is once and you can not make any customizations./p pThe other method is to use drush to upgrade. And it is done by using these steps:/p/div spana title=View user profile. href=https://www.mtech-llc.com/blog/edys-meza lang= about=https://www.mtech-llc.com/blog/edys-meza typeof=schema:Person property=schema:name datatype= xml:lang=Edys Meza/a/span spanFri, 11/11/2016 - 12:05/span

NEWMEDIA: Using the Haversine Formula in Drupal 7

Fri, 11/11/2016 - 17:05
spanUsing the Haversine Formula in Drupal 7/span div class=field--field-featured-image field--type-image img alt=image of globes src=http://www.newmediadenver.com/sites/default/files/2016-11/photo-1439218162959-f94eda3a382a.jpeg width=5184 height=3456 typeof=foaf:Image //div spana title=View user profile. href=http://www.newmediadenver.com/user/77 lang= about=http://www.newmediadenver.com/user/77 typeof=schema:Person property=schema:name datatype= xml:lang=John Fiala/a/span spanFri, 11/11/2016 - 16:05/span div class=field--field-intro field--type-string-long The Haversine formula is one of the easiest to use pieces of complicated math I've had the pleasure to use. If you're not familiar with it, it's pretty simple in theory - it's an extension of the Pythagorean formula from a grid to the surface of a sphere, which basically means that you can use it to measure the distance between two points on a sphere (1). /div div class=field--body field--type-text-with-summary pBut what, I hear you ask through the secret microphone hidden in your keyboard, does this have to do with Drupal?  And the answer is - search.  I've worked on a number of projects over the years where users wanted to search for things which were some distance from a central point - a zip code, a city, or the like.  This can be done with apache solr these days, but sometimes apache solr isn't what you need. Either you’re not doing a keyword search and just filtering your nodes (show me all mexican restaurants near 12th and Vine) or else you don't think you need the extra complexity of adding an Apache Solr instance to the project.  An index of restaurants isn't a bad idea for an example, so let’s build one.  In the tradition of Drupal demos, we'll say we're creating a restaurant search engine, which we will name 'Shout'.  So, we spin up a copy of Drupal 7, set up the usual database, add a 'Restaurant' node type, download a href=https://www.drupal.org/project/fivestarFivestar/a* to do ratings, set up a few quick taxonomies (cuisine, price range [low, medium, high], and maybe style [sit-down, food court, fast food]) which we add to the restaurant node type./p h3Step 1/h3 pCreate a node type with location information.  To store the address there’s two good options: the a href=https://www.drupal.org/project/locationLocation module/a, which grew out of CCK, and the a href=https://www.drupal.org/project/addressfieldAddress Field module/a, which comes from the Commerce module./p h3Step 2/h3 pAdd the latitude and longitude to the nodes - if you’re using the location module you can enable storing those values in the same field, but if you’re starting with the address field you need to add a field which stores that information.  I recommend the a href=http://www.drupal.org/project/geofieldGeofield module/a./p h3Step 3/h3 pFinally, you will need to set up geocoding - the process of assigning latitude and longitude based off of an address.  There’s plenty of services which will do this for you, and if you’re using the location module, then you can enable it there.  Alternately you can use the a href=https://www.drupal.org/project/geocoderGeocoder module/a to store these values./p h2Example/h2 pFollowing along with our Shout example, let's add the addressfield, geofield, and geocoder modules, which will also in turn require the a href=https://www.drupal.org/project/geophpgeoPHP/a and a href=https://www.drupal.org/project/ctoolsctools/a modules.  Add the Address field and tell it to store a postal address, set up a geofield on the restaurant node as well and set the widget to 'geocode from another field', and take a look at the configuration of geocoder in admin/config/content/geocoder.  You can use the google api in batch for free, as long as you don't get too crazy with the number of requests per day.  This being an example site, I think we'll be safe, but when doing a commercial site it's always best to read the Google terms of service,sign up for an API key, and close cover before striking./p p /p img alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=c9ba3fe7-c603-4477-888f-a2e1c187bbcb src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.34.15%20PM.png class=align-center /p /p pI've named the Address field field_address, and in a fit of originality I've named the geofield field_map_location.  Once I had everything set up, I entered a few local restaurants and ran cron to make sure that I was getting data in the field_data_field_map_location table - I suggest you do the same.  (Well, to be honest, at first I wasn't getting data, but that's why we test our examples when writing blog posts.)/p h3Step 4/h3 pOnce you've got locations set up, the next step is your search engine.  For this task I suggest the a href=https://www.drupal.org/project/search_apiSearch API module/a, which allows you to define your own indexes, and to switch search engines in the future as the need arrives.  You’ll also need the a href=https://www.drupal.org/project/search_api_dbSearch API DB/a and a href=https://www.drupal.org/project/search_api_pageSearch API Pages modules/a./p h3Step 5/h3 pWe'll start by setting up a service - in this case, just gave it an obvious name and select the Database engine./p p /p img alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=1d3986b9-ad76-4a82-ac74-a2d449aa1dfb src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.45.45%20PM.png class=align-center /h3 /h3 h3Step 6/h3 pThen we'll create an index - although Search API creates a Default node index when it's enabled, we want one just for restaurant nodes.  So we'll click on 'Add Index', give it a name of 'Restaurant Index', select that we want to index Restaurant Nodes, and put in a quick description to remind us of what it is, and select the server we just created./p p /p img alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=dc559562-9159-40ee-9a3a-7248df90d508 src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.47.30%20PM.png class=align-center /h3 /h3 h3Step 7/h3 pAfter that, go into index fields for the index and select at least the title and the 'main body text' for indexing - I suggest including the address as well.  It's also important to add the Location field that you're using, and include the latitude and longitude values in the index.  When you can't find a field, expand the 'Add Related Fields' at the bottom and look for them there, and make sure you save your changes before leaving the page./p p /p pimg alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=d262176b-e04e-4d92-b1b7-f78e5594d5d7 src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.49.35%20PM.png //p img alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=ea2fc4e5-57a3-496a-8970-632f3c1644fe src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.55.10%20PM.png class=align-center /p /p pFinally, on the filter tab I suggest excluding unpublished nodes, as well as Ignoring case and adding the HTML filter./p pWith all that setup, use the search_api_pages module to set up a search page for the index you've constructed./p p /p img alt=image of haversine formula implementation data-entity-type=file data-entity-uuid=9ace7dc0-95d6-40d4-8cc8-7c56d76771de src=http://www.newmediadenver.com/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%204.02.23%20PM.png class=align-center /pWith data and index set up, it's time to add the location filtering.  Let's add a quick block to filter with:/p pre class=language-php code /** * Implements hook_block_info(). */ function example_block_info() { return [ 'location' = [ 'info' = t('Search Location Filter'), 'cache' = DRUPAL_CACHE_GLOBAL, ], ]; } /** * Implements hook_block_view(). */ function example_block_view($delta) { if ($delta == 'location') { $block['subject'] = t('Filter by location:'); $block['content'] = drupal_get_form('example_location_filter_form'); } return $block; } /** * This form allows the user to restrict the search by where they are. */ function example_location_filter_form($form, $form_state) { $form['center'] = array( '#type' = 'textfield', '#title' = t('From'), '#description' = t('Enter a zip code or city, state (ie, Denver, CO)'), '#maxlength' = 64, '#size' = 20, '#default_value' = isset($_GET['center']) ? $_GET['center'] : '', ); $distances = [5, 10, 20, 50]; foreach ($distances as $distance) { $options[$distance] = t('Within @num miles', array('@num' = $distance)); } $form['radius'] = [ '#type' = 'radios', '#title' = t('Distance:'), '#options' = $options, '#default_value' = isset($_GET['radius']) ? $_GET['radius'] : 5, ]; $form['submit'] = [ '#type' = 'submit', '#value' = t('Filter'), ]; $parameters = drupal_get_query_parameters(NULL, ['q', 'radius', 'center']); $form['clear'] = [ '#type' = 'markup', '#markup' = l(t('Clear'), current_path(), array('query' = $parameters)), ]; return $form; } /** * Validation handler for location filter. */ function example_location_filter_form_validate($form, $form_state) { if (!empty($form_state['values']['center'])) { $location = trim($form_state['values']['center']); // Is this a postal code? $point = example_location_lookup($location); if (empty($point)) { form_set_error('center', t('%location is not a valid location - please enter either a postal code or a city, state (like Denver, CO)', ['%location' = $location])); } } } /** * Form submit handler for location filter form. */ function example_location_filter_form_submit($form, $form_state) { $parameters = drupal_get_query_parameters(NULL, ['q', 'radius', 'center']); if (!empty($form_state['values']['center'])) { $parameters['radius'] = $form_state['values']['radius']; $parameters['center'] = $form_state['values']['center']; } $form_state['redirect'] = [current_path(), ['query' = $parameters]]; }/code /pre pIn this case, codeexample_location_lookup()/code looks for a latitude/longitude pair for a given location entered by the user, which I'm leaving as an exercise for the reader in hopes to keep this post short.  It should return an array with the keys 'lat' and 'long', at least.  For testing, you can have it return a fixed point until you've got that setup, like:/p pre class=language-php codefunction example_location_lookup($location) { return array('lat' = 39.7392, 'long' = -104.9903); }/code /pre pSo, now we can return to the a href=https://en.wikipedia.org/wiki/Haversine_formulaHaversine formula/a.  Once you've got the position entered and passed along, it's time to match it against our restaurants.  Doing complex math is hard, so after a few moments of thought, we realize that anything more than the radius miles north or south, or east and west, of the center point will be too far away to bother including in the search radius, so we'll first filter on a range of latitude and longitude around the center, and then filter by the haversine formula to knock out everything outside of the circle.  For implementing the Haversine formula in SQL, I'm indebted to Ollie Jones of Plum Island Media, who does a great job of a href=http://www.plumislandmedia.net/mysql/haversine-mysql-nearest-loc/demystifying the formula here/a./p pre class=language-php code/** * Implements hook_search_api_db_query_alter(). */ function example_search_api_db_query_alter(SelectQueryInterface $db_query, SearchApiQueryInterface $query) { $field_name = variable_get('example_location_field_name', 'field_location'); // Do we have a location? if (isset($_GET['center']) isset($db_query-alterMetaData['search_api_db_fields'][$field_name . ':lat'])) { $location = $_GET['center']; $radius = isset($_GET['radius']) is_numeric($_GET['radius']) ? $_GET['radius'] * 1 : 5; $point = example_location_lookup($location); if (!empty($point)) { // Basically, we make a subquery that generates the distance for each adventure, and then restrict the results from that to a bounding box. // Then, once that subquery is done, we check each item that survives the bounding box to check that the distance field is less than our radius. $latitude_field = $db_query-alterMetaData['search_api_db_fields'][$field_name . ':lat']['column']; $longitude_field = $db_query-alterMetaData['search_api_db_fields'][$field_name . ':lon']['column']; $table = $db_query-alterMetaData['search_api_db_fields'][$field_name . ':lat']['table']; $sub_query = db_select($table, 'haversine'); $sub_query-fields('haversine', ['item_id', $latitude_field, $longitude_field]); // Calculate a distance column for the query that we'll filter on later. $sub_query-addExpression(69.0 * DEGREES(ACOS(COS(RADIANS(:p_lat)) * COS(RADIANS($latitude_field)) * COS(RADIANS(:p_long - $longitude_field)) + SIN(RADIANS(:p_lat)) * SIN(RADIANS($latitude_field)))), 'distance', [':p_lat' = $point['lat'], ':p_long' = $point['long']]); // Filter out anything outside of the bounding box. $sub_query-condition($latitude_field, [$point['lat'] - ($radius / 69.0), $point['lat'] + ($radius / 69.0)], 'BETWEEN'); $sub_query-condition($longitude_field, [$point['long'] - ($radius / 69.0), $point['long'] + ($radius / (69.0 * cos(deg2rad($point['lat']))))], 'BETWEEN'); $db_query-join($sub_query, 'search_distance', 't.item_id = search_distance.item_id'); $db_query-condition('search_distance.distance', $radius, ''); } } }/code /pre pAnd there you go.  In my example, I set up the page as search, and tested with the url: search/diner?radius=500center=denver, and got back the Denver Diner, but not the New York Diner./p pem* It's not certain depending on which version of /ememfivestar/emem you get, but you might need to download the a href=http://www.drupal.org/project/entityentity /a/ema href=http://www.drupal.org/project/entityemapi/em/aema href=http://www.drupal.org/project/entity module/a as well. Just in case you're following along at home./em/p pem(1) We're just going to ignore the fact that the Earth isn't a perfect sphere for the purposes of this article - there's a degree of error that may creep in, but honestly if you're trying to find locations within 300 miles of a city, there's already enough error creeping in on the 'center' of a city that the close approximation of the Haversine formula is a relief./em/p /div

CiviCRM Blog: The quest for performance improvements

Fri, 11/11/2016 - 16:02
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pAfter the socialist party upgraded civicrm to version 4.6 a month ago they are experiencing performance issues. In this blog I will round up our quest for performance improvements. But before that some facts about their installation./p ulli +/- 350.000 contacts/li li +/- 300 users who can access civicrm and see members in their local chapter/li li +/- 2700 groups/li li There are several campaign websites linked to CiviCRM and one of their successfully campaigns leads to 7500 new contacts per week in the system/li li Running  on a VPS with 4 CPU cores and 8GB of RAM/li li around 40 active extensions/li /ulpSince yesterday we have added New Relic as a monitoring tool. With New Relic we can monitor and look back in the history. We can also see all the details in each request. So we can analyze the performance. /p pimg alt= src=https://civicrm.org/sites/civicrm.org/files/Screenshot%20from%202016-11-11%2015-38-49.png //p pAbove is the screenshot of the monitoring of the last 24 hours.  The red/rose squares indicates when the overall performance is poor (more than 2 seconds per request). We also see that MySQL has a big part in the  largest peaks./p pimg alt= src=https://civicrm.org/sites/civicrm.org/files/Screenshot%20from%202016-11-11%2015-50-13.png //p pimg alt= src=https://civicrm.org/sites/civicrm.org/files/Screenshot%20from%202016-11-11%2015-50-43.png //p pThe screenshots above shows the slowest queries and the slowest mysql operations. One observation is that it looks like that the MySQL delete statements are slowing the system down./p pIt is not clear what exactly those delete statements are or what is causing those to be slow. That is one of the questions to look into next./p pAnother thing we want to look into is the tuning of the MySQL database configuration and we also want to get familiar with New Relic./p pDo you have any thoughts? Or did you do any performance improvements you did? We can use any help and we will keep posted about our quest for performance./p p /p /div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div/div/div

Ixis.co.uk - Thoughts: Using Paragraphs in Drupal 8

Fri, 11/11/2016 - 15:25
div class=paragraph paragraph--type--text paragraph--view-mode--default cta-style--default div class=container div class=row div class=col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 div class=field field--name-field-text field--type-text-long field--label-hidden field--itempWhen we received the new designs for the Ixis site it was evident that they contained separate design elements which were shared across several pages, from the homepage to departmental landing pages to the “About us” page. We thought this was a perfect use case for the a href=https://www.drupal.org/project/paragraphsParagraphs/a module, which allows site editors to emchoose on-the-fly between predefined Paragraph Types… instead of putting all of their content in one WYSIWYG body field./em/p pMost content types on the new Ixis site contain a Paragraphs field. An editor can create multiple Paragraphs of any defined type and sort them to specify the elements and layout of the node's content./p /div /div /div /div /div div class=paragraph paragraph--type--image paragraph--view-mode--default div class=container div class=row div class=col-sm-12 col-md-10 col-md-offset-1 div class=field field--name-field-image field--type-image field--label-hidden field--item img src=http://www.ixis.co.uk/sites/default/files/paragraphs/paragraphs.png width=1042 height=930 alt=Adding text and testimonial paragraphs class=img-responsive //div /div /div /div /div div class=paragraph paragraph--type--text paragraph--view-mode--default cta-style--default div class=container div class=row div class=col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 div class=field field--name-field-text field--type-text-long field--label-hidden field--itempParagraph types can be anything from a simple text block or image to a complex and configurable slideshow. Paragraph types are essentially fieldable entities and the Paragraphs module allows the creation of these types. Each defined type can have it’s own set of relevant fields, all added via the Drupal UI and exporting to config./p pSo, to support the elements outlined in our page designs we added Paragraph types for:/p ullistrongCall to action/strong - areas of bold background colour and large text;/li listrongDownload/strong - a downloadable asset or file;/li listrongGallery/strong - a gallery list of images;/li listrongImage/strong - a single, responsive image;/li listrongTestimonial/strong - a quote or testimonial;/li listrongText/strong - basic, filtered HTML edited with CKEditor;/li listrongText with Callout/strong - regular body text coupled with a styled callout;/li listrongTwitter/strong - an embedded Twitter widget;/li listrongVideo/strong - an embedded video from a 3rd-party site such as YouTube./li /ulpAll these Paragraph types give editors some flexibility and choice when authoring a page designed with several of these elements./p h2Styling/h2 pThe rendered output of Paragraphs entities can be altered using a strongparagraph.html.twig/strong file in the site’s theme. For example:/p pre code class=language-twig{% set classes = [ 'paragraph', 'paragraph--type--' ~ paragraph.bundle|clean_class, view_mode ? 'paragraph--view-mode--' ~ view_mode|clean_class, cta_style ? 'cta-style--' ~ cta_style|clean_class, ] %} div {{ attributes.addClass(classes) }} div class=container {% block paragraph_content %} div class=row div class=col-sm-12 {{ content }} /div /div {% endblock paragraph_content %} /div /div /code/prepThe rendered output of each individual Paragraph type can also be affected using a suggested Twig template, for example we have strongparagraph--testimonial.twig.html/strong for appropriately rendering a testimonial quote and cited author./p pIn some places we’ve used a field combined with a preprocess to provide multiple variations of the same paragraph. You can see this in action above with the codecta_style/code variable which gives us a standard or inverted dark style for Call to action paragraphs./p h2Content Migration/h2 pDuring the initial content migration, we migrated directly into a Text Paragraph in the new Paragraphs field for some content types such as blog posts. To do this, we needed a new process plugin:/p pre code class=language-php/** * Saves D6 Page Body field to D8 Page Paragraph (Textarea) field. * * @MigrateProcessPlugin( * id = node_paragraph_textarea * ) */ class NodeParagraphTextarea extends ProcessPluginBase { ... } /code/prepWe used a a href=https://gist.github.com/pfaocle/4b945309f18716a5f24c759fa0d9ae8bslightly modified version/a of the example plugin in a href=http://www.amitgoyal.in/2016/03/d6-d8-migration-d6-body-d8-paragraph-type-text.htmlthis article by Amit Goyal/a. Then in our strongmigration.d6.node__blog.yml/strong we removed:/p pre code class=language-yaml... body/format: plugin: migration migration: d6_filter_format source: format body/value: body body/summary: teaser .../code/prepand replaced with the new process plugin to instead migrate the source body into the Paragraphs field:/p pre code class=language-yaml... field_paragraphs: plugin: node_paragraph_textarea source: body .../code/prepIn summary, Paragraphs is a great alternative to a single WYSIWYG editor for site editors who want to be able to lay out complex pages combining text, images, video, audio, quotes or any other advanced component. Here's some further reading:/p ullia href=http://flocondetoile.fr/blog/improve-user-experience-paragraphs-drupal-8Improve user experience with Paragraphs for Drupal 8/a/li lia href=https://www.drupal.org/project/paragraphsParagraphs project page/a/li lia href=https://www.drupal.org/node/2444881Paragraphs in Drupal 8/a documentation/li /ul/div /div /div /div /div

Valuebound: How Drupal can be used to develop data driven web application

Fri, 11/11/2016 - 13:44
pEverything about building a website or a web application is not just coding and hosting an app. It includes a thorough ecosystem research and co-designing a scalable product to cooperate and compete within the networked internet of things. Drupal is the perfect platform to build large systems like CRM system or ERP system, which is complicated as well as data oriented./p pThe data acquired is first organized appropriately and then analyzed to make essential business decisions. Various underlying platforms serve critical aspects in the complete system, which work really well with applications developed with Drupal.  Management, governance and security are always on the top of the list when it comes to media and entertainment companies./p pBuilding a complex website with Drupal…/p

Sooper Drupal Themes: New Logistics Design with Glazed 2.5.4 and Carbide Builder 1.0.15

Fri, 11/11/2016 - 04:49
div class=field-content-banner glazed-util-float-right float-right a href=http://bit.ly/1MRJwVWimg typeof=foaf:Image class=img-responsive src=http://www.sooperthemes.com/sites/default/files/default_images/sooper-theme-banner-2016-300x140.png width=300 height=140 alt= //a /div div class=field-body pFirst of all, sorry for the late blog. This blog refers to the a href=http://www.sooperthemes.comdrupal themes/a updates on November 1st. I'm currently travelling China and while I rushed to get the release out before my departure, the blog had to wait a little longer./p pstrongTL;DR/strong/p ul lia href=http://glazed-logistics.sooperthemes.com/ rel=nofollowGlazed Logistics Demo/a/li lia href=http://www.sooperthemes.com/documentation/changelog rel=nofollowCHANGELOGnbsp;Glazed Theme/a/li lia href=http://www.sooperthemes.com/content/adding-new-carbide-snippets-sidebar rel=nofollowCHANGELOG Carbide Builder/a/li /ul h3 class=st-title bg-glazedGlazed Logistics Design And Reaching Product-Market Fit/h3 div class=field-blog-image field-inline first last img typeof=foaf:Image class=img-responsive src=http://www.sooperthemes.com/sites/default/files/styles/bootstrap3_col9/public/product-images/main-screenshot/main-screenshot-v1.jpg?itok=B4b_I1Xv width=848 height=535 / /div pWith the release of the Logisticsnbsp;designnbsp;we addded a unique and beautiful theme to our collection while at the same time the core products only needed minor adjustments. This is annbsp;indication that the products have achieved a state of stability and product-market fit. SooperThemes now pivots to focus more on creating new designs and features based on the currentnbsp;core products. Of course this doesn't mean we don't add new features at all, there will always be a need for change in a turbulent environment like Drupal frontendnbsp;development.nbsp;/p h3 class=st-title bg-glazedCreating Great Design For The Drupal Community/h3 pIn the past year we have laid the neccessary ground work that is needed to provide the Drupal community with much desired high quality designs. The site building workflow with Glazed theme and Carbide Builder is incrediblynbsp;fast, efficient and produces precisely designednbsp;responsive Drupal websites. This doesn't just improve productivity of our customers and our customers' content creatorsnbsp;but also our own productivity.nbsp;At this point we completely design our Glazed demos using just the theme and drag and drop builder, no photoshop or coding. This big gain in productivity really allows us to focus more on art direction, photography and design. For our logistics demo we created a set of unique 3D isometric line icons, and we curated a collection of beautiful stock photography to really create the right atmosphere for our niche design. We can afford to produce such detailed niche designs thanks to the productivity gains we made with Glazed theme and Carbide Builder. Our goal of closing the gap with the top tier multi-purposenbsp;WordPress themes is now appearing on the horizon.nbsp;nbsp;/p h3 class=st-title bg-glazedGlazed Magazine Component and Drupal 8/h3 pThis stability also means we will start planning our Drupal 8 upgrade and migration paths. The next couple of months we will focus on ramping up the design release cycle and on adding a new magazine component to our Glazed CMS distribution.nbsp;We want to avoid spending months on Drupal 8 migration while the Drupal 7 product offering is only at an 80% market fit. We are aiming tonbsp;offer more than just great theme settings and drag and drop functionality:nbsp;expect a multitude of niche designs with fully features demo content in a turn-key installation profile. We strive to become Drupal's first Mega Theme./p h3 class=st-title bg-glazedValue As A Service/h3 pAs a subscription Drupalnbsp;shop, we really focus on building long-term relationships with our customers and with the Drupal community at large. We make decisions based on what we think provides the most value to the most people. An important part of making those decisions in listening to the community. If you can spare a minute, please write a comment on the blog and describe what you would value the most in a Drupal theme. One feature I'm think about adding to the distribution is ready-made translation configuration as an optional component in the Glazed CMS distribution, let me know in the comments if that is something you would value./p /div

Drupal core announcements: Drupal core security release window on Wednesday, November 16, 2016

Thu, 11/10/2016 - 23:44
div class=field field-type-datestamp field-field-start7 div class=field-items div class=field-item odd div class=field-label-inline-first Start:nbsp;/div span class=date-display-start2016-11-15 12:00/spanspan class=date-display-separator - /spanspan class=date-display-end2016-11-17 12:00 UTC/span /div /div /div div class=field field-type-userreference field-field-organizers div class=field-labelOrganizers:nbsp;/div div class=field-items div class=field-item odd a href=/user/1639494 title=View user profile.cilefen/a /div div class=field-item even a href=/user/24722 title=View user profile.xjm/a /div div class=field-item odd a href=/user/1370143 title=View user profile.stefan.r/a /div div class=field-item even a href=/user/4521 title=View user profile.catch/a /div div class=field-item odd a href=/user/14705 title=View user profile.David_Rothstein/a /div /div /div div class=field field-type-text field-field-event-type div class=field-labelEvent type:nbsp;/div div class=field-items div class=field-item odd Online meeting (eg. IRC meeting) /div /div /div pThe monthly security release window for Drupal 8 and 7 core will take place on Wednesday, November 16./p pThis does not mean that a Drupal core security release will necessarily take place on that date for any of the Drupal 8 or 7 branches, only that you should watch for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release)./p pThere will be no bug fix or feature release on this date. The next window for a Drupal core patch (bug fix) release for all branches is Wednesday, December 07. The next scheduled minor (feature) release for Drupal 8 will be on Wednesday, April 5./p pa href=https://www.drupal.org/drupal-6-eolDrupal 6 is end-of-life/a and will not receive further security releases./p pFor more information on Drupal core release windows, see the documentation on a href=http://drupal.org/documentation/version-info#whenrelease timing/a and a href=http://drupal.org/node/1173280security releases/a, and the a href=http://groups.drupal.org/node/260803discussion/a that led to this policy being implemented./p

Acquia Developer Center Blog: A walk through New Orleans with Shyamala Rajaram

Thu, 11/10/2016 - 21:46
div class=field field-name-field-podcast-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image class=img-responsive src=https://dev.acquia.com/sites/default/files/styles/blog_node_image/public/podcast/images/shyamala_rajaram_nola_2016.png?itok=WgkPVHLt width=340 height=260 alt=Shyamala Rajaram and Jeffrey A. quot;jamquot; McGuire on the go in NOLA. title=Shyamala Rajaram and Jeffrey A. quot;jamquot; McGuire on the go in NOLA. //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp A conversation with our newest community representative to the Drupal Association Board, Director at Large, a href=https://www.drupal.org/u/shyamalaShyamala Rajaram/a, recorded walking to the New Orleans Convention Center during DrupalCon NOLA 2016. /p p Yes, I can see I need to get a gimbal or a steady cam, but the video is still fun (for me anyway) :-) /p h2 Our conversationbr //h2 piframe width=640 height=360 src=https://www.youtube.com/embed/D1cjJQmUfug frameborder=0/iframe/p h2 Mentioned in the conversationbr //h2 ulliAcquia Podcast: Drupal Association 2016 election - a href=https://dev.acquia.com/podcast/election-commentary-drupal-association-director-large-2016Election Commentary: Drupal Association Director at Large 2016/a /li li a href=https://axelerant.com/the-geek-voice/meet-shyamala-drupal-association-director-at-large/Geek Voice Episode 01, Meet Shyamala/a - My favorite Indian podcast. Parth and Hussain talk with, the first person outside of the European or North American timezones to be elected and she’s from India! :-) /li li a href=http://www.unimitysolutions.com/UniMity/a - Shyamala's company /li li a href=http://www.unimity.com/people-power.htmlUniMity PeoplePower/a platform - Shyamala's company's Drupal-based product. /li liDries Buytaert a href=http://buytaert.net/state-of-drupal-presentation-may-2016State of Drupal presentation (May 2016)/a post with video and slides. /li /ulh2 More Shyamala on the webbr //h2 ulli a href=https://www.linkedin.com/in/shyamalarajaramShyamala Rajaram on LinkedIn/a /li liShyamala has several a href=http://www.slideshare.net/shyamdrupalpresentations on Slideshare/a. /li li a href=http://www.srijan.net/webinar/drupal-versatile-enterprise-content-management-solution/Unraveling Drupal as a Versatile Enterprise Solution/a - Srijan webinar with Shymala /li /ulh2 Correctionbr //h2 p Rakesh James has trained more than 600 new Drupalists - I said 200 in the recording. /p h2 Transcriptionbr //h2 p A full transcription of the conversation will be added shortly! /p /div/div/divdiv class=field field-name-field-podcast-audio field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenaudio controls=controlssource src=https://dev.acquia.com/sites/default/files/podcast-audio/shyamala_rajaram_nola_2016.mp3 type=audio/mpeg //audio/div/div/divdiv class=field field-name-field-skill-level field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelSkill Level:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/skill-level/beginner typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Beginner/a/divdiv class=field-item odda href=/skill-level/intermediate typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Intermediate/a/divdiv class=field-item evena href=/skill-level/advanced typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Advanced/a/div/div/div

Lullabot: WordPress vs Drupal

Thu, 11/10/2016 - 21:00
Matt and Mike site down with a number of cross-functional Drupal and WordPress developers to talk about the differences and similarities between the platforms, concepts, and communities.

Drupal Association News: Buy The Gift of Drupal

Thu, 11/10/2016 - 20:15
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg alt= src=https://assoc.drupal.org/files/Drupal8Mens_1.png style=width: 200px; height: 224px; float: left; margin: 10px; /We’re raising funds for 2017 Drupal community programs by clearing out our Drupal merchandise. Everything must go to make room for new things to come. What better time for a big Drupal swag sale, than holiday time! Give your friend, co-worker, or favorite module maintainer a Drupal hoodie, coffee mug, t-shirt, and more.br /br / All merchandise is 50% off. Just use the coupon code BUYBYE. Sale ends 12/31!/p pbr /a class=link-button href=http://drupalstore.org/Visit the Store/a/p /div/div/div

Leopathu: 6 Essential Drupal Interview Questions*

Thu, 11/10/2016 - 19:26
1. Name and describe the five conceptual layers in a Drupal system.

Four Kitchens: Frontend Style Guide Miniseries: Part Two: KSS Node

Thu, 11/10/2016 - 18:32
div class=field-lead-image img typeof=foaf:Image src=https://www.fourkitchens.com/blog/sites/default/files/blog/lead-images/frontendmini_2.png width=800 height=300 alt=Frontend miniseries: style guides / /div div class=field-body pWelcome to part two of our frontend miniseries on style guides! In this installment, we will cover the pros and cons of using KSS Node. a href=https://www.fourkitchens.com/blog/article/frontend-style-guide-miniseries-part-two-kss-node[…]/a/p /div

Vardot: 4 Patches to Get Entityqueue on Drupal 8 Behave as it Should Be (as of November 10, 2016)

Thu, 11/10/2016 - 17:53
a href=/blog/categories/how-toHow to/a, a href=/blog/categories/resourcesResources/a span class=read-timeRead time: 4 minutes/span pTLDR;/p olliAdd Reverse order in admin view option: a href=https://www.drupal.org/node/2821631https://www.drupal.org/node/2821631/a/li liFix a problem that causes the queue to be always required when using Limit to a specific entity queue: a href=https://www.drupal.org/node/2478685https://www.drupal.org/node/2478685/a/li liAdd a tab for Entityqueue on content types: a href=https://www.drupal.org/node/2145441https://www.drupal.org/node/2145441/a/li liMake Contextual links work for views using Entityqueue: a href=https://www.drupal.org/node/2825773https://www.drupal.org/node/2825773/a/li /olp /p pWhen using the Entityqueue module in Drupal 8 as a tool for editors and site admins to order content, you will end up working on the following use cases:/p ullistrongUse case 1: /strongUse Entityqueue as a filter: shows only the items chosen in the queue./li listrongUse case 2: /strongUse Entityqueue as a loose sorting tool: does NOT limit the items based on queue, but prioritizes the items chosen in the queue to be displayed first, then shows the rest, perhaps in a reverse chronological order./li /ulpThese are the most common use cases we use at Vardot for our clients when we build a site./p pstrongUse case 1/strong works perfectly if you use Entityqueue as is./p pHowever, stronguse case 2/strong does not work properly. Therefore, we have contributed (or contributed to), two patches that would make life easier to build a solid experience using the Entityqueue module in Drupal 8./p pAdded to that, we also patched two missing features that existed in Nodequeue, and should now exist in Entityqueue for Drupal 8./p pNote: this post was written in November 10, 2016, which until this date, these patches are not yet committed to Entityqueue. Please review the patches, we hope that they get committed and become part of the next Entityqueue release./p h31. Queue is always required when using Limit to a specific entity queue/h3 puIssue link:/u a href=https://www.drupal.org/node/2821631https://www.drupal.org/node/2821631/a/p pNeeded for stronguse case 2/strong, you will most likely need your view to limit results to only items in the entity queue your joining in./p pimg alt=Limit to a specific entity queue - Drupal 8 Entityqueue title=Limit to a specific entity queue - Drupal 8 Entityqueue height=743 width=999 class=media-element file-default img-responsive typeof=Image src=https://www.vardot.com/sites/default/files/entityqueue-2821631.png //p h3 /h3 h32. Get the good old Reverse order in admin view option/h3 puIssue link:/u a href=https://www.drupal.org/node/2478685https://www.drupal.org/node/2478685/a/p pFor stronguse case 2/strong, this option will come in handy, since you will be sorting in reverse chronological order after the items in the queue are shown first.br / Therefore, this nice workaround allows you check Reverse order in admin view to ensure the items in queue appear first in view when you sort./p pimg alt=Reverse order in admin view - Drupal 8 Entityqueue title=Reverse order in admin view - Drupal 8 Entityqueue height=496 width=759 class=media-element file-default img-responsive typeof=Image src=https://www.vardot.com/sites/default/files/entityqueue-2478685.png //p h3 /h3 h33. Get the good old Nodequeue tab to appear along with content tabs/h3 puIssue link:/u a href=https://www.drupal.org/node/2145441https://www.drupal.org/node/2145441/a/p pIf I'm an editor or a site admin, it wouldn't make sense to me to see the queues that I can add a piece of content to./p pThis tab has been missed from Entityqueue, now it comes back./p pimg alt=Entityqueue tab - Drupal 8 Entityqueue title=Entityqueue tab - Drupal 8 Entityqueue height=431 width=1010 class=media-element file-default img-responsive typeof=Image src=https://www.vardot.com/sites/default/files/entityqueue-2145441.png //p h34. Get Contextual Links to send you directly to the queue edit page/h3 puIssue link:/u a href=https://www.drupal.org/node/2825773https://www.drupal.org/node/2825773/a/p pPlans for this is to integrate with the new outside-in approach of Drupal 8.2 using the Settings Tray module./p pThis patch provides you as an editor or site admin, to go directly to the queue from the front end using the contextual links, instead of searching for the queue by its name from the admin view./p pimg alt=Entityqueue Contextual links - Drupal 8 Entityqueue title=Entityqueue Contextual links - Drupal 8 Entityqueue height=486 width=867 class=media-element file-default img-responsive typeof=Image src=https://www.vardot.com/sites/default/files/resize/entityqueue-2825773-867x486.png //p p /p p /p pLet's hope these patches get committed and pushed to Entityqueue module./p pThis tab has been missed from Entityqueue, now it comes back./p Tags:nbsp; a href=/blog/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a a href=/blog/tags/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 8/a a href=/taxonomy/term/236 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a div class=field field-name-title-field field-type-text field-label-above clearfix div class=field-label Title:nbsp; /div div class=field-item even 4 Patches to Get Entityqueue on Drupal 8 Behave as it Should Be (as of November 10, 2016) /div /div