++$e; //skip length while ($str[$e] >= "€" && $str[$e] <= "¿" && $e < $limit) { ++$e; } } } return substr($str, $s, $e - $s); } } } // We might need to cache this on a per-user basis // Cache cache // function user_has_permission($user,$perm) if (!$cachelib->isCached("allperms")) { $allperms = $userlib->get_permissions(0, -1, 'permName_desc', '', ''); $cachelib->cacheItem("allperms", serialize($allperms)); } else { $allperms = unserialize($cachelib->getCached("allperms")); } $allperms = $allperms["data"]; //Initializes permissions foreach ($allperms as $vperm) { $perm = $vperm["permName"]; ${$perm} = 'n'; $smarty->assign("{$perm}", 'n'); } // Permissions if ($user == 'admin' || $user && $userlib->user_has_permission($user, 'tiki_p_admin')) { //Gives admins all permissions foreach ($allperms as $vperm) {