Procházet zdrojové kódy

Merge pull request #3549 from core23/exportfield-extension

Modify export fields in admin extension
Oskar Stark před 9 roky
rodič
revize
7958cd6e21
3 změnil soubory, kde provedl 28 přidání a 1 odebrání
  1. 9 1
      Admin/Admin.php
  2. 8 0
      Admin/AdminExtension.php
  3. 11 0
      Admin/AdminExtensionInterface.php

+ 9 - 1
Admin/Admin.php

@@ -596,7 +596,15 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
      */
     public function getExportFields()
     {
-        return $this->getModelManager()->getExportFields($this->getClass());
+        $fields = $this->getModelManager()->getExportFields($this->getClass());
+
+        foreach ($this->getExtensions() as $extension) {
+            if (method_exists($extension, 'configureExportFields')) {
+                $fields = $extension->configureExportFields($this, $fields);
+            }
+        }
+
+        return $fields;
     }
 
     /**

+ 8 - 0
Admin/AdminExtension.php

@@ -131,6 +131,14 @@ abstract class AdminExtension implements AdminExtensionInterface
         return $actions;
     }
 
+    /**
+     * {@inheritdoc}
+     */
+    public function configureExportFields(AdminInterface $admin, array $fields)
+    {
+        return $fields;
+    }
+
     /**
      * {@inheritdoc}
      */

+ 11 - 0
Admin/AdminExtensionInterface.php

@@ -135,6 +135,17 @@ interface AdminExtensionInterface
     // TODO: Uncomment in next major release
     // public function configureBatchActions(AdminInterface $admin, array $actions);
 
+    /**
+     * Get a chance to modify export fields.
+     *
+     * @param AdminInterface $admin
+     * @param string[]       $fields
+     *
+     * @return string[]
+     */
+    // TODO: Uncomment in next major release
+    // public function configureExportFields(AdminInterface $admin, array $fields);
+
     /**
      * @param AdminInterface $admin
      * @param mixed          $object