OK, so yesterday I managed to play with the Adobe Help Viewer search results, and added extra-results from Yahoo.
Today I went even further and improved the help pages by bringing in comments from LiveDocs.
So right now, when I look at a specific help entry, I do not only get the "default" static content, but I also get comments if I'm online. So it looks like this:

(notice the comments at the bottom of the page)
How did I do this? Quite simple, using Spry. Again - the code is not perfect, but it works:
I opened the "help.js" file that is linked from all the help interfaces from here:
c:\Program Files\Common Files\Adobe\Help\en_US\Dreamweaver\9.0\help.js
And I added these lines at the end of the JS file:
document.write('<script language="JavaScript" type="text/javascript" src="../../../../../../Adobe/Adobe Help Viewer/1.1/includes/xpath.js"></script>');
document.write('<script language="JavaScript" type="text/javascript" src="../../../../../../Adobe/Adobe Help Viewer/1.1/includes/SpryData.js"></script>');
document.write('<script language="JavaScript" type="text/javascript" src="../../../../../../Adobe/Adobe Help Viewer/1.1/includes/SpryEffects.js"></script>');
document.write('<script language="JavaScript" type="text/javascript" src="../../../../../../Adobe/Adobe Help Viewer/1.1/includes/getParams.js"></script>');
function unescapeHTML(str) {
var div = document.createElement('div');
div.innerHTML = str;
return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
}
window.onload = function() {
var related_in = document.getElementById('related');
if(related) {
var webLink = related.getElementsByTagName('a')[0].getAttribute('href');
var m = webLink.match(/http:\/\/help.adobe.com\/(.*)\/(.*)\/(.*)\/(.*)/);
var locale = m[1];
var product = m[2];
var version = m[3];
var page = m[4];
related.innerHTML += '<div style="font-weight: bold; margin-top: 10px;">Comments - from livedocs</div>'+
'<ul spry:region="dsCO" spry:repeatchildren="dsCO">'+
'<li style="margin-bottom: 10px;">'+
'<a href="{link}">{dc:creator} said on {dc:date}:</a>'+
'<div>{description}</div>'+
'</li>'+
'</ul>'+
'<button type="button" class="submit" alt="Add Comment" name="AddComment" value="Add Comment" onclick=\'javascript:window.open("http://www.adobe.com/cfusion/livedocs/add_comment.cfm?filename='+page+'&book='+version+'&product='+locale+'&version='+product+'", "addcommentwin","directories=yes,toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes,status=yes");\'>Add Comment</button>';
dsCO = new Spry.Data.XMLDataSet(" http://livedocs.adobe.com/cfusion/rss/livedocs.cfm?product="+locale+"&version="+product+"&book="+version+"&full=true&page="+page, "/rdf:RDF/item");
dsCO.sortOnLoad = 'dc:date';
var obs = {onPostLoad: function(ds) {
for (var i=0;i<ds.data.length;i++) {
ds.data[i].description = unescapeHTML(ds.data[i].description);
}
}};
dsCO.addObserver(obs);
}
}
This way, I have added this feature to the Dreamweaver CS3 help, but you can add it to other products as well (as long as they use the Adobe Help Viewer) buy modifying the help.js file from their corresponding folder. For example, for the "Extension Manager" you would have to modify this file:
"c:\Program Files\Common Files\Adobe\Help\en_US\ExtensionManager\1.8\help.js"
Enjoy!
Bogdan
|