DrupalBin
Submit Code
About
Recent Posts
Code
Fix for Code
Code
Fix for filefield implementation in an admin page. "An HTTP error 0 occurred. /drupal/?q=filefield/ahah///"
Undefined index:
searching for two different taxonomy terms - get this into views (2 on D6)?
Converting D6 to D7
error on clone same as earlier error on migrate
Reordering ORDER BY elements in selectQuery query
Fix for Fix for prefix_sufix_admin.inc
more
User login
Log in using OpenID:
What is OpenID?
Username:
*
Password:
*
Log in using OpenID
Cancel OpenID login
Create new account
Request new password
Tags
CCK
drupal
fapi
jquery
menu
module
php
simpletest
taxonomy
test
theme
views
more tags
Home
Fix for Set Default Menu for node with no menu
View
Fix
February 5, 2009 - 3:53pm — Anonymous
/**
* The all powerful preprocess function, so handy.
* Set the new item here to be sure its ready for rendering.
*/
function
mysite_preprocess_node
(
&
$variables
)
{
$node
=
$variables
[
'node'
]
;
// set default menu if needed.
_set_default_menu
(
$node
-
>
nid
)
;
}
/**
* For most items some menu is set. But for those that do not
* we need to set one.
*/
function
_set_default_menu
(
$nid
)
{
if
(
!
node_has_menu
(
"node/$nid"
)
)
{
$menu
= _find_default_menu
(
$nid
)
;
}
}
// does node have menu
function
node_has_menu
(
$path
)
{
$sql
=
"SELECT 'TRUE' FROM drupal_menu_links "
;
$sql
.=
"WHERE menu_name IN ('primary-links') AND "
;
$sql
.=
"link_path = '%s'"
;
$result
=
db_result
(
db_query
(
$sql
,
$path
)
)
;
return
$result
;
}
/**
* Here the default menu is found. You could do find your default menu several different ways,
* like using a taxonomy already set on the node or any other field set on the node, or even a default
* variable.
*/
function
_find_default_menu
(
$nid
)
{
$sql
=
"SELECT link_path FROM drupal_menu_links WHERE plid = 0 AND "
;
$sql
.=
"menu_name IN ('primary-links') AND link_title = '%s'"
;
$link
=
db_result
(
db_query
(
$sql
,
'Some Menu'
)
)
;
$router_item
=
menu_get_item
(
$link
)
;
menu_set_item
(
"node/$nid"
,
$router_item
)
;
}
menu
theming
Submit Fix
Summary:
Tags:
Any tags you'd like to associate with your code, delimitered by commas (example: Views, CCK, Module, etc).
Show summary in full view
/** * The all powerful preprocess function, so handy. * Set the new item here to be sure its ready for rendering. */ function mysite_preprocess_node(&$variables) { $node = $variables['node']; // set default menu if needed. _set_default_menu($node->nid); } /** * For most items some menu is set. But for those that do not * we need to set one. */ function _set_default_menu($nid){ if (!node_has_menu("node/$nid")) { $menu = _find_default_menu($nid); } } // does node have menu function node_has_menu($path) { $sql = "SELECT 'TRUE' FROM drupal_menu_links "; $sql .= "WHERE menu_name IN ('primary-links') AND "; $sql .= "link_path = '%s'"; $result = db_result(db_query($sql, $path)); return $result; } /** * Here the default menu is found. You could do find your default menu several different ways, * like using a taxonomy already set on the node or any other field set on the node, or even a default * variable. */ function _find_default_menu($nid) { $sql = "SELECT link_path FROM drupal_menu_links WHERE plid = 0 AND "; $sql .= "menu_name IN ('primary-links') AND link_title = '%s'"; $link = db_result(db_query($sql, 'Some Menu')); $router_item = menu_get_item($link); menu_set_item("node/$nid", $router_item); }
Syntax highlighting mode:
ActionScript
ColdFusion
Diff
Drupal 5
Drupal 6
HTML
INI
Javascript
MySQL
PHP
Python
robots.txt
SQL
Text
Select the syntax highlighting mode to use.
See Also:
Order
Title:
URL:
-1
0
1
Title:
URL:
-1
0
1
Any links you'd like to have associated with the post (Drupal.org issue, Wikipedia article, etc).
File attachments
Changes made to the attachments are not permanent until you save this post. The first "listed" file will be included in RSS feeds.
Attach new file:
The maximum upload size is
1 MB
. Only files with the following extensions may be uploaded:
jpg jpeg gif png txt doc xls pdf ppt pps odt ods odp phps
.