Drupal

Metal Toad: DrupalCon Pre-Show and announcements

Planet Drupal - 20 May 2013 - 4:58pm


Here we go! Portland's Drupalcon is here. Here is a quick update about some of the exciting things that Metal Toad is bringing to the event. Stop by our booth (#207) and come party with us Tuesday and Wednesday. Come watch us record the podcast live and even step up to the mic if you dare. T-shirts, wine, stickers, foosball, Drupal!?!?! Whoa.

Categories: Drupal

DrupalCon Portland 2013: Watch the DrupalCon Portland live stream courtesy of Brightcove

Planet Drupal - 20 May 2013 - 4:32pm
Watch the Live Stream, courtesy of Brightcove

We'll be streaming each of our three keynotes live beginning on Tuesday, with Dries' infamous #DriesNote at11:30am PDT (Pacific Daylight Time, PDT | UTC -7).

Have a burning question you want to ask our keynotes? Michael Anello from the Drupal Easy podcast will be fielding and moderating your twitter questions in real time, to ask Dries, Karen, and Michael, following each presentation.

Categories: Drupal

DrupalCon Portland 2013: DrupalCon Portland opens today with over 1,270 badge pickups!

Planet Drupal - 20 May 2013 - 4:13pm

DrupalCon Portland is off with a bang! Over 1,270 people have already arrived to pick up their badges and DrupalCon tshirts, and we're expecting as many attendees to arrive tomorrow.

Today alone, over 498 training attendees rolled in, as well as nearly 90 attendees for the CXO event. We're expecting over 3,300 people to attend the conference this week, so don't get stuck in line, get here early and grab your badge before sessions start at 9:00am.

If you haven't registered yet and still want to attend - this is your chance!

Categories: Drupal

Webform cURL Integration

New Drupal Modules - 20 May 2013 - 3:13pm

Webform cURL Integration adds an option in the Webform configuration to allow posting of Webform submissions to another server via cURL. It allows you to enter a username and password, which is used with the CURLOPT_USERPWD cURL option, and allows third party developers to modify the fields before transmission with hook_webform_curl_submission_alter (this can be used to attach a checksum or some other security measure prior to transmission).

Categories: Drupal

Linux Journal: Using Salt Stack and Vagrant for Drupal Development

Planet Drupal - 20 May 2013 - 2:21pm

What if, just like Bill Murray in Groundhog Day, you could wake up to a fresh and identical development environment completely free of yesterday's experiments and mistakes? Vagrant lets you do exactly that. more>>

Categories: Drupal

Urban Insight: A Scholarly Approach to LACMA Collections Online

Planet Drupal - 20 May 2013 - 2:12pm

The Los Angeles County Museum of Art has recently launched its Collections Online site, an online image library where art lovers can explore and download high quality images. This is a triumph for the accessibility of fine art in an increasingly digital world. Making this vast collection public benefits not only local art lovers but also the international art community, particularly students.

Categories: Drupal

gsapi

New Drupal Modules - 20 May 2013 - 1:42pm

gsapi - Drupal Grocery Server API
=================================

Drupal wrapper for the Grocery Server API. This implementation requires that
you provide Grocery Server with your recipes and that they have been imported
into the Grocery Service API.

Unless otherwise noted, all services return geo-targeted data automatically
based on the results of the `gsapi_zip()` function. This explains why, for
example, you don't need to provide a zip code argument to geo targeted API
calls.

Functions
---------

###Get Recipe Details###

gsapi_grd($rid)

*Parameters: $rid integer*
> Recipe ID as defined in the XML document provided to Grocery Server.
> Usually the Drupal Node ID.

*Return: array*
> Array representing the recipe and any current promotions for ingredients
> based on the user's zip code. Results are cached for 24 hours.

###Get Recipe Promotion Count###

gsapi_grpc($rid)

*Parameters: $rid integer*
> Recipe ID as defined in the XML document provided to Grocery Server.
> Usually the Drupal Node ID.

*Return: integer*
> The number of current promotions for the provided Recipe ID.

###Grocery Server Request###

gsapi_request($service, $args = null)

Interacts directly with the Grocery Server API.

*Parameter: $service string*
Allowed Values (See `gsapi.services.inc`:

* `getClosestZipCode`
> Returns the closest zip code based on IP address. User wrapper function
> `gsapi_zip` instead which caches the results and will return user overriden
> values and also fixes an issue with leading zeros.

* `getChainsByZip`
> Returns a list of grocery chains in the user's area based on zip code.

* `getPromotionsForSearchTerms`
> Returns a list of promotions related to the search terms in the user's area
> based on zip code.

This value requires a second argument `$args` string:
> String representing the terms to search.

* `getRecipeDetails`
> Returns details of a recipe. Use the wrapper function `gsapi_grd()` which
> caches the results of this method instead.

This value requires a second argument `$args` integer:
> Recipe ID

* `addItemPromotion`
> Adds a promotion to the current user's Shopping List.

This value requires a second argument `$args` integer:
> Promotion ID as defined internally by Grocery Server.

* `removePromotionsFromShoppingLists`
> Same as `addItemPromotion` except removes the provided Promotion rather
> than adding.

* `getShoppingListByExternalId`
> Returns the Shopping List for the current user.

This value requires a second argument `$args` string
> GS Universally Unique Identifier. 16 character string identifying the
> current anonymous user to the GS API. This value can be found in the
`$_COOKIE['gsapi_uuid']`.

###Grocery Server API Zip###

gsapi_zip()

Wrapper function for GS getClosestZipCode API call. Adds a leading zero if
zip length is 4. Also stores the result in a cookie so we don't need to make
repeated calls to the API.

###Update Zip###

gsapi_update_zip($zip)

Sets a zip code for the current user.

*Param: $zip integer*
> five digit integer representing the zip code.

Javascript Wrapper
------------------

The GS API JS module provides javascript wrappers to most of these functions.
The wrappers fall into two categories:

1. Local page that delivers json
2. Wrapper functions for adding and removing items from a user's Shopping List
3. As additions to the `Drupal.settings` array

###Local page that delivers json###

/gsapijs/request/[service]/[rid]||[pid]

*Argument 2: service; allowed values:*

* `grd` (Get Recipe Details)
> Requires `rid` (Recipe ID) as `arg(3)`. Drupal Node ID of recipe.
> **Note**: this object is already available as part of the
> `Drupal.settings` array on recipe pages. See below.

* `grpc` (Get Recipe Promotion Count).
> Requires `rid` (Recipe ID) as `arg(3)`. Drupal Node ID of recipe.

* `aip` (Add Item Promotion)
> Requires `pid` (Promotion ID) as `arg(3).` GS internal ID of a promotion.
> **Note:** this functionality has a JS wrapper function
> `gsapijs_sl_promotion(op, pid)` provided. See below.

* `rip` (Remove Item Promotion)
> Requires `pid` (Promotion ID) as `arg(3).` GS internal ID of a promotion.
> **Note:** this functionality has a JS wrapper function
> `gsapijs_sl_promotion(op, pid)` provided. See below.

* `gsl` (Get Shopping List)
> Does not use `arg(3)` but due to Drupal's menu system, you will need to
> pass something as a placeholder.

###Wrapper function for adding and removing Promotions from Shopping Lists###

gsapijs_sl_promotion(op, pid)

*Param string op*
> Either `aip` or `rip` (Add/Remove Item Promotion respectively).

*Param int Promotion ID*
> The promotion ID returned from the Get Recipe Details call.

###Additions to the `Drupal.settings` array###

Drupal.settings.gsapijs.recipe_details

The entire result of the Get Recipe Details call is available on recipe node
pages via the above.

##A note about Shopping Lists##
Shopping lists are created per user as defined by the `gsapi_uuid` cookie. When
needed, the `gsapi_uuid` is created and stored as a session cookie. Future
calls to the API pertaining to shopping lists will use that UUID to udentify
the ShoppingLlist that should be added to, removed from, or returned.

As noted above, the shopping list cookie and perforce the Shopping List is not
persistent throughout sessions. That is, if a user closes their browser, they
will loose theie shopping list.

Categories: Drupal

Username to Personal ID

New Drupal Modules - 20 May 2013 - 12:08pm

The module changes the username to Personal ID element.
Depending on a new form element where the user selectes his country of residence the module checkes with what kind of document the user may register in the default installation country. There is the posibility to add validation on the documents number (implemented with chilean RUT).

The goal:

Give a solid solution for the travel industry to manage client contact inside Drupal.
The module works with the addressfield module if there is one installed on the user entity the country settings are used like in the instance settings of the addressfield. If there is no addressfield the module uses a settings form and a variable to define default country and available countries.

Roadmap:
  • publish this module as a project
  • implement an API for ID validation and with which travel document travelling is allowed

This module is sponsored by TSolutions

Categories: Drupal

Paul Byrne: More testing with Codeception and Drupal projects

Planet Drupal - 20 May 2013 - 11:45am

This is a bit of a follow-up to Mike Bell's introductory article on using Codeception to create Drupal test suites. He concludes by stating he "need[s] to figure out a way of creating a Codeception module which allows you to plug in a Drupal testing user (ideally multiple so you can test each role) and then all the you have to do is call a function which executes the above steps to confirm your logged in before testing authenticated behaviour."

"Something along the lines of:

$I->drupalLogin('editor');

So, after skimming through Codeception and Mink documentation, I've tinkered with two potential ways of achieving this... for acceptance testing at least.

A crude toolbox

The first method is to use two custom classes to provide details of (a) a general Drupal site and (b) the specific site to be tested. This idea stemmed from this article which suggests that including literals - such as account credentials, paths and even form labels - in tests is bad practice. What if the login button label changes?

read more

Categories: Drupal

ThinkShout: RedHen at DrupalCon

Planet Drupal - 20 May 2013 - 11:12am

The big week is finally here with DrupalCon Portland kicking off in our own backyard. For those of you not familiar with Portland, we're really big into birds (yes, I'm aware that's very 2010), and chickens in particular. I'm working real hard here to make a clever connection to RedHen, the leading native Drupal CRM, and the only one named after a bird!

Just in time for the conference, RedHen has a new release with plenty of performance improvements and bug fixes. We have a production site about to launch with over 100k contacts, and our test/development environments are running with over a 100k contacts with thousands of engagements each. We still have lots of work to do, but we're confident in RedHen's ability to scale to "enterprise" levels.

Understandably, one of the most requested features since we launched RedHen as been the ability to import contacts. Our initial pass at meeting that critical need also launched last week in the form RedHen Feeds, a Feeds processor for RedHen contacts. So get those contacts out of that spreadsheet and into RedHen! Support for organizational affiliations isn't there yet, but is in the works.

ThinkShout will be helping lead a RedHen sprint on Friday, May 24th, DrupalCon Portland's official sprint day. So if you're at all native CRM curious, come join our team as we hack away on RedHen and related tools. Learn about large datasets, Salesforce integration, managing memberships, email integration, event registrations, and common use cases. Site builders, documentarians, UX specialists, and developers are all welcome.

PS - ThinkShout is co-hosting the Drupal DoGooders Happy Hour, a fundraiser for Aaron Winborn, today, Monday May 20th. So please joint us and start your week off right by giving back to someone who has given so much to the Drupal community!

Tags: Drupal PlanetRedHenconferenceevents
Categories: Drupal

flattr pane

New Drupal Modules - 20 May 2013 - 11:07am

a ctools pane for a flattr button

Categories: Drupal

Disqus import

New Drupal Modules - 20 May 2013 - 10:29am

The module allows you to import Disqus comments system in native Drupal comments.

Categories: Drupal

Netstudio.gr Blog: 7 reasons why you must insist on Drupal

Planet Drupal - 20 May 2013 - 9:37am

About a month ago, I had the opportunity to present at Internet World London, why I believe that Drupal is the best Open Source solution to build professional level websites, e-shops or online applications and why you should dig in it and do your own research about it.

The speech is in English. You can enable the English or Greek subtitles by clicking the captions button or read the transcript below.

Presentation Transcript

Hello everybody, my name is Yannis Karampelas. I'm the owner and founder of Netstudio.

Netstudio is a Web Design and Web development company in Athens, Greece. I am Greek and this is the first time I give a presentation in English, so if what I say, sounds Greek to you, feel free to interrupt me and ask questions.

Categories: Drupal

Inline relation form

New Drupal Modules - 20 May 2013 - 9:15am

This module allowes to add a relation within a node add / edit form. There is a widget "Inline relation form" for the relation field that will manage this functionality.

This project is developed by Bright Solutions. We also offer paid Drupal and ERPAL integration, support and process consulting

Categories: Drupal

cache_node_object

New Drupal Modules - 20 May 2013 - 8:45am

This module allows you to speed up the loading of the page. The entire node object is stored in a single field nodes.

Categories: Drupal

James Oakley: Useful modules: Spambot

Planet Drupal - 20 May 2013 - 7:16am

Drupal websites don't always need to allow users to register themselves with an account. This site doesn't, for instance. Anonymous commenting is turned on. The contact form is enabled for anonymous users. And those are the only thing that any member of the public would need to do - other than read. So nobody needs to set themselves up with a login. … Read more about Useful modules: Spambot

Blog Category: TechnologyDrupal Planet
Categories: Drupal

Aaron Winborn: I'm making a virtual appearance in Portland

Planet Drupal - 20 May 2013 - 6:36am

I want to thank the good folks at ThinkShout and ZivTech for organizing the Drupal DoGooders Happy Hour to benefit my family and me, as well as giving people attending DrupalCon an opportunity to hang out and have some drinks. Even though I will not be in Portland this week, I plan to be present in spirit, beginning with a virtual appearance there. Join the crew this evening (May 20) at about 4:00 PDT to raise a glass in toast of doing Drupal Good and for a quick Q & A with me beginning about 4:30.

What a long strange trip it's been.

From Sunnyvale in 2007 when I conceived the Embedded Media Field module, to Boston DrupalCon in 2008, where I presented my first State of the Media session, to DC in 2009 where we launched the Media sprint supporting the Media suite of modules, to Chicago 2011 and Denver 2012.

These are the fun times that I recall fondly, doing good with my fellow cohorts. And by doing good, I mean really doing good things. Because where else in the business world can you spontaneously form a group of competitors, build something awesome, and give it freely to the rest of the world?

I'm really going to miss that this year. I mean that even though I continue to contribute to Drupal whatever and whenever I can, I am going to miss seeing you guys this year. There is a magic that happens when you get three or more Drupalers together in the same room. But circumstance has had its way with me these past two years and until we have a DrupalCon "Three Mile Island", I will have to be content with a virtual appearance.

So, join me on Monday evening to see my Stephen Hawking impersonation.

read more

Categories: Drupal

Magnetise

New Drupal Modules - 20 May 2013 - 6:31am

Adds Magnetise registration integration.

Configuration options are available to disable integration for specified exclude paths.

Categories: Drupal

No cookie session

New Drupal Modules - 20 May 2013 - 2:52am

Helps you bypass cookie based session management on your Drupal site.

This is good approach for embedded sites, for example Facebook iframe based embedded applications which will allow you to implement fully functional Drupal site within iframe avoiding problems with browser cross-domain cookie restrictions.

In order to make this module work properly and provide fully functional Drupal site,a couple changes have to be introduced within Drupal core JS:

  • site/misc/autocomplete.js: within $.ajax function call, url parameter should be:
    url: db.uri + '/' + Drupal.encodePath(searchString)+window.location.search
  • site/misc/ajax.js: within ajax.options config, url field should be:
    url: ajax.url+window.location.search

If you use any JavaScript based navigation from your site or ajax calls, you should use ncs_path and ncs_ajax functions which will add proper page arguments to your page path.

Categories: Drupal

Dilve books

New Drupal Modules - 20 May 2013 - 2:04am

This module integrates the information service DILVE books.

Features:

Import indicating isbn book
Bulk import indicating several isbn.

The book contains information fields:
title
Cover image
author
description
Categories
Number of pages
Post time

We continue to improve

Categories: Drupal
Syndicate content