Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 28 min 42 sec ago

Evolving Web: Drush Commands for Themers and Site Builders

Thu, 05/26/2016 - 16:02
a href= img src= width=220 height=97 alt=Drush Commands for Themers and Admins typeof=Image class=img-responsive / /apMost people think that using the strongdrush/strong command-line tool is only something hardcore developers do, but it turns out it's also super-helpful for site builders and theme developers too! In my experience, using drush will strongspeed up from 3 to 10 times usual Drupal Admin tasks/strong, compared with visiting the Drupal admin pages in the browser. /pa href= hreflang=enread more/a

James Oakley: Getting rid of Drupal's PHP Filter input format

Thu, 05/26/2016 - 11:54
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpDrupal 7 and below came with an optional module you can use in your input formats - the PHP Filter. This allows you to put PHP code into the content of your webpages, and Drupal will process the PHP before rendering the page./p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelBlog Category:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/categories/drupal_planetDrupal Planet/a/div/div/div

LevelTen Interactive: DrupalCon[densed] 2016: The Best Project Management Sessions

Thu, 05/26/2016 - 07:00
img typeof=foaf:Image src= width=600 height=300 alt=drupalcon project managment / p dir=ltrspan id=docs-internal-guid-b7303028-e877-1dfe-40e0-ec062f81ca95What do you get when you put two Project Managers in one hotel room for a week at DrupalCon? A lot of work, a lot of laughter, and a lot of learning. Don’t worry, we didn’t kill each other… yet./span/p p dir=ltrspan id=docs-internal-guid-b7303028-e877-1dfe-40e0-ec062f81ca95With our days spent in sessions and nights spent on Bourbon Street or answering client emails (not at the same time), DrupalCon New Orleans was a truly illuminating experience. I came to LevelTen a year ago not even knowing what “/span...a href=/blog/kendall-westbrook/drupalcondensed-2016-best-project-management-sessions class=more-linkRead more/a/p

Jeff Geerling's Blog: Highly available Drupal on a Raspberry Pi Cluster - phptek 2016 session

Thu, 05/26/2016 - 02:52
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=text-align: center;img src= width=500 height=345 alt=Raspberry Pi Dramble Cluster with Mini Raspberry Pi Zero Cluster class=insert-image //p pAnother year, another field trip for the a href= Dramble/a—my 5-Raspberry-Pi cluster! I presented a session titled emHighly available Drupal on a Raspberry Pi Cluster/em at a href=[tek] 2016/a, which just so happens to have moved to my hometown, St. Louis, MO this year!/p pFor this presentation, I remembered to record the audio using a lav mic plugged into my iPhone, as well as iShowU to record what was on my screen. Sadly, I didn't have a secondary camera to capture the Pi Dramble itself, but you can glance at all the other a href='Let's build a Pi Cluster' videos/a if you want to see it in action!/p pHere's a video recording of the presentation:/p/div/div/div

Savas Labs: Installing XHProf to profile your Drupal module

Thu, 05/26/2016 - 02:00
p img src= alt=an XHProf callgraph First part in a series of how to use XHProf effectively within a VM for a Drupal website. a href= reading…/a /p frontpage posts for the Drupal planet: Gábor Hojtsy: Winner of the 2016 Aaron Winborn Award

Thu, 05/26/2016 - 00:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe Aaron Winborn Award was created in 2015 after the loss of one of one of the Drupal community’s most prominent members, Aaron Winborn, to Amyotrophic Lateral Sclerosis (also referred to as Lou Gehrig's Disease in the US and Motor Neuron Disease in the UK). Aaron’s commitment to the Drupal project and community made him the epitome of our unofficial motto: Come for the code, stay for the community. The a href= rel=nofollowCommunity Working Group/a with the support of the a href= rel=nofollowDrupal Association/a came together to honor Aaron's memory by establishing the Aaron Winborn Award, which annually recognizes an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community./p pNominations were opened in March, giving community members the opportunity to nominate people they believe deserve the award, which were then voted on by the members of the Community Working Group, along with previous winners of the award. /p pWe are pleased to announce that the 2016 recipient of the Aaron Winborn Award is Gábor Hojtsy. During the closing session of DrupalCon New Orleans, Community Working Group members presented the award to Gábor. The award was accompanied by a free ticket to DrupalCon, which he donated to Bojhan Somers./p pGábor was described in his nomination as an amazing community connector who is passionate about empowering others, stepping aside and allowing others the space and support to lead, and celebrating even the small wins that people who work with him achieve. The stellar work and leadership he displayed on the D8 Multilingual Initiative, managing sprints, Drupal events and setting up a href= are just a few of the ways that this tireless Drupal contributor has been making an enormous impact in our community for more than a decade./p pWe hope you will join us in congratulating Gábor, who has demonstrated personal integrity, kindness, and above-and-beyond commitment to the Drupal community in abundance./p/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/div

Web Wash: Presentation: Search in Drupal 8

Wed, 05/25/2016 - 22:03
div class=field field-name-field-ww-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpAt this month's a href= Drupal meet up/a I did a presentation about Search in Drupal 8. In the video, I explain three ways you can create a search page, they are as follows./p p1#46; Core Search/p pThe core Search module which comes with Drupal has some new functionality in Drupal 8. The biggest change is the ability to a href= custom search pages/a without using any other module./p p2#46; Views Filter/p pA common way to build search pages in Drupal 7 was to create a views page and use the Search Keywords filter in views. This can still be done in Drupal 8 and best of all Views is now part of core./p p3#46; Search API/p pThe a href= API/a module is used to create powerful search pages and it's highly extensible. It is emthe/em module to learn and use for building search pages./p /div/div/div Drupal 6 security update for XML sitemap!

Wed, 05/25/2016 - 18:26
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpemAs you may know, a href= 6 has reached End-of-Life (EOL)/a which means the Drupal Security Team is no longer doing Security Advisories or working on security patches for Drupal 6 core or contrib modules - but the a href= 6 LTS vendors/a are and we're one of them!/em/ppstrongToday, there is a Moderately Critical security release for a href= sitemap/a to fix a Cross-Site Scripting (XSS) vulnerability./strong/ppThe module doesn't sufficiently filter the URL when it is displayed in the sitemap./ppThis vulnerability is mitigated if the setting for Include a stylesheet in the sitemaps for humans. on the module's administration settings page is not enabled (the default is enabled)./ppstrongDownload the patch for XML Sitemap a href= (also works with 6.x-2.1, the latest release), a href= or a href= you have a Drupal 6 site using the XML sitemap, we recommend you update immediately! We have already deployed the patch for all of our Drupal 6 Long-Term Support clients. :-)/ppstrongIf you'd like all your Drupal 6 modules to receive security updates and have the fixes deployed the same day they're released, please a href= out our D6LTS plans/a./strong/ppemspanNote/span: if you use the a href= module (totally free!), you'll be alerted to these and any future security updates, and will be able to use drush to install them (even though they won't necessarily have a release on

Acquia Developer Center Blog: Introducing Bolt, a Development Tool for Generating New Drupal 8 Projects

Wed, 05/25/2016 - 18:09
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src= width=140 height=85 alt=Bolt logo //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:encodedpIt's my pleasure to introduce Acquia Bolt, a development tool for generating new Drupal projects using a template derived from our Professional Services' best practices./p pWe began building and using Bolt internally over the past year. Our goal was to codify a set of tools and conventions that would allow us to:/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/div/div/div

Mediacurrent: Dropcast: Episode 20 - Kind of a big deal

Wed, 05/25/2016 - 17:53
img typeof=foaf:Image src= width=200 height=152 / p dir=ltrThis episode we hit a land mark of twenty episodes, so instead of picking on Mario the entire time, we talk about our favorite moments at Drupalcon in New Orleans. Of course this is funny since half of us didn't actually attend the 'Con. Other episode titles considered: Bob and Mario live vicariously through Mark and Ryan/p

Drupal Bits at Web-Dev: Drupal file_scan_directory option nomask

Wed, 05/25/2016 - 16:44
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpOther than a quick sample of blocking a specific file extension using the 'nomask' option, the documenttation for Drupal's a href= target=_blankfile_scan_directory()/anbsp;does not help much with how to bock content from certain directories. nbsp;The documentation says/p blockquotepThenbsp;a class=php-manual href= style=box-sizing: border-box; margin: 0px; padding: 0px; border: 0px; font-stretch: inherit; line-height: 18px; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; vertical-align: baseline; color: rgb(6, 120, 190); text-decoration: none; title=int preg_match(string $pattern, string $subject [, array $matches = '' [, int $flags = '' [, int $offset = '']]])br / Perform a regular expression matchpreg_match/a() regular expression of the files to ignore.'/p /blockquote pSo it leaves you to believe that any regex should work. nbsp; So setting/p p$options['nomask'] =nbsp;#(/deleted/)#/p pshould block any directory named 'deleted'. nbsp;The problem is, it doesn't work that way. nbsp; In file_scan_directory() the regex is not run against the full path of the file, it is only run against the directory or filename recursively. nbsp;It is not evaluating nbsp;'directory1/subsection/deleted/index.html' , where the regex above would definitely come back with a hit and reject the item. nbsp;It is first evaluating, 'directory', then 'subsection', then 'deleted'... nbsp; It does not get a hit on deleted because it is missing the slashes on each side./p pOne possibilty would be to remove the slashes from the regexnbsp;like this:/p p$options['nomask'] =nbsp;#(deleted)#;/p pBut without the slashes, it would not only reject the directory 'deleted', it would reject the directory 'not-deleted' nbsp;and the file 'faq-why-my-account-was-deleted.htm' which mightnbsp;have undesirednbsp;consequences./p pThe trick to get it to reject only 'deleted' as a directory and its contents is to restrict the regex to only the start and end of the string being evaluated. like this/p p$options['nomask'] =nbsp;#^(deleted)$#;/p pand if you wanted to block 'deleted' and another directory like '_vti_cnf' it would look like this:/p p$options['nomask'] =nbsp;#^(deleted|_vti_cnf)$#;/p pnbsp;/p /div/div/div

Mediacurrent: Security Talks at DrupalCon New Orleans 2016

Wed, 05/25/2016 - 16:11
img typeof=foaf:Image src= width=200 height=152 alt=Drupalcon New Orleans 2016 Security Recap title=Drupalcon New Orleans 2016 Security Recap / pWhile I have had the privilege of attending a number of DrupalCons and camps over the years, I cannot remember one with as many sessions and a href= (birds of a feather)/a on the topic of security. In addition to the security talk on the program schedule, I had a great time chatting with individuals in the hallways and a few security focused companies in the exhibit hall. /p

Mediacurrent: 6 Questions Every Project Manager Should Ask

Wed, 05/25/2016 - 15:27
img typeof=foaf:Image src= width=200 height=152 alt=One Word to Save Your Project title=One Word to Save Your Project / pYour company’s business development team just announced a new Drupal project has been given the green light, and you will be the project manager. What do you need to do to help your development and strategy teams succeed in giving the client the best possible experience and product? You need to ask the right questions./p h33 questions to ask regardless of the CMS in play/h3 pThe project manager of any technical project, leveraging Drupal or some other CMS, should first and foremost ask:/p pstrong1. Where is the Statement of Work (SOW) and how do I access it?/strong/p

Liip: Drupal: Dynamic IMCE Profiles

Wed, 05/25/2016 - 14:15
pToday I will describe a way to handle multiple teams with their own private file folders using the a href= target=_blankIMCE/a module./p pLet#8217;s pretend that we have to develop a website called which consists of three (or more) different teams. The team structure could look as followed:/p pimg class=size-full wp-image-8306 alignnone src= alt=Website Groups //p pEvery team should only be allowed to edit their own pages but no page from any other team. Therefore it would also make sense to separate the team#8217;s file folders so that the files can be stored separately to secure its / Of course, we could simply add three IMCE profiles and define their folder access rights individually there. But what about when working with 10 teams? Or 50? Or even more? Then we definitely would prefer a more flexible / Thankfully, IMCE ships with the ability to define user folders by PHP execution, stronghow awesome!/strong But in order to achieve this, we#8217;ll have to set up teams as taxonomy terms first and reference them from our user entities./p h2Setting up the em#8220;Teams#8221;/em taxonomy vocabulary/h2 pFirst things first: Let#8217;s create a new taxonomy vocabulary called #8220;emTeams#8221;/em. For every team that we will have on our website, we have to create a new taxonomy term in this / Before adding any teams as taxonomy terms though, we#8217;ll have to add a new field called em#8220;FTP Folder#8221;/em to the taxonomy / This field will specify the name of every team#8217;s root folder. So, naturally it shouldn#8217;t contain any spaces or other wicked special characters and it should be URL / In order not to face any unusual results later, it is recommended to configure this field as required./p pAfterwards, we can add our three terms, em#8220;Team Alpha#8221;/em, em#8220;Team Beta#8221;/em and em#8220;Team Gamma#8221;/ / As value for their FTP Folders, we use em#8220;team-alpha#8221;/em, em#8220;team-beta#8221;/em and so on./p pThat#8217;s it for the taxonomy part! Now let#8217;s link this information to the team#8217;s users./p h2Adding a taxonomy term reference field to the user entity/h2 pIn my case, I didn#8217;t have multiple roles for the teams. I only had strongone/strong, called em#8220;Team member#8221;/em. Because every team has exactly the same rights as the others, maintaining only one role suited me / For really special cases, I could always just create a new role with the special permissions./p pSo, how do we link users to their teams the easiest? Exactly, by just adding a taxonomy term reference field to the user entity!br / Let#8217;s call this field #8220;Team#8221; and reference our previously created taxonomy vocabulary em#8220;Teams#8221;/em with it./p pNow, when adding a new user, we can select it#8217;s team belonging and IMCE will be able to grab the needed information from / Yes, IMCE will be able to do that but it#8217;s not doing it / Getting the teams ftp folder for the current user is still something we have to code, so let#8217;s proceed to the next step./p h2Writing a custom function to provide the accessible directories for an user/h2 pNow we need to provide IMCE the information that we#8217;ve set up / We#8217;ve created users belonging to teams, which hold the FTP root folder name for the / What#8217;s left to do, is to write a function (ideally in a custom module, in my example the module is called em#8220;awesome_teams#8221;/em), that combines all information and returns it to / Following function would do that for us:/p p/ppre class=crayon-plain-tagfunction awesome_teams_imce($user) { $user_folders = array('cms/teams/all'); $user_wrapper = entity_metadata_wrapper('user', $user); $user_teams = $user_wrapper-gt;field_team-gt;value(); foreach ($user_teams as $user_team) { $user_team_wrapper = entity_metadata_wrapper('taxonomy_term', $user_team); array_push($user_folders, 'cms/teams/' . $user_team_wrapper-gt;field_ftp_folder-gt;value()); } return $user_folders; }/prep/p pThe function expects an user object as argument and will return an array of strings containing all the folder names an user is allowed to / Our folder structure would look like this:/p ul lisites/default/files/cms/li lisites/default/files/cms/teams/li lisites/default/files/cms/teams/all/li lisites/default/files/cms/teams/team-alpha/li lisites/default/files/cms/teams/team-beta/li lisites/default/files/cms/teams/team-gamma/li /ul pstrongNote:/strong The folder em#8220;cms/teams/all#8221;/em is a special folder and every user is allowed to access / It will be used to save files which are used globally over multiple or even all teams./p pWhat our code does, is actually looping over all assigned teams for the given user (yes, an user can be in multiple teams!), and adding the teams ftp folder names to the array of accessible folders./p pThere is no em#8220;hook_imce#8221;/em hook, the em#8220;_imce#8221;/em in the function name strongdoes nothing till now/strong. You can also name your function differently. The link from IMCE to our function is something we have to set up in an IMCE / Let#8217;s proceed to the last step then, shall we?/p h2Creating the IMCE profile em#8220;Team member#8221;/em/h2 pNow, as the last step, let#8217;s create an IMCE profile called em#8220;Team member#8221;/em. You#8217;re free to define any settings as you like, there#8217;s only one thing that will be special about this profile: The accessible directories path./p pInstead of writing something constant as em#8220;cms/teams/team-alpha#8221;/em, we#8217;ll write em#8220;php: return awesome_teams_imce($user);#8221;/em / So, the setting should look like this:/p pimg class=alignnone size-full wp-image-8307 src= alt=imce-profile-settings //p pNow save the profile and strongyou are done/strong!/p pAs soon as one team member now accesses the IMCE page (either via /imce or by the configured file/image fields), he will only see his team#8217;s directories and the special directory #8220;all#8221; which is meant for exchange./p pThis wasn#8217;t that difficult, was it?/p pI hope I was able to give you an insight on how to solve more complicated file permission issues with / Don#8217;t forget to give feedback, ask questions and follow our blog if you want to read more about our Drupal experiences at a href= target=_blankLiip/a!/p

LevelTen Interactive: DrupalCon[densed] 2016: The Best Business Sessions

Wed, 05/25/2016 - 07:00
img typeof=foaf:Image src= width=600 height=300 alt=drupalcon business / pMy role as a principal at LevelTen means that I spend a lot of time overseeing Accounting, Operations, and Marketing. So for my visit to DrupalCon 2016, I wanted to spend as much time as I could talking with other C-level people to see what struggles we have in common and what solutions we've come up with./p pThroughout the sessions, summits, and socializing, there were a few key themes that kept coming up over and over from people who run Drupal shops. With that in mind, this post is less of a DrupalCon 2016 takeaway than a preliminary analysis of the economics of Drupal as it...a href=/blog/john-derudder/drupalcondensed-2016-best-business-sessions class=more-linkRead more/a/p

Mediacurrent: A quicker way to apply a Drupal / contrib patch

Tue, 05/24/2016 - 23:57
img typeof=foaf:Image src= width=200 height=171 / pThe normal a href= instructions for applying patches/a are well used and reliable. However, I find them to be a little verbose, so I came up with a slightly quicker workflow./p h2TL;DR/h2 pThe short explanation of what I do is to copy the patch's URL and run this command:/p pre curl [patch URL] | patch -p1/prepWhich would then become something like this:/p

Metal Toad: What I Learned Today: Views Plugin Debugging

Tue, 05/24/2016 - 21:52
span class=field field-node--title field-name-title field-type-string field-label-hidden data-quickedit-field-id=node/770/title/en/rssWhat I Learned Today: Views Plugin Debugging/span span class=field field-node--created field-name-created field-type-created field-label-hidden data-quickedit-field-id=node/770/created/en/rssMay 24th, 2016/span span class=field field-node--uid field-name-uid field-type-entity-reference field-label-hidden data-quickedit-field-id=node/770/uid/en/rss a title=View user profile. href=/people/jonathan lang= about=/people/jonathan typeof=schema:Person property=schema:name datatype=Jonathan Jordan/a/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-quickedit-field-id=node/770/body/en/rss div class=field-items div class=field-itempAs I've said before in my a href=/blog/drupal-7-tutorial-creating-custom-filters-viewscustom views filter handlers tutorial/a, views is amazing. Today I was writing a custom style plugin. I got the plugin to show up in the list of available formats, but whenever I saved the form, it wouldn't stick./p h3My Typical Method of Debugging in Drupal/h3 pTypically I would throw a href= target=_blankdpm/a's to debug, so I started walking through the callstack trying to find where things were going wrong. Then I ran into a line in views that called span class=geshifiltercode class=text geshifilter-textvpr()/code/span. It looked like a print_r debug statement, so I knew this was either being logged or there was a setting somewhere./p h3A Better Way to Debug Views Plugins/h3 pSure enough it is part of the Enable views performance statistics setting to have these messages logged with watchdog. To turn it on go to /admin/structure/views/settings/advanced. Even better, when you turn a href= target=_blankDevel/a on, you can have them dpm'ed instead. Now I get exactly the information I need to figure out what I was doing wrong, without having to throw my own dpm's in views or ctools./p h3Other Views Settings for Debugging/h3 pAlso, if you are just looking to debug your views query the Show the SQL query and Show performance statistics options on /admin/structure/views/settings are invaluable./p asideemThis post is part of my challenge to a href=/blog/always-learning-always-sharingnever stop learning/a./em/aside/div /div /div

Chapter Three: How to Secure Drupal HTTP Headers

Tue, 05/24/2016 - 20:29
pimg alt=How to Secure Drupal HTTP Headers data-entity-type=file data-entity-uuid=2522d3e3-662f-47db-8e07-7f1dc548ca7c src=/sites/default/files/inline-images/helmet.jpg style=margin: 0 0 10px 10px; class=align-right /In this blog post I will briefly overview some of the very useful HTTP response header parameters that will help to secure any website. In short - HTTP Response headers are name-value pairs of strings sent back from a server with the content you requested. More information can be found on the internet./p pI will cover some of the most important security-related HTTP parameters. The original blog post was written by a href= target=_blankScott Helme/a who is the creator of a href= This is a brief overview of his blog post to introduce this technique to our readers./p

Janez Urevc: Drupal's number 1 is from Switzerland

Tue, 05/24/2016 - 15:49
spanDrupal#039;s number 1 is from Switzerland/span spanspan lang= about=/users/slashrsm typeof=schema:Person property=schema:name datatype=slashrsm/span/span spanTue, 24.05.2016 - 15:49/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempSwiss has traditionally been dedicated to the best quality and innovation. Some of the best things in life come from Switzerland. Did anyone mention chocolate?/p pimg src= /emPhoto by a href=, released under a href= BY 2.0/a/em/p pDrupal and free software are no exception. Many companies and individuals are dedicated to them on a daily basis. That said, it is no surprise that Drupal's number one comes from Switzerland./p pa href= from a href= Systems explains how we achieved that/a, which are the main advantages of Drupal and why everyone should use it. Very a href= read/a!/p /div

Janez Urevc: Drupal community, please meet Vijay

Tue, 05/24/2016 - 10:40
spanDrupal community, please meet Vijay/span spanspan lang= about=/users/slashrsm typeof=schema:Person property=schema:name datatype=slashrsm/span/span spanTue, 24.05.2016 - 10:40/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempa href= summer of code 2016/a started with a full swing this week. a href= is one of the students participating in it. He is working on the Media module for Drupal 8./p pHe wrote a href= introduction blog post/a. I'd like to invite you to read it, say hi and follow his work as it progresses through the summer./p pWelcome in the Drupal community Vijay!/p /div