mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-08-01 08:16:55 -04:00
214 lines
7.2 KiB
PHP
214 lines
7.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\JobPortal\Entities;
|
|
|
|
use Modules\JobPortal\Entities\BaseModel;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Support\Facades\Cache;
|
|
use Illuminate\Database\Eloquent\Concerns\HasEvents;
|
|
|
|
class Settings extends BaseModel
|
|
{
|
|
use HasFactory, HasEvents;
|
|
|
|
protected $table = 'jp_settings';
|
|
protected $fillable=['name','group','val'];
|
|
|
|
public static function getSettings($group = '',$locale = '')
|
|
{
|
|
if ($group) {
|
|
static::where('group', $group);
|
|
}
|
|
$all = static::groupBy('name')->get();
|
|
$res = [];
|
|
foreach ($all as $row) {
|
|
$res[$row->name] = $row->val;
|
|
}
|
|
return $res;
|
|
}
|
|
|
|
public static function item($item, $default = false)
|
|
{
|
|
//$value = Cache::rememberForever('setting_' . $item, function () use ($item ,$default) {
|
|
$val = Settings::where('name', $item)->first();
|
|
return ($val and $val['val'] != null) ? $val['val'] : $default;
|
|
//});
|
|
//return $value;
|
|
}
|
|
|
|
public static function store($key,$data){
|
|
|
|
$check = Settings::where('name', $key)->first();
|
|
if($check){
|
|
$check->val = $data;
|
|
$check->save();
|
|
}else{
|
|
$check = new self();
|
|
$check->val = $data;
|
|
$check->name = $key;
|
|
$check->save();
|
|
}
|
|
|
|
Cache::forget('setting_' . $key);
|
|
}
|
|
|
|
public static function getSettingPages(){
|
|
$allSettings = [
|
|
'company'=>[
|
|
"id" => "company",
|
|
"title" => "Company Settings",
|
|
"position" => 30,
|
|
"view" => "Company::admin.settings.company",
|
|
"keys" => [
|
|
"company_page_search_title",
|
|
"company_list_layout",
|
|
"single_company_layout",
|
|
"company_sidebar_search_fields",
|
|
"company_location_search_style",
|
|
"company_page_list_seo_title",
|
|
"company_page_list_seo_desc",
|
|
"company_page_list_seo_image",
|
|
"company_page_list_seo_share",
|
|
"company_sidebar_cta",
|
|
"enable_hide_email_company",
|
|
"company_role",
|
|
"company_auto_approved"
|
|
],
|
|
"html_keys" => []
|
|
],
|
|
"job" => [
|
|
"id" => "job",
|
|
"title" => "Job Settings",
|
|
"position" => 30,
|
|
"view" => "Job::admin.settings.job",
|
|
"keys" => [
|
|
"job_page_search_title",
|
|
"jobs_list_layout",
|
|
"job_single_layout",
|
|
"job_sidebar_search_fields",
|
|
"job_banner_search_fields",
|
|
"job_location_search_style",
|
|
"job_page_list_seo_title",
|
|
"job_page_list_seo_desc",
|
|
"job_page_list_seo_image",
|
|
"job_page_list_seo_share",
|
|
"job_sidebar_cta",
|
|
"job_require_plan",
|
|
"job_hide_expired_jobs",
|
|
"job_need_approve",
|
|
"job_hide_job_apply",
|
|
"job_company_max_post_jobs",
|
|
],
|
|
"html_keys" => []
|
|
],
|
|
"candidate" => [
|
|
"id" => "candidate",
|
|
"title" => "Candidate Settings",
|
|
"position" => 30,
|
|
"view" => "Candidate::admin.settings.candidate",
|
|
"keys" => [
|
|
"candidate_page_search_title",
|
|
"candidate_download_cv_required_login",
|
|
"candidate_public_policy",
|
|
"candidate_limit_apply_by",
|
|
"candidate_maximum_job_apply",
|
|
"candidates_list_layout",
|
|
"single_candidate_layout",
|
|
"candidate_sidebar_search_fields",
|
|
"candidate_location_search_style",
|
|
"candidate_page_list_seo_title",
|
|
"candidate_page_list_seo_desc",
|
|
"candidate_page_list_seo_image",
|
|
"candidate_page_list_seo_share",
|
|
"candidate_sidebar_cta",
|
|
"candidate_single_layout",
|
|
"candidate_list_layout"
|
|
],
|
|
"html_keys" => []
|
|
],
|
|
'email' => [
|
|
'id' => 'email',
|
|
'title' => __("Email Settings"),
|
|
'position'=>50,
|
|
'view'=>"Email::admin.settings.email",
|
|
"keys"=>[
|
|
'email_driver',
|
|
'email_host',
|
|
'email_port',
|
|
'email_encryption',
|
|
'email_username',
|
|
'email_password',
|
|
'email_mailgun_domain',
|
|
'email_mailgun_secret',
|
|
'email_mailgun_endpoint',
|
|
'email_postmark_token',
|
|
'email_ses_key',
|
|
'email_ses_secret',
|
|
'email_ses_region',
|
|
'email_sparkpost_secret',
|
|
'email_footer',
|
|
'email_header',
|
|
'content_email_apply_job_submit',
|
|
'content_email_change_applicants_status',
|
|
'admin_email',
|
|
'email_from_name',
|
|
'email_from_address',
|
|
],
|
|
'html_keys'=>[
|
|
|
|
]
|
|
],
|
|
'payout'=> [
|
|
'id' => 'payout',
|
|
'title' => __("Payout Settings"),
|
|
'position' => 30,
|
|
'view'=>"Payout::admin.settings.payout",
|
|
"keys"=>[
|
|
'vendor_payout_methods',
|
|
'disable_payout',
|
|
],
|
|
'html_keys'=>[
|
|
|
|
]
|
|
],
|
|
'advance'=>[
|
|
'id' => 'advance',
|
|
'title' => __("Advance Settings"),
|
|
'position'=>80,
|
|
'view' => "Core::admin.settings.groups.advance",
|
|
"keys" => [
|
|
'map_provider',
|
|
'map_gmap_key',
|
|
'recaptcha_enable',
|
|
'recaptcha_api_key',
|
|
'recaptcha_api_secret'
|
|
]
|
|
],
|
|
];
|
|
|
|
//@todo Sort items by Position
|
|
$allSettings = array_values(\Illuminate\Support\Arr::sort($allSettings, function ($value) {
|
|
return $value['position'] ?? 0;
|
|
}));
|
|
|
|
if(!empty($allSettings)){
|
|
foreach ($allSettings as &$item)
|
|
{
|
|
$item['url'] = 'admin/jobportal/settings/index/'.$item['id'];
|
|
$item['name'] = $item['title'] ?? $item['id'];
|
|
$item['icon'] = $item['icon'] ?? '';
|
|
}
|
|
}
|
|
return $allSettings;
|
|
}
|
|
public static function clearCustomCssCache(){
|
|
$langs = Language::getActive();
|
|
if(!empty($langs)){
|
|
foreach ($langs as $lang)
|
|
{
|
|
Cache::forget("custom_css_".$lang->locale);
|
|
}
|
|
}
|
|
}
|
|
}
|