我創建了一個Drupal 7自定義登錄頁面,並使用user-login.tpl.php模板文件更改了佈局。一切都是金色的,直到我意識到大部分強制登錄都被匿名用戶重定向到/ user not/user/login。我不想修改user.tpl.php模板,因爲這顯然會改變我的個人檔案頁面的佈局。Drupal 7使用登錄鏈接登錄前重定向用戶?
我搜索了一下,找到了一些template.php文件的代碼來檢查用戶是否登錄,如果沒有重定向到user-login.tpl.php文件。
<?php
function mytheme_preprocess_page(&$vars) {
// Check to see that the user is not logged in and that we're on the correct page.
if ($vars['user']->uid == 0 && arg(0) == 'user' && (arg(1) == '' || arg(1) == 'login')) {
// Add a custom template-file.
array_unshift($vars['template_files'], 'page-login');
// Add body classes for easier css.
$vars['body_classes'] .= ' logged';
}
}
?>
剝離出來的PHP標籤顯然和改變的MyTheme我的主題名稱,它似乎仍然沒有工作。我也刪除了身體類添加,但沒有去。我將這個添加爲body類錯誤。
Warning: array_unshift() expects parameter 1 to be array, null given in framework_preprocess_page() (line 123 of /Applications/MAMP/htdocs/mysite/sites/all/themes/framework/template.php).
Notice: Undefined index: body_classes in framework_preprocess_page() (line 125 of /Applications/MAMP/htdocs/mysite/sites/all/themes/framework/template.php).
,如果刪除
Warning: array_unshift() expects parameter 1 to be array, null given in framework_preprocess_page() (line 123 of /Applications/MAMP/htdocs/mysite/sites/all/themes/framework/template.php).
我也嘗試了基本的重定向
<?php
function YOURTHEME_preprocess_page(&$vars) {
// Check to see that the user is not logged in and that we're on the correct page.
if ($vars['user']->uid == 0 && arg(0) == 'user' && (arg(1) == '' || arg(1) == 'login')) {
drupal_goto("user/login");
}
}
?>
但功能會掛起的頁面
的網頁沒有正確重定向
Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
此問題有時可能由禁用或拒絕接受cookie引起。
切換出另一個頁面的「用戶/登錄」路徑,而不是/登錄路徑。
任何想法?我是一個PHP新手如此簡單的代碼/解釋是最好的。
可以肯定的是,在您提交登錄表單之前或之後頁面是否被掛起? – pjongjang