Drupal News

Syndicate content
Drupal related news with the junky stuff filtered out
Updated: 5 hours 46 min ago

Toronto Website Developer: Flag Application Module

June 17, 2013 - 7:11am
An itch to scratch For a while, I've wanted to contribute a module back to the Drupal community and actively maintain it. I can't exactly tell you why I wanted to do this but it's been a burning desire.

I know there are a lot of projects that have been abandoned and can use some help (Nodereview being one that I'm still trying to keep up with) but I wanted to be in the driver's seat and intimately understand the code having written it. I hope that makes sense.

However, I didn't want to write anything on a whim. I wanted the module to be something that was useful and something people could use. An idea finally came to me as I was working to develop a site of my own (separate from this site and something I'll be discussing in a future post as it should help drupal developers find new business).

Thank you Flag Friend Recently I've been helping out with some work on the Flag Friend module around the javascript link not working - if your using the module, you can follow the issue here: https://drupal.org/node/1433122. In doing so, I became pretty familiar and comfortable with the Flag module code and API. Then, as I was working on a project, I thought it would be cool if people could flag a node in order to maintain it and a site administrator could approve that flag. I couldn't find a way to easily do that and so, the Flag Application module was born.

Flag Application Description If you're interested in the module, you can find it here: https://drupal.org/sandbox/yaworsk/2020689. Essentially, Flag Application integrates with the Flag Module to create the custom Flag "application".

Just like other flags, users can flag nodes with an application. Administrators are provided with an administration page to review applications and can either approve or deny the application. All applications are listed as pending prior to administrator review.

Additionally, this module integrates with Rules to allow for custom actions once an application has been approved or denied. However, I still have to write specific actions for the module itself (i.e., approve / deny an application) -- currently the module only provides conditions to react to.

If you end up checking out or using the module, I'd love to hear your feedback.

Drupal core announcements: Drupal core security release window on Wednesday, June 19

June 17, 2013 - 7:00am
Start:  2013-06-19 (All day) America/New_York Sprint Organizers:  David_Rothstein

The monthly security release window for Drupal 6 and Drupal 7 core will take place on Wednesday, June 19.

This does not mean that a Drupal core security release will necessarily take place on that date for either the Drupal 6 or Drupal 7 branches, only that you should prepare to look out for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release).

There will be no bug fix release on this date; the next window for a Drupal core bug fix release is Wednesday, July 3.

For more information on Drupal core release windows, see the documentation on release timing and security releases, and the discussion that led to this policy being implemented.

Blink Reaction: What is omni channel marketing and how will it effect your web development decisions?

June 17, 2013 - 6:26am

As marketing professionals we get paid to turn a phrase on behalf of our clients but we are no less creative when we turn the lens inward to focus on our own strategies. Recently the term omni channel marketing has come into more common usage in the digital space. So what  is omni channel marketing and why should marketing managers and web development directors care?

Omni what?

Web Omelette: My first Drupal 7 responsive theme is out

June 16, 2013 - 11:30pm

My first Drupal 7 responsive theme is out - made specifically for blogs and portfolio websites. Have a look and tell me what you think. Just one thing I would like to stress: this is my first attempt to create a theme ‘product’. I’ve worked quite a lot on it but still, there may be glitches. Hope you’ll forgive me for those and I will try to help you as much as my time will allow me to. Enjoy and let me know what you think, if you have any comments, please leave them on the other page. Thanks!

Gizra.com: The Gizra Way - How We Roll (and Rollback)

June 16, 2013 - 11:00pm

My involvement with Gizra is a bit unusual. Before settling into my fake Aeron in Gizra's plush Tel Aviv facilities I was actually a client for two years, contracting Brice & Amitai to write code for a New York startup I was working for. Together, we managed to build a continuous deployment setup where we pushed new code to production every day while working 7 timezones apart, while, surprisingly, keeping our sanity mostly intact.

Continue reading…

There is a module for that!: Ingesting the Facebook stream using Feeds and OAuth 2.0 (updated for Drupal 7)

June 16, 2013 - 8:07pm

Now that Twitter 1.1 and Feeds are buddies, time to move to other data sources. Next up: Facebook. Using trusty Feeds and friends, I was able to ingest my own Facebook home feed. Here's how to replicate this:

For the impatient, attached is a feature that should get you set up quickly.

read more

Bert Boerland: 1M Drupal installs and counting! (11110100001001000000 initiative)

June 16, 2013 - 1:23am


Within 1 year (Q1/Q2 2014?) we will have 1 million registered Drupal installs. We all know the total is higher due to mostly Drupal SaaServices that don't have the pingback enabled and we should always explain that.

However, 1.000.000 is still a freaking big number (11110100001001000000 in base 2 even bigger :-) and we should use this for marketing our product. Apart from the usual suspects there are not that many web based solutions that come even close to one tenth. Big proprietary CMS vendors do very well if they sell 10.000 per year.

All the reason to celebrate, for example by making

  1. an easy to embed history infographic,
  2. an interactive timeline like trends or zeitgeist, plotting the number of installs against events in time and or place from the community
  3. press releases (they never seem to work though :-( )
  4. give the one millionth Drupal user something, for example a Drupal 1.0 install on a 5 ¼" floppy disk signed by Dries

For sourcing, we can use the influence, people and money of the DA (if they would be in on this), ask companies to work on this pro bono, preferably together and have a fund raiser; "One tenth for one"; 1/10 of a monetary unit of your country per Drupal install you maintain. A dime per install per American, 10 eurocents per Drupal for EU’s, 1/10th of a Rand in South Africa etc. This shows that we are truly global and if people do not donate 10 cents but 10 dollars per install for example (we should hint to that, especially to the cheap Dutch :-) we could raise a bit as well, more than 1/10th of a million if played well.

What are your thoughts, how should we proceed? Please follow up on BAM on g.d.o.

Large Robot: GLADCamp finds a home

June 15, 2013 - 7:59pm

GLADCamp, the Greater Los Angeles Drupal Camp, has found a home at the Hilton Pasadena in Pasadena, California, and is March 7-9, 2014. I posted a report of the site visit to the venue earlier this month, but the ink on the contracts is only now just drying.

For anyone who knows of GLADCamp's brief history, this has been a very long road for the conference and our organizing team. Coming to an agreement with the Hilton Pasadena is a large milestone for us. Now that both the venue and the dates are set, we can begin planning our our general conference dedicated to all things Drupal.

We have conference space for 3 days of trainings, summits dedicated to how Drupal is used in business, higher education and for the civic good, pre- and post-camp parties and code sprints, 5 simultaneous tracks of sessions, and room for up to 400 attendees from all over the Greater Los Angeles Area and around the world.

If you're interested in joining the organizing team or just hearing of news as it develops, follow @GLADCamp and join the GLADCamp Working Group.

Tags: GLADCampPlanet Drupal

ShooFlyDesign: Migrating Squarespace to Drupal - Part 1: Giant XML File of Doom

June 15, 2013 - 2:17pm

This is Part 1 in a series of posts on migrating a site from Squarespace 5 into Drupal 7. This is an overview of what we're doing and why, mostly discussing the format of the Squarespace 5 XML file, which is undocumented. My hope is to make the process of importing Squarespace data easier for everyone else.

The Mission

I'm working on a fairly large site (ApertureExpert.com), currently running on Squarespace 5, migrating to Drupal 7. Squarespace is an excellent platform with many virtues, but it doesn't allow the level of customization that my client is looking for, so we're moving the site to Drupal. Now, of course you lose the built-in, high-availability hosting, and some of the very good polished UI that Squarespace gives you, so this move is not for everyone. But if you want control, and to have your blog, forums, and e-commerce wrapped up in a single package, Drupal is your friend. One example: my client wants users to have all their purchased products, forum posts, and comments available through their user profile. Squarespace can't do that, Drupal can.

This site has been active for several years now, and has a very active community of users, so the first big task was to import all of those items into Drupal. Fortunately, Squarespace 5 will let you export your entire website as XML. Note: it doesn't look like Squarespace 6 (the current version) supports full site export. There is a WordPress-compatible export that you could import into Drupal using WordPress Migrate (or, obviously, into WordPress), but it seems to cover only blog posts. This site is older, running Squarespace 5, so we can get everything.

Now that we have exported data, what can we do with it?

Read more

High Rock Media: Custom Taxonomy Pages with Drupal Views Using Selective Overrides

June 15, 2013 - 7:47am

Drupal 7 has an option to turn on a default View for Taxonomy term pages via the contrib module, Views. This is generally pretty good but if you want highly designed pages with additional custom fields than what the default view renders, you could simply update and customize this view but there's a few drawbacks:

  • You'll be overriding all Taxonomy Pages so it's not very granular.
  • Using the default Taxonomy View won't be too exportable in regard to things like Features.
Creating Taxonomy Theming Granularity

Enter the Taxonomy Views Integrator module aka 'TVI'. This is one of those nice little gems that you don't hear about too often but it's pretty powerful and allows for that granularity that we are looking for here. It enables you to customize only specified Taxonomies with a new custom Views override per Vocabulary. The added benefit is that you can keep the original Taxonomy path aliases. Other methods suggest hackish ways to override Taxonomy term pages by creating an alternate term path alias structure for the overrides but this gets pretty messy.

First Steps

It's probably a good idea to have a custom Vocabulary set up beforehand but theoretically you could use the default Tags Vocabulary that comes with the Article Content Type. You'll need the core Taxonomy module enabled but that's already by default with a typical Drupal 7 install. You'll also need the contrib module, Views as well. Next, download and enable TVI. TVI does not do much on its own, you need a view from which to reference for a specific Taxonomy to make this all work. I found the best method is to simply clone the default taxonomy_term view located at /admin/structure/views and customize it but you may need to 'enable' it first. When you clone this view, be sure to name the newly cloned view something meaningful, you can also edit the machine name at this point as well. Ideally, you are doing all this work on a dev or local site, not a live one.

Mind Your Path

Now that you have your new custom Taxonomy Term View, we need to make a few changes to some of the default settings that came with it. For the default 'Page Display', change the Path to something like nopath/%. It really doesn't matter what you put here as long as it's not the default term path which is taxonomy/term/% or any other real path in your site. The reason we do this is we don't want to intercept the original path of the Taxonomies' Alias.

Refining Arguments

The other change we want to do is to alter one the Contextual filters aka Views Arguments. Look under the View's advanced settings for Configure contextual filter: Content: Has taxonomy term ID (with depth). In my case I'm customizing a Vocabulary called "Image Category", so for the setting, Specify validation criteria, I check the box for that given Vocabulary.

Adding Additional Fields and Customizing

You can pretty much go to town with adding additional fields but you may need to add Views Relationships depending on what you are doing, just be aware of that, your milage may vary. Finally save your View. Note that because there's a Contextual Filter in play, you won't see a preview of your View right off the bat so you can use "Preview with contextual filters" and fill in an id. For example, I have a Taxonomy term id of 273 so I can input that into the text box and see a preview after updating. This comes in handy as otherwise you are a bit in the dark during configuration.

Connect the Dots

All we've done so far is focus in on our custom Taxonomy Term Page View. However there's still a final step to put it all together. It's time to edit the Taxonomy you want to customize. Go to /admin/structure/taxonomy /[YOUR_VOCABLUARY]/edit. There's a new area called View usage, Check the box called Use view override. You'll see two new select lists appear which are self-evident, Using the view and View display. You can now select the View and display you customized from the cloned view as mentioned above. If all went well, now when you visit your custom Vocabulary term pages, presto, you should see your customized View in effect! One major note is that for any other Taxonomies you don't want customized, you'll simply need to set each to the default Taxonomy term View on the Vocabulary's edit page if you still want the defaults Views intercept to happen.

The possibilities are endless here and it will give your selectively overridden Taxonomy pages a unique look that can be highly designed, it gets away from boring lists of things that are typical of these type of pages.

Tags 
  • UX
  • Design Patterns
  • Drupal
  • Views
  • Tutorial
  • Drupal Planet
Resources 

Paul Rowell: BUEditor; your alternative editor for Drupal

June 14, 2013 - 9:56pm

I recently worked on a project (I won't name names) where the clients systems were locked down rather severely, this coupled with an *insert appropriate word here* slow connection meant that I was presented with more than the usual challenges of a Drupal build. The biggest problem presented was that my go to WYSIWYG editor (CKeditor) was not usable.

DrupalCon Prague 2013: Announcing DrupalCon Prague, coming September 2013

June 14, 2013 - 8:25pm

The Drupal Association is very excited to announce DrupalCon Prague, the tenth annual European DrupalCon. Taking place the 23-27 September 2013 in the beautiful city of Prague, in the Czech Republic, nestled in the heart of Europe. All are invited for a full week of Drupal celebration, the final DrupalCon before D8 release!

Zero to Drupal: Outputting CSV Data as a File Download

June 14, 2013 - 2:30pm

If you ever need to save a set of columnar data as a csv file on the server, doing so using fopen() and fputcsv() is pretty simple. What you may not know, and what I didn't know until recently, was how to take that same data and return it as a downloadable csv file (not saved on the server). Turns out, accomplishing this task in Drupal is just as easy as saving a file but with one minor tweak.

Saving To a File

As a recap for some, and a primer for others, here's how we'd take some data and save it as a file on the server:

  1. // Let's get the 50 most recently created published nodes.
  2. $nodes = db_query('SELECT nid, title FROM {node} WHERE status = 1 ORDER BY created DESC LIMIT 50');
  3.  
  4. // Open the file for writing.
  5. $fh = fopen('nodes.csv', 'w');
  6. // Add a header row
  7. fputcsv($fh, array(t('NID'), t('Title'));
  8.  
  9. // Loop through our nodes and write the csv data.
  10. foreach($nodes as $node) {
  11. fputcsv($fh, array($node->nid, $node->title));
  12. }
  13.  
  14. // Close & save the file.
  15. fclose($fh);

This code queries for a set of data, then opens a csv file and writes the values to it. Pretty simple stuff. But what if you want to present this to the browser as a file download, instead of saving to the server?

Saving as a File Download

Fortunately, we only need to change a few lines:

  1. // Let's get the 50 most recently created published nodes.
  2. $nodes = db_query('SELECT nid, title FROM {node} WHERE status = 1 ORDER BY created DESC LIMIT 50');
  3.  
  4. // Add the headers needed to let the browser know this is a csv file download.
  5. drupal_add_http_header('Content-Type', 'text/csv; utf-8');
  6. drupal_add_http_header('Content-Disposition', 'attachment; filename = nodes.csv');
  7.  
  8. // Instead of writing to a file, we write to the output stream.
  9. $fh = fopen('php://output', 'w');
  10.  
  11. // Add a header row
  12. fputcsv($fh, array(t('NID'), t('Title'));
  13.  
  14. // Loop through our nodes and write the csv data.
  15. foreach($nodes as $node) {
  16. fputcsv($fh, array($node->nid, $node->title));
  17. }
  18.  
  19. // Close the output stream.
  20. fclose($fh);

In case you didn't catch that, first we needed to add some headers to let the browser know that we're sending a file download. Then, instead of opening a file to write to, we write to php's output stream. Now, when a user clicks a link, or enters the url to a page with this code, they will be prompted to save a file with the data formatted as csv.

Although simple, this was something I'd never had to do before so I thought I'd share this in case others hadn't either.

Tags

Fuse Interactive: Make your design functional

June 14, 2013 - 2:26pm
Being completely enveloped in the wide world of web design has made me rather comfortable with being a critic of not only design decisions of others, but a harsh critic of what I produce. It’s incredibly comforting to know that this dilemma is not just ours to suffer with. Stepping away from the internet and taking the time to examine just how other industries face the same issues.

CMS Quick Start: User friendly site backups with the Backup and Migrate suite

June 14, 2013 - 1:39pm
As a designer I often feel out of my element whenever I have to crank open an FTP client (or even command line) into my site to perform file backups on a regular basis. It gets worse when you have to perform database backups, you usually have to use a third party tool like phpMyAdmin which leaves the uniformed user open to making tragic mistakes. No one ever wants to have the sinking feeling of attempting to restore from a faulty backup. Do you know what all of this means? If not, it's time to find an easier solution.

read more

baxwrds: Drupal 7 Ubercart Recurring Payment Cancellation Rule

June 14, 2013 - 1:31pm

For a current Drupal 7 project that uses Ubercart and Ubercart Recurring to provide for a subscription service, I need the ability for an admin user to be able to cancel a user's ongoing recurring fee when a subscription level is changed. I accomplished this with the following php rule:

<?php
// load all recurring fees for a user
$recurring_fees = uc_recurring_get_user_fees($user_uid);
// loop through fees
foreach ($recurring_fees AS $fee) {
// cancel each fee
uc_recurring_fee_cancel($fee->rfid);
}
?>

read more

baxwrds: Drupal 7 Ubercart Recurring Payment Cancellation Rule

June 14, 2013 - 1:31pm

For a current Drupal 7 project that uses Ubercart and Ubercart Recurring to provide for a subscription service, I need the ability for an admin user to be able to cancel a user's ongoing recurring fee when a subscription level is changed. I accomplished this with the following php rule:

<?php
// load all recurring fees for a user
$recurring_fees = uc_recurring_get_user_fees($user_uid);
// loop through fees
foreach ($recurring_fees AS $fee) {
// cancel each fee
uc_recurring_fee_cancel($fee->rfid);
}
?>

read more

Blink Reaction: Putting a Face on the Drupal Community

June 14, 2013 - 12:42pm

What exactly does the Drupal community look like? 

The Drupal Face to Face project launched at Drupalcon Portland set out to answer just that question. Produced by Blink Reaction in collaboration with the Drupal Association, Drupal Face to Face is an omnichannel media project designed to increase Drupal Association membership and attract new people to the Drupal open source project and community. 

The project was developed with Blink's digital strategy team to help deliver awareness and engagement around a campaign to build Drupal Association membership.

groups.drupal.org frontpage posts: Drupal 8 Toolbar and Admin Information Architecture research study: your input needed!

June 14, 2013 - 11:38am

I plan to run a Drupal 8 Toolbar and Admin Information Architecture research study, to inform any improvements to the current Drupal 8 admin IA.

But first, what questions do you (or people you work with) want to know about the current IA? How people are using? When they are using? From what devices? Etc etc.

Put all your questions you'd like to answered by this study in the comments below. If there are duplicate questions, great! That will help inform priorities.

From this, I can start to create a study plan.
Thanks
Lisa Rex

Take our Survey on Drupal and ISVs

June 14, 2013 - 10:19am

In our last community survey about webinars, over 400 people participated and many stated that they want more education on third party software that integrates with Drupal and tools (developer, project management, and design tools) that will help them build even better Drupal sites.

So we are creating the Technology Partner Program, to attract those kinds of companies and help them educate you about their products and services in a helpful, not spammy, way. The companies would pay to join this program and those funds will help us hire the Drupal.org Tech Team, which is coming together to improve our community home with better developer collaboration and faster and easier-to-find modules.

Will you take our survey to tell us which kinds of companies’ products and offerings you would like to learn about? We will then talk with those companies and invite them to join the Technology Partner Program, that will launch this summer.

This survey is for anyone involved with building Drupal sites (developers, site builders, project managers, Drupal shop leaders, etc). And, the survey asks:

  • What kind of third party applications and tools companies do you want to learn about?

  • What are the best ways to provide educational content about their offerings?

  • How should these companies should work with community members with regard to integration modules?

The survey should take about 10 minutes to complete.

Thank you ahead of time for sharing your thoughts with us so we can tailor the Technology Partner Program to your business and educational needs.

  Personal blog tags: Technology Partner Programsurvey