Collabtive Help
With the recent addition of a few sister sites joining the Hero Inc. hosting family, I’ve needed a “ticketing” system in order to assist the admins of those sites in opening tasks for my sites and theirs. These tasks could be as simple as creating subdomains or email addresses for new users to building new images for the most recent posts.
The “ticketing” system needed to be simple, easy to integrate, and of course free. After a few simple Google searches, I settled on Collabtive. The install was simple and it ran on MySQL. I was fearful of much of the development and blog posts being in Italian, but Google solved this problem for me.
After working with the Collabtive system, known internal to me as Hero Inc. PMS (yes, insert jokes and laughter here), I found it really did everything I needed. But earlier this week, I found one weakness. It did not notify the person assigning a task or those assigned to a task that it had been closed even when notifications were enabled. Google searches showed that I was not alone in wanting this feature added. With my minor coding background I decided to give the feature a shot. Thankfully the Collabtive team did an amazing job of organizing their code. A few code changes and corrective misspellings in my code later, I had the result that I wanted.
For those interested, here is how you can update your environment to include the following feature updates:
- Email assigner when a task is created
- Email assigner and assignees when a task is edited
- Email assigner and assignees when a task is closed
- Modify the notification text for the emails sent for created, edited, and closed tasks
- Update the Collabtive environment to the latest release. At the time of this post, the latest version is 0.6.5.
- Update the Collabtive MySQL database to add a new column, “assigner”, to the “tasks” table. The “assigner” column should be of type Integer just as it is for the user ID.
- Update all tasks to contain a default ID for an assigner. This will ensure that when older tasks are closed or edited that Collabtive does not fail in sending notifications.
UPDATE `tasks` SET assigner= [INSERT DEFAULT USER ID HERE] WHERE assigner = 0 OR assigner IS NULL;
- Download the files I modified.
- Update your Collabtive directory with the following files in the appropriate location:
/managetask.php /include/class.task.php /language/en/lng.conf
For those not using English as the default language, the following additions need to be made to the appropriate lng.conf file:
- projectassignedsubject
- projectassignedtext
- taskassignedsubject
- taskassignedtext
- taskassignersubject
- taskassignertext
- taskclosedsubject
- taskupdatedsubject
- taskupdatedtext
That’s it. The environment is now setup to send the notifications as needed. I’ve tested the changes in my environment and didn’t have any issues. If anyone follows these instructions and encounters issues/bugs, please leave a comment and let me know.
UPDATE NOTE (2011-02-20): I’ve made a recent update to my work stated here. Go here to read more about the latest change.
UPDATE NOTE (2011-02-27): I just realized there was an error in the close task functionality and emails were being sent to the user that has an ID of 1. I’ve updated the code referenced in this post to include a fix for the getAssigner function. Please let me know if you run into any additional issues.
Posted under Internet