mirror of
https://github.com/kleeja-official/kleeja.git
synced 2025-12-15 20:49:41 +01:00
somehow complete sqlite support
This commit is contained in:
15
configx.php
Normal file
15
configx.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
//fill these variables with your data
|
||||
$dbtype = 'sqlite';
|
||||
$dbserver = 'localhost'; //database server
|
||||
$dbuser = 'root'; // database user
|
||||
$dbpass = '112233'; // database password
|
||||
// $dbname = 'kleeja'; // database name
|
||||
$dbname = 'kleeja.db'; // database name
|
||||
$dbprefix = 'klj_'; // if you use prefix for tables , fill it
|
||||
|
||||
|
||||
define('DEV_STAGE', true);
|
||||
define('STOP_TPL_CACHE', true);
|
||||
define('STOP_CAPTCHA', true);
|
||||
@@ -389,7 +389,9 @@ class KleejaDatabase
|
||||
$query_id = $this->result;
|
||||
}
|
||||
|
||||
if ($results = $query_id->numColumns())
|
||||
|
||||
|
||||
if ($query_id && $results = $query_id->numColumns())
|
||||
{
|
||||
return $results;
|
||||
}
|
||||
|
||||
@@ -114,14 +114,26 @@ function kleeja_eval($code)
|
||||
* @param mixed $nm
|
||||
* @param mixed $prf
|
||||
*/
|
||||
function do_config_export($srv, $usr, $pass, $nm, $prf)
|
||||
function do_config_export($srv, $usr, $pass, $nm, $prf, $type = 'mysql')
|
||||
{
|
||||
$data = '<?php' . "\n\n" . '//fill these variables with your data' . "\n";
|
||||
$data .= '$dbserver = \'' . str_replace("'", "\'", $srv) . "'; //database server \n";
|
||||
$data .= '$dbuser = \'' . str_replace("'", "\'", $usr) . "' ; // database user \n";
|
||||
$data .= '$dbpass = \'' . str_replace("'", "\'", $pass) . "'; // database password \n";
|
||||
$data .= '$dbname = \'' . str_replace("'", "\'", $nm) . "'; // database name \n";
|
||||
$data .= '$dbprefix = \'' . str_replace("'", "\'", $prf) . "'; // if you use prefix for tables , fill it \n";
|
||||
$data .= '//for more information about this file, visit: ' . "\n";
|
||||
$data .= '//https://github.com/kleeja-official/kleeja/wiki/config.php-file' . "\n\n";
|
||||
|
||||
if(!empty($type) && $type != 'mysql')
|
||||
{
|
||||
if ($type == 'sqlite' && strpos($nm, '.') === false)
|
||||
{
|
||||
$nm = $nm . '.db';
|
||||
}
|
||||
|
||||
$data .= '$dbtype = \'' . str_replace("'", "\'", $type) . "'; //database type \n";
|
||||
}
|
||||
$data .= '$dbserver = \'' . str_replace("'", "\'", $srv) . "'; //database server \n";
|
||||
$data .= '$dbuser = \'' . str_replace("'", "\'", $usr) . "' ; // database user \n";
|
||||
$data .= '$dbpass = \'' . str_replace("'", "\'", $pass) . "'; // database password \n";
|
||||
$data .= '$dbname = \'' . str_replace("'", "\'", $nm) . "'; // database name \n";
|
||||
$data .= '$dbprefix = \'' . str_replace("'", "\'", $prf) . "'; // if you use prefix for tables , fill it \n";
|
||||
|
||||
if (file_put_contents(PATH . 'config.php', $data, LOCK_EX) !== false)
|
||||
{
|
||||
|
||||
@@ -125,7 +125,7 @@ $install_sqls['config'] = "
|
||||
CREATE TABLE `{$dbprefix}config` (
|
||||
`name` varchar(255) collate utf8_bin NOT NULL PRIMARY KEY,
|
||||
`value` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||
`option` mediumtext collate utf8_bin NOT NULL DEFAULT '',
|
||||
`option` mediumtext collate utf8_bin NOT NULL,
|
||||
`display_order` int(10) NOT NULL DEFAULT '1',
|
||||
`type` varchar(20) NULL DEFAULT 'other',
|
||||
`plg_id` int(11) NOT NULL DEFAULT '0',
|
||||
@@ -142,13 +142,13 @@ CREATE TABLE `{$dbprefix}plugins` (
|
||||
`plg_name` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_ver` varchar(255) collate utf8_bin NOT NULL,
|
||||
`plg_author` varchar(255) collate utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_dsc` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_icon` blob NOT NULL DEFAULT '',
|
||||
`plg_uninstall` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_dsc` mediumtext COLLATE utf8_bin NOT NULL,
|
||||
`plg_icon` blob NOT NULL,
|
||||
`plg_uninstall` mediumtext COLLATE utf8_bin NOT NULL,
|
||||
`plg_disabled` tinyint(1) unsigned NOT NULL default '0',
|
||||
`plg_instructions` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_store` longtext COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_files` text COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`plg_instructions` mediumtext COLLATE utf8_bin NOT NULL,
|
||||
`plg_store` longtext COLLATE utf8_bin NOT NULL,
|
||||
`plg_files` text COLLATE utf8_bin NOT NULL,
|
||||
KEY `plg_name` (`plg_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin ;
|
||||
";
|
||||
|
||||
@@ -128,10 +128,9 @@ case 'c':
|
||||
if (ip('dbsubmit'))
|
||||
{
|
||||
//create config file, or export it to browser on failure
|
||||
do_config_export(p('db_server'), p('db_user'), p('db_pass'), p('db_name'), p('db_prefix'));
|
||||
do_config_export(p('db_server'), p('db_user'), p('db_pass'), p('db_name'), p('db_prefix'), p('db_type'));
|
||||
}
|
||||
|
||||
|
||||
$no_config = ! file_exists(PATH . 'config.php') || ig('force') ? false : true;
|
||||
$writeable_path = is_writable(PATH) ? true : false;
|
||||
|
||||
@@ -144,8 +143,13 @@ case 'check':
|
||||
$submit_disabled = $no_connection = $mysql_ver = false;
|
||||
|
||||
//config.php
|
||||
if (! empty($dbname) && ! empty($dbuser))
|
||||
if (! empty($dbname))
|
||||
{
|
||||
if (isset($dbtype) && $dbtype == 'sqlite')
|
||||
{
|
||||
@touch(PATH . $dbname);
|
||||
}
|
||||
|
||||
//connect .. for check
|
||||
$SQL = new KleejaDatabase($dbserver, $dbuser, $dbpass, $dbname, $dbprefix);
|
||||
|
||||
@@ -156,7 +160,6 @@ case 'check':
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (defined('SQL_LAYER') && SQL_LAYER == 'mysqli')
|
||||
{
|
||||
if (! empty($SQL->version()) && version_compare($SQL->version(), MIN_MYSQL_VERSION, '<'))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="BoxInner"><div class="BoxTopImg"></div><div class="BoxBody"><div class="inner">
|
||||
<div class="clr"></div>
|
||||
|
||||
{{if(empty($GLOBALS['dbname']) || empty($GLOBALS['dbuser'])): $GLOBALS['submit_disabled'] = true;}}
|
||||
{{if(empty($GLOBALS['dbname'])): $GLOBALS['submit_disabled'] = true;}}
|
||||
<div class="notice">
|
||||
<p class="error2"><img src="style/images/k_info.png" class="img" alt=" " />{{echo $lang['INST_CHANG_CONFIG']}}</p>
|
||||
</div>
|
||||
|
||||
@@ -2,28 +2,38 @@
|
||||
<div class="clr"></div>
|
||||
|
||||
{{if(!$GLOBALS['no_config']):}}
|
||||
<form method="post" action="{{echo './install.php?step=c&' . getlang(1)}}" onsubmit="javascript:return formCheck(this, Array('db_server','db_user' ,'db_name'));">
|
||||
<form method="post" action="{{echo './install.php?step=c&' . getlang(1)}}">
|
||||
<h2><img src="style/images/klj_info.png" class="img" alt="!" />{{echo $lang['DB_INFO']}}</h2>
|
||||
<table class="TableConf" dir="{{echo $lang['DIR']}}">
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_TYPE']}}</td>
|
||||
<td class="TdInput">
|
||||
<select name="db_type" id="db_type" style="text-align:left;direction:ltr">
|
||||
<option value="mysql" selected>{{echo $lang['DB_TYPE_MYSQL']}}</option>
|
||||
<option value="sqlite">{{echo $lang['DB_TYPE_SQLITE']}}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_SERVER']}}</td>
|
||||
<td class="TdInput"><input name="db_server" type="text" value="localhost" class="InputConf" /></td>
|
||||
<td class="TdInput"><input name="db_server" id="db_server" type="text" value="localhost" class="InputConf" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_NAME']}}</td>
|
||||
<td class="TdInput"><input name="db_name" type="text" class="InputConf" /></td>
|
||||
<td class="TdInput"><input name="db_name" id="db_name" type="text" value="kleeja" class="InputConf" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_USER']}}</td>
|
||||
<td class="TdInput"><input name="db_user" type="text" class="InputConf" /></td>
|
||||
<td class="TdInput"><input name="db_user" id="db_user" type="text" class="InputConf" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_PASSWORD']}}</td>
|
||||
<td class="TdInput"><input name="db_pass" type="text" class="InputConf" /></td>
|
||||
<td class="TdInput"><input name="db_pass" id="db_pass" type="text" class="InputConf" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="TdConf">{{echo $lang['DB_PREFIX']}}</td>
|
||||
<td class="TdInput"><input name="db_prefix" type="text" value="klj_" class="InputConf" /></td>
|
||||
<td class="TdInput"><input name="db_prefix" id="db_prefix" type="text" value="klj_" class="InputConf" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="clr"></div>
|
||||
|
||||
@@ -1,149 +1,131 @@
|
||||
<div class="clr"></div></div><div class="ins_klj"></div>
|
||||
<div class="clr"></div>
|
||||
</div>
|
||||
<div class="ins_klj"></div>
|
||||
<!-- strart code java script -->
|
||||
<script type="text/javascript" src="{{echo getjquerylink()}}"></script>
|
||||
<script type="text/javascript">{{echo gettpl('javascript.js')}}</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#lang").msDropDown();
|
||||
$("#toggleElement").click(function() {
|
||||
$("#next").toggle(!$(this).attr('checked'));
|
||||
$(document).ready(function () {
|
||||
$("#toggleElement").click(function () {
|
||||
$("#next").toggle(!$(this).attr('checked'));
|
||||
});
|
||||
$('#sitemail').keydown(function (e) {
|
||||
if ($(this).val().length > 1 && $('#email').val() == '') {
|
||||
$('#email').val($(this).val());
|
||||
}
|
||||
});
|
||||
|
||||
$('#db_type').change(function(e) {
|
||||
var state = $('#db_type').val() == 'sqlite';
|
||||
$('#db_server').attr('disabled', state);
|
||||
$('#db_user').attr('disabled', state);
|
||||
$('#db_pass').attr('disabled', state);
|
||||
});
|
||||
});
|
||||
$('input:checkbox:not([safari])').checkbox();
|
||||
$('#sitemail').keydown( function(e){
|
||||
if( $(this).val().length > 1) {
|
||||
$('#email').val($(this).val());
|
||||
|
||||
function w_email(l) {
|
||||
var m = document.getElementById(l);
|
||||
if (m.value.indexOf("@") == -1 || m.value.indexOf(".") == -1 || m.value.length < 7) {
|
||||
alert("{{echo $lang['WRONG_EMAIL']}}");
|
||||
m.focus();
|
||||
}
|
||||
});
|
||||
});
|
||||
/** By JavaScript Kit (http://javascriptkit.com) **/
|
||||
function w_email(l){
|
||||
var m = document.getElementById(l);
|
||||
if (m.value.indexOf("@") == - 1 || m.value.indexOf(".") == - 1 || m.value.length < 7 ) {
|
||||
alert("{{echo $lang['WRONG_EMAIL']}}");
|
||||
m.focus();
|
||||
}
|
||||
}
|
||||
function checkrequired(which){
|
||||
var pass = true;
|
||||
if (document.images)
|
||||
{
|
||||
for (i=0;i<which.length;i++)
|
||||
{
|
||||
var tempobj=which.elements[i]
|
||||
if (tempobj.name.substring(0,8)=="required")
|
||||
{
|
||||
if (((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==-1))
|
||||
{
|
||||
pass = false;
|
||||
break
|
||||
|
||||
function checkrequired(which) {
|
||||
var pass = true;
|
||||
if (document.images) {
|
||||
for (i = 0; i < which.length; i++) {
|
||||
var tempobj = which.elements[i]
|
||||
if (tempobj.name.substring(0, 8) == "required") {
|
||||
if (((tempobj.type == "text" || tempobj.type == "textarea") && tempobj.value == '') || (tempobj.type
|
||||
.toString().charAt(0) == "s" && tempobj.selectedIndex == -1)) {
|
||||
pass = false;
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!pass) {
|
||||
alert("{{echo $lang['VALIDATING_FORM_WRONG']}}");
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!pass)
|
||||
{
|
||||
alert("{{echo $lang['VALIDATING_FORM_WRONG']}}");
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/** http://www.dynamicdrive.com **/
|
||||
function formCheck(formobj, fieldRequired){
|
||||
|
||||
if( document.getElementById('pass1').value != document.getElementById('pass2').value)
|
||||
{
|
||||
alert("{{echo $lang['PASS_NEQ_PASS2']}}");
|
||||
return false;
|
||||
}
|
||||
// dialog message
|
||||
var alertMsg = "{{echo $lang['VALIDATING_FORM_WRONG']}}:\n";
|
||||
var l_Msg = alertMsg.length;
|
||||
//lang
|
||||
var lang = new Array(9);
|
||||
lang["db_server"] = "{{echo $lang['DB_SERVER']}}";
|
||||
lang["db_user"] = "{{echo $lang['DB_USER']}}";
|
||||
lang["db_name"] = "{{echo $lang['DB_NAME']}}";
|
||||
lang["sitename"] = "{{echo $lang['SITENAME']}}";
|
||||
lang["siteurl"] = "{{echo $lang['SITEURL']}}";
|
||||
lang["sitemail"] = "{{echo $lang['SITEMAIL']}}";
|
||||
lang["username"] = "{{echo $lang['USERNAME']}}";
|
||||
lang["password"] = "{{echo $lang['PASSWORD']}}";
|
||||
lang["password2"] = "{{echo $lang['PASSWORD2']}}";
|
||||
lang["email"] = "{{echo $lang['EMAIL']}}";
|
||||
|
||||
for (var i = 0; i < fieldRequired.length; i++)
|
||||
{
|
||||
var obj = formobj.elements[fieldRequired[i]];
|
||||
if (obj)
|
||||
{
|
||||
switch(obj.type)
|
||||
{
|
||||
case "text":
|
||||
case "textarea":
|
||||
if (obj.value == "" || obj.value == null)
|
||||
function formCheck(formobj, fieldRequired) {
|
||||
|
||||
if (document.getElementById('pass1').value != document.getElementById('pass2').value) {
|
||||
alert("{{echo $lang['PASS_NEQ_PASS2']}}");
|
||||
return false;
|
||||
}
|
||||
// dialog message
|
||||
var alertMsg = "{{echo $lang['VALIDATING_FORM_WRONG']}}:\n";
|
||||
var l_Msg = alertMsg.length;
|
||||
//lang
|
||||
var lang = new Array(9);
|
||||
lang["db_server"] = "{{echo $lang['DB_SERVER']}}";
|
||||
lang["db_user"] = "{{echo $lang['DB_USER']}}";
|
||||
lang["db_name"] = "{{echo $lang['DB_NAME']}}";
|
||||
lang["sitename"] = "{{echo $lang['SITENAME']}}";
|
||||
lang["siteurl"] = "{{echo $lang['SITEURL']}}";
|
||||
lang["sitemail"] = "{{echo $lang['SITEMAIL']}}";
|
||||
lang["username"] = "{{echo $lang['USERNAME']}}";
|
||||
lang["password"] = "{{echo $lang['PASSWORD']}}";
|
||||
lang["password2"] = "{{echo $lang['PASSWORD2']}}";
|
||||
lang["email"] = "{{echo $lang['EMAIL']}}";
|
||||
|
||||
for (var i = 0; i < fieldRequired.length; i++) {
|
||||
var obj = formobj.elements[fieldRequired[i]];
|
||||
if (obj) {
|
||||
switch (obj.type) {
|
||||
case "text":
|
||||
case "textarea":
|
||||
if (obj.value == "" || obj.value == null)
|
||||
alertMsg += " - " + lang[fieldRequired[i]] + "\n";
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
if (obj.type == undefined) {
|
||||
var blnchecked = false;
|
||||
for (var j = 0; j < obj.length; j++) {
|
||||
if (obj[j].checked)
|
||||
blnchecked = true;
|
||||
}
|
||||
|
||||
if (!blnchecked)
|
||||
alertMsg += " - " + lang[fieldRequired[i]] + "\n";
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
if (obj.type == undefined)
|
||||
{
|
||||
var blnchecked = false;
|
||||
for (var j = 0; j < obj.length; j++)
|
||||
{
|
||||
if (obj[j].checked)
|
||||
blnchecked = true;
|
||||
}
|
||||
|
||||
if (!blnchecked)
|
||||
alertMsg += " - " + lang[fieldRequired[i]] + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (alertMsg.length == l_Msg)
|
||||
return true;
|
||||
else {
|
||||
alert(alertMsg);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (alertMsg.length == l_Msg)
|
||||
return true;
|
||||
else
|
||||
{
|
||||
alert(alertMsg);
|
||||
return false;
|
||||
|
||||
function checkPass() {
|
||||
var pass1 = document.getElementById('pass1');
|
||||
var pass2 = document.getElementById('pass2');
|
||||
|
||||
var goodColor = "#66cc66";
|
||||
var badColor = "#ff6666";
|
||||
//Compare the values in the password field
|
||||
if(pass1.value != '' && pass2.value != '') {
|
||||
if (pass1.value == pass2.value) {
|
||||
pass1.style.backgroundColor = goodColor;
|
||||
pass2.style.backgroundColor = goodColor;
|
||||
} else {
|
||||
pass1.style.backgroundColor = badColor;
|
||||
pass2.style.backgroundColor = badColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function checkPass(){
|
||||
//Store the password field objects into variables ...
|
||||
var pass1 = document.getElementById('pass1');
|
||||
var pass2 = document.getElementById('pass2');
|
||||
//Store the Confimation Message Object ...
|
||||
//var message = document.getElementById('confirmMessage');
|
||||
//Set the colors we will be using ...
|
||||
var goodColor = "#66cc66";
|
||||
var badColor = "#ff6666";
|
||||
//Compare the values in the password field
|
||||
//and the confirmation field
|
||||
if(pass1.value == pass2.value){
|
||||
//The passwords match.
|
||||
//Set the color to the good color and inform
|
||||
//the user that they have entered the correct password
|
||||
pass1.style.backgroundColor = goodColor;
|
||||
pass2.style.backgroundColor = goodColor;
|
||||
//message.style.color = goodColor;
|
||||
//message.innerHTML = "Passwords Match!"
|
||||
}else{
|
||||
//The passwords do not match.
|
||||
//Set the color to the bad color and
|
||||
//notify the user.
|
||||
pass1.style.backgroundColor = badColor;
|
||||
pass2.style.backgroundColor = badColor;
|
||||
//message.style.color = badColor;
|
||||
//message.innerHTML = "Passwords Do Not Match!"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -57,8 +57,8 @@ return [
|
||||
'DB_INFO' => 'أدخل معلومات قاعدة البيانات',
|
||||
'DB_SERVER' => 'الخادم',
|
||||
'DB_TYPE' => 'نوع قاعدة البيانات',
|
||||
'DB_TYPE_MYSQL' => 'MySQL القياسي',
|
||||
'DB_TYPE_MYSQLI' => 'MySQL المطور',
|
||||
'DB_TYPE_MYSQL' => 'MySQL',
|
||||
'DB_TYPE_SQLITE' => 'SQLite',
|
||||
'DB_USER' => 'اسم المستخدم لقاعدة البيانات',
|
||||
'DB_PASSWORD' => 'كلمة المرور لقاعدة البيانات',
|
||||
'DB_NAME' => 'إسم قاعدة البيانات',
|
||||
|
||||
@@ -57,8 +57,8 @@ return [
|
||||
'DB_INFO' => 'Enter the database information ..!',
|
||||
'DB_SERVER' => 'Host',
|
||||
'DB_TYPE' => 'Database type',
|
||||
'DB_TYPE_MYSQL' => 'MySQL Standard',
|
||||
'DB_TYPE_MYSQLI' => 'MySQL Improved',
|
||||
'DB_TYPE_MYSQL' => 'MySQL',
|
||||
'DB_TYPE_SQLITE' => 'MySQL Improved',
|
||||
'DB_USER' => 'Database Username',
|
||||
'DB_PASSWORD' => 'Database Password',
|
||||
'DB_NAME' => 'Database Name',
|
||||
|
||||
Reference in New Issue
Block a user