Нужно сделать отдельную страницу для региситрации и логина.
Я нашел такое решение
вставляется функция в template.php, тема http://drupal.org/node/154113
Стоит Drupal 5.1
/**
* This snippet loads a custom page-login.tpl.php layout file when
* users click through to the login, request password or register pages
*/
function _phptemplate_variables($hook, $variables = array()) {
switch ($hook) {
case 'page':
global $user;
if (arg(0) == 'user'){
if (!$user->uid) { //check to see if the user is logged in. If not display the special login page layout
$variables['template_file'] = 'page-login';
}
elseif (arg(1) == 'login' || arg(1) == 'register' || arg(1) == 'password' ) {
$variables['template_file'] = 'page-login';
}
}
break;
}
return $variables;
}
но после вставки этой функции у меня просто не грузится сайт.
Комментарии
http://ваш_сайт/user
http//ваш_сайт/?q=user
0) действительно, чем стандартная страница /user не подходит?
1) стОит журнал ошибок пхп и/или друпала посмотреть
2) может файл page.login.tpl.php не находит?
Все нормально функционирует, но нужно реализовать именно отдельную страницу.
Вы имеете ввиду
/**
* This snippet loads a custom page-login.tpl.php layout file when
* users click through to the login, request password or register pages
*/
function _phptemplate_variables($hook, $variables = array()) {
switch ($hook) {
case 'page':
global $user;
if (arg(0) == 'http://ваш_сайт/user'){
if (!$user->uid) { //check to see if the user is logged in. If not display the special login page layout
$variables['template_file'] = 'page-login';
}
elseif (arg(1) == 'http://ваш_сайт/user/login' || arg(1) == 'http://ваш_сайт/user/register' || arg(1) == 'http://ваш_сайт/user/password' ) {
$variables['template_file'] = 'page-login';
}
}
break;
}
return $variables;
}
Так страницы грузятся, но страница page-login.tpl.php не запускается вместо обычной регистрации.
/user - как раз и есть отдельная страница
Возможно я не правильно выражаюсь но вы меня уже второй раз не так понимаете.
Нужно именно отдельная страница page-login.tpl.php. Чтобы можно было задать свое оформление для этой страницы.
Подскажите как правильно написать функцию проверки которая будет переадресовывать на страницу page-login.tpl.php.
Вот здесь пример с подобной реализацией http://drupal.org/node/154113, но их функция у меня не работает возможно проблема в версии у меня Drupal 5.1.
а может попробовать рецепт с http://drupal.org/node/154242
На http://drupal.org/node/154242 оформление самой формы, а не всей страницы.
Повторюсь — смотрите логи. Не грузится сайт ("белый экран смерти") из-за ошибок в ПХП. Там и строчку Вам укажут и станет всё понятнее мб.
Вот тут статье полтора года уже, но решение работает:
http://www.lullabot.com/articles/hacking_phptemplate
Кстати последний комментарий сегодняшним днём значится.
Lullabot loves you
Все нормально функционирует, мне нужно просто задать свое оформление для этих страниц.
Shedko спасибо этот вариант в принципе подойдет если он заработает, я поменяю форму, а потом уберу показ блоков. Конечно лучше бы страницу менять, так намного проще было бы.
Насчет http://www.lullabot.com/articles/hacking_phptemplate, это решение у меня не работало потом я почитал коментарии,
проблема в том что функция которую они предлагают имеет название которое уже есть в файле tamlplate и поэтому после вставки функции страницы переставали грузится единственное решение которое я пока нашел это удалить ту функцию которая была в этом файле и вместо нее вставить предложенную.
Был бы еще способ настроить название полей вместо "Адрес электронной почты:" и "Имя пользователя:" прописать свои
и вообще отредактировать теги в форме по своему усмотрению.
Был бы еще способ настроить название полей вместо "Адрес электронной почты:" и "Имя пользователя:" прописать свои
и вообще отредактировать теги в форме по своему усмотрению.
С помощью http://api.drupal.org/api/function/hook_form_alter/5 можно изменить любую форму (добавить, удалить, изменить поля).
$form['#theme'] = 'my_theme_func'; - назначить функцию для темизации формы.
edhel спасибо. Вот только у меня с php проблемы. Надо что то полегче или пошаговую инструкцию какую то.
попробуй view и viewthemes. может поможет.