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 /* * 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'] = ''; } ?>
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 /** ** 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', ); ?>
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..
hi,
that’s done in the mysql table…
regards
Okay thanks 🙂
Do you know why the flashchat dosen’t work in browser inter explorer?
It only work in google chrome.. hmm
Hi,
I dont know, in my IEs works fine..
I guess it all depend the version of php you have, lets remember that the chat is in beta state and that contribute in that too..
regards.
Okay 🙂
But how can i solve this error:
Fatal error: Call to a member function next() on a non-object in /var/www/oddsportal.dk/public_html/chat/inc/cmses/statelessCMS.php on line 132
Hi, I dont know.. Is a buggy script.
Regards
I’ve found the bug:
you have to update the “cnf_values.php” in the admin folder. You have to put in the following line behind the other “PHP Fusion”-Lines:
‘fusion7_02_03CMS’ => ‘PHP Fusion 7.02.03’,
then “PHP Fusion 7.02.03” will be shown in Dropdown-Menu
Hi stephan,
can you elaborate?
the installation shows the version fine..
Hi I’m and getting an error,
Could not create room ‘The Lounge’
I think I have the same issue that Stephen is talking about.
Once this update is added to Flashchat, it doesn’t show up in the admin.php/configuration/general settings drop-down box. Trying to adjust settings on that page results in Flashchat saving as statelessCMS,(since that is the default option showing), and Flashchat stops recognizing auto-login.
I’ll try Stephen’s fix later at home and see if that works.