This will download the latest .zip file from github to ".e_SYSTEM."/temp and then unzip it, overwriting any existing files that it finds on your server. It will take into account any custom folders you may have set in e107_config.php.
";
$message .= $frm->button('githubSyncProcess',1,'delete', "Overwrite Files");
$message .= $frm->close();
$mes->addInfo($message);
// $text = "";
e107::getRender()->tablerender(DBLAN_10.SEP."Sync with Github", $mes->render());
}
// Developer Mode ONly.. No LANS.
private function githubSyncProcess()
{
// Delete any existing file.
if(file_exists(e_TEMP."e107-master.zip"))
{
unlink(e_TEMP."e107-master.zip");
}
$result = e107::getFile()->getRemoteFile('https://codeload.github.com/e107inc/e107/zip/master', 'e107-master.zip', 'temp');
if($result == false)
{
e107::getMessage()->addError( "Couldn't download .zip file");
}
$localfile = 'e107-master.zip';
chmod(e_TEMP.$localfile, 0755);
require_once(e_HANDLER."pclzip.lib.php");
// $base = realpath(dirname(__FILE__));
$newFolders = array(
'e107-master/e107_admin/' => e_BASE.e107::getFolder('ADMIN'),
'e107-master/e107_core/' => e_BASE.e107::getFolder('CORE'),
'e107-master/e107_docs/' => e_BASE.e107::getFolder('DOCS'),
'e107-master/e107_handlers/' => e_BASE.e107::getFolder('HANDLERS'),
'e107-master/e107_images/' => e_BASE.e107::getFolder('IMAGES'),
'e107-master/e107_languages/' => e_BASE.e107::getFolder('LANGUAGES'),
'e107-master/e107_media/' => e_BASE.e107::getFolder('MEDIA'),
'e107-master/e107_plugins/' => e_BASE.e107::getFolder('PLUGINS'),
'e107-master/e107_system/' => e_BASE.e107::getFolder('SYSTEM'),
'e107-master/e107_themes/' => e_BASE.e107::getFolder('THEMES'),
'e107-master/e107_web/' => e_BASE.e107::getFolder('WEB'),
'e107-master/' => e_BASE
);
$srch = array_keys($newFolders);
$repl = array_values($newFolders);
$archive = new PclZip(e_TEMP.$localfile);
$unarc = ($fileList = $archive -> extract(PCLZIP_OPT_PATH, e_TEMP, PCLZIP_OPT_SET_CHMOD, 0755)); // Store in TEMP first.
$error = array();
$success = array();
$skipped = array();
// print_a($unarc);
$excludes = array('e107-master/','e107-master/install.php','e107-master/favicon.ico');
foreach($unarc as $k=>$v)
{
if(in_array($v['stored_filename'],$excludes))
{
continue;
}
$oldPath = $v['filename'];
$newPath = str_replace($srch,$repl, $v['stored_filename']);
$message = "Moving ".$oldPath." to ".$newPath;
if($v['folder'] ==1 && is_dir($newPath))
{
// $skipped[] = $newPath. " (already exists)";
continue;
}
if(!rename($oldPath,$newPath))
{
$error[] = $message;
}
else
{
$success[] = $message;
}
// echo $message." ";
}
if(!empty($success))
{
e107::getMessage()->addSuccess(print_a($success,true));
}
if(!empty($skipped))
{
e107::getMessage()->setTitle("Skipped",E_MESSAGE_INFO)->addInfo(print_a($skipped,true));
}
if(!empty($error))
{
e107::getMessage()->addError(print_a($error,true));
}
e107::getRender()->tablerender(DBLAN_10.SEP."Sync with Github", e107::getMessage()->render());
}
private function backup()
{
$mes = e107::getMessage();
$message = DBLAN_70;
$message .= " ".LAN_CREATE."";
$mes->addInfo($message);
$text = "";
e107::getRender()->tablerender(DBLAN_10.SEP."Backup", $mes->render().$text);
}
/**
* Correct Folder and File permissions.
*/
function correct_perms()
{
$mes = e107::getMessage();
$fl = e107::getFile();
ob_start();
$fl->chmod(e_BASE);
$fl->chmod(e_BASE."cron.php",0755);
$errors = ob_get_clean();
if($errors !='')
{
$mes->addError($errors);
}
else
{
$mes->addSuccess(DBLAN_72);
}
e107::getRender()->tablerender(DBLAN_10.SEP.DBLAN_73, $mes->render());
}
private function multiSiteProcess()
{
$sql = e107::getDb('new');
$mes = e107::getMessage();
$user = $_POST['name'];
$pass = $_POST['password'];
$server = e107::getMySQLConfig('server'); // $_POST['server'];
$database = $_POST['db'];
$prefix = $_POST['prefix'];
if($connect = $sql->connect($server,$user, $pass, true))
{
$mes->addSuccess(DBLAN_74);
if(vartrue($_POST['createdb']))
{
if($sql->gen("CREATE DATABASE ".$database." CHARACTER SET `utf8`"))
{
$mes->addSuccess(DBLAN_75);
// $sql->gen("CREATE USER ".$user."@'".$server."' IDENTIFIED BY '".$pass."';");
$sql->gen("GRANT ALL ON `".$database."`.* TO ".$user."@'".$server."';");
$sql->gen("FLUSH PRIVILEGES;");
}
else
{
$mes->addError(DBLAN_75);
return;
}
}
if(!$sql->database($database))
{
$mes->addError(DBLAN_76);
}
$mes->addSuccess(DBLAN_76);
if($this->multiSiteCreateTables($sql, $prefix))
{
$coreConfig = e_CORE. "xml/default_install.xml";
$ret = e107::getXml()->e107Import($coreConfig, 'add', true, false, $sql); // Add core pref values
$mes->addInfo(print_a($ret,true));
}
}
else
{
$mes->addSuccess(DBLAN_74);
}
if($error = $sql->getLastErrorText())
{
$mes->addError($error);
}
// print_a($_POST);
}
private function multiSiteCreateTables($sql, $prefix)
{
$mes = e107::getMessage();
$sql_data = file_get_contents(e_CORE."sql/core_sql.php");
$sql_data = preg_replace("#\/\*.*?\*\/#mis", '', $sql_data); // Strip comments
if (!$sql_data)
{
$mes->addError(DBLAN_77);
}
preg_match_all("/create(.*?)(?:myisam|innodb);/si", $sql_data, $result );
$sql->gen('SET NAMES `utf8`');
foreach ($result[0] as $sql_table)
{
$sql_table = preg_replace("/create table\s/si", "CREATE TABLE ".$prefix, $sql_table);
if (!$sql->gen($sql_table))
{
$mes->addError($sql->getLastErrorText());
return false;
}
else
{
// $mes->addDebug($sql_table);
}
}
return true;
}
private function multiSite()
{
if(!deftrue('e_DEVELOPER'))
{
return false;
}
$mes = e107::getMessage();
$frm = e107::getForm();
e107::lan('core','installer');
// Leave here until no longer experimental. - Should be placed inside lan_db.php and LANS renamed.
define('LANINS_130', "Parked Domain");
define('LANINS_131', "The parked domain which will become a new e107 website.");
define('LANINS_132', "mydomain.com");
define('LANINS_133', "This will create a fresh installation of e107 at the domain you specify. Using your server administration software (e.g. cPanel) - park your other domain on top of [x]");
e107::getMySQLConfig('user'); // prefix|server|user|password|
if(!isset($POST['create_multisite']))
{
$info = str_replace('[x]', e_DOMAIN, LANINS_133);
$mes->addInfo($info);
}
$text = $frm->open('multisite')."
".LANINS_131."
";
/*
$text .= "
".LANINS_030."
";
*/
$text .= "
".LANINS_031."
".LANINS_032."
";
$text .= "
".LANINS_033."
";
$text .= "
".LANINS_034."
\n";
$text .= "
".LANINS_073."
".LANINS_123."
".LANINS_124."
".LANINS_079."
".LANINS_081."
".$frm->admin_button('create_multisite',1,'submit','Create New Site')."
\n";
$text .= $frm->close();
e107::getRender()->tablerender(DBLAN_10.SEP."Multi-Site".SEP.$config['mySQLdefaultdb'], $mes->render().$text);
}
private function convertUTF8Form()
{
$mes = e107::getMessage();
$frm = e107::getForm();
$config = e107::getMySQLConfig();
$sql = e107::getDb();
$tp = e107::getParser();
$sql->gen('SHOW TABLE STATUS WHERE Name LIKE "'.$config['mySQLprefix'].'%" ');
$text = "