lib/kolab_recipient_policy.php
Jeroen van Meeuwen
vanmeeuwen at kolabsys.com
Sat May 11 13:14:31 CEST 2013
lib/kolab_recipient_policy.php | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
New commits:
commit c02f0d3931e41b27c2ab6d1c5bcb513a781d5f9c
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date: Sat May 11 13:12:57 2013 +0200
Enhance policy_uid policy parsing
diff --git a/lib/kolab_recipient_policy.php b/lib/kolab_recipient_policy.php
index 036f9c9..c9e892d 100644
--- a/lib/kolab_recipient_policy.php
+++ b/lib/kolab_recipient_policy.php
@@ -382,9 +382,9 @@ class kolab_recipient_policy {
}
$functions = array(
- '\'*(\w+)\'*\.capitalize\(\)' => 'strtoupper(substr("${1}", 0, 1)) . strtolower(substr("${1}", 1))',
- '\'*(.*)\'*\.lower\(\)' => 'strtolower("${1}")',
- '\'*(\w+)\'*\.upper\(\)' => 'strtoupper("${1}")',
+ '\'*(\w+)\'*\.capitalize\(\).*' => 'strtoupper(substr("${1}", 0, 1)) . strtolower(substr("${1}", 1))',
+ '\'*(.*)\'*\.lower\(\).*' => 'strtolower("${1}")',
+ '\'*(\w+)\'*\.upper\(\).*' => 'strtoupper("${1}")',
);
$policy_uid = preg_replace('/(\{\d+\})/', '%s', $policy_uid);
@@ -454,18 +454,26 @@ class kolab_recipient_policy {
$end = 0;
}
- $policy_uid = preg_replace('/\'' . $substrings[1][$x] . '\'\['.$substrings[2][$x].':'.$substrings[3][$x].'\]/', "'".substr($substrings[1][$x], $start, $end)."'", $policy_uid);
+ $policy_uid = preg_replace(
+ "/'" . $substrings[1][$x] . "'\[" . $substrings[2][$x] . ':' . $substrings[3][$x] . "\]/",
+ substr($substrings[1][$x], $start, $end),
+ $policy_uid
+ );
}
foreach ($functions as $match => $replace) {
- if (preg_match('/' . $match . '/', $policy_uid, $strings)) {
+ while (preg_match('/' . $match . '/', $policy_uid, $strings)) {
$policy_uid = preg_replace('/' . $match . '/', $replace, $policy_uid);
}
}
+ Log::trace("kolab_recipient_policy::" . __LINE__ . " \$policy_uid: " . var_export($policy_uid, TRUE));
+
$formatted_policy_uid = explode(":", $policy_uid);
if (is_array($formatted_policy_uid) && count($formatted_policy_uid) == 2) {
eval("\$policy_uid = sprintf(" . $formatted_policy_uid[0] . ", " . $formatted_policy_uid[1] . ");");
+ } elseif (preg_match('/\(/', $policy_uid) && preg_match('/\)/', $policy_uid)) {
+ eval("\$policy_uid = " . $policy_uid . ";");
} else {
eval("\$policy_uid = '" . $policy_uid . "';");
}
More information about the commits
mailing list