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. 13 // 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 namespace core_search\external; 18 19 use core\external\exporter; 20 21 /** 22 * Contains related class for displaying information of a search result. 23 * 24 * @package core_search 25 * @since Moodle 4.3 26 */ 27 class document_exporter extends exporter { 28 29 /** 30 * Return the list of properties. 31 * 32 * @return array 33 */ 34 protected static function define_properties() { 35 return [ 36 'itemid' => [ 37 'type' => PARAM_INT, 38 'description' => 'unique id in the search area scope', 39 ], 40 'componentname' => [ 41 'type' => PARAM_ALPHANUMEXT, 42 'description' => 'component name', 43 ], 44 'areaname' => [ 45 'type' => PARAM_ALPHANUMEXT, 46 'description' => 'search area name', 47 ], 48 'courseurl' => [ 49 'type' => PARAM_URL, 50 'description' => 'result course url', 51 ], 52 'coursefullname' => [ 53 'type' => PARAM_RAW, 54 'description' => 'result course fullname', 55 ], 56 'timemodified' => [ 57 'type' => PARAM_INT, 58 'description' => 'result modified time', 59 ], 60 'title' => [ 61 'type' => PARAM_RAW, 62 'description' => 'result title', 63 ], 64 'docurl' => [ 65 'type' => PARAM_URL, 66 'description' => 'result url', 67 ], 68 'iconurl' => [ 69 'type' => PARAM_URL, 70 'description' => 'icon url', 71 'optional' => true, 72 'default' => '', 73 'null' => NULL_ALLOWED, 74 ], 75 'content' => [ 76 'type' => PARAM_RAW, 77 'description' => 'result contents', 78 'optional' => true, 79 'default' => '', 80 'null' => NULL_ALLOWED, 81 ], 82 'contextid' => [ 83 'type' => PARAM_INT, 84 'description' => 'result context id', 85 ], 86 'contexturl' => [ 87 'type' => PARAM_URL, 88 'description' => 'result context url', 89 ], 90 'description1' => [ 91 'type' => PARAM_RAW, 92 'description' => 'extra result contents, depends on the search area', 93 'optional' => true, 94 'default' => '', 95 'null' => NULL_ALLOWED, 96 ], 97 'description2' => [ 98 'type' => PARAM_RAW, 99 'description' => 'extra result contents, depends on the search area', 100 'optional' => true, 101 'default' => '', 102 'null' => NULL_ALLOWED, 103 ], 104 'multiplefiles' => [ 105 'type' => PARAM_INT, 106 'description' => 'whether multiple files are returned or not', 107 'optional' => true, 108 ], 109 'filenames' => [ 110 'type' => PARAM_RAW, 111 'description' => 'result file names if present', 112 'muultiple' => true, 113 'optional' => true, 114 ], 115 'filename' => [ 116 'type' => PARAM_RAW, 117 'description' => 'result file name if present', 118 'optional' => true, 119 ], 120 'userid' => [ 121 'type' => PARAM_INT, 122 'description' => 'user id', 123 'optional' => true, 124 ], 125 'userurl' => [ 126 'type' => PARAM_URL, 127 'description' => 'user url', 128 'optional' => true, 129 ], 130 'userfullname' => [ 131 'type' => PARAM_RAW, 132 'description' => 'user fullname', 133 'optional' => true, 134 ], 135 'textformat' => [ 136 'type' => PARAM_INT, 137 'description' => 'text fields format, it is the same for all of them', 138 ] 139 ]; 140 } 141 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body