[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.
|