@if($isHeaderTab)
Header Settings
Update top header address, phone, email and logo.
@if (!\Illuminate\Support\Facades\Schema::hasTable('frontend_settings'))
Frontend settings table not found. Run migrations first.
@else
@endif
@elseif($isFooterTab)
Footer Settings
Update footer copy, contact labels, social links, and copyright text.
@if (!\Illuminate\Support\Facades\Schema::hasTable('frontend_settings'))
Frontend settings table not found. Run migrations first.
@else
@endif
@else
@php
$homeHeroKeys = [
'hero_primary',
'hero_emphasis',
'hero_paragraph',
'hero_cta_primary',
'hero_side_heading',
'home_about_title',
'home_about_subtitle',
'home_about_card_1',
'home_about_card_2',
'home_about_card_3',
'home_skill_tracks_title',
'home_skill_tracks_subtitle',
'home_skill_tracks_cta',
];
$sectionsByKey = $sections->keyBy('section_key');
$reasonSections = $sections
->filter(fn ($section) => str_starts_with($section->section_key, 'hero_different_reason_'))
->sortBy(function ($section) {
if (preg_match('/^hero_different_reason_(\d+)$/', $section->section_key, $m)) {
return (int) $m[1];
}
return 9999;
})
->values();
$otherSections = $sections->reject(function ($section) use ($homeHeroKeys) {
return in_array($section->section_key, $homeHeroKeys, true)
|| str_starts_with($section->section_key, 'hero_different_reason_')
|| str_starts_with($section->section_key, 'home_skill_track_');
});
$skillTrackSections = $sections
->filter(fn ($section) => str_starts_with($section->section_key, 'home_skill_track_'))
->sortBy(function ($section) {
if (preg_match('/^home_skill_track_(\d+)$/', $section->section_key, $m)) {
return (int) $m[1];
}
return 9999;
})
->values();
$existingSkillTrackIndexes = $skillTrackSections->toBase()
->map(function ($section) {
if (preg_match('/^home_skill_track_(\d+)$/', $section->section_key, $m)) {
return (int) $m[1];
}
return null;
})
->filter()
->unique()
->sort()
->values();
$skillTrackIndexes = $existingSkillTrackIndexes;
for ($i = 1; $i <= 5; $i++) {
if (! $skillTrackIndexes->contains($i)) {
$skillTrackIndexes->push($i);
}
}
$skillTrackIndexes = $skillTrackIndexes->sort()->values();
$nextSkillTrackIndex = (int) ($skillTrackIndexes->max() ?? 0) + 1;
$existingReasonIndexes = $reasonSections->toBase()
->map(function ($section) {
if (preg_match('/^hero_different_reason_(\d+)$/', $section->section_key, $m)) {
return (int) $m[1];
}
return null;
})
->filter()
->unique()
->sort()
->values();
$reasonIndexes = $existingReasonIndexes;
for ($i = 1; $i <= 4; $i++) {
if (! $reasonIndexes->contains($i)) {
$reasonIndexes->push($i);
}
}
$reasonIndexes = $reasonIndexes->sort()->values();
$nextReasonIndex = (int) ($reasonIndexes->max() ?? 0) + 1;
@endphp
@if($selectedPage->slug === 'home')
Home Hero
Edit all hero fields in one save.
Home About (Why Choose iTechBD)
This controls the “কেন iTechBD বেছে নেবেন” section on the home page.
@php
$homeAboutTitleBnFallback = __('frontend.home_about_title', [], 'bn');
$homeAboutTitleEnFallback = __('frontend.home_about_title', [], 'en');
$homeAboutSubtitleBnFallback = __('frontend.home_about_subtitle', [], 'bn');
$homeAboutSubtitleEnFallback = __('frontend.home_about_subtitle', [], 'en');
@endphp
Home Skill Tracks
Controls the “আমাদের স্কিল ট্র্যাকসমূহ” section on the home page.
@php
$skillTracksTitleBnFallback = __('frontend.home_skill_tracks_title', [], 'bn');
$skillTracksTitleEnFallback = __('frontend.home_skill_tracks_title', [], 'en');
$skillTracksSubtitleBnFallback = __('frontend.home_skill_tracks_subtitle', [], 'bn');
$skillTracksSubtitleEnFallback = __('frontend.home_skill_tracks_subtitle', [], 'en');
$skillTracksDefaultItems = [
1 => [
'title' => 'Web Development',
'content' => "Front-end + back-end fundamentals with real projects.\nHTML, CSS, TailwindCSS, JavaScript\nResponsive UI + animations + components\nAPIs, database basics, deployment basics",
],
2 => [
'title' => 'SEO (Search Engine Optimization)',
'content' => "Technical SEO + content + analytics.\nOn-page, off-page, technical SEO\nKeyword research + content planning\nAnalytics basics + reporting",
],
3 => [
'title' => '.NET Development',
'content' => "C# + ASP.NET Core for modern applications.\nC# fundamentals + OOP\nASP.NET Core APIs + auth basics\nDatabase + EF Core basics",
],
4 => [
'title' => 'Graphics Design',
'content' => "Branding + marketing visuals + portfolio.\nPhotoshop / Illustrator fundamentals\nBranding, typography, layouts\nPortfolio + client workflow",
],
5 => [
'title' => 'Extra Topics (Optional)',
'content' => "UI/UX, Git, communication and teamwork.\nUI/UX basics (Figma)\nGit basics + teamwork\nClient communication",
],
];
$skillTracksDefaultIcons = [
1 => 'fa-solid fa-code',
2 => 'fa-solid fa-magnifying-glass',
3 => 'fa-brands fa-microsoft',
4 => 'fa-solid fa-palette',
5 => 'fa-solid fa-star',
];
// WordPress-like picker: show ALL free Font Awesome icons (loaded via AJAX).
@endphp
@elseif($selectedPage->slug === 'about')
@php
$aboutSingles = [
'hero' => [
'title_bn' => __('frontend.about_title', [], 'bn'),
'title_en' => __('frontend.about_title', [], 'en'),
'content_bn' => __('frontend.about_subtitle', [], 'bn'),
'content_en' => __('frontend.about_subtitle', [], 'en'),
],
'about_intro' => [
'title_bn' => __('frontend.about_page_intro_title', [], 'bn'),
'title_en' => __('frontend.about_page_intro_title', [], 'en'),
'content_bn' => __('frontend.about_page_intro_body', [], 'bn'),
'content_en' => __('frontend.about_page_intro_body', [], 'en'),
],
'about_mission' => [
'title_bn' => __('frontend.about_page_mission_title', [], 'bn'),
'title_en' => __('frontend.about_page_mission_title', [], 'en'),
'content_bn' => __('frontend.about_page_mission_body', [], 'bn'),
'content_en' => __('frontend.about_page_mission_body', [], 'en'),
],
'about_vision' => [
'title_bn' => __('frontend.about_page_vision_title', [], 'bn'),
'title_en' => __('frontend.about_page_vision_title', [], 'en'),
'content_bn' => __('frontend.about_page_vision_body', [], 'bn'),
'content_en' => __('frontend.about_page_vision_body', [], 'en'),
],
'about_stats_title' => [
'title_bn' => __('frontend.about_page_stats_title', [], 'bn'),
'title_en' => __('frontend.about_page_stats_title', [], 'en'),
'content_bn' => __('frontend.about_page_stats_subtitle', [], 'bn'),
'content_en' => __('frontend.about_page_stats_subtitle', [], 'en'),
],
'about_cta' => [
'title_bn' => __('frontend.about_page_cta_title', [], 'bn'),
'title_en' => __('frontend.about_page_cta_title', [], 'en'),
'content_bn' => __('frontend.about_page_cta_body', [], 'bn'),
'content_en' => __('frontend.about_page_cta_body', [], 'en'),
],
];
$aboutValueKeys = ['about_value_1', 'about_value_2', 'about_value_3', 'about_value_4', 'about_value_5', 'about_value_6'];
$aboutStatKeys = ['about_stat_1', 'about_stat_2', 'about_stat_3', 'about_stat_4'];
@endphp
About Page
Edit the public /about page content (BN + EN).
@endif
Sections
Edit sections for {{ $selectedPage->slug }}.
@php
$sectionsForList = $selectedPage->slug === 'home' ? $otherSections : $sections;
@endphp
@if($sectionsForList->isEmpty())
No sections found for this page.
@else
@foreach($sectionsForList as $section)
@php
$isHeroSideHeading = $section->section_key === 'hero_side_heading';
@endphp
@endforeach
@endif
@endif