Untitled
unknown
php
4 years ago
23 kB
7
Indexable
<?php
namespace App\Http\Controllers;
use App\Helpers\FlashMsg;
use App\Mail\BasicMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use App\Language;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Str;
use Spatie\Sitemap\SitemapGenerator;
class GeneralSettingsController extends Controller
{
public function __construct()
{
$this->middleware('auth:admin');
$this->middleware('permission:general-settings-site-identity',['only',['site_identity','update_site_identity']]);
$this->middleware('permission:general-settings-basic-settings',['only',['basic_settings','update_basic_settings']]);
$this->middleware('permission:general-settings-color-settings',['only',['color_settings','update_color_settings']]);
$this->middleware('permission:general-settings-typography-settings',['only',['typography_settings','get_single_font_variant','update_typography_settings']]);
$this->middleware('permission:general-settings-seo-settings',['only',['seo_settings','update_seo_settings']]);
$this->middleware('permission:general-settings-third-party-script',['only',['update_scripts_settings','scripts_settings']]);
$this->middleware('permission:general-settings-email-template',['only',['email_template_settings','update_email_template_settings']]);
$this->middleware('permission:general-settings-smtp-settings',['only',['smtp_settings','update_smtp_settings','test_smtp_settings']]);
$this->middleware('permission:general-settings-page-settings',['only',['page_settings','update_page_settings']]);;
$this->middleware('permission:general-settings-custom-css',['only',['custom_css_settings','update_custom_css_settings']]);
$this->middleware('permission:general-settings-custom-js',['only',['custom_js_settings','update_custom_js_settings']]);
$this->middleware('permission:general-settings-license-settings',['only',['license_settings','update_license_settings']]);
$this->middleware('permission:general-settings-cache-settings',['only',['cache_settings','update_cache_settings']]);
}
public function site_identity()
{
return view('backend.general-settings.site-identity');
}
public function update_site_identity(Request $request)
{
$this->validate($request, [
'site_logo' => 'nullable|string',
'site_purple_logo' => 'nullable|string',
'site_favicon' => 'nullable|string',
'site_purple_favicon' => 'nullable|string',
'site_breadcrumb_image' => 'nullable|string',
]);
$fields = [
'site_logo',
'site_favicon',
'site_purple_logo',
'site_purple_favicon',
'site_breadcrumb_image'
];
foreach ($fields as $field) {
if ($request->has($field)) {
update_static_option($field, $request->$field);
}
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function basic_settings()
{
$all_languages = Language::all();
return view('backend.general-settings.basic')->with(['all_languages' => $all_languages]);
}
public function update_basic_settings(Request $request)
{
$this->validate($request, [
'language_select_option' => 'nullable|string',
'disable_user_email_verify' => 'nullable|string',
'site_maintenance_mode' => 'nullable|string',
'admin_loader_animation' => 'nullable|string',
'site_loader_animation' => 'nullable|string',
'site_force_ssl_redirection' => 'nullable|string',
'admin_panel_rtl_status' => 'nullable|string',
'site_google_captcha_enable' => 'nullable|string',
]);
$all_language = Language::all();
foreach ($all_language as $lang) {
$this->validate($request, [
'site_' . $lang->slug . '_title' => 'nullable|string',
'site_' . $lang->slug . '_tag_line' => 'nullable|string',
'site_' . $lang->slug . '_footer_copyright' => 'nullable|string',
]);
$_title = 'site_' . $lang->slug . '_title';
$_tag_line = 'site_' . $lang->slug . '_tag_line';
$_footer_copyright = 'site_' . $lang->slug . '_footer_copyright';
update_static_option($_title, $request->$_title);
update_static_option($_tag_line, $request->$_tag_line);
update_static_option($_footer_copyright, $request->$_footer_copyright);
}
$all_fields = [
'language_select_option',
'disable_user_email_verify',
'site_maintenance_mode',
'admin_loader_animation',
'site_loader_animation',
'site_force_ssl_redirection',
'site_google_captcha_enable',
];
foreach ($all_fields as $field) {
update_static_option($field, $request->$field);
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function color_settings()
{
return view('backend.general-settings.color-settings');
}
public function update_color_settings(Request $request)
{
$this->validate($request, [
'site_main_color_one' => 'nullable|string',
'site_main_color_two' => 'nullable|string',
]);
$all_fields = [
'site_main_color_one',
'site_main_color_two',
'site_heading_color',
'site_paragraph_color',
];
foreach ($all_fields as $field) {
update_static_option($field, $request->$field);
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function seo_settings()
{
$all_languages = Language::all();
return view('backend.general-settings.seo')->with(['all_languages' => $all_languages]);
}
public function update_seo_settings(Request $request)
{
$all_languages = Language::all();
foreach ($all_languages as $lang) {
$this->validate($request, [
'site_meta_' . $lang->slug . '_tags' => 'nullable|string',
'site_meta_' . $lang->slug . '_description' => 'nullable|string',
'og_meta_' . $lang->slug . '_title' => 'nullable|string',
'og_meta_' . $lang->slug . '_description' => 'nullable|string',
'og_meta_' . $lang->slug . '_site_name' => 'nullable|string',
'og_meta_' . $lang->slug . '_url' => 'nullable|string',
'og_meta_' . $lang->slug . '_image' => 'nullable|string',
]);
$fields = [
'site_meta_' . $lang->slug . '_tags',
'site_meta_' . $lang->slug . '_description',
'og_meta_' . $lang->slug . '_title',
'og_meta_' . $lang->slug . '_description',
'og_meta_' . $lang->slug . '_site_name',
'og_meta_' . $lang->slug . '_url',
'og_meta_' . $lang->slug . '_image'
];
foreach ($fields as $field) {
if ($request->has($field)) {
update_static_option($field, $request->$field);
}
}
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function scripts_settings()
{
return view('backend.general-settings.thid-party');
}
public function update_scripts_settings(Request $request)
{
$this->validate($request, [
'site_disqus_key' => 'nullable|string',
'tawk_api_key' => 'nullable|string',
'site_third_party_tracking_code' => 'nullable|string',
'site_google_analytics' => 'nullable|string',
'site_google_captcha_v3_site_key' => 'nullable|string',
'site_google_captcha_v3_secret_key' => 'nullable|string',
]);
$fields = [
'site_disqus_key',
'site_google_analytics',
'tawk_api_key',
'site_google_captcha_v3_site_key',
'site_google_captcha_v3_secret_key',
'site_third_party_tracking_code',
'enable_google_login',
'enable_facebook_login',
'google_client_id',
'google_client_secret',
'facebook_client_id',
'facebook_client_secret',
'envato_api_token',
'site_third_party_tracking_code_body_start',
'enable_envato_login',
'envato_client_id',
'envato_client_secret',
];
foreach ($fields as $field) {
if ($request->has($field)) {
update_static_option($field, $request->$field);
}
}
setEnvValue([
'FACEBOOK_CLIENT_ID' => $request->facebook_client_id,
'FACEBOOK_CLIENT_SECRET' => $request->facebook_client_secret,
'FACEBOOK_CALLBACK_URL' => route('facebook.callback'),
'GOOGLE_CLIENT_ID' => $request->google_client_id,
'GOOGLE_CLIENT_SECRET' => $request->google_client_secret,
'GOOGLE_CALLBACK_URL' => route('google.callback'),
]);
return redirect()->back()->with(FlashMsg::settings_update());
}
public function email_template_settings()
{
return view('backend.general-settings.email-template');
}
public function update_email_template_settings(Request $request)
{
$this->validate($request, [
'site_global_email' => 'required|string',
'site_global_email_template' => 'required|string',
]);
$save_data = [
'site_global_email',
'site_global_email_template'
];
foreach ($save_data as $item) {
if (empty($request->$item)) {
continue;
}
update_static_option($item, $request->$item);
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function cache_settings()
{
return view('backend.general-settings.cache-settings');
}
public function update_cache_settings(Request $request)
{
$this->validate($request, [
'cache_type' => 'required|string'
]);
Artisan::call($request->cache_type . ':clear');
return redirect()->back()->with(['msg' => __('Cache Cleaned'), 'type' => 'success']);
}
public function typography_settings()
{
$all_google_fonts = file_get_contents('assets/frontend/webfonts/google-fonts.json');
return view('backend.general-settings.typograhpy')->with(['google_fonts' => json_decode($all_google_fonts)]);
}
public function get_single_font_variant(Request $request)
{
$all_google_fonts = file_get_contents('assets/frontend/webfonts/google-fonts.json');
$decoded_fonts = json_decode($all_google_fonts, true);
return response()->json($decoded_fonts[$request->font_family]);
}
public function update_typography_settings(Request $request)
{
$this->validate($request, [
'body_font_family' => 'required|string|max:191',
'body_font_variant' => 'required',
'heading_font' => 'nullable|string',
'heading_font_family' => 'nullable|string|max:191',
'heading_font_variant' => 'nullable',
]);
$save_data = [
'body_font_family',
'heading_font_family',
];
foreach ($save_data as $item) {
update_static_option($item, $request->$item);
}
$body_font_variant = !empty($request->body_font_variant) ? $request->body_font_variant : ['regular'];
$heading_font_variant = !empty($request->heading_font_variant) ? $request->heading_font_variant : ['regular'];
update_static_option('heading_font', $request->heading_font);
update_static_option('body_font_variant', serialize($body_font_variant));
update_static_option('heading_font_variant', serialize($heading_font_variant));
return redirect()->back()->with(['msg' => __('Typography Settings Updated..'), 'type' => 'success']);
}
public function smtp_settings()
{
return view('backend.general-settings.smtp-settings');
}
public function update_smtp_settings(Request $request)
{
$this->validate($request, [
'site_smtp_mail_host' => 'required|string',
'site_smtp_mail_mailer' => 'required|string',
'site_smtp_mail_port' => 'required|string',
'site_smtp_mail_username' => 'required|string',
'site_smtp_mail_password' => 'required|string',
'site_smtp_mail_encryption' => 'required|string'
]);
$fields = [
'site_smtp_mail_mailer',
'site_smtp_mail_host',
'site_smtp_mail_port',
'site_smtp_mail_username',
'site_smtp_mail_password',
'site_smtp_mail_encryption',
];
foreach ($fields as $field) {
update_static_option($field, $request->$field);
}
$env_val['MAIL_MAILER'] = !empty($request->site_smtp_mail_mailer) ? $request->site_smtp_mail_mailer : 'smtp';
$env_val['MAIL_HOST'] = !empty($request->site_smtp_mail_host) ? $request->site_smtp_mail_host : 'YOUR_SMTP_MAIL_HOST';
$env_val['MAIL_PORT'] = !empty($request->site_smtp_mail_port) ? $request->site_smtp_mail_port : 'YOUR_SMTP_MAIL_POST';
$env_val['MAIL_USERNAME'] = !empty($request->site_smtp_mail_username) ? $request->site_smtp_mail_username : 'YOUR_SMTP_MAIL_USERNAME';
$env_val['MAIL_PASSWORD'] = !empty($request->site_smtp_mail_password) ? $request->site_smtp_mail_password : 'YOUR_SMTP_MAIL_USERNAME_PASSWORD';
$env_val['MAIL_ENCRYPTION'] = !empty($request->site_smtp_mail_encryption) ? $request->site_smtp_mail_encryption : 'YOUR_SMTP_MAIL_ENCRYPTION';
setEnvValue($env_val);
return redirect()->back()->with(FlashMsg::settings_update());
}
public function test_smtp_settings(Request $request){
$this->validate($request,[
'subject' => 'required|string|max:191',
'email' => 'required|email|max:191',
'message' => 'required|string',
]);
$res_data = [
'msg' => __('Mail Send Success'),
'type' => 'success'
];
try {
Mail::to($request->email)->send(new BasicMail([
'subject' => $request->subject,
'message' => $request->message
]));
}catch (\Exception $e){
return redirect()->back()->with([
'type' => 'danger',
'msg' => $e->getMessage()
]);
}
return redirect()->back()->with($res_data);
}
public function page_settings()
{
$all_languages = Language::all();
return view('backend.general-settings.page-settings')->with(['all_languages' => $all_languages]);
}
public function update_page_settings(Request $request)
{
$all_languages = Language::all();
$this->validate($request, [
'knowledgebase_page_slug'=> 'nullable|string|max:191',
'blog_page_slug'=> 'nullable|string|max:191',
'contact_page_slug'=> 'nullable|string|max:191',
'faq'=> 'nullable|string|max:191',
'ticket'=> 'nullable|string|max:191',
]);
$pages_list = ['knowledgebase','blog','contact','faq','support_ticket'];
foreach ($pages_list as $slug_field) {
$field = $slug_field.'_page_slug';
update_static_option($field, Str::slug($request->$field));
}
foreach ($all_languages as $lang) {
$this->validate($request, [
'knowledgebase_page_' . $lang->slug . '_name' => 'nullable|string',
'knowledgebase_page_' . $lang->slug . '_meta_tags' => 'nullable|string',
'knowledgebase_page_' . $lang->slug . '_meta_description' => 'nullable|string',
'contact_page_' . $lang->slug . '_name' => 'nullable|string',
'contact_page_' . $lang->slug . '_meta_tags' => 'nullable|string',
'contact_page_' . $lang->slug . '_meta_description' => 'nullable|string',
'blog_page_' . $lang->slug . '_name' => 'nullable|string',
'blog_page_' . $lang->slug . '_meta_tags' => 'nullable|string',
'blog_page_' . $lang->slug . '_meta_description' => 'nullable|string',
'faq_page_' . $lang->slug . '_name' => 'nullable|string',
'faq_page_' . $lang->slug . '_meta_tags' => 'nullable|string',
'faq_page_' . $lang->slug . '_meta_description' => 'nullable|string',
'support_ticket_page_' . $lang->slug . '_name' => 'nullable|string',
'support_ticket_page_' . $lang->slug . '_meta_tags' => 'nullable|string',
'support_ticket_page_' . $lang->slug . '_meta_description' => 'nullable|string',
]);
foreach ($pages_list as $field) {
$field_name = $field.'_page_'. $lang->slug.'_name';
$field_meta_tags = $field.'_page_'. $lang->slug.'_meta_tags';
$field_meta_meta_description = $field.'_page_'. $lang->slug.'_meta_description';
update_static_option($field_name, $request->$field_name);
update_static_option($field_meta_tags, $request->$field_meta_tags);
update_static_option($field_meta_meta_description, $request->$field_meta_meta_description);
}
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function payment_settings()
{
return view('backend.general-settings.payment-gateway');
}
public function custom_css_settings()
{
$custom_css = '/* Write Custom Css Here */';
if (file_exists('assets/frontend/css/dynamic-style.css')) {
$custom_css = file_get_contents('assets/frontend/css/dynamic-style.css');
}
return view('backend.general-settings.custom-css')->with(['custom_css' => $custom_css]);
}
public function update_custom_css_settings(Request $request)
{
file_put_contents('assets/frontend/css/dynamic-style.css', $request->custom_css_area);
return redirect()->back()->with(['msg' => __('Custom Style Successfully Added...'), 'type' => 'success']);
}
public function custom_js_settings()
{
$custom_js = '/* Write Custom js Here */';
if (file_exists('assets/frontend/js/dynamic-script.js')) {
$custom_js = file_get_contents('assets/frontend/js/dynamic-script.js');
}
return view('backend.general-settings.custom-js')->with(['custom_js' => $custom_js]);
}
public function update_custom_js_settings(Request $request)
{
file_put_contents('assets/frontend/js/dynamic-script.js', $request->custom_js_area);
return redirect()->back()->with(['msg' => __('Custom Script Successfully Added...'), 'type' => 'success']);
}
public function gdpr_settings()
{
$all_languages = Language::all();
return view('backend.general-settings.gdpr')->with(['all_languages' => $all_languages]);
}
public function update_gdpr_cookie_settings(Request $request)
{
$this->validate($request, [
'site_gdpr_cookie_enabled' => 'nullable|string|max:191',
'site_gdpr_cookie_expire' => 'required|string|max:191',
'site_gdpr_cookie_delay' => 'required|string|max:191',
]);
$all_language = Language::all();
foreach ($all_language as $lang) {
$this->validate($request, [
"site_gdpr_cookie_" . $lang->slug . "_title" => 'nullable|string',
"site_gdpr_cookie_" . $lang->slug . "_message" => 'nullable|string',
"site_gdpr_cookie_" . $lang->slug . "_more_info_label" => 'nullable|string',
"site_gdpr_cookie_" . $lang->slug . "_more_info_link" => 'nullable|string',
"site_gdpr_cookie_" . $lang->slug . "_accept_button_label" => 'nullable|string',
"site_gdpr_cookie_" . $lang->slug . "_decline_button_label" => 'nullable|string',
]);
$_title = "site_gdpr_cookie_" . $lang->slug . "_title";
$_message = "site_gdpr_cookie_" . $lang->slug . "_message";
$_more_info_label = "site_gdpr_cookie_" . $lang->slug . "_more_info_label";
$_more_info_link = "site_gdpr_cookie_" . $lang->slug . "_more_info_link";
$_accept_button_label = "site_gdpr_cookie_" . $lang->slug . "_accept_button_label";
$decline_button_label = "site_gdpr_cookie_" . $lang->slug . "_decline_button_label";
$fields = [
$_title,
$_message,
$_more_info_label,
$_more_info_link,
$_accept_button_label,
$decline_button_label,
];
foreach ($fields as $field) {
if ($request->has($field)) {
update_static_option($field, $request->$field);
}
}
}
$fields = [
'site_gdpr_cookie_delay',
'site_gdpr_cookie_enabled',
'site_gdpr_cookie_expire',
];
foreach ($fields as $field) {
update_static_option($field, $request->$field);
}
return redirect()->back()->with(FlashMsg::settings_update());
}
public function license_settings()
{
return view('backend.general-settings.license-settings');
}
public function update_license_settings(Request $request)
{
}
public function sitemap_settings()
{
$all_sitemap = glob('sitemap/*');
return view('backend.general-settings.sitemap-settings')->with(['all_sitemap' => $all_sitemap]);
}
public function update_sitemap_settings(Request $request)
{
$this->validate($request, [
'site_url' => 'required|url',
'title' => 'nullable|string',
]);
$title = $request->title ? $request->title : time();
SitemapGenerator::create(strip_tags($request->site_url))->writeToFile('sitemap/sitemap-' . $title . '.xml');
return redirect()->back()->with([
'msg' => __('Sitemap Generated..'),
'type' => 'success'
]);
}
public function delete_sitemap_settings(Request $request)
{
if (file_exists($request->sitemap_name)) {
@unlink($request->sitemap_name);
}
return redirect()->back()->with(['msg' => __('Sitemap Deleted...'), 'type' => 'danger']);
}
}
Editor is loading...