Ночь неистового траха с jquery дроп-слайдером и переопредление формы авторизации
Прислано: Shift-Web
пн, 22/03/2010 - 05:11
В общем бодяга такая... Правый глаз уже ритмично подергивается в такт левому яичку, формочка сворачивается\разворачивается, почти доволен, но заметил вот такую хрень:
С родным друпаловским 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();
Заранее премного благодарен!
- Shift-Web's blog
- Для комментирования войдите или зарегистрируйтесь
феерическое говно, срочно читать FAPI
- Для комментирования войдите или зарегистрируйтесь
Какое-бы ни было - оно почти работает и вполне устраивает, пока.
- Для комментирования войдите или зарегистрируйтесь
form_type_checkbox_value - как применить?
drupal_redirect_form - с этим разберусь
- Для комментирования войдите или зарегистрируйтесь
пошёл на работу ... наверное буду пробовать выпотрошить готовый модуль и переклеить к себе
- Для комментирования войдите или зарегистрируйтесь
1. Ничем не надо фиксить, просто подключайте заводской Jquery только там где он нужен, для этого есть соотв функция.
2. Модуль для этого есть.
3. Вам надо навесить на кнопку "войти" дополнительный свой коллбек который будет редиректить хоть к черту на кулички.
- Для комментирования войдите или зарегистрируйтесь
Комрад сочувствую! Я тож также мучался с друпалом, тока бил клавы и крушкаами швырялся. и бухал ежедневно почти. а щас только по расписанию внутреннему! Держись!
- Для комментирования войдите или зарегистрируйтесь
Т.е. допилить один скрипт на всё не выйдет? Жаль ...
Я тут подумал: а что если его через echo разфускать(ну вы поняли, имеется ввиду сдёрнуть пакер), аналогично сделать со вторым. Проанализировать код и посмотреть где несостыковки. Сегодня попробую - о результатах отпишу.
Просто не вижу смысла таскать тонны разных скриптов для каждой страницы своих. Про модули типа инъектора и условных подключений в курсе. Но этот вариант не кошерен.
Спасибо!
- Для комментирования войдите или зарегистрируйтесь
Вопрос с jquery решен. Оказалось, что друпаловский jquery сильно кастрирован. Зря это они так конечно ...
- Для комментирования войдите или зарегистрируйтесь



Комментарии