weekly release 3.9dev
[moodle.git] / course / classes / output / recommendations / activity_list.php
CommitLineData
cd09777d
AG
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/**
b3fe33ac 18 * Contains activity_list renderable used for the recommended activities page.
cd09777d
AG
19 *
20 * @package core_course
21 * @copyright 2020 Adrian Greeve
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace core_course\output\recommendations;
26
27/**
b3fe33ac 28 * Activity list renderable.
cd09777d
AG
29 *
30 * @package core_course
31 * @copyright 2020 Adrian Greeve
32 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
33 */
34class activity_list implements \renderable, \templatable {
35
36 /** @var array $modules activities to display in the recommendations page. */
37 protected $modules;
38
39 /**
40 * Constructor method.
41 *
42 * @param array $modules Activities to display
43 */
44 public function __construct(array $modules) {
45 $this->modules = $modules;
46 }
47
48 /**
49 * Export method to configure information into something the template can use.
50 *
51 * @param \renderer_base $output Not actually used.
52 * @return array Template context information.
53 */
54 public function export_for_template(\renderer_base $output): array {
55
56 $info = array_map(function($module) {
57 return [
58 'id' => $module->id ?? '',
59 'name' => $module->title,
60 'componentname' => $module->componentname,
61 'icon' => $module->icon,
62 'recommended' => $module->recommended ?? ''
63 ];
64 }, $this->modules);
65
66 return ['categories' => ['categoryname' => get_string('activities'), 'categorydata' => $info]];
67 }
b3fe33ac 68}