Merge branch 'MDL-29821' of git://github.com/bostelm/moodle
[moodle.git] / backup / cc / entities11.class.php
blob9af9f3c89c0d5fb16599c5b38b7dd991a5ebfb61
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
16 /**
17 * @package moodlecore
18 * @subpackage backup-imscc
19 * @copyright 2011 Darko Miletic (dmiletic@moodlerooms.com)
20 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 defined('MOODLE_INTERNAL') or die('Direct access to this script is forbidden.');
25 require_once($CFG->dirroot . '/backup/cc/entities.class.php');
27 class entities11 extends entities {
29 public function get_external_xml($identifier) {
30 $xpath = cc2moodle::newx_path(cc112moodle::$manifest, cc112moodle::$namespaces);
31 $files = $xpath->query('/imscc:manifest/imscc:resources/imscc:resource[@identifier="' .
32 $identifier . '"]/imscc:file/@href');
33 $response = empty($files) || ($files->length == 0) ? '' : $files->item(0)->nodeValue;
34 return $response;
37 protected function get_all_files () {
38 global $CFG;
39 $all_files = array();
40 $xpath = cc2moodle::newx_path(cc112moodle::$manifest, cc112moodle::$namespaces);
41 foreach (cc112moodle::$restypes as $type) {
42 $files = $xpath->query('/imscc:manifest/imscc:resources/imscc:resource[@type="' .
43 $type . '"]/imscc:file/@href');
44 if (empty($files) || ($files->length == 0)) {
45 continue;
47 foreach ($files as $file) {
48 //omit html files
49 //this is a bit too simplistic
50 $ext = strtolower(pathinfo($file->nodeValue, PATHINFO_EXTENSION));
51 if (in_array($ext, array('html', 'htm', 'xhtml'))) {
52 continue;
54 $all_files[] = $file->nodeValue;
56 unset($files);
59 //are there any labels?
60 $xquery = "//imscc:item/imscc:item/imscc:item[imscc:title][not(@identifierref)]";
61 $labels = $xpath->query($xquery);
62 if (!empty($labels) && ($labels->length > 0)) {
63 $tname = 'course_files';
64 $dpath = cc2moodle::$path_to_manifest_folder . DIRECTORY_SEPARATOR . $tname;
65 $rfpath = 'folder.gif';
66 $fpath = $dpath . DIRECTORY_SEPARATOR . 'folder.gif';
67 if (!file_exists($dpath)) {
68 mkdir($dpath);
70 //copy the folder.gif file
71 $folder_gif = "{$CFG->dirroot}/pix/f/folder.gif";
72 copy($folder_gif, $fpath);
73 $all_files[] = $rfpath;
75 $all_files = empty($all_files) ? '' : $all_files;
77 return $all_files;