Пользователи задолбали вопросом "Где можно вставить аватарку?". Зайти в Редактирование и проскроллировать страницу вниз для многих сложно.
Решил вынести редактирование аватарки в отдельную вкладку профиля и назвать "Личное фото".
Нашел хороший рабочий код, т.к. сам друпал не программирую. Все работает замечательно под Друпал 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;
}
}
?>
Комментарии
Странно, неужели никому не нужно такое. Насколько неудобно в друпале реализовано редактирование профайла для пользователей.
Мне удобно.Чего чего а насчет неудобства аватарок я претензий от юзеров не слышал.
И я наоборот не добавляю вкладку, а вывожу все параметры профиля на одну страницу.
У меня, чуток другая ситуация. Установлен Imagepicker и соответственно в профиле присутствует таб "Изображения", в котором пользователи могут посмотреть свои галереи и иллюстрации. Ясное дело пользователи пихают свою аватарку именно туда. Причем замена названия таба на "Изображения (не аватарка)" никого не смущает и они продолжают сунуть туда аватарки.
Поэтому нужен отдельный таб с аватаркой. Работа платная http://www.drupal.ru/node/77353. Кто возьмется?
назови не "личное фото" а "аватарка" проблем меньше будет ))
Ты не понял.
Пользователь заходит в свой профайл с целью разместить аватарку и видит три вкладки
"Просмотр" "Редактирование" "Изображения (не аватарка)"
Смело жмет на "Изображения (не аватарка)" и аплоадит туда свою фотку. Она попадает в его галерею imagepicker, но это не аватарка!
Чтобы разместить аватарку, ему надо ткнуть "Редактирование" и потом "Аватарка". Тест на IQ проходят примерно 5%.
Я хочу, чтобы вкладки были:
"Просмотр" "Редактирование" "Аватарка" "Изображения".
хм.. с табами ещё не разбирался, сорь =(, может кто поможет ...