|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/lecturebazaar.com/app/Exports/ |
Upload File : |
<?php
namespace App\Exports;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
class QuizzesAdminExport implements FromCollection, WithHeadings, WithMapping
{
protected $sheets;
public function __construct($sheets)
{
$this->sheets = $sheets;
}
public function collection()
{
return $this->sheets;
}
public function headings(): array
{
return [
'#',
trans('admin/pages/quiz.title'),
trans('admin/pages/quiz.instructor'),
trans('admin/pages/quiz.question_count'),
trans('admin/pages/quiz.students_count'),
trans('admin/pages/quiz.average_grade'),
trans('admin/pages/quiz.certificate'),
trans('admin/main.status'),
];
}
public function map($quiz): array
{
$quiz_name = $quiz->title;
if (!empty($quiz->webinar)) {
$quiz_name .= ' (' . $quiz->webinar ? $quiz->webinar->title : '-' . ') ';
}
$certificate = ($quiz->certificate) ? trans('admin/main.yes') : trans('admin/main.no');
$status = ($quiz->status == 'active') ? trans('admin/main.active') : trans('admin/main.inactive');
return [
$quiz->id,
$quiz_name,
$quiz->teacher->full_name,
$quiz->quizQuestions->count(),
$quiz->quizResults->pluck('user_id')->count(),
$quiz->quizResults->avg('user_grade'),
$certificate,
$status
];
}
}