1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-27 13:00:23 +08:00

优化命名

This commit is contained in:
xiaochong0302 2020-09-17 21:29:29 +08:00
parent 970f2b8903
commit cddbc08c0b
426 changed files with 1912 additions and 2092 deletions

View File

@ -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. dockersupervisordevops
3. gitlinuxphpmysqlredisnginx
- [系统服务配置](https://gitee.com/koogua/course-tencent-cloud/wikis)
#### 开发计划
@ -73,7 +54,29 @@ PS**管理后台已禁止提交并隐藏私人配置**
#### 加入我们
这是我的创业项目,个人能力和精力有限,要兼顾产品规划以及开发,还要处理很多琐碎事情。
目前在南山科技园某个众创空间,希望有 **深圳前端同学** 加入我们。
这是一个创业项目,个人能力和精力有限,要兼顾产品规划以及开发,还要处理很多琐碎事情。目前在南山科技园某个众创空间,希望有 **深圳前端同学** 加入我们。
联系邮箱76632555@qq.com
#### 通过这个项目能学到什么?
- 项目规划phalcon缓存JWT即时通讯全文检索
- dockersupervisordevops
- gitlinuxphpmysqlredisnginx
#### 有阿里云版吗?
阿里云版规划中,之前阿里云服务过期未续费,所以腾讯云版本先出。
#### 代码有加密吗?
所有代码都公开授权代码除外例如layim没有所谓的商业版和付费插件。
#### 有商业服务吗?
生存是一个问题,生存才能发展,我们为用户提供的服务包括:
- 系统安装
- 系统定制
- 企业授权

View File

@ -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();
}
}

View 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();
}
}

View File

@ -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);
}
/**

View File

@ -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)

View File

@ -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);
}
}

View File

@ -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);
}
/**

View File

@ -49,7 +49,7 @@ class SiteMapTask extends Task
{
$service = new AppService();
$settings = $service->getSectionSettings('site');
$settings = $service->getSettings('site');
return $settings['url'] ?? '';
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);

View File

@ -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();
}
}

View File

@ -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);
}
/**

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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' => '发送邮件成功,请到收件箱确认']);

View File

@ -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([

View File

@ -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);
}
}

View File

@ -20,7 +20,7 @@ class AlipayTest extends PayTest
if ($code) {
$codeUrl = $this->url->get(
['for' => 'desktop.qrcode'],
['for' => 'home.qrcode'],
['text' => urlencode($code)]
);
}

View File

@ -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',

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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)

View File

@ -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');
/**
* 验证码是一次性的,放到最后检查,减少第三方调用

View File

@ -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']);

View File

@ -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);
}
}

View File

@ -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">

View File

@ -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">
@ -81,28 +72,4 @@
{{ 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 %}

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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') }}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -19,7 +19,7 @@
<td>获取渠道</td>
<td>
<a href="https://gitee.com/koogua/course-tencent-cloud" target="_blank">Gitee</a>&nbsp;
<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>

View File

@ -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">

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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">

View File

@ -19,6 +19,6 @@
{% block link_css %}
{{ css_link("desktop/css/error.css") }}
{{ css_link("home/css/error.css") }}
{% endblock %}

View File

@ -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>

View File

@ -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) {

View File

@ -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>
<script>
{% endblock %}
var playUrl = '{{ play_url }}';
{% block inline_js %}
var player = new TcPlayer('player', {
m3u8: playUrl,
autoplay: false,
width: 720,
height: 405
});
<script src="https://imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.3.3.js"></script>
</script>
<script>
layui.use(['jquery'], function () {
new TcPlayer('player', {
m3u8: '{{ play_url }}',
autoplay: false,
width: 720,
height: 405
});
});
</script>
{% endblock %}

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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">

View File

@ -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 }}">

View File

@ -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 }}">

View File

@ -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>

View File

@ -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();

View File

@ -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">

View File

@ -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">

View File

@ -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 }}">

View File

@ -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>

View File

@ -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>

View File

@ -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 }}>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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 %}

View File

@ -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()
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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,
];
}

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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());

View File

@ -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');

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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' => '取消退款成功',
];

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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);
}

View File

@ -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)
{

View File

@ -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);
}

View File

@ -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()
{

View File

@ -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()
{

View File

@ -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