aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/extern.php
blob: 9296a345adc9be9dacd68b38b4384710fe361d28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
/**
 * extern.php - Controller to provide content to external pages.
 *
 * This program 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 2 of
 * the License, or (at your option) any later version.
 *
 * @author      Peter Thienel <thienel@data-quest.de>
 * @license     http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
 * @category    Stud.IP
 * @since       5.4
 */

class ExternController extends StudipController
{
    protected $with_session = true;

    /**
     * Action shows rendered external page.
     *
     * @param string $config_id The id of the configuration of the external page to show.
     * @throws Trails\Exceptions\DoubleRenderError
     */
    public function index_action(string $config_id)
    {
        $config = ExternPageConfig::find($config_id);
        if (!$config) {
            $this->render_text(
                Config::get()->EXTERN_PAGES_ERROR_MESSAGE
            );
            return;
        }
        try {
            $page = ExternPage::get($config);
            $page->setRequestParams();
        } catch (Exception $e) {
            $this->render_text(
                Config::get()->EXTERN_PAGES_ERROR_MESSAGE . '<br>' . $e->getMessage()
            );
            return;
        }

        $this->render_text($page->toString());
    }

}