What is a Drupal Drive-in? The idea is to have an un-conference-style one day event where attendees have the opportunity to propose topics for group discussions to fully prepared presentations. Each attendee will get to vote on the topics presented during the event.
If you want to learn more about the concepts and inspirations behind Drupal drive-in type events, check out the recent DrupalEasy podcast 119. Our very own Thomas Lattimore discusses his concept behind the Charlotte Drupal Drive-in event.
Whether you have a topic idea for the drive-in or not, you are invited to register today!.
I am really looking forward to seeing old Drupal friends and meeting new ones at the event. It will be a blast.Blog Category:
The application itself will be fairly simple. It will wait for you to click the "Select" button on the Pebble watch. Once the button is clicked, the app will grab your current latitude and longitude coordinates. It will then use the Services module to create an Article node and save the coordinates onto a Geofield on your Drupal site.
Let's get started!
Drupal 7.25, a maintenance release with numerous bug fixes (no security fixes) is now available for download. See the Drupal 7.25 release notes for a full listing.Download Drupal 7.25
Upgrading your existing Drupal 7 sites is recommended. There are no major new features in this release. For more information about the Drupal 7.x release series, consult the Drupal 7.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 includes the built-in Update Manager module, which informs you about important updates to your modules and themes.
There are no security fixes in this release of Drupal core.Bug reports
Drupal 7.25 contains bug fixes and small API/feature improvements only. The full list of changes between the 7.24 and 7.25 releases can be found by reading the 7.25 release notes. A complete list of all bug fixes in the stable 7.x branch can be found in the git commit log.Update notes
See the 7.25 release notes for details on important changes in this release.Known issues
None.Front page news: Planet DrupalDrupal version: Drupal 7.x
I met Anthony, aka @ircmaxell, for the first time at the PHP BeNeLux conference in early 2013. He was among the first people I spoke with on mic about PHP. Our conversation about PHP being secure was one of the seeds that grew into the "Power of PHP" series on Acquia.com, though you'll notice we were still calling it "PHP Myths" at the time. The series will be continuing in 2014, stay tuned to the Acquia podcast and the Acquia blog for more!
Classic Graphics bet big on Drupal. Our largest customers get their orders on time because we have built systems for them based on Drupal. Even though we're up to 300 employees now, with layers of management, the non-technical management still is aware that we use Drupal for custom development in part because Bryan and I heavily evangelized Drupal within Classic.Thinking ahead
One of the concerns we discuss at infrequent intervals is what Classic would do if Drupal ceased to exist or if Drupal is still the best choice for doing our custom development now and in the future for the types of accounts we're pursuing. Our considerations also have to include our guesses about how the community will adopt things like Symfony or what Drupal 9 might look like.
The recent acquisition of Classic by Imagine! Print Solutions raised the discussion again. The guys at Imagine! have largely bet their development platform on .NET. Should Classic now look to adopt .NET platforms, or vise versa. We pretty quickly concluded that was not likely, at least in the short term.
As a "printing company", the Classic and Imagine! sales teams obviously look for opportunities to put ink on paper, but companies who have failed to adopt computerized order management to match their customers' needs have been becoming extinct in the printing industry. A lot of big business still operate using spreadsheets that get emailed around between departments and edited by people instead of systems. The companies which are excelling in becoming service providers in addition to being a "print shop" can adapt their print manufacturing to a customized list of retail locations or to a particular grouping of kits.Pain
You shouldn't hire a new accountant until your current accountant is unable to complete their work in a normal workday. You ask your accountant to work a couple extra late nights and start looking for another accountant. Wait until the pain has reached its peak, then relieve it. In the meantime, there's a waiting period to put a job posting out, wait for responses, interview people, do background checks, hire them, let them give 2 weeks notice at their current place, and then train them. From the date you decide to hire a new accountant, you may be putting extra stress on your existing team for another 5-6 months.
In my experience, nobody spends big money on custom software development to manage sophisticated data workflows until they're screaming in pain. That's probably the result of some prudent money management, but it draws parallels to adding to your accounting department. By the time a software development budget is approved and a business analyst has writtens some vague specifications, the customer is already impatient. They're living their peak of pain. They won't want to wait for prototyping, agile sprint reviews, automated testing, continuous integration platform builds, VM spin-ups. etc. The better you can streamline all the overhead of project ramp-up, the closer you are to just working on solving the customer's problems.Insert: cinder block
In the situations where the project is already filled with hot, impatient people, the "when all you have is a hammer, everything looks like a nail" scenario applies. I think the best thing you can do in that case is use your hammer, but I prefer a slightly different view on the common analogy - using a cinder block; a hammer is much too elegant. A cinder block is a clumsy thing to carry around. If you've ever worked with cinder blocks for a long period of time, you'd also find they have fragile points that cause them to leave cinder block crumbs everywhere they go.
I also extend the analogy by introducing oak, the hard wood. Most construction projects for buildings take advantage of softer wood like pine. They're cheaper because soft wood trees grow quicker and are easy to work with. Even when you have the right tools, like a standard claw hammer and some hard-wood nails, driving a nail into oak is a tough task; you have to hit the nail harder, probably a few more times, but the nails are also much more likely to bend. Driving nails into oak simply requires more skill and patience than does pine.
Put it all together now. I think of development like driving a used nail into an oak board using a cinder block. Picture some skinny desk geek gently "tapping" a nail while awkwardly straddling a block. That's development. Even though he might know just where to put the nails, he's going to bend a lot of them.Using the ideal tools
The problem with development is that developers can't just drive to Lowe's, buy a claw hammer or an air compressor with nail gun, and return to the job site. Professional development is the culmination of years of practice, trial-and-error, and research. For a developer to leave their cinder block behind, they essentially engage in a process of researching all devices that could be used for hitting a nail, types of screws and screw drivers, rivets, whether its appropriate to be using wood or if they should switch to aluminum, then narrow down to one with is most appropriate for a specified budget, go to meetings about how to hold the hammer in the right place, how to apply safety equipment, and on and on.
Since the customer always wants their solutions now, as cheaply as possible, when all the developer has is a cinder block, it's best that they use it. Drupal has been my cinder block since 2004 and I continue to use it because it's been able to solve most of the problems brought to me. It may not be always the most elegant, but I know how to hold the Drupal cinder block in just the right angle to bend the fewest nails. I've built up muscles for holding the Drupal block. Drupal has a lot of flexibility to change and hook in custom code and I've spent a lot of time already figuring out how to use Drupal in a way to minimize project startup overhead.
I think in Classic's case, since we've invested heavily in Drupal and staff that specializes in Drupal, it continues to be the bet for our development in the next 3-4 year window.Preventing stale
Using your cinder block to hit all your nail problems isn't really all so bad because it's probably still the shortest, cheapest path to driving the nails. Keep researching and learning about other tools so you can occasionally hit the nails with a sledge hammer, the back of an ax head, or even a rare, standard claw hammer. PHP developers should probably be able to read some .NET code, try to take on some bug bounties for a node.js server, and write their own devops scripts in bash instead of trying to get a server admin to do it.Post categories Drupal
During TWBS development upgrade Drupal 7 core jQuery libraries into its latest version for Bootstrap is a must. BTW jQuery Update seems not my cup of tea because it give me too much trobule within previous site building experience: too complicated, bundle everything within its own archive (which I love to manage 3rd party libraries with drush make and Libraries API), and it is really too much for my use case. So why not just work out a simplified version?
After some research and development during Christmas holiday, I would like to introduce my helper module named "TWBS jQuery". The goal of TWBS jQuery is to provide a handy support for jQuery upgrade and act as the helper module for on going Drupal-Bootstrap-Remix development.
All replacement will be handled automatically. No additional configuration is required.Key Features
- Provide drush make file for library download
- Confirm library successfully initialized with hook_requirements()
- Upgrade jQuery related libraries as below version:
- Port from jQuery Update, upgrade conflicted .js implementation:
Download and install with drush manually:drush -y dl --dev twbs_jquery drush -y make --no-core sites/all/modules/twbs_jquery/twbs_jquery.make
Package into your own drush .make file (e.g. drustack_core.make):api = 2 core = 7.x projects[twbs_jquery][download][branch] = 7.x-3.x projects[twbs_jquery][download][type] = git projects[twbs_jquery][download][url] = http://git.drupal.org/project/twbs_jquery.git projects[twbs_jquery][subdir] = contrib Live Demo
For general and generic jQuery update functionality, you should always consider another jQuery Update module which started since 2007-04-26.
On the other hand you should consider about using this module because of:
- Purely design for assist TWBS, which means you will have the best compatibility when using both together
- Fetch libraries directly from original repository and handle initialization with Libraries API; jQuery Update bundle all libraries into it's own code repository and initialize manually
- Only support latest official version of libraries which result as no additional configuration required; jQuery Update support multiple version of jQuery
- Much simple implementation which handle all upgrade and replacement automatically; jQuery Update provide more customization options
Please feel free to test it out and comment with your idea. Let's enjoy simplified jQuery update experience ;-)Tags Drupal Development jQuery
Every day, millions of nodes are saved. It happens every time content is created, migrated, or updated. It's probably the most common content management task in Drupal.
But there are lots of ways you can change the node-save experience for your users, and there are many contributed modules that offer alternative approaches to saving nodes. Here are a few that I like.Add another
The Add Another module allows gives users the option to save a node while quickly creating a new one. You can choose to add the option to the admin form itself, or as part of the save confirmation message. It's great for those content types, like "Image" or "Video" for example, where your users find themselves creating a series of nodes in succession.Hide Submit
Occasionally you'll see an issue where an end user clicks submit on a the node-edit form and, being ignorant of the fact that the request is being processed, clicks submit several more times to see if it's broken. Sometimes this can lead to multiple form submissions, resulting in bad things like duplicate content. The Hide Submit module does one simple thing: Prevent forms from being submitted multiple times. It does this by disabling the submit button once it's been clicked, with settings to fade out the button, append text, or hide it all together. This prevents errors, but it also signals to the user that the submission is in progress, helping to alleviate a bit of the frustration.Publish Button
"Does the word "Save" mean that I'm saving a draft or does it mean that I'm publishing the content live?" While it may be obvious for those familiar with Drupal, the intent of the button isn't always clear for new users. The Publish Button module aims to make it more explicit by splitting up the "Save" button into two buttons: "Save" and "Publish". If a node is published, the publish button is replaced with an "Unpublish" button.Node Buttons Edit
What if you have your own idea on what button text should be used? You could use "string overrides" module for a universal approach to text customization, but the Node Buttons Edit module gives you a straightforward admin page for customizing the button text specifically. No need to incur the additional overhead if you don't have to.More Buttons
The More Buttons module gives you the option of turning on more buttons (shocking, I know), to further customize your content saving experience. For example, you may want a "Save and Continue" button to save the status of the current input while continuing to make changes. Or maybe you'd like a cancel button, to close the form altogether. If so, this module makes these (and other options) available to you.
So next time you see users tripping over the node saving workflow, remember that you, as a sitebuilder, have a handful of options at your disposal to make things a bit more clear.
I took over a Drupal 7 project building a web application for college students to upload original videos about their school, and for schools to manage, group, and share the videos.
It's a startup privately funded by the principal, and we are literally working on a shoestring. My previous experience with media in Drupal led the principal to contact me via LinkedIn.
When it came time to build a video playlist in Drupal Views for JW Player version="6.7.4071" (formerly known as Longtail Video), I found very little useful documentation. In fact, someone suggested that those who know how are not interested in sharing their knowlege. -- but not me
Back to the playlist: Site admins can mark a video featured by ticking a checkbox on the custom video content type. Now I want to display those featured videos as a playlist.
Angie and I were at Acquia headquarters in Massachusetts at the same time in the spring of 2013. This gave us the chance to sit down and chat in front of the camera about all things Drupal. Highlights from our conversation became two podcasts with accompanying video. In this part of the conversation, Angie talks about how she got into Drupal and more.
- Before we jump into it, I want to get a little background on Headscape, so that people know where you’re coming from. What kind of sites do Headscape typically work on?
- How big is Headscape?
- What other technologies do you guys build with?
- What was the driving factor behind going open source?
- What’s your role at Headscape? What do you do day-to-day?
- Paul and Marcus mentioned on the Boagworld Podcast that Headscape has put out a couple of Drupal sites recently. Which ones are those?
- Since you guys aren’t a Drupal-only shop, why was Drupal the right choice for these projects?
- Are you contributing anything back to Drupal.org?
- What problems have you encountered using Drupal?
- How did using Drupal make the development process easier or harder?
- Where do you guys host your sites?
- Ted Bowman
What type of projects or project aspects will make you choose another system besides Drupal? What make you choose WP? Custom Coded?
Could you ask if Ian sees wordpress as inferior / used for different types of projects than drupal.
Why not use drupal for all projects and drop wordpress / custom builds
Would be interested to know what drupal version they use and when they will consider 8 - 12 months or longer
Would be interested to know about their development process from dev to live
Have you heard of/used NodeSquirrel?
Use "StartToGrow" it's a 12-month free upgrade from the Start plan to the Grow plan. So, using it means that the Grow plan will cost $5/month for the first year instead of $10. (10 GB storage on up to 5 sites)
2014 is going to be a big year for Drupal. I spent a lot of 2013 sprucing up services like Hosted Apache Solr and Server Check.in (both running on Drupal 7 currently), and porting some of my Drupal projects to Drupal 8.
So far I've made great progress on Honeypot and Wysiwyg Linebreaks, which I started migrating a while back. Both modules work and pass all tests on Drupal's current dev/alpha release, and I plan on following through with the D8CX pledges I made months ago.
If you use Drush, it's likely that you've used the "drush pm-download" (or "drush dl" for short) command to start a new project. This command downloads projects from Drupal.org, but if you don't specify a project or type "drush dl drupal", the command will download the current stable version of Drupal core. Currently, this will be Drupal 7 with that being the current stable version of core at the time of writing this post.
But what if you don't want Drupal 7?
Happy New Year to all. 2013 was a year of many changes. These were professional, personal, and on a more macro level. I had recently left my job with Trellon to pursue contract work. We had just finished renovating our kitchen - just in time for a New Year's Eve party that involved a large percentage of guests from the Drupal community. Our little dog, diagnosed with mast cell cancer, wasn't expected to live for much longer (spoiler - he's still kicking it with us). Congress, in the United States, continued to be deadlocked culminating in a partial shutdown of the government, and a populace that was sick and tired of 534 people who simply could not agree on anything. There was a seriously flawed rollout of the healthcare Website, which as a Web Application professional I found fascinating.
I thought that sharing some bits and pieces from my life over the last year might be fun. If you feel interested enough to follow along my geeky and Drupally year, that would be just fine.January
I had started working as an independent consultant with several clients late in 2012. The biggest one was 5 Rings Web, where I was consulting as the COO and managing the project management side of the shop for my good friend Lindsay Ogden. 5 Rings is largely a Drupal shop and I started by auditing processes and helping the group of excellent developers and designers organize in a more efficient manner. I was lucky to work with some terrific clients supporting existing Drupal sites but also defining some complex architectures for several companies and helping the team organize around Agile Sprints to bring web products to market. I am very proud of the work I did there when I was more heavily involved in working with them. Some how I managed, while doing operations for both Vintage Digital and 5 Rings to write a blog post on Managing Multiple Drop boxes March
In March the community found out that Neil and Marta were leaving the Drupal Association in a restructure of the organization. This came as a shock to many. There were those who had really come to know Neil and respected his hard work on the Drupalcon. He had a pretty rough go of it with Drupalcon Denver in 2012 as he better integrated into the community. I was amongst those who were deeply saddened by the departure. Holly reached out to many in the community, including myself, to reassure us. drupalrecap2013Happy New Yeardrupal associationCrown Pointe Academydrupalcamp coloradoBADCampAten Design Group5 Rings Webvintage digital
If you’re anything like me, you’ve been meaning to get involved with Drupal 8 for quite some time now. But where to start? What’s left to be done? How do I find tasks that match my skills? Enter Core contribution mentoring.
It’s not a secret that QA engineers work with technical specifications, but sometimes there are no specs regarding the search functionality on a site and you end up with something like “Default search module”, or your PM will just say - “Simple search, nothing to test”. In this situation you can use only your imagination. This blog post is for those quality assurance engineers who might not know what “Standard Search in Drupal 7” really means, or how to test it.
First thing you should know about the Standard Search in Drupal 7 is the way it indexes content. The content can either be reindexed manually, or be automatically marked for reindex after you add it (or edit existing content). The content that’s queued for reindexing will be indexed when cron runs. This can happen automatically through the use of a specific schedule, or, for testing purposes, you can run it manually from the Admin UI.
To run cron, you have 2 options:
- Use the Administration Menu module - hover over the home icon in the toolbar and click Run cron.
- Go to Reports > Status report (admin/reports/status), and under Cron maintenance tasks click run cron manually.
Note: If you use Apache Solr for your Search system, it may be not enough to just run cron once. It usually needs an additional 2 minutes after “run cron” to re-index results.
The best way to start testing is getting to know the search configurations done on the site. If you go to configuration-> search and metadata ->search settings, you’ll find the configurations implemented for your search. Now, lets see them more closely.
1. Drupal Search allows users with Use search permission to search for content and users separately. By default, both Node and User searches are active. In order to search for users, the user should have permission to view user profiles.
2. By default Minimum word length to index is set to 3, that means that you will not be able to do a search if you don’t have at least one 3-character word in your search query.
This also means that if you search for nodes with title ”How to find a bug” you can find it by using the keywords: “find”, “bug” and “how”.
You should get results in the following cases:
- Whole title (ex: how to find a bug)
- Long words (ex: find)
- Long word and short word (ex: to find )
You should get a validation error for:
- Only short words (ex: to a)
You should get “No results” for:
- one long word and one word not from this sentence (ex: bug report)
Also search is indexing (saving) keywords separated by spaces. The following examples will not return any results:
- half or part of the word (ex: fin)
- words without spaces between them (ex: howtofind)
- words separated by underscores or something else (ex: how_to_find_a_bug)
Results should appear for these cases:
- With multiple spaces between words (ex: how to find a bug)
- Or in reverse order (ex: bug a find to how)
4. Lower/upper cases - Test your search by entering words with upper and lower cases (ex: InTerVIEw). This should work out of the box in case-insensitive mode.
5. Don’t forget that this search should work not only with titles, but with all content bodies as well. Make sure to search for some keywords from the content, maybe you’ll find a little bug. You never know.
6. Permissions - To know what permission the users have, go to Modules-> Search-> Permissions (or People and select the Permissions tab).
By default, all users (Anonymous + authenticated) can view published nodes, so they should appear in the returned results (if you allow anonymous users to search, of course). In this case just unpublish the node and then enter its title in the search field. You know what result you should get.
I hope this information will make your testing easier and more pleasant! Happy New Year!Language English Tags: DrupalDevelopmentCheck this option to include this post in Planet Drupal aggregator: planet
During TWBS development I figure out that introducing LESS support in Drupal 7 would be a great idea when combine with Bootstrap and Font Awesome. After some research and development during Christmas holiday, I would like to introduce my helper module named "TWBS LESS". The goal of TWBS LESS is to provide a handy support for LESS and act as the helper module for on going Drupal-Bootstrap-Remix development.
Add your files just like any other CSS file, just with .less as the extension, and they will be automatically processed. No additional configuration is required.Key Features
- Provide drush make file for library download
- Confirm library successfully initialized with hook_requirements()
- Support both LTR *.less and RTL *-rtl.less, as like as that of locale_css_alter() supported
- If Drupal's CSS aggregation enabled, all .less will automatically compile at server-side by lessphp as .css before Drupal CSS aggregation
- If Drupal's CSS aggregation disabled, all .less will link with rel set to "stylesheel/less" individually, so less.js will handle with client-side compile
- Support FireLESS for .less debug with Firebug in client-side compile mode
TWBS LESS is now integrated into DruStack distribution, so you can try it in a live sandbox with simplytest.me.Why Another LESS Module?
For general and generic LESS support you should consider another LESS CSS Preprocessor module which started since 2010-03-04.
On the other hand you should consider about using this module because of:
- Purely design for assist TWBS, which means you will have the best compatibility when using both together
- Support both server-side pre-compile / client-side live-compile with debug mode enable; LESS CSS Preprocessor only support server-side pre-compile
- RTL support with *-rtl.less just as simple as CSS *-rtl.css that Drupal core supported; LESS CSS Preprocessor require it to be named as "somename.css.less" style
- Server-side pre-compile CSS as naming based on its original .less md5_file() result, which means even you add a single space the cache file will also be regenerate; LESS CSS Preprocessor calculate based on filemtime()
- Much simple implementation which handle all LESS support automatically as like as that of Drupal core CSS support; LESS CSS Preprocessor coming with 3.5x times as compare in final downloadable archive size
Please feel free to test it out and comment with your idea. Let's enjoy simplified theme development with LESS ;-)Tags Drupal Development
The monthly Drupal core bug fix release window is this Wednesday, and since it has been a while since the last one, I plan to release Drupal 7.25 on that date. However, in practice the release might not happen until Thursday, due to the holiday and to give people a bit more time to test the latest code. Per our release policy, this will be a bug fix release only (no security fixes).
The final patches for 7.25 have been committed and the code is frozen (excluding documentation fixes and fixes for any regressions that may be found in the next couple days). So, now is a wonderful time to update your development/staging servers to the latest 7.x code and help us catch any regressions in advance.
The relevant change records for Drupal 7.25 are listed below. This is not the full list of changes, rather only a list of notable API additions and data structure changes that might affect a number of other modules, so it's a good place to start looking for any problems:
If you do find any regressions, please report them in the issue queue. Thanks!
Upcoming release windows after this week include:
- Wednesday, January 15 (security release window)
- Wednesday, February 5 (bug fix release window)
Contrary to popular belief, the Drupal 8 Configuration Management Initiative (CMI) is not done. In fact, there is still a fair amount of work remaining. To help get some momentum, we are going to start holding CMI IRC meetings in #drupal-cmi every other Monday at 20:00 UTC (3pm Eastern). Our next IRC meeting will be Monday, January 13 at 20:00 UTC. Additional meetings will be on January 27, February 10, 24, etc. All of the Drupal 8 initiative meetings, including the CMI meetings, are listed on the calendar on Drupal 8 Updates and How to Help.
Anyone who is interested in helping to get Drupal 8 closer to having a working configuration system is welcome to join the IRC meetings. That said, we have a lot of complex problems to solve. While it would certainly be helpful to check out the the issues listed under the tabs above (Focus Issues, Beta Blocker, Novice Issues, etc.) our most important issues at the moment are listed on the meta issue Making configuration synchronisation work.Tags:
One of my favorite Drupal moments in 2013 was meeting Gaelan Steele in person at DrupalCon Portland. This was eclipsed very quickly by being present when Gaelan and Dries met for the first time - and having my podcast microphone on! This was probably also eclipsed by Gaelan schooling Dries on how he learned to use Drupal ... see his answer below and in the podcast.