Compare commits

..

No commits in common. "48faac877153dcccab42c72ee4c4ce8d1aea06ee" and "859a94be843036f9e156d54698f58dfa57e1107b" have entirely different histories.

22 changed files with 281 additions and 525 deletions

View File

@ -25,10 +25,9 @@ jobs:
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@v2
with: with:
php-version: ${{ matrix.php-version }} php-version: ${{ matrix.php-version }}
ini-values: opcache.enable_cli=1, extension=gd
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, gd extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, gd
tools: composer:${{ matrix.composer-version }} tools: composer:${{ matrix.composer-version }}
ini-values: opcache.enable_cli=1, extension=gd
env: env:
debug: true debug: true

View File

@ -4,11 +4,12 @@ namespace App\Http\Controllers\Api;
use App\Enums\ExaminationTypeEnum; use App\Enums\ExaminationTypeEnum;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\Department;
use App\Models\Direction; use App\Models\Direction;
use App\Models\EntranceExamination; use App\Models\EntranceExamination;
use App\Services\DirectonHtmlBuilder; use App\Models\Faculty;
use App\Services\DirectonHtmlBuilderForCalculator;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\URL;
class CalculatorController extends Controller class CalculatorController extends Controller
{ {
@ -33,7 +34,7 @@ class CalculatorController extends Controller
return $carry; return $carry;
}, []); }, []);
$directionIds = collect($filteredDirectionIds) $result = collect($filteredDirectionIds)
->filter(function ($subjectTypes) use ($calcultatorSubjects) { ->filter(function ($subjectTypes) use ($calcultatorSubjects) {
$requiredSubjects = $subjectTypes[1]; $requiredSubjects = $subjectTypes[1];
return array_reduce($requiredSubjects, function ($acc, $requiredSubjects) use ($calcultatorSubjects) { return array_reduce($requiredSubjects, function ($acc, $requiredSubjects) use ($calcultatorSubjects) {
@ -50,161 +51,97 @@ class CalculatorController extends Controller
return $optionalSubjectsInCalculator->count() !== 0; return $optionalSubjectsInCalculator->count() !== 0;
} }
return true; return true;
}) })->map(fn($subjectTypes, $directionId) => $directionId);
->map(fn($subjectTypes, $directionId) => $directionId);
$directions = Direction::whereIn('id', $result)->get();
$directions = Direction::whereIn('id', $directionIds)->get();
// dd($directionIds);
$dataToGenerateHTML = $this->getDirectionsToModals($directionIds);
// dd($dataToGenerateHTML);
$generateHtml = function ($acc, $direction) { $generateHtml = function ($acc, $direction) {
$builder = new DirectonHtmlBuilderForCalculator($direction); $department = Department::find($direction->department_id);
$offCanvasModal = $builder->getHTML(); $faculty = Faculty::find($department->faculty_id);
// dd($offCanvasModal); // phpcs:disable
$fon_3 = URL::to('img/front-page/bakalavr-special/fon3_blok.png');
return "{$acc} <tr class=\"border-bottom border-white my-3\"> return "{$acc} <tr class=\"border-bottom border-white my-3\">
<td class='w-25 '> <td class='w-25 '>
<a class=\"hover2 \" type=\"button\" data-bs-toggle=\"offcanvas\" <a class=\"hover2 \" type=\"button\" data-bs-toggle=\"offcanvas\" data-bs-target=\"#offcanvasScrolling-{$direction->id}{$direction->id }\" aria-controls=\"offcanvasScrolling\" role=\"button\">{$direction->name}</a>
data-bs-target=\"#calc-{$direction['id']}\" aria-controls=\"offcanvasScrolling\" role=\"button\" <div class=\"offcanvas offcanvas-bottom\" data-bs-scroll=\"true\" data-bs-backdrop=\"false\" tabindex=\"-1\" id=\"offcanvasScrolling-{$direction->id }{$direction->id}\" aria-labelledby=\"offcanvasScrollingLabel-{$direction->id}{$direction->id}\" style=\"height: 100%; font-family: Geologica-Medium; overflow-y: auto ; background-image: url({$fon_3}); color: #004329\">
>
{$direction['name']}
</a> <div class=\"mx-5 \">
{$offCanvasModal} <div class=\"col-12 d-flex justify-content-end mt-4\">
</td> <button type=\"button\" class=\"btn-close text-reset\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\">
<td class=\"text-end\"> 123</td> </button>
<td class=\"text-end\"> 456 </td> </div>
<div class='row'>
<div class='col-md-6 col-12 d-block'>
<div class=\"\">
<div class=\"display-6 \" style=\"font-family: Geologica-Light\"> {$direction->code} </div>
<div class=\"display-5 \" > {$direction->name} </div>
</div>
<div class=\"mt-4\">
<p style=\"text-align: justify;\">{$direction->description}</p>
</div>
</div>
<div class='col-md-6 col-12 d-flex justify-content-center align-items-center'>
<div class=\"p-3 px-5 border-success fs-4\" style='border-radius: 50px; border: 2px solid;'>
<div > Уровень образования:
<strong>{$direction->educationLevel->name} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Форма обучения:
<strong>{$direction->educationForm->name} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Бюджетные места:
<strong >{$direction->budget_places} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Квота:
<strong >{$direction->quota} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Места на контракт:
<strong >{$direction->paid_places} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Стоимость платного обучения:
<strong >{$direction->cost_paid_place} </strong>
</div>
<hr class='d-block d-md-none'><br>
<div > Период обучения (в годах):
<strong>{$direction->period} </span>
</div>
</div>
</div>
</div>
<div class=\"offcanvas-body mt-2\" style=\"font-family: Geologica-ExtraLight\">
</div>
</div>
</div>
</div>
</div>
</td>
<td class=\"text-end\"> {$direction->cost_paid_place}</td>
<td class=\"text-end\"> {$direction->period} </td>
</tr>"; </tr>";
}; };
$html = collect($dataToGenerateHTML)->reduce($generateHtml, ''); // phpcs:enable
$html = $directions->reduce($generateHtml, '');
return response()->json(['html' => $html]); return response()->json(['html' => $html]);
} }
public function getDirectionsToModals($directionIds)
{
//phpcs:disable
$directionsGroups = Direction::with(['department'])
->leftJoin('direction_direction_profile', 'directions.id', '=', 'direction_direction_profile.direction_id')
->leftJoin('direction_profiles', 'direction_direction_profile.direction_profile_id', '=', 'direction_profiles.id')
->leftJoin('departments', 'directions.department_id', '=', 'departments.id')
->leftJoin('faculties', 'departments.faculty_id', '=', 'faculties.id')
->leftJoin('education_levels', 'directions.education_level_id', '=', 'education_levels.id')
->leftJoin('education_forms', 'directions.education_form_id', '=', 'education_forms.id')
->leftJoin('entrance_examinations', 'entrance_examinations.direction_id', '=', 'directions.id')
->leftJoin('educational_institutions', 'faculties.educational_institution_id', '=', 'educational_institutions.id')
->leftJoin('examination_types', 'entrance_examinations.examination_type_id', '=', 'examination_types.id')
->leftJoin('subject_types', 'entrance_examinations.subject_type_id', '=', 'subject_types.id')
->leftJoin('subjects', 'entrance_examinations.subject_id', '=', 'subjects.id')
->select([
'directions.id as direction_id',
'directions.code as direction_code',
'directions.name as direction_name',
'directions.description as direction_description',
'directions.budget_places as direction_budget_places',
'directions.paid_places as direction_paid_places',
'directions.cost_paid_place as direction_cost_paid_place',
'directions.period as direction_period',
'education_levels.name as education_level_name',
'education_forms.name as education_form_name',
'faculties.id as faculty_id',
'faculties.name as faculty_name',
'faculties.description as faculty_description',
'educational_institutions.id as educational_institution_id',
'educational_institutions.name as educational_institution_name',
'direction_profiles.id as direction_profile_id',
'entrance_examinations.scores as entrance_examination_score',
'examination_types.name as examination_type_name',
'subject_types.name as subject_type_name',
'subjects.name as subject_name',
'direction_profiles.name as direction_profile_name',
])
->whereIn('directions.id', $directionIds)
->get()->toArray();
//phpcs:enable
$branches = [];
$directionsGroupWithOutBranch = array_reduce($directionsGroups, function ($acc, $direction) use (&$branches) {
if ($direction['educational_institution_id'] == 3) {
$branches[] = $direction;
}
$acc[] = $direction;
return $acc;
}, []);
$groupedDirections = collect($directionsGroupWithOutBranch)
->reduce(function ($carry, $item) use ($branches) {
[
'direction_id' => $directionId,
'direction_name' => $directionName,
'direction_code' => $directionCode,
'educational_institution_id' => $educational_institution_id,
'educational_institution_name' => $educationalInstitutionName,
'faculty_id' => $facultyId,
'faculty_name' => $facultyName,
'faculty_description' => $facultyDescription,
'education_level_name' => $educationLevelName,
'education_form_name' => $educationFormName,
'entrance_examination_score' => $entranceExaminationScore,
'examination_type_name' => $examinationTypeName,
'subject_type_name' => $subjectTypeName,
'subject_name' => $subjectName,
'direction_profile_name' => $directionProfileName,
'direction_budget_places' => $directionBudgetPlaces,
'direction_paid_places' => $directionPaidPlaces,
'direction_cost_paid_place' => $directionCostPaidPlace,
'direction_period' => $directionPeriod,
'direction_description' => $directionDescription,
] = $item;
// $carry[$facultyName]['id'] = $facultyId;
// $carry[$facultyName]['name'] = $facultyName;
// $carry[$facultyName]['description'] = $facultyDescription;
$carry[$directionName]['name'] = $directionName;
$carry[$directionName]['id'] = $directionId;
$carry[$directionName]['code'] = $directionCode;
$carry[$directionName]['education_level'] = $educationLevelName;
$carry[$directionName]['education_form'][] = $educationFormName;
$carry[$directionName]['education_form'] = array_unique(
$carry[$directionName]['education_form']
);
$carry[$directionName]['entrance_examinations']
[$examinationTypeName][$subjectTypeName][$subjectName] = $entranceExaminationScore;
$carry[$directionName]['budget_places']
[$educationalInstitutionName][$directionProfileName][$educationFormName] = $directionBudgetPlaces;
$carry[$directionName]['paid_places']
[$educationalInstitutionName][$directionProfileName][$educationFormName] = $directionPaidPlaces;
/*$carry[$facultyName]['directions'][$directionName]
['paid_places'][$educationFormName] = $directionPaidPlaces;*/
$carry[$directionName]
['cost_paid_place'][$educationFormName] = $directionCostPaidPlace;
$carry[$directionName]['period'][$educationFormName] = $directionPeriod;
$carry[$directionName]['description'] = $directionDescription;
foreach ($branches as $branch) {
[
'direction_name' => $directionNameBranch,
'educational_institution_name' => $educationalInstitutionNameBranch,
'direction_profile_name' => $directionProfileNameBranch,
'education_form_name' => $educationFormNameBranch,
'direction_budget_places' => $directionBudgetPlacesBranch
] = $branch;
if ($directionNameBranch === $directionName) {
$carry[$directionName]['budget_places']
[$educationalInstitutionNameBranch][$directionProfileNameBranch]
[$educationFormNameBranch] = $directionBudgetPlacesBranch;
}
}
return $carry;
}, []);
return $groupedDirections;
}
} }

View File

@ -23,7 +23,6 @@ class PageController extends Controller
public function directions() public function directions()
{ {
$admissions = Admission::all();
$faculties = Faculty::all(); $faculties = Faculty::all();
$subjects = EntranceExamination::all() $subjects = EntranceExamination::all()
->select('subject_id', 'subject_type_id', 'examination_type_id') ->select('subject_id', 'subject_type_id', 'examination_type_id')
@ -48,16 +47,26 @@ class PageController extends Controller
'directions.name', 'directions.name',
"educational_institutions.name as educational_institution_name" "educational_institutions.name as educational_institution_name"
]); ]);
//phpcs:disable
$directionsGroups = Direction::with(['department']) $directionsGroups = Direction::with(['department'])
->leftJoin('direction_direction_profile', 'directions.id', '=', 'direction_direction_profile.direction_id') ->leftJoin('direction_direction_profile', 'directions.id', '=', 'direction_direction_profile.direction_id')
->leftJoin('direction_profiles','direction_direction_profile.direction_profile_id','=','direction_profiles.id') ->leftJoin(
'direction_profiles',
'direction_direction_profile.direction_profile_id',
'=',
'direction_profiles.id'
)
->leftJoin('departments', 'directions.department_id', '=', 'departments.id') ->leftJoin('departments', 'directions.department_id', '=', 'departments.id')
->leftJoin('faculties', 'departments.faculty_id', '=', 'faculties.id') ->leftJoin('faculties', 'departments.faculty_id', '=', 'faculties.id')
->leftJoin('education_levels', 'directions.education_level_id', '=', 'education_levels.id') ->leftJoin('education_levels', 'directions.education_level_id', '=', 'education_levels.id')
->leftJoin('education_forms', 'directions.education_form_id', '=', 'education_forms.id') ->leftJoin('education_forms', 'directions.education_form_id', '=', 'education_forms.id')
->leftJoin('entrance_examinations', 'entrance_examinations.direction_id', '=', 'directions.id') ->leftJoin('entrance_examinations', 'entrance_examinations.direction_id', '=', 'directions.id')
->leftJoin('educational_institutions','faculties.educational_institution_id','=','educational_institutions.id') ->leftJoin(
'educational_institutions',
'faculties.educational_institution_id',
'=',
'educational_institutions.id'
)
->leftJoin('examination_types', 'entrance_examinations.examination_type_id', '=', 'examination_types.id') ->leftJoin('examination_types', 'entrance_examinations.examination_type_id', '=', 'examination_types.id')
->leftJoin('subject_types', 'entrance_examinations.subject_type_id', '=', 'subject_types.id') ->leftJoin('subject_types', 'entrance_examinations.subject_type_id', '=', 'subject_types.id')
->leftJoin('subjects', 'entrance_examinations.subject_id', '=', 'subjects.id') ->leftJoin('subjects', 'entrance_examinations.subject_id', '=', 'subjects.id')
@ -85,7 +94,7 @@ class PageController extends Controller
'direction_profiles.name as direction_profile_name', 'direction_profiles.name as direction_profile_name',
) )
->get()->toArray(); ->get()->toArray();
//phpcs:enable
$branches = []; $branches = [];
$directionsGroupWithOutBranch = array_reduce($directionsGroups, function ($acc, $direction) use (&$branches) { $directionsGroupWithOutBranch = array_reduce($directionsGroups, function ($acc, $direction) use (&$branches) {
@ -173,8 +182,7 @@ class PageController extends Controller
'faculties', 'faculties',
'subjects', 'subjects',
'directionsWithInstitution', 'directionsWithInstitution',
'groupedDirections', 'groupedDirections'
'admissions',
)); ));
} }

View File

@ -100,7 +100,7 @@ class DirectonHtmlBuilder
} }
$tmp = str_replace(' ', '', $profile_name); $tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp); $tmp = str_replace(',', '', $tmp);
$mgtu .= "<div class=\"accordion mb-3\" id=\"accordionExample\" > $mgtu .= "<div class=\"accordion\" id=\"accordionExample\" >
<div class=\"accordion-item\" style='border-radius: 20px;'> <div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\" style='border-radius: 20px;'> <h2 class=\"accordion-header\" style='border-radius: 20px;'>
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\"> <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\">
@ -134,7 +134,7 @@ class DirectonHtmlBuilder
} }
$tmp = str_replace(' ', '', $profile_name); $tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp); $tmp = str_replace(',', '', $tmp);
$filial .= "<div class=\"accordion mb-3 \" id=\"accordionExample\"> $filial .= "<div class=\"accordion \" id=\"accordionExample\">
<div class=\"accordion-item\" style='border-radius: 20px;'> <div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\" style='border-radius: 20px;'> <h2 class=\"accordion-header\" style='border-radius: 20px;'>
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\"> <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\">
@ -161,7 +161,7 @@ class DirectonHtmlBuilder
} }
$tmp = str_replace(' ', '', $profile_name); $tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp); $tmp = str_replace(',', '', $tmp);
$paid_places_content .= "<div class=\"accordion mb-3 \" id=\"accordionExample\"> $paid_places_content .= "<div class=\"accordion \" id=\"accordionExample\">
<div class=\"accordion-item\" style='border-radius: 20px;'> <div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\" style='border-radius: 20px;'> <h2 class=\"accordion-header\" style='border-radius: 20px;'>
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}{$tmp}\"> <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}{$tmp}\">

View File

@ -1,276 +0,0 @@
<?php
namespace App\Services;
use Illuminate\Support\Facades\URL;
// phpcs:disable
class DirectonHtmlBuilderForCalculator
{
private array $direction;
public function __construct($direction)
{
$this->direction = $direction;
}
public function getHTML()
{
$direction = $this->direction;
$fon_3 = URL::to('img/front-page/bakalavr-special/fon3_blok.png');
$green_circle = URL::to('img/front-page/green-circle.png');
$education_form = '';
foreach ($direction['education_form'] as $el) {
$education_form .= $el . ', ';
}
$education_form = substr($education_form, 0, -2);
$period = '<br>';
foreach ($direction['period'] as $key => $el) {
$period .= '<span style="font-family: Geologica-ExtraLight">' . $key . '</span> - ' . '<strong>' . $el . '</strong><br>' ;
}
//dd($direction);
$paid_cost = '<div class="col-auto ">
<strong class="fs-3"> Стоимость обучения </strong>
<br>
<br>
<div class="fs-4 text-start">';
foreach ($direction['cost_paid_place'] as $key => $el) {
$paid_cost .= '<span style="font-family: Geologica-ExtraLight">' . $key . '</span> - ' . '<strong>' . $el . '</strong><br>' ;
}
$paid_cost .= '</div></div>';
$EGE = '<div class="col-auto ">
<strong> ЕГЭ </strong>
<br>
<br>
<div class=" d-inline-block p-2 text-start">';
foreach ($direction['entrance_examinations']['ЕГЭ']['Обязательные'] as $key => $el) {
$EGE .= '<span style="font-family: Geologica-ExtraLight">' . $key . '</span> - ' . '<strong>' . $el . '</strong><br>' ;
}
$EGE .= '</div></div>';
$po_viboru = '<div class="col-auto ">
<strong> Предметы по выбору </strong>
<br>
<br>
<div class=" d-inline-block p-2 text-start">';
if (array_key_exists('Предметы по выбору', $direction['entrance_examinations']['ЕГЭ'])) {
foreach ($direction['entrance_examinations']['ЕГЭ']['Предметы по выбору'] as $key => $el) {
$po_viboru .= '<span style="font-family: Geologica-ExtraLight">' . $key . '</span> - ' . '<strong>' . $el . '</strong><br>' ;
}
$po_viboru .= '</div></div>';
} else {
$po_viboru = '';
}
$SPO = '<div class="col-auto ">
<strong> СПО </strong>
<br>
<br>
<div class=" d-inline-block p-2 text-start">';
if (array_key_exists('СПО', $direction['entrance_examinations'])) {
foreach ($direction['entrance_examinations']['СПО']['Обязательные'] as $key => $el) {
$SPO .= '<span style="font-family: Geologica-ExtraLight">' . $key . '</span> - ' . '<strong>' . $el . '</strong><br>' ;
}
$SPO .= '</div></div>';
} else {
$SPO = '';
}
$mgtu = '';
if (array_key_exists('МГТУ', $direction['budget_places'])) {
foreach ($direction['budget_places']['МГТУ'] as $profile_name => $profile) {
$profile_content = '';
foreach ($profile as $forms => $budget_places) {
$profile_content .= "<strong> {$forms} </strong> - " . "<span style=\'font-family: Geologica-ExtraLight\'> {$budget_places} </span><br>";
}
$tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp);
$mgtu .= "<div class=\"accordion mb-3\" id=\"accordionExample\">
<div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\">
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\">
$profile_name
</button>
</h2>
<div id=\"collapse-{$tmp}\" class=\"accordion-collapse collapse show\" data-bs-parent=\"#accordionExample\">
<div class=\"accordion-body\">
$profile_content
</div>
</div>
</div>
</div>" ;
}
}
// if($direction['name'] == 'Нефтегазовое дело') {
// dd($direction);
// };
// dd($direction);
$filial = '';
if (array_key_exists('Филиал МГТУ (пос. Яблоновский)', $direction['budget_places'])) {
foreach ($direction['budget_places']['Филиал МГТУ (пос. Яблоновский)'] as $profile_name => $profile) {
$profile_content = '';
foreach ($profile as $forms => $budget_places) {
$profile_content .= "<strong> {$forms} </strong> - " . "<span style=\'font-family: Geologica-ExtraLight\'> {$budget_places} </span><br>";
}
$tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp);
$filial .= "<div class=\"accordion mb-3 \" id=\"accordionExample\">
<div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\">
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}\">
$profile_name
</button>
</h2>
<div id=\"collapse-{$tmp}\" class=\"accordion-collapse collapse show\" data-bs-parent=\"#accordionExample\">
<div class=\"accordion-body\">
$profile_content
</div>
</div>
</div>
</div>" ;
}
} else {
$filial = '<div class="w-100 h-100 d-flex justify-content-center align-items-center" >Этой специальности нет в филиалле</div>';
}
$paid_places_content = '';
foreach ($direction['paid_places'] as $institution) {
foreach ($institution as $profile_name => $profile) {
$profile_content = '';
foreach ($profile as $forms => $paid_places) {
$profile_content .= "<strong> {$forms} </strong> - " . "<span style=\'font-family: Geologica-ExtraLight\'> {$paid_places} </span><br>";
}
$tmp = str_replace(' ', '', $profile_name);
$tmp = str_replace(',', '', $tmp);
$paid_places_content .= "<div class=\"accordion mb-3\" id=\"accordionExample\">
<div class=\"accordion-item\" style='border-radius: 20px;'>
<h2 class=\"accordion-header\">
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-{$tmp}{$tmp}\" aria-expanded=\"true\" aria-controls=\"collapse-{$tmp}{$tmp}\">
$profile_name
</button>
</h2>
<div id=\"collapse-{$tmp}{$tmp}\" class=\"accordion-collapse collapse show\" data-bs-parent=\"#accordionExample\">
<div class=\"accordion-body\">
$profile_content
</div>
</div>
</div>
</div>" ;
}
}
return "<div class=\"offcanvas offcanvas-bottom\" data-bs-scroll=\"true\" data-bs-backdrop=\"false\" tabindex=\"-1\" id=\"calc-{$direction['id'] }\" aria-labelledby=\"Labelcalc-{$direction['id']}\" style=\"height: 100%; font-family: Geologica-Medium; overflow-y: auto ; background-image: url({$fon_3}); color: #004329\">
<div class=\"mx-5 pb-5\">
<div class=\"col-12 d-flex justify-content-end mt-4\">
<button type=\"button\" class=\"btn-close text-reset\" data-bs-dismiss=\"offcanvas\" aria-label=\"Close\"></button>
</div>
<div class='row'>
<div class='col-11 d-block'>
<div class='col ms-4'>
<div class=\"display-5 \" style=\"font-family: Geologica-Light\"> {$direction['code']} </div>
<div class=\"display-5 \" > {$direction['name']}</div>
</div>
<div class='col d-flex justify-content-end'>
<div class=\"fs-5 mb-3 \" style=\"font-family: Geologica-Light\">
<button type='button' class='calc_green_circle_button hover2 btn btn-outline-success' data-institut='mgtu' data-id='{$direction['id']}calc'>
<img style='width: 8px; height: auto;' id = 'id_mgtu_{$direction['id']}calc' src='img/front-page/green-circle.png'>
МГТУ
</button> |
<button type='button' class='calc_green_circle_button hover2 btn btn-outline-success' data-institut='filial' data-id='{$direction['id']}calc'>
<img style='display: none; width: 8px; height: auto;' id = 'id_filial_{$direction['id']}calc' src='img/front-page/green-circle.png'> Филиал МГТУ (пос. Яблоновский)
</button>
</div>
</div>
</div>
<hr class='col-11 '>
<div class=\"mt-4\">
<p style=\"text-align: justify;\">{$direction['description']}</p>
</div>
</div>
<div class='row'>
<div class='col-12 col-lg-4 h-100 '>
<div class=\"p-3 px-5 border-success fs-5 h-100 \" style='border-radius: 20px; border: 2px solid;'>
<div > Уровень образования:
<strong>{$direction['education_level']} </strong>
</div>
<div > Форма обучения:
<strong> {$education_form} </strong>
</div>
<div > Период обучения (в годах):
$period
</div>
</div>
</div>
<div class='col-12 col-lg-8 col-xl-7 '>
<div class=\"p-3 px-5 border-success fs-5 h-100\" style='border-radius: 20px; border: 2px solid;'>
<strong class='d-flex justify-content-center fs-3'>Места для обучения:</strong><br>
<div class='content_budget'>
<br>
<div class='row'>
<div class='col'>
<p class='text-center'> Бюджет</p>
<div id='content_budget_filial_{$direction['id']}calc' style='display: none;' >{$filial}</div>
<div id='content_budget_mgtu_{$direction['id']}calc' >{$mgtu}</div>
</div>
<div class='col'>
<p class='text-center'> Коммерция</p>
<div> $paid_places_content </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='row mt-3'>
<div class='col-12 col-lg-9 '>
<div class=\"p-3 px-5 border-success fs-5 h-100\" style='border-radius: 20px; border: 2px solid;'>
<strong class='fs-3'> Проходные баллы:</strong>
<div class='row mt-3'>
$EGE $po_viboru $SPO
</div>
</div>
</div>
<div class='col-12 col-lg-3 col-xl-2 '>
<div class=\"p-3 border-success fs-5 h-100 col\" style='border-radius: 20px; border: 2px solid;'>
$paid_cost
</div>
</div>
</div>
</div>
</div>
</div>";
}
// phpcs:enable
}

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

BIN
public/img/faculties/11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/img/faculties/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/img/faculties/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

BIN
public/img/faculties/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -356,22 +356,11 @@
style=" background: linear-gradient(#56CCF2, #56CCF200); border-radius: 20px; letter-spacing: 0; "> style=" background: linear-gradient(#56CCF2, #56CCF200); border-radius: 20px; letter-spacing: 0; ">
День открытых дверей День открытых дверей
</a> </a>
<!-- Button trigger modal --> <a href="#"
<a type="button" class="hover1 col-auto text-white position-relative z-2 mb-3 mx-3 text-center text-md-start shadow py-3 px-4 justify-content-center d-inline-flex" data-bs-toggle="modal" data-bs-target="#exampleModal" style=" background: linear-gradient(#56CCF2, #56CCF200); border-radius: 20px; letter-spacing: 0; "> class=" hover1 col-auto text-white position-relative z-2 mb-3 mx-3 text-center text-md-start shadow py-3 px-4 justify-content-center d-inline-flex"
Видео про МГТУ style=" background: linear-gradient(#56CCF2, #56CCF200); border-radius: 20px; letter-spacing: 0; ">
Твои возможности
</a> </a>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered">
<div class="modal-content">
<iframe width="100%" height="405" src="https://rutube.ru/play/embed/c2f57bbb4c09b2c8dc78b5e5ccd9cefb" frameBorder="0" allow="clipboard-write; autoplay" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</div>
</div>
</div>
</div> </div>
@ -391,28 +380,8 @@
</div> </div>
<div class="row d-flex justify-content-md-start justify-content-center"> <div class="row d-flex justify-content-md-start justify-content-center">
@php @php use App\Services\DirectonHtmlBuilder; @endphp
use App\Services\DirectonHtmlBuilder;
use Illuminate\Support\Facades\Storage;
$facultiesLogosPaths = array();
@endphp
@foreach($groupedDirections as $faculty) @foreach($groupedDirections as $faculty)
@php
$path = "img/faculties/" . $faculty['name'] . '.png';
if(file_exists($path) == false){
$path = URL::to('img/faculties/Экологический факультет.png');
}
$path = URL::to($path);
$groupedDirections[$faculty['name']]['path'] = $path;
@endphp
@endforeach
@foreach($groupedDirections as $faculty)
<div class="mt-xl-5 col-xxl-4 col-md-6 col-10 "> <div class="mt-xl-5 col-xxl-4 col-md-6 col-10 ">
@ -421,7 +390,7 @@
class=" col-md-11 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex justify-content-start align-items-center hover1 " class=" col-md-11 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex justify-content-start align-items-center hover1 "
style="background-color: #ffffff; border-radius: 15px; border: unset;"> style="background-color: #ffffff; border-radius: 15px; border: unset;">
<img class=" " style="width: 108px; height: auto " <img class=" " style="width: 108px; height: auto "
src="{{$groupedDirections[$faculty['name']]['path']}}" alt=""> src="{{ URL::to('img/faculties/5.png') }}" alt="">
<span class="ms-xl-5 ms-2 z-3 gradient-text text-start"> {{ $faculty['name'] }}</span> <span class="ms-xl-5 ms-2 z-3 gradient-text text-start"> {{ $faculty['name'] }}</span>
</button> </button>
@ -432,7 +401,7 @@
<div class="modal-content"> <!--style="border-radius: 30px;"--> <div class="modal-content"> <!--style="border-radius: 30px;"-->
<div class="modal-header d-flex justify-content-center"> <div class="modal-header d-flex justify-content-center">
<img class="" style="width: 108px; height: auto " <img class="" style="width: 108px; height: auto "
src="{{$groupedDirections[$faculty['name']]['path']}}" alt=""> src="{{ URL::to('img/faculties/5.png') }}" alt="">
</div> </div>
@ -602,25 +571,6 @@
}); });
}); });
}; };
</script>
<script>
$(".calc_green_circle_button").click(function () {
console.log('111')
let name=$(this).data('id');
let institut=$(this).data('institut');
if(institut=='mgtu') {
$("#content_budget_filial_" + id).hide();
$("#content_budget_mgtu_" + id).show();
$("#id_mgtu_" + id).show();
$("#id_filial_" + id).hide();
}else{
$("#content_budget_filial_"+id).show();
$("#content_budget_mgtu_"+id).hide();
$("#id_mgtu_"+id).hide();
$("#id_filial_"+id).show();
}
});
</script> </script>
</div> </div>
</div> </div>
@ -685,38 +635,176 @@
</div> </div>
</div> --> </div> -->
<div class="mt-3 d-flex justify-content-start scroll-1 ps-lg-0 ms-lg-0 ps-3 ms-3"> <div class="mt-3 d-flex justify-content-start scroll-1 ps-lg-0 ms-lg-0 ps-3 ms-3">
<div class="row ps-2 scroll-1 mb-4 " style=" overflow:auto; width: 95%; height: 30em;"> <div class="row ps-2 scroll-1 mb-4 " style=" overflow:auto; width: 95%; height: 60em;">
<div class="col-11 "> <div class="col-11 ">
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
@foreach($admissions as $admission) <div class="col-9 m-3">
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;"> <div class="fs-4 gradient-text">
<div class="col-9 m-3"> Начало приема документов
<div class="fs-4 gradient-text"> </div>
{{$admission->name}} <p class="mt-2 gradient-text"
</div> style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
@foreach($admission->documents as $document) как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
<div class="row mt-2 gradient-text shadow p-2 my-3 rounded-3" </p>
style=" font-family: Geologica-ExtraLight; font-size: 16px; "> </div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<a href="{{ URL::to($document->url) }}" > <strong>{{ $document->name }} </strong> <img class="" style="width: 22px; height: auto" src="{{ URL::to('img/front-page/pointer-svgrepo-com.png') }}"></a> <div>
<br> <div class="row mb-3 ms-3">
{{$document->description}} <div class="col-6"> 20.06.24</div>
</div> <div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
@endforeach
</div> </div>
</div> </div>
@endforeach </div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<div class="row shadow-lg mt-3 bg-white" style=" border-radius: 20px;">
<div class="col-9 m-3">
<div class="fs-4 gradient-text">
Начало приема документов
</div>
<p class="mt-2 gradient-text"
style=" font-family: Geologica-ExtraLight; font-size: 16px; ">
А ещё базовые сценарии поведения пользователей представляют собой не что иное,
как квинтэссенцию победы
маркетинга над разумом и должны быть описаны максимально подробно
</p>
</div>
<div class="col-12 col-xxl-2 d-flex align-items-center ">
<div>
<div class="row mb-3 ms-3">
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
<div class="col-6"> 20.06.24</div>
<div class="col-6"> Бюджет</div>
</div>
</div>
</div>
</div>
<br><br><br><br><br><br><br><br> <br><br><br><br><br><br><br><br>
</div> </div>
@ -982,8 +1070,8 @@
<a href="#"><img width="30px" height="30px" src="{{ URL::to('img/front-page/odnok.png') }}" alt="vid"></a> <a href="#"><img width="30px" height="30px" src="{{ URL::to('img/front-page/odnok.png') }}" alt="vid"></a>
</div> </div>
</div> </div>
<div class="col" > <div class="col">
<div class="col-md-6 col-12 d-flex justify-content-md-end justify-content-center" style='border-radius: 20px;'> <div class="col-md-6 col-12 d-flex justify-content-md-end justify-content-center">
<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Abce7036e67cc958b252a800040dcada03df467881dac609a6f6b7ef8618fe7a1&amp;width=500&amp;height=400&amp;lang=ru_RU&amp;scroll=true"></script> <script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Abce7036e67cc958b252a800040dcada03df467881dac609a6f6b7ef8618fe7a1&amp;width=500&amp;height=400&amp;lang=ru_RU&amp;scroll=true"></script>
</div> </div>
</div> </div>
@ -996,7 +1084,7 @@
<br><br><br> <br><br><br>
</div> </div>
</div>
</body> </body>
@endsection @endsection

View File

@ -378,7 +378,7 @@ overflow-x: hidden;
<div class="col-xxl-4 col-md-6 col-10"> <div class="col-xxl-4 col-md-6 col-10">
<a class="col-md-10 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex hover1" style="background-color: #ffffff; border-radius: 15px;"> <a class="col-md-10 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex hover1" style="background-color: #ffffff; border-radius: 15px;">
<img class=" " style="width: 108px; height: auto " src="{{ URL::to('img/faculties/7.png') }}" alt=""> <img class=" " style="width: 108px; height: auto " src="{{ URL::to('img/faculties/1.png') }}" alt="">
<p class="ms-xl-5 ms-2 d-flex align-items-center gradient-text" > Факультет аграрных технологий</p> <p class="ms-xl-5 ms-2 d-flex align-items-center gradient-text" > Факультет аграрных технологий</p>
</a> </a>

View File

@ -379,7 +379,7 @@ overflow-x: hidden;
<div class="col-xxl-4 col-md-6 col-10"> <div class="col-xxl-4 col-md-6 col-10">
<a class="col-md-10 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex hover1" style="background-color: #ffffff; border-radius: 15px;"> <a class="col-md-10 col-12 shadow-lg p-2 ps-md-3 mt-3 d-flex hover1" style="background-color: #ffffff; border-radius: 15px;">
<img class=" " style="width: 108px; height: auto " src="{{ URL::to('img/faculties/7.png') }}" alt=""> <img class=" " style="width: 108px; height: auto " src="{{ URL::to('img/faculties/1.png') }}" alt="">
<p class="ms-xl-5 ms-2 d-flex align-items-center gradient-text" > Факультет аграрных технологий</p> <p class="ms-xl-5 ms-2 d-flex align-items-center gradient-text" > Факультет аграрных технологий</p>
</a> </a>