Alfresco Google Docs Integration

1 Comment

As I mentioned in my previous blog "New Alfresco Enterprise 3.3 release coming soon", Alfresco Software released Alfresco Enterprise 3.3 in May and I listed a few of the great features in the blog. But at this time, I would like to introduce another cool feature, "Google Docs Integration" This feature allows users to check out documents from the Alfresco repository to Google Docs. Users can make changes, collaborate with colleagues, and then check in the working copy to Alfresco. Basically, what this means is that users don't need to download documents to their desktop, and edit with MS Office tools. Users can utilize a free, web-based word processor, spreadsheet, data, presentation and form service offered by Google.

So, how to use it?

1. Confirm your configuration

 1.1. add properties below in alfresco-global.properties in ALF_HOME/tomcat/shared/classes
  - add "googledocs.googleeditable.enabled=true"
  - add "googledocs.username=username@gmail.com"
  - add "googledocs.password=password"

Drupal - LDAP integration

2 Comments

I was working on Drupal-Alfresco integration, when I needed to provide Drupal users with the access to the Alfresco repository. I will not go into the details on how you can access Alfresco from Drupal (this would be a different story), but this can be done with the CMIS module. You would need some customization if you want to allow the Drupal users to use their own accounts to access Alfresco - as the opposite of using one Alfresco account for all users. This was the reason why we need the LDAP integration.  

Before you start, you need to know if you are able to modify the LDAP directory or not. It is possible that for security reasons your Drupal site will only be given permissions to read the LDAP, and not to modify it. If you do have the permissions to update an LDAP directory, you will be able to create LDAP users from the Drupal site, change passwords and synchronize user profiles. 

Besides the ldapauth module, which is a part of the LDAP Integration, you will need the ldapdata module (also a part of the LDAP Integration) for profiles synchronization and ldap_provisioning module for creating user accounts in both LDAP server and Drupal.

You probably would also need some third-party tool to browse the LDAP directory. This is not necessary, but it can be helpful for debugging. It is nice to see that you really can access LDAP with the given admin account and password from your IP address. Also you really can create users there, and be able to see/export the LDIF-style structure of the directory. On Ubuntu, I use "GQ" application.

The screen shots below are not a "How To" guide, but images and comments that can be helpful.

Drupal Integration with Salesforce.com

5 Comments

Currently, we are working on a Drupal 6 project that requires integration with Salesforce.com. We use the Salesforce module for Drupal 6 (http://drupal.org/project/salesforce). We also use the webform module to create the desired form. The data will be sent to Salesforce.com after a user fills out and submits the form.

To achieve this, we need to map the webform fields to Salesforce lead fields. We searched and found the Salesforce Webform Integration module (http://drupal.org/project/sf_webform). We realized later that this module didn't really work with the salesforce-6.x-2.x-dev module. The Salesforce Webform Integration module is using $map['index'] and $map['webform_nid'] to refer to fieldmap index ('fieldmap' field in table 'salesforce_field_map') and webform node id ('nid' field in table 'salesforce_webform'). However, you can't find $map['index'] and $map['webform_nid'] in the 'map' variable in salesforce-6.x-2.x-dev. Instead, salesforce-6.x-2.x-dev is using $map['fieldmap'] to refer to the fieldmap index, and it does not have the webform node id info in the 'map' variable.

Asterisk and Drupal (integrating phone system and CMS)

6 Comments

Our office is currently installing an Asterisk based Phone system called TrixBox. Asterisk is a Phone Branching System which allows for corporate phone directories, voice mail systems and other great telecommunication features. Even better is that both of these software systems are also open source.

As I was reviewing the features offered by Asterisk, I did some research into how Asterisk can potentially integrate with Drupal. I learned about this Asterisk-Drupal integration module: http://drupal.org/project/asterisk.

Drupal S3 Integration and Flashvideo Module with FFMPEG Installation

2 Comments

S3, a great technology provided by Amazon, allows users to store an unlimited amount of files through simple web service calls. Amazon S3 is very cost effective, only charging 15 cents per gigabyte and additional charges for the bandwith that is used during retrieveing and sending files. The scalability of Amazon S3 allows video hosting sites to trust that the videos will be available at all times and will not
add to load times when playing videos.

The flashvideo module allows users to convert uploaded video files to Flash format with the help of FFMPEG. These video files after being converted can be embedded into nodes by using a special placeholder, [video], in the node body. The project page mentions that the module has been tested with two great flash players which are:

Integrating Drupal with External Systems

4 Comments

The great thing about Drupal and other open source software is that it is relatively easy to integrate the platform with external software packages. This includes both proprietary software packages and open source packages. With the source code available for review, engineers can easily find ports for integrating open source solutions with other systems.

For Drupal, I find that there has been a great deal of demand in integrating it with the following systems:

1) SalesForce.com: most mid to large size corporations that we work with use SalesForce.com as their CRM solution. Even though SalesForce.com is a hosted application, it has a great API which is well documented. In fact, there is a contributed Drupal module which allows for information be passed between SalesForce.com and Drupal. The module can be found here: http://drupal.org/project/salesforce. We have used an altered version of this module for Drupal and it has been working great.

Drupal Google Map Issue (without location module)

0 Comments

I posted a blog post about Drupal Google Map integration a few weeks ago. In that posting, I mentioned that Google Maps can be integrated by simply creating a custom .php page which embeds the Google Map API JavaScript inside it and then fetch the right Google Map based on the URL ($_GET variable).

I think that while this method works for most sites, this may not work for a lot of directory sites simply because people enter non conventional addresses. In order to prevent this from happening, there are 2 things that can be done:
1) Let people enter the longtitude and latitude of their address
2) Let people upload an image of the map if the mapping does not work

However, as in most sites that have user generated content, there will be people who would not know what they are doing and enter something weird into the address field.

Drupal Google Map Integration (simple integration)

0 Comments

There are currently numerous ways for integrating Google Maps with Drupal. The most popular method is to use the GMap Module together with the Location module. This method provides the most functionality and highest level of customization. However for relatively simple integrations, it is possible to simply embed the javaScript as part of a custom module or part of a custom page. This will allow for a simple JavaScript integration which makes use of the Google Geo Coder API.

Basically, the idea is to supply the Address string to the google geo coder which returns the longtitude and latitude of the site. This will enable Google map to pin point that address.

The following is some sample code that we have altered from a contribution at Drupal.org:

Google Maps JavaScript API Example

<?php
$address = explode('abc', $_GET['address']);
#hacked by api for Robert Armstrongs map. may need to replace this with a preg_replace for other ppl
/*if(stristr($_GET['address'],'South Tower'))
{
$_GET['address'] = str_replace(', South Tower','', $_GET['address']);
}
#hacked by api for Mitchell D. Childs map. this is gotta be the ugliest way of doing things