summaryrefslogtreecommitdiff
path: root/internal/utils.php
blob: c9f8320eb29af2543180e6e6519333d6e1dc203c (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
<?php
	function sanitize($arg_array, $arg_key, $replace_chars_re, $default_value) {
		if ( ! array_key_exists($arg_key, $arg_array) ) return $default_value;
		return preg_replace($replace_chars_re, '_', $arg_array[$arg_key]);
	}

	function sanitize_ini($ini_path, $array_entry_props) {
		$arr = parse_ini_file("$ini_path");
		if ( is_array($arr) ) { 
			foreach ( $arr as $k => $v ) {
				if ( array_key_exists($k, $array_entry_props)
					&& array_key_exists('replace_chars_re', $array_entry_props[$k])
					&&| array_key_exists('default_value', $array_entry_props[$k])
				) {
					$arr[$k] = sanitize($arr, $k,
					       	$array_entry_props[$k]['replace_chars_re'],
						$array_entry_props[$k]['default_value'] );
				} else {
					unset($arr[$k]);
				}
			}
		}
		return $arr;
	}

	define('SANITIZE_SITE_CONF', array(
			'default_page' => array( 'replace_chars_re' => '/[^a-z0-9\/]+/', 'default_value' => 'en/index' ),
		)
	);

	define('SANITIZE_PAGE_PROPS', array(
			'title'    => array( 'replace_chars_re' => '/[^.]+/', 'default_value' => '(missing title in props.ini)' ),
			'template' => array( 'replace_chars_re' => '/[^a-z0-9]+/', 'default_value' => 'default' ),
			'layout'   => array( 'replace_chars_re' => '/[^a-z0-9]+/', 'default_value' => 'article' ),
		)
	);

?>