aboutsummaryrefslogtreecommitdiff
path: root/model/Conferences.php
blob: 9396a487ff197dbc50c725c7e603c0dc1faf93f2 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php

class Conferences extends ModelBase
{
	const MANDATOR_DIR = 'configs/conferences/';

	public static function getConferences() {
		$conferences = [];
		foreach(scandir(forceslash(Conferences::MANDATOR_DIR)) as $el)
		{
			if($el[0] == '.')
				continue;

			$conferences[$el] = Conferences::getConferenceInformation($el);
		}

		return $conferences;
	}
	public static function getConferencesCount() {
		return count(Conferences::getConferences());
	}

	public static function getActiveConferences() {
		return array_values(array_filter(
			Conferences::getConferences(),
			function($info) {
				return $info['active'];
			}
		));
	}

	public static function getActiveConferencesCount() {
		return count(Conferences::getActiveConferences());
	}

	public static function exists($mandator) {
		return array_key_exists($mandator, Conferences::getConferences());
	}

	public static function getConferenceInformation($mandator) {
		if(isset($GLOBALS['CONFIG']))
			$saved_config = $GLOBALS['CONFIG'];

		Conferences::load($mandator);
		$conf = new Conference();
		$info = [
			'slug' => $mandator,
			'link' => forceslash($mandator),
			'active' => !$conf->isClosed(),
			'title' => $conf->getTitle(),
			'description' => $conf->getDescription(),

			'CONFIG' => $GLOBALS['CONFIG'],
		];
		unset($GLOBALS['CONFIG']);

		if(isset($saved_config))
			$GLOBALS['CONFIG'] = $saved_config;

		return $info;
	}

	public static function hasCustomStyles($mandator) {
		return file_exists(Conferences::getCustomStyles($mandator));
	}
	public static function getCustomStyles($mandator) {
		return forceslash(Conferences::getCustomStylesDir($mandator)).'main.less';
	}
	public static function getCustomStylesDir($mandator) {
		return forceslash(Conferences::MANDATOR_DIR).forceslash($mandator);
	}

	public static function load($mandator) {
		include(forceslash(Conferences::MANDATOR_DIR).forceslash($mandator).'config.php');
		return isset($GLOBALS['CONFIG']);
	}
}