mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-27 21:10:24 +08:00
优化命名
This commit is contained in:
parent
970f2b8903
commit
cddbc08c0b
63
README.md
63
README.md
@ -4,14 +4,20 @@
|
||||
|
||||
酷瓜云课堂,依托腾讯云基础服务架构,采用 C 扩展框架 Phalcon 开发,致力网络教育软件。
|
||||
|
||||
#### 系统功能
|
||||
|
||||
都有些什么功能?我也不想写一大堆,自己体验吧!
|
||||
|
||||
- [前台演示](https://ctc.koogua.com)
|
||||
- [后台演示](https://ctc.koogua.com/admin)
|
||||
|
||||
> 帐号:100015@163.com / 123456 (前后台通用)
|
||||
帐号:100015@163.com / 123456 (前后台通用,请不要修改密码)
|
||||
|
||||
PS:**管理后台已禁止提交并隐藏私人配置**
|
||||
友情提示:
|
||||
|
||||
- 系统配置低(1核 1G 1M 跑多个容器),手下留情
|
||||
- 课程数据来源于网络(无实质内容),切莫购买
|
||||
- 管理后台已禁止提交(私密配置已过滤)
|
||||
|
||||
#### 项目组件
|
||||
|
||||
@ -32,32 +38,7 @@ PS:**管理后台已禁止提交并隐藏私人配置**
|
||||
#### 安装指南
|
||||
|
||||
- [运行环境搭建](https://gitee.com/koogua/course-tencent-cloud-docker)
|
||||
- [系统服务配置](https://gitee.com/koogua/course-tencent-cloud/wikis/服务配置)
|
||||
|
||||
#### 会推出商业服务吗?
|
||||
|
||||
- 如果不符合您对“开源”的认知,请移步其它同类产品,毕竟同类“免费”产品也很多。
|
||||
- 如果使用协议不能满足您的需求,或者您希望有更好的支持,商业服务是不错的选择。
|
||||
|
||||
我们为用户提供的服务包括:
|
||||
|
||||
- 系统安装
|
||||
- 系统定制
|
||||
- 企业会员
|
||||
|
||||
#### 会有阿里云版吗?
|
||||
|
||||
阿里云版规划中,之前阿里云服务过期未续费,所以腾讯云版本先出。
|
||||
|
||||
#### 代码有加密吗?
|
||||
|
||||
所有代码都公开(授权代码除外,例如layim),没有所谓的商业版和付费插件。
|
||||
|
||||
#### 通过这个项目能学到什么?
|
||||
|
||||
1. 项目规划,phalcon实战,缓存,JWT,即时通讯,全文检索
|
||||
2. docker,supervisor,devops
|
||||
3. git,linux,php,mysql,redis,nginx
|
||||
- [系统服务配置](https://gitee.com/koogua/course-tencent-cloud/wikis)
|
||||
|
||||
#### 开发计划
|
||||
|
||||
@ -73,7 +54,29 @@ PS:**管理后台已禁止提交并隐藏私人配置**
|
||||
|
||||
#### 加入我们
|
||||
|
||||
这是我的创业项目,个人能力和精力有限,要兼顾产品规划以及开发,还要处理很多琐碎事情。
|
||||
目前在南山科技园某个众创空间,希望有 **深圳前端同学** 加入我们。
|
||||
这是一个创业项目,个人能力和精力有限,要兼顾产品规划以及开发,还要处理很多琐碎事情。目前在南山科技园某个众创空间,希望有 **深圳前端同学** 加入我们。
|
||||
|
||||
联系邮箱:76632555@qq.com
|
||||
|
||||
#### 通过这个项目能学到什么?
|
||||
|
||||
- 项目规划,phalcon,缓存,JWT,即时通讯,全文检索
|
||||
- docker,supervisor,devops
|
||||
- git,linux,php,mysql,redis,nginx
|
||||
|
||||
#### 有阿里云版吗?
|
||||
|
||||
阿里云版规划中,之前阿里云服务过期未续费,所以腾讯云版本先出。
|
||||
|
||||
#### 代码有加密吗?
|
||||
|
||||
所有代码都公开(授权代码除外,例如layim),没有所谓的商业版和付费插件。
|
||||
|
||||
#### 有商业服务吗?
|
||||
|
||||
生存是一个问题,生存才能发展,我们为用户提供的服务包括:
|
||||
|
||||
- 系统安装
|
||||
- 系统定制
|
||||
- 企业授权
|
||||
|
||||
|
@ -1,72 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Caches;
|
||||
|
||||
use App\Models\Carousel as CarouselModel;
|
||||
use Phalcon\Mvc\Model\Resultset;
|
||||
use Phalcon\Mvc\Model\ResultsetInterface;
|
||||
|
||||
class IndexCarouselList extends Cache
|
||||
{
|
||||
|
||||
protected $lifetime = 365 * 86400;
|
||||
|
||||
public function getLifetime()
|
||||
{
|
||||
return $this->lifetime;
|
||||
}
|
||||
|
||||
public function getKey($id = null)
|
||||
{
|
||||
return 'index_carousel_list';
|
||||
}
|
||||
|
||||
public function getContent($id = null)
|
||||
{
|
||||
$limit = 5;
|
||||
|
||||
$carousels = $this->findCarousels($limit);
|
||||
|
||||
if ($carousels->count() == 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->handleContent($carousels);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param CarouselModel[] $carousels
|
||||
* @return array
|
||||
*/
|
||||
protected function handleContent($carousels)
|
||||
{
|
||||
$result = [];
|
||||
|
||||
foreach ($carousels as $carousel) {
|
||||
$result[] = [
|
||||
'id' => $carousel->id,
|
||||
'title' => $carousel->title,
|
||||
'cover' => $carousel->cover,
|
||||
'style' => $carousel->style,
|
||||
'target' => $carousel->target,
|
||||
'content' => $carousel->content,
|
||||
];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $limit
|
||||
* @return ResultsetInterface|Resultset|CarouselModel[]
|
||||
*/
|
||||
public function findCarousels($limit = 5)
|
||||
{
|
||||
return CarouselModel::query()
|
||||
->where('published = 1')
|
||||
->orderBy('priority ASC')
|
||||
->limit($limit)
|
||||
->execute();
|
||||
}
|
||||
|
||||
}
|
71
app/Caches/IndexSlideList.php
Normal file
71
app/Caches/IndexSlideList.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Caches;
|
||||
|
||||
use App\Models\Slide as SlideModel;
|
||||
use Phalcon\Mvc\Model\Resultset;
|
||||
use Phalcon\Mvc\Model\ResultsetInterface;
|
||||
|
||||
class IndexSlideList extends Cache
|
||||
{
|
||||
|
||||
protected $lifetime = 365 * 86400;
|
||||
|
||||
public function getLifetime()
|
||||
{
|
||||
return $this->lifetime;
|
||||
}
|
||||
|
||||
public function getKey($id = null)
|
||||
{
|
||||
return 'index_slide_list';
|
||||
}
|
||||
|
||||
public function getContent($id = null)
|
||||
{
|
||||
$limit = 5;
|
||||
|
||||
$slides = $this->findSlides($limit);
|
||||
|
||||
if ($slides->count() == 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->handleContent($slides);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SlideModel[] $slides
|
||||
* @return array
|
||||
*/
|
||||
protected function handleContent($slides)
|
||||
{
|
||||
$result = [];
|
||||
|
||||
foreach ($slides as $slide) {
|
||||
$result[] = [
|
||||
'id' => $slide->id,
|
||||
'title' => $slide->title,
|
||||
'cover' => $slide->cover,
|
||||
'target' => $slide->target,
|
||||
'content' => $slide->content,
|
||||
];
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $limit
|
||||
* @return ResultsetInterface|Resultset|SlideModel[]
|
||||
*/
|
||||
public function findSlides($limit = 5)
|
||||
{
|
||||
return SlideModel::query()
|
||||
->where('published = 1')
|
||||
->orderBy('priority ASC')
|
||||
->limit($limit)
|
||||
->execute();
|
||||
}
|
||||
|
||||
}
|
@ -13,8 +13,8 @@ class CleanLogTask extends Task
|
||||
$this->cleanSqlLog();
|
||||
$this->cleanListenerLog();
|
||||
$this->cleanCaptchaLog();
|
||||
$this->cleanMailerLog();
|
||||
$this->cleanSmserLog();
|
||||
$this->cleanMailLog();
|
||||
$this->cleanSmsLog();
|
||||
$this->cleanVodLog();
|
||||
$this->cleanLiveLog();
|
||||
$this->cleanStorageLog();
|
||||
@ -99,17 +99,17 @@ class CleanLogTask extends Task
|
||||
/**
|
||||
* 清理短信服务日志
|
||||
*/
|
||||
protected function cleanSmserLog()
|
||||
protected function cleanSmsLog()
|
||||
{
|
||||
$this->cleanLog('smser', 7);
|
||||
$this->cleanLog('sms', 7);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理邮件服务日志
|
||||
*/
|
||||
protected function cleanMailerLog()
|
||||
protected function cleanMailLog()
|
||||
{
|
||||
$this->cleanLog('mailer', 7);
|
||||
$this->cleanLog('mail', 7);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,7 +9,7 @@ use App\Models\Task as TaskModel;
|
||||
use App\Models\Trade as TradeModel;
|
||||
use App\Repos\Order as OrderRepo;
|
||||
use App\Repos\User as UserRepo;
|
||||
use App\Services\Smser\Order as OrderSmser;
|
||||
use App\Services\Sms\Order as OrderSms;
|
||||
use Phalcon\Mvc\Model;
|
||||
use Phalcon\Mvc\Model\Resultset;
|
||||
use Phalcon\Mvc\Model\ResultsetInterface;
|
||||
@ -164,9 +164,9 @@ class DeliverTask extends Task
|
||||
|
||||
protected function handleOrderNotice(OrderModel $order)
|
||||
{
|
||||
$smser = new OrderSmser();
|
||||
$sms = new OrderSms();
|
||||
|
||||
$smser->handle($order);
|
||||
$sms->handle($order);
|
||||
}
|
||||
|
||||
protected function handleOrderRefund(OrderModel $order)
|
||||
|
@ -5,7 +5,7 @@ namespace App\Console\Tasks;
|
||||
use App\Models\CourseUser as CourseUserModel;
|
||||
use App\Repos\Chapter as ChapterRepo;
|
||||
use App\Services\LiveNotify as LiveNotifyService;
|
||||
use App\Services\Smser\Live as LiveSmser;
|
||||
use App\Services\Sms\Live as LiveSms;
|
||||
|
||||
class LiveNotifyTask extends Task
|
||||
{
|
||||
@ -53,10 +53,10 @@ class LiveNotifyTask extends Task
|
||||
|
||||
if (!$targetUserIds) return;
|
||||
|
||||
$smser = new LiveSmser();
|
||||
$sms = new LiveSms();
|
||||
|
||||
foreach ($targetUserIds as $userId) {
|
||||
$smser->handle($chapterId, $userId, $chapterLive->start_time);
|
||||
$sms->handle($chapterId, $userId, $chapterLive->start_time);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@ use App\Repos\Trade as TradeRepo;
|
||||
use App\Repos\User as UserRepo;
|
||||
use App\Services\Pay\Alipay as AlipayService;
|
||||
use App\Services\Pay\Wxpay as WxpayService;
|
||||
use App\Services\Smser\Refund as RefundSmser;
|
||||
use App\Services\Sms\Refund as RefundSms;
|
||||
use Phalcon\Mvc\Model\Resultset;
|
||||
use Phalcon\Mvc\Model\ResultsetInterface;
|
||||
|
||||
@ -283,9 +283,9 @@ class RefundTask extends Task
|
||||
*/
|
||||
protected function handleRefundNotice(RefundModel $refund)
|
||||
{
|
||||
$smser = new RefundSmser();
|
||||
$sms = new RefundSms();
|
||||
|
||||
$smser->handle($refund);
|
||||
$sms->handle($refund);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -49,7 +49,7 @@ class SiteMapTask extends Task
|
||||
{
|
||||
$service = new AppService();
|
||||
|
||||
$settings = $service->getSectionSettings('site');
|
||||
$settings = $service->getSettings('site');
|
||||
|
||||
return $settings['url'] ?? '';
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ namespace App\Console\Tasks;
|
||||
use App\Repos\Course as CourseRepo;
|
||||
use App\Services\Search\CourseDocument;
|
||||
use App\Services\Search\CourseSearcher;
|
||||
use App\Services\Syncer\CourseIndex as CourseIndexSyncer;
|
||||
use App\Services\Sync\CourseIndex as CourseIndexSync;
|
||||
|
||||
class SyncCourseIndexTask extends Task
|
||||
{
|
||||
@ -54,9 +54,9 @@ class SyncCourseIndexTask extends Task
|
||||
|
||||
protected function getSyncKey()
|
||||
{
|
||||
$syncer = new CourseIndexSyncer();
|
||||
$sync = new CourseIndexSync();
|
||||
|
||||
return $syncer->getSyncKey();
|
||||
return $sync->getSyncKey();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ namespace App\Console\Tasks;
|
||||
use App\Repos\ImGroup as GroupRepo;
|
||||
use App\Services\Search\GroupDocument;
|
||||
use App\Services\Search\GroupSearcher;
|
||||
use App\Services\Syncer\GroupIndex as GroupIndexSyncer;
|
||||
use App\Services\Sync\GroupIndex as GroupIndexSync;
|
||||
|
||||
class SyncGroupIndexTask extends Task
|
||||
{
|
||||
@ -54,9 +54,9 @@ class SyncGroupIndexTask extends Task
|
||||
|
||||
protected function getSyncKey()
|
||||
{
|
||||
$syncer = new GroupIndexSyncer();
|
||||
$sync = new GroupIndexSync();
|
||||
|
||||
return $syncer->getSyncKey();
|
||||
return $sync->getSyncKey();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ use App\Repos\ChapterUser as ChapterUserRepo;
|
||||
use App\Repos\Course as CourseRepo;
|
||||
use App\Repos\CourseUser as CourseUserRepo;
|
||||
use App\Repos\Learning as LearningRepo;
|
||||
use App\Services\Syncer\Learning as LearningSyncer;
|
||||
use App\Services\Sync\Learning as LearningSync;
|
||||
|
||||
class SyncLearningTask extends Task
|
||||
{
|
||||
@ -20,9 +20,9 @@ class SyncLearningTask extends Task
|
||||
|
||||
$redis = $this->getRedis();
|
||||
|
||||
$syncer = new LearningSyncer();
|
||||
$sync = new LearningSync();
|
||||
|
||||
$syncKey = $syncer->getSyncKey();
|
||||
$syncKey = $sync->getSyncKey();
|
||||
|
||||
$requestIds = $redis->sMembers($syncKey);
|
||||
|
||||
@ -30,7 +30,7 @@ class SyncLearningTask extends Task
|
||||
|
||||
foreach ($requestIds as $requestId) {
|
||||
|
||||
$itemKey = $syncer->getItemKey($requestId);
|
||||
$itemKey = $sync->getItemKey($requestId);
|
||||
|
||||
$this->handleLearning($itemKey);
|
||||
|
||||
|
@ -5,7 +5,7 @@ namespace App\Console\Tasks;
|
||||
use App\Repos\User as UserRepo;
|
||||
use App\Services\Search\UserDocument;
|
||||
use App\Services\Search\UserSearcher;
|
||||
use App\Services\Syncer\UserIndex as UserIndexSyncer;
|
||||
use App\Services\Sync\UserIndex as UserIndexSync;
|
||||
|
||||
class SyncUserIndexTask extends Task
|
||||
{
|
||||
@ -54,9 +54,9 @@ class SyncUserIndexTask extends Task
|
||||
|
||||
protected function getSyncKey()
|
||||
{
|
||||
$syncer = new UserIndexSyncer();
|
||||
$sync = new UserIndexSync();
|
||||
|
||||
return $syncer->getSyncKey();
|
||||
return $sync->getSyncKey();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,15 +44,15 @@ class ChapterController extends Controller
|
||||
$course = $courseService->getCourse($courseId);
|
||||
$chapters = $courseService->getChapters($courseId);
|
||||
|
||||
$this->view->pick('chapter/add_chapter');
|
||||
|
||||
if ($type == 'lesson') {
|
||||
$this->view->pick('chapter/add_lesson');
|
||||
}
|
||||
|
||||
$this->view->setVar('course', $course);
|
||||
$this->view->setVar('parent_id', $parentId);
|
||||
$this->view->setVar('chapters', $chapters);
|
||||
|
||||
if ($type == 'chapter') {
|
||||
$this->view->pick('chapter/add_chapter');
|
||||
} else {
|
||||
$this->view->pick('chapter/add_lesson');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -89,11 +89,12 @@ class ChapterController extends Controller
|
||||
$chapter = $chapterService->getChapter($id);
|
||||
$course = $courseService->getCourse($chapter->course_id);
|
||||
|
||||
$this->view->setVar('chapter', $chapter);
|
||||
$this->view->setVar('course', $course);
|
||||
$this->view->pick('chapter/edit_chapter');
|
||||
|
||||
if ($chapter->parent_id > 0) {
|
||||
|
||||
$this->view->pick('chapter/edit_lesson');
|
||||
|
||||
switch ($course->model) {
|
||||
case CourseModel::MODEL_VOD:
|
||||
$vod = $contentService->getChapterVod($chapter->id);
|
||||
@ -110,12 +111,10 @@ class ChapterController extends Controller
|
||||
$this->view->setVar('read', $read);
|
||||
break;
|
||||
}
|
||||
|
||||
$this->view->pick('chapter/edit_lesson');
|
||||
|
||||
} else {
|
||||
$this->view->pick('chapter/edit_chapter');
|
||||
}
|
||||
|
||||
$this->view->setVar('chapter', $chapter);
|
||||
$this->view->setVar('course', $course);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,7 +48,7 @@ class SessionController extends \Phalcon\Mvc\Controller
|
||||
|
||||
$settingService = new SettingService();
|
||||
|
||||
$captcha = $settingService->getSectionSettings('captcha');
|
||||
$captcha = $settingService->getSettings('captcha');
|
||||
|
||||
$this->view->pick('public/login');
|
||||
$this->view->setVar('app_info', $appInfo);
|
||||
|
@ -29,7 +29,7 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$site = $settingService->getSectionSettings($section);
|
||||
$site = $settingService->getSettings($section);
|
||||
|
||||
$site['url'] = $site['url'] ?: kg_site_url();
|
||||
|
||||
@ -56,7 +56,7 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$secret = $settingService->getSectionSettings($section);
|
||||
$secret = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('secret', $secret);
|
||||
}
|
||||
@ -81,7 +81,7 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$cos = $settingService->getSectionSettings($section);
|
||||
$cos = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('cos', $cos);
|
||||
}
|
||||
@ -106,7 +106,7 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$vod = $settingService->getSectionSettings($section);
|
||||
$vod = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('vod', $vod);
|
||||
}
|
||||
@ -169,11 +169,11 @@ class SettingController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/smser", name="admin.setting.smser")
|
||||
* @Route("/sms", name="admin.setting.sms")
|
||||
*/
|
||||
public function smserAction()
|
||||
public function smsAction()
|
||||
{
|
||||
$section = 'smser';
|
||||
$section = 'sms';
|
||||
|
||||
$settingService = new SettingService();
|
||||
|
||||
@ -181,24 +181,24 @@ class SettingController extends Controller
|
||||
|
||||
$data = $this->request->getPost();
|
||||
|
||||
$settingService->updateSmserSettings($section, $data);
|
||||
$settingService->updateSmsSettings($section, $data);
|
||||
|
||||
return $this->jsonSuccess(['msg' => '更新配置成功']);
|
||||
|
||||
} else {
|
||||
|
||||
$smser = $settingService->getSectionSettings($section);
|
||||
$sms = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('smser', $smser);
|
||||
$this->view->setVar('sms', $sms);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/mailer", name="admin.setting.mailer")
|
||||
* @Route("/mail", name="admin.setting.mail")
|
||||
*/
|
||||
public function mailerAction()
|
||||
public function mailAction()
|
||||
{
|
||||
$section = 'mailer';
|
||||
$section = 'mail';
|
||||
|
||||
$settingService = new SettingService();
|
||||
|
||||
@ -212,9 +212,9 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$mailer = $settingService->getSectionSettings($section);
|
||||
$mail = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('mailer', $mailer);
|
||||
$this->view->setVar('mail', $mail);
|
||||
}
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$captcha = $settingService->getSectionSettings($section);
|
||||
$captcha = $settingService->getSettings($section);
|
||||
|
||||
$this->view->setVar('captcha', $captcha);
|
||||
}
|
||||
@ -290,8 +290,8 @@ class SettingController extends Controller
|
||||
|
||||
} else {
|
||||
|
||||
$main = $settingService->getSectionSettings('im.main');
|
||||
$cs = $settingService->getSectionSettings('im.cs');
|
||||
$main = $settingService->getSettings('im.main');
|
||||
$cs = $settingService->getSettings('im.cs');
|
||||
|
||||
$this->view->setVar('main', $main);
|
||||
$this->view->setVar('cs', $cs);
|
||||
|
@ -2,28 +2,28 @@
|
||||
|
||||
namespace App\Http\Admin\Controllers;
|
||||
|
||||
use App\Http\Admin\Services\Carousel as CarouselService;
|
||||
use App\Http\Admin\Services\Slide as SlideService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/admin/carousel")
|
||||
* @RoutePrefix("/admin/slide")
|
||||
*/
|
||||
class CarouselController extends Controller
|
||||
class SlideController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/list", name="admin.carousel.list")
|
||||
* @Get("/list", name="admin.slide.list")
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$pager = $carouselService->getCarousels();
|
||||
$pager = $slideService->getSlides();
|
||||
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/add", name="admin.carousel.add")
|
||||
* @Get("/add", name="admin.slide.add")
|
||||
*/
|
||||
public function addAction()
|
||||
{
|
||||
@ -31,17 +31,17 @@ class CarouselController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="admin.carousel.create")
|
||||
* @Post("/create", name="admin.slide.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$carousel = $carouselService->createCarousel();
|
||||
$slide = $slideService->createSlide();
|
||||
|
||||
$location = $this->url->get([
|
||||
'for' => 'admin.carousel.edit',
|
||||
'id' => $carousel->id,
|
||||
'for' => 'admin.slide.edit',
|
||||
'id' => $slide->id,
|
||||
]);
|
||||
|
||||
$content = [
|
||||
@ -53,27 +53,27 @@ class CarouselController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/edit", name="admin.carousel.edit")
|
||||
* @Get("/{id:[0-9]+}/edit", name="admin.slide.edit")
|
||||
*/
|
||||
public function editAction($id)
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$carousel = $carouselService->getCarousel($id);
|
||||
$slide = $slideService->getSlide($id);
|
||||
|
||||
$this->view->setVar('carousel', $carousel);
|
||||
$this->view->setVar('slide', $slide);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/update", name="admin.carousel.update")
|
||||
* @Post("/{id:[0-9]+}/update", name="admin.slide.update")
|
||||
*/
|
||||
public function updateAction($id)
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$carouselService->updateCarousel($id);
|
||||
$slideService->updateSlide($id);
|
||||
|
||||
$location = $this->url->get(['for' => 'admin.carousel.list']);
|
||||
$location = $this->url->get(['for' => 'admin.slide.list']);
|
||||
|
||||
$content = [
|
||||
'location' => $location,
|
||||
@ -84,13 +84,13 @@ class CarouselController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/delete", name="admin.carousel.delete")
|
||||
* @Post("/{id:[0-9]+}/delete", name="admin.slide.delete")
|
||||
*/
|
||||
public function deleteAction($id)
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$carouselService->deleteCarousel($id);
|
||||
$slideService->deleteSlide($id);
|
||||
|
||||
$location = $this->request->getHTTPReferer();
|
||||
|
||||
@ -103,13 +103,13 @@ class CarouselController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/restore", name="admin.carousel.restore")
|
||||
* @Post("/{id:[0-9]+}/restore", name="admin.slide.restore")
|
||||
*/
|
||||
public function restoreAction($id)
|
||||
{
|
||||
$carouselService = new CarouselService();
|
||||
$slideService = new SlideService();
|
||||
|
||||
$carouselService->restoreCarousel($id);
|
||||
$slideService->restoreSlide($id);
|
||||
|
||||
$location = $this->request->getHTTPReferer();
|
||||
|
@ -7,9 +7,9 @@ use App\Http\Admin\Services\Setting as SettingService;
|
||||
use App\Http\Admin\Services\WxpayTest as WxpayTestService;
|
||||
use App\Services\Captcha as CaptchaService;
|
||||
use App\Services\Live as LiveService;
|
||||
use App\Services\Mailer\Test as TestMailerService;
|
||||
use App\Services\Mail\Test as TestMailService;
|
||||
use App\Services\MyStorage as StorageService;
|
||||
use App\Services\Smser\Test as TestSmserService;
|
||||
use App\Services\Sms\Test as TestSmsService;
|
||||
use App\Services\Vod as VodService;
|
||||
|
||||
/**
|
||||
@ -66,7 +66,7 @@ class TestController extends Controller
|
||||
$pushUrl = $liveService->getPushUrl($streamName);
|
||||
|
||||
$qrcode = $this->url->get(
|
||||
['for' => 'desktop.qrcode'],
|
||||
['for' => 'home.qrcode'],
|
||||
['text' => urlencode($pushUrl)]
|
||||
);
|
||||
|
||||
@ -96,15 +96,15 @@ class TestController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/smser", name="admin.test.smser")
|
||||
* @Post("/sms", name="admin.test.sms")
|
||||
*/
|
||||
public function smserAction()
|
||||
public function smsAction()
|
||||
{
|
||||
$phone = $this->request->getPost('phone', 'string');
|
||||
|
||||
$smserService = new TestSmserService();
|
||||
$smsService = new TestSmsService();
|
||||
|
||||
$response = $smserService->handle($phone);
|
||||
$response = $smsService->handle($phone);
|
||||
|
||||
if ($response) {
|
||||
return $this->jsonSuccess(['msg' => '发送短信成功,请到收件箱确认']);
|
||||
@ -114,15 +114,15 @@ class TestController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/mailer", name="admin.test.mailer")
|
||||
* @Post("/mail", name="admin.test.mail")
|
||||
*/
|
||||
public function mailerAction()
|
||||
public function mailAction()
|
||||
{
|
||||
$email = $this->request->getPost('email', 'string');
|
||||
|
||||
$mailerService = new TestMailerService();
|
||||
$mailService = new TestMailService();
|
||||
|
||||
$result = $mailerService->handle($email);
|
||||
$result = $mailService->handle($email);
|
||||
|
||||
if ($result) {
|
||||
return $this->jsonSuccess(['msg' => '发送邮件成功,请到收件箱确认']);
|
||||
|
@ -53,13 +53,13 @@ class UploadController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/editor/img", name="admin.upload.editor_img")
|
||||
* @Post("/content/img", name="admin.upload.content_img")
|
||||
*/
|
||||
public function uploadEditorImageAction()
|
||||
public function uploadContentImageAction()
|
||||
{
|
||||
$service = new StorageService();
|
||||
|
||||
$file = $service->uploadEditorImage();
|
||||
$file = $service->uploadContentImage();
|
||||
|
||||
if ($file) {
|
||||
return $this->jsonSuccess([
|
||||
|
@ -3,7 +3,6 @@
|
||||
namespace App\Http\Admin\Controllers;
|
||||
|
||||
use App\Services\Vod as VodService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/admin/vod")
|
||||
@ -31,10 +30,9 @@ class VodController extends Controller
|
||||
$chapterId = $this->request->getQuery('chapter_id', 'int');
|
||||
$playUrl = $this->request->getQuery('play_url', 'string');
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('public/vod_player');
|
||||
$this->view->setVar('chapter_id', $chapterId);
|
||||
$this->view->setVar('play_url', urldecode($playUrl));
|
||||
$this->view->setVar('play_url', $playUrl);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ class AlipayTest extends PayTest
|
||||
|
||||
if ($code) {
|
||||
$codeUrl = $this->url->get(
|
||||
['for' => 'desktop.qrcode'],
|
||||
['for' => 'home.qrcode'],
|
||||
['text' => urlencode($code)]
|
||||
);
|
||||
}
|
||||
|
@ -385,25 +385,25 @@ class AuthNode extends Service
|
||||
'id' => '2-5-1',
|
||||
'title' => '轮播列表',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.carousel.list',
|
||||
'route' => 'admin.slide.list',
|
||||
],
|
||||
[
|
||||
'id' => '2-5-2',
|
||||
'title' => '添加轮播',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.carousel.add',
|
||||
'route' => 'admin.slide.add',
|
||||
],
|
||||
[
|
||||
'id' => '2-5-3',
|
||||
'title' => '编辑轮播',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.carousel.edit',
|
||||
'route' => 'admin.slide.edit',
|
||||
],
|
||||
[
|
||||
'id' => '2-5-4',
|
||||
'title' => '删除轮播',
|
||||
'type' => 'button',
|
||||
'route' => 'admin.carousel.delete',
|
||||
'route' => 'admin.slide.delete',
|
||||
],
|
||||
],
|
||||
],
|
||||
@ -675,13 +675,13 @@ class AuthNode extends Service
|
||||
'id' => '5-1-6',
|
||||
'title' => '短信设置',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.setting.smser',
|
||||
'route' => 'admin.setting.sms',
|
||||
],
|
||||
[
|
||||
'id' => '5-1-7',
|
||||
'title' => '邮件设置',
|
||||
'type' => 'menu',
|
||||
'route' => 'admin.setting.mailer',
|
||||
'route' => 'admin.setting.mail',
|
||||
],
|
||||
[
|
||||
'id' => '5-1-8',
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\Http\Admin\Services;
|
||||
|
||||
use App\Caches\Chapter as ChapterCache;
|
||||
use App\Caches\CourseChapterList as CourseCatalogCache;
|
||||
use App\Caches\CourseChapterList as CatalogCache;
|
||||
use App\Models\Chapter as ChapterModel;
|
||||
use App\Models\ChapterLive as ChapterLiveModel;
|
||||
use App\Models\ChapterRead as ChapterReadModel;
|
||||
@ -249,7 +249,7 @@ class Chapter extends Service
|
||||
|
||||
protected function rebuildCatalogCache(ChapterModel $chapter)
|
||||
{
|
||||
$cache = new CourseCatalogCache();
|
||||
$cache = new CatalogCache();
|
||||
|
||||
$cache->rebuild($chapter->course_id);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Admin\Services;
|
||||
|
||||
use App\Caches\CourseChapterList as CatalogCache;
|
||||
use App\Library\Utils\Word as WordUtil;
|
||||
use App\Models\Chapter as ChapterModel;
|
||||
use App\Models\Course as CourseModel;
|
||||
@ -63,6 +64,8 @@ class ChapterContent extends Service
|
||||
$this->updateChapterRead($chapter);
|
||||
break;
|
||||
}
|
||||
|
||||
$this->rebuildCatalogCache($chapter);
|
||||
}
|
||||
|
||||
protected function updateChapterVod(ChapterModel $chapter)
|
||||
@ -166,4 +169,11 @@ class ChapterContent extends Service
|
||||
$courseStats->updateReadAttrs($chapter->course_id);
|
||||
}
|
||||
|
||||
protected function rebuildCatalogCache(ChapterModel $chapter)
|
||||
{
|
||||
$cache = new CatalogCache();
|
||||
|
||||
$cache->rebuild($chapter->course_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ use App\Repos\CourseCategory as CourseCategoryRepo;
|
||||
use App\Repos\CourseRelated as CourseRelatedRepo;
|
||||
use App\Repos\CourseUser as CourseUserRepo;
|
||||
use App\Repos\User as UserRepo;
|
||||
use App\Services\Syncer\CourseIndex as CourseIndexSyncer;
|
||||
use App\Services\Sync\CourseIndex as CourseIndexSync;
|
||||
use App\Validators\Course as CourseValidator;
|
||||
|
||||
class Course extends Service
|
||||
@ -363,9 +363,9 @@ class Course extends Service
|
||||
|
||||
protected function rebuildCourseIndex(CourseModel $course)
|
||||
{
|
||||
$syncer = new CourseIndexSyncer();
|
||||
$sync = new CourseIndexSync();
|
||||
|
||||
$syncer->addItem($course->id);
|
||||
$sync->addItem($course->id);
|
||||
}
|
||||
|
||||
protected function saveTeachers(CourseModel $course, $teacherIds)
|
||||
|
@ -24,7 +24,7 @@ class Session extends Service
|
||||
$currentUser = $this->getCurrentUser();
|
||||
|
||||
if ($currentUser->id > 0) {
|
||||
$this->response->redirect(['for' => 'desktop.index']);
|
||||
$this->response->redirect(['for' => 'home.index']);
|
||||
}
|
||||
|
||||
$post = $this->request->getPost();
|
||||
@ -33,7 +33,7 @@ class Session extends Service
|
||||
|
||||
$user = $accountValidator->checkAdminLogin($post['account'], $post['password']);
|
||||
|
||||
$captchaSettings = $this->getSectionSettings('captcha');
|
||||
$captchaSettings = $this->getSettings('captcha');
|
||||
|
||||
/**
|
||||
* 验证码是一次性的,放到最后检查,减少第三方调用
|
||||
|
@ -11,18 +11,18 @@ class Setting extends Service
|
||||
|
||||
public function getAlipaySettings()
|
||||
{
|
||||
$alipay = $this->getSectionSettings('pay.alipay');
|
||||
$alipay = $this->getSettings('pay.alipay');
|
||||
|
||||
$alipay['notify_url'] = $alipay['notify_url'] ?: kg_full_url(['for' => 'desktop.alipay_notify']);
|
||||
$alipay['notify_url'] = $alipay['notify_url'] ?: kg_full_url(['for' => 'home.alipay_notify']);
|
||||
|
||||
return $alipay;
|
||||
}
|
||||
|
||||
public function getWxpaySettings()
|
||||
{
|
||||
$wxpay = $this->getSectionSettings('pay.wxpay');
|
||||
$wxpay = $this->getSettings('pay.wxpay');
|
||||
|
||||
$wxpay['notify_url'] = $wxpay['notify_url'] ?: kg_full_url(['for' => 'desktop.wxpay_notify']);
|
||||
$wxpay['notify_url'] = $wxpay['notify_url'] ?: kg_full_url(['for' => 'home.wxpay_notify']);
|
||||
|
||||
return $wxpay;
|
||||
}
|
||||
@ -36,20 +36,20 @@ class Setting extends Service
|
||||
|
||||
public function getLiveSettings($section)
|
||||
{
|
||||
$result = $this->getSectionSettings($section);
|
||||
$result = $this->getSettings($section);
|
||||
|
||||
if ($section == 'live.notify') {
|
||||
$result['stream_begin_url'] = $result['stream_begin_url'] ?: kg_full_url(['for' => 'desktop.live_notify'], ['action' => 'streamBegin']);
|
||||
$result['stream_end_url'] = $result['stream_end_url'] ?: kg_full_url(['for' => 'desktop.live_notify'], ['action' => 'streamEnd']);
|
||||
$result['record_url'] = $result['record_url'] ?: kg_full_url(['for' => 'desktop.live_notify'], ['action' => 'record']);
|
||||
$result['snapshot_url'] = $result['snapshot_url'] ?: kg_full_url(['for' => 'desktop.live_notify'], ['action' => 'snapshot']);
|
||||
$result['porn_url'] = $result['porn_url'] ?: kg_full_url(['for' => 'desktop.live_notify'], ['action' => 'porn']);
|
||||
$result['stream_begin_url'] = $result['stream_begin_url'] ?: kg_full_url(['for' => 'home.live_notify'], ['action' => 'streamBegin']);
|
||||
$result['stream_end_url'] = $result['stream_end_url'] ?: kg_full_url(['for' => 'home.live_notify'], ['action' => 'streamEnd']);
|
||||
$result['record_url'] = $result['record_url'] ?: kg_full_url(['for' => 'home.live_notify'], ['action' => 'record']);
|
||||
$result['snapshot_url'] = $result['snapshot_url'] ?: kg_full_url(['for' => 'home.live_notify'], ['action' => 'snapshot']);
|
||||
$result['porn_url'] = $result['porn_url'] ?: kg_full_url(['for' => 'home.live_notify'], ['action' => 'porn']);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getSectionSettings($section)
|
||||
public function getSettings($section)
|
||||
{
|
||||
$settingsRepo = new SettingRepo();
|
||||
|
||||
@ -112,7 +112,7 @@ class Setting extends Service
|
||||
$this->updateSectionSettings($section, $settings);
|
||||
}
|
||||
|
||||
public function updateSmserSettings($section, $settings)
|
||||
public function updateSmsSettings($section, $settings)
|
||||
{
|
||||
$settings['template'] = kg_json_encode($settings['template']);
|
||||
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
namespace App\Http\Admin\Services;
|
||||
|
||||
use App\Caches\IndexCarouselList as IndexCarouselListCache;
|
||||
use App\Caches\IndexSlideList as IndexSlideListCache;
|
||||
use App\Library\Paginator\Query as PagerQuery;
|
||||
use App\Models\Carousel as CarouselModel;
|
||||
use App\Repos\Carousel as CarouselRepo;
|
||||
use App\Validators\Carousel as CarouselValidator;
|
||||
use App\Models\Slide as SlideModel;
|
||||
use App\Repos\Slide as SlideRepo;
|
||||
use App\Validators\Slide as SlideValidator;
|
||||
|
||||
class Carousel extends Service
|
||||
class Slide extends Service
|
||||
{
|
||||
|
||||
public function getCarousels()
|
||||
public function getSlides()
|
||||
{
|
||||
$pagerQuery = new PagerQuery();
|
||||
|
||||
@ -23,55 +23,55 @@ class Carousel extends Service
|
||||
$page = $pagerQuery->getPage();
|
||||
$limit = $pagerQuery->getLimit();
|
||||
|
||||
$carouselRepo = new CarouselRepo();
|
||||
$slideRepo = new SlideRepo();
|
||||
|
||||
return $carouselRepo->paginate($params, $sort, $page, $limit);
|
||||
return $slideRepo->paginate($params, $sort, $page, $limit);
|
||||
}
|
||||
|
||||
public function getCarousel($id)
|
||||
public function getSlide($id)
|
||||
{
|
||||
return $this->findOrFail($id);
|
||||
}
|
||||
|
||||
public function createCarousel()
|
||||
public function createSlide()
|
||||
{
|
||||
$post = $this->request->getPost();
|
||||
|
||||
$validator = new CarouselValidator();
|
||||
$validator = new SlideValidator();
|
||||
|
||||
$data['title'] = $validator->checkTitle($post['title']);
|
||||
$data['target'] = $validator->checkTarget($post['target']);
|
||||
|
||||
if ($post['target'] == CarouselModel::TARGET_COURSE) {
|
||||
if ($post['target'] == SlideModel::TARGET_COURSE) {
|
||||
$course = $validator->checkCourse($post['content']);
|
||||
$data['content'] = $course->id;
|
||||
$data['cover'] = $course->cover;
|
||||
$data['summary'] = $course->summary;
|
||||
} elseif ($post['target'] == CarouselModel::TARGET_PAGE) {
|
||||
} elseif ($post['target'] == SlideModel::TARGET_PAGE) {
|
||||
$page = $validator->checkPage($post['content']);
|
||||
$data['content'] = $page->id;
|
||||
} elseif ($post['target'] == CarouselModel::TARGET_LINK) {
|
||||
} elseif ($post['target'] == SlideModel::TARGET_LINK) {
|
||||
$data['content'] = $validator->checkLink($post['content']);
|
||||
}
|
||||
|
||||
$data['priority'] = 20;
|
||||
|
||||
$carousel = new CarouselModel();
|
||||
$slide = new SlideModel();
|
||||
|
||||
$carousel->create($data);
|
||||
$slide->create($data);
|
||||
|
||||
$this->rebuildCarouselCache();
|
||||
$this->rebuildSlideCache();
|
||||
|
||||
return $carousel;
|
||||
return $slide;
|
||||
}
|
||||
|
||||
public function updateCarousel($id)
|
||||
public function updateSlide($id)
|
||||
{
|
||||
$carousel = $this->findOrFail($id);
|
||||
$slide = $this->findOrFail($id);
|
||||
|
||||
$post = $this->request->getPost();
|
||||
|
||||
$validator = new CarouselValidator();
|
||||
$validator = new SlideValidator();
|
||||
|
||||
$data = [];
|
||||
|
||||
@ -87,18 +87,14 @@ class Carousel extends Service
|
||||
$data['cover'] = $validator->checkCover($post['cover']);
|
||||
}
|
||||
|
||||
if (isset($post['style']['bg_color'])) {
|
||||
$data['style']['bg_color'] = $validator->checkBgColor($post['style']['bg_color']);
|
||||
}
|
||||
|
||||
if (isset($post['content'])) {
|
||||
if ($carousel->target == CarouselModel::TARGET_COURSE) {
|
||||
if ($slide->target == SlideModel::TARGET_COURSE) {
|
||||
$course = $validator->checkCourse($post['content']);
|
||||
$data['content'] = $course->id;
|
||||
} elseif ($carousel->target == CarouselModel::TARGET_PAGE) {
|
||||
} elseif ($slide->target == SlideModel::TARGET_PAGE) {
|
||||
$page = $validator->checkPage($post['content']);
|
||||
$data['content'] = $page->id;
|
||||
} elseif ($carousel->target == CarouselModel::TARGET_LINK) {
|
||||
} elseif ($slide->target == SlideModel::TARGET_LINK) {
|
||||
$data['content'] = $validator->checkLink($post['content']);
|
||||
}
|
||||
}
|
||||
@ -111,51 +107,51 @@ class Carousel extends Service
|
||||
$data['published'] = $validator->checkPublishStatus($post['published']);
|
||||
}
|
||||
|
||||
$carousel->update($data);
|
||||
$slide->update($data);
|
||||
|
||||
$this->rebuildCarouselCache();
|
||||
$this->rebuildSlideCache();
|
||||
|
||||
return $carousel;
|
||||
return $slide;
|
||||
}
|
||||
|
||||
public function deleteCarousel($id)
|
||||
public function deleteSlide($id)
|
||||
{
|
||||
$carousel = $this->findOrFail($id);
|
||||
$slide = $this->findOrFail($id);
|
||||
|
||||
$carousel->deleted = 1;
|
||||
$slide->deleted = 1;
|
||||
|
||||
$carousel->update();
|
||||
$slide->update();
|
||||
|
||||
$this->rebuildCarouselCache();
|
||||
$this->rebuildSlideCache();
|
||||
|
||||
return $carousel;
|
||||
return $slide;
|
||||
}
|
||||
|
||||
public function restoreCarousel($id)
|
||||
public function restoreSlide($id)
|
||||
{
|
||||
$carousel = $this->findOrFail($id);
|
||||
$slide = $this->findOrFail($id);
|
||||
|
||||
$carousel->deleted = 0;
|
||||
$slide->deleted = 0;
|
||||
|
||||
$carousel->update();
|
||||
$slide->update();
|
||||
|
||||
$this->rebuildCarouselCache();
|
||||
$this->rebuildSlideCache();
|
||||
|
||||
return $carousel;
|
||||
return $slide;
|
||||
}
|
||||
|
||||
protected function rebuildCarouselCache()
|
||||
protected function rebuildSlideCache()
|
||||
{
|
||||
$cache = new IndexCarouselListCache();
|
||||
$cache = new IndexSlideListCache();
|
||||
|
||||
$cache->rebuild();
|
||||
}
|
||||
|
||||
protected function findOrFail($id)
|
||||
{
|
||||
$validator = new CarouselValidator();
|
||||
$validator = new SlideValidator();
|
||||
|
||||
return $validator->checkCarousel($id);
|
||||
return $validator->checkSlide($id);
|
||||
}
|
||||
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.carousel.create'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.create'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>添加轮播</legend>
|
||||
</fieldset>
|
||||
@ -15,9 +15,9 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目标类型</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="target" value="course" title="课程" lay-filter="target" checked="checked">
|
||||
<input type="radio" name="target" value="page" title="单页" lay-filter="target">
|
||||
<input type="radio" name="target" value="link" title="链接" lay-filter="target">
|
||||
<input type="radio" name="target" value="1" title="课程" lay-filter="target" checked="checked">
|
||||
<input type="radio" name="target" value="2" title="单页" lay-filter="target">
|
||||
<input type="radio" name="target" value="3" title="链接" lay-filter="target">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -3,67 +3,58 @@
|
||||
{% block content %}
|
||||
|
||||
{%- macro content_label(target) %}
|
||||
{% if target == 'course' %}
|
||||
{% if target == 1 %}
|
||||
课程编号
|
||||
{% elseif target == 'page' %}
|
||||
{% elseif target == 2 %}
|
||||
单页编号
|
||||
{% elseif target == 'link' %}
|
||||
{% elseif target == 3 %}
|
||||
链接地址
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.carousel.update','id':carousel.id}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.slide.update','id':slide.id}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>编辑轮播</legend>
|
||||
</fieldset>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">封面</label>
|
||||
<div class="layui-input-inline">
|
||||
<img id="img-cover" class="kg-cover" src="{{ carousel.cover }}">
|
||||
<input type="hidden" name="cover" value="{{ carousel.cover }}">
|
||||
<img id="img-cover" class="kg-cover" src="{{ slide.cover }}">
|
||||
<input type="hidden" name="cover" value="{{ slide.cover }}">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="padding-top:35px;">
|
||||
<button id="change-cover" class="layui-btn layui-btn-sm" type="button">更换</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">背景色</label>
|
||||
<div class="layui-input-inline">
|
||||
<input class="layui-input" type="text" name="style[bg_color]" value="{{ carousel.style['bg_color'] }}" lay-verify="required">
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div id="style-bg-color"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="title" value="{{ carousel.title }}" lay-verify="required">
|
||||
<input class="layui-input" type="text" name="title" value="{{ slide.title }}" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">概要</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea class="layui-textarea" name="summary">{{ carousel.summary }}</textarea>
|
||||
<input class="layui-input" type="text" name="summary" value="{{ slide.summary }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{ content_label(carousel.target) }}</label>
|
||||
<label class="layui-form-label">{{ content_label(slide.target) }}</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="content" value="{{ carousel.content }}" lay-verify="required">
|
||||
<input class="layui-input" type="text" name="content" value="{{ slide.content }}" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="priority" value="{{ carousel.priority }}" lay-verify="number">
|
||||
<input class="layui-input" type="text" name="priority" value="{{ slide.priority }}" lay-verify="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if carousel.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if carousel.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if slide.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if slide.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@ -82,27 +73,3 @@
|
||||
{{ js_include('admin/js/cover.upload.js') }}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block inline_js %}
|
||||
|
||||
<script>
|
||||
|
||||
layui.use(['jquery', 'colorpicker'], function () {
|
||||
|
||||
var $ = layui.jquery;
|
||||
var colorPicker = layui.colorpicker;
|
||||
|
||||
colorPicker.render({
|
||||
elem: '#style-bg-color',
|
||||
color: '{{ carousel.style['bg_color'] }}',
|
||||
predefine: true,
|
||||
change: function (color) {
|
||||
$('input[name="style[bg_color]"]').val(color);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
@ -3,17 +3,15 @@
|
||||
{% block content %}
|
||||
|
||||
{%- macro target_info(value) %}
|
||||
{% if value == 'course' %}
|
||||
{% if value == 1 %}
|
||||
<span class="layui-badge layui-bg-green">课程</span>
|
||||
{% elseif value == 'page' %}
|
||||
{% elseif value == 2 %}
|
||||
<span class="layui-badge layui-bg-blue">单页</span>
|
||||
{% elseif value == 'link' %}
|
||||
<span class="layui-badge layui-bg-orange">链接</span>
|
||||
{% elseif value == 3 %}
|
||||
<span class="layui-badge layui-bg-gray">链接</span>
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
{% set add_url = url({'for':'admin.carousel.add'}) %}
|
||||
|
||||
<div class="kg-nav">
|
||||
<div class="kg-nav-left">
|
||||
<span class="layui-breadcrumb">
|
||||
@ -43,16 +41,16 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set edit_url = url({'for':'admin.carousel.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.carousel.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.carousel.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.carousel.restore','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.slide.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.slide.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.slide.delete','id':item.id}) %}
|
||||
{% set restore_url = url({'for':'admin.slide.restore','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.title }}</td>
|
||||
<td><a href="{{ edit_url }}">{{ item.title }}</a></td>
|
||||
<td>{{ target_info(item.target) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm"> 操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -21,8 +21,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if category.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if category.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if category.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if category.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -61,7 +61,7 @@
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.level }}</span></td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.child_count }}</span></td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
{% block link_css %}
|
||||
|
||||
{% if chapter.model == '3' %}
|
||||
{% if chapter.model == 3 %}
|
||||
{{ css_link('https://cdn.jsdelivr.net/npm/vditor/dist/index.css', false) }}
|
||||
{% endif %}
|
||||
|
||||
@ -49,12 +49,12 @@
|
||||
|
||||
{% block include_js %}
|
||||
|
||||
{% if chapter.model == '3' %}
|
||||
{% if chapter.model == 3 %}
|
||||
|
||||
{{ js_include('https://cdn.jsdelivr.net/npm/vditor/dist/index.min.js', false) }}
|
||||
{{ js_include('admin/js/vditor.js') }}
|
||||
|
||||
{% elseif chapter.model == '1' %}
|
||||
{% elseif chapter.model == 1 %}
|
||||
|
||||
{{ js_include('lib/vod-js-sdk-v6.min.js') }}
|
||||
{{ js_include('lib/clipboard.min.js') }}
|
||||
|
@ -42,7 +42,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set preview_url = url({'for':'desktop.chapter.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.chapter.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
@ -56,8 +56,8 @@
|
||||
<td>{{ live_time_info(item.attrs) }}</td>
|
||||
<td>{{ live_status_info(item.attrs['stream']['status']) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked="checked"{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -21,7 +21,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set preview_url = url({'for':'desktop.chapter.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.chapter.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
@ -34,8 +34,8 @@
|
||||
</td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.attrs['word_count'] }}</span></td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked="checked"{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -37,7 +37,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in lessons %}
|
||||
{% set preview_url = url({'for':'desktop.chapter.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.chapter.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.chapter.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.chapter.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.chapter.delete','id':item.id}) %}
|
||||
@ -51,8 +51,8 @@
|
||||
<td>{{ file_status(item.attrs['file']['status']) }}</td>
|
||||
<td>{{ item.attrs['duration']|duration }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="free" value="1" lay-skin="switch" lay-text="是|否" lay-filter="free" data-url="{{ update_url }}" {% if item.free == 1 %}checked="checked"{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -57,7 +57,7 @@
|
||||
<p>编号:{{ item.owner.id }}</p>
|
||||
</td>
|
||||
<td>{{ date('Y-m-d H:i:s',item.create_time) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -30,10 +30,10 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">难度</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="level" value="1" title="入门" {% if course.level == '1' %}checked{% endif %}>
|
||||
<input type="radio" name="level" value="2" title="初级" {% if course.level == '2' %}checked{% endif %}>
|
||||
<input type="radio" name="level" value="3" title="中级" {% if course.level == '3' %}checked{% endif %}>
|
||||
<input type="radio" name="level" value="4" title="高级" {% if course.level == '4' %}checked{% endif %}>
|
||||
<input type="radio" name="level" value="1" title="入门" {% if course.level == '1' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="level" value="2" title="初级" {% if course.level == '2' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="level" value="3" title="中级" {% if course.level == '3' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="level" value="4" title="高级" {% if course.level == '4' %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -69,7 +69,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set preview_url = url({'for':'desktop.course.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.course.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.course.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.course.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.course.delete','id':item.id}) %}
|
||||
@ -97,7 +97,7 @@
|
||||
<p>市场:{{ '¥%0.2f'|format(item.market_price) }}</p>
|
||||
<p>会员:{{ '¥%0.2f'|format(item.vip_price) }}</p>
|
||||
</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -39,8 +39,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if help.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if help.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if help.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if help.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -32,7 +32,7 @@
|
||||
<tbody>
|
||||
{% for item in helps %}
|
||||
{% set list_url = url({'for':'admin.help.list'},{'category_id':item.category.id}) %}
|
||||
{% set preview_url = url({'for':'desktop.help.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.help.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.help.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.help.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.help.delete','id':item.id}) %}
|
||||
@ -42,7 +42,7 @@
|
||||
<td><a href="{{ edit_url }}">{{ item.title }}</a></td>
|
||||
<td><a href="{{ list_url }}">{{ item.category.name }}</a></td>
|
||||
<td class="center"><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td class="center"><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td class="center"><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -37,8 +37,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if group.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if group.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if group.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if group.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -49,7 +49,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set preview_url = url({'for':'desktop.group.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.group.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.group.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.group.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.group.delete','id':item.id}) %}
|
||||
@ -59,7 +59,7 @@
|
||||
<td><a href="{{ edit_url }}">{{ item.name }}</a> {{ type_info(item.type) }}</td>
|
||||
<td>{{ owner_info(item.owner) }}</td>
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.user_count }}</span></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-filter="published" lay-skin="switch" lay-text="是|否" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -28,13 +28,13 @@
|
||||
<li class="layui-nav-item">
|
||||
<a href="javascript:">{{ auth_user.name }}</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="{{ url({'for':'desktop.my.profile'}) }}" target="_blank">基本资料</a></dd>
|
||||
<dd><a href="{{ url({'for':'desktop.my.account'}) }}" target="_blank">安全设置</a></dd>
|
||||
<dd><a href="{{ url({'for':'home.uc.profile'}) }}" target="_blank">基本资料</a></dd>
|
||||
<dd><a href="{{ url({'for':'home.uc.account'}) }}" target="_blank">安全设置</a></dd>
|
||||
<dd><a href="{{ url({'for':'admin.logout'}) }}">退出登录</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
<a href="{{ url({'for':'desktop.index'}) }}" target="_blank">前台</a>
|
||||
<a href="{{ url({'for':'home.index'}) }}" target="_blank">前台</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<td>获取渠道</td>
|
||||
<td>
|
||||
<a href="https://gitee.com/koogua/course-tencent-cloud" target="_blank">Gitee</a>
|
||||
<a href="https://github.com/koogua/course-tencent-cloud" target="_blank">Github</a>
|
||||
<a href="https://github.com/xiaochong0302/course-tencent-cloud" target="_blank">Github</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -27,22 +27,22 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">位置</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="position" value="1" title="顶部" {% if nav.position == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="position" value="2" title="底部" {% if nav.position == 2 %}checked{% endif %}>
|
||||
<input type="radio" name="position" value="1" title="顶部" {% if nav.position == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="position" value="2" title="底部" {% if nav.position == 2 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目标</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="target" value="_blank" title="新窗口" {% if nav.target == '_blank' %}checked{% endif %}>
|
||||
<input type="radio" name="target" value="_self" title="原窗口" {% if nav.target == '_self' %}checked{% endif %}>
|
||||
<input type="radio" name="target" value="_blank" title="新窗口" {% if nav.target == '_blank' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="target" value="_self" title="原窗口" {% if nav.target == '_self' %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if nav.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if nav.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if nav.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if nav.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -82,7 +82,7 @@
|
||||
<td>{{ position_info(item.position) }}</td>
|
||||
<td>{{ target_info(item.target) }}</td>
|
||||
<td><input class="layui-input kg-priority" type="text" name="priority" title="数值越小排序越靠前" value="{{ item.priority }}" data-url="{{ update_url }}"></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <span class="layui-icon layui-icon-triangle-d"></span></button>
|
||||
|
@ -43,7 +43,7 @@
|
||||
<td><span class="layui-badge layui-bg-gray">{{ item.course_count }}</span></td>
|
||||
<td>{{ '¥%0.2f'|format(item.market_price) }}</td>
|
||||
<td>{{ '¥%0.2f'|format(item.vip_price) }}</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -22,8 +22,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发布</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="published" value="1" title="是" {% if page.published == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if page.published == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="published" value="1" title="是" {% if page.published == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="published" value="0" title="否" {% if page.published == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -31,7 +31,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set preview_url = url({'for':'desktop.page.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.page.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.page.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.page.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.page.delete','id':item.id}) %}
|
||||
@ -40,7 +40,7 @@
|
||||
<td><a href="{{ edit_url }}">{{ item.title }}</a></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="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}>
|
||||
</td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
|
@ -19,6 +19,6 @@
|
||||
|
||||
{% block link_css %}
|
||||
|
||||
{{ css_link("desktop/css/error.css") }}
|
||||
{{ css_link("home/css/error.css") }}
|
||||
|
||||
{% endblock %}
|
@ -18,7 +18,7 @@
|
||||
|
||||
{% block inline_js %}
|
||||
|
||||
<script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.2.js"></script>
|
||||
<script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.3.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
@ -26,8 +26,6 @@
|
||||
|
||||
var $ = layui.jquery;
|
||||
|
||||
var playUrls = JSON.parse('{{ pull_urls|json_encode }}');
|
||||
|
||||
var options = {
|
||||
live: true,
|
||||
autoplay: true,
|
||||
@ -36,6 +34,7 @@
|
||||
height: 405
|
||||
};
|
||||
|
||||
var playUrls = JSON.parse('{{ pull_urls|json_encode }}');
|
||||
var formats = ['rtmp', 'flv', 'm3u8'];
|
||||
var rates = ['od', 'hd', 'sd'];
|
||||
|
||||
@ -48,9 +47,8 @@
|
||||
});
|
||||
});
|
||||
|
||||
console.log(options);
|
||||
new TcPlayer('player', options);
|
||||
|
||||
var player = new TcPlayer('player', options);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
@ -26,7 +26,7 @@
|
||||
{% endif %}
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
{% set disabled = captcha.enabled ? 'disabled' : '' %}
|
||||
{% set disabled = captcha.enabled ? 'disabled="disabled"' : '' %}
|
||||
<button id="submit-btn" class="layui-btn layui-btn-fluid layui-btn-disabled" {{ disabled }} lay-submit="true" lay-filter="go">立即登录</button>
|
||||
<input type="hidden" name="ticket">
|
||||
<input type="hidden" name="rand">
|
||||
@ -71,7 +71,7 @@
|
||||
|
||||
var $ = layui.jquery;
|
||||
|
||||
var captcha = new TencentCaptcha(
|
||||
new TencentCaptcha(
|
||||
$('#captcha-btn')[0],
|
||||
$('#captcha-btn').data('app-id'),
|
||||
function (res) {
|
||||
|
@ -1,31 +1,38 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-Hans-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>视频点播</title>
|
||||
<script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.2.js"></script>
|
||||
{% extends 'templates/main.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="player"></div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block inline_css %}
|
||||
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
.kg-body {
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="player"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block inline_js %}
|
||||
|
||||
<script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.3.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
var playUrl = '{{ play_url }}';
|
||||
layui.use(['jquery'], function () {
|
||||
|
||||
var player = new TcPlayer('player', {
|
||||
m3u8: playUrl,
|
||||
new TcPlayer('player', {
|
||||
m3u8: '{{ play_url }}',
|
||||
autoplay: false,
|
||||
width: 720,
|
||||
height: 405
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
@ -54,7 +54,7 @@
|
||||
<p>昵称:<a href="{{ list_by_owner_url }}">{{ item.owner.name }}</a></p>
|
||||
<p>编号:{{ item.owner.id }}</p>
|
||||
</td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -31,7 +31,7 @@
|
||||
<td width="15%">{{ level2.title }}</td>
|
||||
<td>
|
||||
{% for level3 in level2.children %}
|
||||
<input type="checkbox" name="routes[]" title="{{ level3.title }}" value="{{ level3.route }}" {% if level3.route in role.routes %}checked{% endif %}>
|
||||
<input type="checkbox" name="routes[]" title="{{ level3.title }}" value="{{ level3.route }}" {% if level3.route in role.routes %}checked="checked"{% endif %}>
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -2,8 +2,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启服务</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="enabled" value="1" title="是" lay-filter="status" {% if cs.enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" lay-filter="status" {% if cs.enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="1" title="是" lay-filter="status" {% if cs.enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" lay-filter="status" {% if cs.enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -14,29 +14,29 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启图片上传</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="upload_img_enabled" value="1" title="是" {% if main.upload_img_enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="upload_img_enabled" value="0" title="否" {% if main.upload_img_enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="upload_img_enabled" value="1" title="是" {% if main.upload_img_enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="upload_img_enabled" value="0" title="否" {% if main.upload_img_enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启文件上传</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="upload_file_enabled" value="1" title="是" {% if main.upload_file_enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="upload_file_enabled" value="0" title="否" {% if main.upload_file_enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="upload_file_enabled" value="1" title="是" {% if main.upload_file_enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="upload_file_enabled" value="0" title="否" {% if main.upload_file_enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启音频栏</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="tool_audio_enabled" value="1" title="是" {% if main.tool_audio_enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="tool_audio_enabled" value="0" title="否" {% if main.tool_audio_enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="tool_audio_enabled" value="1" title="是" {% if main.tool_audio_enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="tool_audio_enabled" value="0" title="否" {% if main.tool_audio_enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启视频栏</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="tool_video_enabled" value="1" title="是" {% if main.tool_video_enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="tool_video_enabled" value="0" title="否" {% if main.tool_video_enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="tool_video_enabled" value="1" title="是" {% if main.tool_video_enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="tool_video_enabled" value="0" title="否" {% if main.tool_video_enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -8,8 +8,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">拉流协议</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if pull.protocol == "http" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if pull.protocol == "https" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if pull.protocol == "http" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if pull.protocol == "https" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@ -24,8 +24,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启鉴权</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="auth_enabled" value="1" title="是" lay-filter="pull_auth_enabled" {% if pull.auth_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="0" title="否" lay-filter="pull_auth_enabled" {% if pull.auth_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="1" title="是" lay-filter="pull_auth_enabled" {% if pull.auth_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="0" title="否" lay-filter="pull_auth_enabled" {% if pull.auth_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pull-auth-block" style="{{ pull_auth_display }}">
|
||||
@ -48,8 +48,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启转码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="trans_enabled" value="1" title="是" lay-filter="pull_trans_enabled" {% if pull.trans_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="trans_enabled" value="0" title="否" lay-filter="pull_trans_enabled" {% if pull.trans_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="trans_enabled" value="1" title="是" lay-filter="pull_trans_enabled" {% if pull.trans_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="trans_enabled" value="0" title="否" lay-filter="pull_trans_enabled" {% if pull.trans_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pull-trans-tpl-block" style="{{ pull_trans_tpl_display }}">
|
||||
|
@ -16,8 +16,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启鉴权</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="auth_enabled" value="1" title="是" lay-filter="push_auth_enabled" {% if push.auth_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="0" title="否" lay-filter="push_auth_enabled" {% if push.auth_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="1" title="是" lay-filter="push_auth_enabled" {% if push.auth_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="auth_enabled" value="0" title="否" lay-filter="push_auth_enabled" {% if push.auth_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="push-auth-block" style="{{ push_auth_display }}">
|
||||
|
@ -17,7 +17,7 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">推流地址</label>
|
||||
<div class="layui-input-inline" style="width:350px;">
|
||||
<input id="tc1" class="layui-input" type="text" name="obs.fms_url" value="{{ obs.fms_url }}" readonly="readonly">
|
||||
<input id="tc1" class="layui-input" type="text" name="obs_fms_url" value="{{ obs.fms_url }}" readonly="readonly">
|
||||
</div>
|
||||
<div class="layui-input-inline" style="width:100px;">
|
||||
<span class="kg-copy layui-btn" data-clipboard-target="#tc1">复制</span>
|
||||
|
@ -2,60 +2,60 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.mailer'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.mail'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>邮件配置</legend>
|
||||
</fieldset>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发送邮箱</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_from_email" value="{{ mailer.smtp_from_email }}">
|
||||
<input class="layui-input" type="text" name="smtp_from_email" value="{{ mail.smtp_from_email }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">发送人</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_from_name" value="{{ mailer.smtp_from_name }}">
|
||||
<input class="layui-input" type="text" name="smtp_from_name" value="{{ mail.smtp_from_name }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SMTP服务器</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_host" value="{{ mailer.smtp_host }}">
|
||||
<input class="layui-input" type="text" name="smtp_host" value="{{ mail.smtp_host }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SMTP端口号</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_port" value="{{ mailer.smtp_port }}">
|
||||
<input class="layui-input" type="text" name="smtp_port" value="{{ mail.smtp_port }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">加密类型</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="smtp_encryption" value="ssl" title="SSL" {% if mailer.smtp_encryption == "ssl" %}checked{% endif %}>
|
||||
<input type="radio" name="smtp_encryption" value="tls" title="TLS" {% if mailer.smtp_encryption == "tls" %}checked{% endif %}>
|
||||
<input type="radio" name="smtp_encryption" value="" title="不加密" {% if mailer.smtp_encryption == "" %}checked{% endif %}>
|
||||
<input type="radio" name="smtp_encryption" value="ssl" title="SSL" {% if mail.smtp_encryption == "ssl" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="smtp_encryption" value="tls" title="TLS" {% if mail.smtp_encryption == "tls" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="smtp_encryption" value="" title="不加密" {% if mail.smtp_encryption == "" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">账户验证</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="smtp_authentication" value="1" title="是" lay-filter="smtp_auth" {% if mailer.smtp_authentication == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="smtp_authentication" value="0" title="否" lay-filter="smtp_auth" {% if mailer.smtp_authentication == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="smtp_auth_enabled" value="1" title="是" lay-filter="smtp_auth_enabled" {% if mail.smtp_auth_enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="smtp_auth_enabled" value="0" title="否" lay-filter="smtp_auth_enabled" {% if mail.smtp_auth_enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="smtp-auth-block">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SMTP帐号</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_username" value="{{ mailer.smtp_username }}">
|
||||
<input class="layui-input" type="text" name="smtp_username" value="{{ mail.smtp_username }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SMTP密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="smtp_password" value="{{ mailer.smtp_password }}">
|
||||
<input class="layui-input" type="text" name="smtp_password" value="{{ mail.smtp_password }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -68,7 +68,7 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.mailer'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.mail'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>邮件测试</legend>
|
||||
</fieldset>
|
||||
@ -98,7 +98,7 @@
|
||||
var $ = layui.jquery;
|
||||
var form = layui.form;
|
||||
|
||||
form.on('radio(smtp_auth)', function (data) {
|
||||
form.on('radio(smtp_auth_enabled)', function (data) {
|
||||
var block = $('#smtp-auth-block');
|
||||
if (data.value === '1') {
|
||||
block.show();
|
@ -2,8 +2,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启支付</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="enabled" value="1" title="是" {% if alipay.enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" {% if alipay.enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="1" title="是" {% if alipay.enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" {% if alipay.enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -2,8 +2,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启支付</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="enabled" value="1" title="是" {% if wxpay.enabled == "1" %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" {% if wxpay.enabled == "0" %}checked{% endif %}>
|
||||
<input type="radio" name="enabled" value="1" title="是" {% if wxpay.enabled == "1" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="enabled" value="0" title="否" {% if wxpay.enabled == "0" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
@ -12,8 +12,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">站点状态</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="status" value="normal" title="正常" lay-filter="status" {% if site.status == 'normal' %}checked{% endif %}>
|
||||
<input type="radio" name="status" value="closed" title="关闭" lay-filter="status" {% if site.status == 'closed' %}checked{% endif %}>
|
||||
<input type="radio" name="status" value="normal" title="正常" lay-filter="status" {% if site.status == 'normal' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="status" value="closed" title="关闭" lay-filter="status" {% if site.status == 'closed' %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="closed-tips-block" style="{{ closed_tips_display }}">
|
||||
@ -27,8 +27,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">首页版式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="index_tpl" value="simple" title="简洁" {% if site.index_tpl == 'simple' %}checked{% endif %}>
|
||||
<input type="radio" name="index_tpl" value="full" title="丰富" {% if site.index_tpl == 'full' %}checked{% endif %}>
|
||||
<input type="radio" name="index_tpl" value="simple" title="简洁" {% if site.index_tpl == 'simple' %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="index_tpl" value="full" title="丰富" {% if site.index_tpl == 'full' %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@ -92,8 +92,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启统计</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="analytics_enabled" value="1" title="是" lay-filter="analytics_enabled" {% if site.analytics_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="analytics_enabled" value="0" title="否" lay-filter="analytics_enabled" {% if site.analytics_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="analytics_enabled" value="1" title="是" lay-filter="analytics_enabled" {% if site.analytics_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="analytics_enabled" value="0" title="否" lay-filter="analytics_enabled" {% if site.analytics_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="analytics-script-block" style="{{ analytics_script_display }}">
|
||||
|
@ -2,28 +2,28 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set template = smser.template|json_decode %}
|
||||
{% set template = sms.template|json_decode %}
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.smser'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.setting.sms'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>基础配置</legend>
|
||||
</fieldset>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">App ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="app_id" value="{{ smser.app_id }}" layui-verify="required">
|
||||
<input class="layui-input" type="text" name="app_id" value="{{ sms.app_id }}" layui-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">App Key</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="app_key" value="{{ smser.app_key }}" layui-verify="required">
|
||||
<input class="layui-input" type="text" name="app_key" value="{{ sms.app_key }}" layui-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">内容签名</label>
|
||||
<div class="layui-input-block">
|
||||
<input class="layui-input" type="text" name="signature" placeholder="注意:使用的是签名内容,而非签名ID" value="{{ smser.signature }}" layui-verify="required">
|
||||
<input class="layui-input" type="text" name="signature" placeholder="注意:使用的是签名内容,而非签名ID" value="{{ sms.signature }}" layui-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
@ -80,7 +80,7 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.smser'}) }}">
|
||||
<form class="layui-form kg-form" method="POST" action="{{ url({'for':'admin.test.sms'}) }}">
|
||||
<fieldset class="layui-elem-field layui-field-title">
|
||||
<legend>短信测试</legend>
|
||||
</fieldset>
|
@ -21,8 +21,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">访问协议</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if cos.protocol == "http" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if cos.protocol == "https" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if cos.protocol == "http" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if cos.protocol == "https" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@ -56,7 +56,7 @@
|
||||
<td>mageMogr2/thumbnail/270x/interlace/0</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>carousel_1100</td>
|
||||
<td>slide_1100</td>
|
||||
<td>imageMogr2/thumbnail/1100x/interlace/0</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -13,8 +13,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">存储方式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="storage_type" value="nearby" title="就近存储" lay-filter="storage_type" {% if vod.storage_type == "nearby" %}checked{% endif %}>
|
||||
<input type="radio" name="storage_type" value="fixed" title="固定区域" lay-filter="storage_type" {% if vod.storage_type == "fixed" %}checked{% endif %}>
|
||||
<input type="radio" name="storage_type" value="nearby" title="就近存储" lay-filter="storage_type" {% if vod.storage_type == "nearby" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="storage_type" value="fixed" title="固定区域" lay-filter="storage_type" {% if vod.storage_type == "fixed" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="storage-region-block" style="{{ storage_region_display }}">
|
||||
@ -31,22 +31,22 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">视频格式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="video_format" value="hls" title="HLS" lay-filter="video_format" {% if vod.video_format == "hls" %}checked{% endif %}>
|
||||
<input type="radio" name="video_format" value="mp4" title="MP4" disabled="disabled" lay-filter="video_format" {% if vod.video_format == "mp4" %}checked{% endif %}>
|
||||
<input type="radio" name="video_format" value="hls" title="HLS" lay-filter="video_format" {% if vod.video_format == "hls" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="video_format" value="mp4" title="MP4" disabled="disabled" lay-filter="video_format" {% if vod.video_format == "mp4" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">音频格式</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="audio_format" value="mp3" title="MP3" lay-filter="audio_format" {% if vod.audio_format == "mp3" %}checked{% endif %}>
|
||||
<input type="radio" name="audio_format" value="m4a" title="M4A" disabled="disabled" lay-filter="audio_format" {% if vod.audio_format == "m4a" %}checked{% endif %}>
|
||||
<input type="radio" name="audio_format" value="mp3" title="MP3" lay-filter="audio_format" {% if vod.audio_format == "mp3" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="audio_format" value="m4a" title="M4A" disabled="disabled" lay-filter="audio_format" {% if vod.audio_format == "m4a" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启水印</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="wmk_enabled" value="1" title="是" lay-filter="wmk_enabled" {% if vod.wmk_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="wmk_enabled" value="0" title="否" lay-filter="wmk_enabled" {% if vod.wmk_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="wmk_enabled" value="1" title="是" lay-filter="wmk_enabled" {% if vod.wmk_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="wmk_enabled" value="0" title="否" lay-filter="wmk_enabled" {% if vod.wmk_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="wmk-tpl-block" style="{{ wmk_tpl_display }}">
|
||||
@ -63,8 +63,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分发协议</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if vod.protocol == "https" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if vod.protocol == "http" %}checked{% endif %}>
|
||||
<input type="radio" name="protocol" value="https" title="HTTPS" {% if vod.protocol == "https" %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="protocol" value="http" title="HTTP" {% if vod.protocol == "http" %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
@ -79,8 +79,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">开启防盗链</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="key_anti_enabled" value="1" title="是" lay-filter="key_anti_enabled" {% if vod.key_anti_enabled == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="key_anti_enabled" value="0" title="否" lay-filter="key_anti_enabled" {% if vod.key_anti_enabled == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="key_anti_enabled" value="1" title="是" lay-filter="key_anti_enabled" {% if vod.key_anti_enabled == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="key_anti_enabled" value="0" title="否" lay-filter="key_anti_enabled" {% if vod.key_anti_enabled == 0 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
<div id="key-anti-block" {{ key_anti_display }}>
|
||||
|
@ -33,7 +33,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set preview_url = url({'for':'desktop.topic.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.topic.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.topic.edit','id':item.id}) %}
|
||||
{% set update_url = url({'for':'admin.topic.update','id':item.id}) %}
|
||||
{% set delete_url = url({'for':'admin.topic.delete','id':item.id}) %}
|
||||
@ -44,7 +44,7 @@
|
||||
<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="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="published" value="1" lay-skin="switch" lay-text="是|否" lay-filter="published" data-url="{{ update_url }}" {% if item.published == 1 %}checked="checked"{% endif %}></td>
|
||||
<td class="center">
|
||||
<div class="layui-dropdown">
|
||||
<button class="layui-btn layui-btn-sm">操作 <i class="layui-icon layui-icon-triangle-d"></i></button>
|
||||
|
@ -29,18 +29,18 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">教学角色</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="edu_role" value="1" title="学员" {% if user.edu_role == 1 %}checked{% endif %}>
|
||||
<input type="radio" name="edu_role" value="2" title="讲师" {% if user.edu_role == 2 %}checked{% endif %}>
|
||||
<input type="radio" name="edu_role" value="1" title="学员" {% if user.edu_role == 1 %}checked="checked"{% endif %}>
|
||||
<input type="radio" name="edu_role" value="2" title="讲师" {% if user.edu_role == 2 %}checked="checked"{% endif %}>
|
||||
</div>
|
||||
</div>
|
||||
{% if auth_user.root == 1 %}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">后台角色</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="admin_role" value="0" title="无" {% if user.admin_role == 0 %}checked{% endif %}>
|
||||
<input type="radio" name="admin_role" value="0" title="无" {% if user.admin_role == 0 %}checked="checked"{% endif %}>
|
||||
{% for role in roles %}
|
||||
{% if role.id > 1 %}
|
||||
<input type="radio" name="admin_role" value="{{ role.id }}" title="{{ role.name }}" {% if user.admin_role == role.id %}checked{% endif %}>
|
||||
<input type="radio" name="admin_role" value="{{ role.id }}" title="{{ role.name }}" {% if user.admin_role == role.id %}checked="checked"{% endif %}>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
@ -68,7 +68,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in pager.items %}
|
||||
{% set preview_url = url({'for':'desktop.user.show','id':item.id}) %}
|
||||
{% set preview_url = url({'for':'home.user.show','id':item.id}) %}
|
||||
{% set edit_url = url({'for':'admin.user.edit','id':item.id}) %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
|
@ -1,10 +0,0 @@
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">教学中心</div>
|
||||
<div class="layui-card-body">
|
||||
<ul class="my-menu">
|
||||
<li><a href="{{ url({'for':'desktop.teaching.courses'}) }}">我的课程</a></li>
|
||||
<li><a href="{{ url({'for':'desktop.teaching.lives'}) }}">我的直播</a></li>
|
||||
<li><a href="{{ url({'for':'desktop.teaching.consults'}) }}">课程咨询</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
@ -1,19 +0,0 @@
|
||||
{% extends 'templates/main.volt' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% set courses_url = url({'for':'desktop.topic.courses','id':topic.id}) %}
|
||||
|
||||
<div class="topic-info">
|
||||
<div class="topic-title">{{ topic.title }}</div>
|
||||
</div>
|
||||
|
||||
<div id="course-list" data-url="{{ courses_url }}"></div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block include_js %}
|
||||
|
||||
{{ js_include('desktop/js/topic.show.js') }}
|
||||
|
||||
{% endblock %}
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\Account as AccountService;
|
||||
use App\Services\Frontend\Account\EmailUpdate as EmailUpdateService;
|
||||
use App\Services\Frontend\Account\PasswordReset as PasswordResetService;
|
||||
use App\Services\Frontend\Account\PasswordUpdate as PasswordUpdateService;
|
||||
use App\Services\Frontend\Account\PhoneUpdate as PhoneUpdateService;
|
||||
use App\Http\Home\Services\Account as AccountService;
|
||||
use App\Services\Logic\Account\EmailUpdate as EmailUpdateService;
|
||||
use App\Services\Logic\Account\PasswordReset as PasswordResetService;
|
||||
use App\Services\Logic\Account\PasswordUpdate as PasswordUpdateService;
|
||||
use App\Services\Logic\Account\PhoneUpdate as PhoneUpdateService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -16,17 +16,17 @@ class AccountController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/register", name="desktop.account.register")
|
||||
* @Get("/register", name="home.account.register")
|
||||
*/
|
||||
public function registerAction()
|
||||
{
|
||||
if ($this->authUser->id > 0) {
|
||||
$this->response->redirect('/');
|
||||
return $this->response->redirect('/');
|
||||
}
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$returnUrl = $this->request->getHTTPReferer();
|
||||
|
||||
@ -35,7 +35,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/register", name="desktop.account.do_register")
|
||||
* @Post("/register", name="home.account.do_register")
|
||||
*/
|
||||
public function doRegisterAction()
|
||||
{
|
||||
@ -54,7 +54,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/login", name="desktop.account.login")
|
||||
* @Get("/login", name="home.account.login")
|
||||
*/
|
||||
public function loginAction()
|
||||
{
|
||||
@ -64,7 +64,7 @@ class AccountController extends Controller
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$returnUrl = $this->request->getHTTPReferer();
|
||||
|
||||
@ -73,7 +73,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/password/login", name="desktop.account.pwd_login")
|
||||
* @Post("/password/login", name="home.account.pwd_login")
|
||||
*/
|
||||
public function loginByPasswordAction()
|
||||
{
|
||||
@ -83,7 +83,7 @@ class AccountController extends Controller
|
||||
|
||||
$returnUrl = $this->request->getPost('return_url', 'string');
|
||||
|
||||
$location = $returnUrl ?: $this->url->get(['for' => 'desktop.index']);
|
||||
$location = $returnUrl ?: $this->url->get(['for' => 'home.index']);
|
||||
|
||||
$content = ['location' => $location];
|
||||
|
||||
@ -91,7 +91,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/verify/login", name="desktop.account.verify_login")
|
||||
* @Post("/verify/login", name="home.account.verify_login")
|
||||
*/
|
||||
public function loginByVerifyAction()
|
||||
{
|
||||
@ -101,7 +101,7 @@ class AccountController extends Controller
|
||||
|
||||
$returnUrl = $this->request->getPost('return_url', 'string');
|
||||
|
||||
$location = $returnUrl ?: $this->url->get(['for' => 'desktop.index']);
|
||||
$location = $returnUrl ?: $this->url->get(['for' => 'home.index']);
|
||||
|
||||
$content = ['location' => $location];
|
||||
|
||||
@ -109,7 +109,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/logout", name="desktop.account.logout")
|
||||
* @Get("/logout", name="home.account.logout")
|
||||
*/
|
||||
public function logoutAction()
|
||||
{
|
||||
@ -117,38 +117,38 @@ class AccountController extends Controller
|
||||
|
||||
$service->logout();
|
||||
|
||||
$this->response->redirect(['for' => 'desktop.index']);
|
||||
$this->response->redirect(['for' => 'home.index']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/password/forget", name="desktop.account.forget_pwd")
|
||||
* @Get("/password/forget", name="home.account.forget_pwd")
|
||||
*/
|
||||
public function forgetPasswordAction()
|
||||
{
|
||||
if ($this->authUser->id > 0) {
|
||||
$this->response->redirect(['for' => 'desktop.index']);
|
||||
$this->response->redirect(['for' => 'home.index']);
|
||||
}
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$this->view->pick('account/forget_password');
|
||||
$this->view->setVar('captcha', $captcha);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/password/edit", name="desktop.account.edit_pwd")
|
||||
* @Get("/password/edit", name="home.account.edit_pwd")
|
||||
*/
|
||||
public function editPasswordAction()
|
||||
{
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
}
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('account/edit_password');
|
||||
@ -156,17 +156,17 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/phone/edit", name="desktop.account.edit_phone")
|
||||
* @Get("/phone/edit", name="home.account.edit_phone")
|
||||
*/
|
||||
public function editPhoneAction()
|
||||
{
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
}
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('account/edit_phone');
|
||||
@ -174,17 +174,17 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/email/edit", name="desktop.account.edit_email")
|
||||
* @Get("/email/edit", name="home.account.edit_email")
|
||||
*/
|
||||
public function editEmailAction()
|
||||
{
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
}
|
||||
|
||||
$service = new AccountService();
|
||||
|
||||
$captcha = $service->getSectionSettings('captcha');
|
||||
$captcha = $service->getSettings('captcha');
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('account/edit_email');
|
||||
@ -192,7 +192,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/password/reset", name="desktop.account.reset_pwd")
|
||||
* @Post("/password/reset", name="home.account.reset_pwd")
|
||||
*/
|
||||
public function resetPasswordAction()
|
||||
{
|
||||
@ -200,7 +200,7 @@ class AccountController extends Controller
|
||||
|
||||
$service->handle();
|
||||
|
||||
$loginUrl = $this->url->get(['for' => 'desktop.account.login']);
|
||||
$loginUrl = $this->url->get(['for' => 'home.account.login']);
|
||||
|
||||
$content = [
|
||||
'location' => $loginUrl,
|
||||
@ -211,7 +211,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/phone/update", name="desktop.account.update_phone")
|
||||
* @Post("/phone/update", name="home.account.update_phone")
|
||||
*/
|
||||
public function updatePhoneAction()
|
||||
{
|
||||
@ -225,7 +225,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/email/update", name="desktop.account.update_email")
|
||||
* @Post("/email/update", name="home.account.update_email")
|
||||
*/
|
||||
public function updateEmailAction()
|
||||
{
|
||||
@ -239,7 +239,7 @@ class AccountController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/password/update", name="desktop.account.update_pwd")
|
||||
* @Post("/password/update", name="home.account.update_pwd")
|
||||
*/
|
||||
public function updatePasswordAction()
|
||||
{
|
@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Models\ChapterLive as LiveModel;
|
||||
use App\Models\Course as CourseModel;
|
||||
use App\Services\Frontend\Chapter\ChapterInfo as ChapterInfoService;
|
||||
use App\Services\Frontend\Chapter\ChapterLike as ChapterLikeService;
|
||||
use App\Services\Frontend\Chapter\DanmuList as ChapterDanmuListService;
|
||||
use App\Services\Frontend\Chapter\Learning as ChapterLearningService;
|
||||
use App\Services\Frontend\Course\ChapterList as CourseChapterListService;
|
||||
use App\Services\Logic\Chapter\ChapterInfo as ChapterInfoService;
|
||||
use App\Services\Logic\Chapter\ChapterLike as ChapterLikeService;
|
||||
use App\Services\Logic\Chapter\DanmuList as ChapterDanmuListService;
|
||||
use App\Services\Logic\Chapter\Learning as ChapterLearningService;
|
||||
use App\Services\Logic\Course\ChapterList as CourseChapterListService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/chapter")
|
||||
@ -17,7 +17,7 @@ class ChapterController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.chapter.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.chapter.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
||||
@ -28,8 +28,8 @@ class ChapterController extends Controller
|
||||
$owned = $chapter['me']['owned'] ?? false;
|
||||
|
||||
if (!$owned) {
|
||||
$this->response->redirect([
|
||||
'for' => 'desktop.course.show',
|
||||
return $this->response->redirect([
|
||||
'for' => 'home.course.show',
|
||||
'id' => $chapter['course']['id'],
|
||||
]);
|
||||
}
|
||||
@ -63,7 +63,7 @@ class ChapterController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/danmu", name="desktop.chapter.danmu")
|
||||
* @Get("/{id:[0-9]+}/danmu", name="home.chapter.danmu")
|
||||
*/
|
||||
public function danmuAction($id)
|
||||
{
|
||||
@ -75,7 +75,7 @@ class ChapterController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/like", name="desktop.chapter.like")
|
||||
* @Post("/{id:[0-9]+}/like", name="home.chapter.like")
|
||||
*/
|
||||
public function likeAction($id)
|
||||
{
|
||||
@ -91,7 +91,7 @@ class ChapterController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/learning", name="desktop.chapter.learning")
|
||||
* @Post("/{id:[0-9]+}/learning", name="home.chapter.learning")
|
||||
*/
|
||||
public function learningAction($id)
|
||||
{
|
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Consult\ConsultCreate as ConsultCreateService;
|
||||
use App\Services\Frontend\Consult\ConsultDelete as ConsultDeleteService;
|
||||
use App\Services\Frontend\Consult\ConsultInfo as ConsultInfoService;
|
||||
use App\Services\Frontend\Consult\ConsultLike as ConsultLikeService;
|
||||
use App\Services\Frontend\Consult\ConsultReply as ConsultReplyService;
|
||||
use App\Services\Frontend\Consult\ConsultUpdate as ConsultUpdateService;
|
||||
use App\Services\Logic\Consult\ConsultCreate as ConsultCreateService;
|
||||
use App\Services\Logic\Consult\ConsultDelete as ConsultDeleteService;
|
||||
use App\Services\Logic\Consult\ConsultInfo as ConsultInfoService;
|
||||
use App\Services\Logic\Consult\ConsultLike as ConsultLikeService;
|
||||
use App\Services\Logic\Consult\ConsultReply as ConsultReplyService;
|
||||
use App\Services\Logic\Consult\ConsultUpdate as ConsultUpdateService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/consult")
|
||||
@ -16,7 +16,7 @@ class ConsultController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/add", name="desktop.consult.add")
|
||||
* @Get("/add", name="home.consult.add")
|
||||
*/
|
||||
public function addAction()
|
||||
{
|
||||
@ -24,7 +24,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/show", name="desktop.consult.show")
|
||||
* @Get("/{id:[0-9]+}/show", name="home.consult.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
||||
@ -36,7 +36,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/edit", name="desktop.consult.edit")
|
||||
* @Get("/{id:[0-9]+}/edit", name="home.consult.edit")
|
||||
*/
|
||||
public function editAction($id)
|
||||
{
|
||||
@ -48,7 +48,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.consult.create")
|
||||
* @Post("/create", name="home.consult.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -66,7 +66,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/update", name="desktop.consult.update")
|
||||
* @Post("/{id:[0-9]+}/update", name="home.consult.update")
|
||||
*/
|
||||
public function updateAction($id)
|
||||
{
|
||||
@ -80,7 +80,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/delete", name="desktop.consult.delete")
|
||||
* @Post("/{id:[0-9]+}/delete", name="home.consult.delete")
|
||||
*/
|
||||
public function deleteAction($id)
|
||||
{
|
||||
@ -94,7 +94,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/{id:[0-9]+}/reply", name="desktop.consult.reply")
|
||||
* @Route("/{id:[0-9]+}/reply", name="home.consult.reply")
|
||||
*/
|
||||
public function replyAction($id)
|
||||
{
|
||||
@ -119,7 +119,7 @@ class ConsultController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/like", name="desktop.consult.like")
|
||||
* @Post("/{id:[0-9]+}/like", name="home.consult.like")
|
||||
*/
|
||||
public function likeAction($id)
|
||||
{
|
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Caches\NavTreeList as NavCache;
|
||||
use App\Caches\Setting as SettingCache;
|
||||
use App\Library\AppInfo;
|
||||
use App\Library\Seo;
|
||||
use App\Library\AppInfo as AppInfo;
|
||||
use App\Library\Seo as Seo;
|
||||
use App\Models\User as UserModel;
|
||||
use App\Services\Auth\Desktop as DesktopAuth;
|
||||
use App\Services\Auth\Home as HomeAuth;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use App\Traits\Security as SecurityTrait;
|
||||
use Phalcon\Config;
|
||||
@ -52,7 +52,6 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
public function beforeExecuteRoute(Dispatcher $dispatcher)
|
||||
{
|
||||
$this->siteInfo = $this->getSiteInfo();
|
||||
|
||||
$this->authUser = $this->getAuthUser();
|
||||
|
||||
$this->checkSiteStatus();
|
||||
@ -91,7 +90,7 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
protected function getAuthUser()
|
||||
{
|
||||
/**
|
||||
* @var DesktopAuth $auth
|
||||
* @var HomeAuth $auth
|
||||
*/
|
||||
$auth = $this->getDI()->get('auth');
|
||||
|
||||
@ -140,7 +139,7 @@ class Controller extends \Phalcon\Mvc\Controller
|
||||
return [
|
||||
'main' => $cache->get('im.main'),
|
||||
'cs' => $cache->get('im.cs'),
|
||||
'websocket' => $websocket,
|
||||
'ws' => $websocket,
|
||||
];
|
||||
}
|
||||
|
@ -1,19 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\CourseQuery as CourseQueryService;
|
||||
use App\Services\Frontend\Course\ChapterList as CourseChapterListService;
|
||||
use App\Services\Frontend\Course\ConsultList as CourseConsultListService;
|
||||
use App\Services\Frontend\Course\CourseFavorite as CourseFavoriteService;
|
||||
use App\Services\Frontend\Course\CourseInfo as CourseInfoService;
|
||||
use App\Services\Frontend\Course\CourseList as CourseListService;
|
||||
use App\Services\Frontend\Course\PackageList as CoursePackageListService;
|
||||
use App\Services\Frontend\Course\RecommendedList as CourseRecommendedListService;
|
||||
use App\Services\Frontend\Course\RelatedList as CourseRelatedListService;
|
||||
use App\Services\Frontend\Course\ReviewList as CourseReviewListService;
|
||||
use App\Services\Frontend\Course\TopicList as CourseTopicListService;
|
||||
use App\Services\Frontend\Reward\OptionList as RewardOptionList;
|
||||
use App\Http\Home\Services\CourseQuery as CourseQueryService;
|
||||
use App\Services\Logic\Course\ChapterList as CourseChapterListService;
|
||||
use App\Services\Logic\Course\ConsultList as CourseConsultListService;
|
||||
use App\Services\Logic\Course\CourseFavorite as CourseFavoriteService;
|
||||
use App\Services\Logic\Course\CourseInfo as CourseInfoService;
|
||||
use App\Services\Logic\Course\CourseList as CourseListService;
|
||||
use App\Services\Logic\Course\PackageList as CoursePackageListService;
|
||||
use App\Services\Logic\Course\RecommendedList as CourseRecommendedListService;
|
||||
use App\Services\Logic\Course\RelatedList as CourseRelatedListService;
|
||||
use App\Services\Logic\Course\ReviewList as CourseReviewListService;
|
||||
use App\Services\Logic\Course\TopicList as CourseTopicListService;
|
||||
use App\Services\Logic\Reward\OptionList as RewardOptionList;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -23,7 +23,7 @@ class CourseController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/list", name="desktop.course.list")
|
||||
* @Get("/list", name="home.course.list")
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
@ -48,7 +48,7 @@ class CourseController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/pager", name="desktop.course.pager")
|
||||
* @Get("/pager", name="home.course.pager")
|
||||
*/
|
||||
public function pagerAction()
|
||||
{
|
||||
@ -64,7 +64,7 @@ class CourseController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.course.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.course.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
||||
@ -90,7 +90,7 @@ class CourseController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/packages", name="desktop.course.packages")
|
||||
* @Get("/{id:[0-9]+}/packages", name="home.course.packages")
|
||||
*/
|
||||
public function packagesAction($id)
|
||||
{
|
||||
@ -99,12 +99,11 @@ class CourseController extends Controller
|
||||
$packages = $service->handle($id);
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/packages');
|
||||
$this->view->setVar('packages', $packages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/consults", name="desktop.course.consults")
|
||||
* @Get("/{id:[0-9]+}/consults", name="home.course.consults")
|
||||
*/
|
||||
public function consultsAction($id)
|
||||
{
|
||||
@ -115,12 +114,11 @@ class CourseController extends Controller
|
||||
$pager->target = 'tab-consults';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/consults');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/reviews", name="desktop.course.reviews")
|
||||
* @Get("/{id:[0-9]+}/reviews", name="home.course.reviews")
|
||||
*/
|
||||
public function reviewsAction($id)
|
||||
{
|
||||
@ -131,12 +129,11 @@ class CourseController extends Controller
|
||||
$pager->target = 'tab-reviews';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/reviews');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/recommended", name="desktop.course.recommended")
|
||||
* @Get("/{id:[0-9]+}/recommended", name="home.course.recommended")
|
||||
*/
|
||||
public function recommendedAction($id)
|
||||
{
|
||||
@ -145,12 +142,11 @@ class CourseController extends Controller
|
||||
$courses = $service->handle($id);
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/recommended');
|
||||
$this->view->setVar('courses', $courses);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/related", name="desktop.course.related")
|
||||
* @Get("/{id:[0-9]+}/related", name="home.course.related")
|
||||
*/
|
||||
public function relatedAction($id)
|
||||
{
|
||||
@ -159,12 +155,11 @@ class CourseController extends Controller
|
||||
$courses = $service->handle($id);
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/related');
|
||||
$this->view->setVar('courses', $courses);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/topics", name="desktop.course.topics")
|
||||
* @Get("/{id:[0-9]+}/topics", name="home.course.topics")
|
||||
*/
|
||||
public function topicsAction($id)
|
||||
{
|
||||
@ -173,12 +168,11 @@ class CourseController extends Controller
|
||||
$topics = $service->handle($id);
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('course/topics');
|
||||
$this->view->setVar('topics', $topics);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/favorite", name="desktop.course.favorite")
|
||||
* @Post("/{id:[0-9]+}/favorite", name="home.course.favorite")
|
||||
*/
|
||||
public function favoriteAction($id)
|
||||
{
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Danmu\DanmuCreate as DanmuCreateService;
|
||||
use App\Services\Frontend\Danmu\DanmuInfo as DanmuInfoService;
|
||||
use App\Services\Logic\Danmu\DanmuCreate as DanmuCreateService;
|
||||
use App\Services\Logic\Danmu\DanmuInfo as DanmuInfoService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/danmu")
|
||||
@ -12,7 +12,7 @@ class DanmuController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.danmu.create")
|
||||
* @Post("/create", name="home.danmu.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
|
||||
@ -13,7 +13,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
use ResponseTrait;
|
||||
|
||||
/**
|
||||
* @Get("/400", name="desktop.error.400")
|
||||
* @Get("/400", name="home.error.400")
|
||||
*/
|
||||
public function show400Action()
|
||||
{
|
||||
@ -21,7 +21,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/401", name="desktop.error.401")
|
||||
* @Get("/401", name="home.error.401")
|
||||
*/
|
||||
public function show401Action()
|
||||
{
|
||||
@ -29,7 +29,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/403", name="desktop.error.403")
|
||||
* @Get("/403", name="home.error.403")
|
||||
*/
|
||||
public function show403Action()
|
||||
{
|
||||
@ -37,7 +37,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/404", name="desktop.error.404")
|
||||
* @Get("/404", name="home.error.404")
|
||||
*/
|
||||
public function show404Action()
|
||||
{
|
||||
@ -52,7 +52,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/500", name="desktop.error.500")
|
||||
* @Get("/500", name="home.error.500")
|
||||
*/
|
||||
public function show500Action()
|
||||
{
|
||||
@ -60,7 +60,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/503", name="desktop.error.503")
|
||||
* @Get("/503", name="home.error.503")
|
||||
*/
|
||||
public function show503Action()
|
||||
{
|
||||
@ -68,7 +68,7 @@ class ErrorController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/maintain", name="desktop.error.maintain")
|
||||
* @Get("/maintain", name="home.error.maintain")
|
||||
*/
|
||||
public function maintainAction()
|
||||
{
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Help\HelpInfo as HelpInfoService;
|
||||
use App\Services\Frontend\Help\HelpList as HelpListService;
|
||||
use App\Services\Logic\Help\HelpInfo as HelpInfoService;
|
||||
use App\Services\Logic\Help\HelpList as HelpListService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/help")
|
||||
@ -12,7 +12,7 @@ class HelpController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.help.index")
|
||||
* @Get("/", name="home.help.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -26,7 +26,7 @@ class HelpController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.help.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.help.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\Im as ImService;
|
||||
use App\Http\Home\Services\Im as ImService;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
@ -19,12 +19,12 @@ class ImController extends Controller
|
||||
parent::initialize();
|
||||
|
||||
if ($this->authUser->id == 0) {
|
||||
return $this->response->redirect(['for' => 'desktop.account.login']);
|
||||
return $this->response->redirect(['for' => 'home.account.login']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.im.index")
|
||||
* @Get("/", name="home.im.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -44,7 +44,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/cs", name="desktop.im.cs")
|
||||
* @Get("/cs", name="home.im.cs")
|
||||
*/
|
||||
public function csAction()
|
||||
{
|
||||
@ -56,7 +56,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/init", name="desktop.im.init")
|
||||
* @Get("/init", name="home.im.init")
|
||||
*/
|
||||
public function initAction()
|
||||
{
|
||||
@ -68,7 +68,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/group/users", name="desktop.im.group_users")
|
||||
* @Get("/group/users", name="home.im.group_users")
|
||||
*/
|
||||
public function groupUsersAction()
|
||||
{
|
||||
@ -80,7 +80,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/msgbox", name="desktop.im.msgbox")
|
||||
* @Get("/msgbox", name="home.im.msgbox")
|
||||
*/
|
||||
public function msgboxAction()
|
||||
{
|
||||
@ -88,12 +88,11 @@ class ImController extends Controller
|
||||
|
||||
$pager = $service->getNotices();
|
||||
|
||||
$this->view->pick('im/msgbox');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/chatlog", name="desktop.im.chatlog")
|
||||
* @Get("/chatlog", name="home.im.chatlog")
|
||||
*/
|
||||
public function chatlogAction()
|
||||
{
|
||||
@ -102,12 +101,11 @@ class ImController extends Controller
|
||||
$pager = $service->getChatMessages();
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('im/chatlog');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/friend/msg/unread", name="desktop.im.unread_friend_msg")
|
||||
* @Get("/friend/msg/unread", name="home.im.unread_friend_msg")
|
||||
*/
|
||||
public function unreadFriendMessageAction()
|
||||
{
|
||||
@ -121,7 +119,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/notice/unread", name="desktop.im.unread_notice")
|
||||
* @Get("/notice/unread", name="home.im.unread_notice")
|
||||
*/
|
||||
public function unreadNoticeAction()
|
||||
{
|
||||
@ -133,7 +131,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/notice", name="desktop.im.notice")
|
||||
* @Get("/notice", name="home.im.notice")
|
||||
*/
|
||||
public function noticeAction()
|
||||
{
|
||||
@ -145,7 +143,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/notice/read", name="desktop.im.read_notice")
|
||||
* @Post("/notice/read", name="home.im.read_notice")
|
||||
*/
|
||||
public function readNoticeAction()
|
||||
{
|
||||
@ -157,7 +155,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/friend/status", name="desktop.im.friend_status")
|
||||
* @Get("/friend/status", name="home.im.friend_status")
|
||||
*/
|
||||
public function friendStatusAction()
|
||||
{
|
||||
@ -169,7 +167,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/chat/history", name="desktop.im.chat_history")
|
||||
* @Get("/chat/history", name="home.im.chat_history")
|
||||
*/
|
||||
public function chatHistoryAction()
|
||||
{
|
||||
@ -181,7 +179,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/user/bind", name="desktop.im.bind_user")
|
||||
* @Post("/user/bind", name="home.im.bind_user")
|
||||
*/
|
||||
public function bindUserAction()
|
||||
{
|
||||
@ -193,7 +191,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/msg/chat/send", name="desktop.im.send_chat_msg")
|
||||
* @Post("/msg/chat/send", name="home.im.send_chat_msg")
|
||||
*/
|
||||
public function sendChatMessageAction()
|
||||
{
|
||||
@ -208,7 +206,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/msg/cs/send", name="desktop.im.send_cs_msg")
|
||||
* @Post("/msg/cs/send", name="home.im.send_cs_msg")
|
||||
*/
|
||||
public function sendCsMessageAction()
|
||||
{
|
||||
@ -223,7 +221,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/status/update", name="desktop.im.update_status")
|
||||
* @Post("/status/update", name="home.im.update_status")
|
||||
*/
|
||||
public function updateStatusAction()
|
||||
{
|
||||
@ -235,7 +233,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/sign/update", name="desktop.desktop.im.update_sign")
|
||||
* @Post("/sign/update", name="home.home.im.update_sign")
|
||||
*/
|
||||
public function updateSignatureAction()
|
||||
{
|
||||
@ -247,7 +245,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/skin/update", name="desktop.desktop.im.update_skin")
|
||||
* @Post("/skin/update", name="home.home.im.update_skin")
|
||||
*/
|
||||
public function updateSKinAction()
|
||||
{
|
||||
@ -259,7 +257,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/friend/apply", name="desktop.im.apply_friend")
|
||||
* @Post("/friend/apply", name="home.im.apply_friend")
|
||||
*/
|
||||
public function applyFriendAction()
|
||||
{
|
||||
@ -273,7 +271,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/friend/accept", name="desktop.im.accept_friend")
|
||||
* @Post("/friend/accept", name="home.im.accept_friend")
|
||||
*/
|
||||
public function acceptFriendAction()
|
||||
{
|
||||
@ -285,7 +283,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/friend/refuse", name="desktop.im.refuse_friend")
|
||||
* @Post("/friend/refuse", name="home.im.refuse_friend")
|
||||
*/
|
||||
public function refuseFriendAction()
|
||||
{
|
||||
@ -297,7 +295,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/group/apply", name="desktop.im.apply_group")
|
||||
* @Post("/group/apply", name="home.im.apply_group")
|
||||
*/
|
||||
public function applyGroupAction()
|
||||
{
|
||||
@ -311,7 +309,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/group/accept", name="desktop.desktop.im.accept_group")
|
||||
* @Post("/group/accept", name="home.home.im.accept_group")
|
||||
*/
|
||||
public function acceptGroupAction()
|
||||
{
|
||||
@ -323,7 +321,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/group/refuse", name="desktop.desktop.im.refuse_group")
|
||||
* @Post("/group/refuse", name="home.home.im.refuse_group")
|
||||
*/
|
||||
public function refuseGroupAction()
|
||||
{
|
||||
@ -335,7 +333,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/friend/{id:[0-9]+}/quit", name="desktop.im.quit_friend")
|
||||
* @Post("/friend/{id:[0-9]+}/quit", name="home.im.quit_friend")
|
||||
*/
|
||||
public function quitFriendAction($id)
|
||||
{
|
||||
@ -349,7 +347,7 @@ class ImController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/group/{id:[0-9]+}/quit", name="desktop.im.quit_group")
|
||||
* @Post("/group/{id:[0-9]+}/quit", name="home.im.quit_group")
|
||||
*/
|
||||
public function quitGroupAction($id)
|
||||
{
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\ImGroup as ImGroupService;
|
||||
use App\Http\Home\Services\ImGroup as ImGroupService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -12,7 +12,7 @@ class ImGroupController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/list", name="desktop.group.list")
|
||||
* @Get("/list", name="home.group.list")
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
@ -22,7 +22,7 @@ class ImGroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/pager", name="desktop.group.pager")
|
||||
* @Get("/pager", name="home.group.pager")
|
||||
*/
|
||||
public function pagerAction()
|
||||
{
|
||||
@ -38,7 +38,7 @@ class ImGroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.group.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.group.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
||||
@ -53,7 +53,7 @@ class ImGroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/users", name="desktop.group.users")
|
||||
* @Get("/{id:[0-9]+}/users", name="home.group.users")
|
||||
*/
|
||||
public function usersAction($id)
|
||||
{
|
||||
@ -69,7 +69,7 @@ class ImGroupController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/users/active", name="desktop.group.active_users")
|
||||
* @Get("/{id:[0-9]+}/users/active", name="home.group.active_users")
|
||||
*/
|
||||
public function activeUsersAction($id)
|
||||
{
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\ImGroup as ImGroupService;
|
||||
use App\Http\Home\Services\ImGroup as ImGroupService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/igm")
|
||||
@ -11,7 +11,7 @@ class ImGroupManageController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/users", name="desktop.igm.users")
|
||||
* @Get("/{id:[0-9]+}/users", name="home.igm.users")
|
||||
*/
|
||||
public function usersAction($id)
|
||||
{
|
||||
@ -27,7 +27,7 @@ class ImGroupManageController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/edit", name="desktop.igm.edit")
|
||||
* @Get("/{id:[0-9]+}/edit", name="home.igm.edit")
|
||||
*/
|
||||
public function editAction($id)
|
||||
{
|
||||
@ -40,7 +40,7 @@ class ImGroupManageController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/update", name="desktop.igm.update")
|
||||
* @Post("/{id:[0-9]+}/update", name="home.igm.update")
|
||||
*/
|
||||
public function updateAction($id)
|
||||
{
|
||||
@ -54,7 +54,7 @@ class ImGroupManageController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{gid:[0-9]+}/user/{uid:[0-9]+}/delete", name="desktop.igm.delete_user")
|
||||
* @Post("/{gid:[0-9]+}/user/{uid:[0-9]+}/delete", name="home.igm.delete_user")
|
||||
*/
|
||||
public function deleteGroupUserAction($gid, $uid)
|
||||
{
|
@ -1,14 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\Index as IndexService;
|
||||
use App\Http\Home\Services\Index as IndexService;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.index")
|
||||
* @Get("/", name="home.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -30,7 +30,7 @@ class IndexController extends Controller
|
||||
|
||||
$this->view->pick('index/full');
|
||||
$this->view->setVar('lives', $service->getLives());
|
||||
$this->view->setVar('carousels', $service->getCarousels());
|
||||
$this->view->setVar('slides', $service->getSlides());
|
||||
$this->view->setVar('new_courses', $service->getNewCourses());
|
||||
$this->view->setVar('free_courses', $service->getFreeCourses());
|
||||
$this->view->setVar('vip_courses', $service->getVipCourses());
|
||||
@ -42,7 +42,7 @@ class IndexController extends Controller
|
||||
|
||||
$this->view->pick('index/simple');
|
||||
$this->view->setVar('lives', $service->getLives());
|
||||
$this->view->setVar('carousels', $service->getCarousels());
|
||||
$this->view->setVar('slides', $service->getSlides());
|
||||
$this->view->setVar('new_courses', $service->getSimpleNewCourses());
|
||||
$this->view->setVar('free_courses', $service->getSimpleFreeCourses());
|
||||
$this->view->setVar('vip_courses', $service->getSimpleVipCourses());
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Models\User as UserModel;
|
||||
use App\Services\Auth\Desktop as DesktopAuth;
|
||||
use App\Services\Auth\Home as HomeAuth;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use App\Traits\Security as SecurityTrait;
|
||||
use Phalcon\Mvc\Dispatcher;
|
||||
@ -41,7 +41,7 @@ class LayerController extends \Phalcon\Mvc\Controller
|
||||
protected function getAuthUser()
|
||||
{
|
||||
/**
|
||||
* @var DesktopAuth $auth
|
||||
* @var HomeAuth $auth
|
||||
*/
|
||||
$auth = $this->getDI()->get('auth');
|
||||
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\Live as LiveService;
|
||||
use App\Http\Home\Services\Live as LiveService;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
@ -15,7 +15,7 @@ class LiveController extends Controller
|
||||
use ResponseTrait;
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/chats", name="desktop.live.chats")
|
||||
* @Get("/{id:[0-9]+}/chats", name="home.live.chats")
|
||||
*/
|
||||
public function chatsAction($id)
|
||||
{
|
||||
@ -29,7 +29,7 @@ class LiveController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/stats", name="desktop.live.stats")
|
||||
* @Get("/{id:[0-9]+}/stats", name="home.live.stats")
|
||||
*/
|
||||
public function statsAction($id)
|
||||
{
|
||||
@ -41,7 +41,7 @@ class LiveController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/status", name="desktop.live.status")
|
||||
* @Get("/{id:[0-9]+}/status", name="home.live.status")
|
||||
*/
|
||||
public function statusAction($id)
|
||||
{
|
||||
@ -53,7 +53,7 @@ class LiveController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/user/bind", name="desktop.live.bind_user")
|
||||
* @Post("/{id:[0-9]+}/user/bind", name="home.live.bind_user")
|
||||
*/
|
||||
public function bindUserAction($id)
|
||||
{
|
||||
@ -65,7 +65,7 @@ class LiveController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/msg/send", name="desktop.live.send_msg")
|
||||
* @Post("/{id:[0-9]+}/msg/send", name="home.live.send_msg")
|
||||
*/
|
||||
public function sendMessageAction($id)
|
||||
{
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Models\Order as OrderModel;
|
||||
use App\Services\Frontend\Order\OrderCancel as OrderCancelService;
|
||||
use App\Services\Frontend\Order\OrderConfirm as OrderConfirmService;
|
||||
use App\Services\Frontend\Order\OrderCreate as OrderCreateService;
|
||||
use App\Services\Frontend\Order\OrderInfo as OrderInfoService;
|
||||
use App\Services\Logic\Order\OrderCancel as OrderCancelService;
|
||||
use App\Services\Logic\Order\OrderConfirm as OrderConfirmService;
|
||||
use App\Services\Logic\Order\OrderCreate as OrderCreateService;
|
||||
use App\Services\Logic\Order\OrderInfo as OrderInfoService;
|
||||
use Phalcon\Mvc\Dispatcher;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
@ -21,7 +21,7 @@ class OrderController extends Controller
|
||||
parent::beforeExecuteRoute($dispatcher);
|
||||
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ class OrderController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/info", name="desktop.order.info")
|
||||
* @Get("/info", name="home.order.info")
|
||||
*/
|
||||
public function infoAction()
|
||||
{
|
||||
@ -44,7 +44,7 @@ class OrderController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/confirm", name="desktop.order.confirm")
|
||||
* @Get("/confirm", name="home.order.confirm")
|
||||
*/
|
||||
public function confirmAction()
|
||||
{
|
||||
@ -59,7 +59,7 @@ class OrderController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.order.create")
|
||||
* @Post("/create", name="home.order.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -67,13 +67,13 @@ class OrderController extends Controller
|
||||
|
||||
$order = $service->handle();
|
||||
|
||||
$location = $this->url->get(['for' => 'desktop.order.pay'], ['sn' => $order->sn]);
|
||||
$location = $this->url->get(['for' => 'home.order.pay'], ['sn' => $order->sn]);
|
||||
|
||||
return $this->jsonSuccess(['location' => $location]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/pay", name="desktop.order.pay")
|
||||
* @Get("/pay", name="home.order.pay")
|
||||
*/
|
||||
public function payAction()
|
||||
{
|
||||
@ -84,14 +84,14 @@ class OrderController extends Controller
|
||||
$order = $service->handle($sn);
|
||||
|
||||
if ($order['status'] != OrderModel::STATUS_PENDING) {
|
||||
$this->response->redirect(['for' => 'desktop.my.orders']);
|
||||
$this->response->redirect(['for' => 'home.my.orders']);
|
||||
}
|
||||
|
||||
$this->view->setVar('order', $order);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/cancel", name="desktop.order.cancel")
|
||||
* @Post("/cancel", name="home.order.cancel")
|
||||
*/
|
||||
public function cancelAction()
|
||||
{
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Package\CourseList as PackageCourseListService;
|
||||
use App\Services\Frontend\Package\PackageInfo as PackageInfoService;
|
||||
use App\Services\Logic\Package\CourseList as PackageCourseListService;
|
||||
use App\Services\Logic\Package\PackageInfo as PackageInfoService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/package")
|
||||
@ -12,7 +12,7 @@ class PackageController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/info", name="desktop.package.info")
|
||||
* @Get("/{id:[0-9]+}/info", name="home.package.info")
|
||||
*/
|
||||
public function infoAction($id)
|
||||
{
|
||||
@ -24,7 +24,7 @@ class PackageController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/courses", name="desktop.package.courses")
|
||||
* @Get("/{id:[0-9]+}/courses", name="home.package.courses")
|
||||
*/
|
||||
public function coursesAction($id)
|
||||
{
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Page\PageInfo as PageInfoService;
|
||||
use App\Services\Logic\Page\PageInfo as PageInfoService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/page")
|
||||
@ -11,7 +11,7 @@ class PageController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.page.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.page.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Library\CsrfToken as CsrfTokenService;
|
||||
use App\Repos\Upload as UploadRepo;
|
||||
@ -20,7 +20,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
use SecurityTrait;
|
||||
|
||||
/**
|
||||
* @Get("/img/{id:[0-9]+}", name="desktop.img")
|
||||
* @Get("/img/{id:[0-9]+}", name="home.img")
|
||||
*/
|
||||
public function imageAction($id)
|
||||
{
|
||||
@ -45,7 +45,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/qrcode", name="desktop.qrcode")
|
||||
* @Get("/qrcode", name="home.qrcode")
|
||||
*/
|
||||
public function qrcodeAction()
|
||||
{
|
||||
@ -63,7 +63,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/token/refresh", name="desktop.refresh_token")
|
||||
* @Post("/token/refresh", name="home.refresh_token")
|
||||
*/
|
||||
public function refreshTokenAction()
|
||||
{
|
||||
@ -77,7 +77,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/alipay/notify", name="desktop.alipay_notify")
|
||||
* @Post("/alipay/notify", name="home.alipay_notify")
|
||||
*/
|
||||
public function alipayNotifyAction()
|
||||
{
|
||||
@ -93,7 +93,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/wxpay/notify", name="desktop.wxpay_notify")
|
||||
* @Post("/wxpay/notify", name="home.wxpay_notify")
|
||||
*/
|
||||
public function wxpayNotifyAction()
|
||||
{
|
||||
@ -109,7 +109,7 @@ class PublicController extends \Phalcon\Mvc\Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/live/notify", name="desktop.live_notify")
|
||||
* @Post("/live/notify", name="home.live_notify")
|
||||
*/
|
||||
public function liveNotifyAction()
|
||||
{
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Order\OrderInfo as OrderInfoService;
|
||||
use App\Services\Frontend\Refund\RefundCancel as RefundCancelService;
|
||||
use App\Services\Frontend\Refund\RefundConfirm as RefundConfirmService;
|
||||
use App\Services\Frontend\Refund\RefundCreate as RefundCreateService;
|
||||
use App\Services\Frontend\Refund\RefundInfo as RefundInfoService;
|
||||
use App\Services\Logic\Order\OrderInfo as OrderInfoService;
|
||||
use App\Services\Logic\Refund\RefundCancel as RefundCancelService;
|
||||
use App\Services\Logic\Refund\RefundConfirm as RefundConfirmService;
|
||||
use App\Services\Logic\Refund\RefundCreate as RefundCreateService;
|
||||
use App\Services\Logic\Refund\RefundInfo as RefundInfoService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ class RefundController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/confirm", name="desktop.refund.confirm")
|
||||
* @Get("/confirm", name="home.refund.confirm")
|
||||
*/
|
||||
public function confirmAction()
|
||||
{
|
||||
@ -36,7 +36,7 @@ class RefundController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.refund.create")
|
||||
* @Post("/create", name="home.refund.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -45,7 +45,7 @@ class RefundController extends Controller
|
||||
$service->handle();
|
||||
|
||||
$content = [
|
||||
'location' => $this->url->get(['for' => 'desktop.my.refunds']),
|
||||
'location' => $this->url->get(['for' => 'home.my.refunds']),
|
||||
'msg' => '申请退款成功',
|
||||
];
|
||||
|
||||
@ -53,7 +53,7 @@ class RefundController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/info", name="desktop.refund.info")
|
||||
* @Get("/info", name="home.refund.info")
|
||||
*/
|
||||
public function infoAction()
|
||||
{
|
||||
@ -68,7 +68,7 @@ class RefundController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/cancel", name="desktop.refund.cancel")
|
||||
* @Post("/cancel", name="home.refund.cancel")
|
||||
*/
|
||||
public function cancelAction()
|
||||
{
|
||||
@ -79,7 +79,7 @@ class RefundController extends Controller
|
||||
$service->handle($sn);
|
||||
|
||||
$content = [
|
||||
'location' => $this->url->get(['for' => 'desktop.my.refunds']),
|
||||
'location' => $this->url->get(['for' => 'home.my.refunds']),
|
||||
'msg' => '取消退款成功',
|
||||
];
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Review\ReviewCreate as ReviewCreateService;
|
||||
use App\Services\Frontend\Review\ReviewDelete as ReviewDeleteService;
|
||||
use App\Services\Frontend\Review\ReviewInfo as ReviewInfoService;
|
||||
use App\Services\Frontend\Review\ReviewLike as ReviewLikeService;
|
||||
use App\Services\Frontend\Review\ReviewUpdate as ReviewUpdateService;
|
||||
use App\Services\Logic\Review\ReviewCreate as ReviewCreateService;
|
||||
use App\Services\Logic\Review\ReviewDelete as ReviewDeleteService;
|
||||
use App\Services\Logic\Review\ReviewInfo as ReviewInfoService;
|
||||
use App\Services\Logic\Review\ReviewLike as ReviewLikeService;
|
||||
use App\Services\Logic\Review\ReviewUpdate as ReviewUpdateService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ class ReviewController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/add", name="desktop.review.add")
|
||||
* @Get("/add", name="home.review.add")
|
||||
*/
|
||||
public function addAction()
|
||||
{
|
||||
@ -24,7 +24,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/edit", name="desktop.review.edit")
|
||||
* @Get("/{id:[0-9]+}/edit", name="home.review.edit")
|
||||
*/
|
||||
public function editAction($id)
|
||||
{
|
||||
@ -37,7 +37,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/info", name="desktop.review.info")
|
||||
* @Get("/{id:[0-9]+}/info", name="home.review.info")
|
||||
*/
|
||||
public function infoAction($id)
|
||||
{
|
||||
@ -49,7 +49,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.review.create")
|
||||
* @Post("/create", name="home.review.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -70,7 +70,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/update", name="desktop.review.update")
|
||||
* @Post("/{id:[0-9]+}/update", name="home.review.update")
|
||||
*/
|
||||
public function updateAction($id)
|
||||
{
|
||||
@ -91,7 +91,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/delete", name="desktop.review.delete")
|
||||
* @Post("/{id:[0-9]+}/delete", name="home.review.delete")
|
||||
*/
|
||||
public function deleteAction($id)
|
||||
{
|
||||
@ -105,7 +105,7 @@ class ReviewController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/{id:[0-9]+}/like", name="desktop.review.like")
|
||||
* @Post("/{id:[0-9]+}/like", name="home.review.like")
|
||||
*/
|
||||
public function likeAction($id)
|
||||
{
|
@ -1,10 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Search\Course as CourseSearchService;
|
||||
use App\Services\Frontend\Search\Group as GroupSearchService;
|
||||
use App\Services\Frontend\Search\User as UserSearchService;
|
||||
use App\Services\Logic\Search\Course as CourseSearchService;
|
||||
use App\Services\Logic\Search\Group as GroupSearchService;
|
||||
use App\Services\Logic\Search\User as UserSearchService;
|
||||
use App\Traits\Response as ResponseTrait;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ class SearchController extends Controller
|
||||
use ResponseTrait;
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.search.index")
|
||||
* @Get("/", name="home.search.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -24,7 +24,7 @@ class SearchController extends Controller
|
||||
$type = $this->request->get('type', ['trim', 'string'], 'course');
|
||||
|
||||
if (empty($query)) {
|
||||
return $this->response->redirect(['for' => 'desktop.course.list']);
|
||||
return $this->response->redirect(['for' => 'home.course.list']);
|
||||
}
|
||||
|
||||
$this->seo->prependTitle(['搜索', $query]);
|
||||
@ -43,7 +43,7 @@ class SearchController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/form", name="desktop.search.form")
|
||||
* @Get("/form", name="home.search.form")
|
||||
*/
|
||||
public function formAction()
|
||||
{
|
@ -1,19 +1,18 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Teaching\ConsultList as ConsultListService;
|
||||
use App\Services\Frontend\Teaching\CourseList as CourseListService;
|
||||
use App\Services\Frontend\Teaching\LiveList as LiveListService;
|
||||
use App\Services\Frontend\Teaching\LivePushUrl as LivePushUrlService;
|
||||
use App\Services\Logic\Teacher\Console\ConsultList as ConsultListService;
|
||||
use App\Services\Logic\Teacher\Console\CourseList as CourseListService;
|
||||
use App\Services\Logic\Teacher\Console\LiveList as LiveListService;
|
||||
use App\Services\Logic\Teacher\Console\LivePushUrl as LivePushUrlService;
|
||||
use Phalcon\Mvc\Dispatcher;
|
||||
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/teaching")
|
||||
* @RoutePrefix("/tc")
|
||||
*/
|
||||
class TeachingController extends Controller
|
||||
class TeacherConsoleController extends Controller
|
||||
{
|
||||
|
||||
public function beforeExecuteRoute(Dispatcher $dispatcher)
|
||||
@ -21,7 +20,7 @@ class TeachingController extends Controller
|
||||
parent::beforeExecuteRoute($dispatcher);
|
||||
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -29,7 +28,7 @@ class TeachingController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.teaching.index")
|
||||
* @Get("/index", name="home.tc.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -37,7 +36,7 @@ class TeachingController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/courses", name="desktop.teaching.courses")
|
||||
* @Get("/courses", name="home.tc.courses")
|
||||
*/
|
||||
public function coursesAction()
|
||||
{
|
||||
@ -45,13 +44,12 @@ class TeachingController extends Controller
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->pick('teacher/console/courses');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/lives", name="desktop.teaching.lives")
|
||||
* @Get("/lives", name="home.tc.lives")
|
||||
*/
|
||||
public function livesAction()
|
||||
{
|
||||
@ -59,13 +57,12 @@ class TeachingController extends Controller
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->pick('teacher/console/lives');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/consults", name="desktop.teaching.consults")
|
||||
* @Get("/consults", name="home.tc.consults")
|
||||
*/
|
||||
public function consultsAction()
|
||||
{
|
||||
@ -73,22 +70,21 @@ class TeachingController extends Controller
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$pager->items = kg_array_object($pager->items);
|
||||
|
||||
$this->view->pick('teacher/console/consults');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/live/push", name="desktop.teaching.live_push")
|
||||
* @Get("/live/{id:[0-9]+}", name="home.tc.live")
|
||||
*/
|
||||
public function livePushAction()
|
||||
public function liveAction($id)
|
||||
{
|
||||
$service = new LivePushUrlService();
|
||||
|
||||
$pushUrl = $service->handle();
|
||||
$pushUrl = $service->handle($id);
|
||||
|
||||
$qrcode = $this->url->get(
|
||||
['for' => 'desktop.qrcode'],
|
||||
['for' => 'home.qrcode'],
|
||||
['text' => urlencode($pushUrl)]
|
||||
);
|
||||
|
||||
@ -99,7 +95,7 @@ class TeachingController extends Controller
|
||||
'stream_code' => substr($pushUrl, $pos + 1),
|
||||
];
|
||||
|
||||
$this->view->pick('teaching/live_push');
|
||||
$this->view->pick('teacher/console/live_push');
|
||||
$this->view->setVar('qrcode', $qrcode);
|
||||
$this->view->setVar('obs', $obs);
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Teacher\TeacherList as TeacherListService;
|
||||
use App\Services\Logic\Teacher\TeacherList as TeacherListService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -12,7 +12,7 @@ class TeacherController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/list", name="desktop.teacher.list")
|
||||
* @Get("/list", name="home.teacher.list")
|
||||
*/
|
||||
public function listAction()
|
||||
{
|
||||
@ -20,7 +20,7 @@ class TeacherController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/pager", name="desktop.teacher.pager")
|
||||
* @Get("/pager", name="home.teacher.pager")
|
||||
*/
|
||||
public function pagerAction()
|
||||
{
|
||||
@ -31,12 +31,11 @@ class TeacherController extends Controller
|
||||
$pager->target = 'teacher-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('teacher/pager');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.teacher.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.teacher.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\Topic\CourseList as TopicCourseListService;
|
||||
use App\Services\Frontend\Topic\TopicInfo as TopicInfoService;
|
||||
use App\Services\Logic\Topic\CourseList as TopicCourseListService;
|
||||
use App\Services\Logic\Topic\TopicInfo as TopicInfoService;
|
||||
use Phalcon\Mvc\View;
|
||||
|
||||
/**
|
||||
@ -13,7 +13,7 @@ class TopicController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}", name="desktop.topic.show")
|
||||
* @Get("/{id:[0-9]+}", name="home.topic.show")
|
||||
*/
|
||||
public function showAction($id)
|
||||
{
|
||||
@ -21,14 +21,14 @@ class TopicController extends Controller
|
||||
|
||||
$topic = $service->handle($id);
|
||||
|
||||
$this->seo->prependTitle($topic['title']);
|
||||
$this->seo->prependTitle(['专题', $topic['title']]);
|
||||
$this->seo->setDescription($topic['summary']);
|
||||
|
||||
$this->view->setVar('topic', $topic);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/{id:[0-9]+}/courses", name="desktop.topic.courses")
|
||||
* @Get("/{id:[0-9]+}/courses", name="home.topic.courses")
|
||||
*/
|
||||
public function coursesAction($id)
|
||||
{
|
||||
@ -39,7 +39,6 @@ class TopicController extends Controller
|
||||
$pager->target = 'course-list';
|
||||
|
||||
$this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
|
||||
$this->view->pick('topic/courses');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Http\Desktop\Services\Trade as TradeService;
|
||||
use App\Services\Frontend\Trade\TradeInfo as TradeInfoService;
|
||||
use App\Http\Home\Services\Trade as TradeService;
|
||||
use App\Services\Logic\Trade\TradeInfo as TradeInfoService;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/trade")
|
||||
@ -12,7 +12,7 @@ class TradeController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Post("/create", name="desktop.trade.create")
|
||||
* @Post("/create", name="home.trade.create")
|
||||
*/
|
||||
public function createAction()
|
||||
{
|
||||
@ -24,7 +24,7 @@ class TradeController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/status", name="desktop.trade.status")
|
||||
* @Get("/status", name="home.trade.status")
|
||||
*/
|
||||
public function statusAction()
|
||||
{
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\MyStorage as StorageService;
|
||||
|
||||
@ -12,7 +12,7 @@ class UploadController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Post("/avatar/img", name="desktop.upload.avatar_img")
|
||||
* @Post("/avatar/img", name="home.upload.avatar_img")
|
||||
*/
|
||||
public function uploadAvatarImageAction()
|
||||
{
|
||||
@ -33,14 +33,14 @@ class UploadController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/im/img", name="desktop.upload.im_img")
|
||||
* @Post("/im/img", name="home.upload.im_img")
|
||||
*/
|
||||
public function uploadImImageAction()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/im/file", name="desktop.upload.im_file")
|
||||
* @Post("/im/file", name="home.upload.im_file")
|
||||
*/
|
||||
public function uploadImFileAction()
|
||||
{
|
@ -1,24 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Desktop\Controllers;
|
||||
namespace App\Http\Home\Controllers;
|
||||
|
||||
use App\Services\Frontend\My\AccountInfo as AccountInfoService;
|
||||
use App\Services\Frontend\My\ConsultList as MyConsultListService;
|
||||
use App\Services\Frontend\My\CourseList as MyCourseListService;
|
||||
use App\Services\Frontend\My\FavoriteList as MyFavoriteListService;
|
||||
use App\Services\Frontend\My\FriendList as MyFriendListService;
|
||||
use App\Services\Frontend\My\GroupList as MyGroupListService;
|
||||
use App\Services\Frontend\My\OrderList as MyOrderListService;
|
||||
use App\Services\Frontend\My\ProfileInfo as ProfileInfoService;
|
||||
use App\Services\Frontend\My\ProfileUpdate as ProfileUpdateService;
|
||||
use App\Services\Frontend\My\RefundList as MyRefundListService;
|
||||
use App\Services\Frontend\My\ReviewList as MyReviewListService;
|
||||
use App\Services\Logic\User\Console\AccountInfo as AccountInfoService;
|
||||
use App\Services\Logic\User\Console\ConsultList as ConsultListService;
|
||||
use App\Services\Logic\User\Console\CourseList as CourseListService;
|
||||
use App\Services\Logic\User\Console\FavoriteList as FavoriteListService;
|
||||
use App\Services\Logic\User\Console\FriendList as FriendListService;
|
||||
use App\Services\Logic\User\Console\GroupList as GroupListService;
|
||||
use App\Services\Logic\User\Console\OrderList as OrderListService;
|
||||
use App\Services\Logic\User\Console\ProfileInfo as ProfileInfoService;
|
||||
use App\Services\Logic\User\Console\ProfileUpdate as ProfileUpdateService;
|
||||
use App\Services\Logic\User\Console\RefundList as RefundListService;
|
||||
use App\Services\Logic\User\Console\ReviewList as ReviewListService;
|
||||
use Phalcon\Mvc\Dispatcher;
|
||||
|
||||
/**
|
||||
* @RoutePrefix("/my")
|
||||
* @RoutePrefix("/uc")
|
||||
*/
|
||||
class MyController extends Controller
|
||||
class UserConsoleController extends Controller
|
||||
{
|
||||
|
||||
public function beforeExecuteRoute(Dispatcher $dispatcher)
|
||||
@ -26,7 +26,7 @@ class MyController extends Controller
|
||||
parent::beforeExecuteRoute($dispatcher);
|
||||
|
||||
if ($this->authUser->id == 0) {
|
||||
$this->response->redirect(['for' => 'desktop.account.login']);
|
||||
$this->response->redirect(['for' => 'home.account.login']);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ class MyController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/", name="desktop.my.index")
|
||||
* @Get("/index", name="home.uc.index")
|
||||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
@ -42,7 +42,7 @@ class MyController extends Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/profile", name="desktop.my.profile")
|
||||
* @Get("/profile", name="home.uc.profile")
|
||||
*/
|
||||
public function profileAction()
|
||||
{
|
||||
@ -50,11 +50,12 @@ class MyController extends Controller
|
||||
|
||||
$user = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/profile');
|
||||
$this->view->setVar('user', $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/account", name="desktop.my.account")
|
||||
* @Get("/account", name="home.uc.account")
|
||||
*/
|
||||
public function accountAction()
|
||||
{
|
||||
@ -62,112 +63,119 @@ class MyController extends Controller
|
||||
|
||||
$account = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/account');
|
||||
$this->view->setVar('account', $account);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/courses", name="desktop.my.courses")
|
||||
* @Get("/courses", name="home.uc.courses")
|
||||
*/
|
||||
public function coursesAction()
|
||||
{
|
||||
$service = new MyCourseListService();
|
||||
$service = new CourseListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/courses');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/favorites", name="desktop.my.favorites")
|
||||
* @Get("/favorites", name="home.uc.favorites")
|
||||
*/
|
||||
public function favoritesAction()
|
||||
{
|
||||
$service = new MyFavoriteListService();
|
||||
$service = new FavoriteListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/favorites');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/consults", name="desktop.my.consults")
|
||||
* @Get("/consults", name="home.uc.consults")
|
||||
*/
|
||||
public function consultsAction()
|
||||
{
|
||||
$service = new MyConsultListService();
|
||||
$service = new ConsultListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/consults');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/reviews", name="desktop.my.reviews")
|
||||
* @Get("/reviews", name="home.uc.reviews")
|
||||
*/
|
||||
public function reviewsAction()
|
||||
{
|
||||
$service = new MyReviewListService();
|
||||
$service = new ReviewListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/reviews');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/orders", name="desktop.my.orders")
|
||||
* @Get("/orders", name="home.uc.orders")
|
||||
*/
|
||||
public function ordersAction()
|
||||
{
|
||||
$service = new MyOrderListService();
|
||||
$service = new OrderListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/orders');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/refunds", name="desktop.my.refunds")
|
||||
* @Get("/refunds", name="home.uc.refunds")
|
||||
*/
|
||||
public function refundsAction()
|
||||
{
|
||||
$service = new MyRefundListService();
|
||||
$service = new RefundListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('user/console/refunds');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/friends", name="desktop.my.friends")
|
||||
* @Get("/friends", name="home.uc.friends")
|
||||
*/
|
||||
public function friendsAction()
|
||||
{
|
||||
$service = new MyFriendListService();
|
||||
$service = new FriendListService();
|
||||
|
||||
$pager = $service->handle();
|
||||
|
||||
$this->view->pick('my/friends');
|
||||
$this->view->pick('user/console/friends');
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Get("/groups", name="desktop.my.groups")
|
||||
* @Get("/groups", name="home.uc.groups")
|
||||
*/
|
||||
public function groupsAction()
|
||||
{
|
||||
$scope = $this->request->getQuery('scope', 'string', 'joined');
|
||||
|
||||
$service = new MyGroupListService();
|
||||
$service = new GroupListService();
|
||||
|
||||
$pager = $service->handle($scope);
|
||||
|
||||
$this->view->pick('my/groups');
|
||||
$this->view->pick('user/console/groups');
|
||||
$this->view->setVar('scope', $scope);
|
||||
$this->view->setVar('pager', $pager);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Post("/profile/update", name="desktop.my.update_profile")
|
||||
* @Post("/profile/update", name="home.uc.update_profile")
|
||||
*/
|
||||
public function updateProfileAction()
|
||||
{
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user