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

Тема в разделе "DLE", создана пользователем Алсушка, 5 июн 2009.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Алсушка

    Алсушка Создатель

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

    FlashBlack Постоялец

    Регистр.:
    19 сен 2006
    Сообщения:
    77
    Симпатии:
    45
    в общем это не сложно, мин 10 работы, перенести манипуляцию работы с аватаром с modules/profile.php, вписать доп. шаблон.
    но нюанс всё же есть.
    делать это на странице типо: http://site.com/user/USERNAME/avatar/ либо http://site.com/avatar/USERNAME/


    added: приду с работы, постараюсь выложить к ночи.
     
    Алсушка нравится это.
  3. Алсушка

    Алсушка Создатель

    Регистр.:
    26 апр 2009
    Сообщения:
    29
    Симпатии:
    1
    у меня вместо имени идёт идентификатор, т.е. http://site.com/user/id/avatar/ где id - id пользователя в базе данных, и авторизация по мылу.
    В общем http://site.com/user/id/avatar/ будет супер, как такое реализовать? :(: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 totranslitstripslashes$img_name_arr[0] ) ) . "." totranslit$type );
    // Загрузка файла
        
    if( is_uploaded_file$image ) and ! $stop ) {
            if( 
    intval$user_group[$member_id['user_group']]['max_foto'] ) > ) {
                if( 
    $image_size 100000 ) {
                    
    $allowed_extensions = array ("jpg""png""jpe""jpeg""gif" );
                    if( (
    in_array$type$allowed_extensions ) or in_arraystrtolower$type ), $allowed_extensions )) and $image_name ) {
                        include_once 
    ENGINE_DIR '/classes/thumb.class.php';
                        
    $res = @move_uploaded_file$imageROOT_DIR "/uploads/fotos/" $row['user_id'] . "." $type );
                        if( 
    $res ) {
                            @
    chmodROOT_DIR "/uploads/fotos/" $row['user_id'] . "." $type0666 );
                            
    $thumb = new thumbnailROOT_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->saveROOT_DIR "/uploads/fotos/foto_" $row['user_id'] . "." $type );
                            } else {
                                @
    renameROOT_DIR "/uploads/fotos/" $row['user_id'] . "." $typeROOT_DIR "/uploads/fotos/foto_" $row['user_id'] . "." $type );
                            }
                            @
    chmodROOT_DIR "/uploads/fotos/foto_" $row['user_id'] . "." $type0666 );
                            
    $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'];
            @
    unlinkROOT_DIR "/uploads/fotos/" $row['user_id'] . "." $type );
        }
    // Удаление фото
        
    if( $_POST['del_foto'] == "yes" ) {
            @
    unlinkROOT_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_existsROOT_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'] );
    }
    ?>
    Ну что никто не может помочь?
     
  4. Laif

    Laif Постоялец

    Регистр.:
    8 дек 2007
    Сообщения:
    114
    Симпатии:
    22
    Еще немного от себя добавлю, было бы здорово если бы пользователь мог ресайзить и обрезать фотки.

    Тоесть загрузил фотку где он с друзьями вырезал только себя и сохранил аватар.
     
  5. Алсушка

    Алсушка Создатель

    Регистр.:
    26 апр 2009
    Сообщения:
    29
    Симпатии:
    1
    интересная задумка)))

    в SE реализовано это было))) http://socialengine.su/socialengine/xaks_se/238-ajax-avatar-editor-310.html

    господа кодеры, по активнее пжлта )))))))
     
  6. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    343
    Симпатии:
    135
    шаблон скин/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_existsROOT_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'" );
        
        @
    unlinkROOT_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();
    }
    ?>
    Вот немножко не пашет он, вот в начале работала но потом почему то перестала удалять фотки! Потом не знаю как сделать так что бы фотки закачивались! Знаю код не чисто написано, но всёже начало есть! Если кто знает допишите!
     
  7. g-prime

    g-prime איך בין גאָט

    Регистр.:
    11 авг 2008
    Сообщения:
    779
    Симпатии:
    1.131
    Такое сделано с помощью jQuery и плагина imgAreaSelect
    http://odyniec.net/projects/imgareaselect/
     
    DemanZ и Алсушка нравится это.
  8. EFL

    EFL

    Регистр.:
    31 июл 2008
    Сообщения:
    153
    Симпатии:
    56
    Сделал такую фишку ,правда есть 1 косяк (ну не шарю я так в дле)
    Форма выводиться по адресу http://site.site/user/avatar/$nick
    Шаблон который отвечает за ету страничку avatar.tpl
     

    Вложения:

    • avatar.rar
      Размер файла:
      267,3 КБ
      Просмотров:
      8
    Алсушка нравится это.
  9. antiterror

    antiterror xProgramming

    Регистр.:
    22 авг 2007
    Сообщения:
    343
    Симпатии:
    135
    Вот вывод редактирование аватара на отдельную страницу, ждал долго пока смог его выложить на сайт))
    Писал на дле 7.5, в 8 не пашет но работаю над ней, в остальных версиях пока не смотрел!
    Посмотреть вложение avatar_editor.rar
     
Статус темы:
Закрыта.