Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 12-02-2004, 06:57 PM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default GoJIRC with JIRC Integration Hack

I am attempting to set up GoJIRC through the JIRC integration hack. The only problem with this hack is it seems the only way that $bbuserinfo[username] pulls the username info from the Board is if it is in the template. That is unfortunately not an option with GoJirc since it pulls it's parameter data out of an XML file. Is there anybody here who knows how to get the user name information to transfer so that GoJIRC can be used?
Reply With Quote
  #2  
Old 12-02-2004, 07:05 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

GoJIRC is a JAVA-Applet that reads a configuration-XML-file from the webserver?
Then just write a PHP-File that outputs the required XML.
Reply With Quote
  #3  
Old 12-02-2004, 07:47 PM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It reads an XML for the Parameter data. How would I go about creating a PHP file which feeds the XML file? Would this solve my problem with parsing username from the database? THat is all I want to do is parse the current username from the database.
Reply With Quote
  #4  
Old 12-02-2004, 08:02 PM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here are the files in question in regard to getting this to work:

First, the chat_chatbit template:

Code:
<table align="center" border="0" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" class="tborder" width="100%">
<tr id="cat">
	<td class="tcat" width="100%"><span class="normalfont"><b>Chat</b></span></td>
</tr>
<tr>
<td class="alt1" width="100%" align="center">

   <script src="config.js" type="text/javascript"></script>
    <script src="inc.js" type="text/javascript"></script>


  <body>

    <div id="body">
      <div id="chatbox">
        <div id="chatbox-top">
          Cavy Compendium Chat
        </div>

        <div id="chatbox-mid">

          <div id="chatbox-mid-head">
            <script type="text/javascript">
              //<![CDATA[
              doWrite('menubar');
              //]]>
            </script>
          </div>

          <script type="text/javascript">
            //<![CDATA[
            smy_doSmileys();
            doWrite('chat');
            //]]>
          </script>

        </div>
      </div>

      <script type="text/javascript">
        //<![CDATA[
        doWrite('status');
        //]]>
      </script>

      <p>
        <img alt="W3C XHTML 1.1" src="script/images/xhtml11.gif" onclick="popup('http://validator.w3.org/check/referer')" height="15" width="94" />&nbsp;&nbsp;
        <img alt="W3C CSS" src="script/images/css.gif" onclick="popup('http://jigsaw.w3.org/css-validator/check/referer')" height="15" width="94" />&nbsp;&nbsp;
        <img alt="Get Firefox" src="script/images/firefox.png" onclick="popup('http://www.mozilla.org/products/firefox')" height="15" width="94" />
      </p>
      <p>
        Web Chat Powered by WillyPS' <a href="javascript:;" onclick="popup('http://gojirc.willyps.com')">GojIRC Front End 2.0</a>.
      </p>
    </div>

    <script type="text/javascript">
      //<![CDATA[
      doWrite('sound');
      //]]>
    </script>

<iframe src="$vboptions[bburl]/chat.php?do=extendsession" width=0 height=0 frameborder=0></iframe>
</td>
</tr>
</table>
Next is the lib.js which includes the call to the XML file:



Code:
// =====================================================================
//
// { GojIRC Front End }
//
// Version: 2.0
// Author: WillyPS
// Web: gojirc.willyps.com
// Copyright (c) 2001 - 2004 WillyPS
//
// File: lib.js
// File Version: 1.0
// Description: Functions' library.
// File Author: WillyPS
//
// ----------------------------------------------------------------------
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// =====================================================================


// ---------------------------------------------------------------------------
// 	COMMON JAVASCRIPT API
// ---------------------------------------------------------------------------

// Get an element by it's id
function get(id) {
	return document.getElementById(id);
}

// Echo string
function echo(str) {
	return document.write(str);
}

// Show element
function show(id) {
	var st = '';
	if (id == 'statusbox') { st = 'block'; }
	else { st = 'inline'; }
	
	if (typeof id == 'string'){
		get(id).style.display = st;
	}
	else {
		id.style.display = st;
	}
}

// Hide element
function hide(id) {
	if (typeof id == 'string'){
		get(id).style.display = "none";
	}
	else {
		id.style.display = "none";
	}
}

// Process irc commands.
function command(cmd) {
	get('jchat').processJInput(cmd);
}

// Retrive values (own nick, highlithed nick, current channel)
function read(str) {
	if (typeof get('jchat') != 'undefined') {
		return get('jchat').readJOutput(str);
	}
	else { return f; }
}

// Play Sound.
// Short for playSound() in fsapi mod.
function play(soundObj) {
	if (SoundMod) {
		playSound(soundObj);
	}
}

// Create <param> tag.
function param(name,value) {
	echo('<param name="'+name+'" value="'+value+'" />');
}

// Reset a var's value to blank
// Support multiple values (comma separated list).
function rezet() {
	var arg = rezet.arguments;
	for(i = 0; i < arg.length; i++) {
		var type = typeof arg[i];
		if (type == 'string') { arg[i] = '';}
		else if (type == 'number') { arg[i] = 0; }
		else if (type == 'array') { arg[i] = ['']; }
	}
}

// Preload imgs
function preload() {
	if(document.images) {
		if(typeof document.pimg == 'undefined' || !document.pimg) {
			document.pimg = new Array();
			var pm = document.pimg.length, arg = preload.arguments;
			for(i = 0; i < arg.length; i++) {
				if (arg[i].indexOf('#') != 0) {
					document.pimg[pm] = new Image();
					document.pimg[pm++].src = arg[i];
				}
			}
		}
	}
}

// Open a pop-up window
function popup(url) {
	window.open(url);
}

// Read datafile
function readFile(datafile) {
	if (document.getElementById) {
		Xml.open('GET',datafile,false);
		Xml.send(null);
		return Xml.responseText;
	}
}



// ---------------------------------------------------------------------------
// 	SINGLE FUNCTIONS
// ---------------------------------------------------------------------------

// Concat array params into AppletParams
function concatParams(arr) {
	if (_ns) {
		AppletParams = AppletParams.concat(arr); // for sun's jvm
	}
	else {
		AppletParams = arr.concat(AppletParams); // for msjvm
		AppletParams = AppletParams.concat(arr); // for sun's jvm
	}
}

//
function addParams(prm) {
	// Add parameters from params.xml
	if (prm == 'config' || prm == 'theme') {
		var param, params = readFile(EngineDir+'parameters/default.xml').split('\n');
		for (i = 0; i < params.length; i++) {
			if (params[i].match('<param ')) {
				param = params[i].match(/\x22.*\x22/g); // get values inside of comiles
				if (param != null) {
					param = param.toString(); // string it
					param = param.replace(/\x22/g,''); // remove comiles
					param = param.replace(/value=/,' => '); // replace attribute with delimiter1
					concatParams([param]); // add to AppletParams[]
				}
			}
		}
	}
	// Add theme params
	if (prm == 'theme') {
		var param, params = readFile(ThemeDir+'params.theme.xml').split('\n');
		for (i = 0; i < params.length; i++) {
			if (params[i].match('<param ')) {
				param = params[i].match(/\x22.*\x22/g); // get values inside of comiles
				if (param != null) {
					param = param.toString(); // string it
					param = param.replace(/\x22/g,''); // remove comiles
					param = param.replace(/value=/,' => '); // replace attribute with delimiter1
					concatParams([param]); // add to AppletParams[]
					ThemeParams[ThemeParams.length] = param;
				}
			}
		}
	}
	// Label wordings from lang file
	if (prm == 'lang') {
		// Use Language[] because for some reason Lang[] doesn't work here.
		for (i = 0; i < (Language.length -1); i++) {
			if (Language[i].match(/^Applet_/)) {
				var lparam = Language[i].replace(/^Applet_/,'');
				lparam = lparam.split(delimiter1);
				if (lparam[0] == 'FieldNameQuitMsg') {
					lparam[1] += ' ? GojIRC ['+ GoVersion +'] ? http://gojirc.willyps.com ?';
				}
				concatParams([lparam[0]+' => '+lparam[1]]);
			}
		}
	}
}

// Add resquested FilterKeys & Vals to FilterParams[].
function addFilter(filt,ext) {
	ext = ext ? ext : '.gif'; // no extension supplied, use .gif
	var loops = (filt[filt.length -1] == '' || filt[filt.length -1] == ' ') ? filt.length -1 : filt.length ;
	for (i = 0; i < loops; i++) {
		var tmp = filt[i].split(delimiter1);
		var sname = tmp[0];
		var svals = tmp[1].split(/\x20/);
		for (j = 0; j < svals.length; j++) {
			FilterParams[0] += ' '+svals[j]; // Add all available keys
			FilterParams[1] += ' '+sname+ext; // Add all names for keys
		}
	}
}

// Create Lang[] vars.
function doLang(arr){
	var lang;
	if (typeof arr == 'object') {
		for(i = 0; i < (arr.length -1); i++) {
			lang = arr[i].split(delimiter1);
			if (typeof lang[1] == 'undefined') {
				lang[1] = '';
			}
			Lang[lang[0]] = unescape(lang[1]);
		}
	}
}

// Status icon actions when double-clicked.
function statusAction(action) {
	if (AwayOn) {
		gojirc('away');
	}
	else { gojirc('quit'); }
}

// Status image change.
function statusImg(event) {
	if (Theme && (DisplayStatus == '1')) {
		var sicon = get('status-icon');
		if (event == 'disconnex') {
			sicon.src = ImgStatus[0].src;
			sicon.title = Lang['Status_IconDisconnected'];
		}
		else if (event == 'connex') {
			sicon.src = ImgStatus[1].src;
			sicon.title = Lang['Status_IconConnected'];
		}
		else if (event == 'away') {
			sicon.src = ImgStatus[2].src;
			sicon.title = Lang['Status_IconAway'];
		}
	}
}

// Check connex.
// Check if user is connected to the IRC.
function connex() {
	if (jout) { // 2.7.x and up only
		// Connected?
		try {
			// connected
			if (read('%$N') == '') { return f; }
			// not connected
			else { return read('%$N'); }
		}
		catch (e) {
			// Stop ReadJOutput error after 3 loops to prevent crashes.
			if ((typeof errNoReadJOutput != 'undefined') && (errNoReadJOutput > 2)) {
				EnableReadJOutput = "0";
				jout = f;
				return jout;
			}
			else {
				e.filename = (typeof e.filename == 'undefined') ? document.location : e.filename;
				errNoReadJOutput++;
				return getError('js',e.name,e.message,e.lineNumber,e.filename,'This error could be related with:\n- jIRC version 

incompatibility. Set EnableReadJOutput to cero in config.\n- the applet did not loaded. Check all paths and files are correct.');
			}
		}
	}
	// 2.6.0 and older
	else { return t; }
}

// Check selected nickname.
function sNick() {
	if (jout) { // 2.7.x and up only
		thissnick = '';
		thissnick = read('%$HN');
		// selected nickname?
		if (thissnick == x || thissnick == '') { return f; }
		// seleted nick
		else { return thissnick; }
	}
	// 2.6.0 support
	else { return t; }
}

// Saves a window session log.
function goLog(ref,event) {
	if (ref == 'dostat') {
		statuslog[statuslog.length] = event; // add to log
		return t;
	}
	else {
		for (i = 0, mystatuslog = ''; i < statuslog.length; i++) {
			mystatuslog += statuslog[i]+'\n'; // add to active log
		}
		return mystatuslog;
	}
}

// Set IRC Staus messages.
function doStatus(msg) {
	if (DisplayStatus == '1') {
		var statusmsg = get('status-msg'); //var statusmsg = get('status-msg').childNodes[0];
		// add time stamp
		if (TimeStamp == '1') {
			getUserTime();
			msg = stamp + msg;
		}
		// apply msg to status
		statusmsg.innerHTML = msg; //statusmsg.nodeValue = msg;
		// add to historial
		goLog('dostat',statusmsg.innerHTML);
	}
}

// Create HTML elements.
function doWrite(type,arg) {
	// Sound object
	if (type == 'sound' && (EnableSound == '1')) {
		// If modules detected, create sound objects.
		if (SoundMod) { doSoundObj(); }
		// No module present
		else { getError('cfg','','No sound module installed or detected!\n\nIf you want to use sounds in GojIRC, install a sound\nmodule (e.g. Flash 

Sound) in the Modules section of config.\nOtherwise, consider one of these values for EnableSound\nwich doesn\'t require a sound module:\n\n0\tDisable 

sounds\n2\tUse Only Old Load Sound + Applet Sounds\n3\tUse Only Applet Sounds\n\nSet one of the above values in EnableSound in config.'); }
	}
	// Menubar
	if (((type == 'menu') || (type == 'menubar')) && (typeof Menubar == 'object')) {
		doMenu(Menubar,'runCmd','gojirc');
	}
	// Status bar
	if (((type == 'status') || (type == 'statusbar')) && (DisplayStatus == '1')) {
		StatusOn = t;
		echo(
			'<div id="statusbox">'+
			'<table id="status">'+
			'<tr>'+
			'<td width="3%" id="status-left">'
		);
		if (Modules.toString().match('myoptions')) {
			echo('<img alt="[opts]" title="'+Lang['Menu_MyOptions']+'" onclick="myo_options()" style="cursor: pointer;" 

src="'+ModDir+'myoptions/options.gif" />');
		}
		echo(
			'</td>'+
			'<td width="94%" id="status-center">'+
			'<div id="status-msg">GojIRC Front End '+GoVersion+' by WillyPS</div>'+
			'</td>'+
			'<td width="3%" id="status-right">'+
			'<img alt="'+Lang['Text_Status']+'" id="status-icon" ondblclick="statusAction()" src="'+ImgStatus[1].src+'" />'+
			'</td>'+
			'</tr>'+
			'</table>'+
			'</div>'
		);
	}
	// Quick bar
	if ((type == 'quick') || (type == 'quickbar')) {
		QuickOn = t;
		echo(
			'Nick: <a href="javascript:gojirc(\'newnick\')" id="quick_nick">No nick</a>'
		);
	}
	// No Java alt text
	if (type == 'nojava') {
		echo(
			'<div style="text-align: center;">'+
			'<div style="margin: 20px 5px 5px;">'+
			'<span style="font-size: 16px; font-weight: bold;">'+Lang['Text_NoJavaTitle']+'</span><br /><br />'+
			'<img src="classes/applet_images/duke.gif" alt="Duke says: Bye!" width="55" height="68" /><br /><br 

/>'+Lang['Text_NoJavaConsider']+'<br /><br />'+
			'<div style="margin-left: 20%; text-align: left;">'+Lang['Text_NoJavaOpt']+'<br /></div>'+
			'</div>'+
			'</div>'
		);
	}
	// Applet/Object tag
	if ((type == 'applet') || (type == 'object')) {
		if (type == 'applet') {
			alert(type);
			if (arg == 'close') { echo('</applet>'); }
			else {
				rezet(AppletParams);
				echo('<applet id="'+jid+'" archive="'+archive+'" codebase="'+codebase+'" code="'+codeclass+'" MAYSCRIPT>');
				doWrite('appletparams');
				doWrite('nojava');
			}
		}
		else {
			if (arg == 'close') { echo('</object>'); }
			else {
				rezet(AppletParams);
				echo('<object id="'+jid+'" archive="'+archive+'" codebase="'+codebase+'" classid="java:'+codeclass+'" 

codetype="application/java">');
				doWrite('appletparams');
				doWrite('nojava');
			}
		}
	}
	// Chat
	if (type == 'chat') {
		var chatopentag = '', chatclosetag = '';
		if (arg == 'obj' || arg == 'object') {
			chatopentag = '<object classid="java:'+codeclass+'" codetype="application/java"';
			chatclosetag = '</object>';
		}
		else {
			chatopentag = '<applet code="'+codeclass+'" MAYSCRIPT';
			chatclosetag = '</applet>';
		}
		if (jout) {
			chatopentag += ' codebase="'+codebase+'"';
		}
		chatopentag += ' id="'+jid+'" archive="'+archive+'">';
		echo(chatopentag);
		doWrite('appletparams');
		doWrite('nojava');
		echo(chatclosetag);
	}
	// Applet Params
	if (type == 'appletparams') {
		// CABBASE
		if (arg == 'obj' || arg == 'object') {
			for (i = 0, tmp = '', _cabbase = cabbase.split(/\x2C/); i < _cabbase.length; i++) {
				tmp += 'classes/'+_cabbase[i]+',';
			}
			cabbase = tmp.slice(0, tmp.length -1);
			param('CABBASE',cabbase);
		}
		else { param('CABBASE',cabbase); }
		// Filter Params
		if (typeof FilterParams == 'object') {
			concatParams(FilterParams);
		}
		// Sound params
		if (EnableSound) {
			// disabled
			if (EnableSound == '0') {
				concatParams(['AllowSound => false','AllowJoinSound => false','AllowLeaveSound => false','DisplaySoundControl => false']);
			}
			// enable
			else if (EnableSound != '0') {
				concatParams(['AllowSound => true','AllowJoinSound => true','AllowLeaveSound => true','DisplaySoundControl => true']);
			}
		}
		// URL strings
		if (ReqNickname) {
			ParamNickName = ReqNickname;
			concatParams(['NickName => '+ReqNickname]);
		}
		if (DirectStart) {
			var connex = DirectStart ? 'true' : 'false';
			ParamDirectStart = (connex == 'true') ? '1' : '0';
			concatParams(['DirectStart => '+connex]);
		}
		// Config.js
		if (LoginCmd) {
			concatParams(['NickAuthString => '+LoginCmd.replace(/^\x2F/,'')]);
		}
		if (ProfileUrl != '') {
			concatParams(['UserProfileURL => '+ProfileUrl]);
		}
		// Create channel params from Channels[]
		// To dinamicly add channels, do it in the channel drop-down creation,
		// to avoid duplication in the applet's channel drop-down.
		if (typeof Channels == 'object') {
			var ChannelsTmp = new Array();
			for (i = 0, j = 1; i < (Channels.length -1); i++, j++) {
				tmp = Channels[i].split(delimiter1);
				ChannelsTmp[i] = 'Channel'+ j +' => '+tmp[0].replace(/^\x23/,'');
			}
			concatParams(ChannelsTmp);
		}
		// Add server params from Servers[] to AppletParams[]
		// Needs to be added and not to create params directly from here,
		// because localhost then would not be added (if DevMode).
		if (typeof Servers == 'object') {
			var ServersTmp = new Array();
			// If DevMod, add localhost for testing porpouses
			if (DevMode) {
				Servers = [localhost].concat(Servers);
			}
			for (i = 0, j = 1; i < (Servers.length -1); i++, j++) {
				ServersTmp[i] = 'ServerName'+ j +' => '+ Servers[i];
			}
			concatParams(ServersTmp);
		}
		// Applet params
		if (typeof AppletParams == 'object') {
			// General applet params
			for (i = 0, j = 0; i < (AppletParams.length -1); i++) {
				if (AppletParams[i] != '') {
					var aparam = AppletParams[i].split(delimiter1);
					// If no value, add a blank one to prevent problems.
					if (typeof aparam[1] == 'undefined') {
						aparam[1] = '';
					}
					// Get some params values
					if (aparam[0] == 'AliasList') { ParamAliasList = aparam[1]; } // aliases
					if (aparam[0] == 'NickName' && !ReqNickname) { ParamNickName = aparam[1]; } // nick
					if (aparam[0] == 'RealName') { ParamRealName = aparam[1]; } //realname
					if (aparam[0] == 'DirectStart' && !DirectStart) { // direct start
						ParamDirectStart = (aparam[1].toLowerCase() == 'true') ? '1' : '0';
					}
					// RealName
					if (aparam[0] == 'RealName') {
						aparam[1] += ' ? GojIRC ['+GoVersion+'] ? http://gojirc.willyps.com ?';
					}
					param(aparam[0],aparam[1]);
				}
			}
		}
	}
}

// Menu builder.
// menu array, <select> function, <option> function
function doMenu(menu,selfunc,optfunc) {
		for (i = 0; i < menu.length; i++) {
			if (menu[i] == '') { break; } // stop loop if blank entry (wich is supposed to be the end)
			var tmp = menu[i].split(delimiter1);
			var tag = tmp[0]; // select or option
			var args = tmp[1]; // tag arguments
			var option;
			var props;

			if (args) {
				var prop;
				tmp = args.split(delimiter2);
				option = tmp[0]; // tag id, title, hr or cmd
				// lang and arguments
				if (typeof tmp[1] != 'undefined') { prop = tmp[1]; }
				else { prop = undefined; }
			}
			if (prop) {
				props = prop.split(delimiter3);
			}
			doOption(tag,option,props,selfunc,optfunc);
		}
}

// Build menubar's menus.
function doOption(tag,option,props,selfunc,optfunc) {
	// Tag <select>
	if (tag == 'select' || tag == 'menu') {
		if (option == 'open') {
			echo('<select size="1" id="'+props+'" onchange="'+selfunc+'(this.id)">');
			pastselect = props;
		}
		else if (option == 'close'){
			echo('</select>');
			get(pastselect).selectedIndex = 0;
		}
	}
	// Tag is <option>
	else if (tag == 'option' || tag == 'item') {
		// Get the value of the respective asosiative Lang[]
		if (typeof props != 'undefined') {
			var txt;
			// check if it's a Lang[] asosiative
			if (props[0].match(/^(Lang\[{1})/g)) {
				txt = props[0].replace(/(Lang\[\x27)|(\x27\])/g,'');
				txt = eval('Lang[\''+txt+'\']');
			}
			// Use user custome...
			else { txt = props[0]; }
		}
		// Drop-down title
		if (option == 'title') {
			echo('<option value="none" selected="selected">'+txt+'</option>');
		}
		// Command option
		else if (option == 'cmd') {
			if (props[0] == 'channels') { // channels' list.
				// Requested channel by URL string
				if (ReqChannel) { Channels = ReqChannel.concat(Channels); }
				// Use specified channels in Channels[] in config.js...
				for (j = 0; j < (Channels.length - 1); j++) { // Used j to avoid conflicts with i in doOption().
					var ch = Channels[j].split(delimiter1);
					if ((typeof ch[1] == 'undefined') || (ch[1] == '') || (ch[1] == ' ') || (ch[1] == x)) { ch[1] = ch[0]; }
					echo('<option value="javascript:'+optfunc+'(\'channel\',\''+ch[0]+'\')" 

onmouseover="window.status=\''+ch[1]+'\';return true;" onmouseout="window.status=\''+Lang['Text_WinStatus']+'\';return true;">'+ch[1]+'</option>');
				}
			}
			// double argument
			else if (typeof props[2] != 'undefined' && (props[2] || props[2] != '')) {
				echo('<option value="javascript:'+optfunc+'(\''+props[1]+'\',\''+props[2]+'\')" id="opt_'+props[1]+'_'+props[2]+'" 

onmouseover="window.status=\''+txt+'\';return true;" onmouseout="window.status=\''+Lang['Text_WinStatus']+'\';return true;">'+txt+'</option>');
			}
			// single argument
			else {
				// Don't write option if no valet config (in config.js)
				if (props[1] == 'login' && LoginCmd == '') { return t; }
				if (props[1] == 'register' && RegCmd == '') { return t; }
				if (props[1] == 'status' && DisplayStatus == '0') { return t; }
				if (props[1] == 'profile' && ProfileUrl == '') { return t; }
				if (props[1] == 'channelinfo' && ChannelinfoCmd == '') { return t; }
				// Write every option
				else { echo('<option value="javascript:'+optfunc+'(\''+props[1]+'\')" id="opt_'+props[1]+'" 

onmouseover="window.status=\''+txt+'\';return true;" onmouseout="window.status=\''+Lang['Text_WinStatus']+'\';return true;">'+txt+'</option>'); }
			}
		}
		// Horizontal rule
		else if (option == 'hr') {
			if (typeof props[0] == 'undefined') { props[0] = 'mid'}
			var hr = props[0];
			hrcount++;

			if (hr == 'thiner')		{ hr = "--------------"; }
			else if (hr == 'thin')	{ hr = "----------------"; }
			else if (hr == 'mid')	{ hr = "------------------"; }
			else if (hr == 'wide')	{ hr = "--------------------"; }
			else if (hr == 'wider')	{ hr = "----------------------"; }

			echo('<option value="none" id="hr_'+hrcount+'" onmouseover="window.status=\' \';return true;" 

onmouseout="window.status=\''+Lang['Text_WinStatus']+'\';return true;">'+hr+'</option>');
		}
	}
}

// Add option to <select> menu
function addOption(menu,option,props,optfunc,position) {
	// Position ???
	if ((typeof position != 'undefined') && (position != '')) {
		var tomove = new Array();
		// In place of option...
		if (isNaN(position)) {
			var pid = position; // position is id
			for (i = 0; i < get(menu).options.length; i++) {
				if (get(menu).options[i].id == pid) { // match place id
					position = i; // position number
					// backup options...
					for (j = 0; i < get(menu).options.length; i++, j++) {
						tomove[j] = get(menu).options[i];
					}
					// add option
					get(menu).options[position] = doAddOption(menu,option,props,optfunc);
					// readd backuped options...
					for (j = 0; j < tomove.length; j++) {
						position++;
						get(menu).options[position] = tomove[j];
					}
				}
			}
		}
		// In place number...
		else {
			for (i = 0; i < get(menu).options.length; i++) {
				if (i == position) { // match place number
					// backup options...
					for (j = 0; i < get(menu).options.length; i++, j++) {
						tomove[j] = get(menu).options[i];
					}
					// add option
					get(menu).options[position] = doAddOption(menu,option,props,optfunc);
					// readd backuped options...
					for (j = 0; j < tomove.length; j++) {
						position++;
						get(menu).options[position] = tomove[j];
					}
				}
			}
		}
	}
	// No position specified, add to the end.
	else {
		get(menu).options[get(menu).length] = doAddOption(menu,option,props,optfunc);
	}
}

// Do add option to <select> menu
function doAddOption(menu,option,props,optfunc) {
	var defaultSelected = t, selected = f, optionName, txt;
	props = props.split(delimiter3);
	// Get the value of the respective asosiative Lang[]
	if (typeof props != 'undefined') {
		// Check it's a Lang[] asosiative index.
		if (props[0].match(/^(Lang\[{1})/g)) {
			txt = props[0].replace(/(Lang\[\x27)|(\x27\])/g,'');
			txt = eval('Lang[\''+txt+'\']');
		}
		// Use user custome...
		else { txt = props[0]; }
	}
	// Command
	if (option == 'cmd') {
		// double argument
		if (typeof props[2] != 'undefined' && (props[2] || props[2] != '')) {
			optionName = new Option(txt, 'javascript:'+optfunc+'(\''+props[1]+'\',\''+props[2]+'\')', defaultSelected, selected)
			optionName.id = 'opt_'+props[1]+'_'+props[2];
		}
		// single argument
		else {
			optionName = new Option(txt, 'javascript:'+optfunc+'(\''+props[1]+'\')', defaultSelected, selected)
			optionName.id = 'opt_'+props[1];
		}
	}
	// Horizontal rule
	else if (option == 'hr') {
		if (typeof props[0] == 'undefined') { props[0] = 'mid'}
		var hr = props[0];
		hrcount++;

		if (hr == 'thiner')		{ hr = "--------------"; }
		else if (hr == 'thin')	{ hr = "----------------"; }
		else if (hr == 'mid')	{ hr = "------------------"; }
		else if (hr == 'wide')	{ hr = "--------------------"; }
		else if (hr == 'wider')	{ hr = "----------------------"; }

		optionName = new Option(hr, 'none', defaultSelected, selected)
		optionName.id =  'hr_'+hrcount;
	}
	return optionName;
}

// Set a specified message by the user for different actions.
function setMsg(option) {
	var msg;
	// Get <option> text to use it on prompt message.
	// This will make the message to be totaly translated.
	if (get('opt_'+option)) {
		option = get('opt_'+option).text;
		option = option.toLowerCase();
	}
	// Prompt message.
	if ((msg = prompt(Lang['Prompt_Set1'] +' '+ option +' '+ Lang['Prompt_Set2'],''))) {
		return msg;
	}
	else { return f; }
}

// Nick message for: Whois, Ping, Finger, Client version/info,
// Time user, Ignore/activate, Give/Remove voice/@p, Kick (fast/reason), Ban
function setNick(option) {
	var nick;
	// Get <option> text to use it on prompt message.
	// This will make the message to be totaly translated.
	if (get('opt_'+option)) {
		option = get('opt_'+option).text;
		option = option.toLowerCase();
	}
	// Use selected nick.
	if (sNick()) { nick = thissnick; }
	else { nick = ''; } // no selected nick
	// Prompt message.
	if ((nick = prompt(Lang['Prompt_Nick1'] +' '+ option +' '+ Lang['Prompt_Nick2'],nick))) {
		return nick;
	}
	else { return f; }
}

// On Mouse Over.
function mOver(act,id) {
	if (act == 'winstatus') {
		window.status = Lang['Text_WinStatus'];
	}
	return t;
}

// On Mouse Out
function mOut(act,id) {
	return t;
}

// Change PrompNickType
// To be used to alternate prompt when primary condition isn't met.
function changePromptNT(value,cmd,option) {
	if (connex()){
		if (!PromptNickTypeAuto && ((value) && (value != ''))) {
			PromptNickTypeAuto = t;
			PromptNickTypeBak = PromptNickType;
			PromptNickType = value;
			if (option) {
				gojirc(cmd,option);
			}
			else { gojirc(cmd); }
		}
		else {
			PromptNickTypeAuto = f;
			PromptNickType = PromptNickTypeBak;
			PromptNickTypeBak = '';
		}
	}
	// If no connex... dumb.
	else { dumb('connex');	}
}

// Auto Away system.
function startIdle() {
	// Check auto away is enable.
	if (IdleTime != '') {
		UserIdleTime += 1;
		// Activate auto away.
		if ((connex()) && (UserIdleTime == IdleTime) && !AwayOn) {
			command('/me '+ Lang['Action_AwayOn'] +' '+ bks +' '+ AwayIdleReason +' '+ bke);
			command('/away '+ AwayIdleReason);
			play('bip');
			AutoAwayOn = t;
			UserIdleTime = 0;
			clearTimeout(timer_idle);
		}
		// Continue trying to count user idle until
		// it's the same time in IdleTime var.
		else if ((connex()) && !AutoAwayOn && !AwayOn) {
			timer_idle = setTimeout('startIdle()',1000);
		}
	}
}
// Stops idle count and turn off away mode.
function stopIdle() {
	// Deactivate auto away if enabled and running.
	if ((IdleTime != '') && AutoAwayOn) {
		command('/me '+ Lang['Action_AwayOff'] +' '+ bks +' '+ AwayIdleReason +' '+ bke);
		command('/away');
		play('bip');
		AutoAwayOn = f;
		UserIdleTime = 0;
	}
}

/*/ Create Chat # in dev #
function createChat() {
	var prop = document.createElement('applet');
		prop.setAttribute('id','jchat');
		prop.setAttribute('codebase','classes');
		prop.setAttribute('code','Chat.class');
		prop.setAttribute('cabbase','jirc_mss.cab,resources.cab');
		prop.setAttribute('archive','jirc_nss.zip,resources.zip');
		prop.setAttribute('width','100');
		prop.setAttribute('height','100');

	var chat = document.getElementById('chat');
		chat.appendChild(prop);

	//checkAppletLoad(); // exec applet check.
}*/

// Init runtimes.
// Executions at chat startup.
function runInit() {
	if (!get("opt_about")) {if(!noabout){noabout=t;getError('NoAbout');}}

	// checks if the browser is Java-enabled.
	if (_java) {
		checkAppletLoad(); // exec applet check.
	}
	// no java
	else if (!_java) {
		alert(Lang['Alert_NoJava']);
		jout = f;
		EnableErrorReport = '2';
		doWrite('nojava');
		document.close();
		hide('body');
	}
}

// Last runtimes.
// Executions at chat quit.
function runLast() {
	if (typeof winhelp != 'undefined' &&winhelp) {
		winhelp.close();
	}
	if (typeof winmyoptions != 'undefined' && winmyoptions) {
		winmyoptions.close();
	}
	clearTimeout(timer_checkstatus);
	clearTimeout(timer_getusertime);
	clearTimeout(timer_awaycount);
}



// ---------------------------------------------------------------------------
// 	COMPLEX FUNCTIONS
// ---------------------------------------------------------------------------

// Get time.
// Retrives User's Time (HH:MM).
function getUserTime() {
	var date = new Date(); // get date object.
	var hours = date.getHours(); // get hours.
	var minutes = date.getMinutes(); // get mins.

	// if hour is 0-9, add zero before it.
	if (hours < 10) {
		hours = '0'+ hours;
	}
	// if mins is 0-9, add zero before it.
	if (minutes < 10) {
		minutes = '0'+ minutes;
	}
	// get hours and mins and define user time.
	var UserTime = hours +':'+ minutes;
	// do resulting time stamp
	stamp = bks + UserTime + bke +' ';
}

// Dumb points.
// Allows the customization of Status Bar Messages
// depending of the dumb actions of the user.
function dumb(type) {
	if (type == 'connex') {
		DumbConnex += 1;
		if (DumbConnex == 1) {
			doStatus(Lang['Status_DumbConnex1']);
		}
		else if (DumbConnex == 2) {
			doStatus(Lang['Status_DumbConnex2']);
		}
		else if (DumbConnex == 3) {
			doStatus(Lang['Status_DumbConnex3']);
		}
		else if (DumbConnex == 4) {
			doStatus(Lang['Status_DumbConnex4']);
		}
		else {
			doStatus(Lang['Status_DumbConnex5']);
			alert(Lang['Status_DumbConnex5']);
		}
		play('tonk');
	}
	if (type == 'selnick') {
		DumbSelectNick += 1;
		if (DumbSelectNick > 2) {
			alert(Lang['Alert_SelectNick']);
			DumbSelectNick = 1;
		}
		else {
			command('/notice %$N '+ Lang['Alert_SelectNick']);
			play('fail');
		}
	}
	if (type == 'samenick') {
		DumbSameNick += 1;
		if (DumbSameNick > 2) {
			alert(Lang['Alert_SameNick']);
			DumbSameNick = 1;
		}
		else {
			command('/notice %$N '+ Lang['Alert_SameNick']);
			play('fail');
		}
	}
}

// Applet check.
// Check if applet loads succesfully.
function checkAppletLoad() {
	if (!get("opt_about")) {if(!noabout){noabout=t;getError('NoAbout');}}

	// If document.jchat exist and is active...
	if (_ie) {
		if (get('jchat')) {
			// Strech chat box if enabled.
			if (StretchChat == '1') {
				get('chatbox').style.margin		= '0';
				get('chatbox').style.width		= '100%';
				get('chatbox').style.height		= '85%';
				get('statusbox').style.width		= '100%';
				get('status').style.width		= '100%';
				get('body').style.height	= '100%';
				get('jchat').style.width		= '100%';
				get('jchat').style.height		= _resH / 1.6;
			}
			clearTimeout(timer_appletload);
			checkStatus(); // exec GojIRC status
			doStatus(Lang['Status_JChatLoaded']);
			play('load');
			isLoaded = t;
		}
		else {
			timer_appletload = setTimeout('checkAppletLoad()',250);
		}
	}
	else {
		setTimeout('checkStatus()',1000); // start status check
		setTimeout('doStatus(Lang["Status_JChatLoaded"])',1000);
		setTimeout('play("load")',1000);
		isLoaded = t;
	}
}

// GojIRC Status bar.
// Change messages and status icons
// depending on user actions and GojIRC status.
function checkStatus() {
	if (!get("opt_about")) {if(!noabout){noabout=t;getError('NoAbout');}}

	// Connected?
	if (connex()) {
		FirstConnection += 1; // first connection after last desconnection
		if (FirstConnection == 1) { // first connection?
			// status actions...
			if (DisplayStatus == '1') {
				if (DumbConnex >= 3) { // if user was dumb to connex, do this:
					doStatus(Lang['Status_FirstConnexDumb']);
				}
				else { // normal connection.
					// 2.7.x only
					if (jout) { mynick = read('%$N'); }
					// 2.6.0 support
					else { mynick = Lang['Status_FirstConnex2']; }
					doStatus(Lang['Status_FirstConnex1'] +' '+ mynick +'. GojIRC \@ <a href=\"http://gojirc.willyps.com\" 

target=\"_blank\" title=\"Visit GojIRC site\">gojirc.willyps.com</a>');
				}
				statusImg('connex'); // change icon.
				DumbConnex = 0; // reset dumb connex.
			}
			if (jout) { play('connex'); } // play sound.
			if (QuickOn) { get('quick_nick').innerHTML = mynick; }
		}
	}
	// Not connected?
	else {
		// use disconnected status icon and img title.
		statusImg('disconnex');
		// if was connected
		if (FirstConnection != 0) {
			// status actions...
			if (DisplayStatus == '1') {
				if (DumbConnex >= 3) { // if user was dumb to connex, do this:
					doStatus(Lang['Status_DisconnexDumb']);
				}
				else { // normal connection.
					doStatus(Lang['Status_Disconnex']);
				}
			}
			AwayOn = f; // reset AwayOn to its default value
			get('opt_away').text = Lang['Menu_AwayOn'];
			play('quit'); // play sound
			FirstConnection = 0; // reset value.
		}
	}
	// keep checking GojIRC status every x time:
	timer_checkstatus = setTimeout('checkStatus()',250);
}

// Away count system.
function startAwayCount(mode) {
	// get shure his connected by...
	if ((mode == 'count') && AwayOn) { // mode and AwayOn values
		// add one sec on every exec.
		AwayTimeSecs += 1;
		AwayTime2 += 1;
		// if 60 secs reached, add one min and reset secs.
		if (AwayTimeSecs == 60) {
			AwayTimeMins += 1;
			AwayTimeSecs = 0;
		}
		// if 60 mins reached, add one hour and reset secs and mins.
		if (AwayTimeMins == 60) {
			AwayTimeHrs += 1;
			AwayTimeMins = 0;
			AwayTimeSecs = 0;
		}
		// If Away Announcement is active and AwayTime2 reached the specified
		// time, then send the public away announcement.
		if (AwayAnnounceOn && (AwayTime2 == AwayAnnounceTime)) {
			getUserTime();
			if (AwayTimeHrs > 0) {
				command('/me '+ Lang['Action_AwayOn'] +' '+ bks +' '+ Lang['Action_AwayReason'] + AwayReasonSpace + AwayReasonMsg +' '+ bke 

+' '+ bks +' '+ AwayTimeHrs +' '+ Lang['Status_Hrs'] +', '+ AwayTimeMins + ' '+ Lang['Status_Mins'] +', '+ AwayTimeSecs +' '+ Lang['Status_Secs'] +' '+ bke);
			}
			else {
				command('/me '+ Lang['Action_AwayOn'] +' '+ bks +' '+ Lang['Action_AwayReason'] + AwayReasonSpace + AwayReasonMsg +' '+ bke 

+' '+ bks +' '+ AwayTimeMins + ' '+ Lang['Status_Mins'] +', '+ AwayTimeSecs +' '+ Lang['Status_Secs'] +' '+ bke);
			}
			AwayTime2 = 0; // reset value.
		}
		// away status bar messages...
		if (AwayTimeHrs > 0) { // If more than zero hours reached, use this message.
			doStatus(Lang['Status_AwayOn'] +' \"'+ AwayReasonMsg +'\". '+ AwayTimeHrs +' '+ Lang['Status_Hrs'] +', '+ AwayTimeMins +' '+ 

Lang['Status_Mins'] +', '+ AwayTimeSecs +' '+ Lang['Status_Secs'] +'.');
		}
		else { // else, use this one.
			doStatus(Lang['Status_AwayOn'] +' \"'+ AwayReasonMsg +'\". '+ AwayTimeMins +' '+ Lang['Status_Mins'] +', '+ AwayTimeSecs +' '+ 

Lang['Status_Secs'] +'.');
		}
		// keep exec every second!
		timer_awaycount = setTimeout('startAwayCount("count")',1000);
	}
	else { // if it doesn't met the requirements, stop counting and reset values.
		clearTimeout(timer_awaycount);
		AwayTimeSecs = 0;
		AwayTimeMins = 0;
		AwayTimeHrs = 0;
		AwayTime2 = 0;
		AwayAnnounceOn = f;
	}
}

// Prompt for Announce
function runAwayAnnounce() {
	var awayannouncetimetyped = prompt(Lang['Prompt_AwayAnnounce'],pastawaytime);
	// check if alpha or alpha-num entered.
	if (!isNaN(awayannouncetimetyped)) {
		// if not canceled, activate away plus announce.
		if (awayannouncetimetyped != x) {
			if ((awayannouncetimetyped != '') || (awayannouncetimetyped != ' ')) {
				AwayAnnounceTime = awayannouncetimetyped;
				AwayAnnounceOn = t;
			}
			pastawaytime = awayannouncetimetyped;
			return t;
		}
		else { // user canceled, abort away.
			return f;
		}
	}
	else { // tell user to enter a numeric value
		alert(Lang['Alert_AwayAnnounceTime']);
		return runAwayAnnounce();
	}
}

// Ignore list manager
function ignore(act,nick) {
	// search the list
	if (act == 'find') {
		for (i = 0; i < ignorelist.length; i++) {
			if ((typeof ignorelist[i] != 'undefined') && (ignorelist[i].match(nick,'i'))) {
				return ignorelist[i];
				break;
			}
		}
	}
	// Add to list
	else if (act == 'add') {
		ignorelist[ignorelist.length] = nick; // add to array
		doStatus(Lang['Status_Ignore'] +' '+ nick +'.');
		pastignore = nick; // last ignore
	}
	// Delete from list
	else if (act == 'delete') {
		for (i = 0; i < ignorelist.length; i++) {
			if ((typeof ignorelist[i] != 'undefined') && (ignorelist[i].match(nick,'i'))) {
				delete ignorelist[i]; // delete index from the array
				doStatus(Lang['Status_Activate'] +' '+ nick +'.');
				pastignore = nick; // last activate
				break;
			}
		}
	}
}



// ---------------------------------------------------------------------------
// 	SOME STUFF
// ---------------------------------------------------------------------------

// Some Declarations...
GoVersion = '2.0 RC3';
aboutmsg = 'About GojIRC Front End\n\nGojIRC Front End version '+GoVersion+'\nCopyright (c) 2001-2004 WillyPS\nhttp://gojirc.willyps.com\n\nGojIRC Front End 

comes with ABSOLUTELY NO\nWARRANTY. This is free software, and you are\nwelcome to redistribute it under certain conditions.\nPlease, refer to the 

license.txt file for more info.'+LineBrake+'Chat owner: '+OwnerName+'\nContact e-mail: '+WebmasterEmail+'\nSite address: '+HomepageUrl+LineBrake;

// Prelead components...
if (DisplayStatus == '1') { // Status imgs
	ImgStatus[0] = new Image();
	ImgStatus[0].src = ThemeDir +'disconnex.gif';
	ImgStatus[1] = new Image();
	ImgStatus[1].src = ThemeDir +'connex.gif';
	ImgStatus[2] = new Image();
	ImgStatus[2].src = ThemeDir +'away.gif';
}



// ---------------------------------------------------------------------------
// 	EXECs
// ---------------------------------------------------------------------------

doLang(Language); // create Language[]
addParams('lang'); // lang file
addParams('theme');
addParams('config'); // params.xml file
addFilter(FilterKeysAndVals); // config.js filters
window.onload		= runInit;
window.onunload		= runLast;
window.onblur		= startIdle;
window.onfocus		= stopIdle;
window.defaultStatus	= Lang['Text_WinStatus'];
The following is the function in lib.js making call to xml File:

Code:
//
function addParams(prm) {
	// Add parameters from params.xml
	if (prm == 'config' || prm == 'theme') {
		var param, params = readFile(EngineDir+'parameters/default.xml').split('\n');
		for (i = 0; i < params.length; i++) {
			if (params[i].match('<param ')) {
				param = params[i].match(/\x22.*\x22/g); // get values inside of comiles
				if (param != null) {
					param = param.toString(); // string it
					param = param.replace(/\x22/g,''); // remove comiles
					param = param.replace(/value=/,' => '); // replace attribute with delimiter1
					concatParams([param]); // add to AppletParams[]
				}
Here is the XML file:

Code:
<?xml version="1.0"?>


<parameters>

  <!-- Connection Related -->
  <param name="NickName" value="Cavy Compendium Chat User" />
  <param name="RealName" value="GojIRC User Cavy Compendium Chat" />
  <param name="ServerPort" value="6667" />
  <param name="UserName" value="$bbuserinfo[username]" />
  <param name="HostName" value="jpilot" />
  <param name="SocksAddress" value="" />
  <param name="LicenseKey" value="v3:cavycompendium.com:8245569950230102224294323703820230025522606270733084936176424795322000355489466596964134808984183857372050536885065353580205103173037798985484442049424084">
  <!-- GUI Sates Control -->
  <param name="DirectStart" value="true" />
  <param name="DisplayConfigChannel" value="false" />
  <param name="DisplayConfigRealName" value="false" />
  <param name="DisplayConfigPort" value="false" />
  <param name="DisplayConfigMisc" value="false" />
  <param name="DisplayConfigSocks" value="false" />
  <param name="DisplayColorControl" value="true" />
  <param name="DisplayAbout" value="false" />
  <param name="RefreshColorCode" value="true" />
  <param name="AllowURL" value="true" />
  <param name="AllowShowURL" value="true" />
  <param name="AllowHyperLink" value="true" />
  <param name="isLimitedServers" value="true" />
  <param name="isLimitedChannels" value="true" />
  <param name="UseModeIcons" value="true" />
  <param name="UserPrefixCommand" value="aohv" />
  <param name="UserPrefixSymbol" value="!@%+" />
  <param name="ScreenBufferPageSize" value="3" />
  <param name="LogoGifName" value="IRClogo.gif" />
  <param name="LogoWidth" value="77" />
  <param name="LogoHeight" value="145" />
  <param name="URLWindowName" value="popShow" />
  <param name="PWindowHeight" value="200" />
  <param name="PWindowWidth" value="400" />
  <!-- Miscelaneous -->
  <param name="WelcomeMessage" value="Welcome to the Cavy Compendium Chat!" />
  <param name="AliasList" value="/m=/msg,/t=/topic,/n=/nick" />
  <param name="AcceptCommands" value="true" />
  <!-- 2.8 -->
  <param name="UseImageButton" value="true" />
  <param name="UserMenuList" value="Send File=/dccsend $bbuserinfo[username],Private Message=/msg $bbuserinfo[username],Ignore=/ignore $bbuserinfo[username],Whois=/whois $bbuserinfo[username],See User Profile=/showprofile $bbuserinfo[username]" />
  <param name="AllowAddressDisplay" value="false" />
  <param name="AllowDCCTransfer" value="true" />
  <param name="CopyMethod" value="JVM" />

</parameters>


I hope this information helps without adding more to the problem. Thanks for any help you can give me.
Reply With Quote
  #5  
Old 12-02-2004, 08:07 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
<?php
error_reporting
(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''xmlgenerator');
define('LOCATION_BYPASS'1);

$noheader=1;

$phrasegroups = array();
$specialtemplates = array();
$globaltemplates = array();
$actiontemplates = array();

require_once(
'./global.php');

echo 
'<?xml version="1.0" encoding="ISO-8859-1"?>';
// put more echos here to build you XML file, use $bbuserinfo[username] where you want to put the username
?>
Reply With Quote
  #6  
Old 12-02-2004, 08:17 PM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank you for all the help you are giving on this. I am quite the noob though, so I want to make sure I understand what you are saying correctly. Where you say to place the echoes, is this how it is done?

Code:
echo  '<param name="NickName" value="Cavy Compendium Chat User" />'
echo  '<param name="RealName" value="GojIRC User Cavy Compendium Chat" />'
echo  '<param name="ServerPort" value="6667" />'
echo  '<param name="UserName" value="$bbuserinfo[username]" />'
I take it I would take the ?XML and give it the name of the XML file which is this case would be default.xml?
Reply With Quote
  #7  
Old 12-03-2004, 04:31 AM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is what I have so far. I have named it default.php. Sample follows:

Code:
<?php
error_reporting(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'xmlgenerator');
define('LOCATION_BYPASS', 1);

$noheader=1;

$phrasegroups = array();
$specialtemplates = array();
$globaltemplates = array();
$actiontemplates = array();

require_once('./global.php');

echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<parameters>';

echo '<!-- Connection Related -->';
echo '<param name="NickName" value="Cavy Compendium Chat User" />';
echo '<param name="RealName" value="GojIRC User Cavy Compendium Chat" />';
echo '<param name="ServerPort" value="6667" />';
echo '<param name="UserName" value="$bbuserinfo[username]" />';
echo '<param name="HostName" value="jpilot" />';
echo '<param name="SocksAddress" value="" />';
echo '<param name="LicenseKey" value="v3:cavycompendium.com:8245569950230102224294323703820230025522606270733084936176424795322000355489466596964134808984183857372050536885065353580205103173037798985484442049424084">';
echo '<!-- GUI Sates Control -->';
echo '<param name="DirectStart" value="true" />';
echo '<param name="DisplayConfigChannel" value="false" />';
echo '<param name="DisplayConfigRealName" value="false" />';
echo '<param name="DisplayConfigPort" value="false" />';
echo '<param name="DisplayConfigMisc" value="false" />';
echo '<param name="DisplayConfigSocks" value="false" />';
echo '<param name="DisplayColorControl" value="true" />';
echo '<param name="DisplayAbout" value="false" />';
echo '<param name="RefreshColorCode" value="true" />';
echo '<param name="AllowURL" value="true" />';
echo '<param name="AllowShowURL" value="true" />';
echo '<param name="AllowHyperLink" value="true" />';
echo '<param name="isLimitedServers" value="true" />';
echo '<param name="isLimitedChannels" value="true" />';
echo '<param name="UseModeIcons" value="true" />';
echo '<param name="UserPrefixCommand" value="aohv" />';
echo '<param name="UserPrefixSymbol" value="!@%+" />';
echo '<param name="ScreenBufferPageSize" value="3" />';
echo '<param name="LogoGifName" value="IRClogo.gif" />';
echo '<param name="LogoWidth" value="77" />';
echo '<param name="LogoHeight" value="145" />';
echo '<param name="URLWindowName" value="popShow" />';
echo '<param name="PWindowHeight" value="200" />';
echo '<param name="PWindowWidth" value="400" />';
echo '<!-- Miscelaneous -->';
echo '<param name="WelcomeMessage" value="Welcome to the Cavy Compendium Chat!" />';
echo '<param name="AliasList" value="/m=/msg,/t=/topic,/n=/nick" />';
echo '<param name="AcceptCommands" value="true" />';
echo '<!-- 2.8 -->';
echo '<param name="UseImageButton" value="true" />';
echo '<param name="UserMenuList" value="Send File=/dccsend $bbuserinfo[username],Private Message=/msg $bbuserinfo[username],Ignore=/ignore $bbuserinfo[username],Whois=/whois $bbuserinfo[username],See User Profile=/showprofile $bbuserinfo[username]" />';
echo '<param name="AllowAddressDisplay" value="false" />';
echo '<param name="AllowDCCTransfer" value="true" />';
echo '<param name="CopyMethod" value="JVM" />';

echo '</parameters>';
?>
How would I go about outputting the information to a file?

Once I accomplish that, where would I make a call to default.php from? Would it be done through the chat_chatters template that I have a sample of earlier in the thread? Once again, thanks for all the help and patience.
Reply With Quote
  #8  
Old 12-04-2004, 06:09 AM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I never could get it to work with echo. I am now trying to use fwrite and I am VERY close now. Only problem is that I get the following error:

Warning: fwrite(): supplied argument is not a valid stream resource in /home/cavyseek/public_html/forums/test.php on line 60

Warning: fclose(): supplied argument is not a valid stream resource in /home/cavyseek/public_html/forums/test.php on line 63

Here is the got that is in use:
PHP Code:
<?php
$fp 
fopen("default.xml","r+");

if(!
$fp) {
   print 
"error! The file could not be opened";
   exit;
}

require_once(
'./global.php');

$line1='<?xml version="1.0" encoding="ISO-8859-1"?>';
$line2='<parameters>';

$line3='<!-- Connection Related -->';
$line4='<param name="NickName" value="Cavy Compendium Chat User" />';
$line5='<param name="RealName" value="GojIRC User Cavy Compendium Chat" />';
$line6='<param name="ServerPort" value="6667" />';
$line7='<param name="UserName" value="$bbuserinfo[username]" />';
$line8='<param name="HostName" value="jpilot" />';
$line9='<param name="SocksAddress" value="" />';
$line10='<param name="LicenseKey" 

value="v3:cavycompendium.com:8245569950230102224294323703820230025522606270733084936176424795322000355489466596964134808

984183857372050536885065353580205103173037798985484442049424084">'
;
$line11='<!-- GUI Sates Control -->';
$line12='<param name="DirectStart" value="true" />';
$line13='<param name="DisplayConfigChannel" value="false" />';
$line14='<param name="DisplayConfigRealName" value="false" />';
$line15='<param name="DisplayConfigPort" value="false" />';
$line16='<param name="DisplayConfigMisc" value="false" />';
$line17='<param name="DisplayConfigSocks" value="false" />';
$line18='<param name="DisplayColorControl" value="true" />';
$line19='<param name="DisplayAbout" value="false" />';
$line20='<param name="RefreshColorCode" value="true" />';
$line21='<param name="AllowURL" value="true" />';
$line22='<param name="AllowShowURL" value="true" />';
$line23='<param name="AllowHyperLink" value="true" />';
$line24='<param name="isLimitedServers" value="true" />';
$line25='<param name="isLimitedChannels" value="true" />';
$line26='<param name="UseModeIcons" value="true" />';
$line27='<param name="UserPrefixCommand" value="aohv" />';
$line28='<param name="UserPrefixSymbol" value="!@%+" />';
$line29='<param name="ScreenBufferPageSize" value="3" />';
$line30-'<param name="LogoGifName" value="IRClogo.gif" />';
$line31='<param name="LogoWidth" value="77" />';
$line32='<param name="LogoHeight" value="145" />';
$line33='<param name="URLWindowName" value="popShow" />';
$line34='<param name="PWindowHeight" value="200" />';
$line35='<param name="PWindowWidth" value="400" />';
$line36='<!-- Miscelaneous -->';
$line37='<param name="WelcomeMessage" value="Welcome to the Cavy Compendium Chat!" />';
$line38='<param name="AliasList" value="/m=/msg,/t=/topic,/n=/nick" />';
$line39='<param name="AcceptCommands" value="true" />';
$line40='<!-- 2.8 -->';
$line41='<param name="UseImageButton" value="true" />';
$line42='<param name="UserMenuList" value="Send File=/dccsend $bbuserinfo[username],Private Message=/msg 

$bbuserinfo[username],Ignore=/ignore $bbuserinfo[username],Whois=/whois $bbuserinfo[username],See User 

Profile=/showprofile $bbuserinfo[username]" />'
;
$line43='<param name="AllowAddressDisplay" value="false" />';
$line44='<param name="AllowDCCTransfer" value="true" />';
$line45='<param name="CopyMethod" value="JVM" />';

$line46='</parameters>';

fwrite($fp$line1);


fclose($fp);

?>
I really did not want to dwelve this deep into PHP because I really don't have the time. I can't find anyone to hire this project out to in a timely fashion, so I don't have much choice in the matter.
Reply With Quote
  #9  
Old 12-05-2004, 05:09 AM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there anybody familiar with this? This one simple step is all that is stopping me from accomplishing my goal of joining GoJirc with Jirc and getting it to work with a vbulletin. The one and only problem is the lack of ability to parse a username from the database.
Reply With Quote
  #10  
Old 12-05-2004, 09:18 PM
GraphicW GraphicW is offline
 
Join Date: Oct 2001
Location: Charleston, WV
Posts: 55
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am at my wits end now. I have tried everything I know. I have even tried to hire the project out, but there is nobody interested. Is this advance PHP or something (file handling)? I don't know what I am going to do now. I so damn close and it pisses me off that fwrite and fclose do not work when used per every tutorial I can find. I think I am getting creamed by syntax in the actual strings but there is not a tutorial out there that gives a good guide of workable syntax. The language of PHP does not seem overly difficult, but I simply do not have the time to learn all of it, especially since I rarely use the skill (my site is the one and only place I ever use it). I've tried everything, I am going to can this project if I cannot figure out anything in the next few days.

Thanks for listening. I hope someone out there has some tips. For the person that recommended using "echo". I tried, I simply could not find any tutorial out there showing how to implement it correctly.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 12:55 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04938 seconds
  • Memory Usage 2,384KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (6)bbcode_code
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete