aboutsummaryrefslogtreecommitdiffstats
path: root/admin/include/functions.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/include/functions.php194
1 files changed, 194 insertions, 0 deletions
diff --git a/admin/include/functions.php b/admin/include/functions.php
new file mode 100644
index 000000000..1aee2d94d
--- /dev/null
+++ b/admin/include/functions.php
@@ -0,0 +1,194 @@
+<?php
+/***************************************************************************
+ * functions.php is a part of PhpWebGallery *
+ * ------------------- *
+ * last update : Tuesday, September 26, 2002 *
+ * email : pierrick@z0rglub.com *
+ * *
+ ***************************************************************************
+
+ ***************************************************************************
+ * *
+ * 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; *
+ * *
+ ***************************************************************************/
+
+ $tab_ext = array ( 'jpg', 'gif', 'JPG','GIF','png','PNG' );
+ $tab_ext_create_TN = array ( 'jpg', 'JPG','png','PNG' );
+
+ function get_extension( $filename )
+ {
+ return substr ( strrchr($filename,"."), 1, strlen ( $filename ) );
+ }
+
+ function is_image( $filename, $create_thumbnail = false )
+ {
+ global $tab_ext, $tab_ext_create_TN;
+ $is_image = false;
+ if ( is_file ( $filename ) )
+ {
+ $size = getimagesize( $filename );
+ // $size[2] == 1 means GIF
+ // $size[2] == 2 means JPG
+ // $size[2] == 3 means PNG
+ if ( !$create_thumbnail )
+ {
+ if ( in_array ( get_extension( $filename ), $tab_ext ) && ( $size[2] == 1 || $size[2] == 2 || $size[2] == 3 ) )
+ {
+ $is_image = true;
+ }
+ }
+ else
+ {
+ if ( in_array ( get_extension( $filename ), $tab_ext_create_TN ) && ( $size[2] == 2 || $size[2] == 3 ) )
+ {
+ $is_image = true;
+ }
+ }
+ }
+ return $is_image;
+ }
+
+ function TN_exist ( $dir, $file )
+ {
+ global $tab_ext, $conf;
+ $titre = substr ( $file, 0, strrpos ( $file, ".") );
+ for ( $i = 0; $i < sizeof ( $tab_ext ); $i++ )
+ {
+ $test = $dir."/thumbnail/".$conf['prefixe_thumbnail'].$titre.".".$tab_ext[$i];
+ if ( is_file ( $test ) )
+ {
+ return $tab_ext[$i];
+ }
+ }
+ return false;
+ }
+
+ // The function delete_site deletes a site
+ // and call the function delete_category for each primary category of the site
+ function delete_site( $id )
+ {
+ global $prefixeTable;
+
+ // destruction of the categories of the site
+ $query = "select id from $prefixeTable"."categories where site_id = $id;";
+ $result = mysql_query( $query );
+ while ( $row = mysql_fetch_array( $result ) )
+ {
+ delete_category( $row['id'] );
+ }
+
+ // destruction of the site
+ $query = "delete from $prefixeTable"."sites where id = $id;";
+ mysql_query( $query );
+ }
+
+ // The function delete_category deletes the category identified by the $id
+ // It also deletes (in the database) :
+ // - all the images of the images (thanks to delete_image, see further)
+ // - all the restrictions linked to the category
+ // The function works recursively.
+ function delete_category( $id )
+ {
+ global $prefixeTable;
+
+ // destruction of all the related images
+ $query = "select id from $prefixeTable"."images where cat_id = '".$id."';";
+ $result = mysql_query( $query );
+ while ( $row = mysql_fetch_array( $result ) )
+ {
+ delete_image( $row['id'] );
+ }
+
+ // destruction of the restrictions linked to the category
+ $query = "delete from $prefixeTable"."restrictions where cat_id = '".$id."';";
+ mysql_query( $query );
+
+ // destruction of the sub-categories
+ $query = "select id from $prefixeTable"."categories where id_uppercat = '$id';";
+ $result = mysql_query( $query );
+ while( $row = mysql_fetch_array( $result ) )
+ {
+ delete_category( $row['id'] );
+ }
+
+ // destruction of the category
+ $query = "delete from $prefixeTable"."categories where id = '$id';";
+ mysql_query( $query );
+ }
+
+ // The function delete_image deletes the image identified by the $id
+ // It also deletes (in the database) :
+ // - all the comments related to the image
+ // - all the favorites associated to the image
+ function delete_image( $id )
+ {
+ global $prefixeTable,$count_deleted;
+
+ // destruction of the comments on the image
+ $query = "delete from $prefixeTable"."comments where image_id = $id;";
+ mysql_query( $query );
+
+ // destruction of the favorites associated with the picture
+ $query = "delete from $prefixeTable"."favorites where image_id = $id;";
+ mysql_query( $query );
+
+ // destruction of the image
+ $query = "delete from $prefixeTable"."images where id = $id;";
+ mysql_query( $query );
+ $count_deleted++;
+ }
+
+ // The delete_user function delete a user identified by the $user_id
+ // It also deletes :
+ // - all the restrictions linked to this user
+ // - all the favorites linked to this user
+ function delete_user( $user_id )
+ {
+ global $prefixeTable;
+
+ // destruction of the restrictions linked to the user
+ $query = "delete from $prefixeTable"."restrictions where user_id = $user_id;";
+ mysql_query( $query );
+
+ // destruction of the favorites associated with the user
+ $query = "delete from $prefixeTable"."favorites where user_id = $user_id;";
+ mysql_query( $query );
+
+ // destruction of the user
+ $query = "delete from $prefixeTable"."users where id = $user_id;";
+ mysql_query( $query );
+ }
+
+ // The check_favorites function deletes all the favorites of a user if he is not allowed to see them
+ // (the category or an upper category is restricted or invisible)
+ function check_favorites( $user_id )
+ {
+ global $prefixeTable;
+
+ $row = mysql_fetch_array( mysql_query( "select status from $prefixeTable"."users where id = $user_id;" ) );
+ $status = $row['status'];
+ // retrieving all the restricted categories for this user
+ $restricted_cat = get_all_restrictions( $user_id, $status );
+ // retrieving all the favorites for this user and comparing their categories to the restricted categories
+ $query = "select image_id, cat_id";
+ $query.= " from $prefixeTable"."favorites, $prefixeTable"."images";
+ $query.= " where user_id = $user_id";
+ $query.= " and id = image_id";
+ $query.= ";";
+ $result = mysql_query ( $query );
+ while ( $row = mysql_fetch_array( $result ) )
+ {
+ if ( in_array( $row['cat_id'], $restricted_cat ) )
+ {
+ $query = "delete from $prefixeTable"."favorites";
+ $query.= " where image_id = ".$row['image_id'];
+ $query.= " and user_id = $user_id";
+ $query.= ";";
+ mysql_query( $query );
+ }
+ }
+ }
+?> \ No newline at end of file