• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Редактирование аватара

Статус
В этой теме нельзя размещать новые ответы.

Алсушка

Создатель
Регистрация
26 Апр 2009
Сообщения
29
Реакции
1
1) Dle 8.0
2) Нулл от масимы, так и лицензия
3) Сидела я и с огарчением смотрела на профиль пользователя. Уж больно редактирование профиля тугое какое то. Вот и решила с вашей помощью :-]:ah: сделать несколько модификаций. Т.к. я ток учу php.
Ну первое что надо это редактирование аватара на отдельной странице. Впринципе как вконтакте. Ещё бы хотелось чтоб в профиле под аватаром, была кнопка удалить фото. Вот такие вот дела, кто что скажет по этому поводу? можно кусок кода выдрать из profile.php :confused: В общем жду ваших решений и предложений))))) :bc:
Флудерастов прошу топик не трогать)
4) Скрины:
 
в общем это не сложно, мин 10 работы, перенести манипуляцию работы с аватаром с modules/profile.php, вписать доп. шаблон.
но нюанс всё же есть.
делать это на странице типо: Для просмотра ссылки Войди или Зарегистрируйся либо Для просмотра ссылки Войди или Зарегистрируйся


added: приду с работы, постараюсь выложить к ночи.
 
в общем это не сложно, мин 10 работы, перенести манипуляцию работы с аватаром с modules/profile.php, вписать доп. шаблон.
но нюанс всё же есть.
делать это на странице типо: Для просмотра ссылки Войди или Зарегистрируйся либо Для просмотра ссылки Войди или Зарегистрируйся
у меня вместо имени идёт идентификатор, т.е. Для просмотра ссылки Войди или Зарегистрируйся где id - id пользователя в базе данных, и авторизация по мылу.
В общем Для просмотра ссылки Войди или Зарегистрируйся будет супер, как такое реализовать? :(:bc::thenks::)
Помогите тогда поправить код и сделать html форму для него.
PHP:
<?php
/*
=====================================================
 Файл: edit_foto.php
-----------------------------------------------------
 Назначение: Загрузка и редактирование основного фото (аватара)
=====================================================
*/
if( ! defined( 'DATALIFEENGINE' ) ) {
	die( "Hacking attempt!" );
}
include_once ENGINE_DIR . '/classes/parse.class.php';
//    Обновление информации о пользователе
if( $allow_userinfo and $doaction == "adduserinfo" ) {
	if( $_POST['dle_allow_hash'] == "" or $_POST['dle_allow_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User ID not valid" );
	}
	$row = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '$user'" );
	$image = $_FILES['image']['tmp_name'];
	$image_name = $_FILES['image']['name'];
	$image_size = $_FILES['image']['size'];
	$img_name_arr = explode( ".", $image_name );
	$type = end( $img_name_arr );
	if( $image_name != "" ) $image_name = totranslit( stripslashes( $img_name_arr[0] ) ) . "." . totranslit( $type );
// Загрузка файла
	if( is_uploaded_file( $image ) and ! $stop ) {
		if( intval( $user_group[$member_id['user_group']]['max_foto'] ) > 0 ) {
			if( $image_size < 100000 ) {
				$allowed_extensions = array ("jpg", "png", "jpe", "jpeg", "gif" );
				if( (in_array( $type, $allowed_extensions ) or in_array( strtolower( $type ), $allowed_extensions )) and $image_name ) {
					include_once ENGINE_DIR . '/classes/thumb.class.php';
					$res = @move_uploaded_file( $image, ROOT_DIR . "/uploads/fotos/" . $row['user_id'] . "." . $type );
					if( $res ) {
						@chmod( ROOT_DIR . "/uploads/fotos/" . $row['user_id'] . "." . $type, 0666 );
						$thumb = new thumbnail( ROOT_DIR . "/uploads/fotos/" . $row['user_id'] . "." . $type );
						if( $thumb->size_auto( $user_group[$member_id['user_group']]['max_foto'] ) ) {
							$thumb->jpeg_quality( $config['jpeg_quality'] );
							$thumb->save( ROOT_DIR . "/uploads/fotos/foto_" . $row['user_id'] . "." . $type );
						} else {
							@rename( ROOT_DIR . "/uploads/fotos/" . $row['user_id'] . "." . $type, ROOT_DIR . "/uploads/fotos/foto_" . $row['user_id'] . "." . $type );
						}
						@chmod( ROOT_DIR . "/uploads/fotos/foto_" . $row['user_id'] . "." . $type, 0666 );
						$foto_name = "foto_" . $row['user_id'] . "." . $type;
						$db->query( "UPDATE " . USERPREFIX . "_users set foto='$foto_name' where name='$user'" );
					} else
						$stop .= $lang['news_err_14'];
				} else
					$stop .= $lang['news_err_15'];
			} else
				$stop .= $lang['news_err_16'];
		} else
			$stop .= $lang['news_err_32'];
		@unlink( ROOT_DIR . "/uploads/fotos/" . $row['user_id'] . "." . $type );
	}
// Удаление фото
	if( $_POST['del_foto'] == "yes" ) {
		@unlink( ROOT_DIR . "/uploads/fotos/" . $row['foto'] );
		$db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE name='$user'" );
	}
	$db->free();
}
//         Просмотр профиля пользователя
$parse = new ParseFilter( );
$user_found = FALSE;
if (is_numeric($user)) 
$sql_result = $db->query("SELECT * FROM " . USERPREFIX . "_users where user_id = '$user'");
else $sql_result = $db->query("SELECT * FROM " . USERPREFIX . "_users where name = '$user'");
// подгружаем шаблон
$tpl->load_template( 'user_edit_foto.tpl' ); 
while ( $row = $db->get_row( $sql_result ) ) {
	$user_found = TRUE;
	if( $row['banned'] == 'yes' ) $user_group[$row['user_group']]['group_name'] = $lang['user_ban'];
		// вывод текущего фото
	if( $row['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $row['foto'] )) ) $tpl->set( '{foto}', $config['http_home_url'] . "uploads/fotos/" . $row['foto'] );
	else $tpl->set( '{foto}', "{THEME}/images/noavatar.png" );
	// показываем только зареганным пользователям
	if( $is_logged and ($member_id['user_id'] == $row['user_id'] or $member_id['user_group'] == 1) ) {
		$tpl->set( '[not-logged]', "" );
		$tpl->set( '[/not-logged]', "" );
	} else
		$tpl->set_block( "'\\[not-logged\\](.*?)\\[/not-logged\\]'si", "<!-- profile -->" );
	if( $config['allow_alt_url'] == "yes" ) $link_profile = $config['http_home_url'] . "user_edit_foto/" . urlencode( $row['user_id'] ) . "/";
	else $link_profile = $PHP_SELF . "?do=user_edit_foto&user=" . urlencode( $row['user_id'] );
	if( $is_logged and ($member_id['user_id'] == $row['user_id'] or $member_id['user_group'] == 1) ) {
		$tpl->copy_template = "<form  method=\"post\" name=\"userinfo\" id=\"userinfo\" enctype=\"multipart/form-data\" action=\"{$link_profile}\">" . $tpl->copy_template . "
		<input type=\"hidden\" name=\"doaction\" value=\"adduserinfo\" />
		<input type=\"hidden\" name=\"dle_allow_hash\" value=\"{$dle_login_hash}\" />
		</form>";
	}
	$tpl->compile( 'content' ); // компилим шаблон
}
$tpl->clear(); // очищаем 
$db->free( $sql_result );
if( $user_found == FALSE ) {
	$allow_active_news = false;
	msgbox( $lang['all_err_1'], $lang['news_err_26'] );
}
?>

Ну что никто не может помочь?
 
Еще немного от себя добавлю, было бы здорово если бы пользователь мог ресайзить и обрезать фотки.

Тоесть загрузил фотку где он с друзьями вырезал только себя и сохранил аватар.
 
Еще немного от себя добавлю, было бы здорово если бы пользователь мог ресайзить и обрезать фотки.
Тоесть загрузил фотку где он с друзьями вырезал только себя и сохранил аватар.

интересная задумка)))

в SE реализовано это было)))

господа кодеры, по активнее пжлта )))))))
 
шаблон скин/userfoto.tpl
HTML:
{description}<br />
<br />
<img src="{foto}" /><br />
{delfoto}
<br /><br />
<form method="post" action="index.php?do=upfoto&doact=save">
Аватар: <input type="file" name="image" style="width:304px; height:18px" class="f_input" /><br />

<input type="image" style="width:80px; height:20px" src="{THEME}/images/dlet_bttn_submit.gif" name="submit" alt="Отправить" /><br />
<input name="submit" type="hidden" id="submit" value="submit" />
</form>

пхп сайл module/uploadfoto.php
PHP:
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {	die( "Hacking attempt!" ); }

if( ! $is_logged or ! ($member_id['user_id'] == $row['user_id'] or $member_id['user_group'] == 1) ){
	msgbox( $lang['all_err_1'], "<b>{$user_group[$member_id['user_group']]['group_name']}</b> " . $lang['news_err_28'] );
} else {

include_once ENGINE_DIR . '/classes/parse.class.php';
$row = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE name = '$user'" );

if ($user==$id AND ($member_id['user_id'] == $row['user_id'] or $member_id['user_group'] == 1) ){

$tpl->load_template( 'userfoto.tpl' );

	if( $row['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $row['foto'] )) ) 
	$tpl->set( '{foto}', $config['http_home_url'] . "uploads/fotos/" . $row['foto'] );
	else $tpl->set( '{foto}', "{THEME}/images/noavatar.png" );
	if ( $doact =='delfoto' ){
	$tpl->clear();
	$row = $db->super_query( "SELECT foto FROM " . USERPREFIX . "_users WHERE name='$user'" );
	
	@unlink( ROOT_DIR . "/uploads/fotos/" . $row['foto'] );
	$db->query( "UPDATE " . USERPREFIX . "_users set foto='' WHERE name='$user'" );
	msgbox("Информация", "Фото было успешно Удалено...<br /><a href=\"javascript:history.go(-1)\">Вернутся Назад</a>");
	}
}


	$tpl->set( '{delfoto}', "<a href=\"$PHP_SELF?do=upfoto&amp;user=$id&amp;doact=delfoto\">Удалить Фото</a>" );
	$tpl->set( '{description}', "Редакторивание Фотографий" );
	$tpl->compile( 'content' );
	$tpl->clear();
}
?>

Вот немножко не пашет он, вот в начале работала но потом почему то перестала удалять фотки! Потом не знаю как сделать так что бы фотки закачивались! Знаю код не чисто написано, но всёже начало есть! Если кто знает допишите!
 
Сделал такую фишку ,правда есть 1 косяк (ну не шарю я так в дле)
Форма выводиться по адресу http://site.site/user/avatar/$nick
Шаблон который отвечает за ету страничку avatar.tpl
 

Вложения

  • avatar.rar
    267,3 KB · Просмотры: 9
Вот вывод редактирование аватара на отдельную страницу, ждал долго пока смог его выложить на сайт))
Писал на дле 7.5, в 8 не пашет но работаю над ней, в остальных версиях пока не смотрел!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху