Raffales-LMS/app/Helpers/CCMS.php

529 lines
19 KiB
PHP
Raw Permalink Normal View History

2024-04-16 09:58:24 +00:00
<?php
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class CCMS
{
public function __construct()
{
$this->initDB();
}
//CONSULTANCY RELATED TEMP FUNCTIONS
public static function getFAQs()
{
$Rows = DB::table("faqs")
->where("status", 1)
->orderBy("display_order")->get();
return $Rows;
}
public static function getServices()
{
$Rows = DB::table("services")
->where("status", 1)
->orderBy("display_order")->get();
return $Rows;
}
public static function getSliders()
{
$Rows = DB::table("sliders")
->where("status", 1)
->orderBy("display_order")->get();
return $Rows;
}
public static function getAbout()
{
$Rows = DB::table("articles")
->where("status", 1)
->where("parent_article", 0)
->orderBy("display_order")->get();
return $Rows;
}
public static function getArticlesByParentAlias($alias)
{
$Rows = DB::table("articles")
->where("status", 1)
->where("parent_article", function ($query) use ($alias) {
$query->select('article_id')
->from('articles')
->where('alias', $alias);
})
->orderBy("display_order")
->get();
return $Rows;
}
public static function getContacts($index = -1)
{
$Rows = DB::table("contacts")->where("status", 1)->orderBy("display_order")->get();
if ($index != -1) return $Rows[$index];
return $Rows;
}
public static function getContactByBranch($branches_id)
{
$Rows = DB::table("contacts")->where("status", 1)->where("branches_id", $branches_id)->orderBy("display_order")->first();
return $Rows;
}
public static function getQuickLinks()
{
$Rows = DB::table("quicklinks")->where("status", 1)->orderBy("display_order")->get();
return $Rows;
}
public static function getBranches()
{
$Rows = DB::table("branches")->where("status", 1)->orderBy("display_order")->get();
return $Rows;
}
public static function getBranchByID($branches_id)
{
$Row = DB::table("branches")->where("status", 1)->where("branch_id", $branches_id)->orderBy("display_order")->first();
return $Row;
}
public static function getStudyAbroad($limit = null)
{
$Rows = DB::table("countries")
->where("status", 1)
->orderBy("display_order");
if ($limit !== null) {
$Rows->limit($limit);
}
$Rows = $Rows->get();
return $Rows;
}
public static function getTestPreparations($limit = null)
{
$query = DB::table("preparationclasses")
->where("status", 1)
->where("parent_preparationclass", 0)
->orderBy("display_order");
if ($limit !== null) {
$query->limit($limit);
}
$rows = $query->get();
return $rows;
}
public static function getResources()
{
$Rows = DB::table("resources")
->where("status", 1)
->where("parent_resource", 0)
->orderBy("display_order")->get();
return $Rows;
}
public static function getEvents()
{
$Rows = DB::table("events")
->where("status", 1)
->orderBy("display_order")->get();
return $Rows;
}
public static function getNews()
{
$Rows = DB::table("news")
->where("status", 1)
->orderBy("display_order")->get();
return $Rows;
}
public static function getTestimonials()
{
$Rows = DB::table("testimonials")->where("status", 1)->orderBy("display_order")->get();
return $Rows;
}
public static function getTestimonialsByBranchAlias($alias)
{
$Branch = DB::table("branches")->where("alias", $alias)->first();
if ($Branch) {
$Rows = DB::table("testimonials")
->where("status", 1)
->where("branches_id", $Branch->branch_id)
->orderBy("display_order")->get();
return $Rows;
} else {
die("Branch not found");
}
}
public static function getVisas()
{
$Rows = DB::table("visas")->where("status", 1)->orderBy("display_order")->get();
return $Rows;
}
public static function getVisasByBranchAlias($alias)
{
$Branch = DB::table("branches")->where("alias", $alias)->first();
if ($Branch) {
$Rows = DB::table("visas")
->where("status", 1)
->where("branches_id", $Branch->branch_id)
->orderBy("display_order")->get();
return $Rows;
} else {
die("Branch not found");
}
}
public static function getBlogs()
{
$Rows = DB::table("blogs")->where("status", 1)->orderBy("display_order")->get();
return $Rows;
}
public static function getGalleries()
{
$Rows = DB::table('galleries')
->where('status', 1)->get();
foreach ($Rows as $R) {
$R->Photos = DB::table("photos")->where("galleries_id", $R->gallery_id)->where("status", 1)->orderBy("display_order")->get();
}
return $Rows;
}
public static function getCustomFields($start = 0, $limit = null)
{
$query = DB::table("customfields")
->where("status", 1)
->orderBy("display_order");
if ($limit !== null) {
$query->offset($start)->limit($limit);
}
$rows = $query->get();
return $rows;
}
public static function getTopReasonsForStudyDestination($alias, $limit = null)
{
$reasons_alias = 'top-reasons-to-' . $alias;
$Rows = DB::table("countryarticles")
->where("status", 1)
->where("countries_id", function ($query) use ($alias) {
$query->select("country_id")
->from("countries")
->where("alias", $alias);
})
->where("parent_article", function ($query) use ($reasons_alias) {
$query->select("article_id")
->from("countryarticles")
->where("alias", $reasons_alias);
})
->orderBy("display_order")
->when($limit, function ($query) use ($limit) {
return $query->limit($limit);
})
->get();
return $Rows;
}
public static function getRepresentingInstitutionsByCountry($alias, $limit = null)
{
$Rows = DB::table("institutions")->where("status", 1)
->where("countries_id", function ($query) use ($alias) {
$query->select("country_id")
->from("countries")
->where("alias", $alias);
})
->orderBy("display_order")
->when($limit, function ($query) use ($limit) {
return $query->limit($limit);
})
->get();
return $Rows;
}
//END TEMP FUNCTIONS
public static function createMenuLink($text, $URL)
{
$isActive = request()->fullUrl() == $URL;
$activeClass = $isActive ? 'active' : '';
?>
<li>
<a class="nav-link menu-link <?php echo $activeClass; ?>" href="<?php echo $URL; ?>"><i class="ri-file-text-line "></i> <span data-key="t-landing"><?php echo $text; ?></span></a>
</li>
<?php
}
public static function getslider()
{
$Gallery = DB::table('sliders')->where('status', 1)->orderBy('display_order')->get();
return $Gallery;
}
public static function getarticle($alias = '')
{
$t = "select * from tbl_articles where status=1";
if ($alias != '') {
$t .= " and alias='$alias'";
// echo $t;die;
$Aboutus = DB::select($t)[0];
$q = "select * from tbl_articles where parent_article=$Aboutus->article_id";
$Aboutus->children = DB::select($q);
} else {
$Aboutus = DB::select($t);
}
//dd($Aboutus);die;
return $Aboutus;
}
static public function showMenu($menulocation_alias)
{
$MenuItems = CCMS::getMenuItems($menulocation_alias);
?>
<ul class="navbar-nav d-flex align-items-center">
<?php foreach ($MenuItems as $menuItem) : ?>
<?php $menuItem->alias = str_replace("-", "_", $menuItem->alias); ?>
<li class="nav-item <?php if (!empty($menuItem->children)) : ?> dropdown <?php endif; ?>" id="myDropdown">
<a class="nav-link <?php if (!empty($menuItem->children)) : ?> dropdown-toggle <?php endif; ?>" <?php if (!empty($menuItem->children)) : ?> data-bs-toggle="dropdown" <?php endif; ?> aria-current="page" href="<?php if ($menuItem->type != "") : ?>
<?php echo route($menuItem->alias); ?><?php else : ?><?php echo site_url(ltrim($menuItem->ref, '/')); ?><?php endif; ?>" target="<?php echo strtolower($menuItem->target) ?>">
<?php echo $menuItem->title; ?>
</a>
<?php if (!empty($menuItem->children)) : ?>
<ul class="dropdown-menu">
<?php foreach ($menuItem->children as $menu) : ?>
<li> <a class="dropdown-item" href="<?php echo route($menuItem->alias . '.' . $menu->alias) ?>" target="<?php echo strtolower($menuItem->target); ?>"> <?php echo $menu->title; ?> </a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php
}
public static function getMenuItems($menulocation_alias, $parentId = 0)
{
$menulocations_id = DB::table('menulocations')
->where('alias', $menulocation_alias)
->value('menulocation_id');
$menuItems = DB::table('menuitems')
->where('menulocations_id', $menulocations_id)
->where('parent_menu', $parentId)
->orderBy('display_order')
->get();
$result = [];
foreach ($menuItems as $menuItem) {
$children = self::getMenuItems($menulocation_alias, $menuItem->menu_id);
$menuItem->children = $children;
$result[] = $menuItem;
}
return $result;
}
public static function getSiteVars()
{
$siteVars = DB::table("settings")->where('status', 1)->orderby('display_order')->first();
$siteVars->Destinations = self::getStudyAbroad();
$siteVars->Services = self::getServices();
$siteVars->Classes = self::getTestPreparations();
$siteVars->Abouts = self::getAbout();
return $siteVars;
}
public static function getCountries()
{
$Countries = DB::table("countries")->where('status', 1)->orderby('display_order')->get();
return $Countries;
}
public static function getCountry($alias)
{
$Countries = DB::table("countries")->where('alias', $alias)->get();
return $Countries[0];
}
public static function getDemandCountries()
{
$demandCountries1 = DB::table('jobdemands')->where('status', 1)->orderby('display_order')->pluck('countries_id');
$demandCountries2 = DB::table('paperdemands')->where('status', 1)->orderby('display_order')->pluck('countries_id');
$demandCountries = $demandCountries1->concat($demandCountries2);
// pre($demandCountries2,true);
$demandCountries = DB::table("countries")->where('status', 1)->orderby('display_order')->whereIn('country_id', $demandCountries)->get();
return $demandCountries;
}
public static function getCertificates()
{
$Certificates = DB::table("certificates")->where('status', 1)->orderby('display_order')->get();
return $Certificates;
}
public static function getCertificate($alias)
{
$Certificate = DB::table("certificates")->where('alias', $alias)->get()[0];
return $Certificate;
}
public static function getTeams()
{
$Teams = DB::table("teams")->where('status', 1)->orderby('display_order')->get();
return $Teams;
}
public static function getTeamsByBranch($alias)
{
$Branch = DB::table("branches")->where("alias", $alias)->first();
if ($Branch) {
$Teams = DB::table("teams")
->where('status', 1)
->where('branches_id', $Branch->branch_id)
->orderby('display_order')->get();
return $Teams;
} else {
die("Branch Not Found");
}
}
public static function getTeam($alias)
{
$Team = DB::table("teams")->where('alias', $alias)->get()[0];
return $Team;
}
public static function getPaperDemands()
{
$PaperDemands = DB::table("paperdemands")->where('status', 1)->orderby('display_order')->get();
return $PaperDemands;
}
public static function getPaperDemand($alias)
{
$PaperDemand = DB::table("paperdemands")->where('alias', $alias)->get()[0];
return $PaperDemand;
}
public static function getJobCategories()
{
$JobCategories = DB::table("job_categories")->where('status', 1)->orderby('display_order')->get();
return $JobCategories;
}
public static function getJobCategory($alias)
{
$JobCategory = DB::table("job_categories")->where('alias', $alias)->get()[0];
return $JobCategory;
}
public static function getCompanies()
{
$Companies = DB::table("companies")->where('status', 1)->orderby('display_order')->get();
return $Companies;
}
public static function getCompany($alias)
{
$Company = DB::table("companies")->where('alias', $alias)->get()[0];
return $Company;
}
public static function showForm($formID)
{
if (is_numeric($formID)) {
$Form = DB::table("forms")->where('form_id', $formID)->first();
} else {
$Form = DB::table("forms")->where('alias', $formID)->first();
}
if (!$Form) {
// Handle the case where the form with the given ID/alias doesn't exist
return "Error: Form (ID/Alias: $formID) not found.";
}
$csrfToken = csrf_token();
if (session('success')) {
echo '<div class="alert alert-success" role="alert">';
echo session('success');
echo '</div>';
}
echo '<form class="mt-5" action="' . route("form.submit") . '" method="POST">';
echo '<input type="hidden" name="_token" value="' . $csrfToken . '">';
echo '<input type="hidden" name="form_id" value="' . $Form->form_id . '">';
$form_fields = json_decode($Form->form_fields);
foreach ($form_fields as $field) {
$fieldAlias = strtolower($field->fieldAlias);
$fieldName = strtolower($field->fieldName);
$fieldType = $field->fieldType;
$fieldDefault = $field->fieldDefault;
$fieldCss = $field->fieldCss;
echo '<div class="mb-3 ' . $fieldCss . '">';
echo '<label for="' . $fieldAlias . '" class="form-label">' . ucfirst($fieldName) . '</label>';
// Check if the "required" class is present in $fieldCss and add the required attribute
$isRequired = strpos($fieldCss, 'required') !== false;
if ($fieldType === 'textarea') {
echo '<textarea class="form-control ' . ($isRequired ? 'required' : '') . '" id="' . $fieldAlias . '" name="' . $fieldAlias . '" ' . ($isRequired ? 'required' : '') . '>' . $fieldDefault . '</textarea>';
} else {
echo '<input type="' . $fieldType . '" class="form-control ' . ($isRequired ? 'required' : '') . '" id="' . $fieldAlias . '" name="' . $fieldAlias . '" value="' . $fieldDefault . '" ' . ($isRequired ? 'required' : '') . '>';
}
echo '</div>';
}
echo '<button type="submit" class="btn btn-primary">Submit</button>';
echo '</form>';
}
private function initDB()
{
static $initialized = false;
if (!$initialized) {
DB::statement('
CREATE TABLE IF NOT EXISTS `tbl_subscribers` (
`subscriber_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(255) NOT NULL,
`alias` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`email` varchar(255) NOT NULL,
`display_order` int(11) NOT NULL,
`status` int(11) NOT NULL,
`createdby` int(11) DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
');
DB::statement('
CREATE TABLE IF NOT EXISTS `tbl_faqs` (
`faq_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`text` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`display_order` int(11) NOT NULL,
`status` int(11) NOT NULL,
`createdby` int(11) DEFAULT NULL,
`updatedby` int(11) DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
');
DB::statement('
CREATE TABLE IF NOT EXISTS `tbl_successstories` (
`successstory_id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`countries_id` int(11) DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`alias` varchar(200) DEFAULT NULL,
`image` varchar(255) DEFAULT NULL,
`text` text DEFAULT NULL,
`remarks` varchar(255) DEFAULT NULL,
`display_order` int(11) DEFAULT NULL,
`status` int(11) DEFAULT NULL,
`university` varchar(255) DEFAULT NULL,
`faculty` varchar(255) DEFAULT NULL,
`createdby` varchar(255) DEFAULT NULL,
`created_at` varchar(255) DEFAULT NULL,
`updatedby` varchar(255) DEFAULT NULL,
`updated_at` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
');
$initialized = true;
}
}
}