<?php
use App\AboutPage;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Str;
use Modules\FrontendManage\Entities\BecomeInstructor;
use Modules\FrontendManage\Entities\FrontPage;
use Modules\FrontendManage\Entities\HomeContent;
use Modules\FrontendManage\Entities\WorkProcess;
use Modules\Setting\Http\Controllers\UpdateController;
class AddDefaultPageDesign extends Migration
{
public function up()
{
$update = new UpdateController();
$update->allClear();
View::composer(['frontend.*'], function ($view) {
$data['frontendContent'] = $data['homeContent'] = json_decode(json_encode($this->homeContents()));
$data['about_page'] = AboutPage::first();
$data['become_instructor'] = BecomeInstructor::all();
$data['work_progress'] = WorkProcess::select('title', 'description')->where('status', 1)->get();
$view->with($data);
});
$link = base_path('resources/views/frontend/infixlmstheme/snippets/pages/*.blade.php');
$pages = glob($link);
foreach ($pages as $page) {
$filename = Str::of($page)->basename('.blade.php');
if ($filename == 'affiliate' || $filename == 'appointment') {
continue;
}
$banner = $this->addBanner($filename);
$content = \response()->view('frontend.infixlmstheme.snippets.pages.' . $filename)->content();;
try {
$dom = new DomDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($content);
libxml_clear_errors();
$finder = new DomXPath($dom);
$classname = "full-page";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
// $tmp_dom = new DOMDocument();
foreach ($nodes as $node) {
$node->parentNode->removeChild($node);
// }
// $tmp_dom->appendChild($tmp_dom->importNode($node, true));
}
$content = trim($dom->saveHTML());
$content = str_replace('’', "'", $content);
$content = str_replace('’', "'", $content);
} catch (\Exception $e) {
Log::error($e->getMessage());
}
$slug = '';
if ($filename == 'home') {
$slug = '/';
} elseif ($filename == 'about-us') {
$slug = '/about-us';
} elseif ($filename == 'become-instructor') {
$slug = '/become-instructor';
} elseif ($filename == 'blogs') {
$slug = '/blogs';
} elseif ($filename == 'certificate-verification') {
$slug = 'certificate-verification';
} elseif ($filename == 'classes') {
$slug = '/classes';
} elseif ($filename == 'contact') {
$slug = '/contact-us';
} elseif ($filename == 'courses') {
$slug = '/courses';
} elseif ($filename == 'free') {
$slug = 'free-course';
} elseif ($filename == 'home') {
$slug = '/';
} elseif ($filename == 'instructors') {
$slug = '/instructors';
} elseif ($filename == 'quizzes') {
$slug = '/quizzes';
}
$page = FrontPage::where('slug', $slug)->first();
if ($page) {
if ($page->slug == '/blogs') {
$page->slug = '/blog';
$page->name = 'Blog';
$page->title = 'Blog';
}
$page->details = '<div class="row"> <div class="col-sm-12 ui-resizable" data-type="container-content">' . $banner . $content . '</div></div>';
$page->save();
}
}
$dynamic_pages = FrontPage::where('is_static', 0)->get();
$search = '<div class="row"><div class="col-sm-12 ui-resizable" data-type="container-content"><div data-type="component-text" data-aoraeditor-title="Text block" data-aoraeditor-categories="Text">';
foreach ($dynamic_pages as $page) {
if (!str_starts_with($page->details, $search)) {
$page->details = $search . $page->details . '</div></div></div>';
}
$page->save();
}
}
public function down()
{
//
}
private function homeContents()
{
return HomeContent::select(['key', 'value'])->get()->pluck('value', 'key');
}
private function addBanner($page)
{
try {
$frontendContent = $this->homeContents();
if ($page == "about-us") {
$data['banner'] = $frontendContent['about_page_banner'];
$data['title'] = $frontendContent['about_page_title'];
$data['sub_title'] = 'sub title';
} elseif ($page == "become-instructor") {
$data['banner'] = $frontendContent['become_instructor_page_banner'];
$data['title'] = $frontendContent['become_instructor_page_title'];
$data['sub_title'] = $frontendContent['become_instructor_page_sub_title'];
} elseif ($page == "blogs") {
$data['banner'] = $frontendContent['blog_page_banner'];
$data['title'] = $frontendContent['blog_page_title'];
$data['sub_title'] = $frontendContent['blog_page_sub_title'];
} elseif ($page == "blogs") {
$data['banner'] = $frontendContent['blog_page_banner'];
$data['title'] = $frontendContent['blog_page_title'];
$data['sub_title'] = $frontendContent['blog_page_sub_title'];
} elseif ($page == "classes") {
$data['banner'] = $frontendContent['class_page_banner'];
$data['title'] = $frontendContent['class_page_title'];
$data['sub_title'] = $frontendContent['class_page_sub_title'];
} elseif ($page == "courses") {
$data['banner'] = $frontendContent['course_page_banner'];
$data['title'] = $frontendContent['course_page_title'];
$data['sub_title'] = $frontendContent['course_page_sub_title'];
} elseif ($page == "quizzes") {
$data['banner'] = $frontendContent['quiz_page_banner'];
$data['title'] = $frontendContent['quiz_page_title'];
$data['sub_title'] = $frontendContent['quiz_page_sub_title'];
} elseif ($page == "free") {
$data['banner'] = $frontendContent['course_page_banner'];
$data['title'] = $frontendContent['course_page_title'];
$data['sub_title'] = $frontendContent['course_page_sub_title'];
} elseif ($page == "instructors") {
$data['banner'] = $frontendContent['instructor_page_banner'];
$data['title'] = $frontendContent['instructor_page_title'];
$data['sub_title'] = $frontendContent['instructor_page_sub_title'];
} elseif ($page == "contact") {
$data['banner'] = $frontendContent['contact_page_banner'];
$data['title'] = $frontendContent['contact_page_title'];
$data['sub_title'] = $frontendContent['contact_sub_title'];
} else {
return '';
}
$content = \response()->view('frontend.infixlmstheme.components.breadcrumb', $data)->content();
$content = '<div data-type="component-text">' . $content . '</div>';
} catch (\Exception $exception) {
$content = '';
}
return $content;
}
}