## Configuration

### config.php

First an example configuration:

```php
<?php
return [

    'title' => 'AAI Login',

    // --- language for ui
    'lang' => 'de',

    // -- enable one of it:
    'mode' => 'boxes',
    // 'mode' => 'wayf',

    // -- maintenance hint or other message on top
    // 'text-info' => '+++ Hinweis +++ Hinweis +++ Hinweis +++ Hinweis +++',

    // -- text before and after
    'text-before' => '<h2>AAI Login</h2>
        <p>
            Studierende und Dozenten nutzen in der Regel das Anmelden &uuml;ber ihre Organisation:
        </p>',
    
    'text-after' => '<br><br><h2>Anmeldung ohne AAI</h2>
        <p>
            Klicken Sie auf: <br />
            <a href="/login.php" onclick="">Gast-Zugang</a>
        </p>',

    // -- positive list of IDPs
    'idps' => [
        "https://aai-idp.unibe.ch/idp/shibboleth",
        "https://aai.insel.ch/idp/shibboleth",
        "https://aai-logon.vho-switchaai.ch/idp/shibboleth",
        "https://aai-logon.unibas.ch/idp/shibboleth",
    ],

    // -- return URL
    'return-url' => '/shib_login.php'

    // -- cache for discofeed
    'cachefile' => 'discofeed.json',
    'cachettl' => 60*60,

];
```

#### Available settings

| Key                | Type    | Description
|--                  |--       |--
| title              | string  | Title of the login page; used for title tag and h1 header
| lang               | string  | Language as 2 letter code for ui and to detect texts in discofeed; If the language is not found in the discofeed it takes the 1st text item
| mode               | string  | Selection mode; one of <br>- `"boxes"` Boxes with images incl. filter field<br>- `"list"` Top down list of IDPs with images incl. filter field<br>- `"wayf"` Selection with WAYF script from Switch
| text-info          | string  | When not empty: show a warning banner with its text on top eg. for maintenance messages
| text-before-wayf   | string  | Text to show before wayf select box (for mode = "wayf" only)
| text-after-logins  | string  | Fisnishing text after
| idps               | array   | List of enabled idps to whitelist; it will filtered by enabled organisatzions by shibboleth
| return-url         | string  | Return url to your application afer logging in on then organization url<br>- '/shib_login.php' is for Ilias LMS
| cachefile          | string  | Releative path for cache file of the discofeed; default: "discofeed.json"; the user of webserver (www-data, ...) needs write permission in the follder
| cachettl           | integer | Caching time for cache file (discofeed.json ); default: 60 min

#### Screenshots of modes

Mode "boxes":
![Login screen with mode "boxes"](images/login_mode_boxes.png)

Mode "list":
![Login screen with mode "boxes"](images/login_mode_list.png)

Mode "wayf":
![Login screen with mode "boxes"](images/login_mode_wayf.png)

### Custom Css

Place a file named "screen_custom.css". If this exists it will be added in the html code after all other css files. There you can override all styles and values.

### Custom look

If you want to modify the look of the Idp selection:

* go to directory "mode"
* Make a copy of a view, eg. copy "boxes" to "myboxes" and make your changes for coding and styling in your copy
* To activate it edit the ./config.php and set `'mode' => 'myboxes',`