Переопределение вывода блока авторизации в Drupal 6
Прислано: deeper4k
чт, 28/08/2008 - 16:37
Переопределяю вывод формы поиска и блока авторизации. Для формы поиска создал файл search-theme-form.tpl.php в который вставил код:
<?php // $Id: search-theme-form.tpl.php,v 1.1.1.1 2008-04-01 08:38:36 dm Exp $ ?> <div id="search"> <input class="search-txt" type="text" value="строка поиска" maxlength="30" name="search_theme_form" id="edit-search-theme-form-1" size="15" value="" title="<?php print t('Enter the terms you wish to search for.'); ?>" class="form-text" /> <input class="search-b" type="submit" name="op" value="" /> <input type="hidden" name="form_token" id="edit-search-theme-form-form-token" value="<?php print drupal_get_token('search_theme_form'); ?>" /> <input type="hidden" name="form_id" id="edit-search-theme-form" value="search_theme_form" /> </div>
В файле page.tpl.php вставил
<?php print $search_box ?>. Всё отлично работает сделал, что хотел. Но вот с переопределением блока входа что-то не выходит. Пробывал создавать файл user_login.tpl.php , user_login-theme-form.tpl.php и вставлять в них код:<?php // $Id: user_login.tpl.php,v 1.1.1.1 2008-04-01 08:38:36 dm Exp $ ?> <div class="form-item"> <label for="edit-name">Username: <span class="form-required" title="This field is required.">*</span></label> <input type="text" maxlength="60" name="name" id="edit-name" size="30" value="" tabindex="1" class="form-text required" /> <div class="description">enter your username</div> </div> <div class="form-item"> <label for="edit-pass">Password: <span class="form-required" title="This field is required.">*</span></label> <input type="password" name="pass" id="edit-pass" size="40" tabindex="2" class="form-text required" /> <div class="description">enter your password</div> </div> <input type="hidden" name="form_id" id="edit-user-login" value="user_login" /> <input type="submit" name="op" id="edit-submit" value="Log in" tabindex="3" class="form-submit" /> <p><a class="textlink" href="?q=user/password">Forgotten your Password?</a></p>
Ничего не выходит, блок каким был таким и остаётся. Должен получиться блок входа похожий на блок входа на этом сайте, т.е. замена кнопки вход на картинку и ещё мелкие изменения.Помогите разобраться, может кто делал нечто подобное. Или киньте ссылку на тему где организован нестандартный блок входа.
- deeper4k's blog
- Для комментирования войдите или зарегистрируйтесь
Делал по другому.
1. Создал пустую статью с заголовком
2. Создал Views для неё в виде блока (Фильтр - Материал: Заголовок (и задал свой заголовок статьи), Тема оформления - Row style output)
Код темы оформления:
<div id="auth">
<div id="auth2">
<?php global $user; ?>
<?php if ($user->uid) : ?>
<table cellpadding="0" cellspacing="0">
<tr>
<td>
Вы зашли под Ником: <?php print l($user->name,'user/'.$user->uid); ?>
</td>
<td>
<div id="anounder">
<a href="/user/">[Настройки профиля]</a>
<?php print l("[Выход]","logout"); ?>
</div>
</td>
</tr>
</table>
<?php else : ?>
<form name="auth" action="/user" method="post" id="user-login">
<table cellpadding="0" cellspacing="0">
<tr>
<td>
<div id="anoder">Авторизация</div>
</td>
<td>
Логин: <input type="text" name="name" class="form-text required" />
</td>
<td class="menuSeparator">
<div id="px"></div>
</td>
<td>
Пароль: <input type="password" name="pass" class="form-text required" />
</td>
<td>
<input type="hidden" name="form_id" id="edit-user-login" value="user_login" />
<input type="image" src="<?php print base_path(). path_to_theme(); ?>/images/auth_enter.jpg" name="op" class="form-submit" width="62" />
</td>
<td class="menuSeparator">
<div id="px"></div>
</td>
<td><div id="anounder"><a href="/user/password">Восстановление пароля</a></div></td>
<td><div id="anounder"><a href="/user/register">Регистрация</a></div></td>
</tr>
</table>
</form>
<?php endif; ?>
</div>
</div>div - для красоты их можешь выкинуть
- Для комментирования войдите или зарегистрируйтесь
Вот что значит бессонница :), оказалось проше некуда. Нужно было создать файл block-user-0.tpl.php в который вставить код:
<div class="form-item"> <label for="edit-name">Username: <span class="form-required" title="This field is required.">*</span></label> <input type="text" maxlength="60" name="name" id="edit-name" size="30" value="" tabindex="1" class="form-text required" /> <div class="description">enter your username</div> </div> <div class="form-item"> <label for="edit-pass">Password: <span class="form-required" title="This field is required.">*</span></label> <input type="password" name="pass" id="edit-pass" size="40" tabindex="2" class="form-text required" /> <div class="description">enter your password</div> </div> <input type="hidden" name="form_id" id="edit-user-login" value="user_login" /> <input type="submit" name="op" id="edit-submit" value="Log in" tabindex="3" class="form-submit" /> <p><a class="textlink" href="?q=user/password">Forgotten your Password?</a></p>
- Для комментирования войдите или зарегистрируйтесь
deeper4k
что значит "Вот что значит бессонница "
- Для комментирования войдите или зарегистрируйтесь
deeper4k
что значит "Вот что значит бессонница "
Это значит, что я не выспался :)
- Для комментирования войдите или зарегистрируйтесь
Нужно было создать файл block-user-0.tpl.php в который вставить код
Спасибо за пост. Очень помогло.
- Для комментирования войдите или зарегистрируйтесь
и от меня спасибо большое тоже
- Для комментирования войдите или зарегистрируйтесь
А как еще вывести форму в определенное место в шаблоне?
что бы не блоком ч определенныю область через алминку
а прямло в шаблоне напистаь функцию и ей передать как параметр ид формы авторизации
раньше так делал
то потерял название функции
- Для комментирования войдите или зарегистрируйтесь
Может пожскажете как сделать тоже самое для Drupal 5.
Надо темезировать форму поиска. Пробовал уже не одним способом указанным, ничего не помогает.
Надо темезировать форму поиска и выводить ее в том месте котором я захочу. Если я вставляю в page.tpl.php <?php print $search_box ?>, то чтобы я не делал эта форма имеет стандартный вид. Помогите пожалуйста!!!
- Для комментирования войдите или зарегистрируйтесь
и от меня большое и с кисточкой.
вот только одна трабла теперь:
после логина пользователя теперь кидает на его профиль. в чём проблема - никак не пойму. но точно что-то изза блока.
пробовал убирать шаблон. при стандартном блоке - всё работает нормально.
кто скажет: в чём может быть проблема?
на всякий пожарный - мой файлик (может, я ошибку просто не вижу?):
<div class="block"> <form name="auth" action="<?php print base_path(); ?>user" method="post" id="user-login"> <table cellpadding="2" cellspacing="0" border="0" width="100%"> <tr> <td class="login-form-label">Логин:</td> <td><input type="text" maxlength="60" name="name" id="edit-name" size="30" value="" tabindex="1" class="login-form-field required" /></td> </tr> <tr> <td class="login-form-label">Пороль:</td> <td><input type="password" name="pass" id="edit-pass" size="40" tabindex="2" class="login-form-field required" /></td> </tr> <tr> <td colspan="2" align="right"> <input type="hidden" name="form_id" id="edit-user-login" value="user_login" /> <input type="submit" name="op" id="edit-submit" value="Войти" tabindex="3" class="form-submit" /> </td> </tr> </table> </form> <div align="center"> <a class="textlink" href="<?php print base_path(); ?>user/register">Регистрация</a> | <a class="textlink" href="<?php print base_path(); ?>user/password">Забыли пароль?</a> </div> </div>
- Для комментирования войдите или зарегистрируйтесь
Я думаю, что ошибка в этой строке:
<input type="hidden" name="form_id" id="edit-user-login" value="user_login" />
Но я не знаю, на что изменить. Короче, проблема та же.
Может кто знает, как после логина переходить автоматически не на свой профиль, а на главную страницу?
- Для комментирования войдите или зарегистрируйтесь
Сделал форму поиска как описано выше. Но она отображается внизу сраницы слева. Как ее поместить в head?
- Для комментирования войдите или зарегистрируйтесь
Рабочая форма для вывода на главной странице.
<div class="clear-block"> <form action="/sdb/?q=user" accept-charset="UTF-8" method="post" id="user-login"> <div><div class="form-item" id="edit-name-wrapper"> <label for="edit-name">Username: <span class="form-required">*</span></label> <input maxlength="60" name="name" id="edit-name" size="20" value="" class="form-text required" type="text"> <div class="description">Enter your username.</div> </div> <div class="form-item" id="edit-pass-wrapper"> <label for="edit-pass">Password: <span class="form-required" title="Обязательное поле">*</span></label> <input name="pass" id="edit-pass" maxlength="128" size="20" class="form-text required" type="password"> <div class="description">Enter the password.</div> </div> <input name="form_build_id" id="form-6bd69f8ab494e1c3573345d53203cbba" value="" type="hidden"> <input name="form_id" id="edit-user-login" value="user_login" type="hidden"> <input name="op" id="edit-submit" value="Log in" class="form-submit" type="submit"> </div></form> </div>
- Для комментирования войдите или зарегистрируйтесь
Сделал форму поиска как описано выше. Но она отображается внизу сраницы слева. Как ее поместить в head?
Тебе нужно, чтобы слева вверху или справа? Вообщем в админке, в блоках есть крестик такой (слева от названия блока). Тянешь за него вверх и выставляешь куда нужно. В данном случае тебе нужно в самый вверх.
- Для комментирования войдите или зарегистрируйтесь
Спасибо, как раз нужна была эта информация.
Подскажите, а для webform-client-form-44 можно такое проделать?
- Для комментирования войдите или зарегистрируйтесь








Комментарии