MDL-69549 mod_resource: content export implementation
authorSimey Lameze <simey@moodle.com>
Wed, 30 Sep 2020 07:06:12 +0000 (15:06 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Thu, 15 Oct 2020 05:46:25 +0000 (13:46 +0800)
mod/resource/classes/content/exporter.php [new file with mode: 0644]

diff --git a/mod/resource/classes/content/exporter.php b/mod/resource/classes/content/exporter.php
new file mode 100644 (file)
index 0000000..255f947
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Content export definition.
+ *
+ * @package     mod_resource
+ * @copyright   2020 Simey Lameze <simey@moodle.com>
+ * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+namespace mod_resource\content;
+
+use core\content\export\exportable_items\exportable_filearea;
+use core\content\export\exporters\abstract_mod_exporter;
+
+/**
+ * A class which assists a component to export content.
+ *
+ * @copyright   2020 Simey Lameze <simey@moodle.com>
+ * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class exporter extends abstract_mod_exporter {
+
+    /**
+     * Get the exportable items for mod_resource.
+     *
+     * @param   bool $includeuserdata Whether to include user data, in addition to shared content.
+     * @return  \core\content\export\exportable_item[]
+     */
+    public function get_exportables(bool $includeuserdata = false): array {
+        $contentitems = [];
+
+        $contentitems[]  = new exportable_filearea(
+            $this->get_context(),
+            $this->get_component(),
+            get_string('resourcecontent', 'mod_resource'),
+
+            // The files held in mod_resource are stored in the 'content' filearea, under itemid 0.
+            'content',
+            0,
+
+            // The itemid is used in the URL when accessing.
+            0
+        );
+
+        return $contentitems;
+    }
+}