diff --git a/admin/include/functions.php b/admin/include/functions.php
index 2b4ee9d3e..0828f0e06 100644
--- a/admin/include/functions.php
+++ b/admin/include/functions.php
@@ -19,9 +19,7 @@ $tab_ext_create_TN = array ( 'jpg', 'png' );
function is_image( $filename, $create_thumbnail = false )
{
- global $tab_ext_create_TN, $conf;
-
- $is_image = false;
+ global $conf;
if ( is_file ( $filename ) )
{
@@ -34,7 +32,7 @@ function is_image( $filename, $create_thumbnail = false )
if ( in_array( get_extension( $filename ), $conf['picture_ext'] )
and ( $size[2] == 1 or $size[2] == 2 or $size[2] == 3 ) )
{
- $is_image = true;
+ return true;
}
}
else
@@ -42,11 +40,11 @@ function is_image( $filename, $create_thumbnail = false )
if ( in_array( get_extension( $filename ), $tab_ext_create_TN )
and ( $size[2] == 2 or $size[2] == 3 ) )
{
- $is_image = true;
+ return true;
}
}
}
- return $is_image;
+ return false;
}
function TN_exists( $dir, $file )
diff --git a/include/config.inc.php b/include/config.inc.php
index f0a348a24..719edf156 100644
--- a/include/config.inc.php
+++ b/include/config.inc.php
@@ -20,10 +20,9 @@ $page = array();
$user = array();
$lang = array();
-include_once( PREFIXE_INCLUDE.'./include/mysql.inc.php' );
include_once( PREFIXE_INCLUDE.'./include/functions.inc.php' );
include_once( PREFIXE_INCLUDE.'./include/vtemplate.class.php' );
-//
+
// How to change the order of display for images in a category ?
//
// You have to modify $conf['order_by'].
@@ -46,6 +45,8 @@ $conf['nb_row_page'] = array ('2','3','4','5','6','7','10','20','1000');
$conf['version'] = '1.3';
$conf['site_url'] = 'http://www.phpwebgallery.net';
$conf['forum_url'] = 'http://forum.phpwebgallery.net';
+$conf['picture_ext'] = array ( 'jpg','JPG','gif','GIF','png','PNG' );
+$conf['document_ext'] = array( 'doc','pdf','zip' );
database_connection();
// rertieving the configuration informations for site
@@ -73,7 +74,7 @@ for ( $i = 0; $i < sizeof( $infos ); $i++ )
}
$query.= $infos[$i];
}
-$query .= ' from '.$prefixeTable.'config;';
+$query .= ' from '.PREFIX_TABLE.'config;';
$row = mysql_fetch_array( mysql_query( $query ) );
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 85db1eb76..41611df86 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -17,6 +17,7 @@
include( 'functions_user.inc.php' );
include( 'functions_session.inc.php' );
include( 'functions_category.inc.php' );
+include( 'functions_xml.inc.php' );
//----------------------------------------------------------- generic functions
@@ -128,6 +129,20 @@ function replace_space( $string )
return $return_string;
}
+// get_extension returns the part of the string after the last "."
+function get_extension( $filename )
+{
+ return substr( strrchr( $filename, '.' ), 1, strlen ( $filename ) );
+}
+
+// get_filename_wo_extension returns the part of the string before the last
+// ".".
+// get_filename_wo_extension( 'test.tar.gz' ) -> 'test.tar'
+function get_filename_wo_extension( $filename )
+{
+ return substr( $filename, 0, strrpos( $filename, '.' ) );
+}
+
// get_dirs retourne un tableau contenant tous les sous-répertoires d'un
// répertoire
function get_dirs( $rep )
@@ -202,7 +217,6 @@ function get_picture_size( $original_width, $original_height,
$picture_size[1] = $height;
return $picture_size;
}
-
//-------------------------------------------- PhpWebGallery specific functions
// get_languages retourne un tableau contenant tous les languages
@@ -278,20 +292,31 @@ function replace_search( $string, $search )
function database_connection()
{
- global $cfgHote,$cfgUser,$cfgPassword,$cfgBase;
+ // $cfgHote,$cfgUser,$cfgPassword,$cfgBase;
+
+ $xml_content = getXmlCode( PREFIXE_INCLUDE.'./include/database_config.xml' );
+ $mysql_conf = getChild( $xml_content, 'mysql' );
+
+ $cfgHote = getAttribute( $mysql_conf, 'host' );
+ $cfgUser = getAttribute( $mysql_conf, 'user' );
+ $cfgPassword = getAttribute( $mysql_conf, 'password' );
+ $cfgBase = getAttribute( $mysql_conf, 'base' );
+
@mysql_connect( $cfgHote, $cfgUser, $cfgPassword )
or die ( "Could not connect to server" );
@mysql_select_db( $cfgBase )
or die ( "Could not connect to database" );
+
+ define( PREFIX_TABLE, getAttribute( $mysql_conf, 'tablePrefix' ) );
}
function pwg_log( $file, $category, $picture = '' )
{
- global $conf, $user, $prefixeTable;
+ global $conf, $user;
if ( $conf['log'] )
{
- $query = 'insert into '.$prefixeTable.'history';
+ $query = 'insert into '.PREFIX_TABLE.'history';
$query.= ' (date,login,IP,file,category,picture) values';
$query.= " (".time().", '".$user['pseudo']."'";
$query.= ",'".$_SERVER['REMOTE_ADDR']."'";
diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php
index 115ee434e..3ec6102c1 100644
--- a/include/functions_category.inc.php
+++ b/include/functions_category.inc.php
@@ -16,14 +16,13 @@
***************************************************************************/
function get_subcats_id( $cat_id )
{
- global $prefixeTable;
-
$restricted_cat = array();
$i = 0;
- $query = "select id";
- $query.= " from $prefixeTable"."categories";
- $query.= " where id_uppercat = $cat_id;";
+ $query = 'select id';
+ $query.= ' from '.PREFIX_TABLE.'categories';
+ $query.= ' where id_uppercat = '.$cat_id;
+ $query.= ';';
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
{
@@ -40,7 +39,7 @@ function get_subcats_id( $cat_id )
function check_restrictions( $category_id )
{
- global $user,$lang,$prefixeTable;
+ global $user,$lang;
if ( is_user_allowed( $category_id, $user['restrictions'] ) > 0 )
{
@@ -57,13 +56,17 @@ function check_restrictions( $category_id )
// - $cat equals 'search' (when the result of a search is displayed)
function check_cat_id( $cat )
{
- global $page,$prefixeTable;
+ global $page;
+
unset( $page['cat'] );
if ( isset( $cat ) )
{
if ( is_numeric( $cat ) )
{
- $query = "select id from $prefixeTable"."categories where id = $cat;";
+ $query = 'select id';
+ $query.= ' from '.PREFIX_TABLE.'categories';
+ $query.= ' where id = '.$cat;
+ $query. ';';
$result = mysql_query( $query );
if ( mysql_num_rows( $result ) != 0 )
{
@@ -80,10 +83,10 @@ function check_cat_id( $cat )
function display_cat( $id_uppercat, $indent, $restriction, $tab_expand )
{
- global $prefixeTable,$user,$lang,$conf,$page,$vtp,$handle;
+ global $user,$lang,$conf,$page,$vtp,$handle;
$query = 'select name,id,date_dernier,nb_images,dir';
- $query.= ' from '.$prefixeTable.'categories';
+ $query.= ' from '.PREFIX_TABLE.'categories';
$query.= ' where id_uppercat';
if ( $id_uppercat == "" )
{
@@ -201,10 +204,10 @@ function display_cat( $id_uppercat, $indent, $restriction, $tab_expand )
function get_nb_subcats( $id )
{
- global $prefixeTable,$user;
+ global $user;
$query = 'select count(*) as count';
- $query.= ' from '.$prefixeTable.'categories';
+ $query.= ' from '.PREFIX_TABLE.'categories';
$query.= ' where id_uppercat = '.$id;
for ( $i = 0; $i < sizeof( $user['restrictions'] ); $i++ )
{
@@ -218,12 +221,10 @@ function get_nb_subcats( $id )
function get_total_image( $id, $restriction )
{
- global $prefixeTable;
-
$total = 0;
$query = 'select id,nb_images';
- $query.= ' from '.$prefixeTable.'categories';
+ $query.= ' from '.PREFIX_TABLE.'categories';
$query.= ' where id_uppercat';
if ( !is_numeric( $id ) )
{
@@ -259,14 +260,12 @@ function get_total_image( $id, $restriction )
// $cat['site_id']
function get_cat_info( $id )
{
- global $prefixeTable;
-
$cat = array();
$cat['name'] = array();
$query = 'select nb_images,id_uppercat,comment,site_id,galleries_url,dir';
- $query.= ' from '.$prefixeTable.'categories as a';
- $query.= ', '.$prefixeTable.'sites as b';
+ $query.= ' from '.PREFIX_TABLE.'categories as a';
+ $query.= ', '.PREFIX_TABLE.'sites as b';
$query.= ' where a.id = '.$id;
$query.= ' and a.site_id = b.id;';
$row = mysql_fetch_array( mysql_query( $query ) );
@@ -284,7 +283,7 @@ function get_cat_info( $id )
while ( !$is_root )
{
$query = 'select name,dir,id_uppercat';
- $query.= ' from '.$prefixeTable.'categories';
+ $query.= ' from '.PREFIX_TABLE.'categories';
$query.= ' where id = '.$row['id_uppercat'].';';
$row = mysql_fetch_array( mysql_query( $query ) );
$cat['dir'] = $row['dir']."/".$cat['dir'];
@@ -359,7 +358,7 @@ function get_cat_display_name( $array_cat_names, $separation, $style )
// 4. creation of the navigation bar
function initialize_category( $calling_page = 'category' )
{
- global $prefixeTable,$page,$lang,$user,$conf;
+ global $page,$lang,$user,$conf;
if ( isset( $page['cat'] ) )
{
@@ -397,7 +396,7 @@ function initialize_category( $calling_page = 'category' )
$page['where'].= " or comment like '%".$_GET['search']."%' )";
$query = 'select count(*) as nb_total_images';
- $query.= ' from '.$prefixeTable.'images';
+ $query.= ' from '.PREFIX_TABLE.'images';
$query.= $page['where'];
$query.= ';';
@@ -408,12 +407,12 @@ function initialize_category( $calling_page = 'category' )
{
$page['title'] = $lang['favorites'];
- $page['where'] = ', '.$prefixeTable.'favorites';
+ $page['where'] = ', '.PREFIX_TABLE.'favorites';
$page['where'].= ' where user_id = '.$user['id'];
$page['where'].= ' and image_id = id';
$query = 'select count(*) as nb_total_images';
- $query.= ' from '.$prefixeTable.'favorites';
+ $query.= ' from '.PREFIX_TABLE.'favorites';
$query.= ' where user_id = '.$user['id'];
$query.= ';';
}
@@ -428,7 +427,7 @@ function initialize_category( $calling_page = 'category' )
$page['where'].= date( 'Y-m-d', $date )."'";
$query = 'select count(*) as nb_total_images';
- $query.= ' from '.$prefixeTable.'images';
+ $query.= ' from '.PREFIX_TABLE.'images';
$query.= $page['where'];
$query.= ';';
}
diff --git a/include/functions_session.inc.php b/include/functions_session.inc.php
index 722627dc7..352e7cd7d 100644
--- a/include/functions_session.inc.php
+++ b/include/functions_session.inc.php
@@ -36,10 +36,10 @@ function generate_key()
{
$key .= chr( mt_rand( 65, 90 ) );
}
- elseif ( $c == 1 )
- {
- $key .= chr( mt_rand( 97, 122 ) );
- }
+ else if ( $c == 1 )
+ {
+ $key .= chr( mt_rand( 97, 122 ) );
+ }
else
{
$key .= mt_rand( 0, 9 );
@@ -50,14 +50,14 @@ function generate_key()
function session_create( $username )
{
- global $conf,$prefixeTable,$REMOTE_ADDR;
+ global $conf;
// 1. searching an unused sesison key
$id_found = false;
while ( !$id_found )
{
$generated_id = generate_key();
$query = 'select id';
- $query.= ' from '.$prefixeTable.'sessions';
+ $query.= ' from '.PREFIX_TABLE.'sessions';
$query.= " where id = '".$generated_id."';";
$result = mysql_query( $query );
if ( mysql_num_rows( $result ) == 0 )
@@ -67,16 +67,16 @@ function session_create( $username )
}
// 2. retrieving id of the username given in parameter
$query = 'select id';
- $query.= ' from '.$prefixeTable.'users';
+ $query.= ' from '.PREFIX_TABLE.'users';
$query.= " where username = '".$username."';";
$row = mysql_fetch_array( mysql_query( $query ) );
$user_id = $row['id'];
// 3. inserting session in database
- $expiration = $conf['session_time']*60+time();
- $query = 'insert into '.$prefixeTable.'sessions';
+ $expiration = $conf['session_time'] * 60 + time();
+ $query = 'insert into '.PREFIX_TABLE.'sessions';
$query.= ' (id,user_id,expiration,ip) values';
$query.= "('".$generated_id."','".$user_id;
- $query.= "','".$expiration."','".$REMOTE_ADDR."');";
+ $query.= "','".$expiration."','".$_SERVER['REMOTE_ADDR']."');";
mysql_query( $query );
return $generated_id;
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index 03be22b1a..e9d3558d8 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -38,7 +38,7 @@ function validate_mail_address( $mail_address )
function register_user(
$login, $password, $password_conf, $mail_address, $status = 'guest' )
{
- global $prefixeTable, $lang;
+ global $lang;
$error = array();
$i = 0;
@@ -66,7 +66,7 @@ function register_user(
else
{
$query = 'select id';
- $query.= ' from '.$prefixeTable.'users';
+ $query.= ' from '.PREFIX_TABLE.'users';
$query.= " where username = '".$login."';";
$result = mysql_query( $query );
if ( mysql_num_rows( $result ) > 0 )
@@ -106,11 +106,11 @@ function register_user(
}
$query.= $infos[$i];
}
- $query.= ' from '.$prefixeTable.'users';
+ $query.= ' from '.PREFIX_TABLE.'users';
$query.= " where username = 'guest';";
$row = mysql_fetch_array( mysql_query( $query ) );
// 2. adding new user
- $query = 'insert into '.$prefixeTable.'users';
+ $query = 'insert into '.PREFIX_TABLE.'users';
$query.= ' (';
$query.= ' username,password,mail_address,status';
for ( $i = 0; $i < sizeof( $infos ); $i++ )
@@ -145,20 +145,20 @@ function register_user(
mysql_query( $query );
// 3. retrieving the id of the newly created user
$query = 'select id';
- $query.= ' from '.$prefixeTable.'users';
+ $query.= ' from '.PREFIX_TABLE.'users';
$query.= " where username = '".$login."';";
$row = mysql_fetch_array( mysql_query( $query ) );
$user_id = $row['id'];
// 4. adding restrictions to the new user, the same as the user "guest"
$query = 'select cat_id';
- $query.= ' from '.$prefixeTable.'restrictions as r';
- $query.= ','.$prefixeTable.'users as u ';
+ $query.= ' from '.PREFIX_TABLE.'restrictions as r';
+ $query.= ','.PREFIX_TABLE.'users as u ';
$query.= ' where u.id = r.user_id';
$query.= " and u.username = 'guest';";
$result = mysql_query( $query );
while( $row = mysql_fetch_array( $result ) )
{
- $query = 'insert into '.$prefixeTable.'restrictions';
+ $query = 'insert into '.PREFIX_TABLE.'restrictions';
$query.= ' (user_id,cat_id) values';
$query.= ' ('.$user_id.','.$row['cat_id'].');';
mysql_query ( $query );
@@ -170,8 +170,6 @@ function register_user(
function update_user( $user_id, $mail_address, $status,
$use_new_password = false, $password = '' )
{
- global $prefixeTable;
-
$error = array();
$i = 0;
@@ -183,7 +181,7 @@ function update_user( $user_id, $mail_address, $status,
if ( sizeof( $error ) == 0 )
{
- $query = 'update '.$prefixeTable.'users';
+ $query = 'update '.PREFIX_TABLE.'users';
$query.= " set status = '".$status."'";
if ( $use_new_password )
{
@@ -224,12 +222,11 @@ function check_login_authorization()
// are added to the restricted one in the array.
function get_restrictions( $user_id, $user_status, $check_invisible )
{
- global $prefixeTable;
-
// 1. getting the ids of the restricted categories
- $query = "select cat_id";
- $query.= " from $prefixeTable"."restrictions";
- $query.= " where user_id = $user_id;";
+ $query = 'select cat_id';
+ $query.= ' from '.PREFIX_TABLE.'restrictions';
+ $query.= ' where user_id = '.$user_id;
+ $query.= ';';
$result = mysql_query( $query );
$i = 0;
$restriction = array();
@@ -243,7 +240,7 @@ function get_restrictions( $user_id, $user_status, $check_invisible )
if ( $user_status != "admin" )
{
$query = 'select id';
- $query.= ' from '.$prefixeTable.'categories';
+ $query.= ' from '.PREFIX_TABLE.'categories';
$query.= " where status='invisible';";
$result = mysql_query( $query );
while ( $row = mysql_fetch_array( $result ) )
@@ -260,8 +257,6 @@ function get_restrictions( $user_id, $user_status, $check_invisible )
// sub-categories and invisible categories
function get_all_restrictions( $user_id, $user_status )
{
- global $prefixeTable;
-
$restricted_cat = get_restrictions( $user_id, $user_status, true );
$i = sizeof( $restricted_cat );
for ( $k = 0; $k < sizeof( $restricted_cat ); $k++ )
@@ -281,16 +276,17 @@ function get_all_restrictions( $user_id, $user_status )
// - 2 : if an uppercat category is not allowed
function is_user_allowed( $category_id, $restrictions )
{
- global $user,$prefixeTable;
+ global $user;
$lowest_category_id = $category_id;
$is_root = false;
while ( !$is_root and !in_array( $category_id, $restrictions ) )
{
- $query = "select id_uppercat";
- $query.= " from $prefixeTable"."categories";
- $query.= " where id = $category_id;";
+ $query = 'select id_uppercat';
+ $query.= ' from '.PREFIX_TABLE.'categories';
+ $query.= ' where id = '.$category_id;
+ $query.= ';';
$row = mysql_fetch_array( mysql_query( $query ) );
if ( $row['id_uppercat'] == "" )
{
diff --git a/include/functions_xml.inc.php b/include/functions_xml.inc.php
new file mode 100644
index 000000000..1919608ad
--- /dev/null
+++ b/include/functions_xml.inc.php
@@ -0,0 +1,119 @@
+ *
+ * *
+ ***************************************************************************
+
+ ***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; *
+ * *
+ ***************************************************************************/
+
+//------------------------------------------------------------------ constantes
+define( ATT_REG, '\w+' );
+define( VAL_REG, '[^"]*' );
+
+//------------------------------------------------------------------- functions
+// getContent returns the content of a tag
+//
+// example : getContent( "
| {#reg_mail_address} | +{#mail_address} |