Feeds Import With Images

Feeds Import With Images

Tuesday, Jan 6, 2015
All sorts of fun this week at Will Hall Online trying to use the Drupal Commerce Feeds module to import several hundred images on to a site. Initially our thoughts had been to manage file uploads via the IMCE module, but once the data requirements of our client became clear it was apparent that a more efficient solution was needed. Here’s what we did: Created a new directory on our server to contain these images Moved the images across from their original location inside sites/default, then removed them from the standard file system, including thumbnails. ...

Read more
Creating a Flexslider Carousel with Image Thumbnail Navigation

Creating a Flexslider Carousel with Image Thumbnail Navigation

Wednesday, Nov 19, 2014
For a recent project, a client wanted us to create a carousel style display of product images which could be cycled through using a panel of thumbnails immediately underneath, or by back and forward buttons. There are numerous tutorials available online regarding how to create this sort of effect, but few specifically aimed at integrating with the Drupal 7 Views module. So we thought we’d make a few notes of our own on the subject. ...

Read more
Using CKEditor Styles in Drupal

Using CKEditor Styles in Drupal

Wednesday, Nov 12, 2014
For a recent project, we’ve been trying to find an easy way of allowing our client’s staff members to create and edit content using a WYSIWYG editor. However, they also wanted a fair degree of control over the layout of the content, without using any html editing. To achieve this, we decided to create a solution inside the WYSIWYG editor in order to keep the user interface as simple as possible. ...

Read more
Order array by value

Order array by value

Wednesday, Sep 3, 2014
Just a quick code snippet here. I had been looking for a reasonable way to sort an array by the values that are inside it. For example if your array is: $array = array( 'id' => 1, 'name' => 'Graham', 'id' => 2, 'name' => 'Will', 'id' => 3, 'name' => 'Ryan', ); But you want your array to be order by name; in this order: $array = array( 'id' => 1, 'name' => 'Graham', 'id' => 3, 'name' => 'Ryan', 'id' => 2, 'name' => 'Will', ); Here is a quick function to help you out. ...

Read more
Development led design that delivers

Development led design that delivers

Thursday, Feb 27, 2014
Will Hall Online are excited to announce that we will now be offering both development AND design in house from March 2014. Why now? Regularly our services are employed by Web Design agencies offering web development but not being able to deliver the functionality required by their clients. Having worked with a vast number of designers we feel that it is in the best interest of our clients that we offer the both design and development as part of our service. ...

Read more
Welcome to our new team members

Welcome to our new team members

Monday, Feb 24, 2014
We are pleased to welcome two fantastic additions to the team at Will Hall Online. Stephanie has been working for us behind the scenes for some time and has now joined us in an official capacity as Marketing Director. She will be responsible for much of our client liason and her role shall encompass new leads, public relations, marketing and social media. So you are very likely to come across her in your journey with us. ...

Read more
Drupal 7 Post Migration Clean Up

Drupal 7 Post Migration Clean Up

Tuesday, Aug 13, 2013
As a follow up to my previous post on Drupal 6 Post Migration Data Clean Up, I thought that a follow up for Drupal 7 would be useful. In this one I have also included the block_custom table for custom blocks, which seems to be a place I have overlooked before. Update links inside node body and custom blocks: UPDATE `field_data_body` SET `body_value` = REPLACE(`body_value`, "http://[temporary site]", "http://[new URL]"); UPDATE `field_revision_body` SET `body_value` = REPLACE(`body_value`, "http://[temporary site]", "http://[new URL]"); UPDATE `block_custom` SET `body` = REPLACE(`body`, "http://[temporary site]", "http://[new URL]"); Update links to files/images within nodes and custom blocks: UPDATE `field_data_body` SET `body_value` = REPLACE(`body_value`, "sites/[temporary site]", "sites/[new URL]"); UPDATE `field_revision_body` SET `body_value` = REPLACE(`body_value`, "sites/[temporary site]", "sites/[new URL]"); UPDATE `block_custom` SET `body` = REPLACE(`body`, "sites/[temporary site]", "sites/[new URL]"); Another useful place if you are looking for post migration is to rebuild your sitemap (using xml_sitemap) and clear all the caches. ...

Read more
Attempting to stop Spam and Bots on Drupal 7

Attempting to stop Spam and Bots on Drupal 7

Tuesday, Jul 30, 2013
As I am sure most of you are aware, spam, in the case of unsolicited advertising or off-topic posting as opposed to the processed meat, and bots, the ones that remotely attempt to do stuff on your site, are two of the largest problems for any website that allows comments, signups, creation of content or such like. I have recently been looking into ways to prevent spam and bot-based site registrations in Drupal 7, as on several sites we were experiencing that Captcha’s were simply not preventing enough. ...

Read more
Getting better reports from users

Getting better reports from users

Thursday, Jun 13, 2013
Getting accurate details from users about the setup of their system can be difficult. Often the quizzical user may suggest “it doesn’t look like that on my computer” or “can you make it bigger on the screen”, however, when you ask what browser, screen size, operating system they are using it can be possible to get a blank look. In fact I am sure we can all appreciate that some people think of Internet Explorer as the internet. ...

Read more
Starting the Drupal Serial module from a certain number

Starting the Drupal Serial module from a certain number

Friday, Mar 15, 2013
Recently I have been building a ticketing system in Drupal, which allows logged in users to create support tickets and administrators to comment on them, change them between statuses and close them. All this is mainly done by controlling a content type, called tickets, which only administrators and the creators can see alongside enabling comments and firing a few Rules off to control notifying people of changes and changing between statuses. ...

Read more