Skip to Content

Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 1 day 8 hours ago

Drupal Association News: My Week at DrupalCon, part 2

18 June 2015 - 11:30am

Part 1 of My Week at DrupalCon

Part 2:

As our community grows, so do our programs.  This year in addition to hosting trainings and both the Community Summit and Business Summit, we offered a Higher-Ed Summit at DrupalCon.  As soon as it was announced folks clamored to sign up, and the tickets sold out at a rapid pace.  We at the Drupal Association feel like this is a great example of how the growing variety of offerings at DrupalCon illustrates the increasing diversity of our community’s interests and skillsets.

The Higher-Ed Summit was a huge hit and that was due largely in part to the efforts of the Summit Leads, Christina and Shawn.  They worked hard to understand what the Higher-Ed community wanted and needed from the Summit and strategized to provide it down to the last detail.  Their planning and experience were integral to the popularity of the event, and we look forward to working with these awesome volunteers again in the future.    

Maybe I’m naive or a wide-eyed optimist, but meeting and speaking to people from all over the world is invigorating and exciting to me. Throughout the course of DrupalCon I had the opportunity to meet with community organizers from near and far. While it’s true that many attendees came from the United States and Canada, there were also organizers who came from as far away as Latin America, Europe, India, and Japan, and talked about how Drupal has affected their communities and their livelihoods.  It is always such a pleasure to see Drupal changing lives and bringing opportunities for personal growth and business everywhere.  

After an exhausting week of keynotes, and BOFs, and meetings, and dinners, I launched into the sprints on Friday with the purpose of understanding Drupal more.  I always enjoy discussing Drupal’s unique qualities with developers, site-builders, and themers, but this DrupalCon I really wanted to engage in more than just conversations.  I wanted to experience what it is like to directly develop and work with Drupal.  At the Friday sprints, my friend and new mentor Amy agreed to sit down with me and help me put together my own blog, run on a Drupal website.  During the process, I realized that there is no better way to start to understand the complexity of Drupal than to use the product myself.  

When learning to use Drupal in the sprint, I realized that we really are about fostering a friendly, inclusive, and diverse community. We talk the talk and we walk the walk.  Amy sat down with me and patiently showed me step-by-step how to start my site.  We picked a hosting site, domain name, downloaded Drupal, and began the process of organizing our modules and features. Finally, I started to really get it, which was incredibly exciting. Both personally and professionally, it meant a lot to me that someone would take the time to help me on my journey. It really brought home the fact that Drupalers genuinely care, are excited and willing to share knowledge, and have fun while doing it.  

DrupalCon Los Angeles was a spectacular event.  I feel like this blog wouldn’t be a proper message from LShey without some shout-outs and kudos, so please join me in celebrating others. I’d like to say out a big thank you to our talented Events team at the Drupal Association for organizing a seamless and beautiful event.  Thank you to our sponsors who help us put on this event with their support.  Thank you to our dedicated volunteers: whether you were a sprint-mentor, room-monitor, or speaker, your time and expertise is appreciated and valued.  Our volunteers truly make DrupalCon a wonderful event.  I’d like to share a special shout-out to the team who keeps us all informed, too: thank you to Alex and Paul for running the @drupalconna twitter handle.  Thank you to Emma Jane, who was our MC this DrupalCon, and who engaged our keynote speakers with witty and thoughtful interviews.  Lastly, thank you to you all, our community.  DrupalCon would not be the same without you.  I’m looking forward to seeing you all at the next one!  

Drupal on, 

Lauren Shey
Community Outreach Coordinator
Drupal Association
@lsheydrupal

Categories: Drupal

Acquia: How Weather.com Improved Their Page Load Times

18 June 2015 - 10:07am

In November, 2014 Weather.com launched on Drupal and became one of the highest trafficked websites in the world to launch on an open-source content management system (CMS). Mediacurrent and Acquia are excited to announce a new, 3-part blog post series that will share insight around how Weather.com was migrated to Drupal. Our team of experts will share best practices and what lessons we learned during the project.

There's an old saying, “Everyone talks about the weather, but nobody does anything about it.” While we are a long way from controlling the weather, Weather.com has done a spectacular job of delivering accurate weather news, as rapidly as possible, to all kinds of devices.

This is a small miracle, especially when you consider Weather.com served up a billion requests during its busiest week. Even slow weeks require delivering hundreds of dynamic maps and streaming video to at least 30 million unique users in over three million forecast locations. The site has to remain stable with instantaneous page loads and 100 percent uptime, despite traffic bumps of up to 300 percent during bad weather.

Page load times are the key to their business and their growth. When The Weather Channel's legacy CMS showed signs of strain, they came to Drupal.

On their legacy platform, Weather.com was tethered to a 50 percent cache efficiency. Their app servers were taking on far too much of the work. The legacy platform ran on 144 origin servers across three data centers. It takes all that muscle to keep up with the number of changes that are constantly happening across the site.

Traditionally, when you have a highly trafficked site, you put a content delivery network (CDN) in front of it and call it a day. The very first time a page is requested, the CDN fetches it from the origin server and then caches it to serve to all future requestors.

Unfortunately, it doesn't work that way for a site like Weather.com.

Consider this: If a user in Austin visits a forecast page, they see a certain version of that page. A visitor from Houston sees a slightly different version of that page. Not only are there two different versions of the page, one for each location, but much of the information on the page is only valid for about five minutes.

At the scale of three million locations, that's a lot of pages that have to rebuild on an ongoing basis only to be cached for 5 minutes each. Couple this with the fact that the number of served locations kept increasing as developers worked on the site, and you can see that things are rapidly getting out of control.

The first thing we did was break up the page into pieces that have longer or shorter life spans based on the time-sensitivity of the content. That allowed us to identify the parts of the pages that were able to live longest and that we could serve to the majority of users. The parts that varied, we no longer change on the origin servers, but instead delegate to systems closer to the user where they actually vary.

To accomplish that trick, we switched to a service-oriented architecture and client side rendering, using Angular.js, ESI (Edge Side Includes), and some Drupal magic. The combination of these three components boosted cache efficiency, page performance, and reduced the required number of servers to deliver it.

The result? After launch, we showed Weather.com a 90 percent cache efficiency. In other words, in going from 50 to 90% cache efficiency they reduced the number of hits to the origin servers, which means that you need fewer of them. Post launch, we were able to increase cache efficiency even further.

This cache efficiency was also measured only at the edge. Varnish (a caching proxy) further reduced the amount of traffic, meaning that Drupal itself and the Varnish stack were serving less than 4 percent of their requested traffic. The benefits of the service-oriented architecture also mean that scaling is simpler, architectural changes are less painful, and the end user can experience a richer user experience.

Doing something about the weather is still way out on the horizon, but Weather.com can certainly claim that it has improved the delivery of weather news.

Tags:  acquia drupal planet
Categories: Drupal

Lullabot: Drupal 8 Theming Fundamentals, Part 2

18 June 2015 - 10:00am

In our last post on Drupal 8 theming fundamentals, we learned to set up a theme and add our CSS and JavaScript. This time around we’re talking about the Twig templating engine, how to add regions to our theme, and then finish with a look at the wonderful debugging available in Drupal 8.

Categories: Drupal

Drupal Watchdog: Small Sites, Big Drupal

18 June 2015 - 8:58am
Article

In a much-analyzed 2013 interview with Computerworld, Drupal founder and “benevolent dictator” Dries Buytaert laid out a future path for the software focused squarely on enterprise clients (see also “Will the Revolution be Drupalized?”). While small sites had their place, Buytaert asserted, “I think we just need to say we’re more about big sites.” With Drupal 8, he concluded, “I really think we can say we’ve built the best CMS for enterprise systems.”[1]

Where does this bright future leave the smaller sites that up till now have formed the mainstay of Drupal adopters?

What’s in the Pipe

Drupal 8 is not all bad news for smaller sites; there are many new features and enhancements that should lower or eliminate some previous barriers.

  • More in core Many areas of key functionality that previously required downloading, installing, and configuring modules and other dependencies now will work out of the box. Case in point: WYSIWYG editing.
  • UI improvements A lot of customization that previously required specialized modules or custom code is now exposed via the core admin interface.

That said, there are signs of trouble ahead:

Hosting Barriers

Drupal 7 performance already pushed the limits of the typical, inexpensive, shared hosting that most small sites rely on. And Drupal 8? Watch out. It has what Drupal 8 maintainer Nathaniel Catchpole frankly called “an embarrassingly high memory requirement.”[2] Yes, memory issues can be addressed through solutions like reverse proxy caching or pushing search indexing to Solr. But those options are precisely the ones that are missing from the vast majority of shared hosts.

DIYers Beware

Small Drupal sites have benefited from the ease of dabbling in Drupal development. Drupal 8, in contrast, has been rewritten from the ground up with professional programmers in mind. Dependency injection, anyone?

Categories: Drupal

Phase2: Developer Soft Skills Part 1: Online Research

18 June 2015 - 8:32am
Developer Soft Skills

One of my earliest jobs was customer service for a call center. I worked for many clients that all had training specific to their service. No matter the type of training, whether technical or customer oriented, soft skills were always a included. Margaret Rouse said, “Soft skills are personal attributes that enhance an individual’s interactions, career prospects and job performance. Unlike hard skills, which tend to be specific to a certain type of task or activity, soft skills are broadly applicable.”

In this blog series I will be discussing what I call “developer soft skills.” The hard skills in development are (among others) logic, languages, and structure. Developer soft skills are those that help a developer accomplish their tasks outside of that knowledge. I will be covering the following topics:

  • Online research
  • Troubleshooting
  • Enhancing/Customizing
  • Integrating
  • Architecting
Part 1: Online Research

One of the first skills a developer should master is online researching. This is an area with some controversy (which will be discussed later) but a necessary skill for learning about new technologies, expanding your knowledge, and solving problems.

One of the best reasons for research is continuous education. For many professions (such as the military, education and medical fields) continuing education is required to keep up on updated information, concepts, and procedures. As a developer, continuing to grow our skill set helps us develop better projects by using better code, better tools, and better methods.

Search engine queries

When researching a topic on the internet it usually involves using a search engine. Understanding how a search engine works and how to get to the results.There are two parts to how a search engine works. Part one is data collection and indexing. Part two is searching or querying that index. I will be focusing on how to write the best possible query, to learn more about how search collect and index data see this link. In order to write good queries we should understand how search engines respond to what we type into the search box. Early search results were rendered based on simple (by today’s standards) comparison of search terms to indexed page word usage and boolean logic. Since then search engines have started to use natural language queries.

So we can get better results by using this to our advantage. If I wanted to research how to make a calendar with the Java programming language. instead of searching for keywords and distinct ideas “java -script calendar” by them selves; use natural language to include phraseology and context in our queries: “how can I make a calendar with java”. The first result from the keyword search returns a reference to the Java Calendar class. The first result from the second query return example code on writing a calendar in Java. The better the query the better the results.

Search result inspection

Once we have the right query we can then turn our attention to the results. One of the first things I do is limit the results to a date range. This prevents results from the previous decade (or earlier) to be displayed with more recent and applicable ones. Another way to focus our search is to limit the site that the search takes place on. If we know we want to search for a jQuery function search jquery.com.

Once we have filtered our results, it’s time for further inspection. When viewing a results page, the first thing I look for is the context of the article or post. Does the author and/or site have a lot of ads? This can sometimes mean that the site is more about making money then providing good answers. Does the page have links or other references to related topic or ideas? This can show if the author is knowledgeable in the subject matter.

The controversy

Earlier I mentioned online researching can be a controversial topic. One of the points of controversy is discussed in Scott Hanselman’s blog post, Am I really a developer or just a good googler? While I agree with his major point, that researching bad code can be dangerous, I contend that using a search engine can produce good results and learning opportunities.

Almost anytime you search for any programming topic, one site or group of sites is predominant in almost every result: Stack Overflow or the Stack Exchange group of sites. Several articles have been written about reasons not to use, consequence of using and why some developers no longer use Stack Overflow. Using Stack Overflow will not solve all your problems or make you a better developer.

Again, these arguments make some good points. But I think that using Stack Overflow correctly, just like good use of search engines, can produce good results. Using a Stack Exchange site comes with the benefit of community. These sites have leveraged Stack Exchange Q&A methodology for their specific topic or technology and can be a great resource on how to solve a problem within the bounds of that community. One of my development mentors told me that there were thousands of ways to solve a programming problem and usually several wrong ones. The key is to not do one of the wrong ones and try to find one of the best ones. Searching within a Stack exchange site for answers can highlight the wrong ones but also provide the ones that work best in that system.

Here is an example of a Stack Overflow Drupal community response that came up when I searched for: “drupal create term programmatically.”

This response is correct, but if you look at the link provided, you will see this is for Drupal 6. If you were looking for how to do this in Drupal 7, for instance, the answer provided would not be correct. We could have improved our results by adding “Drupal 7″ to our query. But most important is to keep in mind that sites like Stack Overflow, or other community sites such as php.net include a mix of user generated responses. Meaning anyone can respond without being vetted.

Keep going

The best piece of advice I can offer for the arguments against using online search results and Stack Overflow is: “This is not the end.” Keep going past the result and research the answer. Don’t just copy and paste the code. Don’t just believe the top rated answer or blog post. Click the references sited, search the function or api calls that are in the answer, and make the research a part of your knowledge. And then give back by writing about your article or posting your own answers. Answering questions can sometimes be just as powerful a learning tool as searching for them.

In the end, anything you find through search, blog, and code sites should be considered a suggestion as one way of solving a problem – not necessarily the solution to your concern.

In the next post I will discuss a good use case for Stack Exchange sites, Developer Soft Skills Part 2: Troubleshooting.

Subscribe to our newsletter to keep up with new projects and blogs from the Phase2 team!

Categories: Drupal

Palantir: D8FTW: The Drupal 8 Tour

18 June 2015 - 7:40am

Drupal 8 is expected out this fall sometime (good lord willin' and the crick don't rise, as my mother used to say). It's a big change, but a long-needed one. It's also one that the whole PHP community is looking forward to, if what I've seen at conferences over the last few years is anything to go by.

One of my foci this year has been to help the Drupal and PHP communities get ready for Drupal 8. That's why I've been submitting Drupal 8-centric sessions to conferences across the country and around the world, and why conferences keep asking for them! (Tip for people who want to submit sessions to PHP conferences...)

Without intending to, I have basically kicked off my own Drupal 8 World Tour!

Where has the tour been so far in 2015?

(I was also at Midcamp here in Chicago, but of all places they didn't want a Drupal 8 talk from me!)

If you haven't caught the tour yet, it may be coming to a town near you soon. My travel schedule for the rest of the year is pretty booked as well. Join me at any of the following events (which should be great events in their own right) to get a Crash Course in Drupal 8 or more!

And stay tuned for a few other possibilities in October...

Let's get together and learn about Drupal 8!

Categories: Drupal

Blink Reaction: Building Native Apps - Part 3

18 June 2015 - 7:16am

 

Building native mobile apps with Ionic Framework and Drupal back-end: configure Drupal REST server

 

Today, we continue to build our mobile app with Ionic Framework. Acquia has a service called Acquia Cloud Free which provides a development and staging environment for free. With this, you can create test servers with Drupal, and install drush with a few mouse clicks. Also, you get a git repository from which your site which will build a lot more features. I have created a simple blog website with some dummy content by a Devel module - you can check it out here.

 

 

Required modules

 

To create a REST server for this blog we should use a few contrib modules:

 

Services and Views Datasource. So, let’s install them and enable the following: “Services,” “REST Server” and “Views JSON modules.” Next, you should go to /admin/structure/services and click on Add link on the top of page. You can download and enable the CORS module to have the ability to test mobile apps in your browser before compilation. Here is the example of CORS configuration that will allow you to request data from all /api urls and retrieve the user session token from /services/session/token (which we should use to make user authorizations in our app). You can remove this module with settings after testing for security reasons.

 

 

REST server setup

 

Next, you must configure your new REST server and its output. Set the machine name of our server, select REST type, and create base path for all resources as /api. You should also enable Session authentication, to make it later in the app.

 

 

We must select the “json" esponse formatter, and the “application/json” and “application/x-www-form-urlencoded” request parsers so the app will send and receive all data in json format.

 

 

We won’t enable any resources for now. We should create views to catch data that we will use in our app. We do it this way to receive only the fields that we need, and to have a flexible configuration on each field output.

 

Adding views resources

 

Next, we’ll add a new view of a type page, with JSON data document format and a path of “api/articles.” We should also set the output limit to 10 articles, and check “Use a pager.” This will give us an articles list with pagination, showing 10 articles per page. In our application we will create functionality in an articles controller to load more so they can be retrieved with a page parameter in the request.

 

 

JSON output settings prettify output data. We removed the Root object name and Top-level child object to get an unnamed json array of objects. We can configure each field output by adding a label for it; for example we changed image_field to image.

 

 

We added title, nid and image fields to this view. This data will be used on the articles tab in our application.

 

 

Now if we visit the /api/articles page, we should get json data of the first 10 articles. We can also add a page GET parameter.

 

In the same way, we create a view page with path /api/article/% and a contextual filter to get a single article by nid. Here we add nid, title, image, body and comment_count fields. This will be used on an article details page.

 

 

We also need a view to get a non-empty categories list (/api/categories). We then create a relationship Taxonomy term: Content with a term to count how many articles exist in each category, and a filter to show only categories that contain one or more articles. We will use this data to make a categories tab in the hybrid app.

 

 

Single categories by tid (/api/category/%) and a list of articles in this category display by relationship taxonomy term: content with term, with pagination. We also add fields of category tid and name, article nid, title and image (article fields and format are the same as in the articles view), so we should show all articles related to the current category in the mobile application.

 

 

Now we have a REST server from which we can get articles and categories of a blog, as json data that we can request and use from our app. In the next part, we should configure our application services. This tutorial continues tomorrow so be sure to check back in.

DrupalBest PracticesDrupal PlanetDrupal TrainingLearning SeriesPost tags: AppsIonic
Categories: Drupal

InternetDevels: Drupal vs Wordpress: functionality vs simplicity

18 June 2015 - 3:18am

Drupal and WordPress are very popular content management systems for website development. They are both built on PHP + MySQL, they are both free, they are almost of the same age (Drupal was “born” in 2001 and Wordpress in 2003). However, they have significant differences in the ease of use, functionality, flexibility and more. Accordingly, each CMS has a passionate army of its own fans.

Rivals in different categories

Read more
Categories: Drupal

Mediacurrent: Video: Metatag 1.5

17 June 2015 - 12:41pm

With meta tags still being important for search engine optimization and improving how content looks when shared via social networks like Facebook and Twitter, it's worth learning how to use Drupal's Metatag module the right way. Let me show you how a site can benefit from using meta tags, then find out about the latest improvements, along with recommendations on how to get it set up correctly for your site.

Categories: Drupal

Blink Reaction: Building Native Apps - Part 2

17 June 2015 - 11:38am
Building native mobile apps with Ionic Framework and Drupal back-end: Starting a new Ionic Project Planning app structure

Today, we continue the process of building our first Android app with Ionic Framework and Drupal 7 back-end. If you missed yesterday’s post, you might want to start there. I decided to demonstrate the process using a simple application that will receive data from a blog-type website with RESTful services.

Now, let’s plan our app. In the first stage we will make a hybrid app with two tabs. The first tab will show all blog posts filtered by the newest first, and the second tab will show the list of categories and articles in each category. Then, when a user taps on an article, they will see the full article content and comments. It looks simple enough, so let’s get started.

Start Ionic project from scratch

Ionic comes with three boilerplates to start a new app: blank, tabs and side menu. You can see those variants here. We decided to make our application using tabs, so we should use the tabs boilerplate. To start, run command “ionic start ApplicationName tabs” (you should replace ApplicationName with the name of your own app) in NodeJS prompt from the folder where you would like to store your projects. This command will install Cordova and Ionic with all dependencies and base files for your project, with prebuilt tabs in it.

Next, enter to the folder with your app name (the same ApplicationName that you entered in the previous prompt command) and run “npm install” to download all build tools dependencies. Let’s see what we get from scratch: run “ionic serve” and it will start a local server and open the project in your web browser. You can resize the window to show the app as in a mobile view, or, if you are using Google Chrome, you can utilize Chrome Dev Tools to emulate a device.

So, now we have the application with four tabs and some dummy content. You can explore that design to really see how the default site is set up. Notice how it changes if you switch between iOS and Android devices; the founders of Ionic did this because each platform has its own design recommendations, and if you follow them, your applications have a better chance of being approved for that platform’s marketplace.

 

Files structure

Next, take a look at the folders and files we get in our project folder:

  • hooks folder - here you can determine callback functions for Apache Cordova to add actions to the build process

  • plugins folder - for Cordova plugins, which extend support of some mobile API’s

  • scss folder - with default Ionic styles of apps. We will use this to customize our app

  • www folder - here are all the AngularJS app files, and our main working directory. Inside this folder we have the js folder, to keep all application files - in our case this includes apps, controllers and services; and the lib folder, for ionic core - this includes Angular with a few additional modules

  • templates folder - to keep assets of each app view

  • index.html file - which is the starting point of the app

Tabs definition

Our framework uses Angular UI Router to handle all application routes. We’ll change the default one in the config method of our app, in the app.js file, to define the routes that we need.

gist link - seems to be missing - verify where this link should go?

Here we define an abstract tabs route, which means that this element will have only a template without its own path. We define the following states:

Tab - Routes are children of tabs

Categories - will show list of all non-empty categories

Category - page that displays all articles related to that category

Articles - tab that shows a list of all posts, sorted by newest first

Article details - full post content of an article

Article detail pages and category articles contain the same content. They will each show full article content with comments; we define them twice to ensure smooth navigation for each path, from all articles to article details and from categories to article details, but we define one template for them. So, we will see the same result but the path to it will be different, depending on how we navigated to the article page.

Finally, we define the default path for our app, which will be the first view that users will see after it launches. Also, we define controllers for each route, which will keep all logic for pages.

Controllers creation

We should create empty controllers for now to avoid application errors; we’ll write the controller functionality later.

gist link

We set $stateParams provider for Category and Article details controllers that will catch ids of the source that we need; this is very easy to do with UI Router. Also, we passed Categories and Articles entities that will be an Angular service, helping us load data from the remote Drupal REST server and giving us the ability to use it in our views.

Services formation

We don’t have any RESTful services to grab data from, so as we do with controllers we will define clear services. In the next part we will configure REST on our Drupal website.

gist link

In general, we created Categories and Articles factories that have all get methods, that give us an ability to get all categories or articles, or only one by its ID. We post the ID parameter to the factory from controllers with the help of the UI Router. Endpoint variables are empty for now. This service will only make a request to our server and return promises; all logic and data transformation will located in controllers.

Adding templates

Finally, we will create templates for all application pages inside our templates folder: article-detail.html, category.html, tab-articles.html, tab-categories.html and tabs.html. Ionic comes with Ionicons - this is the icon pack for apps, so I set icons for our tabs.

gist link

gist link

gist link

gist link

gist link

Now you can check that it works in browser - just run “ionic serve”.

We get a starter point to show blog data.

You can clone and try all this code from my github repository, and to get code just from this part, checkout to the part1 branch by running “git checkout -f part1”.

Check back in tomorrow for the next part of the series when we look at Framework and Drupal back end configuration. 

 

DrupalDrupal How toDrupal PlanetDrupal TrainingTechnology ToolsPost tags: AppsIonic
Categories: Drupal

Promet Source: Managing Remote Team Members The Promet Way

17 June 2015 - 10:19am
Managing a remote team isn’t remotely easy.


While many people get excited about the perceived freedoms of working at home (no dress code! building your own workspace! unfettered access to the couch!), the are significant challenges as well. The differences in geography and time zones, the reliance on virtual communication, the isolation of being the sole team member in a given city or region...life for the remote team member is not always a walk in the park.

Categories: Drupal

Drupal.org frontpage posts for the Drupal planet: Drupal 7.38 and 6.36 released

17 June 2015 - 10:06am

Drupal 7.38 and Drupal 6.36, maintenance releases which contain fixes for security vulnerabilities, are now available for download. See the Drupal 7.38 and Drupal 6.36 release notes for further information.

Download Drupal 7.38
Download Drupal 6.36

Upgrading your existing Drupal 7 and 6 sites is strongly recommended. There are no new features or non-security-related bug fixes in these releases. For more information about the Drupal 7.x release series, consult the Drupal 7.0 release announcement. More information on the Drupal 6.x release series can be found in the Drupal 6.0 release announcement.

Security information

We have a security announcement mailing list and a history of all security advisories, as well as an RSS feed with the most recent security advisories. We strongly advise Drupal administrators to sign up for the list.

Drupal 7 and 6 include the built-in Update Status module (renamed to Update Manager in Drupal 7), which informs you about important updates to your modules and themes.

Bug reports

Both Drupal 7.x and 6.x are being maintained, so given enough bug fixes (not just bug reports) more maintenance releases will be made available, according to our monthly release cycle.

Changelog

Drupal 7.38 is a security release only. For more details, see the 7.38 release notes. A complete list of all bug fixes in the stable 7.x branch can be found in the git commit log.

Drupal 6.36 is a security release only. For more details, see the 6.36 release notes. A complete list of all bug fixes in the stable 6.x branch can be found in the git commit log.

Security vulnerabilities

Drupal 7.38 and 6.36 were released in response to the discovery of security vulnerabilities. Details can be found in the official security advisory:

To fix the security problem, please upgrade to either Drupal 7.38 or Drupal 6.36.

Known issues

None.

Front page news: Planet DrupalDrupal version: Drupal 6.xDrupal 7.x
Categories: Drupal

iterate.: Build a better local Drupal development environment

17 June 2015 - 7:26am

Learn how we build Drupal websites within a local development environment that matches the configuration of production.

Categories: Drupal

Annertech: 7 Great Reasons Why You Should Integrate Your Website and CRM

17 June 2015 - 5:55am
7 Great Reasons Why You Should Integrate Your Website and CRM

Every organisation needs a CRM (C. Relationship Management) system, no matter how large or small that organisation is. Whether the C stands for Customers, Clients, Constituents, Contributors or other Contacts, organisations need to manage their contacts and keep track of their interactions with them.

Categories: Drupal

Red Crackle: Testing blocks using Red Test

17 June 2015 - 2:30am
Have you ever worked on a large project where out of the blue, one day, the client says that editors are not seeing a block of new blog posts in right sidebar on so and so page? It's generally pretty easy to fix this problem. Just go to the configuration form of that block and see what the conditions are for displaying the block. Or it could be a block written by you in a custom module and then you'll need to check hook_block_view() in your module to see where the problem lies. But you are still unhappy because the bug was caught on production. Have you thought of automating the block test so that a block with wrong settings never gets deployed in production? In this post, we'll show you how to automate the test for blocks in less than 10 mins.
Categories: Drupal

KnackForge: Vimeo Advanced API for Drupal

17 June 2015 - 12:33am
The Vimeo Advanced API allows the users to access, edit, and upload videos (if approved). With the advanced API, we will be able to create albums, add videos to albums, channels, and groups as well. Let's take a look at what you need to do in order to make the vimeo advanced API work in drupal:
  1. Install the vimeo API on your drupal site.
  2. Register your site with vimeo and get the Consumer Keys.
  3. Authorize your site and get the OAuth Tokens.
  4. Start using the Advanced API for vimeo.
Installing the vimeo API
  • Download the "Advanced API PHP Library" from here
  • Extract the contents of the zip file and move them to a folder called "vimeo" on the root of your drupal website.
Registering the drupal site with Vimeo
  • Login to your vimeo account, and register your website as a new "app" at https://developer.vimeo.com/apps/new
  • Enter the values of required field.
  • Use the URL of your website as the 'Application URL'.
  • Enter the "Application Callback URL", which is very important as the authentication process will start from here.
  • When you are registering an app for the first time, then you may have to wait for a human to authorize the app request.
  • Get your 'Consumer Key' and 'Consumer Secret' and save them to proceed forward.
Categories: Drupal

Modules Unraveled: 139 DrupalCon New Orleans Details with Eric Schmidt, Sabrina Schmidt, Jason Want and Jeff Diecks - Modules Unraveled Podcast

16 June 2015 - 10:00pm
Published: Wed, 06/17/15Download this episodeDrupalCon New Orleans
  • Where is the DrupalCon going to be?
    • New Orleans convention center
  • When is it?
    • May 9-13 2016
  • Why New Orleans?
    • We are seeing an incredible rebirth of a Great American City. Hurricane Katrina was such an unbelievable disaster, 80% of the city was flooded. Surrounding Parishes even worse, (we have Parishes instead of Counties), St. Bernard Parish, just down river, 99% was flooded. In the last 10 years we have overcome seemingly unsurmountable rebuilding, and have plenty more in the works. DrupalCon coming to New Orleans is great affirmation of progress we have made. It has a vibe like no other city, you can feel the life.
  • Why were you so driven to bring DrupalCon to your town?
    • It’s such a great place to be! Growing up 5 miles from Bourbon Street, we tend to take our City for granted. We do things that are rarely seen in the world! Food, Festivals, Family activities, Music, and of course you can drink in public! The general attitude across the whole city is very inviting and laid back. Really, a perfect place for a crowd like the Drupal Community!
  • What does the tech community look like there?
    *Growing in leaps and bounds. The entrepreneur landscape is one of the top in the country – we lead the nation in startups per capita by 64%, and we have a growing network of capital, which is important for startups. Game Loft, GE Capital, High Voltage Software have all chosen New Orleans because of our deep incentives, unique culture, and low cost of living. And our tech community is coalescing with the formation of TechNO, a coalition of local tech companies who meet regularly to promote the presence of the industry, New Orleans Entrepreneur Week hosted by the Idea Village, and NOLA Tech Week, which attracts national speakers and provides a great opportunity to showcase the industry. Finally, many local community colleges and universities are developing curricula to meet new digital workforce demands. There is no better opportunity in the country for tech companies than New Orleans. (from GNO, Inc. can be summarized)
  • What does the Drupal community look like?
    • We just had our Second camp! :-) Small but dedicated! We have had Meetups Monthly since 2010.
  • How important is the local community with the regards to putting on a DrupalCon.
    • I think now that the Drupal Association has taken the reigns of the Cons, the local community plays a part, but not like say, 2010, when we were in San Francisco. The local community had to shoulder the brunt of the work. And frankly, it was a lot, plus we probably had a limited number of cities with that size local community. That’s one of the great things about the Association, organizing DrupalCons!
  • What’s the Drupal adoption look like in New Orleans?
    • Growing, like everything else down here! The larger Universities have adopted Drupal, Tulane, Loyola, LSU up in Baton Rouge, plus the WWII museum, WWOZ (a great radio station, you should listen online), Cafe Du Monde, The Chef John Besh Restaurant Group, Audubon Nature Institute, Dr. Tichenor’s, maybe more….(or we keep it short??)
  • Who’s going to be the “boots on the ground” in New Orleans playing “host”?
    • Hopefully, us! We are both born and raised in the New Orleans area. I am involved in the local civic and business community and the entire Tech community are excited to host Drupalers!
  • How is it organized compared to years past? (Level of community and association involvement)
    • Again the Drupal Association has done a great job of spearheading the Cons. We worked closely with them to develop the logo and overall branding of the Con. In the coming months, we will work with them to look at venues and locations for events. Sponsors have reached out to us to help them organization of their specific needs for parties and meeting.
  • How will you be choosing who is selecting sessions

    • Each Con we put together the Track Team which is comprised of global track chairs (people who have evaluated and selected sessions for a Con at least once before) and then we work to assemble the Local Track Chairs who work in conjunction with the globals. We get these people from recommendations from within the community, people reaching out to volunteer and people expressing interest to Global Track Chairs. They go through an interview process with the Drupal Association and then the team is assembled and starts working to get out the call for content. It’s quite a ways away planning-wise but the Drupal Association will start putting together the New Orleans Track Team in the late fall, so if you’re interested or know someone who would be a great addition please reach out to amanda@association.drupal.org.
      You can read all about the session selection process here: https://events.drupal.org/barcelona2015/session-selection-process
  • For those that want to have a future Con in their community, do you have any advice?

    • We heard interest from the Drupal Association in having a New Orleans Con about five years ago, but we didn’t have a local community to support it. We started up a small meetup in Baton Rouge in 2010, then it slowly migrated to New Orleans. We didn’t lobby anyone to win the conference for the city. We just tried to establish a community and show consistent interest over the years, and trusted that New Orleans is a destination that the community would want to visit. Eric: you were at that first meetup and have helped to coordinate the growth of the group, what are your thoughts?
    • Have a consistent Meetup! We decided at our first Meetup we would meet on the First Thursday of the Month, even if it was only two people. And barring that occasional conflict with a carnival parade we have done that. Then organize a Camp, start small and be consistent!
  • Before we started recording, you mentioned that you wanted to talk about possible afterparty locations. Do you want to do that now?
    • Everywhere!
    • Crawfish season
Questions from Twitter
  • Ryan Gibson
    What kind of festivities can we expect during DrupalCon NO? #MUP139
  • Carie Fisher
    #MUP139 best place for drupalcon parties? any places we should try and visit in NO?
  • Robyn Green
    Question for Jeff, What amount of LSU attire will I be required to have for Drupalcon, and where can I get a 'I <3 Hallman" hat? #MUP139
  • Ryan Gibson
    What is the must-have NO food that I should plan on bringing Tums to be able to enjoy? #MUP139
  • markie
    Thanks @jasonawant for letting me crash at your place during JazzFest. #MUP139
  • Ryan Gibson
    And for letting us take a spin on the boat.
Episode Links: DrupalCon New Orleans WebsiteDrupalCon NA on TwitterSabrina on TwitterSabrina on Drupal.orgEric on TwitterEric on Drupal.orgJason on TwitterJason on Drupal.orgJeff on TwitterJeff on Drupal.orgNew Orleans Announcement VideoMedia Current WebsiteevanSchmidt design WebsiteLouisiana Drupal GroupLouisiana Drupal on Meetup.comDrupal Camp NOLALouisiana Drupal on TwitterTags: DrupalConNew Orleansplanet-drupal
Categories: Drupal

Realityloop: Wysiwyg Fields

16 June 2015 - 9:40pm
17 Jun Stuart Clark

Wysiwyg Fields has been one of my more ambitious ideas in the world of Drupal. It is something that I feel Drupal has needed for a very long time, and something I could not resist taking on, but at times I felt that I had bitten off more than I could chew.

As difficult as it has been to write, it has been equally as difficult to write about, but here I go; My name is Stuart Clark, and this is Wysiwyg Fields.

 

What is Wysiwyg Fields?

Wysiwyg Fields is an Inline field management system, a module that bridges the gap between Drupal fields and CKEditor, giving the power of Drupal’s field system via the simple usability of a CKEditor dialog.

What that means is that Wysiwyg Fields allows for any Drupal field to be embedded directly into CKEditor and behave as a native CKEditor plugin, removing unnecessary clutter from your Drupal entity forms.

 

So… what is Wysiwyg Fields?

Let’s look at a standard use case for Drupal; Inline image management.

The below screenshot is of the Article content type provided by a default Drupal install. It includes three fields: Tags, Body and Image.

In my experience, clients and content editors alike would take an instant disliking to this form, as it’s missing a Wysiwyg and a simple method of inserting images into the body content.

Adding a Wysiwyg is easy enough, and while most (if not all) Wysiwygs will provide an image solution, the Images live outside of the Drupal realm; They can not take advantage of Drupal’s field formatter system, not be easily re-used in content or Views, or generally utilised by any other Drupal module.

 

Below is the same Article content type with Wysiwyg Fields enabled and configured for the Image field.

Apart from the addition of the Wysiwyg, the other most obvious change here is that the Image field is no longer present, leaving us with a much more compact form.

But the Image field is still there, it’s just now embedded in the Wysiwyg instead of part of the page. Simply click the Image field button on the Wysiwyg and you will be presented with something like the following:

This is a standard Image field widget embedded into a CKEditor dialog with a minor difference; Formatter and Formatter settings.

Upon uploading the image, the user can choose the formatter (if multiple formatters are set up for the field) and the formatters settings (if the formatter has settings) before clicking the OK button to insert the image.

Once inserted, the field, formatter and formatter settings can all be adjusted by selecting the inserted field and re-opening the Image field dialog, or simply by double clicking on the inserted field.

The field is rendered in the Wysiwyg as per the formatter and formatter settings as it would be when viewing the article after it has been created, however in the source code view (or via a non-Wysiwyg based Text format) it is a simple Token, as seen below.

The benefit of this approach is that whether the field or formatter ever changes, the content will automatically change to reflect those changes, whereas where markup injected it would not have the same flexibility.

 

Is Wysiwyg Fields a Image/Media solution?

No, Wysiwyg Fields can be used as an Image or Media solution, but it is not limited to any specific type of field. It can be used with any Drupal field, be it an Image field or a Text field, an Entity reference field or a View field.

Wysiwyg Fields doesn’t focus on being the best Image or Media solution, instead I would generally use Wysiwyg Fields in conjunction with existing Image or Media solutions; If they provide a field, Wysiwyg Fields can work with it.

However, Wysiwyg Fields is the successor to a module that was intended to be an inline image solution, Wysiwyg ImageField, and it is not out of the realm of possibility that Wysiwyg ImageField may see a future where it becomes a layer on top of Wysiwyg Fields to provide a simple inline solution.

 

Ok, I’m convinced, how do I set it up?

Setup is (hopefully) relatively easy to do, there are really only a few steps to get it running on a fresh Drupal installation:

  1. Install the module and dependencies as per standard Drupal instructions.

  2. Create or update a field so that it uses the Wysiwyg field widget.

  3. As per instructions provided on screen, add your Wysiwyg field button to a CKEditor profile.

That’s all it takes.

As Wysiwyg Fields is made up of many components, some of these components also require relevant setup, but Wysiwyg Fields manages this all behind the scenes as simply as possible. Primarily, Wysiwyg Fields that the Replace tokens filter is enabled on the Text formats utilised by CKEditor profiles with a Wysiwyg field button assigned.

 

Additional configuration

In the case that you create the field rather than change the widget of an existing field, you should have seen that there were some additional settings for the field, as seen below.

  • Sub widget type
    Wysiwyg Fields defines it’s own field widget, but some field types have multiple other widgets that change the way a field acts. This field allows you to chose the sub widget that will be used within the Wysiwyg Fields wrapper widget.
     
  • Sub widget settings
    These are settings specific to the fields sub widget.
     
  • Label
    By default, the button and dialog on the Wysiwyg will use the field label. This field allows that value to be overridden.
     
  • Icon
    Allows the customisation of the Icon which will be displayed in the Wysiwyg.
    Icons are provided by the Icon API module and any modules that defines Icon providers.
     
  • Formatters
    These are the field formatters that you wish to make available to the end user for the rendering of the field output.

 

Sounds good, can I use it now?

Yes! As of today (the 17th of June 2015) the first stable release for Drupal 7 is available; 7.x-2.0-beta1.

You can head over to the Wysiwyg Fields project page and grab it right now.

 

Can I simply test it?

Why yes, you can simply test it out now, thanks to SimplyTest.me, you can spin up a test Drupal 7 site with Wysiwyg Fields already installed just by going to: http://ply.st/wysiwyg_fields

You will still need to run through the setup steps above, but as I said, it’s easy.

 

This is a beta?

Yes, this is a beta, and as such there may still be some outstanding issues, as well as functionality still on the todo list.

It is recommended that in using the module you keep the beta status in mind, and if you do experience any troubling behaviour, or just have suggestions for the module, let us know over at the Wysiwyg Fields issue queue.

 

Get it now!

Download Wyswiyg Fields 7.x-2.0-beta 1 now!

drupaldrupal planetmodule
Categories: Drupal

Freelock : The case for git as a deployment tool

16 June 2015 - 9:10pm

More and more I keep running into assertions that Git is a version control tool, and that if you use it for deployment, you're doing it wrong.

Why?

At Freelock we find it to be a very effective deployment tool, and I'm not seeing a solution that meets our needs any better.

Two presentations in particular caught my attention recently mentioned this:

DevOpsDeploymentDrupal PlanetDrupalgitSaltJenkinsDocker
Categories: Drupal

Drupal Easy: DrupalEasy Podcast 157 - Rabbit Food (Anna Kalata - Getting Started in Core Development)

16 June 2015 - 11:40am
Download Podcast 157

Anna Kalata (akalata), a freelance Drupal Developer (AnnaKalata.com) from the Chicago area joins Ryan Price and Mike Anello to talk about getting started in core development, the New Jersey Shore Sprint, workflow, the Druplicon, Drupal major version stats, and our picks of the week.

read more

Categories: Drupal


Google+
about seo