Click here to Skip to main content
15,893,486 members
Articles / Web Development / HTML

A Reusable Framework for Connecting Both WebHelp and Compiled Help RoboHelp Projects to Relational Databases Through the Use of JavaScript Object LIterals

Rate me:
Please Sign up or sign in to vote.
2.60/5 (4 votes)
10 May 200518 min read 45.7K   319   16  
This article will describe how to hook up RoboHelp projects to a database to provide data to pages for both WebHelp and Compiled Help using a single architecture. The implementation will rely on the JavaScript interpreter built into almost all web browsers and that is available in Compiled Help too.
<html>
<head>
<title> Navigation Pane </title>

<meta name="generator" content="RoboHelp by eHelp Corporation   www.ehelp.com">
<meta name="description" content="WebHelp 5.50">
<script language="javascript" src="whver.js"></script>
<script language="javascript1.2" src="whmsg.js"></script>
<script language="javascript1.2" src="whproxy.js"></script>
</head>
<script language="javascript">
<!--
var strFrmToc="";
var strFrmNdx="";
var strFrmFts="";
var strFrmGls="";
var strFrmDft="";
var gstrName="";

//set overwrite here
function setListFrames(strToc,strNdx,strFts,strGls,strDefault)
{
	strFrmToc=strToc;
	strFrmNdx=strNdx;
	strFrmFts=strFts;
	strFrmGls=strGls;
	strFrmDft=strDefault;
	if(strFrmDft==strFrmToc)
		gstrName="toc";
	else if(strFrmDft==strFrmNdx)
		gstrName="idx";
	else if(strFrmDft==strFrmFts)
		gstrName="fts";
	else if(strFrmDft==strFrmGls)
		gstrName="glo";
}

function setWebHelpPane()
{
	setListFrames("whgdata/whnvf30.htm","whgdata/whnvf31.htm","whgdata/whnvf32.htm","whgdata/whnvf33.htm","whgdata/whnvf30.htm");
}

function window_unload()
{
	if(!gbNav4||gbNav6) // resize will call unload, but the register code will never be called on Netscape 4.
	{
		UnRegisterListener2(this,WH_MSG_SHOWTOC);
		UnRegisterListener2(this,WH_MSG_SHOWIDX);
		UnRegisterListener2(this,WH_MSG_SHOWFTS);
		UnRegisterListener2(this,WH_MSG_SHOWGLO);
		UnRegisterListener2(this,WH_MSG_GETPANEINFO);
	}
}

function window_onload()
{
	var bHidePane=false;
	var oMsg=new whMessage(WH_MSG_GETCMD,this,1,null);
	if(SendMessage(oMsg))
	{
		if(oMsg.oParam>0)
		{
			if(oMsg.oParam==1)
				gstrName="toc";
			else if(oMsg.oParam==2)
				gstrName="idx";
			else if(oMsg.oParam==3)
				gstrName="fts";
			else if(oMsg.oParam==4)
				gstrName="glo";
			switchNvp(gstrName);
		}
		else if(oMsg.oParam==0)
		{
			bHidePane=true;
		}
		else if(gstrName)
			switchNvp(gstrName);
	}
	if(bHidePane)
	{
		oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null)
		SendMessage(oMsg);
	}
	else if(gstrName)
	{
		oMsg=new whMessage(WH_MSG_PANEINFO,this,1,gstrName);
		SendMessage(oMsg);
	}
	oMsg=new whMessage(WH_MSG_NOSYNC,this,1,null);
	SendMessage(oMsg);
	oMsg=new whMessage(WH_MSG_NOSEARCHINPUT,this,1,null);
	SendMessage(oMsg);

}

function switchNvp(strName)
{
	var strFile="";
	if(strName=="toc")		strFile=strFrmToc;
	else if(strName=="idx")	strFile=strFrmNdx;
	else if(strName=="fts")	strFile=strFrmFts;
	else if(strName=="glo")	strFile=strFrmGls;

	gstrName=strName;
	frames[0].location=strFile;	
}

function onSendMessage(oMsg)
{
	if(oMsg)
	{
		var onMsg=null;
		var nMsgId=oMsg.nMessageId;
		if(nMsgId==WH_MSG_SHOWTOC)
		{
			switchNvp("toc");
			onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"toc");
			SendMessage(onMsg);
			onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
			SendMessage(onMsg);
		}
		else if(nMsgId==WH_MSG_SHOWIDX)
		{
			switchNvp("idx");
			onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"idx");
			SendMessage(onMsg);
			onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
			SendMessage(onMsg);
		}
		else if(nMsgId==WH_MSG_SHOWFTS)
		{
			switchNvp("fts");
			onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"fts");
			SendMessage(onMsg);
			onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
			SendMessage(onMsg);
		}
		else if(nMsgId==WH_MSG_SHOWGLO)
		{
			switchNvp("glo");
			onMsg=new whMessage(WH_MSG_PANEINFO,this,1,"glo");
			SendMessage(onMsg);
			onMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null);
			SendMessage(onMsg);
		}
		else if(nMsgId==WH_MSG_GETPANEINFO)
		{
			oMsg.oParam=gstrName;
			return false;
		}
	}
	return true;
}

function onResize()
{
	var oMsg=null;
	if(gbIE4)
	{
		if(document.body)
		{
			if(document.body.clientWidth>1&&document.body.clientHeight>1)
			{
				oMsg=new whMessage(WH_MSG_RESIZEPANE,this,1,null);
				SendMessage(oMsg);
			}
		}
	}
	else
	{
		if(window.innerWidth!=0&&window.innerHeight!=0)
		{
			oMsg=new whMessage(WH_MSG_RESIZEPANE,this,1,null);
			SendMessage(oMsg);
		}
	}
}

if(window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy)
{
	var oMsg=new whMessage(WH_MSG_GETPANES,this,1,null);
	if(SendMessage(oMsg))
	{
		if(oMsg.oParam)
		{
			for(var i=0;i<oMsg.oParam.aPanes.length;i++)
			{
				if(oMsg.oParam.aPanes[i].sPaneName=="toc")
					strFrmToc=oMsg.oParam.aPanes[i].sPaneURL;
				else if(oMsg.oParam.aPanes[i].sPaneName=="idx")
					strFrmNdx=oMsg.oParam.aPanes[i].sPaneURL;
				else if(oMsg.oParam.aPanes[i].sPaneName=="fts")
					strFrmFts=oMsg.oParam.aPanes[i].sPaneURL;
				else if(oMsg.oParam.aPanes[i].sPaneName=="glo")
					strFrmGls=oMsg.oParam.aPanes[i].sPaneURL;
				if(oMsg.oParam.sDefault==oMsg.oParam.aPanes[i].sPaneName)
				{
					strFrmDft=oMsg.oParam.aPanes[i].sPaneURL;
				}
			}
		}
		else
			setWebHelpPane();
	}
	else
		setWebHelpPane();

	RegisterListener2(this,WH_MSG_SHOWTOC);
	RegisterListener2(this,WH_MSG_SHOWIDX);
	RegisterListener2(this,WH_MSG_SHOWFTS);
	RegisterListener2(this,WH_MSG_SHOWGLO);
	RegisterListener2(this,WH_MSG_GETPANEINFO);

	if(gbIE55)
		window.onresize=onResize;

	window.onunload=window_unload;
	window.onload=window_onload;

	var strHtml="";
	strHtml+="<frameset rows=\'100%,*\'>";
	strHtml+="<frame name=\'nvplist\' title=\'navpane frame\' src=\'" + strFrmDft +"\'></frame>";
	strHtml+="<frame src=\'whskin_blank.htm\' noresize></frame>";
	strHtml+="</frameset>";
	document.write(strHtml);
}
else
	document.location.reload();

if(window.gbNav6)
{
	var oMsg=new whMessage(WH_MSG_RELOADNS6,this,1,null);
	SendMessage(oMsg);
}
//-->
</script>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions