Drupal

Honeywords

New Drupal Modules - 20 May 2013 - 9:31pm
Description

WARNING, this module is not yet stable! Do not use it!

Honeywords is a module that will generate fake passwords ("honeywords") for
every user on the site. The main use of this module is to make it harder for
an attacker to penetrate your site without being detected (and notifying you
of data leaks that may otherwise have gone unnoticed). It has the side benefit
of making the password database generally less useful for hackers targetting
your users.

Honeywords is an attempt at implementing the Juels-Rivest MIT paper:
http://people.csail.mit.edu/rivest/honeywords/

To be clear, of the many attack scenarios listed in the paper, this module
(and this concept) only addresses a "Stolen [list] of password hashes" scenario.
There are other modules to help you implement security policies addressing the
others. Preventing data leaks in the first place is of course more important,
but damage control should be a part of any responsible security policy.

Limitations

A lot of things can diminish or nullify the usefulness of this module. See the README
file for details.

Categories: Drupal

Ajax reloading

New Drupal Modules - 20 May 2013 - 8:33pm

Drupal 7.x

Reloading:

  • Content (view modes, fields)
  • ...

via Ajax, using

  • timer
  • conditionals
  • ...
Categories: Drupal

Field Group Implosion

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

This module provides a field group for use on entity displays, which "implodes" all of its contained fields into one. Most common use is to display two fields on the same line, such as in the case of first name / last name. You can control the "glue" which is used to connect the fields (eg, a space, a semi-colon, the word "and", etc.). It can also be used to do the same to all members of a multi-value field. And yes, you can have nested implosions. :)

This module depends on the Field Group module.

Categories: Drupal

GW2

New Drupal Modules - 20 May 2013 - 6:51pm

ArenaNet is currently developing an API to expose game data from their Guild Wars 2 game. This module will provide integration for displaying game data on a Drupal website.

More information about the API is available at https://forum-en.guildwars2.com/forum/community/api/API-Documentation/fi...

Categories: Drupal

Chapter Three: The UCSF Drupal Web Starter Kit

Planet Drupal - 20 May 2013 - 5:06pm

The UCSF Drupal Web Starter Kit project has been our most successful university project to date. It has empowered UCSF to roll out sites for small departments, offices, and researchers in a matter of minutes.

Just 3 months after launch, 70 sites have gone live.

Here are a few examples of sites leveraging the Drupal Web Starter Kit:

  1. Office of the Executive Vice Chancellor & Provost
  2. UCSF Depression Center
  3. Drupal Web Starter Kit
The problem

UCSF has hundreds of small web properties for offices, researchers and small departments who don’t have the budgets and resources to create custom websites. Historically these groups have been left to their own devices to cobble together sites by whatever means necessary. These sites grow quickly out of date, are hard to maintain and rarely adhere to UCSF brand guidelines. 

UCSF created an initiative to build a Drupal install profile that they could offer to these groups at minimal cost and effort. UCSF turned to Chapter Three to design and build this solution.

The solution
  1. A flexible information architecture

    Because this web solution had to work for small departments, offices, and researchers, we needed to find some common ground in how the sites were structured, while still providing enough flexibility for end users to modify the site’s structure to fit their needs. 

    We began by creating menu structure consisting of “Home, About, News, Events, Publications, Services and People”.  We arrived at this list after careful research of the commonalities across sites for the three key audiences. This meant that when a new website was created, the new client would have a primary navigation menu which was already created. They could then add items to the menu as needed, customizing it to fit their specific needs. 

    We also created specific content types for News & Events. Events were structured so that they could show upcoming and past.  Over time it is our goal to extend the project to create structure around more content including Publications and People.

  2. Three different palettes 

    We collaborated with UCSF’s brand specialist to ensure that our designs were approved at the highest level to properly represent the look and feel of the University. We delivered three different color palettes of the template so that end users could pick the color scheme they liked most for their site.

  3. Robust content display options

    To empower the admins to have more control of the key content regions, we designed a WISYWIG editor with the power to do far more than add text, links and images. All project administrators can add:

    • vertical tabs
    • accordions
    • tool tips

    Additionally, special care was taken to ensure that the back end system could be easily controlled by individuals who self identified as “non-technical” people.

  4. Responsive design framework

    The future is device agnostic. As screen sizes multiply by the day, we knew that delivering a fully responsive site was paramount for the long term success of this project. We accounted for this with a fully responsive solution which provides legible content on any device interface. Since this solution was meant for hundreds of groups at UCSF, accounting for the long term viability of the website was fundamental to it’s success.

Thanks to UCSF

We appreciate the opportunity to work with an amazing client like UCSF. The project has been a resounding success for all involved. We look forward to building on this framework long into the future to better equip UCSF's groups with the tools they need to do their jobs. 

 

 

 

Categories: Drupal

Plupload uploader

New Drupal Modules - 20 May 2013 - 5:00pm

Allows you to upload files using HTML5, Gears, Silverlight, Flash, BrowserPlus or normal forms, providing some unique features such as upload progress, bulk upload, drag-drop upload option and chunked uploads.

It can be assigned to file field as a widget and supports any file extension which can be set from file field settings.

Categories: 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: 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
Syndicate content