flashchat-6-0-8 and PHP fusion V7.02.03

Flashchat 6.0.8 and PHP-FUSION V7.02.03 Integration.
Works also with older version PHP-FUSION v7.02.01 in fact the script was created using this version then tested the version previously announced..

Download available PHP-FUSION v7.02.03

In the v7.01.04 and maybe lower the php-fusion team still used md5() hashed to encrypt the user_passoword, but in version 7.02.01 and over the encryption was updated for use of more secured hashes..
This is good, better protection overall..

  • Connect the usernames from database.
  • Super Admin becomes Admin in Flashchat 6.0.8
  • Admin user Without any privileges in PHP-FUSION becomes Moderator in Flashchat 6.0.8
  • Auto login when user is logged in PHP-FUSION V7 site.
  • Login to the chat and to the site using Flashchat login Form..
  • User banned cannot login the chat if is banned from the PHP-FUSION site itself..

The php files that we need to create are the following:

In the folder “/inc/cmses” create “fusion7_02_03CMS.php” will use this higher version because I created the script thinking in this specific version..

[php]
<?php
/*
* Integration fix by Neumann Valle aka utan, july 30, 2011
* original code and post at http://vcomputadoras.com/flashchat-6-0-8-php-fusionv7-02-03/
* where php-fusion used hash_hmac() for hashing passwords.
*
* */
ini_set(‘display_errors’, ‘OFF’);
error_reporting(E_ALL);

$fusion_root_path = realpath(dirname(__FILE__) . ‘/../../../’) . ‘/’;

require_once($fusion_root_path . ‘config.php’);

class FusionCMS {

var $userid;
var $loginStmt;
var $getUserStmt;
var $getUsersaltStmt;
var $getUsersStmt;

function FusionCMS()
{
$this->getUserStmt = new Statement(‘SELECT user_id AS id, user_name AS login, user_level FROM ‘.DB_PREFIX.’users WHERE user_id=? LIMIT 1’);
$this->getUsersStmt = new Statement(‘SELECT user_id AS id, user_name as login FROM ‘.DB_PREFIX.’users’);

$this->userid = NULL;

if (isset($_COOKIE[COOKIE_PREFIX."user"])) {
$cookie_vars = explode(‘.’, $_COOKIE[COOKIE_PREFIX."user"]);
$cookie_1 = is_numeric($cookie_vars[‘0’]) ? $cookie_vars[‘0’] : NULL;
$cookie_2 = (preg_match(‘/^[0-9a-z]{32}$/’, $cookie_vars[‘1’]) ? $cookie_vars[‘1’] : ”);

$this->userid = $cookie_1;
}

}

function isLoggedIn() {
return $this->userid;
}

function getRoles($group) {
$rv = ROLE_USER;

if ($group == 101)
{
$rv = ROLE_USER;
}

if ($GLOBALS[‘fc_config’][‘liveSupportMode’] && $group == 101)
{
$rv = ROLE_CUSTOMER;
}

if ($group == 102)
{
$rv = ROLE_MODERATOR;
}

if ($group == 103)
{
$rv = ROLE_ADMIN;
}

return $rv;

}

function getUserProfile($userid) {

if ($userid == SPY_USERID) $rv = NULL;

elseif ($user = $this->getUser($userid)) {

$rv = ($id = $this->isLoggedIn() && ($id == $userid)) ? ‘../edit_profile.php’ : ‘../profile.php?lookup=’ . $userid;

return $rv;
}
}

function getUser($userid) {

// if ($userid == SPY_USERID) return NULL;

$rv = NULL;

if(($rs = $this->getUserStmt->process($userid)) && ($rec = $rs->next())) {
$rec[‘roles’] = $this->getRoles($rec[‘user_level’]);
$rv = $rec;
}
return $rv;
}

function login($login, $password) {
$this->loginStmt = new Statement("SELECT * FROM ".DB_PREFIX."users WHERE user_name=’".$login."’");

$rs = $this->loginStmt->process();
$rec = $rs->next();

if ((hash_hmac($rec[‘user_algo’] , $password , $rec[‘user_salt’])) === $rec[‘user_password’])
{

if ($rec[‘user_status’]) return NULL; /* user is banned from the site */
$cookieExpiration = time() + 172800;

$key = hash_hmac($rec[‘user_algo’], $rec[‘user_id’].$cookieExpiration, $rec[‘user_salt’]);
$hash = hash_hmac($rec[‘user_algo’], $rec[‘user_id’].$cookieExpiration, $key );

$cookie_value = $rec[‘user_id’].".".$cookieExpiration.".".$hash;
setcookie(COOKIE_PREFIX."user", $cookie_value, $cookieExpiration, ‘/’, ”, ‘0’);

return $rec[‘user_id’];

}

}

function userInRole($userid, $role) {
if($user = $this->getUser($userid)) {
return ($user[‘roles’] == $role);
}
return false;
}

function logout() {

}

function getUsers() {

$rv = $this->getUsersStmt->process();
return $rv;

}

function getGender($userid) {
// ‘M’ for Male, ‘F’ for Female, NULL for undefined
return NULL;
}
}
$GLOBALS[‘fc_config’][‘db’] = array(
‘host’ => $db_host,
‘user’ => $db_user,
‘pass’ => $db_pass,
‘base’ => $db_name,
‘pref’ => DB_PREFIX . ‘fc_’
);

$GLOBALS[‘fc_config’][‘cms’] = new FusionCMS();

foreach($GLOBALS[‘fc_config’][‘languages’] as $k => $v) {
$GLOBALS[‘fc_config’][‘languages’][$k][‘dialog’][‘login’][‘moderator’] = ”;
}

?>
[/php]

Now we need to override “consts.php” located in the “install_files” folder with the new content .. copy paste everything overriding the old content..

[php]
<?php
/**
** Constants used for installation file.
**/

define(‘INC_DIR’, dirname(__FILE__) . ‘/../inc/’);//for config.php

define(‘NAVY_FILE_SIZE’, 1992);//necessary for check uploaded in binary mode

define(‘CHAT_ROOMS’, ‘The Lounge, Hollywood, Tech Talk, Current Events’);//default rooms

define(‘CONFIG_FILE’, INC_DIR . ‘config.php’);

define(‘INST_DIR’, ‘./install_files/’);

$cmss = array(
//’aedatingCMS’ => ‘aeDating 2.0/3.0 (FlashChat is built in to aeDating 3.x)’,
//’aedatingCMS2’=> ‘aeDating 2.0/3.0 (which only permits access to Gold members)’,
//’aedating4CMS’=> ‘aeDating 4.0’,
‘azdgCMS’ => ‘AZDG Dating Lite 2.1.2’,
‘cpgNukeCMS’ => ‘CPGNuke’,
‘cpgNukeDragonfly921CMS’ => ‘CPGNuke Dragonfly 9.2.1’,
‘datingProCMS’=> ‘Dating Pro’,
‘e107CMS’ => ‘e107 0.617’,
‘eMeetingCMS’ => ‘eMeeting’,
‘efriendsCMS497’ => ‘Alstrasoft E-friends 4.9.7’,
‘fusionCMS’ => ‘PHP Fusion 4.0.0’,
‘fusionCMS2’ => ‘PHP Fusion 5.0.1’,
‘fusion6CMS’ => ‘PHP Fusion 6’,
‘fusion7CMS’ => ‘PHP Fusion 7.01.04’,
‘fusion7_02_03CMS’ => ‘PHP Fusion 7.02.03’,
‘geeklogCMS’ => ‘GeekLog 1.3.9’,
‘joomlaCMS’ => ‘Joomla 1.1’,
‘ipbCMS’ => ‘Invision Power Board (IPB) 2.0.0’,
‘ipbCMS2’ => ‘Invision Power Board (IPB) 2.0.3’,
‘ipbCMS2’ => ‘Invision Power Board (IPB) 2.1.0’,
‘ipb30CMS’ => ‘Invision Power Board (IPB) 3.0.3’,
‘lunabyteCMS’ => ‘LunaByte / Enigma 1.3’,
‘mamboCMS’ => ‘Mambo 4.5.0’,
‘mamboCMS2’ => ‘Mambo 4.5.2’,
‘mambo465CMS’ => ‘Mambo 4.6.5’,

‘mdproCMS’ => ‘MD-Pro 1.0.7’,
‘mdpro1081CMS’ => ‘MD-Pro 1.0.81’,
‘moodleCMS’ => ‘Moodle’,
‘moodle16CMS’ => ‘Moodle 1.6’,
‘moodle17CMS’ => ‘Moodle 1.7’,
‘moodle18CMS’ => ‘Moodle 1.8’,
‘moodle19CMS’ => ‘Moodle 1.9’,
‘osdateCMS’ => ‘osDate Dating System’,
‘phpBB2CMS’ => ‘phpBB 2.0.10 and above’,
‘phpBB3CMS’ => ‘phpBB 3.0.B2 and above’,
‘phpBB307CMS’ => ‘phpBB 3.0.2 and above’,
‘phpBB305CMS’ => ‘phpBB 3.0.5 and above’,
//’phpNukeModCMS’ => ‘PHP-Nuke 7.3(module version)’,
‘phpNukeCMS73’ => ‘PHP-Nuke 7.3’,
‘phpNukeCMS76’ => ‘PHP-Nuke 7.6’,
‘phpNukeCMS78’ => ‘PHP-Nuke 7.8′,
//’postNukeModCMS’ => ‘PostNuke 0.726-3(module version)’,
‘postNukeCMS’ => ‘PostNuke 0.726-3’,
‘postNukeCMS0762’ => ‘PostNuke 0.762’,
‘phorumCMS518’ => ‘Phorum 5.1.8’,
‘phorumCMS527’ => ‘Phorum 5.2.7’,
‘smfCMS’ => ‘Simple Machines 1.0’,
‘smfCMS2’ => ‘Simple Machines 1.1’,
‘smfCMS20’ => ‘Simple Machines 2.0’,
‘ubbCMS’ => ‘UBB.Threads 6.5’,
‘ubb70CMS’ => ‘UBB.Threads 7.0’,
‘ubb71CMS’ => ‘UBB.Threads 7.1’,
‘ubb74CMS’ => ‘UBB.Threads 7.4’,
‘vbulletin30CMS’=> ‘vBulletin 3.0’,
‘vbulletin35CMS’=> ‘vBulletin 3.5’,
‘vbulletin36CMS’=> ‘vBulletin 3.6’,
‘vbulletin37CMS’=> ‘vBulletin 3.7’,
‘vbulletin38CMS’=> ‘vBulletin 3.8’,
‘vbulletin40CMS’=> ‘vBulletin 4.0’,
‘webDateCMS’ => ‘Web Date’,
‘wotCMS2’ => ‘WoltLab Burning Board 2.3.4’,
‘wowCMS’ => ‘WowBB 1.6.1’,
‘wowCMS2’ => ‘WowBB 1.6.2’,
‘wowCMS165’ => ‘WowBB 1.6.5’,
‘wowCMS170’ => ‘WowBB 1.7’,
‘xmbCMS’ => ‘XMB 1.9.1’,
‘xoopsCMS’ => ‘Xoops 2.0.7’,
‘xoops2016CMS’ => ‘Xoops 2.0.16’,
‘phpkitCMS’ => ‘phpkit 1.6.1’,
‘MyBBCMS’ => ‘MyBB 1.0’,
‘easysiteCMS’ => ‘EasySite 3.2.5’,
‘SBDatingCMS’ => ‘Softbiz Dating’,
‘phpFox108’ => ‘phpFox 1.0.8’,
‘phpFox11’ => ‘phpFox 1.1’,
‘phpFox16CMS’ => ‘phpFox 1.6’,
‘inspirations31CMS’ => ‘Inspirations 3.1’,
‘drupalCMS’ => ‘Drupal’,
‘drupal613CMS’ => ‘Drupal 6.1.3’,
‘punbbCMS’ => ‘punBB 1.2.10’,
‘wordpress22CMS’ => ‘WordPress 2.1.0 – 2.7’,
);

?>
[/php]

Now that will do it, Install the chat as usual, when the integration page come up , chose to install PHP fusion V7.02.03.
I have installed the script using the root folder where all the php-fusion files resides, the “FLASHCHAT” folder is with the php-fusion files.

Please leave message about any error or suggestions.. if you don’t leave any feed back then I will not be able to fix problems with the script.. please leave a comment good or bad.. thanks for reading..