edusoho二次开发增加手动发放证书功能 实现后期补发证书 php twig代码披露
1、增加了数据库
ALTER TABLE `course_member` ADD `zhengshuimgData` DATE NULL COMMENT '发证日期' AFTER `codesn`;
修改了的文件:
/src/AppBundle/Controller/Course/StudentManageController.php
/app/Resources/views/course-manage/student/tr-v2.html.twig
/src/AppBundle/Resources/config/routing.yml
/app/Resources/views/course-manage/student/send-zhengshuimg-modal.html.twig
/web/static-dist/app/js/course-manage/student-send-zhengshuimg/index.js
/src/AppBundle/Controller/My/CourseController.php
/src/Biz/Course/Service/Impl/MemberServiceImpl.php
/src/Biz/Course/Dao/Impl/CourseMemberDaoImpl.php
/src/AppBundle/Controller/TaskController.php
2、在对应的课程中 找到对应的学员进行手动给他们发放证书,以及调整发放证书的时间日期
3、在用户的个人中心里面可以看到生成好的证书界面:
4、生成证书的函数代码:
public function myzhengshuAction(Request $request)
{
$currentUser = $this->getUser();
// $profile2 = $this->getUserService()->getUserProfile($currentUser['id']);
$members = $this->getCourseMemberService()->searchMembers(array('userId' => $currentUser['id'], 'role' => 'student'), array('createdTime' => 'desc'), 0, PHP_INT_MAX);
$members = ArrayToolkit::index($members, 'courseId');
// 获取已完成未生成证书列表
$list = $this->getCourseMemberService()->getFinishedNotZhengshuimg($limit=50, $currentUser['id']);
if($list){
$url = 'http://'.$_SERVER['HTTP_HOST'];
require dirname(__DIR__) . '/phpqrcode.php';
foreach ($list as $key => $item){
try{
$nowTime = $item['finishedtime']; //isset($item['finishedTime']) && $item['finishedTime'] ? strtotime($item['finishedTime']) : time();
$y = date("Y", $nowTime);
$m = date("m", $nowTime);
$d = date("d", $nowTime);
$im = @imagecreatefrompng($_SERVER['DOCUMENT_ROOT'].$item['zhengshu']);
$font = $_SERVER['DOCUMENT_ROOT']."/assets/fonts/font.ttf";
$aaab = "/files/zhengshu/".$item['user_id']."/";
$aaab .= $item['user_id'].'-'.$item['defaultCourseId'].$y.$m.$d.'.png';
$datas = 'http://'.