Moderatör tarafında düzenlendi:
|
Aktiflik
Seviye
Deneyim
Aktiflik
Seviye
Deneyim
Aktiflik
Seviye
Deneyim
Aktiflik
Seviye
Deneyim
Aktiflik
Seviye
Deneyim
Aktiflik
Seviye
Deneyim
teşekkürler![]()
*** Gizli metin: alıntı yapılamaz. ***
Aktiflik
Seviye
Deneyim
<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use App\Models\Discounts;
use App\Models\Filters;
use App\Models\Messages;
use App\Models\Products;
use App\Models\Productsets;
use App\Models\Variants;
use App\Models\Shopforms;
use App\Models\Subs;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\Http\Resources\ProductResource;
use Illuminate\Support\Facades\Auth;
use App\Models\Settings;
use GuzzleHttp\Client;
class MainController extends Controller
{
// Anasayfa
public function home()
{
// API key and Place ID
$setOne = Settings::where('id', 42)->first();
$setTwo = Settings::where('id', 43)->first();
$apiKey = $setTwo->settings_value;
$placeId = $setOne->settings_value;
// API request
$client = new Client(['verify' => false]);
$response = $client->get("https://maps.googleapis.com/maps/api/place/details/json?place_id=$placeId&reviews_no_translations=true&key=$apiKey");
// Decode JSON response
$google = json_decode($response->getBody(), true);
// Check if 'result' exists in the response
if (isset($google['result'])) {
// Get reviews
$reviews = $google['result']['reviews'] ?? []; // Fallback to empty array if 'reviews' is not set
} else {
// Log error or set reviews to an empty array if 'result' is missing
\Log::error("Google API response does not contain 'result': " . json_encode($google));
$reviews = [];
}
return view('frontend.default.home', compact('reviews'));
}
// İletişim Sayfası
public function contact()
{
return view('frontend.fixed.contact');
}
// İletişim Formu POST
public function contact_post(Request $request)
{
Messages::create([
"name" => $request->name,
"surname" => $request->surname,
"email" => $request->email,
"phone" => $request->phone,
"message" => $request->message,
"created_at" => now(),
]);
return back()->with('success', 'Mesajınız Başarıyla Gönderildi.');
}
// Cronjob
public function cron()
{
$date = date('Y-m-d');
$clock = date('H:i');
Discounts::where('basla_tarih', $date)
->where('basla_saat', $clock)
->update(['disc_status' => 1]);
Discounts::where('disc_date', $date)
->where('disc_clock', $clock)
->update(['disc_status' => 0]);
}
// Ürün Filtreleme
public function product_filter($set_slug)
{
$info = Productsets::where('set_slug', $set_slug)->firstOrFail();
$data = Variants::join('productsets', 'productsets.set_top', '=', 'variants.variant_id')
->where('productsets.id', $info->id)
->select('variants.*')
->orderBy('variants.id', 'desc')
->paginate(9);
return view('frontend.category.variant', compact('data', 'info'));
}
// Ürün Fiyatı Filtreleme
public function product_price($slug)
{
$fiyat = Filters::where('slug', $slug)->first();
$data = Products::all();
return view('frontend.category.fiyat', compact('data', 'fiyat'));
}
// Mağaza Başvuru Formu
public function magaza_basvuru()
{
return view('frontend.fixed.basvuru');
}
// Mağaza Başvuru POST
public function magaza_basvuru_post(Request $request)
{
$validated = $request->validate([
'ad_soyad' => 'required',
'magaza_adi' => 'required',
'email' => 'required|email',
'telefon' => 'required',
'tc_no' => 'required',
'sirket_turu' => 'required',
'kategori' => 'required',
'il' => 'required',
'ilce' => 'required',
'adres' => 'required',
]);
$slug = Str::slug($request->magaza_adi);
$seo = $slug . '-' . Auth::user()->identy;
$no = rand(9999, 99999999);
Shopforms::create([
'ad_soyad' => $request->ad_soyad,
'magaza_adi' => $request->magaza_adi,
'email' => $request->email,
'telefon' => $request->telefon,
'tc_no' => $request->tc_no,
'sirket_turu' => $request->sirket_turu,
'kategori' => $request->kategori,
'user_id' => Auth::user()->id,
'il' => $request->il,
'ilce' => $request->ilce,
'adres' => $request->adres,
'magaza_slug' => $seo,
'm_no' => $no,
'created_at' => now(),
]);
return back()->with('message', 'Mağaza Başvurunuz Alındı. Mail veya Telefon ile Bilgilendirileceksiniz.');
}
// Mağaza İndex
public function magaza_index($magaza_slug)
{
$data = Shopforms::where('magaza_slug', $magaza_slug)->firstOrFail();
return view('frontend.magaza.shop', compact('data'));
}
// Ürün API
public function urun_api()
{
$products = Products::all();
return response()->json(['data' => ProductResource::collection($products)], 200, [], JSON_PRETTY_PRINT);
}
// Abone Ol
public function abone_ol(Request $request)
{
Subs::create([
'email' => $request->email,
'ip_adres' => $request->ip(),
]);
return back()->with('success', 'Abone Olundu!');
}
}