Jul 23 2013
Jul 23

Download Podcast 110
DrupalEasy_ep110_20130723.mp3

Mike Potter (mpotter), a Software Architect from Phase 2, and the technical lead for Open Atrium 2.x joins a full slate of DrupalEasy Podcast hosts: Andrew Riley, Ryan Price, Ted Bowman, and Mike Anello to talk about the future of Open Atrium, migrating from Open Atrium 1.x to 2.x, the future of the Case Tracker functionality, and all the new hotness of Open Atrium. Along the way we also cover some Drupal Association news, get a NYC Camp report, and take a quiz about Drupal events around the world!

Interview

Five Questions

Each podcast we ask our guests the same five questions. Here are Mike Potter’s answers:

  1. MacBook Pro, Sublime Text2
  2. Hunter Fox (hefox)
  3. Orlando
  4. Ryan Szrama (rszrama), Amatai Burnstein (AmitaiBu)
  5. Better media integration

Want to know what the five questions are? Listen to the podcast!

DrupalEasy News

Three Stories

    Sponsor

    Picks of the Week

    Upcoming Gigs

    • Mike Potter - CapitalCamp - July 26-27, Washington, DC

    Follow us on Twitter

    Intro Music

    Subscribe

    If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or Leisure Suit Larry tips for Andrew. If you'd rather just send us an email, please use our contact page.

    Average:

    No votes yet

    Jul 11 2013
    Jul 11

    Download Podcast 109
    DrupalEasy_ep109_20130711.mp3

    Rick Manelius (rickmanelius), a project architect from Newmedia joins Mike Anello and Ted Bowman to talk about how and why Drupal developers should care about PCI Compliance. Anyone who builds, or is thinking of building, Drupal Commerce sites should listen to this episode. In addition to all the scintillating talk about PCI Compliance, we also discussed DrupalCon Prague, the Drupal 8 API Freeze, and our picks of the week!

    Interview

    Five Questions

    Each podcast we ask our guests the same five questions. Here are Rick Manelius's answers:

    1. Kevin Bridges (Cyberswat)
    2. Boston
    3. Any new speaker!
    4. The ability to run "drush sql-sync --sanitize" and have the data sanitized before download

    Want to know what the five questions are? Listen to the podcast!

    DrupalEasy News

    Two Stories

    1. DrupalCon Prague - content submissions close Friday, July 12.

    Sponsor

    Picks of the Week

    Upcoming Gigs

    • Six Mile Tech Drupal training with Ted Bowman at NYC Camp - Friday, July 12 - Monday, July 15.

    Follow us on Twitter

    Opening Music

    Subscribe

    If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or EntityForms advice for Ted. If you'd rather just send us an email, please use our contact page.

    Average:

    No votes yet

    Jun 26 2013
    Jun 26

    Download Podcast 108
    DrupalEasy_ep108_20130626.mp3

    Matt Cheney (populist), maintainer of the Panopoly Distribution joins Ted Bowman, Ryan Price, and Mike Anello to dive deep into Panopoly, disect Drupal Association Board Meeting minutes, discuss the state of Drupal’s community tools, decide that the DrupalCon Prague logo is the best ever, and dream about getting our hands on a Florida Drupal Diver pin.

    Interview

    Five Questions

    Each podcast we ask our guests the same five questions. Here are Matt Cheney’s answers:

    1. MacBook Pro, vim
    2. Arshad Chummun (arshadcn)
    3. New York City
    4. Josh Koenig (joshk)
    5. Media management

    Want to know what the five questions are? Listen to the podcast!

    DrupalEasy News

    Three Stories

      Sponsor

      Picks of the Week

      Upcoming Gigs

      • Six Mile Tech Drupal training with Ted Bowman at NYC Camp - Friday, July 12 - Monday, July 15.

      Follow us on Twitter

      Opening Music

      Subscribe

      If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or coffee options for Andrew. If you'd rather just send us an email, please use our contact page.

      Average:

      No votes yet

      Jun 11 2013
      Jun 11

      Download Podcast 107
      DrupalEasy_ep107_20130611.mp3

      Mike Kadin (mkadin), creator and head-referee from ModuleOff.com, joins Andrew Riley, Ryan Price, and Mike Anello to talk about his competitive Drupalizing web site, WYSIWYG in Drupal, the E#[email protected]!prise, as well as some great picks of the week.

      Interview

      Five Questions

      Each podcast we ask our guests the same five questions. Here is Mike Kadin’s answers:

      1. Ubuntu, NetBeans
      2. Charleston
      3. Eaton
      4. Context

      Want to know what the five questions are? Listen to the podcast!

      DrupalEasy News

      Three Stories

        Sponsor

        Picks of the Week

        Upcoming Gigs

        • Six Mile Tech Drupal training with Ted Bowman at NYC Camp - Friday, July 12 - Monday, July 15.

        Follow us on Twitter

        Opening Music

        Subscribe

        If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or alarm close suggestions for Ryan. If you'd rather just send us an email, please use our contact page.

        Average:

        No votes yet

        Jun 02 2013
        Jun 02

        Download Podcast 106
        DrupalEasy_ep106_20130601.mp3

        Kristof Van Tomme (kvantomme), Lee Rowlands (larowlan), and Nick Schuch (nick_schuch) join (the uncomfortably echo-y) Mike Anello and Ted Bowman (tedbow) to talk about the Tour module and Walkthough.it. The Tour module is a recent addition to Drupal 8 that allows for contextual help in the form of a series of popups that can walk users through the various elements on a Drupal administration page. We get sidetracked by Lee’s Comment as Field potential Drupal 8 addition, DrupalCon Portland, a Drupal.org hacking, and a very special edition of 5 Questions.

        Interview

        Five Questions

        Each podcast we ask our guests the same five questions. Here are Kristof, Lee, and Nick’s answers (respectively):

        1. Mac, Mac/Ubuntu/Komodo, Mac/Sublime2
        2. Robert Douglass (robertDouglass), Chris Skene (xtfer), Initiative leads
        3. Add a node to multiple book outlines, Comments as field, Media handling

        Want to know what the five questions are? Listen to the podcast!

        DrupalEasy News

        Three Stories

        1. 5 Questions with Dries - Dries’ answers: Mac/vi, Lilly Byron, somewhere warm, Robert Douglass (robertDouglass), really good media handling.

        Sponsor

        Picks of the Week

        Upcoming Gigs

        • Six Mile Tech Drupal training with Ted Bowman at NYC Camp - Friday, July 12 - Monday, July 15.

        Follow us on Twitter

        Opening Music

        Subscribe

        If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or EntityForm patches for just about anybody. If you'd rather just send us an email, please use our contact page.

        P.S. We finally have proof that Mike is a robot!

        Average:

        No votes yet

        May 18 2013
        May 18

        Average: 5 (2 votes)

        DrupalCamp AustinWe're super-excited to announce that we've been invited to present a half-day workshop during DrupalCamp Austin. The Camp takes place the weekend of June 21-23, 2013 and we'll be presenting "Getting Stuff into Drupal - Basics of Content Migration" from 1:30pm until 5:30pm on Saturday the 22nd. The workshop will cost $75 and we'll be covering the basics of three of the most common ways of importing content into Drupal: the Feeds, Migrate, and the Drupal-to-Drupal data migration (based on Migrate) modules. Interested? Check out all the details and then register today.

        Over the past few years, we've performed various types of migrations into Drupal from all sorts of sources: static web sites, spreadsheets, other content management systems, and older versions of Drupal sites. Using this experience, we've developed an example-based workshop that demonstrates some of our go-to tools for bringing content into Drupal.

        The workshop will be short on lecturing, and long on real-world examples. We'll import spreadsheet data using Feeds, a Drupal 6 site into Drupal 7 using Drupal-to-Drupal migration, and a custom migration using the Migrate module.

        We're always looking for new and exciting workshops to offer - please take a few minutes and take this short survey to help us determine potential topics for future workshops.

        Trackback URL for this post:

        http://drupaleasy.com/trackback/591

        May 09 2013
        May 09

        Average: 5 (3 votes)

        I rencently spent a few quality hours with the Views interface trying to figure out how to add an Organic Groups Group ID contextual filter to a Views display and have the display's title overridden based on the value of the contextual filter. Actually, it's easy to do if you don't mind having the actual Group ID integer in the title. But, like most people, I actually wanted the Group name in the title of my display.

        It took me more time that I'd care to admit, as well as some guidance from the most excellent maintainer of the Organic Groups module, Amitai Burstein, but eventually, I discovered a simple solution that didn't involve additional relationships, contextual filters, fields, or trickery. Well - maybe not the "trickery" part. The solution involved what I consider to be a previously undocumented feature (at least to me!) of the Views module.

        original contextual filter settings

        When I first set up the view, I knew that the incoming values of the contextual filter (Group ID) were going to be integers (they are IDs, and this is Drupal after all). I needed to figure out how to override the title so that the Group ID wasn't used in the title, but rather the Group name was displayed. After all, I didn't want the resulting title to be "12341 Happenings" (where "12341" is the Group ID), rather I wanted the title to be "Miami Happenings" (where "Miami" is the Group name whose Group ID is "12341"). I was hoping that this would happen automatically, but it did not.

        I spent several hours toying with various potential solutions - everything from using the display's Format|Grouping functionality to adding an additional relationship and using the "Content: title" field as the contexual filter instead of the Group ID (while the second option basically worked, it could have led to issues if there were multiple groups with the same name or funky characters in group names). Nothing I tried worked as well, or was bullet-proof enough to my liking.

        It wasn't until Amitai told me that if I use Group ID as the contextual filter, I can override the title in the contextual filter's settings and Views will automatically substitute the Group ID with the Group title as long as the contextual filter is validated! That is, if I select the "Specify validation criteria" option in the contextual filter's settings and validate it using the (in my case) "OG group" validator, and Views will magically make the substitution. Seriously!

        original contextual filter settings

        When I was first informed of this, I was both overjoyed (that my issue had been solved) and aghast (at the incredibly non-obviousness of the solution). I've been around Drupal for quite some time, and this was one "feature" that had snuck past me. There isn't a clue in the Views interface about this functionality (in the maintainers' defense I can't think of a good way to add this to the description of the "Override title" setting without adding at least three paragraphs), nor could I find any indication of it using Advanced Help (low-hanging fruit for a patch!) Ultimately, I went to the relevant Views documentation page and didn't see anything about it there as well. It's there now, I just added it a few minutes ago (I love open-source).

        Views is a seriously complex module with lots of moving parts, written by volunteers that are much smarter than I am. I'm sure there's more "sneaky" functionality that I'll discover in the future, and I'm looking forward to it.

        Trackback URL for this post:

        http://drupaleasy.com/trackback/589

        May 08 2013
        May 08

        Download Podcast 105
        DrupalEasy_ep105_20130508.mp3

        Bob Kepford (kepford) from The Weekly Drop joins Andrew Riley, Ted Bowman, and Mike Anello to talk about how Bob mines nuggets of Drupal goodness from the weekly Drupal firehose. Other topics discussed include Panopoly, open-source project statistics, the impending Google Reader apocalypse, Open Atrium 2.x, and a bunch of other mostly Drupal-related topics.

        Interview

        Five Questions

        Each podcast we ask our guests the same five questions. Here are Bob’s answers:

        1. Mac OSX, Sublime Text 2, Vim, Vagrant, Aegir
        2. Chris Ruppel (rupl)
        3. Austin, TX
        4. Jeff Eaton
        5. More contributors

        Want to know what the five questions are? Listen to the podcast!

        Three Stories

          Sponsor

          Picks of the Week

          • Andrew - Empty Page module by Alexander Ross (bleen18) - Yes it’s been covered before but I like it

          Upcoming Gigs

          Follow us on Twitter

          Opening Music

          Subscribe

          If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or foxing lessons for just about anybody. If you'd rather just send us an email, please use our contact page.

          Average:

          Your rating: None Average: 4.5 (2 votes)

          Apr 29 2013
          Apr 29

          Average: 4.8 (8 votes)

          FarmersMarkets.com

          At Florida DrupalCamp 2013, I presented a session that demonstrated how to utilize the Feeds, Feeds Tamper, Address field, Geofield, and other modules to create a fully-functional website for searching for Farmers Markets anywhere in the United States. While the session's intent was to inspire people as to what Drupal can do in a very short amount of time, this blog post will focus on the details of the process.

          A few years ago, I built a similar presentation using world-wide earthquake data, importing into a Drupal 6 site using Table Wizard and displaying the data using the Mapstraction module. I must have given that presentation about half-a-dozen times over the course of a year or so at various meetups and camps, so I thought now was a good time to bring it up-to-date with modern (relatively-speaking) Drupal tools.

          StopwatchBefore we get started, let me point out that the title is a lie. It's actually going to be more than 7,000 records, but I like the way the "5,000" and "45" play off each other. The first time I did this demonstration in front of an audience, it actually took me only 25 minutes, 26 seconds - the rest of the presentation time was taken up with some initial slides and furious betting on how long it would actually take me (the winner got a copy of Mapping with Drupal).

          The Farmers Markets Source Data

          Data.gov logoThe first step in a project like this is to find some good clean source data. I'm a big fan of the seemingly infinite supply of publically available data found on Data.gov, the United States' public repository of federal government data. After poking around for a bit of time (I'm embarassed to say exactly how much!), I stumbled upon the Farmers Markets Geographic Data - a Microsoft Excel-formatted dataset containing data on over 7,000 Farmers Markets all over the United States. The dataset contains names, descriptions, addresses, websites, and other details - most importantly, it contains the latitude and longitude for each location. While not mandatory, having the latitude and longitude data sure does make the process easier.

          Farmers Markets spreadsheetInspecting the data in a spreadsheet, things looked pretty clean. Since I knew I needed to save the file in comma-separted-values (.csv) format, I did some very minor cleanup on it by doing the following:

          • Removed the top 3 descriptive header rows. For the import, all we actually need is a column/field name header row and the data. Any anciliary header rows need to be removed.
          • Removed the bottom 2 descriptive footer rows. For this dataset, there was a row at the bottom of the dataset that contained information about when the dataset was last updated. This wasn't needed for the import, so I manually deleted it.

          Additionally, I took note of the following things:

          • The FMID field (I'm assuming this is an acronym for "farmers market identifier") appears to be a unique integer for each record in the dataset. This will come in handy during import.
          • There was no "country" field. This isn't unexpected since this was data for United States' farmers markets, but I did take note of it because the Address Field module will be looking for country data. I could have simply added a new "country" field (with all values set to "United States") to the dataset prior to exporting it as a .csv file, but I prefer to keep the dataset as "pure" as possible, so I decided to leave it alone for now and deal with the country stuff as part of the import process (see below).
          • The data in the "State" column included full state names, not the standard 2-letter abbreviations. I knew that this would need some tampering (via the Feeds Tamper) module to convert it so that it would import cleanly.
          • The "Schedule" field for some records is longer than 255 characters. This means that we'll have to use a "Long text" field type in the content type to handle the data in this field.
          • The data also included 20 "category"-type fields indicating the types of goods available at each farmer's market (eggs, cheese, soap, trees, etc...) Ideally, each of these 20 fields should be mapped to a single Drupal vocabulary. This would require a custom Feeds Tamper plugin.
          • The "lastUpdated" field mostly contains well-formatted dates, but because there are some records where the data is not well-formatted ("2009" instead of "mm/dd/yyyy") and it is just informational, its probably best just to use a text field in the content type for this data.

          Once I was satisfied that the data was clean and I had a good understanding of it, I saved it as a .csv file and moved onto getting Drupal ready to import it.

          Setting Up the Basic Site

          As with most of the sites DrupalEasy builds, we started out with our own custom Drush make file that automatically downloads a bunch of standardish modules we use on every site as well as our own custom installation profile that does some initial site configuration (turning off the Overlay, enabling the Administration Menu module, etc...) This enables us to get a basic site up-and-running in just a few mintues.

          Next, we need to download and enable the modules that we're going to need:

          • Geofield - be sure to use a version of the 7.x-2.x branch dated later than 2013-Apr-07

          Depending on whether or not you start with our custom make file, there may be other modules that are dependencies of the ones listed above that will also need to be downloaded and enabled.

          If you use Drush, the following command will enable all the necessary modules:

          drush en addressfield feeds_ui feeds_tamper_ui geofield 
          geofield_map job_scheduler feeds geophp rules_admin openlayers_ui
          

          Creating the Farmers Market Content Type

          Once the site is up-and-running, the first step is to set up something for all of the data to be imported into. In this case, hopefully it is obvious that we need to create a new content type with fields that roughly match the fields in our source file. By creating a node for each Farmers Market, once imported we can leverage all of the tools in the Drupal universe to interact with them as we build out the site.

          Create a new content type (admin/structure/types/add) with the following properties (throughout this post, any properties/attributes/settings not specifically mentioned can be left at their default values):

          • Name: Farmers Market
          • Disable "Promoted to front page"
          • Disable "Main menu" from "Available menus"

          Moving on to the fields (admin/structure/types/manage/farmers-market/fields):

          • Delete the "Body" field
          • Add "Address" field: type=Postal Address, Available countries=United States, enable "Hide the country when only one is available"
          • Add "Lat/Long" field: type=Geofield, Widget=Latitude/Longitude
          • Add "URL" field: type=Link, Link Title=No Title
          • Add "Location details" field: type=Text
          • Add "Schedule" field: type=Long text
          • Add "Last updated" field: type=Text

          Farmers Markets content type

          One thing to note is that once the import is complete, we're going to go ahead and enable the Geocoder module so that any Drupal-side address updates to any Farmers Market nodes will be automatically updated with the proper latitude/longitude coordinates. We don't want to enable this functionality prior to import otherwise the module will attempt to geocode each address from the source file during import. This is completely unecessary since the source file already includes latitude/longitude data. Plus, Google Geocoder limits non-paid users to 2,500 requests per day - unless you pay for more.

          Creating the Importer

          At this point, we have the source data (the .csv file) and the destination (the "Farmers Market" content type). The next step is to create the mechanism that will actually transfer the data from the source to the destination. We'll use the Feeds module to do this. The Feeds module is designed to take data from a variety of sources (most commonly RSS feeds and .csv files) and map it to Drupal entities (usually nodes, but not always).

          Add a new importer (admin/structure/feeds) named "Farmers Markets Importer". The "Edit" page for importers has 4 major sections. Let's look at each one in detail.

          Basic settings

          This section consists of the general configuration of the importer. For this project, use the following settings:

          • Attach to content type = Use standalone form. Note that this isn't referring to were the content is going to go, it is referring to the importer itself. In our case, since we only have a single data source, a standalone form is fine. If were were planning on importing data from multiple sources, a custom importer content type might be necessary.
          • Periodic import = Off. This setting is primarily used for automatically checking a feed for new data. For a one-time .csv import, it is not necessary.
          • Import on submission = Enabled. This triggers the import to start whenever a new .csv file is uploaded on the main import (/import) page.

          Fetcher

          This section sets the mechanism that actually interacts with the source data. We need to change the Fetcher from "HTTP Fetcher" (commonly used for RSS feeds) to "File upload". Looking at the settings for the "File upload" fetcher, all the default values are fine, so no changes are necessary.

          Parser

          This section sets the process that will be used to parse the source data into a format that the "Processor" (next step) can understand. In our case, we need to change the Parser from "Common Syndication parser" to "CSV parser". Again, the default settings for the "CSV parser" are fine as-is. It is interesting to note that the Feeds module is easily extensible. Custom Fetchers, Parsers, and Processors can be written to handle virtually any type of incoming data.

          Processor

          This final section is were the parsed source data is mapped to the proper place in Drupal. In our case, the default "Node processor" is what we want (since we're mapping the data into our new "Farmers Market" content type). The settings for the Node processor are as follows:

          • Update existing nodes = Update existing nodes (slower than replacing them). This is a big win for us, and is only possible because of the FMID field in the source data. This means that when an updated source dataset is available, (assuming the field structure hasn't changed) we can simply re-run our importer on the new file and upload only the records that have changed. In other words, we won't have to delete (including any user comments and Drupal-side updates) and re-import Farmers Market nodes. This will allow us to keep the site up-to-date with a minimum of work.
          • Content type = Farmers Market. This is where we tell the importer that we're going to be generating nodes of the Farmers Market content type with the imported records. This is the first link between the source and destination.
          • Author = admin (or any user on your site). It's fine to leave it as "anonymous", but I'd rather have my nodes "owned" by an actual user.

          The final (and most tedious) step is to set up the mapping of fields between the source and destination. In other words: data from each source fields needs to know which destination field it will go into. It is important to note here that the source field names must be entered exactly as they appear in the source data file. The mappings for this importer are (Source = Target):

          • MarketName = Title
          • FMID = GUID - set this field to "Unique" then be sure to click to "Save" the mapping.
          • Street = Address: Thoroughfare
          • City = Address: Locality
          • State = Address: Administrative area
          • Zip = Address: Postal code
          • x = Lat/Long Longitude
          • y = Lat/Long Latitude
          • Website = URL: URL
          • Location = Location details
          • Schedule = Schedule
          • updateTime = Last updated

          Be sure to double-check that the "FMID" field is set to unique!

          Farmers Markets content type

          Massaging the Data

          As I indicated in the "Farmers Markets Source Data" section above, there are a couple of things we need to do in order to get the dataset to import cleanly: set the default country ("United States") and translate the full state name to the 2-letter abbreviation ("New York" to "NY", for example).

          Setting the Default Country

          Setting the default country field for every record on import is actually a fairly simple operation to set up - assuming you're aware that the Feeds module exposes a "Before saving an item imported via [importer name]" event for each Feeds importer. This allows us to step in the middle of the import process and set a data value as we wish.

          From the main Rules configuration page (admin/configure/workflow/rules), add a new rule named "Add default country for imported markets" that reacts on the "Before saving an item imported via Farmers Markets Importer" event.

          Next, add an "Entity has field" condition with the Data selector=node and Field=field_address. This ensures that the country field exists (it is part of field_address) and (more importantly) is available for us to set its value in the next step.

          Finally, add an "Set a data value" action with a Data selector=node:field-address:country and a Value=United States. Click to save everything it's done!

          Add default country for imported markets rule

          Translating the State Names

          The second data issue that we need address during data import is that of the "State" field. We need a mechanism were we can automatically translate full state names into their 2-letter abbreviation. I turned to the Feeds Tamper module for this, as it is relatively straight-forward for a developer to create a custom plugin that can be assigned to any field via the Feeds Tamper interface. The source data is then run through the plugin code to make any necessary changes. Unfortunately, a plugin had to be written for this application - I have contributed it back to the community, but the module author has not acted on it as of April, 2013.

          If you're not familiar with applying patches, feel free to download the state_to_abbrev_inc.zip file, uncompress it, and place it in your feeds_tamper/plugins directory.

          Once the plugin is installed, it needs to be assiged to the "State" field. This is done by clicking "Tamper" link for our importer from the main "Feed importers" page (admin/structure/feeds). Then, add the "Full U.S. state name to abbrev" plugin to the "
          State -> Address: Administrative area" field.

          Tamper with the State field

          Import!

          At this point, everything is ready to proceed with the import. Navigate to the main "Import" page (/import) via the Navigation menu and click the "Farmers Markets Importer". Select the file to upload and click to "Import".

          I like to test things with a small version of the main source file - one with only a handful of records. This is helpful in making sure everything is being imported correctly without having to wait for all 7,000+ records to be processed. I check things by inspecting a few of the newly created Farmers Market nodes, ensuring fields are populated as expected. If I'm satisfied, then I go ahead and run the import with the full data set.

          On my particular local machine, importing all 7,000+ records took about 6 minutes.

          Setting Up the Proximity Search

          One of the features that really makes location-based content useful is proximity searches: being able to allow the user to "show me all the things near a particular location". For this example, we're going to use the built-in proximity functionality of the 7.x-2.x version of the Geofield module. We'll create a view that exposes a proximity filter that incorporates geocoding by allowing the user to enter any valid location data into the "origin" textfield. That is, the user can query for farmers markets within 10 miles of "Sacramento, CA", "06103", or "1600 Pennsylvania Ave, Washington, DC" - any text that the active Geocoder (usually Google Geocoder) can parse.

          Exposed Views proximity filter

          Once the import is complete, enable the Geocoder module. Then, create a new view named "Proximity search". On the initial views wizard page, "Show Content of type Farmers Market" (sorting doesn't matter yet). Create a page with a Display format" of "Geofield Map". Set the "Items to display" to 100 (just to make sure we never overwhelm the map with points), and disable the pager. On the main views interface:

          • Click to add the "Content: Lat/Long" field - exclude from display, Formatter=Latitude/Longitude
          • Click to add the "Content: Lat/Long - proximity" field - exclude from display, Source of Origin Point=Exposed Geofield Proximity Filter, Unit of Measure=Miles
          • Click to add the "Content: Lat/Long - proximity" filter - Expose this filter to visitors, enable "Remember the last selection", Operator=Is less than or equal to, Source of Origin Point=Geocoded Location. Be sure to add a default value for the exposed filter ("10 miles from New York, NY") or you may see a nasty little bug (http://drupal.org/node/1871510)
          • Remove the "Content: Post date" sort criteria
          • Edit the settings of the Geofield Map format: Data source=Lat/Long, Popup Text=title

          Once complete, save the view, then navigate to the /proximity-search (or whatever URL you set for the page display of the view) and give it a whirl!

          Proximity search

          Pimping the Display (and Functionality) of Farmers Market Nodes

          At this point, if you click on a Farmers Market pin, then click through to a particular Farmers Market node, the display of the node is less-than-impressive.

          Initial Farmers Market node display

          With just a little bit of effort, this can be greatly improved. We'll rearrange the order of fields, tweak the display a little bit, add a map, and incorporate Geocoder functionality for address updates.

          OpenLayers Map

          To keep things interesting, we're going to use the OpenLayers module for the map display on the individual Farmers Market nodes. First, we'll need to edit the OpenLayers map that we're going to utilize. Go to the main OpenLayers "Maps" page (admin/structure/openlayers/maps), and click to edit the geofield_formatter_map (the description of the map should explain why we're using this one - it is designed to handle the display of Geofield output). There's lots of available settings for each map, we'll only make a few small configuration changes:

          • Basics section: Width=auto, Height=250px
          • Layers and Styles section: only the "OMS Mapnik" layer should be enabled and set to default, set the styles for "Placeholder for Geofield Formatter" to "Marker Black Small"
          • Behaviors section: Point Zoom Level=14

          Once the map is configured, we can utilize it on the Lat/Long field of our Farmers Market content type. Go to the "Manage Display" page (admin/structure/types/manage/farmers_market/display) and change the format of the "Lat/Long" field to OpenLayers. Click to save and test.

          Reordering the Display Fields

          While we're on the "Manage Display" page of the Farmers Market content type, rearrange the fields as follows:

          1. Lat/Long: Label=Hidden
          2. Location details: Label=Hidden
          3. Address: Label=Hidden
          4. URL: Label=Hidden
          5. Schedule: Label=Inline
          6. Last updated: Label=Inline

          With these changes, things improve quite a bit.

          Pimped Farmers Market node display

          Enabling the Geocoder for Address Updates

          Finally, now that all the data is imported, we can go back and modify the Lat/Long field to automatically be updated by the Geocoder module whenever the node is updated (in case the address changes). From the "Manage Fields" page for our content type (admin/structure/types/manage/farmers_market/fields), click the "Latitude/Longitude" widget for the "Lat/Long" field, change the widget to be "Geocode from another field", then continue to click to edit the field configuration and ensure the "Geocode from field" option is set to "Address". Click to save.

          Are We Done?

          At this point, we have a fully functional site where users can search for farmers markets near them, then click to view the details on ones that interest them. Since the farmers markets are nodes, we can leverage all the great modules available from Drupal.org to futher extend and enhance the site.

          With just a few additional modules, a contribued (responsive) theme with just a few extra lines of CSS, and some publically available imagery, it's quite simple to produce a usable site - just like FarmersMarketsNow.com!

          Extra Credit - Utilizing the Source Dataset's Category Fields

          Still reading? Congrats - you're in it for the long haul. Wondering how we can leverage the category data from the source file? Here are the steps:

          1. Before creating the Farmers Market content type, create a new "Categories" vocabulary.
          2. Add a "Categories" term reference field to the Farmers Market content type and set the "Number of values" to "Unlimited".
          3. Install the taxonomy_inc.zip Feeds Tamper plugin in the feeds_tamper/plugins directory. This is a custom pluging that is specific to this particular source file. It takes data from all the category-type fields in the source file and imports them to the new "Categories" vocabulary.
          4. Add a new mapping field to the importer. The way the Feeds Tamper plugin was created, only one needs to be added. Use "Bakedgoods = Categories".
          5. Utilize the custom "Taxonomy Y/N" Feeds Tamper plugin on the "Bakedgoods -> Categories" field.

          Rerun the import and see the magic! Note that the extra processing for the categories really slows down the import quite a bit. I'm sure that there are other ways of importing the category-type fields to a single vocabulary, let me know in the comments if you know of an easier method.

          Trackback URL for this post:

          http://drupaleasy.com/trackback/575

          AttachmentSize 1.21 KB 1.34 KB 763 bytes
          Apr 29 2013
          Apr 29

          Average: 1 (3 votes)

          Talent/Idea crossword
          Everyone seems to need more and better Drupal talent. There are too many instances where projects are delayed, or even turned away or lost because we can't find the people with the proficiency to do the work. Even though high demand for Drupal is a relatively good problem, it is still one that begs for a solution. There's a plethora of training programs (including through DrupalEasy) out there for the self-motivated, tech savvy, Drupal-aware. The issue is, even with the mass of training available and promoted through the community, we still can't fill the gap, especially for the community's long term needs. This dilemma exists for the same reason that we face awareness challenges of the Drupal CMS overall; there is no sizable list of behemoth companies with huge marketing budgets or focused, funded, grand scale efforts to raise awareness outside of the community.

          One potential solution is looking outside of the community to infuse the extra, needed resources and attract talent. I'm not talking advertising or sponsorships, but more using relevant resources not necessarily focused on Drupal talent development. DrupalEasy's expertise includes a storied past in economic and workforce development, which are two unique elements of the public sector whose motivations align with growth of industries, and development of talent to meet the opportunities those industries provide. In most cases, state, regional and local Workforce Investment Boards (WIBs) and Economic Development organizations (EDOs) are continually looking for areas they can support in their target industries. Information Communications Technologies is a sector on more WIB and EDO target lists than not, because it is green, usually provides high wages, and in most cases brings wealth (wages) from outside the region into the local economy. (Value-added jobs that everyone wants in their backyards.)

          Drupal and other Open Source Technologies are areas that most workforce professionals are not aware of, and that have a host of issues that need to be addressed by the professionals tasked with growing jobs and economies. Among them, recognized certifications, virtual work, the high percentage of contractors and the self-employed vs. traditional employment, and the length of time/lack of definitive path to becoming a sought after Drupal professional. But, as someone wise once said, an obstacle can either be a stumbling block or stepping stone. The resources that WIBs and EDOs have that can assist the growth of Drupal and development of Drupal talent are certainly worth a little heavy lifting to create a solid path out of the barriers.

          At DrupalEasy, we've already started. Thanks to our forward-thinking local WIB, Brevard Workforce, we already have trained 38 people through the Drupal Career Starter Program thanks to a federal grant with a more lax requirement on certifications. This step in securing WIB funds for open source, un-proven training was monumental. Since then, we've stepped up our awareness building efforts. We have compiled our binder-thick application, and stood in front of the Florida Commission on Independent Education where the vote was unanimous for approval of a provisional license for the Drupal Career Starter Program. We were also asked by the Florida state-wide WIB, Workforce Florida, to present Drupal and the DCSP to their finance committee at the most recent meeting of the board in the state capital, and presented a session on Open Source Technology Training at the National Association or Workforce Boards in Washington DC last month.

          Right now, DrupalEasy is awaiting final approval of our application to the local workforce board to become an approved training provider, eligible for all standard funding streams, which should come through in mid-May. We are also working with a local legislator to ease regulations so our license can more easily work state-wide for any workforce boards that want to build Drupal talent in their regions.

          At all of the presentations and meetings with workforce and economic development groups I've been involved in, once the decision makers understand what open source and Drupal have the potential to do, they would like to know more and figure out how to make their programs work to help build talent. Every region of the US, as well as countries and regions across the world, have WIB-like organizations focused on providing assistance and training for opportunity-rich careers.

          It's amazing what happened to Drupal once government discovered what Drupal has to offer. Imagine what we can do for Drupal talent development once we discover what government has to offer. If you are contemplating how you might help create the talent you need for the future, let me know if you'd like to raise the awareness with WIBs and EDOs and potentially leverage government training funds to build talent in your area. Contact us to learn more.

          Trackback URL for this post:

          http://drupaleasy.com/trackback/574

          Apr 27 2013
          Apr 27

          Download Podcast 104
          DrupalEasy_ep104_20130427.mp3

          Lee Hunter (LeeHunter), the new Drupal documentation lead joins Mike Anello to talk about the future of Drupal documentation and his (evil?) genius plan to create tools so that people to want to write better documentation.

          Interview

          • Want to get involved?

          Five Questions

          Each podcast we ask our guests the same five questions. Here are Lee’s answers:
          1. Ubuntu and Windows
          2. Kristof Van Tomme (kvantomme)
          3. Montreal
          4. Angie Byron (webchick), Amitai Burstein (Amitaibu)
          5. The ability to integrate Drupal with desktop tools.

          Want to know what the five questions are? Listen to the podcast!

          Three Stories

            Sponsor

            Picks of the Week

            Upcoming Gig

            Follow us on Twitter

            Opening Music

            Subscribe

            If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or music lessons for Mike. If you'd rather just send us an email, please use our contact page.

            Average:

            No votes yet

            Apr 25 2013
            Apr 25

            Drupal is a free, super-powerful content management system for sites that require information posting and collection, including blogs, forums, videos, photos, and databases of information. We think it is the best platform available. Here's why...

            Apr 24 2013
            Apr 24

            Average: 5 (1 vote)

            Opening sessionFlorida DrupalCamp 2013 took place on April 20 and 21, 2013 at the Florida Technical College in Orlando, Florida. Attended by almost 300 people, the camp featured 42 sessions, a fantastic keynote by Ryan Szrama (rszrama), 30+ volunteers, great food by 4Rivers, and four lucky organizations who benefitted from the all-day Coding for a Cause event. This was central Florida's fifth consecutive annual camp, and by all indications was well-received by everybody who attended. As is our custom, this blog post will serve to wrap up all aspects of the camp, including things that we could (should?) have done better.

            As with most Drupal events, our camp would not have happened without all the hard work from our all-volunteer staff. While the Florida Drupal Community is spread out over a state that takes 14 hours to drive from Pensacola to Key West, when it comes to organizing a camp, we act as one group with a common goal: to put on the best camp anywhere. With weekly conference calls starting months before the event to our constantly active Open Atrium group, our volunteers take ownership of their tasks and have always delivered.

            Happy camperThis year's group of volunteers added a new wrinkle to our camp - a good number of the organizers hadn't participated in previous year's camps. With the guidance and encouragment of the other organizers, this "fresh blood" added welcome energy and ideas to our groups. One of these new members is Tom Nguyen (tom_nguyen), who found, secured, and managed communication with the venue for this year's camp. When our previous host informed us that they were unable to host the 2013 edition of the camp due to building renovations, we spent several long weeks talking about potential venues, but it wasn't until Tom stepped up and visited some potential locations that we gained real momentum.

            Venue

            We could not have been happier with Florida Technical College and their staff's willingness to work with us to make this event a success. While the venue wasn't perfect (the auditorium wasn't large enought to hold everyone), virtually everything else about it was ideal. A large, conveniently-placed student lounge, a virtually unlimited supply of classrooms equipped with projectors and screens, more-than-adequate WiFi (always a big concern), ample free parking, all while being compact enough to encourage networking and discussion. Did I mention that it was free? Amazing, we know. The staff couldn't have treated us nicer, and we look forward to working with them again in the future.

            Sessions

            Pramod JainI'm really going to try to be unbiased about this next topic, but it's going to be difficult. I've been to many DrupalCamps up-and-down the East Coast of the United States (and one in Europe) and I really believe that this was the highest quality lineup of sessions that I've ever seen at a camp. Our keynote was given by Ryan Szrama, lead developer of Drupal Commerce and Commerce Guys' VP of Community Development. Our all-day beginner track was presented by OSTraining, in addition we had 35 other sessions on topics ranging from running a Drupal shop to CSS/SASS/Compass to module development to Drupal 8. Don Vandemark (caelon) worked tirelessly to reach out to high-quality speakers around (and outside) the state. In addition, Shaun Heath (heaths1 - another newbie) arranged for a (large) portion of the sessions to be recorded by Utzu Logigan (durasro) of Davram Tech and will be made available online (soon!)

            Registration

            Our largest headache with the camp was the registration system. We messed up big-time in launching the site too quickly without fully testing the registration system configuration. While it worked great for individuals registering themselves, it failed more than it worked with attempting to register more than one person at a time. While we did determine the issue a couple of weeks into ticket sales, we were nervous about making any changes and risking the possibility of making things worse. Therefore, it fell on one of our volunteers to patiently answer emails from people having issues with registration and walking them through the process. In addition to this, Mike Herchel (mherchel) was also in charge of the marketing for the camp, spending countless hours sending emails, reaching out to other tech groups, and getting the word out through all possible means. Mike also stepped in to help with numerous other tasks - every camp needs someone like him who just gets stuff done (no, you can't have him).

            Giveaways

            Doug Hercules - the giveaway refereeAs if our attendees weren't getting enough for their registration fee, we had an amazing group of in-kind sponsors that provided books, DVDs, and other merchandise that was used in giveaways during the camp. Our official Florida DrupalCamp giveaway referee, Doug Hercules (dhercjr - another newbie), ran around blowing his whistle and making people participate in silly games all while handing out almost $1,000 worth of merchandise, including over 50 Drupal-related books.

            Web site

            The Drupal 7, COD-based (Conference Organizing Distribution) web site was a hand-me-down from DrupalCamp Atlanta with new content and a new theme. The theme was designed by Mike Herchel (yeah, the same guy) and implemented by himself, Adam Varn (hotsaucedesign), Erik Baldwin (BLadwin), and Jason Taber (companyguy). The site featured some amazing CSS3 animations and a fantastic responsive design that made the online session schedule super-easy to use. Linda Cook (lscook) and Dennis Solis (densolis - another camp organizer newbie) wrote virtually all of the content for the site while Andrew Riley (Andrew M Riley) and John Learned (JCL324) configured the site for our camp. The big takeaway from this year's camp is to build and test the full functionality of the web site early. Really early. And test the pants off it.

            Design

            When it comes to designing our camp, we take a holistic approach and have a separate design committee that oversees all printed and electronic material to ensure consistency and professionalism. Erik Baldwin led this committee, working with numerous other volunteers including Cielo Johnson (C13L0 - another newbie), Roland Riddell (rols), Sandy Milligan (sandym), Phil Smith (SiliconValet), David Cruz (dimmech), Dorothy Cleary (dbdot), and Dustin Cooper (dustinjcooper). The groups designed badges, printed schedules, signs, t-shirts, and swag bags - all branded with the Florida Drupal Diver.

            T-shirts

            t-shirtRoland Riddell also worked with the rest of the design committee to come up with a fantastic t-shirt design that tied all of our branding together. With the first-ever (someone check me on this) giant octopus gracing the front of our t-shirts, and a school of fish (sponsors) on the back, this year's t-shirt design is our best yet (so long, camper!) One of the original Florida Drupal Group members, Joe Moraca (joemoraca) found a suitable vendor and ensured we had the t-shirts on-time (thanks to Mike Herchel, again).

            Sponsors

            As with most Drupal events around the world, there's no way we could have provided all of this for $25 without the crazy-generous support of our sponsors. Topping them off is Mediacurrent - within 8 minutes of my sending a sponsorship request message to Dave Terry, he had claimed the Platinum sponsorship: an amazing way for us to start our fund-raising drive. Mediacurrent's close relationship with Florida (about 10 of their employees are Florida-based) is one that we value greatly. In addition, we had four Florida-based Gold sponsors: Educational Data Resources, Big Couch Media Group, Digital Frontiers Media, and Purple Rock Scissors. A full list of all sponsors can be found at http://fldrupalcamp.org/sponsors. All told, our sponsors provided over $10,000, and we can't thank them enough.

            Fiscal Partner

            For the fourth year in a row, the Central Florida Computer Society acted as our fiscal partner. Bringing us in under their 501(c)(3) umbrella, providing accounting support, and providing the most friendly day-of volunteers we could ask for. It's a continuing partnership that we value greatly.

            Budget

            The overall budget for Florida DrupalCamp 2013 was a bit more than $16,000. Income came from sponsors (approximately 70%) and ticket sales. Once again, we managed to keep ticket prices at a minumum, offering an earlybird price ($20) to about half of the registrants, and including food, t-shirt, and a recyclable swag bag in the cost of a registration. Our largest expense was food (~$8,000), followed by session recordings (~$3,000), and t-shirts (~$2,500). The remainder of the expenses were for printing, marketing, and miscelleanous expenses. Overall, it looks like we'll have a small surplus that we'll use as seed money for future Florida Drupal events.

            Food

            4Rivers cateringAs with other aspects of our local community, we are so lucky to have someone who volunteers to take on a task of this magnitude, then follows it through to the end, year-after-year. Angela Cacciola (PrincessAng417) once again took on the catering task, provided us with numerous options, put up with our ridiculous questions (seriously, why can't we have a milkshake bar?), and made it all look easy. This year's camp was catered by 4Rivers, a local BBQ resturant that was amazing. They provided a breakfast buffet (sorry we ran out of coffee!), a great lunch, snacks in the afternoon, and drinks all day. It was seemless, easy, and we had leftovers. Sweet.

            Code Sprint

            Albert Volkman (Albert Volkman) and Kevin Basarab (kbasarab) organized a full-day code sprint the day after the camp that mainly focused on Twig in Drupal 8 issues. A number of potential new contributors were on-ramped to reviewing issues, creating and reviewing patches, and the core contribution mentoring process.

            Coding for a Cause

            Ben Hosmer talking about Coding for a CauseOnce again, the Florida Drupal community was clear in their desire to give back to the community. This year, four non-profit organizations were selected to take part in our Coding for a Cause event, where volunteers get together for a full day of site building for each organization. Over 40 people participated in the event - check out this post for details on each organization's project. Ben Hosmer (bhosmer) led a team of volunteers in making it all happen, including project managers Maggie Ardito (marguerite), Ryan Price (liberatr), Robert Laszlo (laszlocore), and Dawn Borglund (dborglund).

            Conclusion

            The Florida Drupal Community continues to lead the way in organizing a completely volunteer planned and run event whose mission it is to spread knowledge and confidence in using Drupal. We recently sent out a survey to all attendees, I look foward to sharing the results of that survey in a future blog post, although I'm confident in what the results will show. Compared with our 2012 effort, we definitely improved in several areas:

            1. Caroline Achee (cachee), Karan Garske (karang) and Natalie Roberts (anzi31 - first time volunteer) ensured that our day-of registration lines flowed smoothly and quickly. Last year's was much less-than-ideal, and the changes we implemented this year (multiple lines, including two people dedicated to registration issues) were exactly what we needed.
            2. Don Vandemark found us a great location for our afterparty. It was more than large enough to hold all of us, provided reasonably-priced food and drink, as well as promoted networking that continued for hours after the sessions ended. This is something we'd lacked at previous camps, and the difference was amazing.
            3. We worked with the catering company to ensure there were multiple lines for everything to keep the traffic flow moving. Less waiting in lines meant more time for people to talk about Drupal!

            Overall, it was a weekend that the Florida Drupal Community can be proud of!

            Photos by Kevin Basarab, Hewie Poplock, Bryan Buxton, and myself (Michael Anello). Thanks to Doug Hercules for helping out with this post!

            Trackback URL for this post:

            http://drupaleasy.com/trackback/571

            Apr 21 2013
            Apr 21

            Average: 5 (2 votes)

            Caught doing good braceletsFlorida DrupalCamp 2013 invited four local non-profit organizations to take part in our annual Coding for a Cause event. Held the day after the camp sessions, over 30 volunteers help with site-building, theming, and content management tasks for the lucky organizations.

            This year's event focused on four local 501(c)(3) non-profits that were selected from the application process. Each selected organization was required to agree to:

            • work with a project manager prior to the event
            • attend a full day of beginner training sessions on Saturday
            • participate in the site-build on Sunday

            The four organizations are:

            Helpertunity

            An Orlando-based organization focusing on supporting recreation, education, and volunteer activities for elderly, disabled, and homeless persons. In addition to individual volunteer projects, Helpertunity's goal for 2013 is to advocate for technology access and mobile resources for care facilities (nursing homes, care shelters, and adult day programs) in Florida. Volunteers are creating a web site to allow donors to connect, learn, and build trust with the organziation so that on-going projects can continue and grow. http://www.helpertunity.org

            East Coast Greenway (Florida Chapter)

            A Florida-based chapter of the national East Coast Greenway organization focused on advocacy, support, and development of the 3,000 mile multi-use greenway route between Maine and Key West. The project involves creating a pilot web site whose goal is to futher engage and expand volunteer activity in trail-building and advocacy. The pilot web site will be focused on building community support for the Florida portion of the trail. http://www.helpertunity.org

            Orlando Music Club

            A Central Florida-based foundation that provides scholarships to students interested in studying music. They also provide music resources for teachers as well as a matching service putting students, teachers, and music resources together. Volunteers will be rebuilding their existing web site with a new design, updated content, and improved functionality. http://orlandomusicclub.org

            Urban Rethink

            Urban Rethink is an Orlando-based creative hub that focuses on co-working and community events as part of the Urban Think Foundation. The project consists of expanding their informational website to include user-generated content and social media-style pages for their co-working members. Specifically, an infrastructure for creating online photo albums will be built, and non-technical volunteers will be migrating photos from the past several years' worth of Urban Rethink events. In addition, the design of the site is being upgraded to be mobile- and tablet-friendly. http://urbanrethink.com/

            Stay tuned to the @fldrupalcamp twitter feed for site launch announcements when available.

            Trackback URL for this post:

            http://drupaleasy.com/trackback/570

            Apr 10 2013
            Apr 10

            Download Podcast 103
            DrupalEasy_ep103_20130409.mp3

            Michelle Johansen (mjohansen) and Greg Dunlap (heyrocker) join Ryan Price and Mike Anello for a discussion about DrupalCon Portland. As the Content Lead (the volunteer in charge of the track chair volunteers) and the Core Conversations track lead, respectively, Michelle and Greg filled us in on all the happenings planned in and around DrupalCon Portland. We also discuss the newest "Young Global Leader", DrupalCon session recordings on YouTube, and email debugging.

            Interview

            Five Questions

            Each podcast we ask our guests the same five questions. Here are Michelle’s answers:
            1. Mac.
            2. Women in the Drupal community.
            3. Chicago.
            4. Karen McGrane and Michael Lopp.
            5. Prettier backend editing area.

            Want to know what the five questions are? Listen to the podcast!

            DrupalEasy News

            Three Stories

              Sponsor

              Picks of the Week

              • Mike - Geocoder module by Patrick Hayes (phayes)- Geocodes stuff and puts results into a Geofield.
              • Michelle - any module that just works and is well-documented!

              Upcoming Gig

              Follow us on Twitter

              Subscribe

              If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or pinball tips for Greg. If you'd rather just send us an email, please use our contact page.

              Average:

              Your rating: None Average: 2 (1 vote)

              Apr 05 2013
              Apr 05

              No votes yet

              Florida Drupal DiverWe're trying something new this year at Florida DrupalCamp 2013 (Saturday, April 20 - tickets on sale now for just $25) and we're looking for some (financial) help to get it done.

              We'd like to be able to record all sessions and post them online for the entire Drupal community. In order to do so effectively, we've decided to hire Davram Tech (contact me if you'd like to be put in touch with them) to take care of it for us. Utzu from Davram Tech has agreed to travel to our camp, record all the sessions, and upload them to a video hosting site of our choice. The interesting thing about it is that it is going to provide a valuable new sponsorship opportunity for our camp. The sponsorship of a session video will allow the sponsor to add branding to the start and finish of the video - as long as it remains online. This type of ongoing branding is surely worth much more than we're charging for it (more on that later).

              Of course, hiring an organization to do all the work of recording sessions isn't free. In our case, it works out to about $150 per session. We raised a good deal of money from our amazing sponsors, but not quite enough to have full coverage of all sessions. So, we decided that, at a minimum, we're going to record 20 sessions. These 20 sessions will be sponsored by our existing Platinum, Gold, Silver, and Bronze sponsors. The remaining 16 (or so) session are officially up-for-grabs. We're looking for some additional sponsors to pony up $150 for each session video they'd like to sponsor. Interested? Let me know.

              Here's the way it works: we're letting our current sponsors pick the sessions they'd like to sponsor. After that, it's first-come, first-serve. Want to get your organizations name permanently attached to a #fldc13 session video? Let me know.

              Trackback URL for this post:

              http://drupaleasy.com/trackback/567

              AttachmentSize 28.83 KB
              Apr 02 2013
              Apr 02

              Download Podcast 102
              DrupalEasy_ep102_20130328.mp3

              Larry Garfield (Crell), leader of the Drupal 8 Web Services and Context Core Initiative (WSCCI), joins Andrew Riley, Ryan Price, and Mike Anello as they desperatly tried to stay out of the weeds during their discussion about routing, hypermedia, controllers, and REST (and somewhat fail). Along the way, we learn what Drupal developers of all disciplines and skill levels can expect from WSCCI, and why it's going to make the (Drupal) world a better place. In addition, we discuss importance of Hackathons and not over-reacting.

              Interview

              Five Questions

              Each podcast we ask our guests the same five questions. Here are Larry’s answers:
              1. Mac at work (by force), PC at home, NetBeans everywhere.
              2. Kat Bailey (katbailey).
              3. Anywhere that everyone is in the same hotel.
              4. Jeff Eaton (eaton)
              5. He would answer SCOTCH if we let him, so we dragged Twig out of him instead.

              Want to know what the five questions are? Listen to the podcast!

              DrupalEasy News

              Three Stories

              Sponsor

              Picks of the Week

              Follow us on Twitter

              Subscribe

              If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or microphone setup tips for Ryan. If you'd rather just send us an email, please use our contact page.

              Average:

              Your rating: None Average: 5 (2 votes)

              Mar 25 2013
              Mar 25

              I was working on a Drupal migration project today using the Migrate module where I needed to import only select user roles from the source (Drupal 6) database.

              The Migrate module allows for a custom query to select only the user roles that need to be imported. In my case, the two roles I wanted to import had role IDs of 4 and 6. So, how do I write a query using the Drupal Database API to do this? Turns out there's a pretty elegant answer. Rather than writing something like:

              SELECT * FROM role r WHERE rid=4 OR rid=6;

              The proper way of writing the select query is:

              $query = parent::query();
              $ored = db_or();
              $ored
              ->condition('rid', 4)
              ->condition('rid', 6);
              $query->condition($ored);

              Note the elegant "db_or()" function that returns a DatabaseCondition object. Add the two conditions to this object, and they're automagically "or"ed.

              Trackback URL for this post:

              http://drupaleasy.com/trackback/565

              Average:

              Your rating: None Average: 4.5 (2 votes)


              More Quicktips

              • 2 of 108

              Mar 16 2013
              Mar 16

              Download Podcast 101
              DrupalEasy_ep101_20130314.mp3

              Greg Dunlap (heyrocker), leader of the Drupal 8 Configuration Management Initiative (CMI), joins Andrew Riley, Ted Bowman, and Mike Anello to kick off the 2nd hundred episodes of the podcast. Greg provides an excellent rundown of not only the features of CMI, but also his fund-raising efforts that allowed him to work full-time on it for seven months! In addition, we used Greg as our test subject for a new podcast feature that we call “five questions”, discussed PHP versions, how much money an average Drupal developer makes, and the DrupalCon location selection process. All this, plus our picks of the week (hint: someone’s involved pinball)!

              Interview

              Five Questions

              Each podcast we ask our guests the same five questions. Here are Greg’s answers:
              1. 11” MacBook Air (no external monitor!), TextMate, NetBeans, Chrome.
              2. Nick Schuch (nick_schuch), Lee Rolands (larowlan), Jeremy Thorson (jthorson), Wim Leers (Wim Leers), Devin Carlson (Devin Carlson), Alex Bronstein (effulgentsia), Tim Plunkett (tim.plunkett), Jesse Beach (jessebeach), Cameron Eagans (cweagans), Alex Pott (alexpott). Clearly, we need to better enforce the pick one rule.
              3. Chicago, Las Vegas.
              4. Jeff Eaton - eatoncon keynote.
              5. Replace FormAPI with Symphony’s form system.
              Want to know what the five questions are? Listen to the podcast!

              DrupalEasy News

              Three Stories

                Sponsor

                Picks of the Week

                Follow us on Twitter

                Subscribe

                If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or time-management tips for Andrew. If you'd rather just send us an email, please use our contact page.

                Average:

                No votes yet

                Mar 15 2013
                Mar 15

                Average: 3 (2 votes)

                I've been on the road a lot lately, touting the opportunities that Drupal offers to workforce and economic development efforts of regions and states. Thing is, before we can get to all the advantages for regions to develop a Drupal-talented workforce, we have to educate a lot of government leaders, commissions and committees on what Drupal is and does.  In short, they need to "get it." This means understanding not just what Drupal is used for, but why it is growing as quickly as it is.  Decision makers in many of our forums do not know what a content management system is, nor what open source means. That's a lot of ground to cover before we can even get to the whole training component!

                So, in our usual DrupalEasy approach to making things more efficient, we created an under-three minute video that seems to meet our needs.  No audio as yet, but we are open to suggestions as to a voice over, or some open source diddy that might make it a bit more engaging.  Give it a look, and let us know what you think, what we can do to improve it, and how you might be able to use it.  Also, if you need to explain Drupal to anyone, feel free to pass it along.  DrupalEasy proudly presents... V1 of: What is Drupal?

                Trackback URL for this post:

                http://drupaleasy.com/trackback/562

                Mar 14 2013
                Mar 14

                Average: 3.5 (2 votes)

                Florida Drupal DiverThe fifth annual Florida DrupalCamp is now open for registration! DrupalEasy is proud to be a sponsor for this year’s FLDC as well as being involved in the planning and execution of the camp through not only myself, but also through our network of contractors and graduates from our two local DrupalEasy Career Starter Program sessions. A full day of sessions on Saturday, April 20 as well as Coding for a Cause and a code sprint on Sunday, April 21 will provide ample learning, sharing, networking, and socializing opportunities for technologists interested in expanding their Drupal knowledge and network.

                Over the past five years we’ve grown from a small (less than 100 people) event held in a sponsor’s office to one of the largest DrupalCamps in the southeast. This year we’re expecting well over 300 attendees at the Florida Technical College campus. For only $20 (early-bird price), attendees will be fed all day (by an amazing local caterer), be outfitted in one of the coolest DrupalCamp t-shirts I’ve seen (IMHO), be able to choose from six simulatenous tracks of sessions, and enjoy a keynote presentation by one of the nicest people in the Drupal community: Ryan Szrama of Commerce Guys.

                Obviously, an event of this magnitude wouldn’t be affordable for many people without the participation of our extremely generous sponsors. Our Platinum sponsor, Mediacurrent - while based in Atlanta - employes a significant number of telecommuters who live in Florida. Within minutes of my contacting them about being a sponsor for FLDC, they had committed to being our top-level sponsor.

                For the past few years, we’ve worked with the Central Florida Computer Society as our fiscal sponsor. In addition to acting as our sponsor 501(c)(3) organization, they generously provide us with accounting support and a small army of volunteers the day of the camp.

                With our usual venue currently undergoing renovations, the Florida Technical College (FTC) stepped up and offered us the use of their entire building (over 20 classrooms!) for the entire weekend of the event. As part of our agreement, we hope to introduce a significant number of FTC students to Drupal.

                Florida Drupal DiverIn addition to registration being open, we’re also accepting session proposals for the camp. We’ve added an “Off the Drupal Island” track to encourage our community to learn about complementary technologies, and have arranged for the trainers from OS Training to provide a full-day beginner track as part of the camp.

                We’re expanding our normal Sunday events this year to include a code sprint. If you’re interested in learning how to contribute back to the Drupal community, this is a great opportunity to learn how to work on community based tasks - including code, documentation, and cat-herding. Coding for a Cause is back for its third consecutive year - during this event volunteers will build an entire web site for multiple local non-profit organizations. We’re currently accepting applications, so if you know of a Florida-based non-profit looking for a new web site, please send them to the application.

                Getting back to our sponsors for a moment, Digital Frontiers Media (a Sarasota-based Drupal shop), Big Couch Media Group (a Palm Beach-based Drupal shop), Purple Rock Scissors (an Orlando-based digital creative agency), and Educational Data Resources (a Winter Park-based educational technology company) are on-board as Gold sponsors. These organizations, as well as the rest of our sponsors deserve all the credit for providing the financial support necessary to bring our community together. Thank you!

                There’s a lot more to this event that I haven’t covered: a discount hotel rate, an after-party that we’re still in the midst of planning, plenty of giveaways, and the opportunity to purchase limited-edition polo shirts with our beloved Drupal Diver logo!

                The hosts and organizers, the Florida Drupal Users’ Group is a diverse groups of community leaders from all of Florida. While we have various meetups in all parts of the state, we take pride in the fact that we utilize http://groups.drupal.org/florida as our “home base” and do our best to act as a single community.

                Trackback URL for this post:

                http://drupaleasy.com/trackback/564

                Mar 07 2013
                Mar 07

                Average: 4.7 (3 votes)

                First baseI recently ran into an issue on one of our projects with a Git repository that stumped me for a few days. It was a small project: only three developers committing to a single repository hosted on Pantheon. I kept on running into an issue where I (or any of the other developers) could ever get my local repository to a “clean” state.

                That is, I’d run “git status” and see 

                $ git status
                # On branch master
                #
                # Changes not staged for commit:
                #   (use "git add/rm <file>..." to update what will be committed)
                #   (use "git checkout -- <file>..." to discard changes in working directory)
                #
                # modified: image.JPG
                #
                # no changes added to commit (use "git add" and/or "git commit -a")

                Hmmm, that’s odd, as I didn’t modify image.JPG. No worries, let me just do a “git checkout” on it...

                $ git checkout image.JPG
                $ git status
                # On branch master
                #
                # Changes not staged for commit:
                #   (use "git add/rm <file>..." to update what will be committed)
                #   (use "git checkout -- <file>..." to discard changes in working directory)
                #
                # modified: image.JPG
                #
                # no changes added to commit (use "git add" and/or "git commit -a")

                Whaaa? But I just checked it out? How can it be modified?

                Well, as you may be guessing by the capitalized “.JPG” extension, the root of this problem was with case-sensitivity.

                I called upon my Git mentor, David Rogers to help me figure out where the problem was and how to remedy it. David explained to me that the issue was that due to the fact that the three of us developers were on case-insensitive machines (Macs), and some of the commits were being made on a case-sensitive server. Pantheon has a feature where files SFTP’d up to the server are automatically committed, and our client-developer was making his commits this way. 

                The problem was caused because one of our developers committed the same file with two different (according to case-sensitive Linux) filenames to the repo, “image.jpg” and “image.JPG”. So, as David eloquently explained:

                So Linux sees "FOO.JPG" and "foo.jpg" as two separate files... But Mac / Win see them as the SAME file... And Git, being a Linux tool, sees them as different, because it includes the name of the file in the hashing algorithm. If the hashes don't match, there's a difference. If the name is not the exact same, the hashes won’t match.

                Brilliant - we had our cause, so what was the solution? It was actually a two-parter. 

                First, we needed to correct the repo on a case-sensitive machine so that there was only one copy of the (lowercase-named) image. We did this by using “git rm” to remove the duplicate, upper-cased file, then committed the change, then had our developers pull the commit. 

                If their local repos were still “dirty”, all that needed to be done was to locally drop the offending file, then check it back out using “git checkout”. 

                The key step here is fixing the upstream repository on a case-sensitive machine, without doing this, we’d never fix the core issue. Or, as David explained, we’d have a classic “who’s on first” routine on all of our case-insensitive machines:

                user: git, what's our status?
                git: the file named FOO has changed...
                user: what's changed about FOO?
                git: it looks different.
                user: uh, okay... mac, delete FOO.
                mac: (silently) deleted "foo"
                user: okay, git, what's our status?
                git: you're missing two files: "foo" and "FOO"...
                user: wait, what? Okay, check out "foo" for me...
                git: (silently) checked out "foo"
                user: okay, great now what's our status?
                git: the file named FOO has changed...
                user: this again!? mac, what files are in this directory?
                mac: there's a file called "foo"
                user: git, what's the status of file "foo"...?
                git: the file named FOO has changed...
                user: MUST KILL ROBOT!!!!

                So, the moral of the story - always keep your filenames lowercase to avoid issues like this, and if you do encounter an issue, fix it on a case-sensitive machine.

                David Rogers is a professional software developer, speaker, trainer, and organizer of the OrlandoPHP user group. If you’d like more git-based comedy routines or at least an entertaining solution to your development problems, you can find him on the internets.

                Trackback URL for this post:

                http://drupaleasy.com/trackback/560

                Feb 28 2013
                Feb 28

                Download Podcast 100
                DrupalEasy_ep100_20130228.mp3

                Angie Byron (webchick) joins Andrew Riley, Ryan Price, and Mike Anello for the centennial edition of the DrupalEasy Podcast. We threw our standard format out the window for this episode and discussed a wide range of topics including creating ravenously passionate contributors, migrating modules to Drupal 8, the new Drupal 8 feature that Angie is looking most forward to, Angie’s job description, the tools she uses, what she views as Drupal’s biggest threat, and a whole bunch of other stuff. &lt;--break-&gt;&lt;--break-&gt;

                One Story

                DrupalEasy News

                Sponsor

                Listener Homework

                Follow us on Twitter

                Subscribe

                Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or contributing tips for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                Average:

                Your rating: None Average: 3 (2 votes)

                Feb 20 2013
                Feb 20

                Download Podcast 99
                DrupalEasy_ep99_20130218.mp3

                Jennifer Lampton (jenlampton) of Jeneration Web Development joins Ryan Price and Mike Anello to talk about the most-excellent new theme engine forthcoming in Drupal 8: twig. Jen tells us everything that’s wrong with theming in Drupal 7, and how twig in Drupal 8 will be like riding a pure white unicorn on candy-coated road across an aqua-blue sky so much better. WYSIWYG in core, microcopy, documentation, and some really good picks of the week are also covered in the last ever 2-digit DrupalEasy podcast!

                  DrupalEasy News

                  DrupalEasy is proud to be a sponsor of Florida DrupalCamp 2013, to be held April 20, 2013 at Florida Technical College in Orlando.

                  Picks of the Week

                  Sponsor

                  Listener Homework

                  Follow us on Twitter

                  Subscribe

                  Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                  If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or scheduling tips for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                  Average:

                  Your rating: None Average: 5 (2 votes)

                  Jan 31 2013
                  Jan 31

                  Download Podcast 98
                  DrupalEasy_ep98_20130125.mp3

                  Holly Ross, the incoming executive director of the Drupal Association joined Ryan Price and Mike Anello on this episode to talk about the her background, the Drupal community, and her new job. Along the way we learn about her background in community organizing and building as well as her love of awesome80smusic. Other topics discussed include Omega 4, the usability of module names, and the 2012 internet in numbers. 

                  Four Stories

                  1. Holly Ross interview - previously with the Nonprofit Technology Network (yes, it’s a Drupal site), listed in the Nonprofit Times Power and Influence Top 50 four times (2009-2012)
                  2. The new face of Omega 4 by Kathryn McClintock (kathryn531) - no more zones and regions, SASS, new layout and grid system

                  Picks of the Week

                  • Mike - CSS Tricks - great CSS tips and tricks site. 

                  Sponsor

                  Site of the Week

                  If you'd like your site highlighted, please submit it at http://DrupalEasy.com/siteoftheweek.

                  Listener Homework

                  • Make us a Theme song for Quizzes, or Picks of the Week
                  • Create some Drupal Petri Dish artwork

                  Follow us on Twitter

                  Subscribe

                  Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                  If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or scheduling tips for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                  Average:

                  No votes yet

                  Jan 31 2013
                  Jan 31

                  No votes yet

                  Doug Hercules (dhercjr on drupal.org) is a graduate of the 2012 class of the DrupalEasy Career Starter Program and currently working as an intern with DrupalEasy.

                  This week I was tasked with learning how to automatically close comments on a node two weeks after the node is created. We initially looked into a couple modules that did this well, Comment closer and Comment commander, but since neither is quite ready for Drupal 7, we decided this would be a good opportunity for me to learn more about the Rules module. Maintained by Wolfgang Ziegler (fago) and Klaus Purer (klausi), this module allows you to define actions that are triggered automatically on various Drupal events as they occur. This blog post will walk you through how I accomplished this task.

                  Drupalize.me has a great video in their “Learning the Rules Framework Series” called Introducing Rules Scheduler (currently free!)that provided the basic framework for this task. This video was invaluable in getting me up to speed with basic rules functionality.

                  The first thing I needed to do was download and install Rules. I enabled the Rules, Rules UI and Rules Scheduler module, which required me to also download and enable the Entity tokens and Entity API modules.

                  Rules Scheduler works with Rules components only, and allows us to schedule an evaluation of rules components; not executing them instantly, but later at a predetermined time. So I began by creating a rules component, which is an individual set of Rules configuration that can be implemented by a Rule, as well as other modules on your site. To get started, on the main Rules Component page (admin/config/workflow/rules/components), I clicked to “+ Add new component”. I wanted my component to actually remove the comment ability to the node (an “action”), so in the “Component plugin” box I chose “Action set” and Clicked “Continue”. In the next screen, in the “Name” box, I typed “Close comments on a node”. The Variables section at the bottom of the page then looked like this,

                  variables

                  I entered the following; DATA TYPE: Node, LABEL: Node, MACHINE NAME: node, USAGE: Parameter, and clicked “Continue”. I wanted this component to perform on a certain node, so I chose Parameter. A parameter is a variable that is given a specific value when the Rule is performed, it receives the specific node parameters as input and then sets the variables as an output to the component.

                  Next, I needed to create an action that would close comments. I did this by clicking “+ Add action”, and then in the “Select the action to add” box, I chose “set a data value”. Then in the DATA section “Data selector”’ box, I selected “node:comment” because that’s what I wanted my action to impact and clicked “Continue”. To enter a VALUE, I typed “1” in the Value box (This is just a integer; 0 meaning hidden, 1 meaning it’s closed and 2 it’s open), and clicked “Save” to save my new component. On its own, the component does nothing. It is only once I create a rule that utilizes the component will anything actually happen.

                  The next step is to create a react on eventrule to wait 2 weeks after my node is created, and then run the component. To do this I went to - admin/config/workflow/rules and Clicked “+ Add new rule”. In the “Name” box, I typed “actions when new articles are posted” and in the ‘React on event’ box I chose “After saving new content” and Clicked “Save”. There are many options that look similar so be sure to select this one.

                  I then realized I wanted this to occur not only to new stuff, but whenever I modify existing stuff as well, so I Clicked “+ Add event”, and in the “React on event” box I chose “After updating existing content” and Clicked “Add”. The key is, that in either case (new or existing content), I only want the component to be scheduled if the article is published. I’ll set this up in a later step.

                  In the Conditions section I Clicked “+ Add condition” and in the “Select the condition to add” box, I chose “content is of type”. Then in the CONTENT section “Data selector” box, I selected “node”. In the CONTENT TYPES section you can select all of the types that you want the comments to close after 2 weeks, in the “Value” box and I Clicked “Save”. For this exercise, I just selected “article”.

                  To ensure the article is published before the 2 week countdown starts, in the Conditions section, again I Clicked “+ Add condition” and in the “Select the condition to add” box, I chose “content is published”. Then in the CONTENT section “Data selector” box, I selected “node” and Clicked “Save”.

                  Now to schedule the component to run. In the Actions section, I Clicked “+ Add action” and in the “Select the action to add” box, I chose “schedule component evaluation”. In the COMPONENT section I chose “Close comments on a node” in the “Value” box and Clicked “Continue”. In the SCHEDULED EVALUATION DATE section, I typed “+2 weeks” in the “Value” box (For a good test to make sure you’ve done everything right, you can type “+2 minutes” to make sure it works).

                  The identifier is what differentiates one task from the other, so in the IDENTIFIER section, I typed “ close comments for node [node:nid] “ in the “Value” box so we only have one comment closing for each mode, and lastly, in the NODE section Data selector box, I chose “node” to send the node variable of the node being saved to the rules component and Clicked “Save”. Therefore, the Rule takes this node and passes it into the component as the node parameter, these nodes and parameters gets saved, and are then loaded when the component is executed. 

                  Now if you did the “+2 minutes” test, you can add an article to your site, and verify the comment capability on the new node. Wait for 2 minutes, refresh your screen and see that the comment capability is gone. Once confirmed, don’t forget to go back in and edit your rule to “+2 weeks” or you won’t be getting too many comments on your site!

                  I’ve gone ahead and exported both the rule component and the rule for you to check out. First to import the component, go to admin/config/workflow/rules/components and paste the following rule component export into your import page.

                  { "rules_close_comments_on_a_node" : {
                  "LABEL" : "Close comments on a node",
                  "PLUGIN" : "action set",
                  "REQUIRES" : [ "rules" ],
                  "USES VARIABLES" : { "node" : { "label" : "Node", "type" : "node" } },
                  "ACTION SET" : [ { "data_set" : { "data" : [ "node:comment" ],
                  "value" : "1" } } ]
                  }
                  }

                  Similarly for the rule, from admin/config/workflow/rules, import the following:

                  { "rules_actions_when_new_articles_are_posted1" : {
                  "LABEL" : "actions when new articles are posted",
                  "PLUGIN" : "reaction rule",
                  "REQUIRES" : [ "rules", "rules_scheduler" ],
                  "ON" : [ "node_insert" ],
                  "IF" : [
                  { "node_is_of_type" : { "node" : [ "node" ],
                  "type" : { "value" : { "article" : "article" } } } },
                  { "node_is_published" : { "node" : [ "node" ] } }
                  ],
                  "DO" : [
                  { "schedule" : {
                  "component" : "rules_close_comments_on_a_node",
                  "date" : "+2 weeks",
                  "identifier" : "close comments for node {node:nid}",
                  "param_node" : [ "node" ]
                  }
                  }
                  ]
                  }
                  }

                  and there ya go, a new component and rule in under a minute! I hope that at least sparks your curiosity into Rules.

                  Trackback URL for this post:

                  http://drupaleasy.com/trackback/557

                  Jan 15 2013
                  Jan 15

                  Average: 5 (2 votes)

                  Doug Hercules (dhercjr on drupal.org) is a graduate of the 2012 class of the DrupalEasy Career Starter Program (http://drupaleasy.com/dcsp) and currently working as an intern with DrupalEasy.

                  VirtualBox interfaceThis week I had the opportunity to clone a website from a git repository using Quickstart. Quickstart is a really quick, pre-made PHP Drupal development environment in a VirtualBox, which allows you to install a virtual machine to run Linux on your Windows PC. I've only gone through the process of cloning a site into Quickstart once before, and this time I thought I’d document it in my blog for myself and anyone else who might want to do this in the future. The general idea is this - there’s a site that I need to work on that is stored in a remote git repository. I want to get a copy of the site up-and-running inside Quickstart. To get started, I downloaded Quickstart, installed VirtualBox, then imported the Quickstart file into it.

                  Once I got Quickstart fired up on my Windows laptop, I set off to work. I used Drush (which comes built-in to Quickstart) to configure my virtual host and create an empty database and directory for the site. The Getting started with Quickstart page is a great resource for all the Quickstart specific Drush commands that it includes. At my command prompt I typed

                  drush qc apache dns database --domain=localsitename.dev

                  Important to note, this created an empty “localsitename_dev” database. Remember that underscore when you’re setting the name of your database later during Drupal's installation process.

                  Next, I wanted to clone (Quickstart also comes with Git pre-installed!) the site into the directory I just made, so I changed the directory to the new localsitename directory and I used the git clone command to copy the site from the remote repository. I added a “ .” ("space-period") at the end of the clone command so it cloned the repository into the current directory.

                  Next, I went to my browser and installed the site by going to http://localsitename.dev/install.php (remember, the Drush command I used automatically also set up this virtual host), this is where I needed to remember that underscore when I named the database. If you run into any files directory and/or settings.php issues, here’s some commands that might come in handy:

                  $ cp //to copy my settings.php file
                  $ mkdir //to make a new files directory
                  $ ls -al //to show me the permissions to each file
                  $ chmod //to change file permissions

                  Cheesy Poofs!

                  At this point, the site was installed with a fresh database. The final step was to get copy the database from the shared development server. I first enabled the Backup and Migrate module on my new local site, then I went to dev site and performed a quick backup (/admin/config/system/backup_migrate); saving it to my local “downloads” directory. 

                  Finally, I went back to my new local site and restored  (/admin/config/system/backup_migrate/restore) by uploading the file I just downloaded.

                  Poof! I have a cloned website!

                  Trackback URL for this post:

                  http://drupaleasy.com/trackback/555

                  Jan 08 2013
                  Jan 08

                  Average: 5 (1 vote)

                  The beginning of the New Year seems like a good milestone to provide a progress update on the DrupalEasy Career Starter Program Work Experience (WE) Drupal. Eleven DCSP grads are interning with Drupal organizations all over the country, engaging their new-found Drupal knowledge and abilities in a variety of tasks, and gaining critical experience every day. Most of the interns are between one-third and one-half complete with their Work Experience, and reviews are super encouraging.

                  Some amazing organizations from far and wide stepped up to serve as WE Drupal Hosts, and help the eager 11 jumpstart their careeers, including the Drupal Association, Lullabot, WebEnabled, Radiant Blue Technologies, Cloud Nyne, Urban Rethink, Orange County Library System, Proctors, and DrupalEasy. Overall, the feedback from the hosts has been extremely positive, while the general reaction from the interns has been...overwhelming.

                  WE Drupal give host and intern a best of both worlds scenario, since it provides incentive and real-world, paid work experience for the participants while WE Drupal Hosts get no-cost, career-minded interns with solid Drupal training.  We Drupal is made possible thanks to grant money from Brevard Workforce, which is also the organization that has supported the growth and development of the DCSP. As an added bonus, we were originally told the funds would cover 346 hours for each intern (about 8.5 weeks of full-time work), but Brevard Workforce has extended the grant to cover 520 hours (13 weeks!) Needless to say, the vast majority of our WE Drupal hosts and interns accepted this generous offer.

                  Our internship host companies are saying some really positive things about our students, their preparedness, and skill level. Once the initial transition from a traditional to a virtual work environment is complete, things tend to really start progressing quickly for both the student and the host. One vitally important thing we’ve learned over the past two years is that planned, daily contact - if only for a few minutes - between the intern and the host goes an incredibly long way in answering quick questions and making sure the intern stays on-track.  I asked all of our current hosts if their interns met their initial reactions. Some responses:

                  "[Our intern] has a great attitude and as diving into the work head on. His base knowledge in Drupal is very solid, and probably most importantly, he asks great questions. You can tell that he understands the bigger picture and is going for clarification, or even questioning how we approach things, which is the best that anyone could ask for in an employee."

                  "Overall, I'm really impressed. [our intern] is basically kicking butt with everything we give him, and I can tell that as his experience grows he'll be a very rock solid Drupal guy."

                  "[Our intern] was well prepared. The student had enough knowledge of the ecosystem and various development tools to work with minimal instruction."

                  "They’re awesome!"

                  The reactions from the students varied from excitement to fear. Many are happy to be back to work and contributing to whatever projects they were working on, while also enjoying the ability to experience Drupal development in a real-world setting. A good number of the interns expressed feelings of being a bit overwhelmed by all of the various technologies and aspects of Drupal development, but all are rising to meet the challenge. The improved intern/host matching process appears to have been a success, as several of the interns indicated that they’re really thankful that they had a chance to talk with potential hosts prior to accepting the internship. 

                  Some of the interns have started blogging about their experiences in the internships, I encourage you to check them out below:

                  What happened to the other 9 students?

                  If you’ve been following the DrupalEasy Career Starter Program (DCSP), you’ll know that we had 20 students in the classroom portion of the program. With 11 students currently participating in WE Drupal, I’m sure some of you are wondering what happened to the other 9? If you recall, this year’s class was comprised of recently laid-off workers living in Brevard County, Florida. 5 of the students found employment during the classroom portion of the DCSP, 1 student had to drop out of the internship for personal reasons, and 3 students did not initially meet the class requirements to be placed in an internship.

                  Trackback URL for this post:

                  http://drupaleasy.com/trackback/554

                  Jan 08 2013
                  Jan 08

                  Download Podcast 97
                  DrupalEasy_ep97_20130108.mp3

                  Emma Jane Hogbin (emmajane), Drupal author, trainer, and all-around superstar of all things Drupal (as well as a bunch of non-Drupal things) joins Andrew Riley and Mike Anello on the first episode of 2013! The trio discusses Emma Jane’s Drupal writing career, recent training events, Drupal 8, and also takes a look back at their favorite Drupal “thing” of 2012. They also say “aloha” to CKEditor, getting off the Drupal island, the most followed Drupal.org issues, and take a sneak peak at Drupal 9. Not leaving well-enough alone, they also make some picks of the week!

                  Five-ish Stories

                  1. Drupal 2012 Highlights
                  2. Drupal 9 tweet by Dries

                  DrupalEasy News

                  DrupalCon Sydney pre-conference training: Blue Collar Git - Wednesday, February 6, 2013.

                  Picks of the Week

                  Sponsor

                  Site of the Week

                  Listener Homework

                  Follow us on Twitter

                  Subscribe

                  Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                  If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or minecraft tips for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                  Average:

                  No votes yet

                  Dec 28 2012
                  Dec 28

                  Download Podcast 96
                  DrupalEasy_ep96_20121227.mp3

                  Owen Lansbury (owenlansbury), the managing partner of PreviousNext, Australia’s largest Drupal development firm, speaks with Mike Anello about the upcoming DrupalCon Sydney, to be held February 6-9, 2013. The topics covered include how a traveling camp became a ‘con, the growth of the Drupal community in the Asia-Pacific region, as well as details about the upcoming ‘con. If you’re already registered for DrupalCon, this podcast is for you!

                  DrupalEasy News

                  DrupalCon Sydney pre-conference training: Blue Collar Git - Wednesday, February 6, 2013.

                  Sponsor

                  Follow us on Twitter

                  Subscribe

                  Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                  If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or minecraft tips for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                  Average:

                  Your rating: None Average: 1 (1 vote)

                  Dec 20 2012
                  Dec 20

                  No votes yet

                  This weekend I participated in the Brevard Code Sprint for the MediaFront Module. I must admit, being new to Drupal, it did cross my mind that I’d be more of a hinderance than a help. I couldn’t have been more mistaken! The dozen folks from the Drupal community were great to work with. To start us off, Travis Tidwell (travist), the MediaFront module maintainer, walked us through a demonstration of the module and Mike Anello (ultimike), of the code sprint sponsor DrupalEasy, facilitated the group in choosing assignments to work on. As he asked for volunteers to work on some novice code issues, I figured “No better time to learn, than when surrounded with help!” so I dove right in. With the help of some great new friends, at the end of the day I had created my first patch and was well on my way to my first commit!

                  We discussed some problems that the module was having and created the issue to Hide the full-screen button when they have controller only mode enabled. Since a picture is worth a thousand words, I’ll just show ya... it looked like this:

                  controller bar with fullscreen

                  In working on fixing the problem we came up with a fix, but then realized the fix corrected the problem but left the look of the item needing reformatted because it just made a big space where the button was ... another chance to learn! I got some new GIT experience creating the patch, which fixed the problem and made the item look good. Making that contribution, encouraged me to look for other coding issues that I would never had even thought about attempting before going to this code sprint. I know you’re wondering so I’ll show you the fix:

                  If you are new to Drupal and trying to learn it on your own, I can’t encourage you enough to seek out these code sprints, DrupalCamps or DrupalCon community events no matter what your experience level. Everyone was so willing to answer any question I had or point me in the right direction to get over my hurdle. At times there were two of us side-by side working on one screen figuring out the best way to tackle an issue and there were times they let me do it on my own to learn at my own pace. In that one day I feel so much more confident in my Drupal understanding and much more comfortable asking for help. I’ve started some new relationships and strengthened some other ones.

                  Trackback URL for this post:

                  http://drupaleasy.com/trackback/551

                  Dec 18 2012
                  Dec 18

                  Download Podcast 95
                  DrupalEasy_ep95_20121218.mp3

                  Addison Berry, the Lullabot Director of Education and Product Manager for Drupalize.me, joined super-special-guest-host Ted Bowman (tedbow) and stalwart Mike Anello to discuss Addi’s impressive Drupal resume as well as the evolving process of learning Drupal and growing new contributors. Brent Deverman (deverman) joined in to discuss the Site of the Week (CNN Travel), and Ted and Mike wrapped things up with some additional Drupal news and a couple of picks of the week.

                  Three Stories

                    DrupalEasy News

                    • DrupalCon Sydney pre-conference training: Blue Collar Git - Wednesday, February 6, 2013.

                    Picks of the Week

                    Sponsor

                    Site of the Week

                    Listener Homework

                    Follow us on Twitter

                    Subscribe

                    Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                    If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or minecraft tips for Andrew. If you'd rather just send us an email, please use our contact page at 

                    Average:

                    No votes yet

                    Dec 18 2012
                    Dec 18

                    No votes yet

                    The first-ever Brevard County Drupal Code Sprint took place on Sunday, December 16, 2012 at the Cocoa Village Civic Center. A total of 12 sprinters attended in-person, along with 2 virtual attendees who joined in via IRC and a Google+ Hangout. The sprint was in support of the MediaFront module, a front-end media solution that provides HTML5-based media players for supported browsers and falls back to a Flash-based player when necessary. The MediaFront module maintainer, Travis Tidwell (travist), could not have been more accomodating and helpful, as he participated in the sprint for 10 straight hours.

                    The sprint was a success; we were able to improve the MediaFront’s documentation, fix some bugs, perform some structured testing of the module in various operating systems and browsers, and make some progress on several other issues. DrupalEasy was proud to sponsor the sprint, providing the facilities, drinks, and snacks for the participants.

                    As many of the sprinters were new to the MediaFront module, we started off the day with an overview of the module’s functionality. Travis led a walkthrough that included simple use cases involving uploaded and hosted videos, numerous examples of setting up playlists, as well as some of the advanced features of the module including player-to-player communication.

                    Once everyone understood the basics of the module and set up a local development/testing environment (consisting of a fresh copy of Drupal 7 and the latest -dev version of the MediaFront module), the sprint participants were split into roughly three groups: documentation, issue queue triage, and testing. As our group of sprinters didn’t include too many hardcore developers, we decided to focus on these three areas.

                    The documentation group was involved in reviewing the existing documentation, making sure it was up-to-date with the latest version of the module. Many additions and fixes were made to the documentation, including:

                    Additionally, documentation for two other use cases was started (but not yet published):

                    • Using Mediafront with Media, Colorbox, and Media Colorbox modules to allow multiple videos (personal, youtube, and vimeo) to be played in Colorbox popup on the node details page 
                    • Adding YouTube videos automatically to a MediaFront playlist using Feeds module.

                    The issue queue triage group was tasked with going through as many of the 7.x-2.x issues as possible, with the goal of either responding to support requests, trying to duplicated reported bugs, or closing out obsolete issues. A total of 28 issues were closed, with activity on an additional 21 issues.

                    The last group focused on rigorous testing of the module to ensure that the proper player (HTML5 or Flash) was being used depending on the operating system, browser, and media file to be displayed. Numerous bugs were found and fixed during this process. One of the more important bugs that was squashed was for the case when multiple media files of different formats are uploaded to a multi-valued file field. The MediaFront module now selects the best file format for the browser. For example, when both an .ogv and .mp4 file are available to Firefox, the .ogv file is used to display the video in a HTML5 player. Once all the tests are complete, this compatibility chart will be added to the MediaFront documentation on Drupal.org.

                    Work was also done on various miscelleanous tasks:

                    • Squashed bug with jQuery UI version discrepancies
                    • Outlined future enhancements for better interoperability with Media module’s file entities

                    Overall, both the participants and the maintainer were happy with the results. The participants were able to dive deep into the module’s functionality (with Travis available all day to answer any and all questions), contribute back to the community, and sharpen their skills, Travis was able to take advantage of a significant number of people helping to improve one of his modules. We’ve already started talking about the next Brevard County Drupal Sprint (although we’re thinking about changing the name to the Drupal Mosquito Control, Florida Bug Squad, Florida Bug Zappers, or something similar) for as early as next month - everyone is excited to continue their work with the MediaFront module and to give back to the Drupal community! 

                    List of sprinters:

                    Trackback URL for this post:

                    http://drupaleasy.com/trackback/550

                    Dec 10 2012
                    Dec 10

                    Average: 5 (3 votes)

                    Doug Hercules with shuttle3.. 2.. 1.. and lift-off of a new career!!! Here I go off to explore a new world that just 6 months ago I’d never even heard of! The strange blue teardrop world of Drupal!

                    For the past 20 years, I have been blessed to work my dream job as an engineer in the Space Shuttle Program, what a ride! The retirement of the shuttles meant a new direction in my life, and since there’s not a huge demand for rocket scientists these days, it meant seeking some new doors to open up and see what’s out there.

                    I happened upon a chance to enroll in a 10-week web development course called DrupalEasy Career Starter Program, so I dove right in not having any computer background, but realizing the web is the future! I successfully completed the class and am now starting an internship and an introduction into the community of Drupal. With all the helpful support in Drupal, it’s not a program you learn - it’s a universe of mutual relationships you join... so here’s my first step towards growing in the community.

                    Being a visual brained kinda guy, one of the most valuable things I’ve learned is it’s easier to learn a module if I just load it, enable it and see what it’ll do. So it became obvious that I wanted to make quick, disposable sites for testing and I didn’t want to spend a long time generating the site. I’m using the VirtualBox/Quickstart environment so from& Getting started with quickstart I found that from a command line prompt, I could create a site using a Drush make file with one simple command line:

                    [email protected]:~/websites$ drush quickstart-create all 
                    --domain=newsitename.dev --makefile=makefilename.make
                    --profile=standard

                    My make file includes about a dozen modules that I commonly use in most start-up sites, including admin_menu, module_filter and devel to name a few. For more info on building a make file check out http://drupal.org/node/1476014 . These simple steps get me up and running with a clean site for testing in just a couple minutes. Without the time investment of setting up a site, trying out a new module becomes very easy and eliminates the risk of harming any other site.

                    On the DrupalEasy.com redesign to Drupal 7 site, I’m working with the social media module and the Widgets module, it helps you put follow and share buttons into your website with sites like Twitter, Facebook and Google+, I’ll cover that more in my next blog post.

                    Note from Mike: Doug Hercules is a graduate of the 2012 DrupalEasy Career Starter Program. He is interning with DrupalEasy for the next few months and is currently working on the redesign of DrupalEasy.com on Drupal 7. You can follow Doug on Twitter at dhercjr.

                    Trackback URL for this post:

                    http://drupaleasy.com/trackback/548

                    Dec 05 2012
                    Dec 05

                    No votes yet

                    DrupalCon Sydney logoGit’s a ripper Version Control System, and considering its growing adoption, you can’t afford to be a drongo when it comes to leveraging it. No worries though, just head on over to Sydney the day before DrupalCon kicks off, take DrupalEasy’s action-packed Blue Collar Git training, and Bob’s yer uncle! 

                    The Yank (that’d be me) from DrupalEasy is putting on this fast-paced workshop that’ll help you master Git and get gobsmacked at how much more effective you get as a Drupal developer, themer or project manager. Git’s a dinky-di super speedy and efficient version control system. Unlike the others, Git’s got a distributed approach, which gives it an edge for collaborative development, and why its adoption is going flat chat.  What’s more, as it grows, being comfy with it becomes not just a valuable tool, but a handy talent to brag about as its becoming a popular preference on job posts. 

                    Blue Collar Git will start just after brekkie with the basics and a look around under the bonnet, then delve into remote repositories, resolving conflicts, and working with patches in the arvo. We’ve designed Blue Collar Git to be just the script you need to empower you to start leveraging it for your everyday workflow.

                    This unique workshop came about from a video of the 2010 Open Source Developers Conference session "Git for Ages 4 and Up" by Michael Schwern. His Tinker toy demo helped me soak up the Git knowledge, and motivated me to teach it using a similar method. Great feedback from various Git-related meetups and camp presentations and trainings inspired the full-blown training course.

                    The workshop runs the full day of February 6, the day before DrupalCon at the Crowne Plaza. The cost is only $440 for the full day (includes lunch!). This is our first time bringing a DrupalEasy workshop to Oz, so we’re hoping for a bonzer of a turnout! Get on the bush telegraph and grab a Drupal mate to spend the day soaking up insight and doing lots of hands-on learning. Head to the DrupalCon Sydney site to sign up for this corker of a training course!

                    Trackback URL for this post:

                    http://drupaleasy.com/trackback/546

                    Nov 20 2012
                    Nov 20

                    Download Podcast 93
                    DrupalEasy_ep93_20121120.mp3

                    Cindy McCourt (idcm), author of Drupal: The Guide to Planning and Building Websites, joins Andrew Riley and Mike Anello to discuss (almost) everything there is to know about Drupal project planning, development methodologies, gathering requirements, and everything else that goes into planning a successful Drupal project. Along the way, Greg Dunlop’s (heyrocker) CMI fundraising, comment spam prevention, and Drupal 7.17 are discussed, capped off with our picks of the week.

                    Five Four Stories

                    1. "Drupal: The Guide to Planning and Building Websites" available on amazon, bn.com, and iBooks.

                    DrupalEasy News

                    “Drupal Time” performed by Marcia and Gus, graduates from the DrupalEasy Career Starter Program, 2012.

                    Picks of the Week

                    Sponsor

                    Site of the Week

                    Listener Homework

                    Follow us on Twitter

                    Subscribe

                    Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                    If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or a set of new puns for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                    Average:

                    Your rating: None Average: 5 (1 vote)

                    Nov 06 2012
                    Nov 06

                    Download Podcast 92
                    DrupalEasy_ep92_20121106.mp3

                    Katherine Druckman (katherined as well as the LinuxJournal.com webmistress) joins Andrew Riley, Ryan Price, and Mike Anello for our 92nd podcast. We discuss Linux Journal’s special Drupal-only issue, the increasing length of the Drupal release cycle, and Open Atrium 2.0’s roadmap. Ted Bowman also makes a special appearance live from BADCamp to discuss the latest happenings. 

                    Five Stories

                      DrupalEasy News

                      Picks of the Week

                      • Mike - Termcase module by Baris Wanschers (BarisW) - easily keep taxonomy terms consistent.

                      Sponsor

                      Site of the Week

                      http://WhenWhoWhere.com - submitted by Dan (dansanjou), "The main idea of the site is to help users organize events at a venue of their choice and allow them to discover new venues through the event and user comments."

                      Listener Homework

                      Follow us on Twitter

                      Subscribe

                      Subscribe to our podcast on iTunes or Miro. Listen to our podcast on Stitcher.

                      If you'd like to leave us a voicemail, call 321-441-3964. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or scheduling advice for Andrew. If you'd rather just send us an email, please use our contact page at http://DrupalEasy.com/contact

                      Average:

                      Your rating: None Average: 5 (1 vote)

                      Nov 02 2012
                      Nov 02

                      Average: 5 (4 votes)

                      The DrupalEasy Career Starter Program (DCSP), a one-of-a-kind 10-week, multi-modal Drupal training program is proud to announce the graduation of all 20 of our students from the class of 2012. This is the second year of the DCSP in Brevard County, Florida and we’re excited to watch this year’s graduates become (even more!) active Drupal community members and developers.

                      DCSP Class of 2012 and instructors

                      Through a grant from Brevard Workforce, the DCSP’s goal was to retrain 20 unemployed IT professionals and turn them into Drupal professionals. With the retirement of the Space Shuttle fleet in 2011, approximately 8,000 skilled workers lost their jobs at Kennedy Space Center in Brevard County. Our available pool of talented IT professional was HUGE. This year’s DCSP effort received 202 applications for just 20 slots. The vast majority of the students selected had zero Drupal experience coming in. The rest of this post will give you an idea of how much Drupal knowledge and experience they have going out...

                      The class of 2012 is:

                      1. Mike Anhalt (manhalt)
                      2. Jack Ferguson (jpstrat)
                      3. Shaun Heath (heaths1)
                      4. Doug Hercules (dhercjr)
                      5. Cielo Johnson (C13L0)
                      6. Frederick Martin (FredMart)
                      7. Paula Owen (owenpa)
                      8. Gustav Postreich (Gustav)
                      9. Tierra Renthrope (IvoryTierra)
                      10. Natalie Roberts (anzi31)
                      11. Dennis Solis (densolis)
                      12. Patsy Spicer (spicerpa)
                      13. Wes Stansbury (Oddjob)

                      Collectively, the class of 2012 contributed approximately 1,000 hours of volunteer time to the Drupal community. While much of that time was spent climbing the Drupal Ladder and learning the ins-and-outs of Drupal issue queues, we did have a moderate amount of success:

                      • Participated in well over 100 Drupal.org issues
                      • More than 20 Drupal.org documentation edits
                      • Numerous patches awaiting review/commit by module maintainers

                      We were lucky enough to be within driving distance of two DrupalCamp events (South Florida and Atlanta) during the month of October, and the vast majority of the class was able to attend at least one of the two events (some attended both!) and two of our students presented sessions at DrupalCamp South Florida. In all cases, students that attended these events came back with a greater appreciation for the community and motivation to get even more involved. Additionally, a number of DCSP students (and teaching assistants) participated in the two code sprints at DrupalCamp Atlanta and were recognized during the camp’s opening remarks. 

                      DrupalCamp Atlanta code sprint slide

                      The DCSP’s unique approach to Drupal training includes a heavy dose of Drupal community involvement. During the 10-week training program, each student is required to:

                      • Attend 70 hours of classroom training
                      • Attend 40 hours of lab hours
                      • Contribute 50 hours of time to the Drupal community
                      • Complete the first 5 rungs of the Drupal Ladder http://drupalladder.org/
                      • Complete numerous homework assignments and three mini-projects
                      • Periodically check in with instructors via IRC

                      The students are provided with PDF lesson guides and reference documents for each lesson, and selected lessons also include related DrupalEasy-produced screencasts. 

                      The goal of the DCSP is not to teach students everything there is to know about Drupal, rather it is to provide knowledge and a strong foundation of Drupal core and selected modules while also exposing students to some of the various niches that they may want to focus on in the future (module development, theming, distributions). In addition, students spend time learning about all the various “satellite” technologies related to becoming a professional Drupal developer including IRC, SSH, Git, CSS, PHP, and Drush. 

                      Our approach to community involvement is simple - start by having the class interact with each other online via IRC and class forums, then slowly expand the circle to the local, state, national, and international community. 

                      In the coming months, we’ll be looking to expand the DCSP to areas outside of Brevard County, Florida. Interested in learning more? Check out more information about the DCSP at http://drupaleasy.com/dcsp.

                      Trackback URL for this post:

                      http://drupaleasy.com/trackback/540

                      Oct 31 2012
                      Oct 31

                      Average: 4 (2 votes)

                      Using Git to move the code base of a Drupal site from a local development environment to a hosting provider (or vice-versa) is a necessary skill that most Drupal site builders should have. Configuring and utilizing a remote Git repository can be an especially daunting task for people who don't have a strong background with version control systems. 

                      Flow chart

                      While updating the DrupalEasy Career Starter Program (DCSP) Curriculum a few weeks ago, it became clear to me that effectively using Git is a skill that we need to teach our students. We had informally gone over basic Git commands earlier in the program, but feedback from students and potential employers made us realized that students need (and want!) the necessary instruction and materials to get them up-to-speed on using Git to move sites between servers.

                      If you're a listener or <shameless_plug>our podcast</shameless_plug>, you probably know that we've been working with the fine folks at WebEnabled.com for quite some time. They've been the exclusive sponsor of our podcast for years, and we use their development tools extensively with our clients and training programs. So, we are going to take this opportunity to give something back to both the Drupal community as well as our friends at WebEnabled by providing access to our print and video curriculum for moving Drupal sites to and from WebEnabled development servers using Git. 

                      A free-to-download 13-page PDF from the DCSP curriculum that details the various steps required to move a Drupal site from a local machine to a WebEnabled server and vice-versa is included at the end of this post. 

                      In addition, we've created two screencasts that demonstrate the process from start to finish; part of the DCSP’s "multi-modal" training approach. Students get maximum training and experience through classroom instruction on all topics (including this one), as well as written curriculum, dedicated time during lab hours where students can work cooperatively, and in some cases, companion screencasts (we're dedicated to having 100% coverage of all our technical lessons in screencast form soon). We feel presenting curriculum in multiple modes greatly increases the success of students to comprehend the subject matter and put it to practical use faster.

                      DCSP Screencast: moving a local Drupal site to WebEnabled using Git

                      DCSP Screencast: moving a WebEnabled Drupal site to a local environment using Git

                      If you're interested in learning more about the DrupalEasy Career Starter Program, be sure to check out DrupalEasy.com/dcsp or contact us.

                      Trackback URL for this post:

                      http://drupaleasy.com/trackback/539

                      AttachmentSize 947.27 KB
                      Oct 19 2012
                      Oct 19

                      Average: 4 (2 votes)

                      TechWell logoDrupalEasy was fortunate enough to be be hired to develop version 2.0 of TechWell.com - a software development news site by Software Quality Engineering (SQE). TechWell.com covers a wide range of topics including agile development, software testing, quality assurance, and project management. This mini case study will detail some of the modules and techniques we've used to build the site.

                      The site is built using Drupal 7 along with a number of contributed and custom modules and a custom theme built on top of the Omega base theme. This mini case study will provide a brief overview of the techniques used to build the site.

                      The main navigation of the site is based on a single "topics" vocabulary that categorizes each story into one of nine topics. The Taxonomy Menu module is used to translate that vocabulary into the main menu. There are several other vocabularies in place, used mainly for further classification of stories.

                      Stories on the site utilize a combination of Image Styles and the Imagefield Crop module to display different versions of their main photo depending on the context. In lists, a scaled and (manually) cropped version of the photo is used while in the full node view a scaled and uncropped version of the photo is used. This will accomplished with a small bit of custom theming code.

                      TechWell home pageThe Radioactivity module is used to populate the "trending" carousel on the home page. Radioactivity allows popular stories slowly decay over time so that only "recently popular" stories will appear in the carousel. The carousel is generated by a custom Views module based on the Elastislide jQuery plugin - mainly because Elastislide is responsive, and the carousel needed to stretch and shrink depending on the device size it is being viewed on.

                      Flag module is used for content editors to mark stories for the "featured" block. This block appears on the various topic pages as well, and different stories appear in the block based on the current topic.

                      Several content types were created to handle site "partner" information and content. Partners can have their own section of the web site populated with content they provide. In addition, individual site topics can be sponsored as well, a custom content type to help manage that process as well.

                      The "events" block is mainly populated with training events from SQE. Again, a custom content type and view is used to enable this functionality. Similarly, content types for "web seminars" and "featured resources" were created, and the Draggable Views module is utilized to give content editors the ability to arbitrarily re-arrange the order of the "featured resources".

                      Custom modules are used to help manage the "TechWell To Go" newsletter functionality, both for capturing subscriber information and for generating newsletter templates (with current site content) for use in a separate customer relationship management (CRM) system. Several patches were created and contributed back to the community for the Eloqua module as well

                      TechWell Share URL functionalityThe "Share URL" functionality found on all story pages is made possible by a number of modules as well as a custom URL shortening site powered by the Shurly module. The Shorten URLs module is used in conjunction with a custom module to and custom theming to complete this functionality.

                      Additional custom modules were created to capture various parts of the site configuration in code, to generate some custom blocks, for improved search (indexing of RealName data), and some custom administrative functionality. 

                      TechWell on mobileThe site is fully responsive, with a significant amount of work that went into making sure it delievered an efficient experience on mobile devices. Use of the Omega theme combined with the Delta module helped keep costs down and implementation speed up.

                      Overall, this project was designed with speed and sustainability in mind. The only logged-in users will be administrators (comments are outsourced using Disqus), and a minimum of custom code was created (most of the custom modules are less than 150 lines of code). The client has been thrilled with their new site, and we look forward to watching their business grow using this new resource.

                      Trackback URL for this post:

                      http://drupaleasy.com/trackback/537

                      Pages

                      About Drupal Sun

                      Drupal Sun is an Evolving Web project. It allows you to:

                      • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
                      • Facet based on tags, author, or feed
                      • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
                      • View the entire article text inline, or in the context of the site where it was created

                      See the blog post at Evolving Web

                      Evolving Web