summaryrefslogtreecommitdiff
path: root/internal/utils.php
diff options
context:
space:
mode:
Diffstat (limited to 'internal/utils.php')
-rw-r--r--internal/utils.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/utils.php b/internal/utils.php
new file mode 100644
index 0000000..c9f8320
--- /dev/null
+++ b/internal/utils.php
@@ -0,0 +1,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' ),
+ )
+ );
+
+?>
+