blessing-skin-server/app/helpers.php

273 lines
6.7 KiB
PHP
Raw Normal View History

<?php
2016-09-14 22:44:30 +08:00
use Illuminate\Support\Str;
use Illuminate\Support\Arr;
2016-09-14 22:44:30 +08:00
if (! function_exists('get_real_ip')) {
function get_real_ip()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
}
if (! function_exists('get_base_url')) {
function get_base_url()
{
$base_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? "https://" : "http://";
$base_url .= $_SERVER["SERVER_NAME"];
$base_url .= ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
return $base_url;
}
}
if (! function_exists('get_current_url')) {
function get_current_url()
{
return get_base_url().$_SERVER["REQUEST_URI"];
}
}
2016-09-05 22:18:34 +08:00
if (! function_exists('avatar')) {
function avatar(App\Models\User $user, $size)
{
$fname = base64_encode($user->email).".png";
if (Option::get('avatar_query_string') == "1") {
$fname .= '?v='.$user->getAvatarId();
}
return url("avatar/$size/$fname");
}
}
if (! function_exists('assets')) {
function assets($relative_uri)
{
// add query string to fresh cache
2016-09-14 22:44:30 +08:00
if (Str::startsWith($relative_uri, 'css') || Str::startsWith($relative_uri, 'js')) {
2016-09-25 00:03:07 +08:00
return url("resources/assets/dist/$relative_uri")."?v=".config('app.version');
} elseif (Str::startsWith($relative_uri, 'lang')) {
2016-09-14 22:44:30 +08:00
return url("resources/$relative_uri");
2016-09-25 00:03:07 +08:00
} else {
return url("resources/assets/$relative_uri");
2016-09-14 22:44:30 +08:00
}
2016-09-05 22:18:34 +08:00
}
}
2016-09-10 21:39:45 +08:00
if (! function_exists('json')) {
function json()
{
$args = func_get_args();
if (count($args) == 1 && is_array($args[0])) {
return Response::json($args[0]);
} elseif (count($args) == 3 && is_array($args[2])) {
// the third argument is array of extra fields
return Response::json(array_merge([
2016-09-10 21:39:45 +08:00
'errno' => $args[1],
'msg' => $args[0]
], $args[2]));
} else {
return Response::json([
'errno' => Arr::get($args, 1, 1),
'msg' => $args[0]
2016-09-10 21:39:45 +08:00
]);
}
}
}
if (! function_exists('bs_footer')) {
function bs_footer($page_identification = "")
{
$scripts = [
assets('js/app.min.js'),
assets('lang/'.session('locale', config('app.locale')).'/locale.js'),
assets('js/general.js')
];
if ($page_identification !== "") {
$scripts[] = assets("js/$page_identification.js");
}
foreach ($scripts as $script) {
echo "<script type=\"text/javascript\" src=\"$script\"></script>";
}
2016-09-28 13:03:33 +08:00
if (Session::has('msg')) {
echo "<script>toastr.info('".Session::pull('msg')."');</script>";
}
echo '<script>'.Option::get("custom_js").'</script>';
}
}
if (! function_exists('bs_header')) {
function bs_header($page_identification = "")
{
$styles = [
assets('css/app.min.css'),
assets('vendor/skins/'.Option::get('color_scheme').'.min.css')
];
if ($page_identification !== "") {
$styles[] = assets("css/$page_identification.css");
}
foreach ($styles as $style) {
echo "<link rel=\"stylesheet\" href=\"$style\">";
}
echo '<style>'.Option::get("custom_css").'</style>';
}
}
if (! function_exists('bs_menu')) {
2016-09-30 17:00:41 +08:00
function bs_menu($type)
{
$menu = require BASE_DIR."/config/menu.php";
2016-10-25 22:47:50 +08:00
event(new App\Events\ConfigureUserMenu($menu));
if (!isset($menu[$type])) {
throw new InvalidArgumentException;
}
2016-09-30 17:00:41 +08:00
$request = App::make('request');
2016-09-30 17:00:41 +08:00
foreach ($menu[$type] as $key => $value) {
echo ($request->is($value['link'])) ? '<li class="active">' : '<li>';
2016-09-30 17:00:41 +08:00
echo '<a href="'.url($value['link']).'"><i class="fa '.$value['icon'].'"></i> <span>'.trans($value['title']).'</span></a></li>';
}
}
}
if (! function_exists('bs_copyright')) {
function bs_copyright()
{
return Utils::getStringReplaced(Option::get('copyright_text'), ['{site_name}' => Option::get('site_name'), '{site_url}' => Option::get('site_url')]);
}
}
if (! function_exists('bs_nickname')) {
function bs_nickname(\App\Models\User $user)
{
return ($user->getNickName() == '') ? $user->email : $user->getNickName();
}
}
if (! function_exists('option')) {
function option($key)
{
return Option::get($key);
}
}
2016-09-27 22:35:04 +08:00
if (! function_exists('menv')) {
/**
* Gets the value of an environment variable by getenv() or $_ENV.
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function menv($key, $default = null)
{
2016-09-28 13:03:33 +08:00
if (function_exists('putenv') && function_exists('getenv')) {
2016-09-27 22:35:04 +08:00
// try to read by getenv()
$value = getenv($key);
if ($value === false) {
return value($default);
}
} else {
// try to read from $_ENV or $_SERVER
if (isset($_ENV[$key])) {
$value = $_ENV[$key];
} elseif (isset($_SERVER[$key])) {
$value = $_SERVER[$key];
} else {
return value($default);
}
}
switch (strtolower($value)) {
case 'true':
case '(true)':
return true;
case 'false':
case '(false)':
return false;
case 'empty':
case '(empty)':
return '';
case 'null':
case '(null)':
return;
}
if (strlen($value) > 1 && Str::startsWith($value, '"') && Str::endsWith($value, '"')) {
return substr($value, 1, -1);
}
return $value;
}
}
2016-10-02 20:30:27 +08:00
if (! function_exists('validate')) {
function validate($value, $type)
{
switch ($type) {
case 'email':
return (bool) filter_var($value, FILTER_VALIDATE_EMAIL);
break;
default:
# code...
break;
}
}
}
2016-10-23 11:41:52 +08:00
if (! function_exists('delete_cookies')) {
function delete_cookies()
{
Cookie::queue(Cookie::forget('uid'));
Cookie::queue(Cookie::forget('token'));
}
}
if (! function_exists('delete_sessions')) {
function delete_sessions()
{
Session::forget('uid');
Session::forget('token');
Session::save();
}
}