You are here

function menu_patterns_prepare in Patterns 7

Same name and namespace in other branches
  1. 7.2 patterns_components/components/menu.inc \menu_patterns_prepare()

File

patterns_components/components/menu.inc, line 88

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 ($data['disable']) {
          $data['enabled'] = 0;
          unset($data['disable']);
        }
        elseif ($data['enable']) {
          $data['enabled'] = 1;
          unset($data['disable']);
        }
      }
      break;
  }
  return patterns_results();
}