mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-27 04:57:39 +08:00
1.重命名kg_img_url
2.调整错误页 3.模拟topic数据
This commit is contained in:
parent
ab73ac4055
commit
0342331d89
@ -84,12 +84,12 @@ class CommentList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -55,12 +55,12 @@ class ConsultList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ class Course extends Builder
|
||||
*/
|
||||
public function handleCourse(CourseModel $course)
|
||||
{
|
||||
$course->cover = kg_img_url($course->cover);
|
||||
$course->cover = kg_ci_img_url($course->cover);
|
||||
|
||||
return $course;
|
||||
}
|
||||
|
@ -44,12 +44,12 @@ class CourseFavoriteList extends Builder
|
||||
|
||||
$courses = $courseRepo->findByIds($ids, $columns);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($courses->toArray() as $course) {
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
$course['attrs'] = json_decode($course['attrs'], true);
|
||||
$result[$course['id']] = $course;
|
||||
}
|
||||
@ -65,12 +65,12 @@ class CourseFavoriteList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -11,14 +11,14 @@ class CourseList extends Builder
|
||||
|
||||
public function handleCourses($courses)
|
||||
{
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$list = [];
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course['categories'] = [];
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
$course['attrs'] = json_decode($course['attrs'], true);
|
||||
|
||||
$result[] = [
|
||||
@ -111,12 +111,12 @@ class CourseList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -44,12 +44,12 @@ class CourseUserList extends Builder
|
||||
|
||||
$courses = $courseRepo->findByIds($ids, $columns);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($courses->toArray() as $course) {
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
$course['attrs'] = json_decode($course['attrs'], true);
|
||||
$result[$course['id']] = $course;
|
||||
}
|
||||
@ -65,12 +65,12 @@ class CourseUserList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -8,11 +8,11 @@ use App\Repos\User as UserRepo;
|
||||
class OrderList extends Builder
|
||||
{
|
||||
|
||||
protected $imgBaseUrl;
|
||||
protected $baseUrl;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->imgBaseUrl = kg_img_base_url();
|
||||
$this->imgBaseUrl = kg_ci_base_url();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,12 +55,12 @@ class ReviewList extends Builder
|
||||
|
||||
$users = $userRepo->findByIds($ids, ['id', 'name', 'avatar']);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($users->toArray() as $user) {
|
||||
$user['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$user['avatar'] = $baseUrl . $user['avatar'];
|
||||
$result[$user['id']] = $user;
|
||||
}
|
||||
|
||||
|
@ -7,10 +7,10 @@ class SlideList extends Builder
|
||||
|
||||
public function handleSlides($slides)
|
||||
{
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($slides as $key => $slide) {
|
||||
$slides[$key]['cover'] = $imgBaseUrl . $slide['cover'];
|
||||
$slides[$key]['cover'] = $baseUrl . $slide['cover'];
|
||||
}
|
||||
|
||||
return $slides;
|
||||
|
@ -13,7 +13,7 @@ class User extends Builder
|
||||
*/
|
||||
public function handleUser(UserModel $user)
|
||||
{
|
||||
$user->avatar = kg_img_url($user->avatar);
|
||||
$user->avatar = kg_ci_img_url($user->avatar);
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
@ -10,10 +10,10 @@ class UserList extends Builder
|
||||
|
||||
public function handleUsers($users)
|
||||
{
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($users as $key => $user) {
|
||||
$users[$key]['avatar'] = $imgBaseUrl . $user['avatar'];
|
||||
$users[$key]['avatar'] = $baseUrl . $user['avatar'];
|
||||
}
|
||||
|
||||
return $users;
|
||||
|
@ -4,6 +4,7 @@ namespace App\Caches;
|
||||
|
||||
use Phalcon\Cache\Backend\Redis as RedisCache;
|
||||
use Phalcon\Mvc\User\Component;
|
||||
use Yansongda\Supports\Collection;
|
||||
|
||||
abstract class Cache extends Component
|
||||
{
|
||||
@ -28,8 +29,6 @@ abstract class Cache extends Component
|
||||
{
|
||||
$key = $this->getKey($id);
|
||||
|
||||
$content = $this->cache->get($key);
|
||||
|
||||
if (!$this->cache->exists($key)) {
|
||||
|
||||
$content = $this->getContent($id);
|
||||
@ -41,9 +40,14 @@ abstract class Cache extends Component
|
||||
|
||||
$this->cache->save($key, $content, $lifetime);
|
||||
|
||||
} else {
|
||||
$content = $this->cache->get($key);
|
||||
}
|
||||
|
||||
if (is_array($content)) {
|
||||
$content = new Collection($content);
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ class Course extends Cache
|
||||
|
||||
$course = $courseRepo->findById($id);
|
||||
|
||||
$course->cover = kg_img_url($course->cover);
|
||||
$course->cover = kg_ci_img_url($course->cover);
|
||||
|
||||
if (!$course) {
|
||||
return new \stdClass();
|
||||
|
@ -66,11 +66,11 @@ class CoursePackageList extends Cache
|
||||
|
||||
$result = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course->cover = $imgBaseUrl . $course->cover;
|
||||
$course->cover = $baseUrl . $course->cover;
|
||||
|
||||
$result[] = [
|
||||
'id' => $course->id,
|
||||
|
@ -41,11 +41,11 @@ class CourseRelatedList extends Cache
|
||||
{
|
||||
$result = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course->cover = $imgBaseUrl . $course->cover;
|
||||
$course->cover = $baseUrl . $course->cover;
|
||||
|
||||
$result[] = [
|
||||
'id' => $course->id,
|
||||
|
@ -41,11 +41,11 @@ class CourseTeacherList extends Cache
|
||||
{
|
||||
$result = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($users as $user) {
|
||||
|
||||
$user->avatar = $imgBaseUrl . $user->avatar;
|
||||
$user->avatar = $baseUrl . $user->avatar;
|
||||
|
||||
$result[] = [
|
||||
'id' => $user->id,
|
||||
|
@ -40,11 +40,11 @@ class LatestCourseList extends Cache
|
||||
{
|
||||
$result = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course->cover = $imgBaseUrl . $course->cover;
|
||||
$course->cover = $baseUrl . $course->cover;
|
||||
|
||||
$result[] = [
|
||||
'id' => $course->id,
|
||||
|
@ -11,11 +11,11 @@
|
||||
<label class="layui-form-label">封面</label>
|
||||
<div class="layui-input-inline">
|
||||
{% if course.cover %}
|
||||
<img id="cover-img" class="kg-cover" src="{{ img_url(course.cover) }}">
|
||||
<img id="cover-img" class="kg-cover" src="{{ ci_img(course.cover) }}">
|
||||
{% else %}
|
||||
<img id="cover-img" class="kg-cover" src="{{ image('admin/img/default_cover.png') }}">
|
||||
{% endif %}
|
||||
<input type="hidden" name="cover" value="{{ img_url(course.cover) }}">
|
||||
<input type="hidden" name="cover" value="{{ ci_img(course.cover) }}">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="padding-top:35px;">
|
||||
<a href="javascript:" class="layui-btn layui-btn-sm" id="choose-cover">编辑</a>
|
||||
|
@ -18,12 +18,14 @@
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col width="12%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
<th>标题</th>
|
||||
<th>创建时间</th>
|
||||
<th>更新时间</th>
|
||||
<th>排序</th>
|
||||
<th>发布</th>
|
||||
@ -35,6 +37,7 @@
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.title }}</td>
|
||||
<td>{{ date('Y-m-d H:i',item.create_time) }}</td>
|
||||
<td>{{ date('Y-m-d H:i',item.update_time) }}</td>
|
||||
<td><input class="layui-input kg-priority-input" type="text" name="priority" value="{{ item.priority }}" help-id="{{ item.id }}" title="数值越小排序越靠前"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="switch-published" help-id="{{ item.id }}" {% if item.published == 1 %}checked{% endif %}>
|
||||
|
@ -6,6 +6,7 @@
|
||||
<meta name="csrf-token-key" content="{{ security.getTokenKey() }}">
|
||||
<meta name="csrf-token-value" content="{{ security.getTokenValue() }}">
|
||||
<title>管理后台</title>
|
||||
{{ icon_link("favicon.ico") }}
|
||||
{{ css_link('lib/layui/css/layui.css') }}
|
||||
{{ css_link('lib/layui/extends/dropdown.css') }}
|
||||
{{ css_link('admin/css/style.css') }}
|
||||
|
@ -18,11 +18,11 @@
|
||||
<label class="layui-form-label">封面</label>
|
||||
<div class="layui-input-inline">
|
||||
{% if slide.cover %}
|
||||
<img id="cover-img" class="kg-cover" src="{{ img_url(slide.cover) }}">
|
||||
<img id="cover-img" class="kg-cover" src="{{ ci_img(slide.cover) }}">
|
||||
{% else %}
|
||||
<img id="cover-img" class="kg-cover" src="{{ image('admin/img/default_cover.png') }}">
|
||||
{% endif %}
|
||||
<input type="hidden" name="cover" value="{{ img_url(slide.cover) }}">
|
||||
<input type="hidden" name="cover" value="{{ ci_img(slide.cover) }}">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="padding-top:35px;">
|
||||
<a href="javascript:" class="layui-btn layui-btn-sm" id="choose-cover">编辑</a>
|
||||
|
@ -63,7 +63,10 @@
|
||||
<p>时长:{{ item.duration|total_duration }}</p>
|
||||
</td>
|
||||
<td>{{ source_type_info(item.source_type) }}</td>
|
||||
<td>{{ date('Y-m-d H:i',item.expiry_time) }}</td>
|
||||
<td>
|
||||
<p>开始:{{ date('Y-m-d H:i',item.create_time) }}</p>
|
||||
<p>结束:{{ date('Y-m-d H:i',item.expiry_time) }}</p>
|
||||
</td>
|
||||
<td align="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
|
@ -17,6 +17,8 @@
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col width="12%">
|
||||
</colgroup>
|
||||
<thead>
|
||||
@ -24,6 +26,8 @@
|
||||
<th>编号</th>
|
||||
<th>标题</th>
|
||||
<th>课程数</th>
|
||||
<th>创建时间</th>
|
||||
<th>更新时间</th>
|
||||
<th>发布</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
@ -34,6 +38,8 @@
|
||||
<td>{{ item.id }}</td>
|
||||
<td><a href="{{ url({'for':'admin.topic.edit','id':item.id}) }}">{{ item.title }}</a></td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.course_count }}</span></td>
|
||||
<td>{{ date('Y-m-d H:i',item.create_time) }}</td>
|
||||
<td>{{ date('Y-m-d H:i',item.update_time) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="switch-published" topic-id="{{ item.id }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td align="center">
|
||||
<div class="layui-dropdown">
|
||||
|
@ -38,8 +38,8 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
{
|
||||
$this->view->setVar('auth_user', $this->authUser);
|
||||
$this->view->setVar('site_settings', $this->siteSettings);
|
||||
$this->view->setVar('top_nav_list', $this->navList['top']);
|
||||
$this->view->setVar('btm_nav_list', $this->navList['bottom']);
|
||||
$this->view->setVar('top_nav_list', $this->navList->top);
|
||||
$this->view->setVar('btm_nav_list', $this->navList->bottom);
|
||||
}
|
||||
|
||||
protected function getAuthUser()
|
||||
@ -54,16 +54,16 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
|
||||
protected function getNavList()
|
||||
{
|
||||
$treeListCache = new NavTreeListCache();
|
||||
$cache = new NavTreeListCache();
|
||||
|
||||
return $treeListCache->get();
|
||||
return $cache->get();
|
||||
}
|
||||
|
||||
protected function getSiteSettings()
|
||||
{
|
||||
$settingCache = new SettingCache();
|
||||
$cache = new SettingCache();
|
||||
|
||||
return $settingCache->get('site');
|
||||
return $cache->get('site');
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
|
||||
public function initialize()
|
||||
{
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->setRenderLevel(View::LEVEL_LAYOUT);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,7 +5,7 @@ namespace App\Http\Web\Controllers;
|
||||
use App\Models\ContentImage as ContentImageModel;
|
||||
use App\Services\Storage as StorageService;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use PHPQRCode\QRcode;
|
||||
use PHPQRCode\QRcode as PHPQRCode;
|
||||
|
||||
class PublicController extends \Phalcon\Mvc\Controller
|
||||
{
|
||||
@ -44,7 +44,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
|
||||
$url = urldecode($text);
|
||||
|
||||
QRcode::png($url, false, $level, $size);
|
||||
PHPQRcode::png($url, false, $level, $size);
|
||||
|
||||
$this->response->send();
|
||||
|
||||
|
@ -1,3 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<h1>page 400</h1>
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">4</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">0</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -1,3 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<h1>page 401</h1>
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">4</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">1</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<h1>page 403</h1>
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">4</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">3</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<h1>page 404</h1>
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">4</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">4</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<h1>page 500</h1>
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">5</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">0</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
14
app/Http/Web/Views/error/show503.volt
Normal file
14
app/Http/Web/Views/error/show503.volt
Normal file
@ -0,0 +1,14 @@
|
||||
{{ flashSession.output() }}
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="kg-tips">
|
||||
<i class="layui-icon layui-icon-face-surprised"></i>
|
||||
<div class="layui-text">
|
||||
<h1>
|
||||
<span class="layui-anim layui-anim-loop">5</span>
|
||||
<span class="layui-anim layui-anim-loop layui-anim-rotate">0</span>
|
||||
<span class="layui-anim layui-anim-loop">3</span>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -1,18 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>Phalcon</title>
|
||||
<title>{{ site_settings.title }}</title>
|
||||
{{ icon_link("favicon.ico") }}
|
||||
{{ css_link("lib/layui/css/layui.css") }}
|
||||
{{ js_include("lib/layui/layui.js") }}
|
||||
</head>
|
||||
|
||||
<body class="layui-layout-body">
|
||||
|
||||
{{ content() }}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
15
app/Http/Web/Views/layouts/error.volt
Normal file
15
app/Http/Web/Views/layouts/error.volt
Normal file
@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>出错啦</title>
|
||||
{{ icon_link("favicon.ico") }}
|
||||
{{ css_link("lib/layui/css/layui.css") }}
|
||||
{{ css_link("web/css/style.css") }}
|
||||
{{ js_include("lib/layui/layui.js") }}
|
||||
</head>
|
||||
<body class="layui-layout-body">
|
||||
{{ content() }}
|
||||
</body>
|
||||
</html>
|
@ -150,11 +150,11 @@ function kg_site_base_url()
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图片基准URL
|
||||
* 获取数据万象基准URL
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function kg_img_base_url()
|
||||
function kg_ci_base_url()
|
||||
{
|
||||
$storage = new StorageService();
|
||||
|
||||
@ -162,14 +162,14 @@ function kg_img_base_url()
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取图片URL
|
||||
* 获取数据万象图片URL
|
||||
*
|
||||
* @param string $path
|
||||
* @param int $width
|
||||
* @param int $height
|
||||
* @return string
|
||||
*/
|
||||
function kg_img_url($path, $width = 0, $height = 0)
|
||||
function kg_ci_img_url($path, $width = 0, $height = 0)
|
||||
{
|
||||
$storage = new StorageService();
|
||||
|
||||
@ -275,6 +275,21 @@ function kg_can($route = null)
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造icon路径
|
||||
*
|
||||
* @param $path
|
||||
* @param bool $local
|
||||
* @param string $version
|
||||
* @return string
|
||||
*/
|
||||
function kg_icon_link($path, $local = true, $version = null)
|
||||
{
|
||||
$href = kg_static_url($path, $local, $version);
|
||||
|
||||
return '<link rel="shortcut icon" href="' . $href . '" />' . PHP_EOL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造css路径
|
||||
*
|
||||
@ -285,16 +300,7 @@ function kg_can($route = null)
|
||||
*/
|
||||
function kg_css_link($path, $local = true, $version = null)
|
||||
{
|
||||
$config = Di::getDefault()->getShared('config');
|
||||
|
||||
$baseUri = rtrim($config->static_base_uri, '/');
|
||||
$path = ltrim($path, '/');
|
||||
$href = $local ? $baseUri . '/' . $path : $path;
|
||||
$version = $version ? $version : $config->static_version;
|
||||
|
||||
if ($version) {
|
||||
$href .= '?v=' . $version;
|
||||
}
|
||||
$href = kg_static_url($path, $local, $version);
|
||||
|
||||
return '<link rel="stylesheet" type="text/css" href="' . $href . '" />' . PHP_EOL;
|
||||
}
|
||||
@ -308,17 +314,32 @@ function kg_css_link($path, $local = true, $version = null)
|
||||
* @return string
|
||||
*/
|
||||
function kg_js_include($path, $local = true, $version = null)
|
||||
{
|
||||
$src = kg_static_url($path, $local, $version);
|
||||
|
||||
return '<script type="text/javascript" src="' . $src . '"></script>' . PHP_EOL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造静态url
|
||||
*
|
||||
* @param $path
|
||||
* @param bool $local
|
||||
* @param string $version
|
||||
* @return string
|
||||
*/
|
||||
function kg_static_url($path, $local = true, $version = null)
|
||||
{
|
||||
$config = Di::getDefault()->getShared('config');
|
||||
|
||||
$baseUri = rtrim($config->static_base_uri, '/');
|
||||
$path = ltrim($path, '/');
|
||||
$src = $local ? $baseUri . '/' . $path : $path;
|
||||
$url = $local ? $baseUri . '/' . $path : $path;
|
||||
$version = $version ? $version : $config->static_version;
|
||||
|
||||
if ($version) {
|
||||
$src .= '?v=' . $version;
|
||||
$url .= '?v=' . $version;
|
||||
}
|
||||
|
||||
return '<script type="text/javascript" src="' . $src . '"></script>' . PHP_EOL;
|
||||
return $url;
|
||||
}
|
||||
|
@ -22,6 +22,10 @@ class Volt extends Provider
|
||||
|
||||
$compiler = $volt->getCompiler();
|
||||
|
||||
$compiler->addFunction('icon_link', function ($resolvedArgs) {
|
||||
return 'kg_icon_link(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
||||
$compiler->addFunction('css_link', function ($resolvedArgs) {
|
||||
return 'kg_css_link(' . $resolvedArgs . ')';
|
||||
});
|
||||
@ -30,6 +34,10 @@ class Volt extends Provider
|
||||
return 'kg_js_include(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
||||
$compiler->addFunction('ci_img', function ($resolvedArgs) {
|
||||
return 'kg_ci_img_url(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
||||
$compiler->addFunction('substr', function ($resolvedArgs) {
|
||||
return 'kg_substr(' . $resolvedArgs . ')';
|
||||
});
|
||||
@ -38,10 +46,6 @@ class Volt extends Provider
|
||||
return 'kg_can(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
||||
$compiler->addFunction('img_url', function ($resolvedArgs) {
|
||||
return 'kg_img_url(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
||||
$compiler->addFilter('array_object', function ($resolvedArgs) {
|
||||
return 'kg_array_object(' . $resolvedArgs . ')';
|
||||
});
|
||||
|
@ -74,7 +74,7 @@ class CourseInfo extends Service
|
||||
$result = [
|
||||
'id' => $course->id,
|
||||
'title' => $course->title,
|
||||
'cover' => kg_img_url($course->cover),
|
||||
'cover' => kg_ci_img_url($course->cover),
|
||||
'summary' => $course->summary,
|
||||
'details' => $course->details,
|
||||
'keywords' => $course->keywords,
|
||||
|
@ -49,11 +49,11 @@ class CourseList extends Service
|
||||
|
||||
$items = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
|
||||
$items[] = [
|
||||
'id' => $course['id'],
|
||||
|
@ -23,10 +23,10 @@ class CourseRelated extends Service
|
||||
return [];
|
||||
}
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as &$course) {
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
}
|
||||
|
||||
return $courses;
|
||||
|
@ -60,11 +60,11 @@ class PackageList extends Service
|
||||
|
||||
$result = [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course->cover = $imgBaseUrl . $course->cover;
|
||||
$course->cover = $baseUrl . $course->cover;
|
||||
|
||||
$result[] = [
|
||||
'id' => $course->id,
|
||||
|
@ -21,10 +21,10 @@ class TeacherList extends Service
|
||||
|
||||
if (!$teachers) return [];
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($teachers as &$teacher) {
|
||||
$teacher['avatar'] = $imgBaseUrl . $teacher['avatar'];
|
||||
$teacher['avatar'] = $baseUrl . $teacher['avatar'];
|
||||
}
|
||||
|
||||
return $teachers;
|
||||
|
@ -60,7 +60,7 @@ class OrderConfirm extends Service
|
||||
|
||||
$course = $courseRepo->findById($id);
|
||||
|
||||
$course->cover = kg_img_url($course->cover);
|
||||
$course->cover = kg_ci_img_url($course->cover);
|
||||
|
||||
$result = [
|
||||
'id' => $course->id,
|
||||
@ -97,11 +97,11 @@ class OrderConfirm extends Service
|
||||
*/
|
||||
$courses = $packageRepo->findCourses($id);
|
||||
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($courses as $course) {
|
||||
|
||||
$course->cover = $imgBaseUrl . $course->cover;
|
||||
$course->cover = $baseUrl . $course->cover;
|
||||
|
||||
$result['courses'][] = [
|
||||
'id' => $course->id,
|
||||
|
@ -75,7 +75,7 @@ class OrderInfo extends Service
|
||||
*/
|
||||
protected function handleCourseInfo($itemInfo)
|
||||
{
|
||||
$itemInfo['course']['cover'] = kg_img_url($itemInfo['course']['cover']);
|
||||
$itemInfo['course']['cover'] = kg_ci_img_url($itemInfo['course']['cover']);
|
||||
|
||||
return $itemInfo;
|
||||
}
|
||||
@ -86,10 +86,10 @@ class OrderInfo extends Service
|
||||
*/
|
||||
protected function handlePackageInfo($itemInfo)
|
||||
{
|
||||
$imgBaseUrl = kg_img_base_url();
|
||||
$baseUrl = kg_ci_base_url();
|
||||
|
||||
foreach ($itemInfo['package']['courses'] as &$course) {
|
||||
$course['cover'] = $imgBaseUrl . $course['cover'];
|
||||
$course['cover'] = $baseUrl . $course['cover'];
|
||||
}
|
||||
|
||||
return $itemInfo;
|
||||
|
@ -24,7 +24,7 @@ class TeacherInfo extends Service
|
||||
*/
|
||||
protected function handleUser($user)
|
||||
{
|
||||
$user->avatar = kg_img_url($user->avatar);
|
||||
$user->avatar = kg_ci_img_url($user->avatar);
|
||||
$user->vip = $user->vip == 1;
|
||||
$user->locked = $user->locked == 1;
|
||||
|
||||
|
@ -24,7 +24,7 @@ class UserInfo extends Service
|
||||
*/
|
||||
protected function handleUser($user)
|
||||
{
|
||||
$user->avatar = kg_img_url($user->avatar);
|
||||
$user->avatar = kg_ci_img_url($user->avatar);
|
||||
$user->vip = $user->vip == 1;
|
||||
$user->locked = $user->locked == 1;
|
||||
|
||||
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
27
public/static/web/css/style.css
Normal file
27
public/static/web/css/style.css
Normal file
@ -0,0 +1,27 @@
|
||||
.kg-tips {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.kg-tips .layui-icon-face-surprised {
|
||||
display: inline-block;
|
||||
font-size: 200px;
|
||||
color: #393D49;
|
||||
}
|
||||
|
||||
.kg-tips .layui-text {
|
||||
width: 500px;
|
||||
margin: 30px auto;
|
||||
padding-top: 20px;
|
||||
border-top: 5px solid #009688;
|
||||
}
|
||||
|
||||
.kg-tips h1 {
|
||||
font-size: 100px;
|
||||
line-height: 100px;
|
||||
color: #009688;
|
||||
}
|
||||
|
||||
.kg-tips .layui-text span {
|
||||
display: inline-block;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user