function menu_patterns_prepare in Patterns 7.2
Same name and namespace in other branches
- 7 patterns_components/components/menu.inc \menu_patterns_prepare()
File
- patterns_components/
components/ menu.inc, line 111
Code
function menu_patterns_prepare($action, $tag, &$data) {
if ($action == PATTERNS_DELETE) {
$data['confirm'] = 1;
}
switch ($tag) {
case 'menu':
if (empty($data['menu_name']) && !empty($data['name'])) {
$data['menu_name'] = $data['name'];
unset($data['name']);
}
break;
case 'menu_item':
if (!empty($data['id'])) {
$data['mlid'] = $data['id'];
unset($data['id']);
}
if (!empty($data['path'])) {
$data['link_path'] = $data['path'];
}
unset($data['path']);
if (!empty($data['title'])) {
$data['link_title'] = $data['title'];
}
unset($data['title']);
if (!empty($data['link_path'])) {
$data['link_path'] = str_replace(array(
'[',
']',
), array(
'<',
'>',
), $data['link_path']);
}
if (!empty($data['menu_name'])) {
if (!isset($data['parent']) || $data['parent'] == '0') {
$data['parent'] = $data['menu_name'] . ':0';
}
elseif (is_numeric($data['parent']) && db_query("SELECT mlid FROM {menu_links} WHERE menu_name = :menu AND mlid = :mlid", array(
'menu' => $data['menu_name'],
'mlid' => $data['parent'],
))
->fetchField()) {
$data['parent'] = $data['menu_name'] . ':' . $data['parent'];
}
elseif (is_string($data['parent']) && ($plid = db_query("SELECT mlid FROM {menu_links} WHERE menu_name = :menu AND link_title = :title", array(
'menu' => $data['menu_name'],
'title' => $data['parent'],
))
->fetchField())) {
$data['parent'] = $data['menu_name'] . ':' . $plid;
}
elseif (empty($data['mlid']) && empty($data['parent']) && !empty($data['link_title']) && !empty($data['link_path'])) {
$data['parent'] = $data['menu_name'] . ':0';
}
}
if ($action == PATTERNS_MODIFY) {
$data['customized'] = 1;
$data['module'] = 'menu';
if (isset($data['disable']) && $data['disable']) {
$data['enabled'] = 0;
unset($data['disable']);
}
elseif (isset($data['enable']) && $data['enable']) {
$data['enabled'] = 1;
unset($data['disable']);
}
}
break;
}
return patterns_results();
}