Author Topic: Using ffmpeg to generate uploaded video thumbnails  (Read 115846 times)

0 Members and 1 Guest are viewing this topic.

Offline son_gokou

  • Full Member
  • ***
  • Posts: 199
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #75 on: August 21, 2007, 12:55:40 AM »
In order to help people I must say that this (ffmpeg or wmplayer) just works if the server allow to install one of the programs.

Offline WeZ

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #76 on: August 21, 2007, 02:19:03 PM »
Hi JamieFrancis,

i think i have the same mod installed so you might be in luck...

try this out - Back up your Files first though...

open image_utils.php in the includes directory.

find and replace your "create_thumbnail" function with the one (i might have modified myself :-)) below:
Code: [Select]
function create_thumbnail($src, $dest, $quality, $dimension, $resize_type) {
  global $convert_options;
  if (file_exists($dest)) {
    @unlink($dest);
  }
  $image_info = (defined("IN_CP")) ? getimagesize($src) : @getimagesize($src);
  if (in_array(get_file_extension($src), array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv"))) {
  Generate_VideoThumb($src, $dest.".jpg");
      @chmod($dest, CHMOD_FILES);
      $image_handle = $dest.".jpg";
      $new_thumb_name = $dest.".jpg";
      return true;
  }
  if (!$image_info) {
    return false;
  }
  $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);
   $resize_handle = "resize_image_".(($image_info[2] == 1) ? "im" : $convert_options['convert_tool']);
  if ($resize_handle($src, $dest, $quality, $width_height['width'], $width_height['height'], $image_info)) {
    @chmod($dest, CHMOD_FILES);
    return true;
  }
  else {
    return false;
  }
}

Hope this helps...

Cheers

Offline thunderstrike

  • 4images Guru
  • *******
  • Posts: 2.327
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #77 on: August 21, 2007, 07:15:23 PM »
Quote
array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv")

Carful when use that ... upload extension can use with MOD from includes/upload_definitions.php file. No need for use extension 2 time. ;)
« Last Edit: August 21, 2007, 08:08:35 PM by thunderstrike »
8 steps need when ask question -

- PHP version (ACP - > phpinfo())
- mySQL version (ACP - > phpinfo())
- 4images version
- Post screenshot / URL
- Post code in BB Code (no need full file for code) or post attach file
- It doesn't work. What is say - what is do for no work
- Install MOD ? If so - please say (troubleshooting)
- Read FAQ ? Install Bug fixes ?

Offline WeZ

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #78 on: August 21, 2007, 08:08:03 PM »
Hi ThunderStrike,

my upload.php is still the standard shipped with the 4Images with no modifications. mine seemed to work so something must be right...

Ciao
WeZ
« Last Edit: August 21, 2007, 10:28:20 PM by WeZ »

Offline thunderstrike

  • 4images Guru
  • *******
  • Posts: 2.327
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #79 on: August 21, 2007, 08:08:50 PM »
Sorry, wrong file. My post edit now. ;)
8 steps need when ask question -

- PHP version (ACP - > phpinfo())
- mySQL version (ACP - > phpinfo())
- 4images version
- Post screenshot / URL
- Post code in BB Code (no need full file for code) or post attach file
- It doesn't work. What is say - what is do for no work
- Install MOD ? If so - please say (troubleshooting)
- Read FAQ ? Install Bug fixes ?

Offline WeZ

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #80 on: August 21, 2007, 10:27:46 PM »
Hi ThunderStrike,

Ahh, Yes, Now That file i did modify. I'm Not sure of which ones i added, but JamieFrancis, here is my upload_definitions.php file anyway:

Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: upload_definitions.php                               *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.2                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die(
"Security violation");
}

$mime_type_match['jpg'] = array("image/jpg""image/jpeg""image/pjpeg");
$mime_type_match['jpeg'] = array("image/jpg""image/jpeg""image/pjpeg");
$mime_type_match['jpe'] = array("image/jpg""image/jpeg""image/pjpeg");

$mime_type_match['gif'] = array("image/gif");

$mime_type_match['png'] = array("image/png""image/x-png");

$mime_type_match['tif'] = array("image/tiff""application/octet-stream");
$mime_type_match['tiff'] = array("image/tiff""application/octet-stream");

$mime_type_match['bmp'] = array("image/bmp""image/x-ms-bmp");

$mime_type_match['aif'] = array("audio/x-aiff");

$mime_type_match['aiff'] = array("audio/x-aiff");

$mime_type_match['au'] = array("audio/basic");

$mime_type_match['snd'] = array("audio/basic");

$mime_type_match['mid'] = array("audio/x-midi""audio/mid""audio/midi");

$mime_type_match['mp3'] = array("audio/mpeg""audio/x-mpeg""audio/mp3""audio/mpg");
$mime_type_match['wma'] = array("audio/mpeg""audio/x-mpeg""audio/mp3""audio/mpg""audio/x-ms-wma");

$mime_type_match['ra'] = array("audio/x-pn-realaudio");

$mime_type_match['ram'] = array("audio/x-pn-realaudio");

$mime_type_match['rm'] = array("audio/vnd.rn-realmedia""application/vnd.rn-realmedia""video/vnd.rn-realvideo""application/vnd");

$mime_type_match['rpm'] = array("audio/x-pn-realaudio-plugin");

$mime_type_match['wav'] = array("audio/x-wav");

$mime_type_match['avi'] = array("video/x-msvideo""video/avi");

$mime_type_match['mpg'] = array("video/mpeg");
$mime_type_match['mpeg'] = array("video/mpeg");
$mime_type_match['wmv'] = array("video/x-ms-wmv");

$mime_type_match['mov'] = array("video/quicktime");
$mime_type_match['qt'] = array("video/quicktime");

$mime_type_match['swf'] = array("application/x-shockwave-flash");

$mime_type_match['asf'] = array("video/x-ms-asf");
$mime_type_match['asx'] = array("asx, video/x-ms-asf");

$mime_type_match['psd'] = array("application/octet-stream");
$mime_type_match['fla'] = array("application/octet-stream");
$mime_type_match['mp4'] = array("video/mp4""application/octet-stream");
$mime_type_match['flv'] = array("application/x-shockwave-flash""application/octet-stream");

$mime_type_match['gz'] = array("application/gzip""application/x-gzip-compressed");
$mime_type_match['rar'] = array("application/x-rar-compressed");
$mime_type_match['tar'] = array("application/x-tar");
$mime_type_match['gtar'] = array("application/x-gtar");
$mime_type_match['zip'] = array("application/zip""application/x-zip-compressed");
$mime_type_match['sit'] = array("application/x-stuffit");

$mime_type_match['pdf'] = array("application/pdf""application/x-pdf");

$mime_type_match['ai'] = array("application/postscript");
$mime_type_match['eps'] = array("application/postscript");
$mime_type_match['ps'] = array("application/postscript");

$mime_type_match['txt'] = array("text/plain""text/richtext""text/rtf""text/html");
$mime_type_match['rtf'] = array("text/plain""text/richtext""text/rtf");
$mime_type_match['rtx'] = array("text/plain""text/richtext""text/rtf");

$mime_type_match['doc'] = array("application/msword");
$mime_type_match['xls'] = array("application/vnd""application/x-msexcel");
$mime_type_match['ppt'] = array("application/vnd");

$mime_type_match['csv'] = array("text/comma-separated-values");
$mime_type_match['js'] = array("text/javascript");
$mime_type_match['css'] = array("text/css");
?>


Let me know if it helps.
Ciao
WeZ

Offline thunderstrike

  • 4images Guru
  • *******
  • Posts: 2.327
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #81 on: August 22, 2007, 03:00:58 AM »
Sorry for late reply.

Finish code.

In includes/image_utils.php file,

replace:

Quote
if (in_array(get_file_extension($src), array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv"))) {

with:

Quote
// MOD: Get Upload Extension (match with includes/upload_definitions.php).
include(ROOT_PATH.'includes/upload_definitions.php');
$extension_list = array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv")
if (function_exists('get_upload_definitions') && get_upload_definitions($extension_list)) {
// End of MOD: Get Upload Extension.

In includes/functions.php file,

add on top ?>:

Quote
function get_upload_definitions($array) {
   
    if (!isset($array) || !is_array($array) || empty($array)) {
        return;
    }
   
    if (isset($array) && is_array($array) && !empty($array)) {       
        include(ROOT_PATH . "includes/upload_definitions.php");       
        $get_vals = "";       
        foreach ($array as $key => $val) {           
            foreach ($mime_type_match[$val] as $key1 => $val1) {
                if ($key1 == $val1) {                   
                    $get_vals .= $val. ", ";                   
                    break;
                }
            }           
        }       
        $get_vals = substr($get_vals, 0, strlen($get_vals) -2);
        return $get_vals;
    }       
}

Check for match with $extension_list and $mime_type_match now. If no exist, foreach error message show. ;)

Note: All list extension in $extension_list is do from $mime_type_match ( ekal ) . If no, error. This will help user to use upload_definitions.php file like Jan code in 1st. ;)
8 steps need when ask question -

- PHP version (ACP - > phpinfo())
- mySQL version (ACP - > phpinfo())
- 4images version
- Post screenshot / URL
- Post code in BB Code (no need full file for code) or post attach file
- It doesn't work. What is say - what is do for no work
- Install MOD ? If so - please say (troubleshooting)
- Read FAQ ? Install Bug fixes ?

Offline jamiefrancis

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #82 on: September 10, 2007, 04:52:10 PM »
Hi Wez and thurnderstrike,

here is my image_utils.php

Quote
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: image_utils.php                                      *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.4                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die("Security violation");
}

function init_convert_options() {
  global $config, $lang;

  $convert_options = array(
    "convert_error" => 0,
    "convert_tool" => $config['convert_tool'],
    "convert_path" => ereg_replace("\/$", "", $config['convert_tool_path'])
  );
  switch($config['convert_tool']) {
  case "im":
    $exec = check_executable("convert");
    $convert_options['convert_path'] = preg_replace("/\/?(".check_executable("mogrify")."|$exec)+$/i", '', $convert_options['convert_path']);
    $convert_options['convert_path'] = $convert_options['convert_path'] . '/' . $exec;
    if (!@is_executable($convert_options['convert_path'])) {
      $convert_options['convert_error'] = "<b class=\"marktext\">".$lang['im_error']."</b><br />\n".$lang['check_module_settings'];
    }
    break;
  case "gd":
    $convert_options['convert_gd2'] = false;

    if (defined('CONVERT_IS_GD2')) {
      $convert_options['convert_gd2'] = CONVERT_IS_GD2 == 0 ? false : true;
    } elseif (function_exists("imagecreatetruecolor") && function_exists("imagecopyresampled")) {
      $convert_options['convert_gd2'] = true;
    }

    if (!function_exists("imagetypes")) {
      $convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['gd_error']."</b><br />\n".$lang['check_module_settings'] : 1;
    }
    break;
  case "netpbm":
    if (!@is_executable($convert_options['convert_path']."/".check_executable("pnmscale"))) {
      $convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['netpbm_error']."</b><br />\n".$lang['check_module_settings'] : 1;
    }
    break;
  default:
    $convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['no_convert_module']."</b><br />\n".$lang['check_module_settings'] : 1;
  }
  return $convert_options;
}

function resize_image_gd($src, $dest, $quality, $width, $height, $image_info) {
  global $convert_options;

  $types = array(1 => "gif", 2 => "jpeg", 3 => "png");
  if ($convert_options['convert_gd2']) {
    $thumb = imagecreatetruecolor($width, $height);
  }
  else {
    $thumb = imagecreate($width, $height);
  }
  $image_create_handle = "imagecreatefrom".$types[$image_info[2]];
  if ($image = $image_create_handle($src)) {
    if ($convert_options['convert_gd2']) {
      imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, ImageSX($image), ImageSY($image));
    }
    else {
      imagecopyresized($thumb, $image, 0, 0, 0, 0, $width, $height, ImageSX($image), ImageSY($image));
    }

    if ($image_info[2] == 3) {
      $quality = 9;
    }

    $image_handle = "image".$types[$image_info[2]];
    $image_handle($thumb, $dest, $quality);
    imagedestroy($image);
    imagedestroy($thumb);
  }
  return (file_exists($dest)) ? 1 : 0;
}

function resize_image_im($src, $dest, $quality, $width, $height, $image_info) {
  global $convert_options;

  $command = $convert_options['convert_path']." -quality ".$quality." -antialias -sample $width"."x"."$height \"$src\" \"$dest\"";
  system($command);
  return (file_exists($dest)) ? 1 : 0;
}

function resize_image_netpbm($src, $dest, $quality, $width, $height, $image_info) {
  global $convert_options;

  $convert_path = $convert_options['convert_path'];
  $types = array(1 => "gif", 2 => "jpeg", 3 => "png");
  $target = ($width > $height) ? $width : $height;
  $command = $convert_path."/".check_executable($types[$image_info[2]]."topnm")." ".$src." | ".$convert_path."/".check_executable("pnmscale")." --quiet -xysize ".$target." ".$target." | ";
  if ($image_info[2] == 1) {
    $command .= $convert_path."/".check_executable("ppmquant")." 256 | " . $convert_path."/".check_executable("ppmtogif")." > ".$dest;
  }
  elseif ($image_info[2] == 3) {
    $command .= $convert_path."/".check_executable("pnmtopng")." > ".$dest;
  }
  else {
    $jpeg_exec = (file_exists($convert_path."/".check_executable("pnmtojpeg"))) ? check_executable("pnmtojpeg") : check_executable("ppmtojpeg");
    $command .= $convert_path."/".$jpeg_exec." --quality=".$quality." > ".$dest;
  }
  system($command);
  return (file_exists($dest)) ? 1 : 0;
}

function get_width_height($dimension, $width, $height, $resize_type = 1) {
  if ($resize_type == 2) {
    $new_width = $dimension;
    $new_height = floor(($dimension/$width) * $height);
  }
  elseif ($resize_type == 3) {
    $new_width = floor(($dimension/$height) * $width);
    $new_height = $dimension;
  }
  else {
    $ratio = $width / $height;
    if ($ratio > 1) {
      $new_width = $dimension;
      $new_height = floor(($dimension/$width) * $height);
    }
    else {
      $new_width = floor(($dimension/$height) * $width);
      $new_height = $dimension;
    }
  }
  return array("width" => $new_width, "height" => $new_height);
}

function create_thumbnail($src, $dest, $quality, $dimension, $resize_type) {
  global $convert_options;

  if (file_exists($dest)) {
    @unlink($dest);
  }
  $image_info = (defined("IN_CP")) ? getimagesize($src) : @getimagesize($src);
  if (!$image_info) {
    if (Generate_VideoThumb($src, $dest)) {
   echo $src.$dest;
   return true;
   }
   else {
   echo $src.$dest;
    return false;
    }
  }
  echo $src.$dest;
  $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);
  $resize_handle = "resize_image_".$convert_options['convert_tool'];
  if ($resize_handle($src, $dest, $quality, $width_height['width'], $width_height['height'], $image_info)) {
    @chmod($dest, CHMOD_FILES);
    return true;
  }
  else {
    return false;
  }
}
function Generate_VideoThumb($src, $dest) {
  global $convert_options;

  $command = "/usr/local/bin/ffmpeg -i ".$src." -f mjpeg -t 0.02 -s 90x90 ".$dest;
  echo ($command);
  system($command);

  return (file_exists($dest)) ? 1 : 0;
}


function resize_image($file, $quality, $dimension, $resize_type = 1) {
  global $convert_options;
  $image_info = (defined("IN_CP")) ? getimagesize($file) : @getimagesize($file);
  if (!$image_info) {
    return false;
  }
  $file_bak = $file.".bak";
  if (!rename($file, $file_bak)) {
    return false;
  }
  $width_height = get_width_height($dimension, $image_info[0], $image_info[1], $resize_type);
  $resize_handle = "resize_image_".$convert_options['convert_tool'];
  if ($resize_handle($file_bak, $file, $quality, $width_height['width'], $width_height['height'], $image_info)) {
    @chmod($file, CHMOD_FILES);
    @unlink($file_bak);
    return true;
  }
  else {
    rename($file_bak, $file);
    return false;
  }
}
?>

Offline thunderstrike

  • 4images Guru
  • *******
  • Posts: 2.327
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #83 on: September 10, 2007, 09:11:31 PM »
And problem ??
8 steps need when ask question -

- PHP version (ACP - > phpinfo())
- mySQL version (ACP - > phpinfo())
- 4images version
- Post screenshot / URL
- Post code in BB Code (no need full file for code) or post attach file
- It doesn't work. What is say - what is do for no work
- Install MOD ? If so - please say (troubleshooting)
- Read FAQ ? Install Bug fixes ?

Offline jamiefrancis

  • Pre-Newbie
  • Posts: 7
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #84 on: October 19, 2007, 02:54:47 PM »
Hi the problem is that,
videos uploaded before i started using ffmpeg has the standard icon saying no images.
when i use the autothumbnailer its doesnt detect those old video files without thumbnails:(

Offline son_gokou

  • Full Member
  • ***
  • Posts: 199
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #85 on: October 19, 2007, 02:57:27 PM »
The thumbs are auto created?

Offline mathuatden

  • Jr. Member
  • **
  • Posts: 55
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #86 on: October 22, 2007, 03:44:39 AM »
Sorry for late reply.

Finish code.

In includes/image_utils.php file,

replace:

Quote
if (in_array(get_file_extension($src), array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv"))) {

with:

Quote
// MOD: Get Upload Extension (match with includes/upload_definitions.php).
include(ROOT_PATH.'includes/upload_definitions.php');
$extension_list = array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv")
if (function_exists('get_upload_definitions') && get_upload_definitions($extension_list)) {
// End of MOD: Get Upload Extension.

In includes/functions.php file,

add on top ?>:

Quote
function get_upload_definitions($array) {
   
    if (!isset($array) || !is_array($array) || empty($array)) {
        return;
    }
   
    if (isset($array) && is_array($array) && !empty($array)) {       
        include(ROOT_PATH . "includes/upload_definitions.php");       
        $get_vals = "";       
        foreach ($array as $key => $val) {           
            foreach ($mime_type_match[$val] as $key1 => $val1) {
                if ($key1 == $val1) {                   
                    $get_vals .= $val. ", ";                   
                    break;
                }
            }           
        }       
        $get_vals = substr($get_vals, 0, strlen($get_vals) -2);
        return $get_vals;
    }       
}

Check for match with $extension_list and $mime_type_match now. If no exist, foreach error message show. ;)

Note: All list extension in $extension_list is do from $mime_type_match ( ekal ) . If no, error. This will help user to use upload_definitions.php file like Jan code in 1st. ;)
I can't find this code in my image_utils.php
if (in_array(get_file_extension($src), array("asf", "wma", "wmv", "mpg", "mpeg", "avi", "mov", "asx", "mp4", "flv"))) {

Offline WeZ

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #87 on: November 07, 2007, 01:02:46 AM »
Hi Mathuatden,

are you having any errors?

i would suggest applying the MOD on page one and see if you have any issues, work your way through the thread.

you will find the code you are talking about here:
http://www.4homepages.de/forum/index.php?topic=12272.msg92366#msg92366

Cheers
WeZ

Offline apnetz

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #88 on: June 30, 2008, 04:59:00 PM »
Is there anything that can thumbnail streaming content?  I have a mod installed that streams flash from external sources.  There are no extensions in the flash embedcode.

Offline son_gokou

  • Full Member
  • ***
  • Posts: 199
    • View Profile
Re: Using ffmpeg to generate uploaded video thumbnails
« Reply #89 on: July 19, 2009, 11:03:55 PM »
I am trying to use WEZ mode with mplayer. I can create thumbnails mannually by SSH in any directory, but in 4 images it appears the error:

Warning: unlink(imagegenoutput.txt) [function.unlink]: No such file or directory in /home/directory/public_html/url.com/includes/image_utils.php on line 221

Warning: unlink(00000001.jpg) [function.unlink]: No such file or directory in /home/directory/public_html/url.com/includes/image_utils.php on line 222

Warning: rename(00000002.jpg,./data/thumbnails/1/1_2.flv.jpg) [function.rename]: No such file or directory in /home/directory/public_html/url.com/includes/image_utils.php on line 223


Here is my member.php (it's wez member.php)

Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: member.php                                           *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.2                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) f&#252;r weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/

$main_template "member";

define('GET_CACHES'1);
define('ROOT_PATH''./');
include(
ROOT_PATH.'global.php');
require(
ROOT_PATH.'includes/sessions.php');
$user_access get_permission();
include(
ROOT_PATH.'includes/page_header.php');

if (
$action == "") {
  
$action "lostpassword";
}
$content "";
$txt_clickstream "";

$sendprocess 0;

if (isset(
$HTTP_GET_VARS[URL_COMMENT_ID]) || isset($HTTP_POST_VARS[URL_COMMENT_ID])) {
  
$comment_id = (isset($HTTP_GET_VARS[URL_COMMENT_ID])) ? intval($HTTP_GET_VARS[URL_COMMENT_ID]) : intval($HTTP_POST_VARS[URL_COMMENT_ID]);
}
else {
  
$comment_id 0;
}

if (
$action == "deletecomment") {
  if (!
$comment_id || ($config['user_delete_comments'] != && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$sql "SELECT c.comment_id, c.user_id AS comment_user_id, i.image_id, i.cat_id, i.user_id, i.image_name
          FROM ("
.COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
          WHERE c.comment_id = 
$comment_id AND i.image_id = c.image_id";
  
$comment_row $site_db->query_firstrow($sql);
  if (!
$comment_row || $comment_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $comment_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream get_category_path($comment_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$comment_row['image_id'])."\" class=\"clickstream\">".format_text($comment_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['comment_delete'];

  
$sql "UPDATE ".IMAGES_TABLE."
          SET image_comments = image_comments - 1
          WHERE image_id = "
.$comment_row['image_id'];
  
$site_db->query($sql);

  if (
$comment_row['comment_user_id'] != GUEST) {
    
$sql "UPDATE ".USERS_TABLE."
            SET "
.get_user_table_field("""user_comments")." = ".get_user_table_field("""user_comments")." - 1
            WHERE "
.get_user_table_field("""user_id")." = ".$comment_row['comment_user_id'];
    
$site_db->query($sql);
  }

  
$sql "DELETE FROM ".COMMENTS_TABLE."
          WHERE comment_id = 
$comment_id";
  
$result $site_db->query($sql);
  
$msg = ($result) ? $lang['comment_delete_success'] : $lang['comment_delete_error'];
}

if (
$action == "removecomment") {
  if (!
$comment_id || ($config['user_delete_comments'] != && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }

  
$sql "SELECT c.comment_id, c.image_id, c.user_id AS comment_user_id, c.user_name AS comment_user_name, c.comment_headline, c.comment_text, i.image_name, i.cat_id, i.user_id".get_user_table_field(", u.""user_name")."
          FROM ("
.COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
          LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = c.user_id)
          WHERE c.comment_id = 
$comment_id AND i.image_id = c.image_id";
  
$comment_row $site_db->query_firstrow($sql);
  if (!
$comment_row || $comment_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $comment_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }

  
$txt_clickstream get_category_path($comment_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$comment_row['image_id'])."\" class=\"clickstream\">".format_text($comment_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['comment_delete'];

  if (isset(
$comment_row[$user_table_fields['user_name']]) && $comment_row['comment_user_id'] != GUEST) {
    
$user_name $comment_row[$user_table_fields['user_name']];
  }
  else {
    
$user_name $comment_row['comment_user_name'];
  }

  
$site_template->register_vars(array(
    
"comment_id" => $comment_id,
    
"image_name" => format_text($comment_row['image_name']),
    
"user_name" => format_text($user_name),
    
"comment_headline" => format_text($comment_row['comment_headline'], 0$config['wordwrap_comments'], 00),
    
"comment_text" => format_text($comment_row['comment_text'], $config['html_comments'], $config['wordwrap_comments'], $config['bb_comments'], $config['bb_img_comments']),
    
"lang_delete_comment" => $lang['comment_delete'],
    
"lang_delete_comment_confirm" => $lang['comment_delete_confirm'],
    
"lang_image_name" => $lang['image_name'],
    
"lang_name" => $lang['name'],
    
"lang_headline" => $lang['headline'],
    
"lang_comment" => $lang['comment'],
    
"lang_submit" => $lang['submit'],
    
"lang_reset" => $lang['reset'],
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));
  
$content $site_template->parse_template("member_deletecomment");
}

if (
$action == "updatecomment") {
  if (!
$comment_id || ($config['user_edit_comments'] != && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$sql "SELECT c.comment_id, c.image_id, i.image_name, i.cat_id, i.user_id".get_user_table_field(", u.""user_name")."
          FROM ("
.COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
          LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = c.user_id)
          WHERE c.comment_id = 
$comment_id AND i.image_id = c.image_id";
  
$comment_row $site_db->query_firstrow($sql);
  if (!
$comment_row || $comment_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $comment_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream get_category_path($comment_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$comment_row['image_id'])."\" class=\"clickstream\">".format_text($comment_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['comment_edit'];

  
$error 0;

  
$comment_headline un_htmlspecialchars(trim($HTTP_POST_VARS['comment_headline']));
  
$comment_text un_htmlspecialchars(trim($HTTP_POST_VARS['comment_text']));

  if (
$comment_headline == "")  {
    
$error 1;
    
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['headline']), $lang['field_required']);
    
$msg .= (($msg != "") ? "<br />" "").$field_error;
  }
  if (
$comment_text == "")  {
    
$error 1;
    
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['comment']), $lang['field_required']);
    
$msg .= (($msg != "") ? "<br />" "").$field_error;
  }

  if (!
$error) {
    
$sql "UPDATE ".COMMENTS_TABLE."
            SET comment_headline = '
$comment_headline', comment_text = '$comment_text'
            WHERE comment_id = 
$comment_id";
    
$result $site_db->query($sql);
    
$msg = ($result) ? $lang['comment_edit_success'] : $lang['comment_edit_error'];
  }
  else {
    
$action "editcomment";
    
$sendprocess 1;
  }
}

if (
$action == "editcomment") {
  if (!
$comment_id || ($config['user_edit_comments'] != && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }

  
$sql "SELECT c.comment_id, c.image_id, c.user_id AS comment_user_id, c.user_name AS comment_user_name, c.comment_headline, c.comment_text, i.image_name, i.cat_id, i.user_id".get_user_table_field(", u.""user_name")."
          FROM ("
.COMMENTS_TABLE." c, ".IMAGES_TABLE." i)
          LEFT JOIN "
.USERS_TABLE." u ON (".get_user_table_field("u.""user_id")." = c.user_id)
          WHERE c.comment_id = 
$comment_id AND i.image_id = c.image_id";
  
$comment_row $site_db->query_firstrow($sql);
  if (!
$comment_row || $comment_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $comment_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
header("Location: ".$site_sess->url($url"&"));
    exit;
  }

  
$txt_clickstream get_category_path($comment_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$comment_row['image_id'])."\" class=\"clickstream\">".format_text($comment_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['comment_edit'];

  
$comment_headline = (isset($HTTP_POST_VARS['comment_headline'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['comment_headline']))) : $comment_row['comment_headline'];
  
$comment_text = (isset($HTTP_POST_VARS['comment_text'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['comment_text']))) : $comment_row['comment_text'];

  if (isset(
$comment_row[$user_table_fields['user_name']]) && $comment_row['comment_user_id'] != GUEST) {
    
$user_name $comment_row[$user_table_fields['user_name']];
  }
  else {
    
$user_name $comment_row['comment_user_name'];
  }

  
$bbcode "";
  if (
$config['bb_comments'] == 1) {
    
$site_template->register_vars(array(
      
"lang_bbcode" => $lang['bbcode'],
      
"lang_tag_prompt" => $lang['tag_prompt'],
      
"lang_link_text_prompt" => $lang['link_text_prompt'],
      
"lang_link_url_prompt" => $lang['link_url_prompt'],
      
"lang_link_email_prompt" => $lang['link_email_prompt'],
      
"lang_list_type_prompt" => $lang['list_type_prompt'],
      
"lang_list_item_prompt" => $lang['list_item_prompt']
    ));
    
$bbcode $site_template->parse_template("bbcode");
  }

  
$site_template->register_vars(array(
    
"bbcode" => $bbcode,
    
"comment_id" => $comment_id,
    
"image_name" => format_text($comment_row['image_name']),
    
"user_name" => format_text($user_name),
    
"comment_headline" => format_text($comment_headline2),
    
"comment_text" => format_text($comment_text2),
    
"lang_edit_comment" => $lang['comment_edit'],
    
"lang_image_name" => $lang['image_name'],
    
"lang_name" => $lang['name'],
    
"lang_headline" => $lang['headline'],
    
"lang_comment" => $lang['comment'],
    
"lang_submit" => $lang['submit'],
    
"lang_reset" => $lang['reset'],
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));
  
$content $site_template->parse_template("member_editcomment");
}

if (
$action == "deleteimage") {
  if (!
$image_id || ($config['user_delete_image'] != && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$sql "SELECT image_id, cat_id, user_id, image_name, image_media_file, image_thumb_file
          FROM "
.IMAGES_TABLE."
          WHERE image_id = 
$image_id";
  
$image_row $site_db->query_firstrow($sql);
  if (!
$image_row || $image_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $image_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream $lang['image_delete'];

  
$sql "DELETE FROM ".IMAGES_TABLE."
          WHERE image_id = 
$image_id";
  
$del_img $site_db->query($sql);

  if (!
is_remote($image_row['image_media_file']) && !is_local_file($image_row['image_media_file'])) {
    @
unlink(MEDIA_PATH."/".$image_row['cat_id']."/".$image_row['image_media_file']);
  }
  if (!empty(
$image_row['image_thumb_file']) && !is_remote($image_row['image_thumb_file']) && !is_local_file($image_row['image_thumb_file'])) {
    @
unlink(THUMB_PATH."/".$image_row['cat_id']."/".$image_row['image_thumb_file']);
  }

  include(
ROOT_PATH.'includes/search_utils.php');
  
remove_searchwords($image_id);

  if (!empty(
$user_table_fields['user_comments'])) {
    
$sql "SELECT user_id
            FROM "
.COMMENTS_TABLE."
            WHERE image_id = 
$image_id";
    
$result $site_db->query($sql);
    
$user_id_sql "";
    while (
$row $site_db->fetch_array($result)) {
      if (
$row['user_id'] != GUEST) {
        
$sql "UPDATE ".USERS_TABLE."
                SET "
.get_user_table_field("""user_comments")." = ".get_user_table_field("""user_comments")." - 1
                WHERE "
.get_user_table_field("""user_id")." = ".$row['user_id'];
        
$site_db->query($sql);
      }
    }
  }

  
$sql "DELETE FROM ".COMMENTS_TABLE."
          WHERE image_id = 
$image_id";
  
$del_com $site_db->query($sql);

  if (
$del_img) {
    
$msg $lang['image_delete_success'];
  }
  else {
    
$msg $lang['image_delete_error'];
  }
}

if (
$action == "removeimage") {
  if (!
$image_id || ($config['user_delete_image'] != && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }
  
$sql "SELECT image_id, cat_id, user_id, image_name
          FROM "
.IMAGES_TABLE."
          WHERE image_id = 
$image_id";
  
$image_row $site_db->query_firstrow($sql);
  if (!
$image_row || $image_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $image_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream get_category_path($image_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id)."\" class=\"clickstream\">".format_text($image_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['image_delete'];

  
$site_template->register_vars(array(
    
"image_id" => $image_id,
    
"image_name" => format_text($image_row['image_name']),
    
"lang_delete_image" => $lang['image_delete'],
    
"lang_delete_image_confirm" => $lang['image_delete_confirm'],
    
"lang_submit" => $lang['submit'],
    
"lang_reset" => $lang['reset'],
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));
  
$content $site_template->parse_template("member_deleteimage");
}

if (
$action == "updateimage") {
  if (!
$image_id || ($config['user_edit_image'] != && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
  }
  
$sql "SELECT image_id, cat_id, user_id, image_name
          FROM "
.IMAGES_TABLE."
          WHERE image_id = 
$image_id";
  
$image_row $site_db->query_firstrow($sql);
  if (!
$image_row || $image_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $image_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream get_category_path($image_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id)."\" class=\"clickstream\">".format_text($image_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['image_edit'];

  
$error 0;

  
$image_name un_htmlspecialchars(trim($HTTP_POST_VARS['image_name']));
  
$image_description un_htmlspecialchars(trim($HTTP_POST_VARS['image_description']));
  
$image_keywords un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords']));
  
$image_keywords preg_replace("/[\n\r]/is"" "$image_keywords);
  
$image_keywords str_replace(","," ",$image_keywords);
  
$image_keywords ereg_replace("( ){2,}"" "$image_keywords);

  if (
$image_name == "")  {
    
$error 1;
    
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['image_name']), $lang['field_required']);
    
$msg .= (($msg != "") ? "<br />" "").$field_error;
  }

  if (!empty(
$additional_image_fields)) {
    foreach (
$additional_image_fields as $key => $val) {
      if (isset(
$HTTP_POST_VARS[$key]) && intval($val[2]) == && trim($HTTP_POST_VARS[$key]) == "") {
        
$error 1;
        
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$val[0]), $lang['field_required']);
        
$msg .= (($msg != "") ? "<br />" "").$field_error;
      }
    }
  }

  if (!
$error) {
    
$additional_sql "";

    if (isset(
$HTTP_POST_VARS['image_allow_comments'])) {
      
$additional_sql .= ", image_allow_comments = ".intval($HTTP_POST_VARS['image_allow_comments']);
    }

    if (!empty(
$additional_image_fields)) {
      
$table_fields $site_db->get_table_fields(IMAGES_TABLE);
      foreach (
$additional_image_fields as $key => $val) {
        if (isset(
$HTTP_POST_VARS[$key]) && isset($table_fields[$key])) {
          
$additional_sql .= ", $key = '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
        }
      }
    }

    
$sql "UPDATE ".IMAGES_TABLE."
            SET image_name = '
$image_name', image_description = '$image_description', image_keywords = '$image_keywords'".$additional_sql."
            WHERE image_id = 
$image_id";
    
$result $site_db->query($sql);
    if (
$result) {
      include(
ROOT_PATH.'includes/search_utils.php');
      
$search_words = array();
      foreach (
$search_match_fields as $image_column => $match_column) {
        if (isset(
$HTTP_POST_VARS[$image_column])) {
          
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column]);
        }
      }
      
remove_searchwords($image_id);
      
add_searchwords($image_id$search_words);
      
$msg $lang['image_edit_success'];
    }
    else {
      
$msg $lang['image_edit_error'];
    }
  }
  else {
    
$action "editimage";
    
$sendprocess 1;
  }
}

if (
$action == "editimage") {
  if (!
$image_id || ($config['user_edit_image'] != && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }

  
$additional_sql "";
  if (!empty(
$additional_image_fields)) {
    foreach (
$additional_image_fields as $key => $val) {
      
$additional_sql .= ", ".$key;
    }
  }
  
$sql "SELECT image_id, cat_id, user_id, image_name, image_description, image_keywords, image_allow_comments".$additional_sql."
          FROM "
.IMAGES_TABLE."
          WHERE image_id = 
$image_id";
  
$image_row $site_db->query_firstrow($sql);
  if (!
$image_row || $image_row['user_id'] <= USER_AWAITING || ($user_info['user_id'] != $image_row['user_id'] && $user_info['user_level'] != ADMIN)) {
    
redirect($url);
  }

  
$txt_clickstream get_category_path($image_row['cat_id'], 1).$config['category_separator']."<a href=\"".$site_sess->url(ROOT_PATH."details.php?".URL_IMAGE_ID."=".$image_id)."\" class=\"clickstream\">".format_text($image_row['image_name'])."</a>".$config['category_separator'];
  
$txt_clickstream .= $lang['image_edit'];

  
$image_name = (isset($HTTP_POST_VARS['image_name'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_name']))) : $image_row['image_name'];
  
$image_description = (isset($HTTP_POST_VARS['image_description'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_description']))) : $image_row['image_description'];
  
$image_keywords = (isset($HTTP_POST_VARS['image_keywords'])) ? un_htmlspecialchars(stripslashes(trim($HTTP_POST_VARS['image_keywords']))) : $image_row['image_keywords'];
  
$image_allow_comments = (isset($HTTP_POST_VARS['image_allow_comments'])) ? intval($HTTP_POST_VARS['image_allow_comments']) : $image_row['image_allow_comments'];

  
$site_template->register_vars(array(
    
"image_id" => $image_id,
    
"image_name" => format_text($image_name2),
    
"image_description" => format_text($image_description2),
    
"image_keywords" => format_text($image_keywords2),
    
"image_allow_comments_yes" => ($image_allow_comments) ? " checked=\"checked\"" "",
    
"image_allow_comments_no" => (!$image_allow_comments) ? " checked=\"checked\"" "",
    
"lang_edit_image" => $lang['image_edit'],
    
"lang_image_name" => $lang['image_name'],
    
"lang_description" => $lang['description'],
    
"lang_keywords" => $lang['keywords_ext'],
    
"lang_allow_comments" => isset($lang['allow_comments']) ? $lang['allow_comments'] : "",
    
"lang_submit" => $lang['submit'],
    
"lang_reset" => $lang['reset'],
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));

  if (!empty(
$additional_image_fields)) {
    
$additional_field_array = array();
    foreach (
$additional_image_fields as $key => $val) {
      if (
$val[1] == "radio") {
        
$value = (isset($HTTP_POST_VARS[$key])) ? intval($HTTP_POST_VARS[$key]) : $image_row[$key];
        if (
$value == 1) {
          
$additional_field_array[$key.'_yes'] = " checked=\"checked\"";
          
$additional_field_array[$key.'_no'] = "";
        }
        else {
          
$additional_field_array[$key.'_yes'] = "";
          
$additional_field_array[$key.'_no'] = " checked=\"checked\"";
        }
      }
      else {
        
$value = (isset($HTTP_POST_VARS[$key])) ? format_text(stripslashes(trim($HTTP_POST_VARS[$key]))) : $image_row[$key];
      }
      
$additional_field_array[$key] = $value;
      
$additional_field_array['lang_'.$key] = $val[0];
    }
    if (!empty(
$additional_field_array)) {
      
$site_template->register_vars($additional_field_array);
    }
  }
  
$content $site_template->parse_template("member_editimage");
}

if (
$action == "uploadimage" || $action=="multiuploadimage") {
  if (
$cat_id != && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload"$cat_id))) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream "";
  if (
$cat_id && isset($cat_cache[$cat_id])) {
    
$txt_clickstream .= get_category_path($cat_id1).$config['category_separator'];
  }
  
$txt_clickstream .= $lang['user_upload'];

  
$remote_media_file format_url(un_htmlspecialchars(trim($HTTP_POST_VARS['remote_media_file'])));
  
$remote_thumb_file format_url(un_htmlspecialchars(trim($HTTP_POST_VARS['remote_thumb_file'])));

  
$image_name un_htmlspecialchars(trim($HTTP_POST_VARS['image_name']));
  
$image_description un_htmlspecialchars(trim($HTTP_POST_VARS['image_description']));
  
$image_keywords un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords']));
  
$image_keywords preg_replace("/[\n\r]/is"" "$image_keywords);
  
$image_keywords str_replace(","," ",$image_keywords);
  
$image_keywords ereg_replace("( ){2,}"" "$image_keywords);

  
$image_active = (isset($HTTP_POST_VARS['image_active']) && $HTTP_POST_VARS['image_active'] == 0) ? 1;
  
$image_allow_comments = (isset($HTTP_POST_VARS['image_allow_comments']) && $HTTP_POST_VARS['image_allow_comments'] == 0) ? 1;
  
$image_download_url = (isset($HTTP_POST_VARS['image_download_url'])) ? format_url(un_htmlspecialchars(trim($HTTP_POST_VARS['image_download_url']))) : "";

  
$direct_upload = (check_permission("auth_directupload"$cat_id)) ? 0;
  
$upload_cat = ($direct_upload) ? $cat_id 0;

  
$error 0;
  
$uploaderror 0;

  if (
$cat_id == 0)  {
    
$error 1;
    
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['category']), $lang['field_required']);
    
$msg .= (($msg != "") ? "<br />" "").$field_error;
  }
  if ((empty(
$HTTP_POST_FILES['media_file']['tmp_name']) || $HTTP_POST_FILES['media_file']['tmp_name'] == "none") && ($remote_media_file == "" || !check_remote_media($remote_media_file))) {
    
$error 1;
    
$msg .= (($msg != "") ? "<br />" "").$lang['image_file_required'];
  }
  if (
$image_name == "")  {
    
$error 1;
    
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$lang['image_name']), $lang['field_required']);
    
$msg .= (($msg != "") ? "<br />" "").$field_error;
  }

  if (!empty(
$additional_image_fields)) {
    foreach (
$additional_image_fields as $key => $val) {
      if (isset(
$HTTP_POST_VARS[$key]) && intval($val[2]) == && trim($HTTP_POST_VARS[$key]) == "") {
        
$error 1;
        
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$val[0]), $lang['field_required']);
        
$msg .= (($msg != "") ? "<br />" "").$field_error;
      }
    }
  }

/*
  MOD CHECK FOR DUPLICATE IMAGES
  START INSERT
*/
##########
# CONFIG #
##########

  $check_admin true//do check when administrator is uploading? (true/false)
  $show_image true//show link to the image that was previously uploaded? (true/false)
  $show_member true//show name and link to profile page of the member who previously uploaded that file? (true/false)

##############
# END CONFIG #
##############

  $md5 "";
  unset($HTTP_POST_VARS['image_md5']);
  if ($user_info['user_level'] != ADMIN || $check_admin)
  {
if (!empty($HTTP_POST_FILES['media_file']['tmp_name']) && $HTTP_POST_FILES['media_file']['tmp_name'] != "none")
{
  $md5 md5_file($HTTP_POST_FILES['media_file']['tmp_name']);
  $file $HTTP_POST_FILES['media_file']['filename'];
}
elseif ($remote_media_file)
{
  $md5 md5($remote_media_file);
  $file $remote_media_file;
}
if ($md5)
{
  $sql "SELECT image_id, image_name, cat_id, user_id
  FROM "
.IMAGES_TABLE."
  WHERE image_md5 = '"
.$md5."'
  LIMIT 1"
;
  if ($row $site_db->query_firstrow($sql))
  {

$row['image_name'] = stripslashes($row['image_name']);
if (function_exists('multilang')) $row['image_name'] = multilang($row['image_name']);
$user_row get_user_info($row['user_id']);
//        $msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$file."</b><br />";
$msg .= (($msg != "") ? "<br />" "").(($user_info['user_level'] > GUEST && $user_info['user_id'] == $user_row['user_id']) ? $lang['image_md5_duplicate_self'] : sprintf(($show_member $lang['image_md5_duplicate_more'] : $lang['image_md5_duplicate_simple']), "<a href=\"".$site_sess->url(ROOT_PATH."member.php?action=showprofile&".URL_USER_ID."=".$user_row['user_id'])."\">".$user_row['user_name']."</a>"));
if ($show_image && (($user_info['user_level'] > GUEST && $user_info['user_id'] != $user_row['user_id']) || (check_permission("auth_viewcat"$row['cat_id'] && check_permission("auth_viewimage"$row['cat_id'])))))
{
  $msg .= ": <a href=\"".$site_sess->url(ROOT_PATH."details.php?image_id=".$row['image_id'])."\">".$row['image_name']."</a>";
}
$error 1;
  }
  else
  {
$sql "SELECT image_id, image_name, user_id
FROM "
.IMAGES_TEMP_TABLE."
WHERE image_md5 = '"
.$md5."'
LIMIT 1"
;
if ($row $site_db->query_firstrow($sql))
{
  $user_row get_user_info($row['user_id']);
//          $msg .= (($msg != "") ? "<br />" : "")."<b>".$lang['file_upload_error'].": ".$file."</b><br />";
  $msg .= (($msg != "") ? "<br />" "").(($user_info['user_level'] > GUEST && $user_info['user_id'] == $row['user_id']) ? $lang['image_md5_duplicate_validation_self'] : sprintf(($show_member $lang['image_md5_duplicate_validation_more'] : $lang['image_md5_duplicate_validation_simple']), "<a href=\"".$site_sess->url(ROOT_PATH."member.php?action=showprofile&".URL_USER_ID."=".$user_row['user_id'])."\">".$user_row['user_name']."</a>"));
  $error 1;
}
  }
  $HTTP_POST_VARS['image_md5'] = $md5;
}
  }
/*
  MOD CHECK FOR DUPLICATE IMAGES
  END INSERT
*/

if (!$error) {
//MULTI FILE UPLOAD
$fileext="";
while(isset($HTTP_POST_FILES['media_file'.$fileext]))
{
include_once(ROOT_PATH.'includes/upload.php');
$site_upload = new Upload();

// Upload Media file
if (!empty($HTTP_POST_FILES['media_file'.$fileext]['tmp_name']) && $HTTP_POST_FILES['media_file'.$fileext]['tmp_name'] != "none") {
  $new_name $site_upload->upload_file('media_file'.$fileext"media"$upload_cat);
  if (!$new_name) {
$msg .= (($msg != "") ? "<br />" "")."<b>".$lang['file_upload_error'].": ".$new_name."</b><br />".$site_upload->get_upload_errors();
$uploaderror 1;
  }
}
elseif($action=="uploadimage") {
  $new_name $remote_media_file;
}
else
{
$new_name "";
break;
}

// Upload thumb file
      
$new_thumb_name "";
      if (!empty(
$HTTP_POST_FILES['thumb_file']['tmp_name']) && $HTTP_POST_FILES['thumb_file']['tmp_name'] != "none" && !$uploaderror) {
        
$new_thumb_name $site_upload->upload_file("thumb_file""thumb"$upload_catbasename($new_name));
        if (!
$new_thumb_name) {
          
$msg .= (($msg != "") ? "<br />" "")."<b>".$lang['thumb_upload_error'].": ".$new_thumb_name."</b><br />".$site_upload->get_upload_errors();
          @
unlink(MEDIA_TEMP_PATH."/".$new_name);
          
$uploaderror 1;
        }
      }
      elseif (
check_remote_thumb($remote_thumb_file)) {
        
$new_thumb_name $remote_thumb_file;
      }
      elseif (
$config['auto_thumbnail'] == && !empty($HTTP_POST_FILES['media_file'.$fileext]['tmp_name']) && $HTTP_POST_FILES['media_file'.$fileext]['tmp_name'] != "none" && !$uploaderror) {
        if (
$direct_upload) {
          
$src MEDIA_PATH."/".$cat_id."/".$new_name;
          
$dest THUMB_PATH."/".$cat_id."/".$new_name;
        }
        else {
          
$src MEDIA_TEMP_PATH."/".$new_name;
          
$dest THUMB_TEMP_PATH."/".$new_name;
        }
        
$do_create 0;
        if (
$image_info = @getimagesize($src)) {
          if (
$image_info[2] == || $image_info[2] == || $image_info[2] == 3) {
            
$do_create 1;
          }
        }
        require_once(
ROOT_PATH.'includes/image_utils.php');
        
$convert_options init_convert_options();
        if (
$do_create) {
          if (!
$convert_options['convert_error']) {
            
$dimension = (intval($config['auto_thumbnail_dimension'])) ? intval($config['auto_thumbnail_dimension']) : 100;
            
$resize_type = (intval($config['auto_thumbnail_resize_type'])) ? intval($config['auto_thumbnail_resize_type']) : 1;
            
$quality = (intval($config['auto_thumbnail_quality']) && intval($config['auto_thumbnail_quality']) <= 100) ? intval($config['auto_thumbnail_quality']) : 100;

            if (
create_thumbnail($src$dest$quality$dimension$resize_type)) {
              
$new_thumb_name $new_name;
            
}
            }
          }
        else {
  
if (in_array(get_file_extension($new_name), array("asf""wma""wmv""mpg""mpeg""avi""mov""asx""mp4""flv")) && Generate_VideoThumb($src$dest.".jpg")) {
  $new_thumb_name $new_name.".jpg";
}

        
}
  
  }

//-------------------------------------------------------------------------------------------
// --- Annotate Images ----------------------------------------------------------------------
//-------------------------------------------------------------------------------------------

if ($config['annotation_use'] && strtolower(get_file_extension($new_name) == jpg)) {
require_once(
ROOT_PATH.'includes/annotate.php');
$ann_user_name = ($user_info['user_name']);
  if (
$direct_upload) { $ann_src MEDIA_PATH."/".$cat_id."/".$new_name; }
  else { 
$ann_src MEDIA_TEMP_PATH."/".$new_name; }
  
annotate_image($ann_src);
}

//-------------------------------------------------------------------------------------------

    
if (!$uploaderror) {
      
$additional_field_sql "";
      
$additional_value_sql "";
      if (!empty(
$additional_image_fields)) {
        
$table = ($direct_upload) ? IMAGES_TABLE IMAGES_TEMP_TABLE;
        
$table_fields $site_db->get_table_fields($table);
        foreach (
$additional_image_fields as $key => $val) {
          if (isset(
$HTTP_POST_VARS[$key]) && isset($table_fields[$key])) {
            
$additional_field_sql .= ", $key";
            
$additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
          }
        }
      }
      
$current_time time();
$imgname = ($fileext!="")?"$image_name $fileext":$image_name;
  if (
$direct_upload) {
$sql "INSERT INTO ".IMAGES_TABLE."
(cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments"
.$additional_field_sql.")
VALUES
(
$cat_id, ".$user_info['user_id'].", '$imgname', '$image_description', '$image_keywords', $current_time$image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments".$additional_value_sql.")";
        
$result $site_db->query($sql);
        
$image_id $site_db->get_insert_id();
        if (
$result) {
          include_once(
ROOT_PATH.'includes/search_utils.php');
          
$search_words = array();
          foreach (
$search_match_fields as $image_column => $match_column) {
            if (isset(
$HTTP_POST_VARS[$image_column])) {
              
$search_words[$image_column] = stripslashes($HTTP_POST_VARS[$image_column]);
            }
          }
          
add_searchwords($image_id$search_words);
        }
      }
      else {
        
$sql "INSERT INTO ".IMAGES_TEMP_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_media_file, image_thumb_file, image_download_url"
.$additional_field_sql.")
                VALUES
                (
$cat_id, ".$user_info['user_id'].", '$image_name', '$image_description', '$image_keywords', $current_time, '$new_name', '$new_thumb_name', '$image_download_url'".$additional_value_sql.")";
        
$result $site_db->query($sql);
      }

      if (
$config['upload_notify'] == && !$direct_upload) {
        include_once(
ROOT_PATH.'includes/email.php');
        
$site_email = new Email();

        
$config['upload_emails'] = str_replace(" """$config['upload_emails']);
        
$emails explode(","$config['upload_emails']);

        
$validation_url $script_url."/admin/index.php?goto=".urlencode("validateimages.php?action=validateimages");

        
$site_email->set_to($config['site_email']);
        
$site_email->set_subject($lang['new_upload_emailsubject']);
        
$site_email->register_vars(array(
          
"image_name" => stripslashes($image_name),
          
"file_name" => $new_name,
          
"cat_name" => $cat_cache[$cat_id]['cat_name'],
          
"validation_url" => $validation_url,
          
"site_name" => $config['site_name']
        ));
        
$site_email->set_body("upload_notify"$config['language_dir_default']);
        
$site_email->set_bcc($emails);
        
$site_email->send_email();
      }

      
$msg .= $lang['image_add_success'].": <b>".stripslashes($image_name)."</b> (".$new_name.")<br>";
      
$msg .= (!$direct_upload) ? "<br />".$lang['new_upload_validate_desc'] : "";

      
$file_extension get_file_extension($new_name);
      
$file = (is_remote($new_name)) ? $new_name : (($direct_upload) ? MEDIA_PATH."/".$cat_id."/".$new_name MEDIA_TEMP_PATH."/".$new_name);
      
$width_height "";
      if (!
is_remote($file) && $imageinfo = @getimagesize($file)) {
        
$width_height " ".$imageinfo[3];
      }
      
$media_icon "<img src=\"".ICON_PATH."/".$file_extension.".gif\" border=\"0\" alt=\"\" />";
      
$site_template->register_vars(array(
        
"media_src" => $file,
        
"media_icon" => $media_icon,
        
"image_name" => format_text(stripslashes($image_name)),
        
"width_height" => $width_height
      
));
      
$media $site_template->parse_template("media/".$file_extension);
$content .= "<table border=\"0\" align=\"center\">\n<tr>\n<td>\n".$media."\n</td>\n</tr>\n</table>\n";
    
$good=1;
  }
  else {
  
//Atleast 1 multifile succeeded.
  
if(count($HTTP_POST_FILES) && $good==1)
  {
  
$action "multiuploadform";
  break;
  }
  else
  {
  
$action=($action=="multiuploadimage")?"multiuploadform":"uploadform";
  
$sendprocess 1;
  break; 
//break the while if any image upload fails
  
}
  }
  
$fileext=($fileext=="")?2:$fileext+1;
  }
//end while
  
}//end if
    
else
    {
      
$action "uploadform";
      
$sendprocess 1;
    }
  }
//end upload action

  //Show the form
if ($action == "uploadform" || $action == "multiuploadform") {
  if (
$cat_id != && (!isset($cat_cache[$cat_id]) || !check_permission("auth_upload"$cat_id))) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  
$txt_clickstream "";
  if (
$cat_id && isset($cat_cache[$cat_id])) {
    
$txt_clickstream .= get_category_path($cat_id1).$config['category_separator'];
  }
  
$txt_clickstream .= $lang['user_upload'];

  if (!
$sendprocess) {
    
$remote_media_file "";
    
$remote_thumb_file "";
    
$image_name "";
    
$image_description "";
    
$image_keywords "";
    
$image_download_url "";
    
$image_allow_comments 1;
  }

  
$site_template->register_vars(array(
    
"cat_id" => $cat_id,
    
"cat_name" => ($cat_id != 0) ? format_text($cat_cache[$cat_id]['cat_name']) : get_category_dropdown($cat_id),
    
"remote_media_file" => format_text(stripslashes($remote_media_file)),
    
"remote_thumb_file" => format_text(stripslashes($remote_thumb_file)),
    
"image_name" => format_text(stripslashes($image_name), 2),
    
"image_description" => format_text(stripslashes($image_description), 2),
    
"image_keywords" => format_text(stripslashes($image_keywords), 2),
    
"image_allow_comments_yes" => ($image_allow_comments) ? " checked=\"checked\"" "",
    
"image_allow_comments_no" => (!$image_allow_comments) ? " checked=\"checked\"" "",
    
"image_download_url" => format_text(stripslashes($image_download_url), 2),
    
"lang_category" => $lang['category'],
    
"lang_user_upload" => $lang['user_upload'],
    
"lang_media_file" => $lang['media_file'],
    
"lang_thumb_file" => $lang['thumb_file'],
    
"lang_allowed_file_types" => $lang['allowed_mediatypes_desc'],
    
"allowed_media_types" => str_replace(",",", ",$config['allowed_mediatypes']),
    
"allowed_thumb_types" => "jpg, gif, png",
    
"lang_max_filesize" => $lang['max_filesize'],
    
"lang_max_imagewidth" => $lang['max_imagewidth'],
    
"lang_max_imageheight" => $lang['max_imageheight'],
    
"max_thumb_filsize" => $config['max_thumb_size']."&nbsp;".$lang['kb'],
    
"max_thumb_imagewidth" => $config['max_thumb_width']."&nbsp;".$lang['px'],
    
"max_thumb_imageheight" => $config['max_thumb_height']."&nbsp;".$lang['px'],
    
"max_media_filsize" => $config['max_media_size']."&nbsp;".$lang['kb'],
    
"max_media_imagewidth" => $config['max_image_width']."&nbsp;".$lang['px'],
    
"max_media_imageheight" => $config['max_image_height']."&nbsp;".$lang['px'],
    
"lang_image_name" => $lang['image_name'],
    
"lang_description" => $lang['description'],
    
"lang_keywords" => $lang['keywords_ext'],
    
"lang_allow_comments" => isset($lang['allow_comments']) ? $lang['allow_comments'] : "",
    
"lang_submit" => $lang['submit'],
    
"lang_reset" => $lang['reset'],
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));

  if (!empty(
$additional_image_fields)) {
    
$additional_field_array = array();
    foreach (
$additional_image_fields as $key => $val) {
      if (
$val[1] == "radio") {
        
$value = (isset($HTTP_POST_VARS[$key])) ? intval($HTTP_POST_VARS[$key]) : 1;
        if (
$value == 1) {
          
$additional_field_array[$key.'_yes'] = " checked=\"checked\"";
          
$additional_field_array[$key.'_no'] = "";
        }
        else {
          
$additional_field_array[$key.'_yes'] = "";
          
$additional_field_array[$key.'_no'] = " checked=\"checked\"";
        }
      }
      else {
        
$value = (isset($HTTP_POST_VARS[$key])) ? format_text(stripslashes(trim($HTTP_POST_VARS[$key]))) : "";
      }
      
$additional_field_array[$key] = $value;
      
$additional_field_array['lang_'.$key] = $val[0];
    }
    if (!empty(
$additional_field_array)) {
      
$site_template->register_vars($additional_field_array);
    }
  }
    if(
$action == "multiuploadform" || $action=="multiuploadimage")
      {
      
$content $site_template->parse_template("member_multiuploadform");
      }
      else
      {
      
$content $site_template->parse_template("member_uploadform");
  }
}

if (
$action == "emailuser") {
  
$txt_clickstream $lang['profile'];
  
$user_id = (isset($HTTP_POST_VARS[URL_USER_ID])) ? intval($HTTP_POST_VARS[URL_USER_ID]) : GUEST;
  
$error 0;

  if (
$user_info['user_level'] == GUEST || $user_info['user_level'] == USER_AWAITING) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$subject stripslashes(trim($HTTP_POST_VARS['subject']));
  
$message stripslashes(trim($HTTP_POST_VARS['message']));

  if (
$subject == "" || $message == "") {
    
$msg $lang['lostfield_error'];
    
$sendprocess 1;
    
$error 1;
  }

  if (!
$error) {
    if (
$user_row get_user_info($user_id)) {
      if (isset(
$user_row['user_showemail']) && $user_row['user_showemail'] == 0) {
        
$content $lang['invalid_user_id'];
      }
      else {
        
$sender_user_name = ($user_info['user_level'] != GUEST) ? (isset($user_info['user_name']) ? $user_info['user_name'] : $lang['userlevel_user']) : $lang['userlevel_guest'];
        
$sender_user_email = ($user_info['user_level'] != GUEST && isset($user_info['user_email'])) ? $user_info['user_email'] : $config['site_email'];

        
// Start Emailer
        
include(ROOT_PATH.'includes/email.php');
        
$site_email = new Email();
        
$site_email->set_from($sender_user_email$sender_user_name);
        
$site_email->set_to($user_row['user_email']);
        
$site_email->set_subject($subject);
        
$site_email->register_vars(array(
          
"sender_user_name" => $sender_user_name,
          
"sender_user_email" => $sender_user_email,
          
"message" => $message,
          
"site_name" => $config['site_name']
        ));
        
$site_email->set_body("mailform_message"$config['language_dir']);
        
$site_email->send_email();
        
$msg $lang['emailuser_success'];
      }
    }
    else {
      
$content $lang['invalid_user_id'];
    }
  }
  else {
    
$action "mailform";
  }
}

if (
$action == "mailform") {
  
$txt_clickstream $lang['profile'];
  if (isset(
$HTTP_GET_VARS[URL_USER_ID]) || isset($HTTP_POST_VARS[URL_USER_ID])) {
    
$user_id = (isset($HTTP_GET_VARS[URL_USER_ID])) ? intval($HTTP_GET_VARS[URL_USER_ID]) : intval($HTTP_POST_VARS[URL_USER_ID]);
    if (!
$user_id) {
      
$user_id GUEST;
    }
  }
  else {
    
$user_id GUEST;
  }

  if (
$user_info['user_level'] == GUEST || $user_info['user_level'] == USER_AWAITING) {
    
show_error_page($lang['no_permission']);
    exit;
  }

  if (!
$sendprocess) {
    
$subject "";
    
$message "";
  }

  if (
$user_row get_user_info($user_id)) {
    if (isset(
$user_row['user_showemail']) && $user_row['user_showemail'] == 0) {
      
$content $lang['invalid_user_id'];
    }
    else {
      
$site_template->register_vars(array(
        
"user_id" => $user_row['user_id'],
        
"user_name" => format_text($user_row['user_name']),
        
"subject" => format_text($subject2),
        
"message" => format_text($message2),
        
"lang_send_email_to" => $lang['send_email_to'],
        
"lang_subject" => $lang['subject'],
        
"lang_message" => $lang['message'],
        
"lang_submit" => $lang['submit'],
        
"lang_reset" => $lang['reset']
      ));
      
$content $site_template->parse_template("member_mailform");
    }
  }
  else {
    
$content $lang['invalid_user_id'];
  }
}

//-----------------------------------------------------
//--- Show Profile ------------------------------------
//-----------------------------------------------------
if ($action == "showprofile") {
  
$txt_clickstream $lang['profile'];
  if (isset(
$HTTP_GET_VARS[URL_USER_ID]) || isset($HTTP_POST_VARS[URL_USER_ID])) {
    
$user_id = (isset($HTTP_GET_VARS[URL_USER_ID])) ? intval($HTTP_GET_VARS[URL_USER_ID]) : intval($HTTP_POST_VARS[URL_USER_ID]);
    if (!
$user_id) {
      
$user_id GUEST;
    }
  }
  else {
    
$user_id GUEST;
  }

  if (
$user_row get_user_info($user_id)) {
    
$user_homepage = (isset($user_row['user_homepage'])) ? format_url($user_row['user_homepage']) : REPLACE_EMPTY;
    if (!empty(
$user_homepage) && $user_homepage != REPLACE_EMPTY) {
      
$user_homepage_button "<a href=\"".$user_homepage."\" target=\"_blank\"><img src=\"".get_gallery_image("homepage.gif")."\" border=\"0\" alt=\"".$user_homepage."\" /></a>";
    }
    else {
      
$user_homepage_button REPLACE_EMPTY;
    }

    
$user_icq = (isset($user_row['user_icq'])) ? $user_row['user_icq'] : REPLACE_EMPTY;
    if (!empty(
$user_icq) && $user_icq != REPLACE_EMPTY) {
      
$user_icq_button "<a href=\"http://wwp.icq.com/scripts/search.dll?to=".$user_icq."\" target=\"_blank\"><img src=\"http://web.icq.com/whitepages/online?icq=".$user_icq."&img=5\" width=\"18\" height=\"18\" border=\"0\" alt=\"".$user_icq."\" /></a>";
    }
    else {
      
$user_icq_button REPLACE_EMPTY;
    }

    if (!empty(
$user_row['user_email']) && (!isset($user_row['user_showemail']) || (isset($user_row['user_showemail']) && $user_row['user_showemail'] == 1))) {
      
$user_email $user_row['user_email'];
      
$user_email_save str_replace("@"" at "$user_row['user_email']);
      if (!empty(
$url_mailform)) {
        
$user_mailform_link $site_sess->url(preg_replace("/{user_id}/"$user_row['user_id'], $url_mailform));
      }
      else {
        
$user_mailform_link $site_sess->url(ROOT_PATH."member.php?action=mailform&amp;".URL_USER_ID."=".$user_row['user_id']);
      }
      
$user_email_button "<a href=\"".$user_mailform_link."\"><img src=\"".get_gallery_image("email.gif")."\" border=\"0\" alt=\"".$user_email_save."\" /></a>";
    }
    else {
      
$user_email REPLACE_EMPTY;
      
$user_email_save REPLACE_EMPTY;
      
$user_mailform_link REPLACE_EMPTY;
      
$user_email_button REPLACE_EMPTY;
    }

    
// Birthday Mod
    
$user_birthday = (isset($user_row[$user_table_fields['birthday']])) ? $user_row[$user_table_fields['birthday']] : REPLACE_EMPTY;
    if (!empty(
$user_birthday) && $user_birthday != REPLACE_EMPTY  && $user_row[$user_table_fields['birthday']] != "0000-00-00") {

           
$birthday explode("-",$user_row[$user_table_fields['birthday']]);
           
$user_birthday $birthday[2].".".$lang['months'][sprintf("%02d",$birthday[1])];
           
$user_birthday .= ($birthday[0]!="0000") ? " ".$birthday[0]."" "";

           
// Show Age in Profile
           
if (($config['birthday_show_profile_age'] == 1) && ($age calc_age ($user_row[$user_table_fields['birthday']]))) {
                
$user_birthday .= " ($age)";
           }

           
// Show Birthdaycountdown in Profile
           
if ($config['birthday_profile_countdown'] == && $b_cdown calc_countdown ($user_row[$user_table_fields['birthday']]))  {

                
$site_template->register_vars(array(
                     
"lang_birthday_cdown" => $lang['birthday_cdown'],
                     
"cdown_days" => $b_cdown['days'],
                     
"cdown_hours" => $b_cdown['hours'],
                     
"cdown_minutes" => $b_cdown['minutes'],
                     
"lang_days" => $lang['days'],
                     
"lang_hours" => $lang['hours'],
                     
"lang_minutes" => $lang['minutes']
                ));
           }
          
// End Show Birthdaycountdown in Profile

    
}
    else {
      
$user_birthday REPLACE_EMPTY;
    }
    
// Birthday Mod
    
$site_template->register_vars(array(
      
"user_id" => $user_row['user_id'],
      
"user_name" => (isset($user_row['user_name'])) ? format_text($user_row['user_name']) : REPLACE_EMPTY,
      
"user_birthday" => $user_birthday,
      
"user_email" => $user_email,
      
"user_email_save" => $user_email_save,
      
"user_mailform_link" => $user_mailform_link,
      
"user_email_button" => $user_email_button,
      
"user_join_date" => (isset($user_row['user_joindate'])) ? format_date($config['date_format'], $user_row['user_joindate']) : REPLACE_EMPTY,
      
"user_last_action" => (isset($user_row['user_lastaction'])) ? format_date($config['date_format']." ".$config['time_format'], $user_row['user_lastaction']) : REPLACE_EMPTY,
      
"user_homepage" => $user_homepage,
//User Pic
      
"userpic_img" => ($config['userpic'] && $user_row['userpic']) ? ROOT_PATH."data/userpic/".$user_row['userpic'] : "",
//End User Pic
      
"user_homepage_button" => $user_homepage_button,
      
"user_icq" => $user_icq,
      
"user_icq_button" => $user_icq_button,
      
"user_icq_status" => (isset($user_row['user_icq'])) ? get_icq_status($user_row['user_icq']) : REPLACE_EMPTY,
      
"user_comments" => (isset($user_row['user_comments'])) ? $user_row['user_comments'] : REPLACE_EMPTY,
      
"lang_profile_of" => $lang['profile_of'],
      
"lang_show_user_images" => preg_replace("/".$site_template->start."user_name".$site_template->end."/siU"$user_row['user_name'], $lang['show_user_images']),
      
"url_show_user_images" => $site_sess->url(ROOT_PATH."search.php?search_user=".urlencode($user_row['user_name'])),
      
"lang_join_date" => $lang['join_date'],
      
"lang_last_action" => $lang['last_action'],
      
"lang_comments" => $lang['comments'],
      
"lang_email" => $lang['email'],
      
"lang_homepage" => $lang['homepage'],
      
"lang_icq" => $lang['icq']
    ));

    if (!empty(
$additional_user_fields)) {
      
$additional_field_array = array();
      foreach (
$additional_user_fields as $key => $val) {
        
$additional_field_array[$key] = (!empty($user_row[$key])) ? format_text($user_row[$key], 1) : REPLACE_EMPTY;
        
$additional_field_array['lang_'.$key] = $val[0];
      }
      if (!empty(
$additional_field_array)) {
        
$site_template->register_vars($additional_field_array);
      }
    }
    
$content $site_template->parse_template("member_profile");
  }
  else {
    
$content $lang['invalid_user_id'];
  }
}

//-----------------------------------------------------
//--- Send Password -----------------------------------
//-----------------------------------------------------
if ($action == "sendpassword") {
  
$txt_clickstream $lang['lost_password'];
  
$user_email un_htmlspecialchars(trim($HTTP_POST_VARS['user_email']));

  if (
$user_email != "") {
    
$sql "SELECT ".get_user_table_field("""user_id").get_user_table_field(", ""user_name").get_user_table_field(", ""user_password")."
            FROM "
.USERS_TABLE."
            WHERE "
.get_user_table_field("""user_email")." = '$user_email'";
    if (
$checkuser $site_db->query_firstrow($sql)) {
      
mt_srand((double) microtime() * 1000000);
      
$puddle 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
      
$user_password "";
      for (
$i 0$i 8$i++) {
        
$user_password .= substr($puddle, (mt_rand()%(strlen($puddle))), 1);
      }

      
$sql "UPDATE ".USERS_TABLE."
              SET "
.get_user_table_field("""user_password")." = '".md5($user_password)."'
              WHERE "
.get_user_table_field("""user_id")." = ".$checkuser[$user_table_fields['user_id']];
      
$site_db->query($sql);

      
// Start Emailer
      
include(ROOT_PATH.'includes/email.php');
      
$site_email = new Email();
      
$site_email->set_to($user_email);
      
$site_email->set_subject($lang['send_password_emailsubject']);
      
$site_email->register_vars(array(
        
"user_name" => $checkuser[$user_table_fields['user_name']],
        
"user_password" => stripslashes($user_password),
        
"site_name" => $config['site_name']
      ));
      
$site_email->set_body("lost_password"$config['language_dir']);
      
$site_email->send_email();

      
$msg $lang['send_password_success'];
      
$HTTP_POST_VARS['user_email'] = "";
    }
    else {
      
$msg $lang['invalid_email'];
    }
  }

  
$action "lostpassword";
}

if (
$action == "lostpassword") {
  
$txt_clickstream $lang['lost_password'];
  
$user_email = (isset($HTTP_POST_VARS['user_email'])) ? format_text(stripslashes($HTTP_POST_VARS['user_email'])) : "";
  
$site_template->register_vars(array(
    
"lang_email" => $lang['email'],
    
"lang_lost_password" => $lang['lost_password'],
    
"lang_lost_password_msg" => $lang['lost_password_msg'],
    
"lang_submit" => $lang['submit'],
    
"user_email" => format_text($user_email2)
  ));
  
$content $site_template->parse_template("member_lostpassword");
}

//-----------------------------------------------------
//--- Edit Profile ------------------------------------
//-----------------------------------------------------
$update_process 0;
$new_email_msg "";
if (
$action == "updateprofile") {
  
$txt_clickstream $lang['control_panel'];
  if (
$user_info['user_level'] == GUEST) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$user_email = (isset($HTTP_POST_VARS['user_email'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_email'])) : "";
  
$user_email2 = (isset($HTTP_POST_VARS['user_email2'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_email2'])) : "";
  
$user_homepage = (isset($HTTP_POST_VARS['user_homepage'])) ? format_url(un_htmlspecialchars(trim($HTTP_POST_VARS['user_homepage']))) : "";
  
$user_icq = (isset($HTTP_POST_VARS['user_icq'])) ? ((intval(trim($HTTP_POST_VARS['user_icq']))) ? intval(trim($HTTP_POST_VARS['user_icq'])) : "") : "";
  
$user_showemail = (isset($HTTP_POST_VARS['user_showemail'])) ? intval($HTTP_POST_VARS['user_showemail']) : 0;
  
$user_allowemails = (isset($HTTP_POST_VARS['user_allowemails'])) ? intval($HTTP_POST_VARS['user_allowemails']) : 0;
  
$user_invisible = (isset($HTTP_POST_VARS['user_invisible'])) ? intval($HTTP_POST_VARS['user_invisible']) : 0;
  
$user_birthday_day = (isset($HTTP_POST_VARS['user_birthday_day'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_birthday_day'])) : "";
  
$user_birthday_month = (isset($HTTP_POST_VARS['user_birthday_month'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_birthday_month'])) : "";
  
$user_birthday_year = (isset($HTTP_POST_VARS['user_birthday_year'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['user_birthday_year'])) : "";

  
$error 0;
  if (!
$user_birthday check_birthday($user_birthday_day,$user_birthday_month,$user_birthday_year,$config['birthday_required'])) {
       
$msg .= (($msg != "") ? "<br />" "").$lang['birthday_error'];
       
$error 1;
  }
  if (
$user_info['user_email'] != $user_email && $checkuser $site_db->query_firstrow("SELECT ".get_user_table_field("""user_id")." FROM ".USERS_TABLE." WHERE ".get_user_table_field("""user_email")." = '$user_email' AND ".get_user_table_field("""user_id")." <> '".$user_info['user_id']."'")) {
    if (
$checkuser[$user_table_fields['user_id']] != $user_info['user_id']) {
      
$msg .= (($msg != "") ? "<br />" "").$lang['email_exists'];
      
$error 1;
    }
  }
  if (
$user_email != $user_email2) {
    
$msg .= (($msg != "") ? "<br />" "").$lang['update_email_confirm_error'];
    
$error 1;
  }
  if (
$user_email == "" || $user_email2 == "") {
    
$msg .= (($msg != "") ? "<br />" "").$lang['update_email_error'];
    
$error 1;
  }
  if (!
check_email($user_email)) {
    
$msg .= (($msg != "") ? "<br />" "").$lang['invalid_email_format'];
    
$error 1;
  }

  if (!empty(
$additional_user_fields)) {
    foreach (
$additional_user_fields as $key => $val) {
      if (isset(
$HTTP_POST_VARS[$key]) && intval($val[2]) == && trim($HTTP_POST_VARS[$key]) == "") {
        
$error 1;
        
$field_error preg_replace("/".$site_template->start."field_name".$site_template->end."/siU"str_replace(":"""$val[0]), $lang['field_required']);
        
$msg .= (($msg != "") ? "<br />" "").$field_error;
      }
    }
  }

// Upload User Pic
  
$userpic $userpic_new "";
  if (!
$error && $config['userpic'])
  {
    
$userpics_dir ROOT_PATH."data/userpic/";
    if (!empty(
$HTTP_POST_FILES['userpic_file']['tmp_name']) && $HTTP_POST_FILES['userpic_file']['tmp_name'] != "none")
    {
      if (isset(
$HTTP_COOKIE_VARS['userpic_file']) || isset($HTTP_POST_VARS['userpic_file']) || isset($HTTP_GET_VARS['userpic_file'])) {
        die(
"Security violation");
      }
      if (!
function_exists("is_uploaded_file")) {
        function 
is_uploaded_file($file_name) {
          if (!
$tmp_file = @get_cfg_var('upload_tmp_dir')) {
            
$tmp_file tempnam('','');
            
$deleted = @unlink($tmp_file);
            
$tmp_file dirname($tmp_file);
          }
          
$tmp_file .= '/'.basename($file_name);
          return (
ereg_replace('/+''/'$tmp_file) == $file_name) ? 0;
        }

        function 
move_uploaded_file($file_name$destination) {
          return (
is_uploaded_file($file_name)) ? ((copy($file_name$destination)) ? 0) : 0;
        }
      }
      
$error = array();
      
$mime_types = array(
        
"image/jpeg",
        
"image/pjpeg",
        
"image/gif",
        
"image/x-png"
      
);
      
$extensions = array(
        
"jpg",
        
"jpeg",
        
"gif",
        
"png"
      
);
      
$userpic_ext strtolower(substr(strrchr($HTTP_POST_FILES['userpic_file']['name'],"."), 1));
      
$userpic_mime $HTTP_POST_FILES['userpic_file']['type'];
      if (!
in_array($userpic_mime$mime_types) || !in_array($userpic_ext$extensions))
      {
        
$error[] = $lang['invalid_file_type']. " (".$userpic_ext.", ".$HTTP_POST_FILES['userpic_file']['type'].")";
      }
      if (
$HTTP_POST_FILES['userpic_file']['size'] > $config['userpic_size'] * 1024)
      {
        
$error[] = $lang['invalid_file_size'];
      }
      if (empty(
$error))
      {
        
$userpic_name $user_info['user_id'].".".$userpic_ext;
        
$userpic_file $userpics_dir.$userpic_name;
         if (
file_exists($userpic_file))
         {
            
unlink($userpic_file);
        }
        if (!
move_uploaded_file($HTTP_POST_FILES['userpic_file']['tmp_name'], $userpic_file))
        {
          
$error[] = $lang['file_copy_error'];
        }
        else
        {
          @
chmod($userpic_fileCHMOD_FILES);
        }
      }
      if (empty(
$error))
      {
        
$userpic $HTTP_POST_VARS['userpic'] = $userpic_new $userpic_name;
        if (
$user_info['userpic'] != $userpic_name && file_exists($userpics_dir.$user_info['userpic']))
        {
          @
unlink($userpics_dir.$user_info['userpic']);
        }
        if (!
function_exists(init_convert_options))
        {
          require(
ROOT_PATH.'includes/image_utils.php');
        }
        
$image_info getimagesize($userpic_file);
        
$convert_options init_convert_options();
        if ((
$image_info[0] > $config['userpic_width'] || $image_info[1] > $config['userpic_height']))
        {
          if (
$convert_options['convert_error'] || (!$convert_options['convert_error'] && !resize_image($userpic_file85$config['userpic_width'], 1)))
          {
            if (
$image_info[0] > $config['userpic_width'])
            {
              
$error[] = $lang['invalid_image_width'];
            }
            if (
$image_info[1] > $config['userpic_height'])
            {
              
$error[] = $lang['invalid_image_height'];
            }
          }
        }
      }
      if (!empty(
$error))
      {
        
$msg .= (($msg != "") ? "<br />" "")."<b>".$lang['file_upload_error'].": ".$HTTP_POST_FILES['userpic_file']['name']."</b><br />";
        foreach (
$error as $val) {
          
$msg .= "<b>".$HTTP_POST_FILES['userpic_file']['name'].":</b> ".$val."<br />";
        }
        
$HTTP_POST_VARS['userpic'] = $user_info['userpic'];
      }
    }
    else
    {
      if (isset(
$HTTP_POST_VARS['userpic_del']) && $HTTP_POST_VARS['userpic_del'])
      {
        @
unlink($userpics_dir.$user_info['userpic']);
        
$HTTP_POST_VARS['userpic'] = $userpic "";
        
$userpic_new 1;
      }
    }
  }
// End Upload User Pic

  
if (!$error && $user_email != $user_info['user_email'] && $user_info['user_level'] != ADMIN && $config['account_activation'] != 0) {
    
$activationkey get_random_key(USERS_TABLE$user_table_fields['user_activationkey']);

    
$sql "UPDATE ".USERS_TABLE."
            SET "
.get_user_table_field("""user_level")." = ".USER_AWAITING.", ".get_user_table_field("""user_activationkey")." = '$activationkey'
            WHERE "
.get_user_table_field("""user_id")." = ".$user_info['user_id'];
    
$result $site_db->query($sql);

    if (
$result) {
      
$activation_url $script_url."/register.php?action=activate&activationkey=".$activationkey;

      include(
ROOT_PATH.'includes/email.php');
      
$site_email = new Email();

      switch(
$config['account_activation']) {
      case 
2:
        
$user_details_url $script_url."/admin/index.php?goto=".urlencode("users.php?action=edituser&user_id=".$user_info['user_id']."&activation=1");
        
$email_to $config['site_email'];
        
$email_subject $lang['admin_activation_emailsubject'];
        
$email_template "admin_activation";
        
$new_email_msg $lang['update_email_instruction_admin'];
        break;
      case 
1:
        if (
$config['language_dir_default'] != $config['language_dir']) {
          
$activation_url .= "&l=".$config['language_dir'];
        }
        
$user_details_url "";
        
$email_to $user_email;
        
$email_subject $lang['update_email_emailsubject'];
        
$email_template "newemail_activation";
        
$new_email_msg $lang['update_email_instruction'];
        break;
      case 
0:
      default:
        break;
      }

      if (!empty(
$email_to)) {
        
$site_email->set_to($email_to);
        
$site_email->set_subject($email_subject);
        
$site_email->register_vars(array(
          
"user_details_url" => $user_details_url,
          
"activation_url" => $activation_url,
          
"user_name" => $user_info['user_name'],
          
"site_name" => $config['site_name']
        ));
        
$site_email->set_body($email_template$config['language_dir']);
        
$site_email->send_email();
      }
    }
    else {
      
$msg $lang['general_error'];
      
$error 1;
    }
  }

  if (!
$error) {
    
$additional_sql "";
    if (!empty(
$additional_user_fields)) {
      
$table_fields $site_db->get_table_fields(USERS_TABLE);
      foreach (
$additional_user_fields as $key => $val) {
        if (isset(
$HTTP_POST_VARS[$key]) && isset($table_fields[$key])) {
          
$additional_sql .= ", $key = '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key]))."'";
        }
      }
    }

    
// Birthday Mod
    
$additional_sql .= ", ".get_user_table_field("""birthday")." = '$user_birthday'";

    
$sql "UPDATE ".USERS_TABLE."
            SET "
.get_user_table_field("""user_email")." = '$user_email', ".get_user_table_field("""user_showemail")." = $user_showemail, ".get_user_table_field("""user_allowemails")." = $user_allowemails, ".get_user_table_field("""user_invisible")." = $user_invisible, ".get_user_table_field("""user_homepage")." = '$user_homepage', ".get_user_table_field("""user_icq")." = '$user_icq'".$additional_sql."
            WHERE "
.get_user_table_field("""user_id")." = ".$user_info['user_id'];
    
$site_db->query($sql);

    
$msg $lang['update_profile_success'];
    if (!empty(
$new_email_msg)) {
      
$msg .= "<br />".$new_email_msg;
    }
    
$user_info $site_sess->load_user_info($user_info['user_id']);
  }
  else {
    
$update_process 1;
  }
  
$action "editprofile";
}

if (
$action == "updatepassword") {
  
$txt_clickstream $lang['control_panel'];
  if (
$user_info['user_level'] == GUEST) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$error 0;
  
$current_user_password md5(trim($HTTP_POST_VARS['current_user_password']));
  
$user_password md5(trim($HTTP_POST_VARS['user_password']));
  
$user_password2 md5(trim($HTTP_POST_VARS['user_password2']));
  if (
$current_user_password != $user_info['user_password']) {
    
$msg .= (($msg != "") ? "<br />" "").$lang['update_password_error'];
    
$error 1;
  }
  if (
$user_password != $user_password2 || $user_password == "") {
    
$msg .= (($msg != "") ? "<br />" "").$lang['update_password_confirm_error'];
    
$error 1;
  }
  if (!
$error) {
    
$sql "UPDATE ".USERS_TABLE."
            SET "
.get_user_table_field("""user_password")." = '$user_password'
            WHERE "
.get_user_table_field("""user_id")." = ".$user_info['user_id'];
    
$site_db->query($sql);

    
$msg $lang['update_password_success'];
    
$user_info $site_sess->load_user_info($user_info['user_id']);
  }
  
$action "editprofile";
}

if (
$action == "editprofile") {
  
$txt_clickstream $lang['control_panel'];
  if (
$user_info['user_level'] == GUEST) {
    
show_error_page($lang['no_permission']);
    exit;
  }
  
$user_name $user_info['user_name'];
  if (!
$update_process) {
    
$user_email $user_info['user_email'];
    
$user_email2 $user_info['user_email'];
    
$user_showemail $user_info['user_showemail'];
    
$user_allowemails $user_info['user_allowemails'];
    
$user_invisible $user_info['user_invisible'];
    
$user_homepage $user_info['user_homepage'];
    
$user_icq $user_info['user_icq'];
    
$birthday explode("-",$user_info['birthday']);
    
$user_birthday_day $birthday[2];
    
$user_birthday_month $birthday[1];
    
$user_birthday_year $birthday[0];
  }

  
$birthday_day_options "<option value=\"\">--</option>\n";
  
$birthday_month_options "<option value=\"\">--</option>\n";

  for (
$i=1;$i<=31;$i++){
    
$birthday_day_options .= "<option value=\"".sprintf("%02d",$i)."\"".(($i == $user_birthday_day) ? "selected" "").">".$i."</option>\n";

  }
  for (
$i=1;$i<=12;$i++){                                                                                                                        //getmonth($i)
    
$birthday_month_options .= "<option value=\"".sprintf("%02d",$i)."\"".(($i == $user_birthday_month) ? "selected" "").">".$lang['months'][sprintf("%02d",$i)]."</option>\n";
  }

  if (
$user_showemail == 1) {
    
$user_showemail_yes " checked=\"checked\"";
    
$user_showemail_no "";
  }
  else {
    
$user_showemail_yes "";
    
$user_showemail_no " checked=\"checked\"";
  }
  if (
$user_allowemails == 1) {
    
$user_allowemails_yes " checked=\"checked\"";
    
$user_allowemails_no "";
  }
  else {
    
$user_allowemails_yes "";
    
$user_allowemails_no " checked=\"checked\"";
  }
  if (
$user_invisible == 1) {
    
$user_invisible_yes " checked=\"checked\"";
    
$user_invisible_no "";
  }
  else {
    
$user_invisible_yes "";
    
$user_invisible_no " checked=\"checked\"";
  }

  
$edit_profile_msg $lang['edit_profile_msg'];
  if (
$config['account_activation'] == && $user_info['user_level'] != ADMIN) {
    
$edit_profile_msg .= $lang['edit_profile_email_msg'];
  }
  if (
$config['account_activation'] == && $user_info['user_level'] != ADMIN) {
    
$edit_profile_msg .= $lang['edit_profile_email_msg_admin'];
  }

  
$site_template->register_vars(array(
    
"user_name" => format_text(stripslashes($user_name), 2),
    
"user_email" => format_text(stripslashes($user_email), 2),
    
"user_email2" => format_text(stripslashes($user_email2), 2),
    
"user_homepage" => format_text(stripslashes($user_homepage), 2),
"birthday_day_options" => $birthday_day_options,
"birthday_month_options" => $birthday_month_options,
"user_birthday_year" => $user_birthday_year,
"lang_day" => $lang['day'],
"lang_month" => $lang['month'],
    
"lang_year" => $lang['year'],
    
"user_icq" => $user_icq,
//User Pic
    
"userpic_allowed" => $config['userpic'],
    
"userpic_img" => ($user_info['userpic']) ? ROOT_PATH."data/userpic/".$user_info['userpic'] : "",
    
"lang_userpic_del" => $lang['userpic_del'],
    
"lang_userpic_upload" => preg_replace("/".$site_template->start."userpic_max_size".$site_template->end."/siU"$config['userpic_size']."&nbsp;".$lang['kb'], preg_replace("/".$site_template->start."userpic_max_width".$site_template->end."/siU"$config['userpic_width'], preg_replace("/".$site_template->start."userpic_max_height".$site_template->end."/siU"$config['userpic_height'], $lang['userpic_upload']))),
    
"userpic_max_width" => $config['userpic_width'],
    
"userpic_max_height" => $config['userpic_height'],
    
"userpic_max_size" => $config['userpic_size']."&nbsp;".$lang['kb'],
//End User Pic
    
"user_showemail_yes" => $user_showemail_yes,
    
"user_showemail_no" => $user_showemail_no,
    
"user_allowemails_yes" => $user_allowemails_yes,
    
"user_allowemails_no" => $user_allowemails_no,
    
"user_invisible_yes" => $user_invisible_yes,
    
"user_invisible_no" => $user_invisible_no,
    
"lang_profile_of" => $lang['profile_of'],
    
"lang_email" => $lang['email'],
    
"lang_email_confirm" => $lang['email_confirm'],
    
"lang_show_email" => $lang['show_email'],
    
"lang_allow_emails" => $lang['allow_emails'],
    
"lang_invisible" => $lang['invisible'],
    
"lang_optional_infos" => $lang['optional_infos'],
    
"lang_homepage" => $lang['homepage'],
    
"lang_icq" => $lang['icq'],
    
"lang_save" => $lang['save'],
    
"lang_reset" => $lang['reset'],
    
"lang_change_password" => $lang['change_password'],
    
"lang_old_password" => $lang['old_password'],
    
"lang_new_password" => $lang['new_password'],
    
"lang_new_password_confirm" => $lang['new_password_confirm'],
    
"lang_edit_profile_msg" => $edit_profile_msg,
    
"lang_yes" => $lang['yes'],
    
"lang_no" => $lang['no']
  ));

  if (!empty(
$additional_user_fields)) {
    
$additional_field_array = array();
    foreach (
$additional_user_fields as $key => $val) {
      if (
$val[1] == "radio") {
        
$value = (isset($HTTP_POST_VARS[$key])) ? intval($HTTP_POST_VARS[$key]) : intval($user_info[$key]);
        if (
$value == 1) {
          
$additional_field_array[$key.'_yes'] = " checked=\"checked\"";
          
$additional_field_array[$key.'_no'] = "";
        }
        else {
          
$additional_field_array[$key.'_yes'] = "";
          
$additional_field_array[$key.'_no'] = " checked=\"checked\"";
        }
      }
      else {
        
$value = (isset($HTTP_POST_VARS[$key])) ? format_text(trim($HTTP_POST_VARS[$key]), 2) : $user_info[$key];
      }
      
$additional_field_array[$key] = $value;
      
$additional_field_array['lang_'.$key] = $val[0];
    }
    if (!empty(
$additional_field_array)) {
      
$site_template->register_vars($additional_field_array);
    }
  }

  
$content $site_template->parse_template("member_editprofile");
  if (!empty(
$new_email_msg)) {
    
$site_sess->logout($user_info['user_id']);
  }
}

//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------
$clickstream "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'].$txt_clickstream."</span>";
$page_title $config['category_separator'].$txt_clickstream// MOD: Dynamic page title

//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  
"content" => $content,
  
"msg" => $msg,
  
"clickstream" => $clickstream,
  
"page_title" => $page_title// MOD: Dynamic page title
  
"lang_control_panel" => $lang['control_panel']
));

// MOD: Dynamic page title BLOCK BEGIN
//-----------------------------------------------------
//--- Parse Header & Footer ---------------------------
//-----------------------------------------------------
if (isset($main_template) && $main_template) {
  
$header $site_template->parse_template("header");
  
$footer $site_template->parse_template("footer");
  
$site_template->register_vars(array(
    
"header" => $header,
    
"footer" => $footer
  
));
  unset(
$header);
  unset(
$footer);
}
// MOD: Dynamic page title BLOCK END

$site_template->print_template($site_template->parse_template($main_template));
include(
ROOT_PATH.'includes/page_footer.php');
?>


And here is my image_utils.php:

Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: image_utils.php                                      *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.2                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) f&#252;r weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die(
"Security violation");
}

function 
init_convert_options() {
  global 
$config$lang;

  
$convert_options = array(
    
"convert_error" => 0,
    
"convert_tool" => $config['convert_tool'],
    
"convert_path" => ereg_replace("\/$"""$config['convert_tool_path'])
  );
  switch(
$config['convert_tool']) {
  case 
"im":
    
$exec check_executable("convert");
        
$convert_options['convert_path'] = preg_replace("/\/?(".check_executable("mogrify")."|$exec)+$/i"''$convert_options['convert_path']);
    
$convert_options['convert_path'] = $convert_options['convert_path'] . '/' $exec;
        if (!@
is_executable($convert_options['convert_path'])) {
      
$convert_options['convert_error'] = "<b class=\"marktext\">".$lang['im_error']."</b><br />\n".$lang['check_module_settings'];
    }
    break;
  case 
"gd":
    
$convert_options['convert_gd2'] = false;

    if (
defined('CONVERT_IS_GD2')) {
      
$convert_options['convert_gd2'] = CONVERT_IS_GD2 == false true;
    } elseif (
function_exists("imagecreatetruecolor") && function_exists("imagecopyresampled")) {
      
$convert_options['convert_gd2'] = true;
    }

    if (!
function_exists("imagetypes")) {
      
$convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['gd_error']."</b><br />\n".$lang['check_module_settings'] : 1;
    }
    break;
  case 
"netpbm":
    if (!@
is_executable($convert_options['convert_path']."/".check_executable("pnmscale"))) {
      
$convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['netpbm_error']."</b><br />\n".$lang['check_module_settings'] : 1;
    }
    break;
  default:
    
$convert_options['convert_error'] = (defined("IN_CP")) ? "<b class=\"marktext\">".$lang['no_convert_module']."</b><br />\n".$lang['check_module_settings'] : 1;
  }
  return 
$convert_options;
}

function 
resize_image_gd($src$dest$quality$width$height$image_info) {
  global 
$convert_options;

  
$types = array(=> "gif"=> "jpeg"=> "png");
  if (
$convert_options['convert_gd2']) {
    
$thumb imagecreatetruecolor($width$height);
  }
  else {
    
$thumb imagecreate($width$height);
  }
  
$image_create_handle "imagecreatefrom".$types[$image_info[2]];

  if (
$image $image_create_handle($src)) {
    if (
$convert_options['convert_gd2']) {
      
imagecopyresampled($thumb$image0000$width$heightImageSX($image), ImageSY($image));
    }
    else {
      
imagecopyresized($thumb$image0000$width$heightImageSX($image), ImageSY($image));
    }
    
$image_handle "image".$types[$image_info[2]];
    
$image_handle($thumb$dest$quality);
    
imagedestroy($image);
    
imagedestroy($thumb);
  }
  return (
file_exists($dest)) ? 0;
}

function 
resize_image_im($src$dest$quality$width$height$image_info) {
  global 
$convert_options;

  
$command $convert_options['convert_path']." -quality ".$quality." -antialias -sample $width"."x"."$height \"$src\" \"$dest\"";
  
system($command);
  return (
file_exists($dest)) ? 0;
}

function 
resize_image_netpbm($src$dest$quality$width$height$image_info) {
  global 
$convert_options;

  
$convert_path $convert_options['convert_path'];
  
$types = array(=> "gif"=> "jpeg"=> "png");
  
$target = ($width $height) ? $width $height;
  
$command $convert_path."/".check_executable($types[$image_info[2]]."topnm")." ".$src." | ".$convert_path."/".check_executable("pnmscale")." --quiet -xysize ".$target." ".$target." | ";
  if (
$image_info[2] == 1) {
    
$command .= $convert_path."/".check_executable("ppmquant")." 256 | " $convert_path."/".check_executable("ppmtogif")." > ".$dest;
  }
  elseif (
$image_info[2] == 3) {
    
$command .= $convert_path."/".check_executable("pnmtopng")." > ".$dest;
  }
  else {
    
$jpeg_exec = (file_exists($convert_path."/".check_executable("pnmtojpeg"))) ? check_executable("pnmtojpeg") : check_executable("ppmtojpeg");
    
$command .= $convert_path."/".$jpeg_exec." --quality=".$quality." > ".$dest;
  }
  
system($command);
  return (
file_exists($dest)) ? 0;
}

function 
get_width_height($dimension$width$height$resize_type 1) {
  if (
$resize_type == 2) {
    
$new_width $dimension;
    
$new_height floor(($dimension/$width) * $height);
  }
  elseif (
$resize_type == 3) {
    
$new_width floor(($dimension/$height) * $width);
    
$new_height $dimension;
  }
  else {
    
$ratio $width $height;
    if (
$ratio 1) {
      
$new_width $dimension;
      
$new_height floor(($dimension/$width) * $height);
    }
    else {
      
$new_width floor(($dimension/$height) * $width);
      
$new_height $dimension;
    }
  }
  return array(
"width" => $new_width"height" => $new_height);
}

function 
create_thumbnail($src$dest$quality$dimension$resize_type) {
  global 
$convert_options;
  if (
file_exists($dest)) {
    @
unlink($dest);
  }
  
$image_info = (defined("IN_CP")) ? getimagesize($src) : @getimagesize($src);
  if (
in_array(get_file_extension($src), array("asf""wma""wmv""mpg""mpeg""avi""mov""asx""mp4""flv"))) {
  
Generate_VideoThumb($src$dest.".jpg");
      
@chmod($destCHMOD_FILES);
      
$image_handle $dest.".jpg";
      
$new_thumb_name $dest.".jpg";
      
return true;
  
}
  if (!
$image_info) {
    
return false;
  }
  
$width_height get_width_height($dimension$image_info[0], $image_info[1], $resize_type);
   
$resize_handle "resize_image_".(($image_info[2] == 1) ? "im" $convert_options['convert_tool']);
  if (
$resize_handle($src$dest$quality$width_height['width'], $width_height['height'], $image_info)) {
    @
chmod($destCHMOD_FILES);
    return 
true;
  }
  else {
    return 
false;
  }
}


function 
resize_image($file$quality$dimension$resize_type 1) {
  global 
$convert_options;
  
$image_info = (defined("IN_CP")) ? getimagesize($file) : @getimagesize($file);
  if (!
$image_info) {
    return 
false;
  }
  
$file_bak $file.".bak";
  if (!
rename($file$file_bak)) {
    return 
false;
  }
  
$width_height get_width_height($dimension$image_info[0], $image_info[1], $resize_type);
   
$resize_handle "resize_image_".(($image_info[2] == 1) ? "im" $convert_options['convert_tool']);
  if (
$resize_handle($file_bak$file$quality$width_height['width'], $width_height['height'], $image_info)) {
    @
chmod($fileCHMOD_FILES);
    @
unlink($file_bak);
    return 
true;
  }
  else {
    
rename($file_bak$file);
    return 
false;
  }
}


/**************************************************************************
 * WeZ - Get Vid Info Code                                                *
 *************************************************************************/
function movie_get_length_in_seconds($src)
{
$cmd "mplayer -identify -vo null -ao null -frames 1 \"".$src."\" 2>&1 | grep ID_LENGTH";
$output exec($cmd);
list(,
$length) = explode("="$output);
$length ceil($length/3);
return 
$length;
}


/**************************************************************************
 * WeZ - Get Thumb Code                                                *
 *************************************************************************/
function Generate_VideoThumb($src$dest) {
  global 
$convert_options;
  
$length movie_get_length_in_seconds($src);
  
$command "mplayer \"".$src."\" -ss ".$length." -nosound -vo jpeg:smooth=75 -vf scale=120:80 -frames 1 > imagegenoutput.txt";
  
system($command);
  
unlink("imagegenoutput.txt");
  
unlink("00000001.jpg");
  
rename("00000002.jpg",$dest);
  return (
file_exists($dest)) ? 0;
}


?>

You can see the command right above $command = "mplayer \"".$src."\" -ss ".$length." -nosound -vo jpeg:smooth=75 -vf scale=120:80 -frames 1 > imagegenoutput.txt";
« Last Edit: July 20, 2009, 06:45:16 PM by son_gokou »