| Server IP : 180.180.241.3 / Your IP : 216.73.216.216 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/AppServ/www/news/administrator/components/com_jfusion/packages/install_53026962ec487/ |
Upload File : |
<?php
/**
* @package JFusion_SMF
* @author JFusion development team
* @copyright Copyright (C) 2008 JFusion. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
// no direct access
defined('_JEXEC' ) or die('Restricted access' );
/**
* Load the JFusion framework
*/
require_once(JPATH_ADMINISTRATOR .DS.'components'.DS.'com_jfusion'.DS.'models'.DS.'model.jfusion.php');
require_once(JPATH_ADMINISTRATOR .DS.'components'.DS.'com_jfusion'.DS.'models'.DS.'model.abstractadmin.php');
/**
* JFusion Admin Class for SMF 1.1.x
* For detailed descriptions on these functions please check the model.abstractadmin.php
* @package JFusion_SMF
*/
class JFusionAdmin_smf2 extends JFusionAdmin{
/**
* @return string
*/
function getJname()
{
return 'smf2';
}
/**
* @return string
*/
function getTablename()
{
return 'members';
}
/**
* @param string $forumPath
* @return array
*/
function setupFromPath($forumPath)
{
//check for trailing slash and generate file path
if (substr($forumPath, -1) == DS) {
$myfile = $forumPath . 'Settings.php';
} else {
$myfile = $forumPath . DS. 'Settings.php';
}
//try to open the file
$params = array();
if (($file_handle = @fopen($myfile, 'r')) === FALSE) {
JError::raiseWarning(500,JText::_('WIZARD_FAILURE'). ": $myfile " . JText::_('WIZARD_MANUAL'));
} else {
//parse the file line by line to get only the config variables
$file_handle = fopen($myfile, 'r');
$config = array();
while (!feof($file_handle)) {
$line = fgets($file_handle);
if (strpos($line, '$') === 0) {
$vars = explode("'", $line);
if(isset($vars[1]) && isset($vars[0])){
$name = trim($vars[0], ' $=');
$value = trim($vars[1], ' $=');
$config[$name] = $value;
}
}
}
fclose($file_handle);
//Save the parameters into the standard JFusion params format
$params['database_host'] = isset($config['db_server']) ? $config['db_server'] : '';
$params['database_type'] = 'mysql';
$params['database_name'] = isset($config['db_name']) ? $config['db_name'] : '';
$params['database_user'] = isset($config['db_user']) ? $config['db_user'] : '';
$params['database_password'] = isset($config['db_passwd']) ? $config['db_passwd'] : '';
$params['database_prefix'] = isset($config['db_prefix']) ? $config['db_prefix'] : '';
$params['source_url'] = isset($config['boardurl']) ? $config['boardurl'] : '';
$params['cookie_name'] = isset($config['cookiename']) ? $config['cookiename'] : '';
$params['source_path'] = $forumPath;
}
return $params;
}
/**
* Returns the a list of users of the integrated software
*
* @param int $limitstart start at
* @param int $limit number of results
*
* @return array
*/
function getUserList($limitstart = 0, $limit = 0)
{
// initialise some objects
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT member_name as username, email_address as email from #__members';
$db->setQuery($query,$limitstart,$limit);
$userlist = $db->loadObjectList();
return $userlist;
}
/**
* @return int
*/
function getUserCount()
{
//getting the connection to the db
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT count(*) from #__members';
$db->setQuery($query );
//getting the results
return $db->loadResult();
}
/**
* get default user group list
*
* @return array array with object with default user group list
*/
function getUsergroupList()
{
//getting the connection to the db
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT id_group as id, group_name as name FROM #__membergroups WHERE min_posts = -1';
$db->setQuery($query);
$usergrouplist = $db->loadObjectList();
//append the default usergroup
$default_group = new stdClass;
$default_group->id = 0;
$default_group->name = 'Default User';
$usergrouplist[] = $default_group;
return $usergrouplist;
}
/**
* @return string
*/
function getDefaultUsergroup()
{
$params = JFusionFactory::getParams($this->getJname());
$usergroups = JFusionFunction::getCorrectUserGroups($this->getJname(),null);
$usergroup_id = 0;
if(!empty($usergroups)) {
$usergroup_id = $usergroups[0];
}
if ($usergroup_id==0) {
return 'Default Usergroup';
}
//we want to output the usergroup name
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT group_name FROM #__membergroups WHERE id_group = ' . $usergroup_id;
$db->setQuery($query );
return $db->loadResult();
}
/**
* return list of post groups
*
* @return object with default user group
*/
function getUserpostgroupList()
{
//getting the connection to the db
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT id_group as id, group_name as name FROM #__membergroups WHERE min_posts != -1';
$db->setQuery($query);
return $db->loadObjectList();
}
/**
* @return bool
*/
function allowRegistration()
{
$db = JFusionFactory::getDatabase($this->getJname());
$query = 'SELECT value FROM #__settings WHERE variable =\'registration_method\';';
$db->setQuery($query );
$new_registration = $db->loadResult();
if ($new_registration == 3) {
$result = false;
return $result;
} else {
$result = true;
return $result;
}
}
/**
* @param string $url
* @param int $itemid
*
* @return string
*/
function generateRedirectCode($url, $itemid)
{
//create the new redirection code
/*
$pattern = \'#action=(login|admin|profile|featuresettings|news|packages|detailedversion|serversettings|theme|manageboards|postsettings|managecalendar|managesearch|smileys|manageattachments|viewmembers|membergroups|permissions|regcenter|ban|maintain|reports|viewErrorLog|optimizetables|detailedversion|repairboards|boardrecount|convertutf8|helpadmin|packageget)#\';
*/
$redirect_code = '
//JFUSION REDIRECT START
//SET SOME VARS
$joomla_url = \''. $url . '\';
$joomla_itemid = ' . $itemid .';
';
$redirect_code .= '
if(!defined(\'_JEXEC\') && strpos($_SERVER[\'QUERY_STRING\'], \'dlattach\') === false && strpos($_SERVER[\'QUERY_STRING\'], \'verificationcode\') === false)';
$redirect_code .= '
{
$pattern = \'#action=(login|logout)#\';
if ( !preg_match( $pattern , $_SERVER[\'QUERY_STRING\'] ) ) {
$file = $_SERVER["SCRIPT_NAME"];
$break = explode(\'/\', $file);
$pfile = $break[count($break) - 1];
$query = str_replace(\';\', \'&\', $_SERVER[\'QUERY_STRING\']);
$jfusion_url = $joomla_url . \'index.php?option=com_jfusion&Itemid=\' . $joomla_itemid . \'&jfile=\'.$pfile. \'&\' . $query;
header(\'Location: \' . $jfusion_url);
exit;
}
}
//JFUSION REDIRECT END';
return $redirect_code;
}
function enableRedirectMod()
{
$params = JFusionFactory::getParams($this->getJname());
$joomla_params = JFusionFactory::getParams('joomla_int');
$joomla_url = $joomla_params->get('source_url');
$joomla_itemid = $params->get('redirect_itemid');
//check to see if all vars are set
if (empty($joomla_url)) {
JError::raiseWarning(0, JText::_('MISSING') . ' Joomla URL');
} else if (empty($joomla_itemid) || !is_numeric($joomla_itemid)) {
JError::raiseWarning(0, JText::_('MISSING') . ' ItemID');
} else if (!$this->isValidItemID($joomla_itemid)) {
JError::raiseWarning(0, JText::_('MISSING') . ' ItemID '. JText::_('MUST BE'). ' ' . $this->getJname());
} else {
$error = $this->disableRedirectMod();
$reason = '';
$mod_file = $this->getModFile('index.php',$error,$reason);
if($error == 0) {
//get the joomla path from the file
jimport('joomla.filesystem.file');
$file_data = JFile::read($mod_file);
$redirect_code = $this->generateRedirectCode($joomla_url,$joomla_itemid);
$search = '/\<\?php/si';
$replace = '<?php' . $redirect_code;
$file_data = preg_replace($search, $replace, $file_data);
JFile::write($mod_file, $file_data);
}
}
}
/**
* @return int
*/
function disableRedirectMod()
{
$error = 0;
$reason = '';
$mod_file = $this->getModFile('index.php',$error,$reason);
if ($error == 0) {
//get the joomla path from the file
jimport('joomla.filesystem.file');
$file_data = JFile::read($mod_file);
$search = '/(\r?\n)\/\/JFUSION REDIRECT START(.*)\/\/JFUSION REDIRECT END/si';
preg_match_all($search, $file_data, $matches);
//remove any old code
if (!empty($matches[1][0])) {
$file_data = preg_replace($search, '', $file_data);
if (!JFile::write($mod_file, $file_data)) {
$error = 1;
}
}
}
return $error;
}
/**
* @param $name
* @param $value
* @param $node
* @param $control_name
* @return string
*/
function showRedirectMod($name, $value, $node, $control_name)
{
$error = 0;
$reason = '';
$mod_file = $this->getModFile('index.php',$error,$reason);
if($error == 0) {
//get the joomla path from the file
jimport('joomla.filesystem.file');
$file_data = JFile::read($mod_file);
preg_match_all('/\/\/JFUSION REDIRECT START(.*)\/\/JFUSION REDIRECT END/ms',$file_data,$matches);
//compare it with our joomla path
if(empty($matches[1][0])){
$error = 1;
$reason = JText::_('MOD_NOT_ENABLED');
}
}
//add the javascript to enable buttons
if ($error == 0) {
//return success
$text = JText::_('REDIRECTION_MOD') . ' ' . JText::_('ENABLED');
$disable = JText::_('MOD_DISABLE');
$update = JText::_('MOD_UPDATE');
$output = <<<HTML
<img src="components/com_jfusion/images/check_good_small.png">{$text}
<a href="javascript:void(0);" onclick="return module('disableRedirectMod')">{$disable}</a>
<a href="javascript:void(0);" onclick="return module('enableRedirectMod')">{$update}</a>
HTML;
return $output;
} else {
$text = JText::_('REDIRECTION_MOD') . ' ' . JText::_('DISABLED') . ': ' . $reason;
$enable = JText::_('MOD_ENABLE');
$output = <<<HTML
<img src="components/com_jfusion/images/check_bad_small.png">{$text}
<a href="javascript:void(0);" onclick="return module('enableRedirectMod')">{$enable}</a>
HTML;
return $output;
}
}
/**
* uninstall function is to disable verious mods
*
* @return array
*/
function uninstall()
{
$error = $this->disableRedirectMod();
if (!empty($error)) {
$reason = JText::_('REDIRECT_MOD_UNINSTALL_FAILED');
return array(false, $reason);
}
return array(true, '');
}
/**
* do plugin support multi usergroups
*
* @return bool
*/
function isMultiGroup()
{
return false;
}
/**
* do plugin support multi usergroups
*
* @return string UNKNOWN or JNO or JYES or ??
*/
function requireFileAccess()
{
return 'JNO';
}
}