Thread: [Openupload-svn-update] SF.net SVN: openupload:[13] trunk/lib/modules/db
Status: Beta
Brought to you by:
tsdogs
|
From: <ts...@us...> - 2008-10-15 14:39:40
|
Revision: 13
http://openupload.svn.sourceforge.net/openupload/?rev=13&view=rev
Author: tsdogs
Date: 2008-10-15 14:03:41 +0000 (Wed, 15 Oct 2008)
Log Message:
-----------
First svn commit
Added Paths:
-----------
trunk/lib/modules/db/mysql.inc.php
trunk/lib/modules/db/txt.inc.php
Added: trunk/lib/modules/db/mysql.inc.php
===================================================================
--- trunk/lib/modules/db/mysql.inc.php (rev 0)
+++ trunk/lib/modules/db/mysql.inc.php 2008-10-15 14:03:41 UTC (rev 13)
@@ -0,0 +1,157 @@
+<?php
+class mysqlDB extends dbBase {
+ var $db;
+ var $prefix;
+
+ function mysqlDB($prefix = '') {
+ $this->prefix = $prefix;
+ }
+
+ function init() {
+ /* connect to the database */
+ mysql_connect(app()->config['database']['host'],app()->config['database']['user'],app()->config['database']['password'])
+ or die(tr('ERROR: connection to database failed!'));
+
+ $this->db = mysql_select_db(app()->config['database']['name']);// or die('ERROR: database could not be opened');
+ }
+
+ function getLang($lang) {
+ $sql = 'select * from '.$this->prefix.'langs where id="'.$lang.'"';
+ $res = mysql_query($sql);
+ if (mysql_num_rows($res)>0) {
+ $result = mysql_fetch_assoc($res);
+ mysql_free_result($res);
+ return $result;
+ } else {
+ return array();
+ }
+ }
+
+ function queryUser($login) {
+ $res = mysql_query('select * from '.$this->prefix.'users where login="'.mysql_real_escape_string($login).'" and active=1');
+ if (mysql_num_rows($res)>0) {
+ $result = mysql_fetch_assoc($res);
+ mysql_free_result($res);
+ return $result;
+ } else {
+ return array();
+ }
+ }
+
+ function addUser($user) {
+ $e = 'mysql_real_escape_string';
+ $sql = 'insert into '.$this->prefix.'users (id,login,password,name,group_id,email,active) values
+ (NULL,"'.$e($user['login']).'","'.$e($user['password']).'","'.$e($user['name']).'","'.$e($user['group_id']).'","'
+ .$e($user['email']).'","'.$e($user['active']).'")';
+ mysql_query($sql);
+ }
+
+ function updateUser($user) {
+ $e = 'mysql_real_escape_string';
+ $sql = 'update '.$this->prefix.'users set
+ password="'.$e($user['password']).'",group_id="'.$e($user['group_id']).'",name="'.$e($user['name']).
+ '",email="'.$e($user['email']).'",active="'.$e($user['active']).'"'.
+ 'where id="'.$user['id'].'"';
+ mysql_query($sql);
+ }
+
+ function deleteUser($user) {
+ $e = 'mysql_real_escape_string';
+ $sql = 'delete from '.$this->prefix.'users where id="'.$user['id'].'"';
+ mysql_query($sql);
+ }
+
+ function getFileInfo($id) {
+ $sql = 'select * from '.$this->prefix.'files where id="'.mysql_real_escape_string($id).'"';
+
+ $res = mysql_query($sql);
+ if (mysql_num_rows($res)==1) {
+ $result = mysql_fetch_assoc($res);
+ } else {
+ $result = array();
+ }
+ mysql_free_result($res);
+ /* now add the additional info */
+ $sql = 'select name,value from '.$this->prefix.'file_options where file_id="'.mysql_real_escape_string($id).'"';
+ $res = mysql_query($sql);
+ while ($row = mysql_fetch_assoc($res)) {
+ $result[$row['name']]=$row['value'];
+ }
+ mysql_free_result($res);
+ return $result;
+ }
+
+ function newFileId($field = 'id') {
+ $found = true;
+ while ($found) {
+ $id = randomName(30,30);
+ $sql = 'select '.$field.' from '.$this->prefix.'files where id="'.mysql_real_escape_string($id).'"';
+ $res = mysql_query($sql);
+ $found = mysql_num_rows($res)>0;
+ mysql_free_result($res);
+ }
+ return $id;
+ }
+
+ function addFile(&$finfo) {
+ $e = 'mysql_real_escape_string';
+ $sql = 'insert into '.$this->prefix.'files (id,name,mime,description,size,remove,user_id,upload_date)
+ values ("'.$e($finfo['id']).'","'.$e($finfo['name']).'","'.$e($finfo['mime']).'","'.$e($finfo['description']).
+ '","'.$e($finfo['size']).'","'.$e($finfo['remove']).'","'.$_SESSION['user']['id'].'",now())';
+ /* now ask the plugins for additional options */
+ mysql_query($sql);
+ return $finfo['id'];
+ }
+
+ function addFileOption($finfo,$module,$field) {
+ $sql = 'insert into '.$this->prefix.'file_options (id,file_id,module,name,value)
+ values ("null","'.$finfo['id'].'","'.$module.'","'.$field.'","'.mysql_real_escape_string($finfo[$field]).'")';
+ /* now ask the plugins for additional options */
+ mysql_query($sql);
+ }
+
+ function removeFile($id) {
+ $sql = 'delete '.$this->prefix.'file_options
+ where file_id="'.mysql_real_escape_string($id).'"';
+ mysql_query($sql);
+ $sql = 'delete '.$this->prefix.'files
+ where id="'.mysql_real_escape_string($id).'"';
+ mysql_query($sql);
+ }
+
+ function loadAcl($group) {
+ $sql = 'select * from '.$this->prefix.'acl where (group_id="'.$group.'" or group_id="*") order by group_id,module,action';
+ $res = mysql_query($sql);
+ $acl = array();
+ while ($row = mysql_fetch_assoc($res)) {
+ $acl[$row['group_id']][$row['module']][$row['action']]=$row['access'];
+ }
+ mysql_free_result($res);
+ return $acl;
+ }
+ function loadPluginAcl($group) {
+ $sql = 'select plugin,access from '.$this->prefix.'plugin_acl where group_id="'.$group.'" group by plugin';
+ $res = mysql_query($sql);
+ $plugins = array();
+ while ($row = mysql_fetch_assoc($res)) {
+ $plugins[$row['plugin']] = $row['access'];
+ }
+ mysql_free_result($res);
+ return $plugins;
+ }
+
+ function loadTable($tbl,$sort = '') {
+ $sql = 'select * from '.$this->prefix.$tbl;
+ if ($sort!='') $sql .= ' order by '.$sort;
+
+ $res = mysql_query($sql);
+ $result = array();
+ while ($row = mysql_fetch_assoc($res)) {
+ $result[] = $row;
+ }
+ mysql_free_result($res);
+ return $result;
+ }
+}
+
+?>
\ No newline at end of file
Added: trunk/lib/modules/db/txt.inc.php
===================================================================
--- trunk/lib/modules/db/txt.inc.php (rev 0)
+++ trunk/lib/modules/db/txt.inc.php 2008-10-15 14:03:41 UTC (rev 13)
@@ -0,0 +1,117 @@
+<?php
+
+/* To be fully tested */
+
+/* plain file db */
+class txtDB extends dbBase {
+ var $rootdir;
+ var $prefix;
+
+ function txtDB() {
+ }
+
+ function readTxt ($file) {
+ $x = file_get_contents($file);
+ /* split the lines */
+ $result = array();
+ $lines = split("\n",$x);
+ foreach ($lines as $l) {
+ $r = split("\|",$l,2);
+ if (count($r)==2) {
+ $result[$r[0]]=$r[1];
+ }
+ }
+ return $result;
+ }
+
+ function writeTxt($file,$lines) {
+ $x = '';
+ foreach ($lines as $k => $l) {
+ $x .= $k.'|'.$l."\n";
+ }
+ file_put_contents($file,$x);
+ }
+
+ function init() {
+ /* initialize file names */
+ $this->baseDir=app()->config['database']['rootdir'];
+ $this->prefix=app()->config['database']['prefix'];
+ if (!is_dir($this->baseDir)) {
+ die(tr('ERROR: database folder not found!'));
+ }
+ $dirs = array('users','files','groups');
+ foreach ($dirs as $d) {
+ if (!is_dir($this->baseDir.'/'.$this->prefix.$d)) {
+ if (!mkdir($this->baseDir.'/'.$this->prefix.$d)) {
+ die(tr('ERROR: Could not create folder for %1 table!',$d));
+ }
+ }
+ }
+ }
+
+ function queryUser($login) {
+ $file = $this->baseDir.'/'.$this->prefix.'users/'.$login.'.txt';
+ if (!file_exists($file)) {
+ return array();
+ } else {
+ $result = $this->readTxt($file);
+ if ($result['active']==1)
+ return $result;
+ else
+ return array();
+ }
+ }
+
+ function addUser($user) {
+ /* should compute a real new id */
+ $id = randomName(1,20);
+ $user['id'] = $id;
+ $file = $this->baseDir.'/'.$this->prefix.'users/'.$user['login'].'.txt';
+ $this->writeTxt($file,$user);
+ }
+
+ function updateUser($user) {
+ $file = $this->baseDir.'/'.$this->prefix.'users/'.$user['login'].'.txt';
+ $this->writeTxt($file,$user);
+ }
+
+ function deleteUser($user) {
+ $file = $this->baseDir.'/'.$this->prefix.'users/'.$user['login'].'.txt';
+ unlink($file);
+ /* probably should remove all the files uploaded too */
+ }
+
+ function getFileInfo($id) {
+ $file = $this->baseDir.'/'.$this->prefix.'files/'.$id.'.txt';
+ $finfo = $this->readTxt($file);
+ return $finfo;
+ }
+
+ function newFileId($field = 'id') {
+ $found = true;
+ /* let's hope we never get the duplicate on 2 or more users uploading at the same time */
+ while ($found) {
+ $id = randomName(30,30);
+ $found = file_exists($this->baseDir.'/'.$this->prefix.'files/'.$id.'.txt');
+ }
+ return $id;
+ }
+
+ function addFile(&$finfo) {
+ $finfo['user_id']=$_SESSION['user']['login'];
+ $finfo['upload_date']=date('Y-m-d h:i:s');
+ $file = $this->baseDir.'/'.$this->prefix.'files/'.$finfo['id'].'.txt';
+ $this->writeTxt($file,$finfo);
+ return $finfo['id'];
+ }
+
+ function addFileOption($finfo,$module,$field) {
+ /* this has been saved into the file for now, if needed will split it */
+ }
+
+ function removeFile($id) {
+ unlink($this->baseDir.'/'.$this->prefix.'files/'.$id.'.txt');
+ }
+
+}
+?>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ts...@us...> - 2008-11-07 19:09:38
|
Revision: 132
http://openupload.svn.sourceforge.net/openupload/?rev=132&view=rev
Author: tsdogs
Date: 2008-11-07 19:09:35 +0000 (Fri, 07 Nov 2008)
Log Message:
-----------
Add database connection close
Modified Paths:
--------------
trunk/lib/modules/db/mysql.inc.php
trunk/lib/modules/db/pgsql.inc.php
Modified: trunk/lib/modules/db/mysql.inc.php
===================================================================
--- trunk/lib/modules/db/mysql.inc.php 2008-11-07 19:08:56 UTC (rev 131)
+++ trunk/lib/modules/db/mysql.inc.php 2008-11-07 19:09:35 UTC (rev 132)
@@ -12,12 +12,16 @@
function init() {
/* connect to the database */
mysql_connect($this->config['host'],$this->config['user'],$this->config['password'])
- or die(tr('ERROR: connection to database failed!'));
+ or die('ERROR: connection to database failed!');
- $this->db = mysql_select_db($this->config['name']);// or die('ERROR: database could not be opened');
+ $this->db = mysql_select_db($this->config['name']) or die('ERROR: database could not be opened');
}
+ function free() {
+ mysql_close();
+ }
+
function newId($tbl,$field = 'id',$keys = array ()) {
$sql = 'SELECT max(`'.$field.'`) as newid FROM `'.$this->prefix.$tbl.'`';
if (count($keys)>0) {
Modified: trunk/lib/modules/db/pgsql.inc.php
===================================================================
--- trunk/lib/modules/db/pgsql.inc.php 2008-11-07 19:08:56 UTC (rev 131)
+++ trunk/lib/modules/db/pgsql.inc.php 2008-11-07 19:09:35 UTC (rev 132)
@@ -23,6 +23,10 @@
$this->db = pg_connect($str) or die('ERROR: connection to db failed!');
}
+ function free() {
+ pg_close($this->db);
+ }
+
function newId($tbl,$field = 'id',$keys = array ()) {
$sql = 'SELECT max("'.$field.'") as newid FROM "'.$this->prefix.$tbl.'"';
if (count($keys)>0) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ts...@us...> - 2009-02-05 15:40:43
|
Revision: 228
http://openupload.svn.sourceforge.net/openupload/?rev=228&view=rev
Author: tsdogs
Date: 2009-02-05 15:40:38 +0000 (Thu, 05 Feb 2009)
Log Message:
-----------
add alphanumerical random string generation options
Modified Paths:
--------------
trunk/lib/modules/db/mysql.inc.php
trunk/lib/modules/db/pgsql.inc.php
trunk/lib/modules/db/txt.inc.php
Modified: trunk/lib/modules/db/mysql.inc.php
===================================================================
--- trunk/lib/modules/db/mysql.inc.php 2009-02-05 15:40:07 UTC (rev 227)
+++ trunk/lib/modules/db/mysql.inc.php 2009-02-05 15:40:38 UTC (rev 228)
@@ -38,10 +38,10 @@
return $id['newid']+1;
}
- function newRandomId($tbl,$field = 'id') {
+ function newRandomId($tbl,$field = 'id',$size = 30, $alpha = false) {
$found = true;
while ($found) {
- $id = randomName(30,30);
+ $id = randomName($size,$size,$alpha);
$sql = 'SELECT '.$field.' FROM `'.$this->prefix.$tbl.'` WHERE `'.$field.'`="'.$id.'"';
$res = mysql_query($sql);
$found = mysql_num_rows($res)>0;
Modified: trunk/lib/modules/db/pgsql.inc.php
===================================================================
--- trunk/lib/modules/db/pgsql.inc.php 2009-02-05 15:40:07 UTC (rev 227)
+++ trunk/lib/modules/db/pgsql.inc.php 2009-02-05 15:40:38 UTC (rev 228)
@@ -43,10 +43,10 @@
return $id['newid']+1;
}
- function newRandomId($tbl,$field = 'id') {
+ function newRandomId($tbl,$field = 'id',$size = 30, $alpha = false) {
$found = true;
while ($found) {
- $id = randomName(30,30);
+ $id = randomName($size,$size,$alpha);
$sql = 'SELECT '.$field.' FROM "'.$this->prefix.$tbl.'" WHERE "'.$field.'"=\''.$id.'\'';
$res = pg_query($sql);
$found = pg_num_rows($res)>0;
Modified: trunk/lib/modules/db/txt.inc.php
===================================================================
--- trunk/lib/modules/db/txt.inc.php 2009-02-05 15:40:07 UTC (rev 227)
+++ trunk/lib/modules/db/txt.inc.php 2009-02-05 15:40:38 UTC (rev 228)
@@ -146,11 +146,11 @@
return 1;
}
- function newRandomId($tbl,$field = 'id') {
+ function newRandomId($tbl,$field = 'id',$size = 30, $alpha = false) {
$found = true;
$rows = $this->readTxt($this->baseDir.'/'.$tbl.'.txt');
while ($found) {
- $id = randomName(30,30);
+ $id = randomName($size,$size,$alpha);
$found = false;
foreach ($rows as $row) {
/* should check for the exsistence */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|