mirror of
https://github.com/e107inc/e107.git
synced 2025-08-23 14:44:29 +02:00
More file-system cleanup
This commit is contained in:
206
e107_web/utilities/dbgen.php
Normal file
206
e107_web/utilities/dbgen.php
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
/*
|
||||
* e107 website system
|
||||
*
|
||||
* Copyright (C) 2008-2009 e107 Inc (e107.org)
|
||||
* Released under the terms and conditions of the
|
||||
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
|
||||
*
|
||||
* Database utilities - create arrays from SQL definition
|
||||
*
|
||||
* $Source: /cvs_backup/e107_0.8/e107_files/utilities/dbgen.php,v $
|
||||
* $Revision$
|
||||
* $Date$
|
||||
* $Author$
|
||||
*/
|
||||
|
||||
|
||||
require('../../class2.php');
|
||||
require_once(e_HANDLER.'db_table_admin_class.php');
|
||||
if (!check_class(e_UC_MAINADMIN))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
$dbAdm = new db_table_admin();
|
||||
|
||||
|
||||
// Create an array of all tables
|
||||
$tableStruct = $dbAdm->get_table_def('',e_ADMIN.'sql/core_sql.php');
|
||||
$tableArray = array();
|
||||
|
||||
foreach ($tableStruct as $t)
|
||||
{
|
||||
$tableArray[$t[1]] = array('src' => e_ADMIN.'sql/core_sql.php', 'desc' => 'core:'.$t[1]);
|
||||
}
|
||||
|
||||
|
||||
// Now do the plugins
|
||||
$sqlFiles = e107::getPref('e_sql_list');
|
||||
foreach ($sqlFiles as $p => $f)
|
||||
{
|
||||
$targ = e_PLUGIN.$p.'/'.$f.'.php';
|
||||
//echo $p.':'.$targ.'<br />';
|
||||
$tableStruct = $dbAdm->get_table_def('',$targ);
|
||||
foreach ($tableStruct as $t)
|
||||
{
|
||||
$tableArray[$t[1]] = array('src' => $targ, 'desc' => 'plug:'.$p.':'.$t[1]);
|
||||
}
|
||||
}
|
||||
unset($tableStruct);
|
||||
unset($sqlFiles);
|
||||
|
||||
|
||||
function genFileSelect($tableDefs, $name,$fl)
|
||||
{
|
||||
$ret = "<select name='{$name}' class='tbox'>\n<option value=''>----</option>\n";
|
||||
foreach ($tableDefs as $k => $f)
|
||||
{
|
||||
$ret .= "<option value='{$k}'>{$f['desc']}</option>\n";
|
||||
}
|
||||
$ret .= "</select>\n";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//$HEADER = '';
|
||||
//$FOOTER = '';
|
||||
require(HEADERF);
|
||||
|
||||
|
||||
$message = '';
|
||||
//========================================================
|
||||
// ACTION
|
||||
//========================================================
|
||||
if (isset($_POST['do_conversion']))
|
||||
{
|
||||
if (varset($_POST['selected_plugin'],FALSE))
|
||||
{
|
||||
$table = $_POST['selected_plugin'];
|
||||
if (!isset($tableArray[$table]))
|
||||
{
|
||||
$message = 'Bad table name specified';
|
||||
$table = '';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = 'No table name specified';
|
||||
}
|
||||
}
|
||||
|
||||
if ($table)
|
||||
{
|
||||
$baseStruct = $dbAdm->get_table_def($table,$tableArray[$table]['src']);
|
||||
$fieldDefs = $dbAdm->parse_field_defs($baseStruct[0][2]); // Required definitions
|
||||
$outDefs = array();
|
||||
foreach ($fieldDefs as $k => $v)
|
||||
{
|
||||
switch ($v['type'])
|
||||
{
|
||||
case 'field' :
|
||||
if (vartrue($v['autoinc']))
|
||||
{
|
||||
if (isset($outDefs['WHERE']))
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
$outDefs['WHERE'] = "`{$v['name']}` = \$id";
|
||||
}
|
||||
break;
|
||||
}
|
||||
$baseType = preg_replace('#\(\d+?\)#', '', $v['fieldtype']); // Should strip any length
|
||||
switch ($baseType)
|
||||
{
|
||||
case 'int' :
|
||||
case 'shortint' :
|
||||
case 'tinyint' :
|
||||
$outDefs['_FIELD_TYPES'][$v['name']] = 'int';
|
||||
break;
|
||||
case 'char' :
|
||||
case 'text' :
|
||||
case 'varchar' :
|
||||
$outDefs['_FIELD_TYPES'][$v['name']] = 'todb';
|
||||
break;
|
||||
}
|
||||
if (isset($v['nulltype']) && !isset($v['default']))
|
||||
{
|
||||
$outDefs['_NOTNULL'][$v['name']] = '';
|
||||
}
|
||||
break;
|
||||
case 'pkey' :
|
||||
case 'ukey' :
|
||||
case 'key' :
|
||||
break; // Do nothing with keys for now
|
||||
default :
|
||||
echo "Unexpected field type: {$k} => {$v['type']}<br />";
|
||||
}
|
||||
}
|
||||
$toSave = $eArrayStorage->WriteArray($outDefs, FALSE); // 2nd parameter to TRUE if needs to be written to DB
|
||||
}
|
||||
|
||||
//========================================================
|
||||
// FORM
|
||||
//========================================================
|
||||
$text =
|
||||
"<div style='text-align:center; width:700px'>
|
||||
<form method='post' action='".e_SELF."'>
|
||||
<table style='width:95%' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width:30%' />
|
||||
<col style='width:70%' />
|
||||
</colgroup>";
|
||||
|
||||
$text .= "<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".'Table printout'."<br /><span class='smallblacktext'>".'(ready to copy and paste)'."</span></td>
|
||||
</tr>";
|
||||
|
||||
if ($message)
|
||||
{
|
||||
$text .= "<tr>
|
||||
<td class='forumheader3'>".'Error:'."</td>
|
||||
<td class='forumheader3'>".$message."
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
|
||||
if ($table)
|
||||
{
|
||||
$text .= "<tr>
|
||||
<td class='forumheader3'>Table <b>{$table}</b></td>
|
||||
<td class='forumheader3'><pre>".str_replace("\n", '<br />', $toSave)."</pre></td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3'>".'Choose table:'."</td>
|
||||
<td class='forumheader3'>".genFileSelect($tableArray, 'selected_plugin',$pluginList)."
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3' colspan='2' style='text-align:center'>
|
||||
<input class='button' type='submit' name='do_conversion' value='".'Parse Definition'."' />
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
$text .= "
|
||||
</table>\n
|
||||
</form>
|
||||
</div><br />";
|
||||
$ns->tablerender('SQL Definition Parser', $text);
|
||||
|
||||
require(FOOTERF);
|
||||
|
||||
|
||||
?>
|
126
e107_web/utilities/passcalc.php
Normal file
126
e107_web/utilities/passcalc.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
require('..\..\class2.php');
|
||||
require_once(e_HANDLER.'user_handler.php');
|
||||
$user_info = new userHandler;
|
||||
|
||||
define('LAN_PCALC_01','E107 Password Calculation Utility');
|
||||
define('LAN_PCALC_02','Login Name');
|
||||
define('LAN_PCALC_03','Desired password');
|
||||
define('LAN_PCALC_04','Calculate');
|
||||
define('LAN_PCALC_05','Invalid login name');
|
||||
define('LAN_PCALC_06','Errors Found!!!');
|
||||
define('LAN_PCALC_07','Calculated hash:');
|
||||
define('LAN_PCALC_08','Password invalid');
|
||||
define('LAN_PCALC_09','Confirm password');
|
||||
define('LAN_PCALC_10','Passwords don\'t match!');
|
||||
define('LAN_PCALC_11', 'Password Calculation');
|
||||
|
||||
|
||||
$loginName = varset($_POST['calc_loginname'],'');
|
||||
|
||||
require(HEADERF);
|
||||
$text =
|
||||
"<div style='text-align:center'>
|
||||
<form method='post' action='".e_SELF."'>
|
||||
<table style='width:95%' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width:60%' />
|
||||
<col style='width:40%' />
|
||||
</colgroup>
|
||||
|
||||
<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".LAN_PCALC_01."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCALC_02."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' size='60' maxlength='100' name='calc_loginname' value='{$loginName}' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCALC_03."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='password' size='60' maxlength='100' name='calc_password' value='' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCALC_09."</td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='password' size='60' maxlength='100' name='calc_password1' value='' />
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
$errorString = '';
|
||||
if (isset($_POST['show_password']))
|
||||
{
|
||||
if ($_POST['calc_password'] != $_POST['calc_password1'])
|
||||
{
|
||||
$errorString = LAN_PCALC_10;
|
||||
}
|
||||
|
||||
if (!$errorString)
|
||||
{
|
||||
$loginResult = $user_info->validateField('user_loginname',$loginName,FALSE);
|
||||
$passwordResult = $user_info->validateField('user_password',trim($_POST['calc_password']),FALSE);
|
||||
|
||||
if ($passwordResult !== TRUE)
|
||||
{
|
||||
$errorString = LAN_PCALC_08;
|
||||
}
|
||||
elseif ($loginResult === TRUE)
|
||||
{
|
||||
$passwordHash = $user_info->HashPassword($_POST['calc_password'],$loginName);
|
||||
}
|
||||
else
|
||||
{
|
||||
$errorString = LAN_PCALC_05;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$errorString)
|
||||
{
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCALC_07."</td>
|
||||
<td class='forumheader3'>".$passwordHash."</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
|
||||
if ($errorString)
|
||||
{
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCALC_06."</td>
|
||||
<td class='forumheader3'>".$errorString."</td>
|
||||
</tr>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3' colspan='3' style='text-align:center'>
|
||||
<input class='button' type='submit' name='show_password' value='".LAN_PCALC_04."' />
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
|
||||
|
||||
$text .= "
|
||||
</table>\n
|
||||
</form>
|
||||
</div><br />";
|
||||
$ns->tablerender(LAN_PCALC_11, $text);
|
||||
|
||||
require(FOOTERF);
|
||||
|
||||
|
||||
?>
|
296
e107_web/utilities/passconv.php
Normal file
296
e107_web/utilities/passconv.php
Normal file
@@ -0,0 +1,296 @@
|
||||
<?php
|
||||
|
||||
require('..\..\class2.php');
|
||||
require_once(e_HANDLER.'user_handler.php');
|
||||
if (!check_class(e_UC_MAINADMIN))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
$user_info = new userHandler;
|
||||
|
||||
define('LAN_PCONV_01','E107 Password Conversion Utility');
|
||||
define('LAN_PCONV_02','This utility converts all the passwords in your user database to current formats');
|
||||
define('LAN_PCONV_03','Caution!!!! Back up your database first!!!!!');
|
||||
define('LAN_PCONV_04','Proceed');
|
||||
define('LAN_PCONV_05','Convert md5 passwords to salted passwords');
|
||||
define('LAN_PCONV_06','Passwords for email address login');
|
||||
define('LAN_PCONV_07','Create');
|
||||
define('LAN_PCONV_08','Delete');
|
||||
define('LAN_PCONV_09','Do nothing');
|
||||
define('LAN_PCONV_10','Back up user database');
|
||||
define('LAN_PCONV_11', 'Yes');
|
||||
define('LAN_PCONV_12', 'Have you backed up your database?');
|
||||
define('LAN_PCONV_13', 'Backing up database');
|
||||
define('LAN_PCONV_14', 'Done');
|
||||
define('LAN_PCONV_15', 'Creating email passwords');
|
||||
define('LAN_PCONV_16', 'Deleting email passwords');
|
||||
define('LAN_PCONV_17', 'Scanning database...');
|
||||
define('LAN_PCONV_18', 'Cannot open user table');
|
||||
define('LAN_PCONV_19', 'Creates a table called \'user_backup\' with the information about to be changed. If the table already exists, it is emptied first');
|
||||
define('LAN_PCONV_20', 'Error creating backup table');
|
||||
define('LAN_PCONV_21', 'Error copying to backup table');
|
||||
define('LAN_PCONV_22', 'Total --TOTAL-- users checked');
|
||||
define('LAN_PCONV_23', 'Total --TOTAL-- email passwords calculated');
|
||||
define('LAN_PCONV_24', 'Total --TOTAL-- user passwords updated');
|
||||
define('LAN_PCONV_25', 'Total --TOTAL-- users could not be updated');
|
||||
define('LAN_PCONV_26', 'Create Backup');
|
||||
define('LAN_PCONV_27', 'Restore backup');
|
||||
define('LAN_PCONV_28', 'Restoring from backup....');
|
||||
define('LAN_PCONV_29', 'Backup database table not found!');
|
||||
define('LAN_PCONV_30', 'Cannot access backup table');
|
||||
define('LAN_PCONV_31', '');
|
||||
define('LAN_PCONV_32', '');
|
||||
define('LAN_PCONV_33', '');
|
||||
define('LAN_PCONV_34', '');
|
||||
define('LAN_PCONV_35', '');
|
||||
|
||||
|
||||
function multi_radio($name, $textsVals, $currentval = '')
|
||||
{
|
||||
$ret = '';
|
||||
$gap = '';
|
||||
foreach ($textsVals as $v => $t)
|
||||
{
|
||||
$sel = ($v == $currentval) ? " checked='checked'" : "";
|
||||
$ret .= $gap."<input type='radio' name='{$name}' value='{$v}'{$sel} /> ".$t."\n";
|
||||
// $gap = " ";
|
||||
$gap = "<br />";
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
$recordCount = 0;
|
||||
$emailProcess = 0;
|
||||
$saltProcess = 0;
|
||||
$cantProcess = 0;
|
||||
$cookieChange = '';
|
||||
|
||||
require(HEADERF);
|
||||
$pc_db = new db;
|
||||
if (isset($_POST['GetOnWithIt']))
|
||||
{
|
||||
$doBackup = varset($_POST['doDBBackup'],0);
|
||||
$saltConvert = varset($_POST['convertToSalt'],0);
|
||||
$emailGen = varset($_POST['EmailPasswords'],0);
|
||||
if ($doBackup == 2)
|
||||
{
|
||||
$saltConvert = 0; // Don't do conversions if restoring database
|
||||
$emailGen = 0;
|
||||
}
|
||||
|
||||
$error = '';
|
||||
if ($emailGen == 1)
|
||||
{ // Scan DB for salted passwords
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Backup user DB (selected fields)
|
||||
//-----------------------------------------
|
||||
if (!$error && ($doBackup == 1))
|
||||
{
|
||||
echo LAN_PCONV_13;
|
||||
if ($pc_db->db_Table_exists('user_backup'))
|
||||
{ // Completely delete table - avoids problems with incorrect structure
|
||||
$pc_db->db_Select_gen('DROP TABLE `#user_backup` ');
|
||||
}
|
||||
|
||||
$qry = "CREATE TABLE `#user_backup` (
|
||||
user_id int(10) unsigned NOT NULL,
|
||||
user_name varchar(100) NOT NULL default '',
|
||||
user_loginname varchar(100) NOT NULL default '',
|
||||
user_password varchar(50) NOT NULL default '',
|
||||
user_email varchar(100) NOT NULL default '',
|
||||
user_prefs text NOT NULL,
|
||||
PRIMARY KEY (user_id),
|
||||
UNIQUE KEY user_name (user_name)
|
||||
) ENGINE=MyISAM;"; // If not exists, of course
|
||||
|
||||
if (!$pc_db->db_Select_gen($qry))
|
||||
{
|
||||
$error = LAN_PCONV_20;
|
||||
}
|
||||
|
||||
if (!$error)
|
||||
{
|
||||
$qry = "INSERT INTO `#user_backup` SELECT user_id, user_name, user_loginname, user_password, user_email, user_prefs FROM `#user` ";
|
||||
if ($pc_db->db_Select_gen($qry) === FALSE)
|
||||
{
|
||||
$error = LAN_PCONV_21;
|
||||
}
|
||||
}
|
||||
if (!$error) echo '...'.LAN_PCONV_14.'<br /><br />';
|
||||
}
|
||||
|
||||
|
||||
|
||||
//--------------------------------------
|
||||
// Restore from backup
|
||||
//--------------------------------------
|
||||
if (!$error && ($doBackup == 2))
|
||||
{
|
||||
echo LAN_PCONV_28;
|
||||
if (!$pc_db->db_Table_exists('user_backup'))
|
||||
{
|
||||
$error = LAN_PCONV_28;
|
||||
}
|
||||
if (!$error && $pc_db->db_Select('user_backup','*'))
|
||||
{
|
||||
while ($row = $pc_db->db_Fetch(MYSQL_ASSOC))
|
||||
{
|
||||
$uid = $row['user_id'];
|
||||
unset($row['user_id']);
|
||||
$sql->db_UpdateArray('user',$row," WHERE `user_id`={$uid}"); // Intentionally use $sql here
|
||||
if (USERID == $uid)
|
||||
{
|
||||
$cookieChange = $row['user_password'];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = LAN_PCONV_30;
|
||||
}
|
||||
|
||||
if (!$error) echo '...'.LAN_PCONV_14.'<br /><br />';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//--------------------------------------
|
||||
// Change passwords
|
||||
//--------------------------------------
|
||||
if (!$error && $emailGen || $saltConvert)
|
||||
{ // Run through the DB doing conversions.
|
||||
echo LAN_PCONV_17;
|
||||
if ($pc_db->db_Select('user', 'user_id, user_name, user_loginname, user_password, user_email, user_prefs', '') === FALSE)
|
||||
{
|
||||
$error = LAN_PCONV_18;
|
||||
}
|
||||
if (!$error)
|
||||
{
|
||||
while ($row = $pc_db->db_Fetch())
|
||||
{ // Do conversions
|
||||
$recordCount++;
|
||||
$newData = array();
|
||||
$newPrefs = '';
|
||||
$user_prefs = unserialize($row['user_prefs']);
|
||||
if ($saltConvert)
|
||||
{
|
||||
if ($user_info->canConvert($row['user_password']))
|
||||
{
|
||||
$newData['user_password'] = $user_info->ConvertPassword($row['user_password'], $row['user_loginname']);
|
||||
$saltProcess++;
|
||||
if (USERID == $row['user_id'])
|
||||
{
|
||||
$cookieChange = $newData['user_password'];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$cantProcess++;
|
||||
}
|
||||
}
|
||||
if (($emailGen == 1) && $user_info->canConvert($row['user_password']))
|
||||
{
|
||||
$user_prefs['email_password'] = $user_info->ConvertPassword($row['user_password'], $row['user_email']);
|
||||
$emailProcess++;
|
||||
}
|
||||
elseif ($emailGen == 2)
|
||||
{
|
||||
unset($user_prefs['email_password']);
|
||||
$emailProcess++;
|
||||
}
|
||||
if (count($user_prefs)) $newPrefs = serialize($user_prefs); else $newPrefs = '';
|
||||
if($newPrefs != $user_prefs)
|
||||
{
|
||||
$newData['user_prefs'] = $newPrefs;
|
||||
}
|
||||
|
||||
if (count($newData)) $sql->db_UpdateArray('user',$newData, " WHERE `user_id`={$row['user_id']}");
|
||||
}
|
||||
}
|
||||
echo str_replace('--TOTAL--',$recordCount, LAN_PCONV_22).'<br />';
|
||||
echo str_replace('--TOTAL--',$saltProcess, LAN_PCONV_24).'<br />';
|
||||
echo str_replace('--TOTAL--',$emailProcess, LAN_PCONV_23).'<br />';
|
||||
echo str_replace('--TOTAL--',$cantProcess, LAN_PCONV_25).'<br />';
|
||||
echo '<br />';
|
||||
}
|
||||
|
||||
if ($error)
|
||||
{
|
||||
echo '<br />'.$error.'<br /><br />';
|
||||
require_once(FOOTERF);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
if ($cookieChange)
|
||||
{
|
||||
// echo "Cookie Updated.<br /><br />";
|
||||
$cookieval = USERID.".".md5($cookieChange); // Just changed admin password, and hence cookie
|
||||
cookie($pref['cookie_name'], $cookieval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$text =
|
||||
"<div style='text-align:center'>
|
||||
<form method='post' action='".e_SELF."' onsubmit=\"return jsconfirm('".LAN_PCONV_12."')\">
|
||||
<table style='width:95%' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width:60%' />
|
||||
<col style='width:40%' />
|
||||
</colgroup>
|
||||
|
||||
<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".LAN_PCONV_01."
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".LAN_PCONV_02."<br />".LAN_PCONV_03."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCONV_10."<br /><span class='smalltext'>".LAN_PCONV_19."</span></td>
|
||||
<td class='forumheader3'>".multi_radio('doDBBackup',array('0' => LAN_PCONV_09, '1' => LAN_PCONV_26, '2' => LAN_PCONV_27),'')."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCONV_05."</td>
|
||||
<td class='forumheader3'>".multi_radio('convertToSalt',array('0' => LAN_PCONV_09, '1' => LAN_PCONV_11),'')."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_PCONV_06."</td>
|
||||
<td class='forumheader3'>".multi_radio('EmailPasswords',array('0' => LAN_PCONV_09, '1' => LAN_PCONV_07, '2' => LAN_PCONV_08),'')."
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3' colspan='3' style='text-align:center'>
|
||||
<input class='button' type='submit' name='GetOnWithIt' value='".LAN_PCONV_04."' />
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
|
||||
|
||||
$text .= "
|
||||
</table>\n
|
||||
</form>
|
||||
</div><br />";
|
||||
$ns->tablerender(LAN_PCONV_01, $text);
|
||||
|
||||
require_once(FOOTERF);
|
||||
|
||||
|
||||
|
||||
?>
|
496
e107_web/utilities/pluginxmlgen.php
Normal file
496
e107_web/utilities/pluginxmlgen.php
Normal file
@@ -0,0 +1,496 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system - Converter for plugin.php to plugin.xml
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_files/utilities/pluginxmlgen.php,v $
|
||||
| $Revision$
|
||||
| $Date$
|
||||
| $Author$
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
/*
|
||||
Doesn't (can't) do everything, but sorts what it can.
|
||||
|
||||
Intended to be run from e107_files/utilities directory.
|
||||
|
||||
Usage: Just browse to this file and follow the prompts.
|
||||
|
||||
*/
|
||||
|
||||
require('../../class2.php');
|
||||
require_once(e_HANDLER."file_class.php");
|
||||
if (!check_class(e_UC_MAINADMIN))
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
$fl = new e_file;
|
||||
if ($pluginList = $fl->get_files(e_PLUGIN, "^plugin\.php$", "standard", 1))
|
||||
{
|
||||
sort($pluginList);
|
||||
}
|
||||
foreach ($pluginList as $k => $p)
|
||||
{
|
||||
$pluginList[$k]['shortpath'] = substr(str_replace(e_PLUGIN,"",$p['path']),0,-1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
function genFileSelect($name,$fl)
|
||||
{
|
||||
$ret = "<select name='{$name}' class='tbox'>\n<option value=''>----</option>\n";
|
||||
foreach ($fl as $k => $f)
|
||||
{
|
||||
$ret .= "<option value='{$f['shortpath']}'>{$f['shortpath']}</option>\n";
|
||||
}
|
||||
$ret .= "</select>\n";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
define('TAB_CHAR',chr(9));
|
||||
|
||||
define('LAN_XMLGEN_01','Create a plugin.xml file from a plugin.php file');
|
||||
define('LAN_XMLGEN_02','plugin.xml creation');
|
||||
define('LAN_XMLGEN_03','Convert');
|
||||
define('LAN_XMLGEN_04','Select plugin');
|
||||
define('LAN_XMLGEN_05','No plugin selected - nothing changed');
|
||||
define('LAN_XMLGEN_06','Processing directory: ');
|
||||
define('LAN_XMLGEN_07','Conversion successful');
|
||||
define('LAN_XMLGEN_08','Cannot write to file: ');
|
||||
define('LAN_XMLGEN_09','Cannot open file for writing: ');
|
||||
define('LAN_XMLGEN_10','Cannot read ');
|
||||
define('LAN_XMLGEN_11','Copyright ');
|
||||
define('LAN_XMLGEN_12','URL to check for updates ');
|
||||
define('LAN_XMLGEN_13','(optional)');
|
||||
define('LAN_XMLGEN_14','(Any existing plugin.xml file will be renamed to plugin.bak)');
|
||||
define('LAN_XMLGEN_15','Cannot rename existing plugin.xml to plugin.bak');
|
||||
define('LAN_XMLGEN_16','Cannot delete existing plugin.bak');
|
||||
define('LAN_XMLGEN_17','Installation');
|
||||
define('LAN_XMLGEN_18','Upgrade');
|
||||
define('LAN_XMLGEN_19','Uninstallation');
|
||||
define('LAN_XMLGEN_20','Installation Management');
|
||||
define('LAN_XMLGEN_21','Installation required');
|
||||
define('LAN_XMLGEN_22','(Not used if no installation required)');
|
||||
define('LAN_XMLGEN_23','Yes');
|
||||
define('LAN_XMLGEN_24','No');
|
||||
define('LAN_XMLGEN_25','Type');
|
||||
define('LAN_XMLGEN_26','Function');
|
||||
define('LAN_XMLGEN_27','Class');
|
||||
define('LAN_XMLGEN_28','File name');
|
||||
define('LAN_XMLGEN_29','Function/method name');
|
||||
define('LAN_XMLGEN_30','When');
|
||||
define('LAN_XMLGEN_31','Pre');
|
||||
define('LAN_XMLGEN_32','Post');
|
||||
define('LAN_XMLGEN_33','Specify file name only - will default to \'.php\' if no extension specified');
|
||||
define('LAN_XMLGEN_34','Class name');
|
||||
define('LAN_XMLGEN_35','If specifying a function, leave the class name blank');
|
||||
define('LAN_XMLGEN_36','');
|
||||
define('LAN_XMLGEN_37','');
|
||||
define('LAN_XMLGEN_38','');
|
||||
|
||||
|
||||
|
||||
$managementOptions = array(
|
||||
'headings' => array('rowname' => ' ', 'when' => LAN_XMLGEN_30, 'type' => LAN_XMLGEN_25, 'file' => LAN_XMLGEN_28, 'class' => LAN_XMLGEN_34, 'function' => LAN_XMLGEN_29),
|
||||
'install' => array('rowname' => LAN_XMLGEN_17, 'when' => TRUE, 'type' => TRUE, 'file' => TRUE, 'class' => TRUE, 'function' => TRUE),
|
||||
'uninstall' => array('rowname' => LAN_XMLGEN_19, 'when' => TRUE, 'type' => TRUE, 'file' => TRUE, 'class' => TRUE, 'function' => TRUE),
|
||||
'upgrade' => array('rowname' => LAN_XMLGEN_18, 'when' => TRUE, 'type' => TRUE, 'file' => TRUE, 'class' => TRUE, 'function' => TRUE),
|
||||
'help' => array('rowname' => ' ', 'when' => ' ', 'type' => ' ', 'file' => LAN_XMLGEN_33, 'class' => LAN_XMLGEN_35, 'function' => ' ')
|
||||
);
|
||||
|
||||
|
||||
$selectOptions = array(
|
||||
'when' => array('pre' => LAN_XMLGEN_31, 'post' => LAN_XMLGEN_32),
|
||||
'type' => array('fileFunction' => LAN_XMLGEN_26, 'classFunction' => LAN_XMLGEN_27)
|
||||
);
|
||||
|
||||
|
||||
// Writes a single value within open tag and close tag
|
||||
function writeTag($tag,$value,$level=1)
|
||||
{
|
||||
if (!$value) return '';
|
||||
return str_repeat(TAB_CHAR,$level)."<{$tag}>{$value}</{$tag}>\n";
|
||||
}
|
||||
|
||||
|
||||
// Writes a tag with some attributes
|
||||
function writeTagList($tag,$values,$closeTag = TRUE,$level=1)
|
||||
{
|
||||
if (!count($values)) return '';
|
||||
$ret = str_repeat(TAB_CHAR,$level).'<'.$tag;
|
||||
foreach ($values as $aname => $aval)
|
||||
{
|
||||
if ($aval)
|
||||
{
|
||||
$ret .= ' '.$aname.'="'.$aval.'"';
|
||||
}
|
||||
}
|
||||
if ($closeTag) { $ret .= ' /'; }
|
||||
$ret .= ">\n";
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
function listPrefs($prefList, $arrayPrefList)
|
||||
{
|
||||
if (!is_array($prefList)) return '';
|
||||
$text = '';
|
||||
foreach ($prefList as $k => $v)
|
||||
{
|
||||
if (is_array($v))
|
||||
{
|
||||
$text .= TAB_CHAR.TAB_CHAR.'<pref name="'.$k.'" type="array">'."\n";
|
||||
foreach ($v as $sk => $sv)
|
||||
{
|
||||
$text .= str_repeat(TAB_CHAR,3).' <key name="'.$sk.'" value="'.$sv.'" />'."\n";
|
||||
}
|
||||
$text .= TAB_CHAR.TAB_CHAR."</pref>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$text .= TAB_CHAR.TAB_CHAR.'<pref name="'.$k.'" value="'.$v.'" />'."\n";
|
||||
}
|
||||
}
|
||||
if (!is_array($arrayPrefList)) return $text;
|
||||
foreach ($arrayPrefList as $k => $v)
|
||||
{
|
||||
$text .= TAB_CHAR.TAB_CHAR.'<listPref name="'.$k.'" value="'.$v.'" />'."\n";
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function makeXML($pluginDir, $extras=array())
|
||||
{
|
||||
if (substr($pluginDir,-1,1) != '/') $pluginDir .= '/';
|
||||
$sourceFile = $pluginDir.'plugin.php';
|
||||
$destFile = $pluginDir.'plugin.xml';
|
||||
$backFile = $pluginDir.'plugin.bak';
|
||||
$baseFolder = substr($pluginDir,0,-1);
|
||||
// echo $baseFolder;
|
||||
$baseFolder = substr($baseFolder,strrpos($baseFolder,'/')+1);
|
||||
// echo "Transcribing from {$sourceFile} to {$destFile}...<br />";
|
||||
$adminText = '';
|
||||
$mainPrefText = '';
|
||||
$manageText = '';
|
||||
$fileText = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n\n";
|
||||
$fileText .= '<!-- $'.'Id: plugin.xml,v 0.0 2008/06/26 20:44:10 e107steved Exp '.'$ -'."->\n\n"; // Split it to stop message getting edited when this file committed!
|
||||
|
||||
if (!is_readable($sourceFile))
|
||||
{
|
||||
return LAN_XMLGEN_10.$sourceFile."<br />";
|
||||
}
|
||||
|
||||
include_once($sourceFile);
|
||||
// Transcribe variables
|
||||
$fileText .= writeTagList('e107Plugin',
|
||||
array('name' => $eplug_name,
|
||||
'version' => $eplug_version,
|
||||
'compatibility' => '0.8',
|
||||
'installRequired' => $extras['installationrequired'] ? 'true' : 'false'
|
||||
), FALSE);
|
||||
|
||||
$fileText .= writeTagList('author',
|
||||
array('name' => $eplug_author,
|
||||
'url' => $eplug_url,
|
||||
'email' => $eplug_email
|
||||
), TRUE);
|
||||
$fileText .= writeTag('description',$eplug_description);
|
||||
$fileText .= writeTag('readMe',$eplug_readme);
|
||||
$fileText .= writeTag('folder',$baseFolder);
|
||||
if (isset($eplug_comment_ids) && is_array($eplug_comment_ids))
|
||||
{
|
||||
foreach ($eplug_comment_ids as $cid)
|
||||
{
|
||||
if (is_numeric($cid)) $cid = '***'.$baseFolder.$cid.'***'; // Should be text - so draw attention to it
|
||||
$fileText .= writeTag('commentID', $cid);
|
||||
}
|
||||
}
|
||||
foreach ($extras as $k => $v)
|
||||
{
|
||||
if (in_array($k,array('copyright','update_url'))) $fileText .= writeTag($k,$v);
|
||||
}
|
||||
if (!varsettrue($extras['copyright']))
|
||||
{
|
||||
$fileText .= writeTag('copyright','Copyright e107 Inc e107.org, Licensed under GPL (http://www.gnu.org/licenses/gpl.txt)');
|
||||
}
|
||||
$baseFolder .= '/';
|
||||
// 'commentID' tags needed
|
||||
$adminText .= writeTag('configFile',$eplug_conffile,2);
|
||||
$adminText .= writeTag('icon',str_replace($baseFolder,'',$eplug_icon),2);
|
||||
$adminText .= writeTag('iconSmall',str_replace($baseFolder,'',$eplug_icon_small),2);
|
||||
$adminText .= writeTag('caption',$eplug_caption,2);
|
||||
$adminText .= writeTag('installDone',$eplug_done,2);
|
||||
$fileText .= writeTag('administration',"\n".$adminText.TAB_CHAR);
|
||||
if (varsettrue($eplug_link) && varsettrue($eplug_link_name) && varsettrue($eplug_link_url))
|
||||
{
|
||||
$fileText .= TAB_CHAR.'<menuLink name="'.$eplug_link_name.'" url="'.str_replace(e_PLUGIN,'',$eplug_link_url).'" />'."\n";
|
||||
}
|
||||
// Could add more menuLink options
|
||||
|
||||
$fileText .= writeTag('mainPrefs',"\n".listPrefs($eplug_prefs, varset($eplug_array_pref,'')).TAB_CHAR);
|
||||
|
||||
// Could add userclasses
|
||||
|
||||
|
||||
// Management section
|
||||
$temp = '';
|
||||
foreach ($extras as $k => $v)
|
||||
{
|
||||
if (in_array($k,array('install','uninstall', 'upgrade')))
|
||||
{
|
||||
$temp1 = '';
|
||||
foreach (array('when','type','file','class','function') as $t)
|
||||
{
|
||||
if (isset($v[$t])) $temp1 .= ' '.$t.'="'.$v[$t].'"';
|
||||
}
|
||||
if ($temp1)
|
||||
{
|
||||
$temp .= TAB_CHAR.TAB_CHAR.'<'.$k.$temp1.' />'."\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($temp)
|
||||
{ // Only add management section if something to add
|
||||
$fileText .= TAB_CHAR."<management>\n".$temp.TAB_CHAR."</management>\n";
|
||||
}
|
||||
|
||||
|
||||
$fileText .= "</e107Plugin>";
|
||||
|
||||
// All assembled - write file
|
||||
if (is_readable($backFile))
|
||||
{ // Delete any existing backup
|
||||
if (!unlink($backFile))
|
||||
{
|
||||
return LAN_XMLGEN_16;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_readable($destFile))
|
||||
{ // Rename existing plugin.xml
|
||||
if (!rename($destFile,$backFile))
|
||||
{
|
||||
return LAN_XMLGEN_15;
|
||||
}
|
||||
}
|
||||
|
||||
if (($fh = fopen($destFile,'wt')) === FALSE)
|
||||
{
|
||||
return LAN_XMLGEN_09.$destFile."<br />";
|
||||
}
|
||||
if (fwrite($fh,$fileText) == FALSE)
|
||||
{
|
||||
return LAN_XMLGEN_08.$destFile."<br />";
|
||||
}
|
||||
fclose($handle);
|
||||
return LAN_XMLGEN_07; // Return success
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$HEADER = '';
|
||||
$FOOTER = '';
|
||||
require(HEADERF);
|
||||
|
||||
|
||||
$message = '';
|
||||
//========================================================
|
||||
// ACTION
|
||||
//========================================================
|
||||
if (isset($_POST['do_conversion']))
|
||||
{
|
||||
if (varset($_POST['selected_plugin'],FALSE))
|
||||
{
|
||||
$extras['copyright'] = varset($_POST['copyright'],'');
|
||||
$extras['update_url'] = varset($_POST['update_url'],'');
|
||||
$extras['installationrequired'] = varset($_POST['installationrequired'],1);
|
||||
|
||||
|
||||
// Calculate the array of management features
|
||||
foreach ($managementOptions as $k => $v)
|
||||
{
|
||||
if ($k == 'headings') continue;
|
||||
foreach ($v as $r => $s)
|
||||
{
|
||||
$el_name = $k.'_'.$r;
|
||||
if (varset($_POST[$el_name]))
|
||||
{
|
||||
switch ($r)
|
||||
{
|
||||
case 'rowname' : // Shouldn't happen - but allow for it in case
|
||||
case 'help' :
|
||||
break;
|
||||
case 'when' :
|
||||
$extras[$k][$r] = $_POST[$el_name];
|
||||
break;
|
||||
case 'type' :
|
||||
$extras[$k][$r] = $_POST[$el_name];
|
||||
break;
|
||||
case 'file' :
|
||||
$extras[$k][$r] = $_POST[$el_name];
|
||||
if (strtolower(substr($extras[$k][$r],-4)) != '.php') $extras[$k][$r].= '.php';
|
||||
break;
|
||||
case 'function' :
|
||||
case 'class' :
|
||||
$extras[$k][$r] = $_POST[$el_name];
|
||||
// switch ($extras[$k]['type'])
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isset($extras[$k]['file']) || (!isset($extras[$k]['function'])) || (isset($extras[$k]['type']) && ($extras[$k]['type'] == 'classFunction') && !isset($extras[$k]['class'])))
|
||||
{
|
||||
unset($extras[$k]); // Incomplete definition
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$message = LAN_XMLGEN_06.e_PLUGIN.$_POST['selected_plugin']."<br />";
|
||||
$message .= makeXML(e_PLUGIN.$_POST['selected_plugin'], $extras);
|
||||
}
|
||||
else
|
||||
{
|
||||
$message = LAN_XMLGEN_05;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//========================================================
|
||||
// FORM
|
||||
//========================================================
|
||||
$text =
|
||||
"<div style='text-align:center; width:700px'>
|
||||
<form method='post' action='".e_SELF."'>
|
||||
<table style='width:95%' class='fborder'>
|
||||
<colgroup>
|
||||
<col style='width:60%' />
|
||||
<col style='width:40%' />
|
||||
</colgroup>";
|
||||
|
||||
if ($message)
|
||||
{
|
||||
$text .= "<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".$message."
|
||||
</td>
|
||||
</tr>";
|
||||
}
|
||||
|
||||
$text .= "<tr>
|
||||
<td colspan='2' class='forumheader3' style='text-align:center'>".LAN_XMLGEN_01."<br /><span class='smallblacktext'>".LAN_XMLGEN_14."</span></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_XMLGEN_04."</td>
|
||||
<td class='forumheader3'>".genFileSelect('selected_plugin',$pluginList)."
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_XMLGEN_11."<br /><span class='smallblacktext'>".LAN_XMLGEN_13."</span></td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' size='60' maxlength='100' name='copyright' value='' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_XMLGEN_12."<br /><span class='smallblacktext'>".LAN_XMLGEN_13."</span></td>
|
||||
<td class='forumheader3'>
|
||||
<input class='tbox' type='text' size='60' maxlength='150' name='update_url' value='' />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class='forumheader3'>".LAN_XMLGEN_21."</td>
|
||||
<td class='forumheader3'>
|
||||
<select name='installationrequired'>\n
|
||||
<option value='1' selected='selected'>".LAN_XMLGEN_23."</option>\n
|
||||
<option value='0'>".LAN_XMLGEN_24."</option>\n
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr><td class='forumheader3'>".LAN_XMLGEN_20."<br /><span class='smallblacktext'>".LAN_XMLGEN_22."</span></td><td class='forumheader3'>
|
||||
|
||||
<table>";
|
||||
foreach ($managementOptions as $k => $v)
|
||||
{
|
||||
$text .= "<tr>";
|
||||
foreach ($v as $r => $s)
|
||||
{
|
||||
if ($k == 'headings')
|
||||
{
|
||||
$text .= '<td>'.$s.'</td>';
|
||||
}
|
||||
elseif ($k == 'help')
|
||||
{
|
||||
$text .= "<td><span class='smallblacktext'>".$s.'</span></td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$el_name = $k.'_'.$r;
|
||||
switch ($r)
|
||||
{
|
||||
case 'rowname' :
|
||||
$text .= '<td>'.$s.'</td>';
|
||||
break;
|
||||
case 'when' :
|
||||
case 'type' :
|
||||
if (!$s)
|
||||
{
|
||||
$text .= '<td> </td>';
|
||||
break;
|
||||
}
|
||||
$text .= "<td><select name='{$el_name}' class='tbox'>\n";
|
||||
foreach ($selectOptions[$r] as $o => $t)
|
||||
{
|
||||
$text .= "<option value='{$o}'>{$t}</option>\n";
|
||||
}
|
||||
$text .= "</select>\n</td>";
|
||||
break;
|
||||
case 'file' :
|
||||
case 'function' :
|
||||
case 'class' :
|
||||
$text .= "<td>
|
||||
<input class='tbox' type='text' size='30' maxlength='60' name='{$el_name}' value='' />
|
||||
</td>";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$text .= "</tr>";
|
||||
}
|
||||
|
||||
|
||||
$text .= "</table></td></tr>
|
||||
";
|
||||
|
||||
|
||||
$text .= "
|
||||
<tr>
|
||||
<td class='forumheader3' colspan='3' style='text-align:center'>
|
||||
<input class='button' type='submit' name='do_conversion' value='".LAN_XMLGEN_03."' />
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
$text .= "
|
||||
</table>\n
|
||||
</form>
|
||||
</div><br />";
|
||||
$ns->tablerender(LAN_XMLGEN_02, $text);
|
||||
|
||||
require(FOOTERF);
|
||||
|
||||
|
||||
?>
|
350
e107_web/utilities/resetcore.php
Normal file
350
e107_web/utilities/resetcore.php
Normal file
@@ -0,0 +1,350 @@
|
||||
<?php
|
||||
/*
|
||||
+ ----------------------------------------------------------------------------+
|
||||
| e107 website system
|
||||
|
|
||||
| Copyright (C) 2008-2009 e107 Inc
|
||||
| http://e107.org/
|
||||
|
|
||||
| Standalone page aimed to reset core preferences
|
||||
|
|
||||
| Released under the terms and conditions of the
|
||||
| GNU General Public License (http://gnu.org).
|
||||
|
|
||||
| $Source: /cvs_backup/e107_0.8/e107_files/utilities/resetcore.php,v $
|
||||
| $Revision$
|
||||
| $Date$
|
||||
| $Author$
|
||||
+----------------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
|
||||
/* ####################################################
|
||||
|
||||
|
||||
To use this file, you must edit the following line, removing the // so it reads:
|
||||
define("ACTIVE", true);
|
||||
If you don't, the script will not be usable.
|
||||
|
||||
When you have finished with resetcore you should swap true for false so it can't be used by
|
||||
people it shouldn't be used by.
|
||||
|
||||
*/
|
||||
|
||||
define("ACTIVE", false);
|
||||
|
||||
//FIXME build e_CACHE from e107_config.php - resetcore.php is a stand alone page
|
||||
define('e_CACHE', '../cache/');
|
||||
|
||||
/* #################################################### */
|
||||
|
||||
|
||||
$register_globals = true;
|
||||
if(function_exists('ini_get'))
|
||||
{
|
||||
$register_globals = ini_get('register_globals');
|
||||
}
|
||||
if($register_globals == true)
|
||||
{
|
||||
while (list($global) = each($GLOBALS))
|
||||
{
|
||||
if (!preg_match('/^(_POST|_GET|_COOKIE|_SERVER|_FILES|GLOBALS|HTTP.*|_REQUEST|eTimingStart)$/', $global))
|
||||
{
|
||||
unset($$global);
|
||||
}
|
||||
}
|
||||
unset($global);
|
||||
}
|
||||
|
||||
require_once("../../e107_config.php");
|
||||
//TODO build e_CACHE from e107_config.php - resetcore.php is a stand alone page
|
||||
mysql_connect($mySQLserver, $mySQLuser, $mySQLpassword);
|
||||
mysql_select_db($mySQLdefaultdb);
|
||||
define("MAGIC_QUOTES_GPC", (ini_get('magic_quotes_gpc') ? TRUE : FALSE));
|
||||
|
||||
define("e107_INIT", TRUE);
|
||||
require_once('../../'.$HANDLERS_DIRECTORY.'arraystorage_class.php');
|
||||
$eArrayStorage = new ArrayData();
|
||||
|
||||
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>e107 resetcore</title>
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta http-equiv="content-style-type" content="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class='mainbox'>
|
||||
<a href="http://e107.org"><img src="../../<?php echo($IMAGES_DIRECTORY); ?>logo_template_large.png" alt="Logo" style="border: 0px; vertical-align: middle;" /></a> <span class='headertext'>e107 Reset Core Utility</span>
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
<?php
|
||||
|
||||
if(ACTIVE !== true) {
|
||||
echo "<span class='headertext2'>Currently disabled. To enable please open this file in a text editor and follow the instructions to activate.</span>";
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($_POST['usubmit'])) {
|
||||
if (($row = e_verify()) !== FALSE) {
|
||||
extract($row);
|
||||
|
||||
$result = mysql_query("SELECT * FROM ".$mySQLprefix."core WHERE e107_name='pref_backup' ");
|
||||
$bu_exist = ($row = mysql_fetch_array($result) ? TRUE : FALSE);
|
||||
|
||||
$admin_directory = "e107_admin";
|
||||
|
||||
// <input type='radio' name='mode' value='1' /> <span class='headertext2'>Manually edit core values</span><br />
|
||||
|
||||
echo "<span class='headertext2'><b>Please select which method you want to use, then click the button to proceed ...</b></span><br /><br /><br /><br />
|
||||
<table style='width: auto; margin-left:auto; margin-right: auto;'>
|
||||
<tr>
|
||||
<td>
|
||||
<form method='post' action='".$_SERVER['PHP_SELF']."'>
|
||||
<input type='radio' name='mode' value='2' /> <span class='headertext2'>Reset core to default values</span><br />". ($bu_exist ? "<input type='radio' name='mode' value='3' /> <span class='headertext2'>Restore core backup</span>" : "<br />( There is no backed-up core - unable to offer option to restore backup )")."<br /><br /><input class='button' type='submit' name='reset_core_sub' value='Select method then click here to continue' />
|
||||
|
||||
<input type='hidden' name='a_name' value='".$_POST['a_name']."' />
|
||||
<input type='hidden' name='a_password' value='".$_POST['a_password']."' />
|
||||
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
";
|
||||
|
||||
$END = TRUE;
|
||||
} else {
|
||||
$message = "<b>Administrator not found in database / incorrect password / insufficient permissions - aborting.</b><br />";
|
||||
$END = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['reset_core_sub']) && $_POST['mode'] == 2)
|
||||
{
|
||||
if (($at = e_verify()) === FALSE) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$tmpr = substr(str_replace($_SERVER['DOCUMENT_ROOT'], "", $_SERVER['SCRIPT_FILENAME']), 1);
|
||||
$root = "/".substr($tmpr, 0, strpos($tmpr, "/"))."/";
|
||||
$e_HTTP = $root;
|
||||
$admin_directory = "e107_admin";
|
||||
$url_prefix = substr($_SERVER['PHP_SELF'], strlen($e_HTTP), strrpos($_SERVER['PHP_SELF'], "/")+1-strlen($e_HTTP));
|
||||
$num_levels = substr_count($url_prefix, "/");
|
||||
$link_prefix = '';
|
||||
for($i = 1; $i <= $num_levels; $i++) {
|
||||
$link_prefix .= "../";
|
||||
}
|
||||
|
||||
define("e_ADMIN", $e_HTTP.$admin_directory."/");
|
||||
define("e_SELF", "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
|
||||
define("e_QUERY", preg_replace("#&|/?PHPSESSID.*#i", "", $_SERVER['QUERY_STRING']));
|
||||
define('e_BASE', $link_prefix);
|
||||
$e_path = (!strpos($_SERVER['SCRIPT_FILENAME'], ".php") ? $_SERVER['PATH_TRANSLATED'] : $_SERVER['SCRIPT_FILENAME']);
|
||||
define("e_PATH", $e_path);
|
||||
|
||||
|
||||
$pref_language = "English";
|
||||
include_once("../../".$LANGUAGES_DIRECTORY."English/lan_prefs.php");
|
||||
require_once("../../".$FILES_DIRECTORY."def_e107_prefs.php");
|
||||
|
||||
$PrefOutput = $eArrayStorage->WriteArray($pref);
|
||||
|
||||
mysql_query("DELETE FROM ".$mySQLprefix."core WHERE e107_name='SitePrefs' OR e107_name='SitePrefs_Backup'");
|
||||
if (!mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs', '{$PrefOutput}')")) {
|
||||
$message = "Rebuild failed ...";
|
||||
$END = TRUE;
|
||||
} else {
|
||||
mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs_Backup', '{$PrefOutput}')");
|
||||
$message = "Core reset. <br /><br /><a href='../../index.php'>Click here to continue</a>";
|
||||
$END = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
function recurse_pref($ppost) {
|
||||
$search = array("\"", "'", "\\", '\"', "\'", "$", "?");
|
||||
$replace = array(""", "'", "\", """, "'", "$", "©");
|
||||
foreach ($ppost as $key => $value) {
|
||||
if(!is_array($value)){
|
||||
$ret[$key] = str_replace($search, $replace, $text);
|
||||
} else {
|
||||
$ret[$key] = recurse_pref($value);
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
if (isset($_POST['coreedit_sub']))
|
||||
{
|
||||
if (($at = e_verify()) === FALSE) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$pref = recurse_pref($_POST);
|
||||
|
||||
$PrefOutput = $eArrayStorage->WriteArray($pref);
|
||||
|
||||
mysql_query("DELETE FROM ".$mySQLprefix."core WHERE e107_name='SitePrefs' OR e107_name='SitePrefs_Backup'");
|
||||
mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs', '{$PrefOutput}')");
|
||||
mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs_Backup', '{$PrefOutput}')");
|
||||
|
||||
$message = "Core settings successfully updated. <br /><br /><a href='../../index.php'>Click here to continue</a>";
|
||||
$END = TRUE;
|
||||
}
|
||||
|
||||
if (isset($_POST['reset_core_sub']) && $_POST['mode'] == 3) {
|
||||
if (($at = e_verify()) === FALSE) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$result = mysql_query("SELECT * FROM ".$mySQLprefix."core WHERE e107_name='pref_backup'");
|
||||
$row = mysql_fetch_array($result);
|
||||
|
||||
$pref = unserialize(base64_decode($row['e107_value']));
|
||||
|
||||
$PrefOutput = $eArrayStorage->WriteArray($pref);
|
||||
|
||||
mysql_query("DELETE FROM ".$mySQLprefix."core WHERE `e107_name` = 'SitePrefs' OR `e107_name` = 'SitePrefs_Backup'");
|
||||
mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs', '{$PrefOutput}')");
|
||||
mysql_query("INSERT INTO ".$mySQLprefix."core VALUES ('SitePrefs_Backup', '{$PrefOutput}')");
|
||||
|
||||
$message = "Core backup successfully restored. <br /><br /><a href='../../index.php'>Click here to continue</a>";
|
||||
$END = TRUE;
|
||||
}
|
||||
|
||||
|
||||
if (isset($_POST['reset_core_sub']) && $_POST['mode'] == 1)
|
||||
{
|
||||
if (($at = e_verify()) === FALSE) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$result = @mysql_query("SELECT * FROM ".$mySQLprefix."core WHERE e107_name='SitePrefs'");
|
||||
$row = @mysql_fetch_array($result);
|
||||
|
||||
$pref = $eArrayStorage->ReadArray($row['e107_value']);
|
||||
|
||||
echo "
|
||||
<span class='headertext2'><b>Edit your individual core items and click the button to save - <span class='headertext'>use this script with caution</span>.</b></span><br /><br />
|
||||
<form method='post' action='".$_SERVER['PHP_SELF']."'>
|
||||
<table style='width:95%'>\n";
|
||||
|
||||
while (list($key, $prefr) = each($pref)) {
|
||||
if (is_array($prefr)) {
|
||||
foreach ($prefr as $akey => $apref) {
|
||||
echo "<tr><td class='headertext2' style='width:50%; text-align:right;'>{$key}[{$akey}] </td>
|
||||
<td style='width:50%'><input type='text' name='{$key}[{$akey}]' value='{$apref}' size='50' maxlength='100' /></td></tr>\n";
|
||||
|
||||
}
|
||||
} else {
|
||||
echo "<tr><td class='headertext2' style='width:50%; text-align:right;'>{$key} </td>
|
||||
<td style='width:50%'><input type='text' name='{$key}' value='{$prefr}' size='50' maxlength='100' /></td></tr>\n";
|
||||
}
|
||||
}
|
||||
echo "
|
||||
<tr>
|
||||
<td colspan='2' style='text-align:center'><br /><input class='button' type='submit' name='coreedit_sub' value='Save Core Settings' /></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type='hidden' name='a_name' value='".$_POST['a_name']."' />
|
||||
<input type='hidden' name='a_password' value='".preg_replace("/\W/", '', $_POST['a_password'])."' />
|
||||
</form>";
|
||||
$END = TRUE;
|
||||
}
|
||||
|
||||
if (isset($message)) {
|
||||
echo "<br /><br /><div style='text-align:center'><span class='headertext2'>{$message}</span></div><br />";
|
||||
}
|
||||
|
||||
if (isset($END)) {
|
||||
echo "<br /></div></body></html>";
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "<span class='headertext2'>
|
||||
This is the e107 resetcore utility. It allows you to completely rebuild your core if it becomes corrupt, or to restore a backup. <br />It won't affect your actual content (news posts, forum posts, articles etc).<br />
|
||||
<b>Only run this utility if your site is failing to load due to a critical core error, or if you need to change a setting and can't log into your admin area.</b></span><br /><br /><br /><br />
|
||||
|
||||
<span class='headertext'>Please enter your main administrator username and password to continue ...</span><br /><br />
|
||||
<form method='post' action='".$_SERVER['PHP_SELF']."'>
|
||||
<table style='width:95%'>
|
||||
<tr>
|
||||
<td style='width:50%; text-align:right;' class='mediumtext'>Main administrator name:</td>
|
||||
<td style='width:50%'>
|
||||
<input class='tbox' type='text' name='a_name' size='30' value='' maxlength='100' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style='width:50%; text-align:right;' class='mediumtext'>Main administrator Password:</td>
|
||||
<td style='width:50%'>
|
||||
<input class='tbox' type='password' name='a_password' size='30' value='' maxlength='100' />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan='2' style='text-align:center'>
|
||||
<br />
|
||||
<input class='button' type='submit' name='usubmit' value='Continue' />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
</div>
|
||||
</body>
|
||||
</html>";
|
||||
|
||||
function e_verify() {
|
||||
global $mySQLprefix;
|
||||
if (ACTIVE !== TRUE) {
|
||||
exit;
|
||||
}
|
||||
if (MAGIC_QUOTES_GPC == FALSE) {
|
||||
$a_name = addslashes($_POST['a_name']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$a_name = $_POST['a_name'];
|
||||
}
|
||||
|
||||
$a_name = str_replace('/*', '', $a_name);
|
||||
|
||||
$result = mysql_query("SELECT * FROM ".$mySQLprefix."user WHERE user_name='".$a_name."'");
|
||||
$row = mysql_fetch_array($result);
|
||||
|
||||
if (($row['user_password'] === md5($_POST['a_password'])) && ($row['user_perms'] === '0') && (ACTIVE === TRUE)) {
|
||||
clear_cache();
|
||||
return $row;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
function clear_cache() {
|
||||
// $dir = "../cache/";
|
||||
$dir = e_CACHE;
|
||||
$pattern = "*.cache.php";
|
||||
$deleted = false;
|
||||
$pattern = str_replace(array("\*", "\?"), array(".*", "."), preg_quote($pattern));
|
||||
if (substr($dir, -1) != "/") {
|
||||
$dir .= "/";
|
||||
}
|
||||
if (is_dir($dir)) {
|
||||
$d = opendir($dir);
|
||||
while ($file = readdir($d)) {
|
||||
if (is_file($dir.$file) && preg_match("/^{$pattern}$/", $file)) {
|
||||
if (unlink($dir.$file)) {
|
||||
$deleted[] = $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($d);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
58
e107_web/utilities/style.css
Normal file
58
e107_web/utilities/style.css
Normal file
@@ -0,0 +1,58 @@
|
||||
body {
|
||||
color: #000;
|
||||
font: 11px verdana, tahoma, arial, sans-serif;
|
||||
background-color: #D1CFCF;
|
||||
}
|
||||
a {
|
||||
color: #035479;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
color: #DC6504;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.mainbox {
|
||||
border: 1px solid #879397;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.smalltext {
|
||||
color: #000;
|
||||
font: 12px verdana, tahoma, arial, sans-serif;
|
||||
}
|
||||
|
||||
.headertext {
|
||||
color: #DC6504;
|
||||
font: 16px verdana, tahoma, arial, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.headertext2 {
|
||||
color: #000;
|
||||
font: 12px verdana, tahoma, arial, sans-serif;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.indent {
|
||||
border: 1px solid #D1CFCF;
|
||||
background-color: #efefef;
|
||||
color: #000;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.tbox {
|
||||
background-color: #fff;
|
||||
border: #b7b5b5 1px solid;
|
||||
color: #000000;
|
||||
font: 10px verdana, tahoma, arial, helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.button {
|
||||
border: 1px solid #000;
|
||||
color: #000;
|
||||
font: 7pt verdana, tahoma, arial, helvetica, sans-serif;
|
||||
text-align:center;
|
||||
}
|
Reference in New Issue
Block a user