Редактирование аватарки в отдельной вкладке профиля. Есть код.

Главные вкладки

Аватар пользователя Crazyfisherman Crazyfisherman 27 февраля 2012 в 20:16

Пользователи задолбали вопросом "Где можно вставить аватарку?". Зайти в Редактирование и проскроллировать страницу вниз для многих сложно.
Решил вынести редактирование аватарки в отдельную вкладку профиля и назвать "Личное фото".
Нашел хороший рабочий код, т.к. сам друпал не программирую. Все работает замечательно под Друпал 6, но вкладка появилась внутри вкладки "Редактировать". А хотелось бы на одном уровне с "Редактировать". Т.е. "Просмотр", "Редактировать", "Личное фото".
Гуру, помогите, плиз модифицировать модуль и будет хороший модуль всем нам.

<?php
// $Id$

// hook_user

function avatar_tab_user($op, &$edit, &$account$category NULL) {

    switch(

$op){
           
            case 
'categories':
                if (
variable_get('user_pictures'0)) {
                
$output[] = array('name' => 'picture',
                                    
'title' => t('Your Picture'),
                                    
'weight' => 2,
                                    );
                 return 
$output;
                }
                break;
           
            case 
'form':
                if (
$category == 'picture') {   
                    
$form['_category'] = array('#type' => 'value''#value' => $category);
                    
$form['_account'] = array('#type' => 'value''#value' => $account);
                   
                    if (
variable_get('user_pictures'0)) {
                        
$form['picture'] = array('#type' => 'fieldset''#title' => t('Picture'), '#weight' => 1);
                        
$picture theme('user_picture', (object)$edit);
                        if (
$edit['picture']) {
                            
$form['picture']['current_picture'] = array('#value' => $picture);
                            
$form['picture']['picture_delete'] = array('#type' => 'checkbox''#title' => t('Delete picture'), '#description' => t('Check this box to delete your current picture.'));
                        }
                        else {
                            
$form['picture']['picture_delete'] = array('#type' => 'hidden');
                        }
                        
$form['picture']['picture_upload'] = array('#type' => 'file''#title' => t('Upload picture'), '#size' => 48'#description' => t('Your virtual face or picture. Maximum dimensions are %dimensions and the maximum size is %size kB.', array('%dimensions' => variable_get('user_picture_dimensions''85x85'), '%size' => variable_get('user_picture_file_size''30'))) .' 'variable_get('user_picture_guidelines'''));
                        
$form['#validate'][] = 'user_profile_form_validate';
                        
$form['#validate'][] = 'user_validate_picture';
                        
$form['#uid'] = $account->uid;
                    }
                    return 
$form;
                }
          break;

            case 

'submit':
                if(
$category == 'picture') {
                return 
_user_edit_submit((isset($account->uid) ? $account->uid FALSE), $edit);
                 }
                break;
                   
    }
}

// hook_form_alter
function avatar_tab_alter(&$form$form_state$form_id) {
    switch (
$form_id){
        case 
'user_profile_form':
            if(
arg(3) == NULL) {
          unset(
$form['picture']);
            }
            break;
    }
}
?>

Комментарии

Аватар пользователя Crazyfisherman Crazyfisherman 28 февраля 2012 в 11:54

Странно, неужели никому не нужно такое. Насколько неудобно в друпале реализовано редактирование профайла для пользователей.

Аватар пользователя VasyOK VasyOK 28 февраля 2012 в 15:59

Мне удобно.Чего чего а насчет неудобства аватарок я претензий от юзеров не слышал.

И я наоборот не добавляю вкладку, а вывожу все параметры профиля на одну страницу.

Аватар пользователя Crazyfisherman Crazyfisherman 29 февраля 2012 в 17:11

У меня, чуток другая ситуация. Установлен Imagepicker и соответственно в профиле присутствует таб "Изображения", в котором пользователи могут посмотреть свои галереи и иллюстрации. Ясное дело пользователи пихают свою аватарку именно туда. Причем замена названия таба на "Изображения (не аватарка)" никого не смущает и они продолжают сунуть туда аватарки.

Поэтому нужен отдельный таб с аватаркой. Работа платная http://www.drupal.ru/node/77353. Кто возьмется?

Аватар пользователя Crazyfisherman Crazyfisherman 29 февраля 2012 в 17:49

Ты не понял.
Пользователь заходит в свой профайл с целью разместить аватарку и видит три вкладки
"Просмотр" "Редактирование" "Изображения (не аватарка)"
Смело жмет на "Изображения (не аватарка)" и аплоадит туда свою фотку. Она попадает в его галерею imagepicker, но это не аватарка!
Чтобы разместить аватарку, ему надо ткнуть "Редактирование" и потом "Аватарка". Тест на IQ проходят примерно 5%.
Я хочу, чтобы вкладки были:
"Просмотр" "Редактирование" "Аватарка" "Изображения".