/**
  * Generate special menu templates and add them to the input template list.
  *
  * @param array $templates Template list.
  * @return array Modified template list.
  */
 private function add_special_templates($templates)
 {
     //Add a special template for unclickable menu items. These can be used as headers and such.
     $itemDefaults = ameMenuItem::custom_item_defaults();
     $unclickableDefaults = array_merge($itemDefaults, array('file' => '#' . ameMenuItem::unclickableTemplateClass, 'url' => '#' . ameMenuItem::unclickableTemplateClass, 'css_class' => $itemDefaults['css_class'] . ' ' . ameMenuItem::unclickableTemplateClass, 'menu_title' => 'Unclickable Menu'));
     $templates[ameMenuItem::unclickableTemplateId] = array('name' => '< None >', 'used' => true, 'defaults' => $unclickableDefaults);
     if ($this->is_pro_version()) {
         //The Pro version has a [wp-logout-url] shortcode. Lets make it easier o use
         //by adding it to the "Target page" dropdown.
         $logoutDefaults = array_merge(ameMenuItem::basic_defaults(), array('menu_title' => 'Logout', 'file' => '[wp-logout-url]', 'url' => '[wp-logout-url]', 'icon_url' => 'dashicons-migrate'));
         $templates['>logout'] = array('name' => 'Logout', 'used' => true, 'defaults' => $logoutDefaults);
     }
     return $templates;
 }
Esempio n. 2
0
 /**
  * Compress menu configuration (lossless).
  *
  * Reduces data size by storing commonly used properties and defaults in one place
  * instead of in every menu item.
  *
  * @param array $menu
  * @return array
  */
 public static function compress($menu)
 {
     $property_dict = ameMenuItem::blank_menu();
     unset($property_dict['defaults']);
     $common = array('properties' => $property_dict, 'basic_defaults' => ameMenuItem::basic_defaults(), 'custom_item_defaults' => ameMenuItem::custom_item_defaults());
     $menu['tree'] = self::map_items($menu['tree'], array(__CLASS__, 'compress_item'), array($common));
     $menu = self::add_format_header($menu);
     $menu['format']['compressed'] = true;
     $menu['format']['common'] = $common;
     return $menu;
 }