From e67c13403fa40afc9a782318da69b3db926a4fb9 Mon Sep 17 00:00:00 2001
From: Helior Colorado <me@helior.info>
Date: Tue, 29 May 2012 22:56:14 -0700
Subject: [PATCH] Admin Menu integration.

---
 fieldable_panels_panes.module |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/fieldable_panels_panes.module b/fieldable_panels_panes.module
index 54787b0..67da3af 100644
--- a/fieldable_panels_panes.module
+++ b/fieldable_panels_panes.module
@@ -307,6 +307,43 @@ function fieldable_panels_panes_theme() {
   );
 }
 
+/**
+ * Implements hook_admin_menu_map().
+ */
+function fieldable_panels_panes_admin_menu_map() {
+  $bundles = array();
+  $info = entity_get_info('fieldable_panels_pane');
+
+  foreach ($info['bundles'] as $bundle_name => $bundle_info) {
+    $bundles[] = strtr($bundle_name, '_', '-');
+
+    if (isset($bundle_info['admin'])) {
+      $admin_path = $bundle_info['admin']['path'];
+      $fields = array();
+
+      foreach (field_info_instances('fieldable_panels_pane', $bundle_name) as $field) {
+        $fields[] = $field['field_name'];
+      }
+
+      $map["$admin_path/fields/%field_ui_menu"]['parent'] = "$admin_path/fields";
+      $map["$admin_path/fields/%field_ui_menu"]['arguments'][] = array(
+        '%fieldable_panels_panes_type' => array($bundle_name),
+        '%field_ui_menu' => $fields,
+      );
+    }
+  }
+
+  $map['admin/structure/panels/entity/manage/%fieldable_panels_panes_type'] = array(
+    'parent' => 'admin/structure/panels/entity',
+    'arguments' => array(
+      array('%fieldable_panels_panes_type' => $bundles),
+    ),
+  );
+
+
+  return $map;
+}
+
 // -------------------------------------------------------------------------
 // Menu callbacks for things like titles, access control, etc.
 
-- 
1.7.7.5 (Apple Git-26)

