This tutorial involves hacking core. If you aren't comfortable with doing that, you're probably in the wrong place :). I created a dropbucket.org drop called Memory profiling in hooks which has all the code details in case you want to dig in yourself. You'll need to modify includes/module.inc and also have devel module enabled for this to work.
A long time ago, in a galaxy right here, Donald Knuth wrote “premature optimization is the root of all evil”. This was in his 1974 paper “Structured Programming With Go To Statements”, yet this issue is still with us in various forms.
So you are planning to visit LA for DrupalCon? Want to site see or enjoy local flavors but not sure where to focus your efforts? I polled the team at Urban Insight, and we collected ected a few of our own favorites that will, hopefully, become some of your favorites as well.#10 LA Metro
Are you looking for a job? Have you considered working in the Drupal world?
Several OSTraining members have. They wondered about the skills they would need and the income level they could expect.
To give you an overview of what it takes to make a living in the Drupal world, we spoke with Mike Anello. Mike is a long-time Drupal contributor, based near us in Orlando, Florida. If you've ever seen a Dries keynote address at a Drupal, Mike is often the person asking Dries questions at the end.
One of my key takeaways from talking with Mike - the Drupal jobs are out there, but companies are now expecting applicants to bring more than just Drupal knowledge.
As many of you know, Global Training Day was this weekend, and it was a great one. We had 29 trainings in 20 countries around the world, showing once again that our community is second to none in passion and enthusiasm.
It's so exciting and humbling to help make GTD a reality. Watching the tweets pour in from around the world is truly awe-inspiring. Here's a selection of a few of our favorites from this year.
For those of you who didn't participate this time around but want to join in next quarter, check our Global Training Day page and sign up to host a training in your community. Again, thank you to everyone who helped make this GTD a reality.March 2, 2015
February 28, 2015
February 28, 2015
I have settled on using Udemy as my exclusive platform for delivering Drupal education. I'm so excited to start taking advantage of all the great tools the platform offers and I am laying the groundwork for engaging extensively with my students. I've got four challenges I'll be issuing to my students during the month of March, with a prize for each one as well as a Grand Prize at the end. It would be great to have you play along!
Part I highlighted the challenges of deployments, defined good deployments, and introduced the tools for developing the Promet way. If you haven’t already, you should probably read Part I now.
The Roman Baths is the primary attraction of the six Bath & North East Somerset Council Heritage Services; the Roman Baths, the Fashion Museum, the Victoria Art Gallery, Bath Venues, the Bath Record Office and the World Heritage Site.
The Heritage Services team wished to migrate all six of the websites from Immediacy to Drupal, and included a full re-design as part of the project. The contract was won in open tender by Microserve and Torchbox against stiff competition nationwide.
Torchbox carried out the Design and UX Phase before passing responsibilities to Microserve for the Development Phase. By working to each organization's individual strengths, Microserve and Torchbox were able to provide an efficient and cost effective partnership whilst still keeping a collaborative and concise communication channel between all three parties throughout the project.Key modules/theme/distribution used: FeedsSassonAdminimal - Responsive Administration ThemeCKEditor - WYSIWYG HTML editorDraggableViewsGatherContentHoneypotStyle GuideFeaturesEntity Construction Kit (ECK)Flex SliderOrganizations involved: MicroserveTorchbox
After a lively meeting, the Cheppers team decided to make our new website with Drupal 8. You can read about how and why we made this decision in the previous post. The following series of posts will document our progress, share the important lessons we learn, and highlight any mistakes we make in order to help others as they set out to use Drupal 8. This post will focus on our initial work for this project.
If you're serious about building your Drupal site right, you'll find yourself looking into command line tools like Git and Drush.
If you don't work in the command line on a regular basis, that might be intimidating. Well, not any more!
This series is designed to be a primer on the command line basics, to get you comfortable enough with the command line that you can utilize command line tools without hesitation.
Once you've watched the series, you can move on to the Drush series to improve your Drupal-fu, and will be ready for the upcoming Git series (which will be awesome, by the way!)
When you're ready, you can watch the entire series, for free.
When you do, let me know if you have any questions or comments!Tags: Command LineBasicsplanet-drupal
As we announced previously, 4Site has just released HubDub, a Drupal module that leverages the jPlayer framework and Popcorn JS to overlay web content—such as social media, maps, or web forms—directly onto a video as it plays. So... how does it work?Storing the Data
The Drupal end of HubDub is relatively straightforward. All of the information about a video is stored in a fieldable custom entity, called HubDub Video. Apart from the usual metadata like title, description, author and a unique identifier, what do we need to keep track of? First, we need the location of the video itself. HubDub needs direct access to an M4V video file (or a live RTMP stream), so we store its location in the URL field. A planned enhancement will let this URL be the actual Vimeo (and eventually YouTube) sharing URL, which is a lot easier for end users to find. The module would then parse out the actual video file location.
For each overlay, we need to track the start time, end time, and the content of the overlay. We could have used Drupal’s built-in field types inside a field group for this, but that can get messy for unlimited fields, so we decided to create a custom HubDub Overlay field type. As a former TV engineer, my first instinct was to use something like SMPTE timecode for the time fields. But jPlayer can’t place overlays with anything approaching frame accuracy, so we went with two simple integer fields, representing the elapsed time in seconds since the start of the video. To make it easier to deal with overlays in longer videos, especially now that HubDub supports live RTMP streaming, we’ll probably use a field formatter (such as the HMS Field module) to display these fields in hours:minutes:seconds.
Finally, to declutter the edit form, we provide an administrative title for each overlay, and collapse the field by default.Displaying a Video
Okay, we’ve now got all of the information about a video stored in Drupal’s database. Now how do we display a video? Well, first of all, where do we display it? By using Drupal’s Entity API we get a page display for each video (almost) for free, but we wanted to give site owners the flexibility to place videos wherever they wanted, so automatically creating a block for each video was a no-brainer.
I’ve created lots of blocks in code before, but I’d never done so dynamically for all instances of an entity type before. It was a lot easier than I expected, as I learned from looking through the Views module. In the hook_block_info() implementation I load all the HubDub Video entities, then iterate through them with a foreach and add each video to the array. Then, in the hook_block_view() implementation, it’s just a matter of calling the callback with the right delta. There are still a few to-dos here, namely dealing with entity titles longer than 32 characters, and adding some caching for performance.
The initial release of HubDub is our “minimum viable product.” It works, but there’s so much more we have planned. A few of the things on our roadmap:
- More granular access control for CRUD operations. Right now, all HubDub actions are controlled through one global “administer hubdub” permission. We’ll soon be adding the Drupal standard edit/delete own/any permissions.
- Support for additional video providers, including YouTube, and non-m4v file formats.
- Greater cross-browser HTML5 support.
- Additional jPlayer options, configurable through the admin UI.
- Media module support.
- More user-friendly support for skipping to another point in the same video, or branching to another video, from within an overlay.
- Better support for overlays on live streams. Right now, overlays are timed from the start of playback, but this doesn’t make sense for live streams. We’re considering just using the server time in hours:minutes:seconds, but we’d love to hear potential use cases and their requirements.
- Eventually, a more user-friendly way of adding overlays. We’re considering a video player on the edit form, with a button in the player controls to add an overlay at the current playback point.
We're eager to hear your feedback! Please post bug reports, feature requests, and support questions in the HubDub issue queue.
We have even more details to share on how HubDub works under the hood, so stay tuned over the coming days. If you'll be attending the Nonprofit Technology Conference next week in Austin, stop by our booth (#214)! We'd love to chat and give you a demo. If you’re interested in a custom HubDub solution, integration with your CRM or AMS, or video production or editing services, please contact us.
I gave a talk at Drupal Camp London this year, focusing on the UX of CMS users a.k.a the forgottten Drupal user. Below are the slides and a few notes to accompany them.
For cause-driven organizations, a website is a place to highlight impact, share resources, and build support. While a blog or brochure site can achieve some of these goals, it rarely does it all. Unfortunately, we all too often find organizations confined by the free and low-cost online platforms accessible to them. With that in mind, we’ve built OpenAid. It’s a free and open-source website starter kit developed for nonprofits and grassroots organizations. Its feature set is robust, its architecture flexible, and it can be installed in minutes.
We worked with activists, community organizers, and aid workers to build a platform that serves their organizations’ needs. Here are some of the features we’ve built to allow groups to inspire and connect with others on a scale that truly reflects their impact in the world.
- Project mapping. Each project or program you add to the site is displayed on dynamic maps, allowing users to see the full scope of your work. Because OpenAid is flexible, you can easily adjust a project to instead be a city or chapter and still take advantage of all of the mapping features.
- Blog and news. There are subtle but important differences between a News section and a blog, so we decided to build both for ultimate flexibility. Associate authors with your posts to create dynamic profile pages and allow users to track their favorite writer’s work. Reference a project with a post and it will display on a project’s page, creating almost a mini website for that project.
- Resource library. Share the resources you’ve created with the rest of the world in an easy-to-find way. We’ve added metadata fields such as Resource Type and Topics and provided a filter set and search interface to allow users to quickly discover the tools and materials relevant to them, even if your library has grown to hundreds of documents.
- Image galleries. Pictures are key to telling your stories and connecting with your supporters. Associate a gallery with one or more projects to highlight events, volunteers, and initiatives specific to that project’s work.
- Beautiful, responsive design. Design is important and we want your website to look great regardless of device. A color picker allows you to easily adapt OpenAid to reflect your organization’s identity. We’ve also developed it with flexibility in mind so if you add new pages to the site or add fields to a content type, your site will retain that same great look and feel.
You can dig further into OpenAid’s feature set by spinning up a free sandbox site on Pantheon. Or download the distribution at https://drupal.org/project/openaid to install on any server. If you have further questions or would like assistance getting set up with OpenAid, feel free to reach out to me at email@example.com.
Last week was awesome, sort of. I hit all the numbers on my guide launch I was hoping for, and then promptly got the stomach flu. After two years (lots of running in circles) of working through this process of launching I did it!
Now it could have just been being sick, but I ended the launch wanting something more. And the reality is this isn't the first time I've been down after a success.
Does that ever happen to you? You get so excited about something and launch it? Then the next day you wonder if you could have done better, or you aren't sure where to go next. It's happened with our clients, we work so hard, we push the code, we launch on time, and then the question of "Now what?" lingers.Read more
This year in Los Angeles, the Higher Ed Summit will be part of the official DrupalCon program for the first time. Along with the Business and Community Summits, the Higher Ed Summit will meet on Monday, May 11.
In case you missed it, the Drupal community electing one candidate to serve a two-year term on the Drupal Association Board of Directors. There are two At-Large (community elected) seats on the Board. The other seat is currently held by Matthew Saunders. We've got a really global slate of candidates to consider, and we encourage you to get to know them by listening to the Meet the Candidates sessions and asking them questions on their candidate profile pages.Who can vote?
Voting is open to all individuals who have a Drupal.org account by the time nominations opened and who have logged in at least once in the past year. These individuals' accounts will be added to the voters list on association.drupal.org and they will have access to the voting.
To vote, you will rank candidates in order of your preference (1st, 2nd, 3rd, etc.). The results will be calculated using an "instant runoff" method. For an accessible explanation of how instant runoff vote tabulation works, see videos linked in this discussion.Elections process
Voting will be held from 9 March, 2015 through 20 March, 2015. During this period, you can review and comment on candidate profiles on assoc.drupal.org and engage all candidates through posting to the Drupal Association group. We'll also be scheduling and announcing three phone-in all candidates meetings, where community members and candidates can ask questions and get to know each other.
Flickr photo: Kodak Views