Rss 2.0 via FEED
Ken Hughes... - PHP
Productivity, Technology and Automating Everything...
    
 

At work, we use SupportSuite for support case tracking. This is a real neat product but the support is dreadful.

I was running version 3.0.0.80 and there are a few problems with it, they recently announced version 3.1.40. I set up a testing copy and tried an upgrade - no joy, 404 page after about 0.00065353 nanoseconds, spent ages trying to resolve and / or get an answer out of Kayako but nothing.

I did like the look of the new version and it solved a number of small but annoying issues we were seeing, so I implemented it in parallel (on port 81) to our current system, we had it all configured, ported across all the Knowledgebase data (Import / Export from the app), ported across all the user accounts (manual DB table hacking) and basically got everything ready for the 'big bang' migration.

Anyway I decided the big bang migration should happen this morning (Friday is typically a quiet day) - I had everyone port their own cases across, put links from the old case to the new case and links from the new case to the old case.

Next step was to move the old system to port 8080 and the new system from port 81 to port 80. Here's what happened :-

  • Changed the website ports (in IIS) so that the old system uses port 8080 and the new system uses port 80
  • Modified the settings (stored in the mySQL database) to ensure the URL was correct (i.e. removed :81 from the end of the URL)
  • Cleared the SupportSuite cache
  • IISRESET
  • Closed all the browser sessions.
  • Opened a browser and browsed to the new site - horrible page with no images and bad formatting.
  • Ctrl F5 to refresh the browser again - same detail
  • Delete all the temporary files from IE followed by another Ctrl F5 - same detail
  • Examine the properties of the images that were not loading - they are still pointing to port 81
  • Ramp up my sense of urgency as we have now been off air for about 30 minutes.
  • Browse the mySQL database and spot a settingcache table - run a SELECT * FROM settingscache WHERE data LIKE '%:81%'
  • AH !! find the row with the cached URL - change the URL and UPDATE, on to a winner here...
  • Ctrl F5 - gets a message stating that SupportSuite is not found and I should run setup again - !!WHAT!!
  • Look at the settingscache table again - AH !! there is a 'hash' field - Stumped !!
  • Change the new system back to port 81
  • Added a new website on port 80 with a permanent redirect to port 81…
  • Opened port 81 through our firewall...
  • Fixed !! At last !!!

It seems the settingscache table is built the very first time the web app runs and then is NEVER updated EVER.

It's working now but I hate leaving niggly issues like this (needing both port 80 and 81 to function correctly) - further investigation on Monday, but if this is a real bug then given my experience with Kayako to date I expect the easiest route will be to configure it on another server (ON PORT 80 !!) and then move it across...

Posted: Friday, November 17, 2006 6:19:16 PM (GMT Standard Time, UTC+00:00)  #   Comments [0]
TAGS: PHP | Software | Support

I logged a feature enhancement to allow the KB article RSS feed to include articles from ALL categories.

This was set as a LOW PRIORIY by Kayako, but is a high priority for me - nothing else for it, I had to fix it myself.....
Here's how I added the feature to enter 0 as the category id in the RSS feed url to provide articles from ALL categories.

Edit /modules/knowledgebase/functions_clientkb.php

Change Line 167 from :
if ($key == $kbcategoryid)

To :
if (($key == $kbcategoryid) || ($kbcategoryid == 0))

The url for the feed includes the category id for the artciles you want to see. Enter a category id of 0 to return ALL articles :

http://[your_domain]/rss/index.php?_m=knowledgebase&_a=view&kbcategoryid=0

 

Link to the post I entered on the Kayako forums

Posted: Monday, April 24, 2006 12:31:49 PM (GMT Daylight Time, UTC+01:00)  #   Comments [0]
TAGS: PHP | Scripting | Support | Technical

I found an issue in SupportSuite (3.0.0.32) where if a client (user) did a KB search they would get the subject line and first 255 characters of each result match - some of these matches would be PRIVATE or DRAFT knowledgebase articles.

I guess this is a bug, but based on the responses (timeframe to even review reported issues) to bugs I reported to Kayako recently, I decided to fix it myself...

Here is what I did :

MODIFIED /modules/core/client_search.php
In the section commented as : // ===== SEARCH ALL MODULES ======== CHANGED if ($module->isRegistered(MODULE_KNOWLEDGEBASE)) { $_searchresults = searchKnowledgebase($_POST["searchquery"]); } TO if ($module->isRegistered(MODULE_KNOWLEDGEBASE)) { $_searchresults = searchClientKnowledgebase($_POST["searchquery"]); } also in the else if block directly below : CHANGE } else if ($_POST["searchtype"] == "knowledgebase" && $module->isRegistered(MODULE_KNOWLEDGEBASE)) { $_searchresults = searchKnowledgebase($_POST["searchquery"]); TO } else if ($_POST["searchtype"] == "knowledgebase" && $module->isRegistered(MODULE_KNOWLEDGEBASE)) { $_searchresults = searchClientKnowledgebase($_POST["searchquery"]); So, you've now forced the client search functions to use a new function (called seachClientKnowledgebase)
that we will now define...
  • Open the file /modules/core/functions_clientsearch.php
  • Copy the whole function named searchKnowledgebase and paste another copy into the same file.
  • Now rename the function to searchClientKnowledgebase.
In the newly pasted and renamed function look for the section starting with // ========BUILD THE CATEGORY LIST FOR THIS GROUP ===== ADD // KH get the status of each article and only use the 'published' ones $_finalpublishedarticlelist = array(); $dbCore->query("SELECT * FROM `". TABLE_PREFIX ."kbarticles` WHERE
(line wrapped) kbarticleid IN (". buildIN($_finalkbarticleidlist) .");"); while ($dbCore->nextRecord()) { if ($dbCore->Record["articlestatus"] == "published") { $_finalpublishedarticlelist[] = $dbCore->Record["kbarticleid"]; } }
DIRECTLY AFTER while ($dbCore->nextRecord()) { if ($dbCore->Record["categorytype"] == SWIFTPUBLIC) { $_finalkbarticleidlist[] = $dbCore->Record["kbarticleid"]; } } Then modify the next block of code to read as follows : if (!count($_finalpublishedarticlelist)) { return $_queryresult; }

Alternatively simply make a backup of your existing files :

  • /modules/core/functions_clientsearch.php
  • /modules/core/client_search.php
and replace them with the files in php_mods.zip
Posted: Friday, April 21, 2006 12:48:34 AM (GMT Daylight Time, UTC+01:00)  #   Comments [0]
TAGS: PHP | Scripting | Technical

Blank entry, simply to list out the categories.

Posted: Saturday, January 01, 2005 5:32:53 PM (GMT Standard Time, UTC+00:00)  #   Comments [0]
TAGS: Archiving | C Sharp | Code Generation | Exchange | Family | Mountaineering | PHP | RSS | Scripting | Support | Technical | .NET | Design Patterns | Hardware | Dasblog | Running | Tools | Development | Software | TaHoGen | GPS
     
 
 
Copyright © 2009 Ken Hughes. All rights reserved.

Creative Commons License
This work is licensed under a Creative Commons Attribution 2.0 UK: England & Wales License.