Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Ryan Klusman
UNL-CMS
Commits
91977061
Commit
91977061
authored
Dec 05, 2012
by
Eric Rasmussen
Browse files
[gh-481] Add unl-404 menu path that fetches 404 page from default site.
Set site_404 variable to that path in unl module update.
parent
419dfe18
Changes
2
Hide whitespace changes
Inline
Side-by-side
sites/all/modules/unl/unl.install
View file @
91977061
...
...
@@ -40,3 +40,12 @@ function unl_update_7112() {
);
variable_set
(
'unl_module_whitelist'
,
$modules
);
}
/**
* If site does not have custom 404 set, set it to the central UNL page.
*/
function
unl_update_7113
()
{
if
(
!
variable_get
(
'site_404'
))
{
variable_set
(
'site_404'
,
'unl-404'
);
}
}
sites/all/modules/unl/unl.module
View file @
91977061
...
...
@@ -255,6 +255,17 @@ function unl_permission() {
);
}
/**
* Implements hook_preprocess_node().
*/
function
unl_preprocess_node
(
&
$vars
)
{
// Full page representation wanted for 404 page
$status
=
drupal_get_http_header
(
'status'
);
if
(
$status
==
'404 Not Found'
)
{
$vars
[
'page'
]
=
TRUE
;
}
}
/**
* Implements hook_preprocess_page().
*/
...
...
@@ -278,11 +289,19 @@ function unl_preprocess_page(&$vars) {
}
/**
* Implement
ation of
hook_menu().
* Implement
s
hook_menu().
*/
function
unl_menu
()
{
$items
=
array
();
// 404 page pulled from default site.
$items
[
'unl-404'
]
=
array
(
'title'
=>
'Page not found'
,
'access callback'
=>
TRUE
,
'page callback'
=>
'unl_404_page'
,
'type'
=>
MENU_CALLBACK
,
);
// Output html snippets for regions.
$items
[
'sharedcode/%'
]
=
array
(
'title'
=>
'sharedcode files'
,
...
...
@@ -377,7 +396,7 @@ function unl_menu() {
}
/**
* Implement
ation of
hook_menu_alter().
* Implement
s
hook_menu_alter().
*/
function
unl_menu_alter
(
&
$items
)
{
// This duplicates the form at admin/appearance/settings/unl_wdn for roles that can't 'administer themes' but have 'unl theme settings' permission.
...
...
@@ -405,6 +424,29 @@ function unl_menu_alter(&$items) {
$items
[
'admin/modules/uninstall'
][
'access callback'
]
=
'unl_user_is_administrator'
;
}
/**
* Custom page callback.
*/
function
unl_404_page
()
{
$database
=
$GLOBALS
[
'databases'
][
'default'
][
'default'
];
$database
[
'prefix'
]
=
unl_get_shared_db_prefix
();
Database
::
addConnectionInfo
(
'default_site'
,
'default'
,
$database
);
// Switch database connection to default site.
db_set_active
(
'default_site'
);
$default_404
=
unl_shared_variable_get
(
'site_404'
);
// @TODO: $default_404 should look like "node/182" but is there a safer way to retrieve nid?
$node
=
node_load
(
substr
(
$default_404
,
5
));
drupal_set_title
(
$node
->
title
);
$build
=
node_view
(
$node
,
'full'
);
$build
[
'links'
][
'#access'
]
=
FALSE
;
$build
[
'#contextual_links'
]
=
NULL
;
// Restore database connection.
db_set_active
();
return
drupal_render
(
$build
);
}
/**
* Custom function that creates html snippet output at sharedcode/% paths to
* mimic files that once existed on static UNL templated sites.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment