Ночь неистового траха с 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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();

Заранее премного благодарен!

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано penexe в пн, 22/03/2010 - 05:25.

феерическое говно, срочно читать FAPI


Опубликовано Shift-Web в пн, 22/03/2010 - 05:31.

Какое-бы ни было - оно почти работает и вполне устраивает, пока.


Опубликовано Shift-Web в пн, 22/03/2010 - 05:41.

form_type_checkbox_value - как применить?

drupal_redirect_form - с этим разберусь


Опубликовано Shift-Web в пн, 22/03/2010 - 05:53.

пошёл на работу ... наверное буду пробовать выпотрошить готовый модуль и переклеить к себе


Опубликовано glu2006 в пн, 22/03/2010 - 06:10.

1. Ничем не надо фиксить, просто подключайте заводской Jquery только там где он нужен, для этого есть соотв функция.
2. Модуль для этого есть.
3. Вам надо навесить на кнопку "войти" дополнительный свой коллбек который будет редиректить хоть к черту на кулички.


Опубликовано Ламер в пн, 22/03/2010 - 06:46.

Комрад сочувствую! Я тож также мучался с друпалом, тока бил клавы и крушкаами швырялся. и бухал ежедневно почти. а щас только по расписанию внутреннему! Держись!


Опубликовано Shift-Web в пн, 22/03/2010 - 14:19.

Т.е. допилить один скрипт на всё не выйдет? Жаль ...

Я тут подумал: а что если его через echo разфускать(ну вы поняли, имеется ввиду сдёрнуть пакер), аналогично сделать со вторым. Проанализировать код и посмотреть где несостыковки. Сегодня попробую - о результатах отпишу.

Просто не вижу смысла таскать тонны разных скриптов для каждой страницы своих. Про модули типа инъектора и условных подключений в курсе. Но этот вариант не кошерен.

Спасибо!


Опубликовано Shift-Web в пн, 22/03/2010 - 16:39.

Вопрос с jquery решен. Оказалось, что друпаловский jquery сильно кастрирован. Зря это они так конечно ...


Новое на сайте

Ссылки партнёров