2024-03-12 12:47:12 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
|
|
use App\Models\Direction;
|
2024-03-14 13:11:18 +03:00
|
|
|
use Illuminate\Support\Facades\URL;
|
2024-03-15 10:38:26 +03:00
|
|
|
use PhpParser\Node\Expr\Array_;
|
2024-03-12 12:47:12 +03:00
|
|
|
|
|
|
|
class DirectonHtmlBuilder
|
|
|
|
{
|
2024-03-15 10:38:26 +03:00
|
|
|
private array $direction;
|
2024-03-15 16:09:19 +03:00
|
|
|
|
|
|
|
|
2024-03-12 12:47:12 +03:00
|
|
|
public function __construct($direction)
|
|
|
|
{
|
|
|
|
$this->direction = $direction;
|
|
|
|
}
|
|
|
|
public function getHTML()
|
|
|
|
{
|
2024-03-15 10:38:26 +03:00
|
|
|
|
2024-03-12 13:09:48 +03:00
|
|
|
|
2024-03-12 12:47:12 +03:00
|
|
|
$direction = $this->direction;
|
2024-03-15 16:09:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-14 13:11:18 +03:00
|
|
|
$fon_3 = URL::to('img/front-page/bakalavr-special/fon3_blok.png');
|
2024-03-15 16:09:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$educationForms = '';
|
|
|
|
foreach ($direction['educationForms'] as $key => $educationForm) {
|
|
|
|
$educationForms .= $key . ', ';
|
|
|
|
}
|
|
|
|
$educationForms = substr($educationForms, 0, -2);
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-15 16:15:42 +03:00
|
|
|
// phpcs:disable
|
2024-03-15 16:09:19 +03:00
|
|
|
|
|
|
|
$budget_places_array = array();
|
2024-03-15 16:15:42 +03:00
|
|
|
foreach ($direction['educationForms'] as $key => $educationForm) {
|
2024-03-15 16:09:19 +03:00
|
|
|
$budget_places_array[$key] = $educationForm['budget_places'];
|
|
|
|
}
|
|
|
|
$budget_places = '<br>';
|
2024-03-15 16:15:42 +03:00
|
|
|
foreach ($budget_places_array as $key => $item) {
|
2024-03-15 16:09:19 +03:00
|
|
|
$budget_places .= "<span style='font-family: Geologica-ExtraLight'>$key</span> - <strong> $item </strong><br>";
|
|
|
|
}
|
|
|
|
|
|
|
|
$period_array = array();
|
|
|
|
foreach ($direction['educationForms'] as $key => $period) {
|
|
|
|
$period_array[$key] = $period['period'];
|
|
|
|
}
|
|
|
|
$period = '<br>';
|
|
|
|
foreach ($period_array as $key => $item) {
|
|
|
|
$period .= "<span style='font-family: Geologica-ExtraLight'>$key</span> - <strong> $item </strong><br>";
|
|
|
|
}
|
|
|
|
$profiles = '';
|
|
|
|
//if (array_key_exists('educationalInstitution',$direction)) echo '+++++'; else echo '----';
|
|
|
|
//exit();
|
2024-03-15 16:15:42 +03:00
|
|
|
if (array_key_exists('educationalInstitution', $direction)) {
|
2024-03-15 16:09:19 +03:00
|
|
|
foreach ($direction['educationalInstitution'] as $educationalInstitution_name => $educationalInstitution) {
|
2024-03-18 13:03:50 +03:00
|
|
|
|
2024-03-15 16:09:19 +03:00
|
|
|
$profiles .= "<p> {$educationalInstitution_name}</p>";
|
|
|
|
foreach ($educationalInstitution as $profile_name => $profile) {
|
2024-03-18 13:03:50 +03:00
|
|
|
$profile_out = '<br>';
|
2024-03-15 16:09:19 +03:00
|
|
|
foreach ($profile as $key => $value) {
|
|
|
|
$profile_out .= "<span style='font-family: Geologica-ExtraLight'>{$key}</span> - <strong> {$value['budget_places']} </strong><br>";
|
|
|
|
}
|
|
|
|
$tmp = str_replace(' ', '', $profile_name);
|
2024-03-18 13:03:50 +03:00
|
|
|
$tmp = str_replace(',', '', $tmp);
|
|
|
|
// $print_r = '<pre>' . print_r($direction,1) . '<pre>';
|
2024-03-15 16:09:19 +03:00
|
|
|
$profiles .= "
|
|
|
|
<div class=\"accordion \" id=\"accordionPanelsStayOpenExample\">
|
|
|
|
<div class=\"accordion-item\">
|
|
|
|
<h2 class=\"accordion-header\">
|
|
|
|
<button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#panelsStayOpen-{$tmp}\" aria-expanded=\"true\" aria-controls=\"panelsStayOpen-{$tmp}\">
|
|
|
|
{$profile_name}
|
|
|
|
</button>
|
|
|
|
</h2>
|
|
|
|
<div id=\"panelsStayOpen-{$tmp}\" class=\"accordion-collapse collapse show\">
|
|
|
|
<div class=\"accordion-body\">
|
|
|
|
$profile_out
|
2024-03-18 13:03:50 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-15 16:09:19 +03:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
";
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2024-03-15 10:38:26 +03:00
|
|
|
return "<div class=\"offcanvas offcanvas-bottom\" data-bs-scroll=\"true\" data-bs-backdrop=\"false\" tabindex=\"-1\" id=\"offcanvasScrolling-{$direction['id'] }\" aria-labelledby=\"offcanvasScrollingLabel-{$direction['id']}\" style=\"height: 100%; font-family: Geologica-Medium; overflow-y: auto ; background-image: url({$fon_3}); color: #004329\">
|
2024-03-14 13:11:18 +03:00
|
|
|
|
|
|
|
|
|
|
|
<div class=\"mx-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-md-6 col-12 d-block'>
|
|
|
|
|
|
|
|
<div class=\"\">
|
2024-03-15 10:38:26 +03:00
|
|
|
<div class=\"display-6 \" style=\"font-family: Geologica-Light\"> {$direction['code']} </div>
|
|
|
|
<div class=\"display-5 \" > {$direction['name']}</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
</div>
|
2024-03-14 13:11:18 +03:00
|
|
|
<div class=\"mt-4\">
|
2024-03-15 10:38:26 +03:00
|
|
|
<p style=\"text-align: justify;\">{$direction['description']}</p>
|
2024-03-15 16:09:19 +03:00
|
|
|
<div class='row'> <p class='fs-5'> Бюджетные места: </p> {$profiles} </div>
|
|
|
|
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
|
2024-03-15 16:09:19 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-12 12:47:12 +03:00
|
|
|
</div>
|
|
|
|
|
|
|
|
|
2024-03-14 13:11:18 +03:00
|
|
|
<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 > Уровень образования:
|
2024-03-15 10:38:26 +03:00
|
|
|
<strong>{$direction['educationLevel']} </strong>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Форма обучения:
|
2024-03-15 16:09:19 +03:00
|
|
|
<strong> $educationForms
|
2024-03-15 10:38:26 +03:00
|
|
|
</strong>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Бюджетные места:
|
2024-03-15 16:09:19 +03:00
|
|
|
{$budget_places}
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Квота:
|
2024-03-15 10:38:26 +03:00
|
|
|
<strong >{$direction['quota']} </strong>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Места на контракт:
|
2024-03-15 10:38:26 +03:00
|
|
|
<strong >{$direction['paid_places']} </strong>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Стоимость платного обучения:
|
2024-03-15 16:09:19 +03:00
|
|
|
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
|
|
|
<hr class='d-block d-md-none'><br>
|
|
|
|
<div > Период обучения (в годах):
|
2024-03-15 16:09:19 +03:00
|
|
|
{$period}
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
</div>
|
|
|
|
</div>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
|
|
|
|
<div class=\"offcanvas-body mt-2\" style=\"font-family: Geologica-ExtraLight\">
|
2024-03-14 13:11:18 +03:00
|
|
|
|
2024-03-12 12:47:12 +03:00
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
|
2024-03-14 13:11:18 +03:00
|
|
|
</div>
|
2024-03-12 12:47:12 +03:00
|
|
|
</div> ";
|
|
|
|
}
|
2024-03-12 13:09:48 +03:00
|
|
|
// phpcs:enable
|
2024-03-12 12:47:12 +03:00
|
|
|
}
|