В общем бодяга такая... Правый глаз уже ритмично подергивается в такт левому яичку, формочка сворачивается\разворачивается, почти доволен, но заметил вот такую хрень:
С родным друпаловским jquery работать анимация свертывания и развертывания отказывается начисто
С подключенным заводским 1.3.2\1.3.2.min\1.4 alfa она работает, но при этом возникают странные эффекты на внутренних страницах.
Например у меня поле body анонса при создании страницы, которого не должно быть видно, появлялось над рабочей textarea. Причем она неактивкая - с ней вообще ничего сделать нельзя, даже правая кнопка мыши - ноль эмоций. При клике на отделение анонса она красиво анимируется и стает адекватно функционирующей. При этом работоспособность моей панели пропадает ):
Появились другие неприятные глюки.
Два вопроса:
1. Чем пофиксить друпаловский jquery так, чтобы он нормально функционировал и для друпал и для внешних примочек.
2. Как в мою форму авторизации добавить чек "запомнить"?
3. После входа сбрасывает на страницу профиля. Есть ли решение для получения текушего адреса и потом возврата на него сразу после авторизации?
Перерыл много инфы - ответов нет.
Для переопределения дописал пару функций в template.php
<?php
function SW_U_bar() {
global $user; $output = '';
if (!$user->uid) {
$login_form = get_user_login_form();
$swlogin.= $login_form->form_start;
$swlogin.= 'Username:'.$login_form->name.'<br />Password:'.$login_form->pass.'<br />'.$login_form->submit.'<br /><br /><a title="Нет аккаунта?" href="/user/register" rel="nofollow">регистрация</a> <a title="Проёб пасворд?" href="/user/password" rel="nofollow">выслать пароль</a>';
$swlogin.= $login_form->form_end;
print $swlogin; }
else {
$output .= t('<span class="SW-Hook-UI">Привет !user, рады снова Вас видеть!</span><br /><br /><br /><a title="Закрыть сессию и выйти" href="/logout" rel="nofollow">Выход</a>', array('!user' => theme('username', $user)));
}
return $output;
}
function
get_user_login_form() {
$form_id = 'user_login';
$form = array();
$form['name'] = array(
'#type' => 'textfield',
'#maxlength' => USERNAME_MAX_LENGTH,
'#size' => '15',
'#required' => TRUE,
'#attributes' => array('tabindex' => '1'),
);
$form['pass'] = array(
'#type' => 'password',
'#size' => '15',
'#required' => TRUE,
'#attributes' => array('tabindex' => '2'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Вход',
'#weight' => 2,
'#attributes' => array('tabindex' => '3')
);
$form['#validate'] = user_login_default_validators();
$form['#build_id'] = sprintf('form-%s', md5(uniqid(mt_rand(), TRUE)));
$form_state = array();
drupal_prepare_form($form_id, $form, $form_state);
drupal_process_form($form_id, $form, $form_state);
$out = new stdClass;
$out->form_start = sprintf("<span>Добро Пожаловать на Shift-Web!</span><br /><br /><span class='SW-Hook-UL'><form method='post' accept-charset='UTF-8' action='%s'>",url('user/login'));
$out->form_end = "</form></span>";
$out->name = drupal_render($form['name']);
$out->pass = drupal_render($form['pass']);
$out->submit = drupal_render($form['form_id']).drupal_render($form['form_build_id']) . drupal_render($form['submit']);
return $out;
}
?>
В шабе выводятся через print SW_U_bar();
Заранее премного благодарен!
Комментарии
феерическое говно, срочно читать FAPI
Какое-бы ни было - оно почти работает и вполне устраивает, пока.
form_type_checkbox_value - как применить?
drupal_redirect_form - с этим разберусь
пошёл на работу ... наверное буду пробовать выпотрошить готовый модуль и переклеить к себе
1. Ничем не надо фиксить, просто подключайте заводской Jquery только там где он нужен, для этого есть соотв функция.
2. Модуль для этого есть.
3. Вам надо навесить на кнопку "войти" дополнительный свой коллбек который будет редиректить хоть к черту на кулички.
Т.е. допилить один скрипт на всё не выйдет? Жаль ...
Я тут подумал: а что если его через echo разфускать(ну вы поняли, имеется ввиду сдёрнуть пакер), аналогично сделать со вторым. Проанализировать код и посмотреть где несостыковки. Сегодня попробую - о результатах отпишу.
Просто не вижу смысла таскать тонны разных скриптов для каждой страницы своих. Про модули типа инъектора и условных подключений в курсе. Но этот вариант не кошерен.
Спасибо!
Вопрос с jquery решен. Оказалось, что друпаловский jquery сильно кастрирован. Зря это они так конечно ...