вопрос
Приветствую многоуважаемые форумчане!
Помогите пожалуйста разобраться с стилями.
Есть модуль для загрузки изображений в профиль для каждого пользователя. При загрузке картинок кнопочка бегает куда ей вздумается, в общем живет своей жизнью. Хотя должна располагаться строго в нижнем левом углу. Вы сами можете посмотреть результат на этом тестовом сайте, во вкладке "Загруженные файлы".
Сам скрипт UserPhotos.php:
Помогите пожалуйста разобраться с стилями.
Есть модуль для загрузки изображений в профиль для каждого пользователя. При загрузке картинок кнопочка бегает куда ей вздумается, в общем живет своей жизнью. Хотя должна располагаться строго в нижнем левом углу. Вы сами можете посмотреть результат на этом тестовом сайте, во вкладке "Загруженные файлы".
Сам скрипт UserPhotos.php:
<?php
/*
=====================================================
Автор модуля: REZER
-----------------------------------------------------
http://www.rezer.net/
=====================================================
Данный код защищен авторскими правами
=====================================================
Назначение: Подгрузка необходимых файлов для AJAX
=====================================================
*/
//-------------------------------------------------====
//
// Настройки модуля
//
//-------------------------------------------------====
if ( function_exists("date_default_timezone_set") ) {
date_default_timezone_set(@date_default_timezone_get());
}
$MaxUsersPhotos = 20; // Максимальное количество фотографий у одного пользователя
$ThumbPhotoSize = 100; // Размер уменьшенной картинки в px
$MaxPhotoKB = 200 * 1024; // Максимальное размер загружаемой фотки в байтах (при умножении на 1024 получается в КБ)
$AllowedExtensions = array( "jpg", "png", "jpeg", "gif" ); // Разрешённые типы картинок
//-------------------------------------------------====
//
// Если работает AJAX
//
//-------------------------------------------------====
if( $_REQUEST['ajax'] == 1 )
{
@session_start();
@error_reporting( 7 );
@ini_set( "display_errors", true );
@ini_set( "html_errors", false );
define( "DATALIFEENGINE", true );
//-------------------------------------------------====
// Настройка путей
//-------------------------------------------------====
define( "ROOT_DIR", "../.." );
define( "ENGINE_DIR", ".." );
//-------------------------------------------------====
// Грузим конфиги и нужные файлы
//-------------------------------------------------====
require_once( ENGINE_DIR."/data/config.php" );
require_once( ROOT_DIR."/language/".$config['langs']."/website.lng" );
require_once( ENGINE_DIR."/classes/mysql.php" );
require_once( ENGINE_DIR."/data/dbconfig.php" );
require_once( ENGINE_DIR."/modules/functions.php" );
require_once( ENGINE_DIR."/modules/sitelogin.php" );
$_REQUEST['skin'] = totranslit( $_REQUEST['skin'], false, false );
$Skin = ( @is_dir( ROOT_DIR."/templates/".$_REQUEST['skin'] ) && $_REQUEST['skin'] ) ? $_REQUEST['skin'] : $config['skin'];
//-------------------------------------------------====
// Проверяем язык
//-------------------------------------------------====
$config['charset'] = ( $lang['charset'] != '' ) ? $lang['charset'] : $config['charset'];
//-------------------------------------------------====
// Настриваем Header информацию для вывода
//-------------------------------------------------====
@header( "Content-type: text/html; charset=".$config['charset'] );
@header( "pragma-cache: no-cache" );
//-------------------------------------------------====
// Функция, выводящая текст в новом окне
//-------------------------------------------------====
function echoReturn( $text ){
die("<script language=\"javascript\">alert('{$text}');</script>");
}
//-------------------------------------------------====
// Функция конвертации
//-------------------------------------------------====
if( !function_exists( "CharsetConvert" ) )
{
function CharsetConvert( $text, $to = "auto" ){
global $config;
if( version_compare( $config['version_id'], "7.5", "<" ) ) return convert_unicode( $text );
$text = stripslashes( $text );
$charset = mb_detect_encoding( $text, "utf-8,windows-1251" );
if( $to == "auto" ) $to = $config['charset'];
if( $charset != $to && $to != "" ) $text = iconv( $charset, $to."//IGNORE", $text );
return urldecode( $text );
}
}
//-------------------------------------------------====
// Проверка на разрешённость
//-------------------------------------------------====
if( !$is_logged ) die( "Авторизируйтесь!" );
$UserID = intval( $_POST['user_id'] );
if( ( $member_id['user_id'] != $UserID && $member_id['user_group'] != 1 ) || !$UserID ) die( "Вы можете загружать или удалять фотографии только в своём профиле!" );
// Если редактирует админ
if( $UserID != $member_id['user_id'] ) $member_id = $db->super_query( "SELECT photos,name,user_group FROM ".USERPREFIX."_users WHERE `user_id`='{$UserID}'" );
$UserName = totranslit( $member_id['name'] );
//-------------------------------------------------====
// Загрузка фотографии
//-------------------------------------------------====
if( $_REQUEST['upload'] == 1 )
{
if( $member_id['photos'] )
{
if( count( explode( ",", $member_id['photos'] ) ) >= $MaxUsersPhotos ) echoReturn( "Вы исчерпали лимит колличества фотографий. Удалите старые и загрузите данную фотографию заново!" );
}
$Folder = ROOT_DIR."uploads/userphotos/";
$ThumbsFolder = ROOT_DIR."uploads/userphotos/thumbs/";
$MaxFileSize = intval( intval( @ini_get( "upload_max_filesize" ) ) * 1024 * 1024 );
// Инфо о фотографии
$image = $_FILES['Filedata']['tmp_name'];
$image_size = $_FILES['Filedata']['size'];
$type = end( explode( ".", $_FILES['Filedata']['name'] ) );
$image_name = explode( ".", str_replace( " ", "_", $_FILES['Filedata']['name'] ) );
$image_name = totranslit( $image_name[0] );
$Prefix = $UserName; //time() + rand( 1, 500 );
$DbFile = "{$image_name}.{$type}";
$ImageFile = "/uploads/userphotos/{$Prefix}_{$DbFile}";
$ImageThumbFile = "/uploads/userphotos/thumbs/{$Prefix}_{$DbFile}";
// Если фотка весит больше, чем возможно
if( $image_size > $MaxFileSize || $image_size > $MaxPhotoKB ) echoReturn( "Фотография весит больше, чем разрешено загружать на сервер!" );
// Начало загрузки фото
if( is_uploaded_file( $image ) )
{
if( ( in_array( strtolower( $type ), $AllowedExtensions ) ) && $image_name )
{
if( !file_exists( ROOT_DIR.$ImageFile ) )
{
require_once( ENGINE_DIR."/classes/thumb.class.php" );
$res = @move_uploaded_file( $image, ROOT_DIR.$ImageFile );
if( $res )
{
$thumb = new thumbnail( ROOT_DIR.$ImageFile );
$thumb->jpeg_quality( 80 );
$thumb->size_auto( $ThumbPhotoSize );
$thumb->save( ROOT_DIR.$ImageThumbFile );
@chmod( ROOT_DIR.$ImageThumbFile, 0666 );
@chmod( ROOT_DIR.$ImageFile, 0666 );
if( $member_id['photos'] )
{
$Photos = explode( ",", $member_id['photos'] );
$Photos[] = "{$Prefix}_{$DbFile}";
$Photos = implode( ",", $Photos );
}
else
{
$Photos = "{$Prefix}_{$DbFile}";
}
$db->query( "UPDATE ".USERPREFIX."_users SET `photos`='{$Photos}' WHERE `user_id`='{$UserID}'" );
// Настройка шаблонов
require_once( ENGINE_DIR."/classes/templates.class.php" );
$tpl = new dle_template();
$tpl->dir = ROOT_DIR."/templates/{$Skin}";
define( "TEMPLATE_DIR", $tpl->dir );
$Photo = "{$Prefix}_{$DbFile}";
$tpl->Load_Template( "userphotos/userinfo.photo.list.tpl" );
$tpl->copy_template = "<div id=\"{$Photo}\">".$tpl->copy_template."</div>";
$tpl->set( "{photo}", "<a href=\"/uploads/userphotos/{$Photo}\" target=\"_blank\" onclick=\"return hs.expand(this)\"><img src=\"/uploads/userphotos/thumbs/{$Photo}\" alt=\"\" /></a>" );
$tpl->set( "{photo:thumb}", "/uploads/userphotos/thumbs/{$Photo}" );
$tpl->set( "{photo:url}", "/uploads/userphotos/{$Photo}" );
$tpl->set( "{photo:name}", $Photo );
$tpl->set( "[del]", "<a href=\"javascript:void(0);\" onclick=\"DelUserPhoto( '{$Photo}' ); return false;\">" );
$tpl->set( "[/del]", "</a>" );
$tpl->set( "[download]", "<a href=\"/engine/dw.php?filename={$Photo}\">" );
$tpl->set( "[/download]", "</a>" );
$tpl->compile( "result" );
$tpl->clear();
$tpl->result['result'] = str_replace( "{THEME}", "/templates/{$Skin}", $tpl->result['result'] );
echo $tpl->result['result'];
}
else
{
echoReturn( "Картинка не загружена." );
}
}
else
{
echoReturn( "Файл с таким же именем уже существует." );
}
}
else
{
echoReturn( "Только JPG, PNG, GIF или SWF!" );
}
}
else
{
echoReturn( "Файл не может быть загружен." );
}
}
elseif( $_REQUEST['del'] == 1 )
{
$Photo = totranslit( $_REQUEST['Photo'] );
if( $member_id['photos'] && $Photo )
{
$Photos = explode( ",", $member_id['photos'] );
foreach( $Photos as $i => $Name )
{
if( totranslit( $Name ) == $Photo )
{
@unlink( ROOT_DIR."/uploads/userphotos/{$Name}" );
@unlink( ROOT_DIR."/uploads/userphotos/thumbs/{$Name}" );
unset( $Photos[ $i ] );
}
}
$Photos = implode( ",", $Photos );
$db->query( "UPDATE ".USERPREFIX."_users SET `photos`='{$Photos}' WHERE `user_id`='{$UserID}'" );
die();
}
die( "Ошибка удаления файла!" );
}
//-------------------------------------------------====
// Вывод результата
//-------------------------------------------------====
die();
}
//-------------------------------------------------====
//
// Вывод фотографий в профиле
//
//-------------------------------------------------====
//-------------------------------------------------====
// Прямой доступ к файлу запрещён
//-------------------------------------------------====
if( !defined( "DATALIFEENGINE" ) ) die( "Прямой доступ к файлу!" );
//-------------------------------------------------====
// Функция, вытягивающая данные о просматриваемом пользователе
//-------------------------------------------------====
function PhotosGlobalUser(){
global $row;
return $row;
}
$row = PhotosGlobalUser();
$AllowEdit = false;
if( ( $row['user_id'] == $member_id['user_id'] || $member_id['user_group'] == 1 ) && $is_logged ) $AllowEdit = true;
function PhotosLoadJs( $CountPhotos = 0 ){
global $row, $config;
if( $config['version_id'] == "9.0" ) $Js = <<<HTML
<script language="javascript" type="text/javascript">
function ShowLoading(){
var Ajax = new dle_ajax;
Ajax.onShow( "" );
}
function HideLoading(){
var Ajax = new dle_ajax;
Ajax.onHide( "" );
}
</script>
HTML;
return <<<HTML
{$Js}
<script type="text/javascript" src="{THEME}/userphotos/ajaxupload.3.5.js"></script>
<script language="javascript" type="text/javascript">
var CountPhotos = {$CountPhotos};
function UploadPhotos(){
$(function(){
var btnUpload = $( "#UploadPhotos" );
var status = $( "#StatusUploadPhotos" );
new AjaxUpload( btnUpload, {
action: "/engine/modules/userphotos.php",
name: "Filedata",
data: {
ajax : 1,
upload : 1,
skin : dle_skin,
user_id: $row[user_id],
},
onsubmit: function( file, ext ){
if( !( ext && /^(jpg|png|jpeg|gif|swf)$/.test( ext ) ) )
{
status.html( "<span style=\"color: #F00; font-weight: bold;\">Только JPG, PNG, GIF или SWF!</span>" );
return false;
}
status.html( "Загрузка, пожалуйста подождите..." );
},
onComplete: function( file, response ){
status.html( "" );
if( CountPhotos == 0 ) $( "#UserImages" ).html( "" );
$( "#UserImages" ).html( document.getElementById( "UserImages" ).innerHTML + response );
CountPhotos++;
}
});
});
}
function DelUserPhoto( Photo ){
var Quest = confirm( "Вы уверены, что хотите удалить данную фотографию?" );
if( Quest )
{
ShowLoading( "" );
$.ajax({
url: "/engine/modules/userphotos.php",
data: "Photo=" + Photo + "&user_id={$row[user_id]}&del=1&ajax=1",
success: function( data ){
HideLoading( "" );
if( data )
{
alert( data );
}
else
{
var DelElement = document.getElementById( Photo );
DelElement.parentNode.removeChild( DelElement );
CountPhotos--;
if( CountPhotos <= 0 )
{
$( "#UserImages" ).html( "У пользователя нет загруженных фотографий" );
}
}
},
dataType: "html",
type: "POST"
});
}
}
UploadPhotos();
</script>
HTML;
}
//-------------------------------------------------====
// Генерация списка фотографий
//-------------------------------------------------====
$Photos = $row['photos'];
if( $Photos )
{
$PhotosList = "";
$Photos = explode( ",", $Photos );
$CountPhotos = count( $Photos );
foreach( $Photos as $Photo )
{
$tpl->Load_Template( "userphotos/userinfo.photo.list.tpl" );
$tpl->copy_template = "<div id=\"{$Photo}\">".$tpl->copy_template."</div>";
$tpl->set( "{photo}", "<a href=\"/uploads/userphotos/{$Photo}\" target=\"_blank\" onclick=\"return hs.expand(this)\"><img src=\"/uploads/userphotos/thumbs/{$Photo}\" alt=\"\" /></a>" );
$tpl->set( "{photo:thumb}", "/uploads/userphotos/thumbs/{$Photo}" );
$tpl->set( "{photo:url}", "/uploads/userphotos/{$Photo}" );
$tpl->set( "{photo:name}", $Photo );
if( $AllowEdit === true )
{
$tpl->set( "[del]", "<a href=\"javascript:void(0);\" onclick=\"DelUserPhoto( '{$Photo}' ); return false;\">" );
$tpl->set( "[/del]", "</a>" );
$tpl->set( "[download]", "<a href=\"/engine/dw.php?filename={$Photo}\">" );
$tpl->set( "[/download]", "</a>" );
}
else
{
$tpl->set_block( "'\\[del\\](.*?)\\[/del\\]'si", "" );
}
$tpl->compile( "PhotosList" );
$tpl->clear();
}
}
else
{
$CountPhotos = 0;
$tpl->result['PhotosList'] = "У пользователя нет загруженных фотографий";
}
//-------------------------------------------------====
// Генерация основного тела и подготовка вывода
//-------------------------------------------------====
$tpl->Load_Template( "userphotos/userinfo.photo.tpl" );
$tpl->set( "{photos}", "<div id=\"UserImages\" name=\"hs.expand\">{$tpl->result['PhotosList']}</div>" );
if( $AllowEdit === true )
{
$tpl->set( "[upload]", "" );
$tpl->set( "[/upload]", "</a>" );
$tpl->copy_template = PhotosLoadJs( $CountPhotos ).$tpl->copy_template;
}
else
{
$tpl->set_block( "'\\[upload\\](.*?)\\[/upload\\]'si", ""