Software
DrupalCon Amsterdam: Training spotlight: Design, Prototype, and Style in Browser
Design, Prototype, and Style in Browser (formerly Advanced Sass and Compass for RWD) is back! One of our most popular courses returns, with even more great new content - and now is your chance to attend this training at DrupalCon Amsterdam!
With more mobile device activations per day than human births and full internet browsers coming to television sets and gaming consoles (both home and portable), the old techniques we have used to create pixel-perfect sites for desktop audiences have already become a thing of the past.
We will explore content strategy as a method for designing responsive websites, building separate components and layouts, and will emphasize creating DRY code. We will dive deep into the power of Sass and Compass and a handful of JavaScript tools and how they can be utilized for your growing website. These tools can ease much of the hard work related to creating truly awesome responsive websites.
Meet the Trainers from Four KitchensChris Ruppel (rupl) and Ian Carrico (iamcarrico) are Frontend and Backend developers at Four Kitchens respectively. Both are well-known in the Drupal community as both RWD and Sass experts, having trained and spoken at numerous events around the world, including Portland, Denver, New York, Austin, San Francisco, and Munich, Germany.
Neither are strangers to community contribution: Ian maintains the Aurora base theme and Magic module and contributes to many RWD-related Compass extensions such as Toolkit, Singularity, and Breakpoint. Chris maintains the Modernizr module and has contributed to Modernizr, the Drupal 8 HTML5/Mobile initiatives, and the Drupal.org D7 upgrade.
Attend this Drupal TrainingThis training will be held on Monday, 29 September from 09:00-17:00 at the Amsterdam RAI during DrupalCon Amsterdam. The cost of attending this training is €400 and includes training materials, meals and coffee breaks. A DrupalCon ticket is not required to register to attend this event.
Metal Toad: Simple password grants with OAuth 2.0 and Drupal
Like many Drupal developers, we have become big fans of decoupled front-ends using Drupal as a RESTful backend (a.k.a. "headless" Drupal). The myriad of authorization options can be confusing, however. We've settled on OAuth 2.0 for most situations. When OAuth is brought up, many people will think of the single-sign-on flow in a browser, with the associated redirects and permission dialogs. This flow is widely used, but not always a good fit for first-party applications, or machine-to-machine API interactions.
Károly Négyesi: I AM GROOT
Or, languages are really hard.
So I was handing over some CSV export functionality to a client who loaded it into Excel as it is without using the import wizard. This resulted in misinterpreted UTF-8 as WIN-1252. I quickly wrote this little function (error handling omitted for brevity):
<?php
function uconv($text) {
$descriptorspec = array(array("pipe", "r"), array("pipe", "w"));
$process = proc_open("/usr/bin/uconv --add-signature", $descriptorspec, $pipes);
fwrite($pipes[0], $text);
fclose($pipes[0]);
$text = stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($process);
return $text;
}
?>
A quick test of the function showed it working, so I patched the CSV export to call it, deployed it on the dev server and... it died on the first accented character. I have checked on the dev server from command line and it worked. W.T.F. I compared the mbstring ini values, all the same. W.T.F, no, really, this can't be.
Well, there must be something different, right? What could be? Locale? But what's locale? Environment variables. Hrm, proc_open has environment variables too. Well then let's see whether my shell feeds something into this script that makes it work: env -i php x.php. It breaks! Yay! It's always such relief when I can reproduce a bug that refuses to be reproduced. The solution is always easy after -- the LANG environment variable is en_US.utf8 in the shell, and C in Apache:
<?php
proc_open("/usr/bin/uconv --add-signature", $descriptorspec, $pipes, NULL, array('LANG' => 'en_US.utf8'));
?>
Ps. Curiously enough, -f utf-8 as an uconv argument didn't help -- but -f utf-8 -t utf-8 did. Morale of the story: uconv defaults to the value LANG both to and from. This is not documented and it's very hard to discover.
Modules Unraveled: 118 Starting and Running a DrupalCamp in a Hobbiest Community with Adam Hill - Modules Unraveled Podcast
- When did you start the DrupalCampNE meetups?
- Started due to meeting a friend Richard at DrupalCons in Paris, Copenhagen and Denver and saying how crazy it was that we met at DrupalCons across the world but not in the North East where we’re both native. So we setup a meeting and promoted it on twitter and with some others we knew had at least dabbled with Drupal. We had 6 people at our first meeting and that happened in a pub which was to set the stage for the future meetups which have all been held in pubs.
- I’ve thought about how cool it would be to start a local camp, but we don’t have a lot of people even coming to our meetups. What have you (or other organizers) done to get consistent attendance to events?
- Consistency… Mixup of talks and social but always keep it social so expectations are not too high. For the camp we needed there to be a few people interested and then had backing from my company to allow us to dedicate time. Dedicated time has been vital.
- How large is a typical meetup? What’s the average attendence?
- We get anything from between 5 - 20 people attending but its really a mixup again, depends heavily on the day to some extend (holidays etc.) but also on if there is a talk. Our WP vs Drupal talk got a LOT of people :)
- How far do people travel to get to your meetups?
- We’ve had people doing a round trip of 100 miles before because there is no meetup in the North of the North West… but usually people come from Newcastle or there abouts. We lose a few people since its too far for them to come for sure.
- When did you start organizing a Drupal Camp for the North East of England?
- August 2013 - started asking/checking about venue
- Went to other camps in UK to promote and to share info
- November 2013 - announced the date around DrupalCamp North West
- What were some of the challenges you faced? Were there any unexpected ones that stick out to you?
- Local attendees
- Sponsors
- Cancelled talks
- Outsourcing - Venue
- What went really well for you? How did you plan for it?
- The feelings of collaborating - fresh eyes were really liberated.
- The venue was loved
- The talks by Morten and Holly Ross
- What advice would you give to someone who’s planning a camp now? Or will be soon?
- Plan really well in advance
- Find a great venue and try to get it for free :)
- Have the freedom to make decisions - keep a small team?
- Get sponsors early!
- Get speakers early!
Mediacurrent: How To Do A Combined Name Search
Recently I developed some functionality for a client that I realized might be useful to the greater Drupal community. This post describes how to set up a combined fields filter in Views to allow searching for terms and matching more than one field.
Palantir: DrupalCon Amsterdam
Each year the Drupal Association coordinates a few large-scale conferences for the global Drupal community. This time around the European conference is in Amsterdam, and we’ll be there to enjoy code sprints, meeting new members of the community, sessions, and, of course, presenting a few ourselves.
First, a few details: DrupalCon Amsterdam runs September 29 through October 3 and will have a couple thousand people from the Drupal community in attendance. Like the North American DrupalCon, sprints, events, and over 100 sessions will happen over the course of the conference.
Palantir will have a number of folks in attendance, including our CEO George DeMet, President Tiffany Farriss, Director of Development and Professional Services Ken Rickard, and Senior Architect and Community Lead Larry “Crell” Garfield.
Larry “Crell” GarfieldLarry will be leading three sessions:
- Drupal 8: The Crash Course - A quick tour of the moving parts that make up most standard modules in D8.
- A Decoupled Drupal with Silex - Case study of using Drupal as part of a decoupled CMS architecture. There's also a Drupal Watchdog article on the same topic.
- Managing Complexity - Drupal internal management/strategy discussion.
Ken dives into the consulting piece for dev shops.
George DeMetGeorge has been involved with several Drupal working groups for some time now and will be on two panels related to such goings on.
In addition to ours and all of the other sessions – and Amsterdam as a city, of course – we’re also excited for all of the other things that come with DrupalCon. Whether it's sprint days making progress on Drupal 8 core and contributed module development, or the the PHP track this year (which showcases a number of leading presenters from the PHP world at-large helping continue to build bridges between Drupal and the PHP community), meeting new contributors (especially from the Symfony community), or working with the Drupal Association its working groups to help plan the future of Drupal.org and DrupalCon, it's a chance for all of us to grow as members of this and other communities.
Are you headed to Amsterdam for DrupalCon? If so, say hello to Tiffany, George, Ken, and Larry. And let us know what you’re excited about in the comments, or on Twitter here. We can keep you up-to-date via our newsletter as well. Hope to see you there!
Freelock : Ask Freelock: Why should I use "Media" links instead of just embedding, in Drupal?
Joaquin asks:
Sorry, John.
But when it comes to adding Youtube and Vimeo, you still haven't made the case for not going into the HTML.Here is a test page I created.
The top video I used the "WEB" tab in the "Add Media" button (BTW, it is a little confusing that there is still that tab labeled "Youtube").
The bottom video I copy and pasted from the HTML that Youtube presents you when you click the "Embed" tab.
As you can see, pasting the HTML looks a lot better. And the first option doesn't seem to be working.
Thoughts?
DrupalDrupal PlanetMediaVideoAcquia: The future of PHP ... at a distance
The future of PHP ... at a distance
First a short disclaimer: It’s been quite a few years since I have last been subscribed to the internals mailing list. I still hang out in one of the popular core developer IRC channels, follow quite a few core developers on twitter, and chat with people at conferences--which allows me to still keep up with things to some degree. I do of course still work daily with PHP. So for better or for worse this lets me see PHP's future at a bit of distance from core development.
Deeson Online: Part 2: Apache Solr - Manually Controlling a Custom Fields Bias
In part one of this post I showed you how to create a custom field to be added to Apache Solr index and altering the search based on this field. In this second part I will be showing you how you can define a custom field to be listed within the 'field bias' admin settings in the Apache Solr module.
Setting the field biasesMost of the time just setting a custom field to be added to your index is all you will need. But sometimes there is the need to be able to control the bias of your custom fields when Solr does the search.
Typically you would manage this in the Apache Solr admin pages by going to /admin/config/search/apachesolr/settings. This will show you a list of your Solr instances that you have configured for the site. To change the biases, click on the ‘bias’ link against the relevant instance.
Within this section if you choose the ‘Field Biases’ tab on the left hand site you can set the bias for fields within the site. This will affect the what is more relevant when Apache Solr does a search.
This is fine if you just want to set the bias on the standard fields that are available, but what if you want to be able to control the bias of the new custom field that you have just created?
Allowing manual field biases control on your custom fieldLooking at the Apachesolr module in more detail shows that this list of bias fields is made up of ‘default’ fields (e.g. content, h1, h2 etc.) and any fields that are ‘text’ fields.
If you have created a custom field and your field is a string (e.g. 'ss_my_field') then you would think that this would then show up as it is a string field which is text - right?
Well no ..... after looking at the field definitions in more details (as shown in part 1), string fields are different to text fields, which is why the custom string field wasn't showing in the list.
Therefore in order for your custom field to appear in the list of 'bias fields', you need to define your custom field as a 'text' field rather than a 'string' field (e.g. ‘ts_my_field’). Having done this, re-index the content and the custom field now shows in this list of field biases.
Hooray I hear you shout .... well almost. The field shows in the list but the label of this custom field shows as the field name (e.g. ‘ts_my_field’) - not very readable or friendly.
Helpfully there is a hook provided by the ApacheSolr module to map fields to a label for display:
/** * Implements hook_apachesolr_field_name_map_alter(). */ function MY_MODULE_apachesolr_field_name_map_alter(&$map) { $map['ts_my_field'] = t('This is the label for my custom field'); }Now your new custom field shows in the list of 'bias fields' and has a nice friendly label for it. So you can now set the relevant value you would like for it to alter your search - happy days!
Read morePart 2: Apache Solr - Manually Controlling a Custom Fields BiasBy Mike Davis | 9th September 2014Urban Insight: Building a Drupal Module for Research Papers in Economics (RePEc)
Working with the USC Lusk Center for Real Estate, we recently had the opportunity to automate how the Center's research papers are submitted to a popular repository of research about economics. This post discusses how we created a software module that others who use the open source Drupal web content management system can reuse and enhance.
Zivtech: Upcoming Zivtech Events, September 2014
September is a busy month over here at Zivtech as we embark on Drupaldelphia, a training on Panels and a handful of meetups. We will be out and about throughout the month, so be sure to catch up with us at some of our upcoming events:
Node.js Meetup at Zivtech HQOur Involvement: Hosting, Attending
What: This is an installment of the second-Tuesday Philly node.js meetup group. We start things out informally and anyone that has something to share shows off what they've been doing with node.js.
When: Tuesday, September 9, 2014 from 6:00 - 8:00 pm
Where: 1315 Walnut St, Suite 1500, Philadelphia, PA 19107
Our Involvement: Sponsors, attending
What: Please join us on Thursday, September 11th to learn about "Aging in Place". John Whitman, a Wharton Health Care Management faculty member and leading national consultant on aging and long-term care is assembling a panel of experts to discuss how innovation is enabling our seniors to receive the medical monitoring and care they need to safely continue living in their own homes. We will both define what it means to age in place and how it's different depending upon socioeconomic status, and what innovations and technologies are available and needed for aging in place to happen. Special emphasis will be placed on not just what is currently available, but also what is needed for the future.
When: Thursday, September 11, 2014 from 5:30 - 8:30 pm
Where: 4801 S. Broad St., Suite 100, Building 100 Innovation Center, Philadelphia, PA 19112
Our Involvement: Sponsors, presentors, attending
What: Drupaldelphia is an annual camp held in Philadelphia for the open source content management platform, Drupal. The event attracts developers, site-builders, content administrators, designers, and anyone interested in using Drupal in their organization or upcoming project. This year will again be hosted in the Pennsylvania Convention Center at 1101 Arch St Philadelphia, PA 19107.
When: Friday, September 12, 2014 from 8:00 am - 4:30 pm
Where: The Philadelphia Convention Center, 1101 Arch St, Philadelphia, PA 19107
Our Involvement: Hosting, attending
What: We'll be talking Drupal, eating pizza, and drinking various beverages (some alcoholic, others not) from 6:30-9pm at Zivtech Headquarters in Old City. The pizza and drinks will be provided by the hosts (that's us!).
When: Tuesday, September 16, 2014 from 6:30 - 9:30 pm
Where: 1315 Walnut St, Suite 1500, Philadelphia, PA 19107
Our Involvement: Hosting, facilitating
What: Panels is a tool for creating advanced layouts and data displays in Drupal. In our day-long intermediate level training, we look at the full range of the Panels toolset and cover the following topics: understanding the Panels interface, tricks to make editing Panels easier, creating custom Panels layouts, styling techniques, building advanced data displays, helpful Panels features that many site builders miss.
When: Wednesday, September 17, 2014 from 10:00 am - 5:00 pm
Where: 1315 Walnut St, Suite 1500, Philadelphia, PA 19107
Our Involvement: Hosting, attending
What: Comic and cartoons aren't new, but it took the Internet to unlock their full potential. Find out how technology no more complicated than a jpeg can grab viewer's attention and deliver a message before they even realize they're receiving it.
When: Wednesday, September 17, 2014 from 6:00 - 8:00 pm
Where: 1315 Walnut St, Suite 1500, Philadelphia, PA 19107
Our Involvement: Attending
What: Get back to basics and make new connections as PACT welcomes in summer. PACT invites its fellow members and guests from Technology and Healthcare Corporations, Entrepreneurs, Investors and Professional Advisors for an evening of networking. Come learn more about each others businesses & exchange business cards while enjoying cocktails and hors ‘d’ oeuvres.
When: Thursday, September 18, 2014 from 5:30- 7:30 pm
Where: Prime Stache, 110 Chestnut St, Philadelphia, PA 19107
These are just a handful of the events we will be attending, hosting, and sponsoring this September, so be sure to keep your eyes and ears open for more as we continue to update this list.
We can't wait to see you around!
Will you be attending any of our upcoming events? Let us know in the comments.
Terms: Eventsupcoming eventsZivtechSponsorattendhostMeetupDrupal PlanetDrupalNode.jsPACTContent MarketingTrainingsdrupal trainingdrupaldelphiaDrupalCon
DrupalCon Amsterdam: Training spotlight: Drupal 8 for Drupalistas
Are you a site builder, themer, or backend developer who is comfortable with Drupal 7 (or 6) and worried about gearing up for Drupal 8?
Want a headstart?
Drupal 8 for Drupalistas at DrupalCon Amsterdam will save you self-study time by walking you through D8 in a day. You'll build a site, getting a hands on experience of the anticipated Drupal 8 changes, and dive deeper into your own speciality.
At the end of the day, you will be ready to dive deeper into Drupal 8 and start building projects. Our goal is to make your transition as smooth as possible. While we won't dive too deeply into coding (Sorry, all ye who seek Symphony training!) we will break into small, specialty groups at the end of the day so you can focus on one area; site building, theming, or coding.
Meet the Trainers from Amazee LabsLong-time DrupalCon trainer Diana Dupuis (dianadupis), Site Building track chair Michael Schmid (Schnitzel), and DevOps track chair Bastian Widmer (dasrecht) of Amazee Labs have presented this training three times, including once at DrupalCon Austin to a sold-out room.
Attend this Drupal TrainingThis training will be held on Monday, 29 September from 09:00-17:00 at the Amsterdam RAI during DrupalCon Amsterdam. The cost of attending this training is €400 and includes training materials, meals and coffee breaks. A DrupalCon ticket is not required to register to attend this event.
Acquia: Perspectives on the future of PHP
PreviousNext: DrupalGov Canberra 2014: The new Front-end work-flow from ticketing to building
John Albin Wilkins recently gave a session on The new Front-end work-flow from ticketing to building at DrupalGov Canberra.
This session will outline our current mistakes and then introduce the basic techniques for CSS layering and using design components, the heart of any front-end CSS project. We will also discuss ticket structure, project organization, and tricks to implement components when you can't change Drupal's classes.
PreviousNext: DrupalGov Canberra 2014: Drupal 8 for Sitebuilders
Find out what's install for Site Builders in Drupal 8 from my recent DrupalGov Canberra session.
Web Omelette: How to remove all the Voting API results for a given node type
Have you ever needed to remove in bulk a bunch of voting results for, let's say, a given content type? There is no option in the UI but you can find in the votingapi.module some handy functions that will allow you to write a customized update hook.
So let's say that we need to remove all the results for the article content type. If we look in the votingapi_vote table, we don't see any bundle or content type column, but we see an entity_id. So we need to get all the ids of our article nodes:
$query = db_query("SELECT nid FROM node WHERE type = 'article'"); foreach ($query as $res) { $nids[] = $res->nid; }Now we have the $nids array containing all of our node IDs. Next, let's load all the votes for these IDs:
module_load_include('module', 'votingapi', 'votingapi.module'); $votes = votingapi_select_votes(array('entity_id' => $nids));First we include the right module file and then we use one of its functions to select all the votes that match some criteria (in our case an array of IDs). Next, we need to worry also about the votingapi_cache table which contains the results of the voting per entity. We need to remove that as well. So we'll use another helper function from Voting API:
$results = votingapi_select_results(array('entity_id' => $nids));Now we have also the result objects we need to delete so we can proceed with the actual removal. For this, we can use two more handy methods from the Voting API module:
votingapi_delete_votes($votes); votingapi_delete_results($results);And that's it. This will remove all the votes and their aggregated results from both tables. It may take some time so make sure you have enough server resources to perform this task.
To use this code, I recommend creating an update hook in a custom module that you run once. But make sure you properly test it on your test environment before deploying and running the code on production servers. Always keep in mind the possibility of the server running out of resources depending on how many votes you have in the database.
Do you have any better way of batch deleting votes/results? This is what I found and I'm curious if you know of any better ways. Let me know.
var switchTo5x = true;stLight.options({"publisher":"dr-8de6c3c4-3462-9715-caaf-ce2c161a50c"});KYbest: Applying node access on a non-node based view
The Views module automatically joins the node_access table only for node based views. In any other case we need to take care of the proper access handling ourselves.
PreviousNext: Talk to the CMS end users: content editors
Have you ever delivered a project that was met by the content team with a collective sigh? There's a simple way to avoid that - talk to them!
Robert Douglass: How did DrupalCon change your life?
DrupalCon is the heart and soul of the Drupal Community. Thousands of us have attended over the past 9 years. Many of us, myself included, have had life-changing experiences at DrupalCon. How did DrupalCon change your life? Now is the time to share your story with thousands of your closest friends! ... or the Drupal community.
What is this for? It's for the "Prenote" session at DrupalCon Amsterdam. Every DrupalCon, Jam and I collaborate to show some aspect of the Drupal experience through humor, drama, song, cheesy costumes, and famous Drupal guest stars. We'd like to include some of these stories in Amsterdam!
Thanks for sharing!
Which DrupalCon? * Austin, 2014 Prague, 2013 Portland, 2013 Sydney, 2013 Munich, 2012 Denver, 2012 London, 2011 Chicago, 2011 Copenhagen, 2010 San Francisco, 2010 Paris, 2009 Washington, D.C., 2009 Szeged, 2008 Boston, 2008 Barcelona, 2007 Sunnyvale, 2007 Brussels, 2006 Vancouver, 2006 Amsterdam, 2005 Portland, 2005 Antwerp, 2005 Which DrupalCon changed your life? Tell your story * What happened that changed your life? Was it meeting a specific person? Attending a session? Being in the right place at the right time? What aspect of your life now would not have been the same if you hadn't attended DruaplCon. Will you be attending DrupalCon Amsterdam? * Yes No E-mail * Skype or phone How can we contact you? What's your Skype ID or phone number?Drupal Watchdog: Decoupling Drupal
The latest rage in the Content Management world is the idea of a “decoupled CMS.” That is, rather than having a single monolithic system that handles everything from content entry to management to display and theming in one program spread, that responsibility is assigned to different systems: one that is really really good at content storage, one that's really really good at content management, one that's really really good at display and theming, etc.
At the same time, there has been a huge push for web services in almost every market. If you want content to be available anywhere besides an HTML page, then your answer is web services.
Drupal 8 will make huge strides in this area, but alas it's not out yet. Fortunately the answer to the second problem is the first; it is entirely possible to build a solid, scalable, performant RESTful web service with Drupal 7 by decoupling Drupal from the web service.
Recently, Palantir.net did exactly that for a major media client, video hosting service Ooyala, and it really drove home both the power of web services and the potential of a decoupled architecture.
The ProblemOoyala wanted us to build a video curation service for one of their customers.
The first part of the problem was that the customer had data that was regularly updated, but this existing data source was incomplete, occasionally unreliable, and could be enriched with additional metadata, so human management was required before it could be used in the desired context (to describe video content in end-user-facing video-on-demand applications). The solution to this particular problem was the CMS.
The second part of the problem was getting the data in the desired context: highly interactive video-on-demand applications where users could purchase access to individual movies or episodes, collections of movies, seasons of a show, or other arbitrary groupings. The solution here was a REST API separated from the CMS.
Not complex enough? Add in a requirement to merge in data from a third-party video service to compensate for incomplete data.