By Phil Frilling, 11 May, 2012
Today I was working on an intranet site using Open Atrium. Our client wanted to post their employee handbook on the intranet using the atrium notebook module. The problem is that, by default, all authenticated users are able to post a handbook item. Obviously, this wouldn't work with an employee being able to modify the employee handbook online. First, I went to the 'admin/user/permissions' page and disallowed the 'create new books' and 'add content to books' permissions for my newly created 'Employee' role. Upon testing an employee user, they were still able to add book content.
By Phil Frilling, 4 May, 2012
I'm currently building a website that has a three columned layout. The left most column contains the navigation elements, the center column contains the body, and the right side column contains supporting text for the article. So I created three block regions in my theme: left_sidebar, content, and right_sidebar. The problem I ran into was that the text in the right side column was different for every node. Having the user create a separate block for each node seemed very inefficient.
By Phil Frilling, 2 May, 2012
This is a list of some of the more unique, excellent photo galleries I've come across. Full screen, would be good for a touch screen interface: - http://tympanus.net/codrops/2010/05/14/sliding-panel-photo-wall-gallery-with-jquery/ Another cool gallery with a polaroid look and sliding galleries: - http://tympanus.net/codrops/2010/06/27/beautiful-photo-stack-gallery-with-jquery-and-css3/
By Phil Frilling, 27 April, 2012
Today I tried to ssh into a production server of ours and I began receiving this error message: ssh_exchange_identification: Connection closed by remote host Stange, considering only 1 hour prior I was connecting just fine through ssh. After a few failed attempts in a row I finally got connected.

Tags

By Phil Frilling, 25 April, 2012
Some thoughts for setting up a high performance Drupal stack:

Needs:

  • High availability for an estimated 4,800 users.
  • Traffic will be modest with heavy spikes during certain times.
  • Traffic will be mainly authenticated users.
  • Needs to be 100% reliable, especially during the spikes.

Solutions

  • One server dedicated to MySQL.
    • EC2 instance running MySQL and not much else?
By Phil Frilling, 13 April, 2012
Today I ran into an issue of needing to programmatically remove file attachments from a node. To accomplish this I referred to the upload_nodeapi() function and found the upload_save() function. After examining the code I found that upload_save looks for the 'remove' parameter for the file object. If $file->remove exists, the file will be deleted from the database and file system. So by adding the 'remove' parameter to the files I needed removed before calling node_save() results in the files being removed from the node upon calling node_save(). Done!
By Phil Frilling, 12 April, 2012
Today I needed to import about 2000 user accounts into a new Drupal 7 database. To do this I decided to use the Feeds module which includes a Feeds Import module. Perfect! First, I went to the feeds admin interface and setup the import by mapping all of my fields to the .csv. Next, I opened Excel and generated my spreadsheet. Once that was completed I saved the spreadsheet as a .csv file and tried to import. The form returned with the following message "0 users created". WTF!