+function pl_flatten_aux(array &$dest, array $src)
+{
+ foreach ($src as $val) {
+ if (is_array($val)) {
+ pl_flatten_aux($dest, $val);
+ } else {
+ $dest[] = $val;
+ }
+ }
+}
+
+function pl_flatten(array $array)
+{
+ $res = array();
+ pl_flatten_aux($res, $array);
+ return $res;
+}
+
+/**
+ * Returns the path of a static content, including, when appropriate, the
+ * version number. This is used to avoid cross-version cache issues, by ensuiring
+ * that all static resources are served on a unique path.
+ */
+function pl_static_content_path($path, $filename)
+{
+ global $globals;
+ if (isset($globals) && isset($globals->version)) {
+ return $path . $globals->version . '/' . $filename;
+ } else {
+ return $path . $filename;
+ }
+}
+