Темизация страницы регистрация, входа и воостановления пароля

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

Аватар пользователя Paldru Paldru 7 июля 2009 в 22:43

Собственно сабж. Хочу на страницах регистрации, входа и воостановления пароля сделать покрасивее формы, расположить по своему элементы. Версия Друпала 6. Как это можно сделать?

Комментарии

Аватар пользователя Paldru Paldru 7 июля 2009 в 22:48

Еще вопрос, сделал темизацию блока для входа на сайт через добавление своего дизайна в block-user-0.tpl.php. Но стал появдяться значок крокозябры (квадратик), который портит мне дизайн, избавиться никак не могу. В page.tpl.php и block-user-0.tpl.php этого нет, непойму откуда он береться. Что делать?

Аватар пользователя Paldru Paldru 7 июля 2009 в 23:26

Насчет буквы я понял, НО в шаблонах ее нет. Вот кусочек page.tpl

<?php if ($right) { ?><div id="rightbar">
<div class="ind">
<?php print $right ?>
</div>
</div><?php ?>

А вставляется она перед началом вывода блока <?php print $right ?>. В файле блока такого тоже нет.

Аватар пользователя Лампочка Лампочка 7 июля 2009 в 23:42

Если все элементы остаются и меняется только их внешний вид, то ЦЦС все решает. Если вы хотите что-то добавить от себя, поищите на орге "темизация формы авторизации" Там что-то очень замороченное Smile

Аватар пользователя Paldru Paldru 11 августа 2009 в 1:06

Опять вернулся к темизации страницы регистрации и входа, проблема так и не решена.
Помогите плиз с рабочим примером

Аватар пользователя Paldru Paldru 11 августа 2009 в 16:43

«посмотри как здесь сделано. Если это то, что тебе нужно, то пиши - подскажу...»
Это как раз то что мне нужно, только у меня еще пара дополнительных полей (имя, каптча, дата рождения).

Аватар пользователя WiseMan WiseMan 11 августа 2009 в 16:55

"stenli21" wrote:
посмотри как здесь сделано. Если это то, что тебе нужно, то пиши - подскажу.

мне тоже интересно

Аватар пользователя stenli21 stenli21 11 августа 2009 в 19:40

Собственно сложного ничего нет. Рассказываю по пунктам:

1. заменяем форму входа на сайт:
1.1 В template.php темы добавляем функцию:

<?php
function phptemplate_flat_login() {
    global 
$user;
    if (!
$user->uid) {
        
$messages'<ul>
            <li class = "login">'
.l('Вход','user/login', array('attributes' => array('rel'=>'nofollow')) ).'</li>
            <li>'
.l('Регистрация''user/register', array('attributes' => array('rel'=>'nofollow')) ).'</li>
            <li>'
.l('Забыли пароль?''user/password', array('attributes' => array('rel'=>'nofollow'))).'</li>
            </ul>'
;
        
    } 
    else 
    {
      
$messages'<ul>
                  <li class = "login">'
.l('Моя анкета''user/'.$user->uid).'</li>
                  <li>'
.l('Изменить''user/' $user->uid '/profile/profile').'</li>
                  <li>'
.l('Выход''logout').'</li>
                </ul>'
;
    }
    return 
$messages;
}
?>

Этот прием уже описывался на этом сайте...
1.2 В файл page.tpl.php в нужном Вам месте вставляем соответствующий вызов функции:

<?php
<div id="login"><?php echo phptemplate_flat_login();?></div>
?>

Далее темизацию меню входа делаем уже с помощью CSS.

2. Делаем формы входа/регистрации/восст. пароля на отдельных страницах:
2.1 В template.php добавляем функцию:

<?php
function phptemplate_preprocess_page(&$vars) {
global 
$user;

    if(

arg(0) == 'user' && (arg(1) == 'login' || arg(1) == 'register' || arg(1) == 'password')){//если вызывается страница входа/регистрации/восст. пароля 
        
if ($user->uid == 0) {                                                                      // и пользователь аноним
          
$vars['template_files']['0'] = 'page_user_login';                                         // в качестве файла шаблона используем page_user_login.tpl.php
          
        
}
        switch (
arg(1)) {
            case 
'login':
                
$vars['title'] = 'Вход';                                            //если страница входа, определяем заголовок и название страницы
                
$vars['head_title'] = 'Вход';
                break;
            case 
'password':
                
$vars['title'] = 'Забыли пароль?';                                  // аналогично для страницы восст. пароля
                
$vars['head_title'] = 'Забыли пароль?';
                break;
            case 
'register':
                
$vars['title'] = 'Регистрация';                                     // аналогично для страницы регистрации
                
$vars['head_title'] = 'Регистрация';
                break;
        }    
    }
    return 
$vars;
  }
?>

2.2 копируем файл page.tpl.php и переименовываем его в page_user_login.tpl.php

2.3 в новом файле отключаем вывод tabs (удаляем строку, отвечающую за вывод. примерно она выглядит так <?php if ($tabs != ""): ?><?php print $tabs ?><?php endif; ?>). ну и если необходимо. дополнительно в этом же файле добавляем свои классы для заголовка страниц. У меня это выглядит так ( привожу участок кода, отвечающий за вывод основного материала страницы):

<?php
<div id="content">
            <?
php print $header?>                                                                        //выводим header
            <?php if (arg(1) == 'register') {?><h1 class="title users reg"><?php print $title ?></h1><?php ?> // для страницы регистрации в title добавляем класс reg
            <?php if (arg(1) == 'login') {?><h1 class="title users login"><?php print $title ?></h1><?php ?>// для страницы входа в title добавляем класс login
            <?php if (arg(1) == 'password') {?><h1 class="title users pass"><?php print $title ?></h1><?php ?>// для страницы восст.пароля в title добавляем класс pass                
            <?php if ($help != ""): ?>//если есть help
            <p id="help"><?php print $help ?></p>//выводим help
            <?php endif; ?>
            <?php if ($messages != ""): ?>//если есть message
            <div id="message"><?php print $messages ?></div>//выводим message
            <?php endif; ?>
            <div id = "user">
            <div class = "topleft"><div class = "topright"></div></div>//вспомогательные DIVы
            <?php print($content?>// выводим контент
            <div class = "bottomleft"><div class = "bottomright"></div></div>//вспомогательные DIVы
            </div>
        </div>
?>

вот собственно и все...
Не забываем чистить кэш после обновлений.

Аватар пользователя Paldru Paldru 11 августа 2009 в 21:26

Спасибо, все работатет. А как теперь можно темизировать непосредственно сами формы регистрации и входа, расположить их в нужном порядке?

Аватар пользователя Paldru Paldru 11 августа 2009 в 21:31

Ага, я так понял нужно прописать свой нужный хтмл и пхп код между(например если это страница регистрации)
<?php if (arg(1) == 'register') {?>
Сюда переменные и формы для страницы регистрации
<?php } ?>
Тогда возникает еще вопрос, как узнать названия переменных форм, как вывести капчу и т.д

Аватар пользователя Paldru Paldru 24 августа 2009 в 22:50

"stenli21" wrote:
Собственно сложного ничего нет. Рассказываю по пунктам:

Все отлично работает, но нужно к странице регистрации прикрутить капчу или защиту какую нить иначе заспамят. Как вы кстати на сайте решаете эту проблему?

Аватар пользователя Paldru Paldru 25 августа 2009 в 14:11

"stenli21" wrote:
Поставьте модуль captcha.
Я пользуюсь Captcha + hidden_captcha

Этот модуль установлен. Но при темизации регистрации по вашему способу я незнаю как вывести каптчу в шаблоне.

Аватар пользователя iNFerNo iNFerNo 23 июня 2011 в 10:32

вру. все три.

а как убрать над формами

ссылки

Вход
Регистрация
Забыли пароль?

---

а Забыли пароль?

оставить на странице авторизации???

Аватар пользователя iNFerNo iNFerNo 23 июня 2011 в 12:21

"iNFerNo" wrote:
а как убрать над формами

ссылки

Вход
Регистрация
Забыли пароль?

убрал функцию function phptemplate_flat_login() из пейдж-юзер

---

theme_menu_local_tasks(&$variables) это к востановлению пароля?