added new lang route for client side

main
A1Gard 3 months ago
parent ea26cc1155
commit f1813205e8

@ -125,7 +125,7 @@ function showCats($cats = [], $liClass = '', $ulClass = '')
$txt = '';
foreach ($cats as $cat) {
$txt .= '<li class="' . $liClass . '">
<a href="' . route('cat', $cat->slug) . '">' . $cat->name . '</a>';
<a href="' . route('product-category.show', $cat->slug) . '">' . $cat->name . '</a>';
if ($cat->children()->count() > 0) {
// $txt .='<li> '.$cat->name;
$txt .= '<ul class="' . $ulClass . '">';
@ -261,34 +261,34 @@ function MenuShowItems($items)
$out .= '<li>';
switch ($item->kind) {
case "tag":
$out .= '<a href="' . route('n.tag', $item->meta) . '" >' . $item->title . '</a>';
$out .= '<a href="' . route('tag.show', $item->meta) . '" >' . $item->title . '</a>';
break;
case "link":
$out .= '<a href="' . $item->meta . '" >' . $item->title . '</a>';
break;
case "news":
$n = Post::whereId($item->menuable_id)->firstOrFail();
$out .= '<a href="' . route('n.show', $n->slug) . '" >' . $item->title . '</a>';
$out .= '<a href="' . route('post.show', $n->slug) . '" >' . $item->title . '</a>';
break;
case "tag-sub":
$out .= $item->title;
$news = Post::withAnyTag($item->meta)->limit(10)->get(['title', 'slug']);
$out .= '<ul>';
foreach ($news as $new) {
$out .= '<li><a href="' . route('n.show', $new->slug) . '" >' . $new->title . '</a></li>';
$out .= '<li><a href="' . route('post.show', $new->slug) . '" >' . $new->title . '</a></li>';
}
$out .= '</ul>';
break;
case "cat":
$cat = Category::whereId($item->menuable_id)->firstOrFail();
$out .= '<a href="' . route('n.cat', $cat->slug) . '" >' . $item->title . '</a>';
$out .= '<a href="' . route('category.show', $cat->slug) . '" >' . $item->title . '</a>';
break;
case "cat-sub":
$out .= $item->title;
$cats = Category::where('parent_id', $item->menuable_id)->limit(20)->get(['name', 'slug']);
$out .= '<ul>';
foreach ($cats as $c) {
$out .= '<li><a href="' . route('n.cat', $c->slug) . '" >' . $c->name . '</a></li>';
$out .= '<li><a href="' . route('product-category.show', $c->slug) . '" >' . $c->name . '</a></li>';
}
$out .= '</ul>';
break;
@ -298,7 +298,7 @@ function MenuShowItems($items)
$news = $cat->posts()->limit(10)->get(['slug', 'title']);
$out .= '<ul>';
foreach ($news as $new) {
$out .= '<li><a href="' . route('n.show', $new->slug) . '" >' . $new->title . '</a></li>';
$out .= '<li><a href="' . route('post.show', $new->slug) . '" >' . $new->title . '</a></li>';
}
$out .= '</ul>';
break;
@ -682,14 +682,14 @@ function makeProductBreadcrumb(Product $p, Cat $c)
$items = [
[
'name' => $c->name,
'link' => \route('cat', $c->slug)
'link' => \route('product-category.show', $c->slug)
]
];
while ($c->parent_id != null) {
$c = Cat::where('id', $c->parent_id)->first();
$items[] = [
'name' => $c->name,
'link' => \route('cat', $c->slug)
'link' => \route('product-category.show', $c->slug)
];
}

@ -19,7 +19,6 @@ use PHPUnit\Util\Color;
use PDF;
class CustomerController extends Controller
{
/**
@ -30,11 +29,11 @@ class CustomerController extends Controller
public function index()
{
//
if(!\Auth::guard('customer')->check()){
if (!\Auth::guard('customer')->check()) {
return redirect()->route('sign');
}
$customer = Customer::whereId(\Auth::guard('customer')->id())->firstOrFail();
return view('website.customer',compact('customer'));
return view('website.customer', compact('customer'));
}
/**
@ -50,7 +49,7 @@ class CustomerController extends Controller
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
@ -61,7 +60,7 @@ class CustomerController extends Controller
/**
* Display the specified resource.
*
* @param \App\Models\Customer $customer
* @param \App\Models\Customer $customer
* @return \Illuminate\Http\Response
*/
public function show(Customer $customer)
@ -72,7 +71,7 @@ class CustomerController extends Controller
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Customer $customer
* @param \App\Models\Customer $customer
* @return \Illuminate\Http\Response
*/
public function edit(Customer $customer)
@ -83,8 +82,8 @@ class CustomerController extends Controller
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Customer $customer
* @param \Illuminate\Http\Request $request
* @param \App\Models\Customer $customer
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Customer $customer)
@ -95,7 +94,7 @@ class CustomerController extends Controller
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Customer $customer
* @param \App\Models\Customer $customer
* @return \Illuminate\Http\Response
*/
public function destroy(Customer $customer)
@ -103,35 +102,54 @@ class CustomerController extends Controller
//
}
public function invoice(Invoice $invoice){
public function invoiceLang($lang, Invoice $invoice)
{
return $this->invoice($invoice);
}
public function invoice(Invoice $invoice)
{
$options = new QROptions([
'version' => 5,
'version' => 5,
'outputType' => QRCode::OUTPUT_MARKUP_SVG,
'eccLevel' => QRCode::ECC_L,
'eccLevel' => QRCode::ECC_L,
// 'imageTransparent' => true,
]);
$qr = new QRCode($options);
return view('website.invoice',compact('invoice','qr'));
return view('website.invoice', compact('invoice', 'qr'));
}
public function qr($hash){
$invoice = Invoice::where('hash',$hash)->firstOrFail();
public function qrLang($lang, $hash)
{
return $this->qr($hash);
}
public function qr($hash)
{
$invoice = Invoice::where('hash', $hash)->firstOrFail();
$options = new QROptions([
'version' => 5,
'version' => 5,
'outputType' => QRCode::OUTPUT_MARKUP_SVG,
'eccLevel' => QRCode::ECC_L,
'eccLevel' => QRCode::ECC_L,
// 'imageTransparent' => true,
]);
$qr = new QRCode($options);
return view('website.qr',compact('invoice','qr'));
return view('website.qr', compact('invoice', 'qr'));
}
public function pdfLang($lang, $hash)
{
return $this->pdf($hash);
}
public function pdf($hash){
$invoice = Invoice::where('hash',$hash)->firstOrFail();
public function pdf($hash)
{
$invoice = Invoice::where('hash', $hash)->firstOrFail();
$options = new QROptions([
'version' => 5,
'version' => 5,
'outputType' => QRCode::OUTPUT_MARKUP_SVG,
'eccLevel' => QRCode::ECC_L,
'eccLevel' => QRCode::ECC_L,
// 'imageTransparent' => true,
]);
$qr = new QRCode($options);
@ -146,14 +164,15 @@ class CustomerController extends Controller
// $p = view('website.pdf',compact('invoice','qr'))->render();
}
public function SendTicket(TicketSaveRequest $request){
public function SendTicket(TicketSaveRequest $request)
{
$t = new Ticket();
if ($request->has('title')){
if ($request->has('title')) {
$t->title = $request->title;
}else{
if (Ticket::whereId($request->parent_id)->firstOrFail()->customer_id != auth('customer')->id()){
} else {
if (Ticket::whereId($request->parent_id)->firstOrFail()->customer_id != auth('customer')->id()) {
return abort(403);
}else{
} else {
$t->parent_id = $request->parent_id;
}
}
@ -163,24 +182,31 @@ class CustomerController extends Controller
return redirect()->back()->with(['message' => __('Ticket has been sent')]);
}
public function ticket(Ticket $ticket){
if ($ticket->customer_id != auth('customer')->id()){
public function ticketLang($lang, Ticket $ticket)
{
return $this->ticket($ticket);
}
public function ticket(Ticket $ticket)
{
if ($ticket->customer_id != auth('customer')->id()) {
return abort(403);
}
return view('website.ticket',compact('ticket'));
return view('website.ticket', compact('ticket'));
}
public function credit(Invoice $invoice){
public function credit(Invoice $invoice)
{
$c = Customer::whereId(auth('customer')->id())->first();
if($c->credit == 0){
if ($c->credit == 0) {
return redirect()->back()->with(['error' => __("You don't have any credit")]);
}
if ($c->credit > $invoice->total_price){
if ($c->credit > $invoice->total_price) {
$invoice->credit_price = $invoice->total_price;
$invoice->status = Invoice::COMPLETED;
$c->credit = $c->credit - $invoice->total_price;
}else{
$invoice->credit_price = $c->credit ;
} else {
$invoice->credit_price = $c->credit;
$c->credit = 0;
}
$invoice->save();
@ -188,12 +214,13 @@ class CustomerController extends Controller
$cr = new Credit();
$cr->invoice_id = $invoice->id;
$cr->customer_id = $c->id;
$cr->amount = $invoice->credit_price;
$cr->amount = $invoice->credit_price;
$cr->save();
return redirect()->route('customer')->with(['message' => __('Credit applied')]);
}
public function saveAddress(AddressSaveRequest $request){
public function saveAddress(AddressSaveRequest $request)
{
$ad = new Address();
$ad->address = $request->address;
$ad->customer_id = auth('customer')->id();
@ -204,8 +231,14 @@ class CustomerController extends Controller
return redirect()->route('customer')->with(['message' => __('Address saved')]);
}
public function remAddress(Address $address){
if ($address->customer_id == auth('customer')->id()){
public function remAddressLang($lang, Address $address)
{
return $this->remAddress($address);
}
public function remAddress(Address $address)
{
if ($address->customer_id == auth('customer')->id()) {
$address->delete();
}
return redirect()->route('customer')->with(['message' => __('Address removed')]);

@ -80,7 +80,7 @@ class WebsiteController extends Controller
->orderByDesc($this->sort)->orderByDesc('id');
if ($request->has('ext')) {
$q = $q->where('stock_status', 'IN_STOCK')
->where('stock_quantity','>',0);
->where('stock_quantity', '>', 0);
}
if ($request->has('from')) {
$q = $q->where('price', '>=', $request->input('from'));
@ -110,29 +110,34 @@ class WebsiteController extends Controller
$q = $q->orderByDesc('sell_count');
}
if (isset($request->meta) && isset($request->meta['material'])){
if (isset($request->meta) && isset($request->meta['material'])) {
// dd(array_column(json_decode($request->meta['material'],true),'value'));
if (count(json_decode($request->meta['material'],true) ) > 0){
$q->whereMetaIn('material',array_column(json_decode($request->meta['material'],true),'value'));
if (count(json_decode($request->meta['material'], true)) > 0) {
$q->whereMetaIn('material', array_column(json_decode($request->meta['material'], true), 'value'));
}
}
if (isset($request->meta) && isset($request->meta['size'])) {
$id = Quantity::where('count','>',0)
->where('data','LIKE','%"size":"'.$request->meta['size'].'"%')
$id = Quantity::where('count', '>', 0)
->where('data', 'LIKE', '%"size":"' . $request->meta['size'] . '"%')
->pluck('product_id')->toArray();
$q->whereIn('id',$id);
$q->whereIn('id', $id);
}
if (isset($request->meta) && isset($request->meta['color'])) {
$id = Quantity::where('count','>',0)
->where('data','LIKE','%"color":"'.$request->meta['color'].'"%')
$id = Quantity::where('count', '>', 0)
->where('data', 'LIKE', '%"color":"' . $request->meta['color'] . '"%')
->pluck('product_id')->toArray();
$q->whereIn('id',$id);
$q->whereIn('id', $id);
}
$products = $q->paginate(16);
return view('website.cat', compact('cat', 'products'));
}
public function catLang($lang, Cat $cat, Request $request)
{
return $this->cat($cat, $request);
}
public function products()
{
$sld = Slider::inRandomOrder()->first();
@ -144,15 +149,15 @@ class WebsiteController extends Controller
public function product($pro)
{
if (is_numeric($pro)){
if (is_numeric($pro)) {
$pro = Product::whereId($pro)->first();
if ($pro == null){
if ($pro == null) {
$pro = Product::inRandomOrder()->limit(1)->first();
}
return redirect()->route('product',$pro->slug);
return redirect()->route('product', $pro->slug);
}else{
} else {
$pro = Product::whereSlug($pro)->first();
}
@ -164,6 +169,11 @@ class WebsiteController extends Controller
return view('website.product', compact('pro', 'cat', 'comments'));
}
public function productLang($lang, $pro)
{
return $this->product($pro);
}
public function searchAjax(Request $request)
{
if (!$request->has('q') || mb_strlen(trim($request->q)) < 3) {
@ -190,6 +200,11 @@ class WebsiteController extends Controller
return ['OK' => true, 'data' => $pros];
}
public function searchLang($lang, $term, Request $request)
{
return $this->search($term, $request);
}
public function search(Request $request)
{
if (!$request->has('q') || mb_strlen(trim($request->q)) < 3) {
@ -223,6 +238,16 @@ class WebsiteController extends Controller
return view('website.post', compact('post', 'comments', 'sld'));
}
public function postLang($lang, Post $post)
{
return $this->post($post);
}
public function galleryLang($lang, Gallery $gallery)
{
return $this->gallery($gallery);
}
public function gallery(Gallery $gallery)
{
$title = $gallery->title;
@ -248,6 +273,11 @@ class WebsiteController extends Controller
}
public function tagLang($lang, $tag)
{
return $this->tag($tag);
}
public function tag($tag)
{
$title = __('Tag') . ' ' . $tag;
@ -264,6 +294,11 @@ class WebsiteController extends Controller
return view('website.posts', compact('posts', 'title', 'subtitle'));
}
public function categoryLang($lang, Category $category)
{
return $this->category($category);
}
public function posts()
{
$title = __('All posts');
@ -274,22 +309,31 @@ class WebsiteController extends Controller
}
public function like(Post $news, Request $request)
public function likeLang($lang, Post $post, Request $request)
{
return $this->like($post, $request);
}
if (!gLog(Post::class, $news->id, 'like', $request)) {
return ['OK' => false, 'msg' => __("You liked ago ") . $news->title];
public function like(Post $post, Request $request)
{
if (!gLog(Post::class, $post->id, 'like', $request)) {
return ['OK' => false, 'msg' => __("You liked ago ") . $post->title];
}
if ($request->input('action') == 1) {
$news->increment('like');
return ['OK' => true, 'msg' => __("You liked ") . $news->title];
$post->increment('like');
return ['OK' => true, 'msg' => __("You liked ") . $post->title];
} else {
$news->increment('dislike');
return ['OK' => true, 'msg' => __("You disliked ") . $news->title];
$post->increment('dislike');
return ['OK' => true, 'msg' => __("You disliked ") . $post->title];
}
}
public function voteLang($lang ,Poll $poll, Request $request){
return $this->vote($poll,$request);
}
public function vote(Poll $poll, Request $request)
{
@ -305,6 +349,9 @@ class WebsiteController extends Controller
}
public function pollLang($lang, Poll $poll, Request $request){
return $this->poll($poll,$request);
}
public function poll(Poll $poll, Request $request)
{
$count = $poll->opinions()->sum('vote');
@ -313,6 +360,11 @@ class WebsiteController extends Controller
}
public function commentPostLang($lang, Post $post, CommentClientRequest $request)
{
return $this->commentPost($post, $request);
}
public function commentPost(Post $post, CommentClientRequest $request)
{
@ -352,6 +404,12 @@ class WebsiteController extends Controller
}
public function commentProductLang($lang, Product $product, CommentClientRequest $request)
{
return $this->commentProduct($product, $request);
}
public function commentProduct(Product $product, CommentClientRequest $request)
{
@ -391,6 +449,9 @@ class WebsiteController extends Controller
}
public function goadvLang($lang, Adv $adv){
return $this->goadv($adv);
}
public function goadv(Adv $adv)
{
$adv->increment('click');
@ -418,6 +479,11 @@ class WebsiteController extends Controller
return view('website.compare', compact('pros'));
}
public function compareAddLang($lang, Product $pro)
{
$this->compareAdd($pro);
}
public function compareRem(Product $pro)
{
$arr = unserialize(session('to_compare', serialize([])));
@ -428,6 +494,11 @@ class WebsiteController extends Controller
return redirect()->route('compare');
}
public function compareRemLang($lang, Product $pro)
{
return $this->compareRem($pro);
}
public function cardAdd($id)
{
$arr = unserialize(session('card', serialize([])));
@ -439,6 +510,16 @@ class WebsiteController extends Controller
return ['OK' => true, 'msg' => __('Added to card'), 'data' => count(array_merge($arr, $arr2))];
}
public function cardAddLang($lang, $id)
{
return $this->cardAdd($id);
}
public function cardAddQLang($lang, $id, $count)
{
return $this->cardAddQ($id, $count);
}
public function cardAddQ($id, $count)
{
$arr = unserialize(session('qcard', serialize([])));
@ -453,6 +534,11 @@ class WebsiteController extends Controller
return ['OK' => true, 'msg' => __('Added to card'), 'data' => count(array_merge($arr, $arr2))];
}
public function cardRemLang($lang, $id)
{
return $this->cardRem($id);
}
public function cardRem($id)
{
$arr = unserialize(session('card', serialize([])));
@ -463,6 +549,11 @@ class WebsiteController extends Controller
return redirect()->route('card.show')->with(['message' => __('Product removed form card')]);
}
public function cardRemQLang($lang, $id)
{
return $this->cardRemQ($id);
}
public function cardRemQ($id)
{
$arr = unserialize(session('qcard', serialize([])));
@ -485,13 +576,13 @@ class WebsiteController extends Controller
$counts = unserialize(session('qcounts', serialize([])));
$qpros = Quantity::whereIn('id', $arr)->get();
$transports = Transport::orderBy('sort')->orderBy('price')->get();
$resevers = Invoice::where('reserve',1)->where('customer_id', \auth('customer')->id())
$resevers = Invoice::where('reserve', 1)->where('customer_id', \auth('customer')->id())
->whereBetween('created_at',
[
Carbon::now()->subHour((int)getSetting('reserve')),
Carbon::now(),
])->get();
\Session::put('shoping_card','1');
\Session::put('shoping_card', '1');
\Session::save();
return view('website.card', compact('pros', 'transports', 'qpros', 'counts', 'resevers'));
}
@ -553,11 +644,11 @@ class WebsiteController extends Controller
$mobile = $request->mobile;
if (Customer::where('mobile', $mobile)->count() > 0) {
if (Customer::where('mobile', $mobile)->where('code', $code)->count() > 0){
if (Customer::where('mobile', $mobile)->where('code', $code)->count() > 0) {
Auth::guard('customer')->loginUsingId(Customer::where('mobile', $mobile)
->where('code', $code)->first()->id);
return ['OK' => true, 'msg' => __('Welcome')];
}else{
} else {
return ['OK' => false, 'err' => __('Auth code error')];
}
// login
@ -613,6 +704,11 @@ class WebsiteController extends Controller
return view('website.track', compact('attaches'));
}
public function favToggleLang($lang, Product $product)
{
return $this->favToggle($product);
}
public function favToggle(Product $product)
{
if (\auth('customer')->check()) {
@ -657,19 +753,21 @@ class WebsiteController extends Controller
}
static public function resetStockStatus(){
static public function resetStockStatus()
{
Product::whereStockQuantity('0')->update(['stock_status' => 'OUT_STOCK']);
return 'Done!';
}
static public function resetQuantity(){
static public function resetQuantity()
{
$qs = Quantity::groupBy('product_id')
$qs = Quantity::groupBy('product_id')
->select('product_id', DB::raw('sum(`count`) as count'))
->get();
foreach ($qs as $q){
foreach ($qs as $q) {
$p = Product::whereId($q->product_id)->first();
if ($p != null){
if ($p != null) {
$p->stock_quantity = $q->count;
$p->save();
}

@ -3,7 +3,7 @@
@foreach($items as $item)
<url>
<loc>{{route('cat',$item->slug)}}</loc>
<loc>{{route('product-category.show',$item->slug)}}</loc>
<lastmod>{{ $item->updated_at->tz('UTC')->toAtomString() }}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>

@ -9,7 +9,7 @@
@foreach($items as $item)
<url>
<loc>{{route('n.show',$item->slug)}}</loc>
<loc>{{route('post.show',$item->slug)}}</loc>
<lastmod>{{ $item->updated_at->tz('UTC')->toAtomString() }}</lastmod>
<changefreq>weekly</changefreq>
<priority>0.7</priority>

@ -7,7 +7,7 @@
</div>
<div class="col-md-9">
<h3>
<a href="{{route('n.show',$n->slug)}}">
<a href="{{route('post.show',$n->slug)}}">
{{$n->title}}
</a>
</h3>

@ -1,6 +1,6 @@
@foreach(\App\Adv::where('active',1)->get() as $ad)
<div class="mb-2">
<a href="{{route('n.goadv',$ad->id)}}" class="adv">
<a href="{{route('goadv',$ad->id)}}" class="adv">
<img src="{{$ad->imgUrl()}}" alt="[{{$ad->title}}]" title="{{$ad->title}}">
</a>
</div>

@ -9,7 +9,7 @@
<ul>
@foreach(\App\Helpers\getSettingCategory('footer1')->posts as $p)
<li>
<a href="{{route('n.show',$p->slug)}}">
<a href="{{route('post.show',$p->slug)}}">
{{$p->title}}
</a>
</li>
@ -23,7 +23,7 @@
<ul>
@foreach(\App\Helpers\getSettingCategory('footer2')->posts as $p)
<li>
<a href="{{route('n.show',$p->slug)}}">
<a href="{{route('post.show',$p->slug)}}">
{{$p->title}}
</a>
</li>

@ -106,7 +106,7 @@
</div>
<div class="col-lg-4 col-md-6">
<div class="input-group flex-nowrap" style="margin-top: 1em;">
<input type="text" id="searching" data-url="{{route('search')}}"
<input type="text" id="searching" data-url="{{route('search','')}}"
data-ajax="{{route('search.ajax')}}" class="form-control" placeholder="جستجو در محصولات..."
aria-label="search"
aria-describedby="addon-wrapping">

@ -2,7 +2,7 @@
<ul id="mega-menu">
@foreach(\App\Helpers\getMainCats(8) as $mcat)
<li>
<a href="{{route('cat',$mcat->slug)}}">
<a href="{{route('product-category.show',$mcat->slug)}}">
{{$mcat->name}}
</a>
<ul>
@ -30,7 +30,7 @@
<ul>
@foreach(\App\Helpers\getSubCats($mcat->id) as $subcat)
<li>
<a href="{{route('cat',$subcat->slug)}}">
<a href="{{route('product-category.show',$subcat->slug)}}">
{{$subcat->name}}
</a>
</li>

@ -2,21 +2,21 @@
<ul id="mega-menu">
@foreach(\App\Helpers\getMainCats(8) as $mcat)
<li>
<a href="{{route('cat',$mcat->slug)}}">
<a href="{{route('product-category.show',$mcat->slug)}}">
{{$mcat->name}}
</a>
<ul>
@foreach(\App\Helpers\getSubCats($mcat->id,4) as $subcat)
<li>
<h3>
<a href="{{route('cat',$subcat->slug)}}">
<a href="{{route('product-category.show',$subcat->slug)}}">
{{$subcat->name}}
</a>
</h3>
<ul>
@foreach(\App\Helpers\getSubCats($subcat->id) as $sc)
<li>
<a href="{{route('cat',$sc->slug)}}">
<a href="{{route('product-category.show',$sc->slug)}}">
{{$sc->name}}
</a>
</li>

@ -166,14 +166,14 @@
<div class="row">
@foreach(\Xmen\StarterKit\Models\Post::where('status',1)->limit(4)->get() as $p)
<div class="col-md-3">
<a href="{{route('n.show',$p->slug)}}" class="text-dark text-decoration-none">
<a href="{{route('post.show',$p->slug)}}" class="text-dark text-decoration-none">
<div class="mb-4 card post-card">
<img src="{{$p->imgurl()}}" class="img-fluid" alt="{{$p->title}}" title="{{$p->title}}">
<div class="card-body">
<h3 class="textt">{{$p->title}}</h3>
<div class="mb-2">
@foreach($p->tags as $tag)
<a class="post-tag ms-2" href="{{route('n.tag',$tag->slug)}}">
<a class="post-tag ms-2" href="{{route('tag.show',$tag->slug)}}">
{{$tag->name}}
</a>
@endforeach
@ -210,7 +210,7 @@
<div class="row">
@foreach(\App\Helpers\getSubCats(\App\Helpers\getSetting('4cat')) as $cat)
<div class="col-md-2 col-sm-3 col-4">
<a href="{{route('cat',$cat->slug)}}">
<a href="{{route('product-category.show',$cat->slug)}}">
<img src="{{$cat->thumbUrl()}}" title="{{$cat->name}}" alt="{{$cat->name}}">
</a>
</div>

@ -15,12 +15,12 @@
</a>
</li>
<li class="breadcrumb-item">
<a href="{{route('n.mag')}}">
<a href="{{route('mag')}}">
{{__("Magazine")}}
</a>
</li>
<li class="breadcrumb-item">
<a href="{{route('n.category',$post->categories()->first()->slug)}}">
<a href="{{route('category.show',$post->categories()->first()->slug)}}">
{{$post->categories()->first()->name}}
</a>
</li>
@ -61,7 +61,7 @@
ارسال دیدگاه
</h5>
<form class="xsumbmiter non-print" method="post" id="comment-form-body" action="no-action">
<input type="hidden" id="smt" value="{{route('n.comment.post',$post->slug)}}">
<input type="hidden" id="smt" value="{{route('comment.post',$post->slug)}}">
@csrf
<input type="hidden" id="reply" name="parent" value="">
<div class="row mb-3">

@ -14,14 +14,14 @@
<div class="row">
@foreach($posts as $p)
<div class="col-md-4">
<a href="{{route('n.show',$p->slug)}}" class="text-dark text-decoration-none">
<a href="{{route('post.show',$p->slug)}}" class="text-dark text-decoration-none">
<div class="mb-4 card post-card">
<img src="{{$p->imgurl()}}" class="img-fluid" alt="{{$p->title}}" title="{{$p->title}}">
<div class="card-body">
<h3 class="textt">{{$p->title}}</h3>
<div class="mb-2">
@foreach($p->tags as $tag)
<a class="post-tag ms-2" href="{{route('n.tag',$tag->slug)}}">
<a class="post-tag ms-2" href="{{route('tag.show',$tag->slug)}}">
{{$tag->name}}
</a>
@endforeach
@ -53,7 +53,7 @@
<ul class="list-group">
@foreach(\Xmen\StarterKit\Models\Post::latest()->limit(10)->get() as $post)
<li class="list-group-item">
<a href="">
<a href="{{route('post.show',$post->slug)}}">
{{$post->title}}
</a>
</li>

@ -63,11 +63,11 @@
</li>
@if ($cat->parent != null)
<li class="breadcrumb-item">
<a href="{{route('cat',$cat->parent->slug)}}">{{$cat->parent->name}}</a>
<a href="{{route('product-category.show',$cat->parent->slug)}}">{{$cat->parent->name}}</a>
</li>
@endif
<li class="breadcrumb-item">
<a href="{{route('cat',$cat->slug)}}">{{$cat->name}}</a>
<a href="{{route('product-category.show',$cat->slug)}}">{{$cat->name}}</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
{{$pro->name}}
@ -279,7 +279,7 @@
<form class="xsumbmiter non-print" method="post" id="comment-form-body"
action="no-action">
<input type="hidden" id="smt"
value="{{route('n.comment.product',$pro->slug)}}">
value="{{route('comment.product',$pro->slug)}}">
@csrf
<input type="hidden" id="reply" name="parent" value="">
<div class="row mb-3">

@ -198,24 +198,9 @@ Route::group(
['middleware' => ['under']],
function () {
Route::get('/', [App\Http\Controllers\WebsiteController::class, 'index'])->name('welcome');
Route::get('/product-category/{cat}', [App\Http\Controllers\WebsiteController::class, 'cat'])->name('cat');
Route::get('/product/{pro}', [App\Http\Controllers\WebsiteController::class, 'product'])->name('product');
Route::get('/compare/remove/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareRem'])->name('compare.rem');
Route::get('/compare/add/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareAdd'])->name('compare.add');
Route::get('/compare', [App\Http\Controllers\WebsiteController::class, 'compare'])->name('compare');
Route::get('/card-add/{id}', [App\Http\Controllers\WebsiteController::class, 'cardAdd'])->name('card.add');
Route::get('/card-rem/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRem'])->name('card.rem');
Route::get('/card-add-q/{id}/{count}', [App\Http\Controllers\WebsiteController::class, 'cardAddQ'])->name('card.addq');
Route::get('/card-rem-q/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRemQ'])->name('card.remq');
Route::get('/post/{post}', [App\Http\Controllers\WebsiteController::class, 'post'])->name('post');
Route::get('/products', [App\Http\Controllers\WebsiteController::class, 'products'])->name('products');
Route::get('/search/ajax', [App\Http\Controllers\WebsiteController::class, 'searchAjax'])->name('search.ajax');
Route::get('/search', [App\Http\Controllers\WebsiteController::class, 'search'])->name('search');
Route::get('/card', [App\Http\Controllers\WebsiteController::class, 'card'])->name('card.show');
Route::get('/sign', [App\Http\Controllers\WebsiteController::class, 'sign'])->name('sign');
Route::get('/customer/invoice/{invoice}', [App\Http\Controllers\CustomerController::class, 'invoice'])->name('customer.invoice')->middleware('auth:customer');
Route::get('/customer/address/save', [App\Http\Controllers\CustomerController::class, 'saveAddress'])->name('customer.address')->middleware('auth:customer');
Route::get('/customer/address/rem/{address}', [App\Http\Controllers\CustomerController::class, 'remAddress'])->name('customer.remaddress')->middleware('auth:customer');
Route::get('/customer', [App\Http\Controllers\CustomerController::class, 'index'])->name('customer')->middleware('auth:customer');
Route::post('/signin', [\App\Http\Controllers\Auth\LoginController::class, 'customerLogin'])->name('signin');
Route::post('/signup', [\App\Http\Controllers\Auth\RegisterController::class, 'createCustomer'])->name('signup');
@ -224,16 +209,7 @@ Route::group(
Route::post('/checkSMS', [\App\Http\Controllers\WebsiteController::class, 'checkSMS'])->name('checkSMS');
Route::post('/profile', [\App\Http\Controllers\WebsiteController::class, 'profile'])->name('profile');
Route::get('/logout', [\App\Http\Controllers\WebsiteController::class, 'logout'])->name('logout');
Route::post('/discount', [\App\Http\Controllers\WebsiteController::class, 'discount'])->name('discount');
Route::get('/invoice/qr/{hash}', [\App\Http\Controllers\CustomerController::class, 'qr'])->name('invoice.qr');
Route::get('/invoice/pdf/{hash}', [\App\Http\Controllers\CustomerController::class, 'pdf'])->name('invoice.pdf');
Route::post('/ticket/send', [\App\Http\Controllers\CustomerController::class, 'SendTicket'])->name('ticket.send');
Route::get('/ticket/{ticket}', [\App\Http\Controllers\CustomerController::class, 'ticket'])->name('ticket.show');
Route::get('/posts', [App\Http\Controllers\WebsiteController::class, 'posts'])->name('posts');
Route::get('/track', [App\Http\Controllers\WebsiteController::class, 'track'])->name('track');
Route::get('/redirect/bank/{invoice}/{gateway}', \App\Http\Controllers\Payment\GatewayRedirectController::class)->name('redirect.bank');
Route::any('/pay/check/{invoice_hash}/{gateway}', \App\Http\Controllers\Payment\GatewayVerifyController::class)->name('pay.check');
Route::get('/fav/toggle/{product}', [App\Http\Controllers\WebsiteController::class, 'favToggle'])->name('fav.toggle');
Route::get('/products', [App\Http\Controllers\WebsiteController::class, 'products'])->name('products');
Route::post('/contact/send', [App\Http\Controllers\WebsiteController::class, "sendContact"])->name('sendcontact');
Route::get('/contact', [App\Http\Controllers\WebsiteController::class, "contact"])->name('contact');
Route::get('/reset', [App\Http\Controllers\WebsiteController::class, "reset"])->name('reset');
@ -241,42 +217,124 @@ Route::group(
Route::get('/resetQ', [App\Http\Controllers\WebsiteController::class, "resetQuantity"])->name('resetQuantity');
Route::get('/credit/pay/{invoice}', [App\Http\Controllers\CustomerController::class, 'credit'])->name('credit');
Route::post('/invoice', [\App\Http\Controllers\Payment\GatewayRedirectController::class, 'createInvoice'])->middleware('auth:customer')->name('invoice.create');
Route::get('/mag', [App\Http\Controllers\WebsiteController::class, 'mag'])->name('mag');
Route::get('/search/ajax', [App\Http\Controllers\WebsiteController::class, 'searchAjax'])->name('search.ajax');
Route::get('/compare/now', [App\Http\Controllers\WebsiteController::class, 'compare'])->name('compare');
Route::get('/posts', [App\Http\Controllers\WebsiteController::class, 'posts'])->name('posts');
Route::get('/track', [App\Http\Controllers\WebsiteController::class, 'track'])->name('track');
Route::post('/discount', [\App\Http\Controllers\WebsiteController::class, 'discount'])->name('discount');
Route::get('galleries', [App\Http\Controllers\WebsiteController::class, 'galleries'])->name('galleries');
Route::get('clips', [App\Http\Controllers\WebsiteController::class, 'clips'])->name('clips');
Route::get('/customer/address/save', [App\Http\Controllers\CustomerController::class, 'saveAddress'])->name('customer.address')->middleware('auth:customer');
Route::post('/ticket/send', [\App\Http\Controllers\CustomerController::class, 'SendTicket'])->name('ticket.send');
Route::get('/product-category/{cat}', [App\Http\Controllers\WebsiteController::class, 'cat'])->name('cat');
Route::get('/product/{pro}', [App\Http\Controllers\WebsiteController::class, 'product'])->name('product');
Route::get('/compare/remove/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareRem'])->name('compare.rem');
Route::get('/compare/add/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareAdd'])->name('compare.add');
Route::get('/card-add/{id}', [App\Http\Controllers\WebsiteController::class, 'cardAdd'])->name('card.add');
Route::get('/card-rem/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRem'])->name('card.rem');
Route::get('/card-add-q/{id}/{count}', [App\Http\Controllers\WebsiteController::class, 'cardAddQ'])->name('card.addq');
Route::get('/card-rem-q/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRemQ'])->name('card.remq');
Route::get('/post/{post}', [App\Http\Controllers\WebsiteController::class, 'post'])->name('post');
Route::get('/customer/invoice/{invoice}', [App\Http\Controllers\CustomerController::class, 'invoice'])->name('customer.invoice')->middleware('auth:customer');
Route::get('/customer/address/rem/{address}', [App\Http\Controllers\CustomerController::class, 'remAddress'])->name('customer.remaddress')->middleware('auth:customer');
Route::get('/invoice/qr/{hash}', [\App\Http\Controllers\CustomerController::class, 'qr'])->name('invoice.qr');
Route::get('/invoice/pdf/{hash}', [\App\Http\Controllers\CustomerController::class, 'pdf'])->name('invoice.pdf');
Route::get('/ticket/{ticket}', [\App\Http\Controllers\CustomerController::class, 'ticket'])->name('ticket.show');
Route::get('/fav/toggle/{product}', [App\Http\Controllers\WebsiteController::class, 'favToggle'])->name('fav.toggle');
Route::get('/tag/{tag}', [App\Http\Controllers\WebsiteController::class, 'tag'])->name('tag.show');
Route::get('/category/{category}', [App\Http\Controllers\WebsiteController::class, 'category'])->name('category.show');
Route::get('/product-category/{cat}', [App\Http\Controllers\WebsiteController::class, 'cat'])->name('product-category.show');
Route::get('/post/{post}', [App\Http\Controllers\WebsiteController::class, 'post'])->name('post.show');
Route::get('/g/{gallery}', [App\Http\Controllers\WebsiteController::class, 'gallery'])->name('gallery');
Route::get('/s/{term}', [App\Http\Controllers\WebsiteController::class, 'search'])->name('search');
Route::post('/comment/post/{post}', [App\Http\Controllers\WebsiteController::class, 'commentPost'])->name('comment.post');
Route::post('/comment/product/{product}', [App\Http\Controllers\WebsiteController::class, 'commentProduct'])->name('comment.product');
Route::post('/like/{news}', [App\Http\Controllers\WebsiteController::class, 'like'])->name('like');
Route::post('/vote/{poll}', [App\Http\Controllers\WebsiteController::class, 'vote'])->name('vote');
Route::get('/poll/{poll}', [App\Http\Controllers\WebsiteController::class, 'poll'])->name('poll');
Route::get('/goadv/{adv}', [App\Http\Controllers\WebsiteController::class, 'goadv'])->name('goadv');
Route::get('/redirect/bank/{invoice}/{gateway}', \App\Http\Controllers\Payment\GatewayRedirectController::class)->name('redirect.bank');
Route::any('/pay/check/{invoice_hash}/{gateway}', \App\Http\Controllers\Payment\GatewayVerifyController::class)->name('pay.check');
});
Route::get('/underConstruct', function () {
return view('website.under');
});
Route::prefix('')->name('n.')->group(function () {
Route::get('mag', [App\Http\Controllers\WebsiteController::class, 'mag'])->name('mag');
Route::get('tag/{tag}', [App\Http\Controllers\WebsiteController::class, 'tag'])->name('tag');
Route::get('category/{category}', [App\Http\Controllers\WebsiteController::class, 'category'])->name('category');
Route::get('category/{cat}', [App\Http\Controllers\WebsiteController::class, 'cat'])->name('cat');
Route::get('n/{post}', [App\Http\Controllers\WebsiteController::class, 'post'])->name('show');
Route::get('galleries', [App\Http\Controllers\WebsiteController::class, 'galleries'])->name('galleries');
Route::get('clips', [App\Http\Controllers\WebsiteController::class, 'clips'])->name('clips');
// Route::get('faq', "WebsiteController@faq")->name('faq'); //ESH
Route::get('g/{gallery}', [App\Http\Controllers\WebsiteController::class, 'gallery'])->name('gallery');
Route::get('s/{term}', [App\Http\Controllers\WebsiteController::class, 'search'])->name('search');
Route::post('comment/post/{post}', [App\Http\Controllers\WebsiteController::class, 'commentPost'])->name('comment.post');
Route::post('comment/product/{product}', [App\Http\Controllers\WebsiteController::class, 'commentProduct'])->name('comment.product');
Route::post('like/{news}', [App\Http\Controllers\WebsiteController::class, 'like'])->name('like');
Route::post('vote/{poll}', [App\Http\Controllers\WebsiteController::class, 'vote'])->name('vote');
Route::get('poll/{poll}', [App\Http\Controllers\WebsiteController::class, 'poll'])->name('poll');
Route::get('goadv/{adv}', [App\Http\Controllers\WebsiteController::class, 'goadv'])->name('goadv');
// Route::post('assign', [App\Http\Controllers\WebsiteController::class, ''])->name('assign');
});
//Route::get('contact', [App\Http\Controllers\WebsiteController::class, "contact"])->name('contact');
//Route::get('mag', [App\Http\Controllers\WebsiteController::class, 'mag'])->name('mag');
Route::prefix('/{lang}')->name('lang.')->group(function () {
Route::prefix('/{lang?}')->name('lang.')->group(function () {
Route::group(
['middleware' => ['lang']],
function () {
Route::get('mag', [App\Http\Controllers\WebsiteController::class, 'mag'])->name('mag');
Route::get('contact', [App\Http\Controllers\WebsiteController::class, "contact"])->name('contact');
Route::get('/', [App\Http\Controllers\WebsiteController::class, 'index'])->name('welcome');
Route::get('/search', [App\Http\Controllers\WebsiteController::class, 'search'])->name('search');
Route::get('/card', [App\Http\Controllers\WebsiteController::class, 'card'])->name('card.show');
Route::get('/sign', [App\Http\Controllers\WebsiteController::class, 'sign'])->name('sign');
Route::get('/customer', [App\Http\Controllers\CustomerController::class, 'index'])->name('customer')->middleware('auth:customer');
Route::post('/signin', [\App\Http\Controllers\Auth\LoginController::class, 'customerLogin'])->name('signin');
Route::post('/signup', [\App\Http\Controllers\Auth\RegisterController::class, 'createCustomer'])->name('signup');
Route::post('/question/send', [\App\Http\Controllers\WebsiteController::class, 'questionSend'])->name('question.send');
Route::post('/sendSMS', [\App\Http\Controllers\WebsiteController::class, 'sendSMS'])->name('sendSMS');
Route::post('/checkSMS', [\App\Http\Controllers\WebsiteController::class, 'checkSMS'])->name('checkSMS');
Route::post('/profile', [\App\Http\Controllers\WebsiteController::class, 'profile'])->name('profile');
Route::get('/logout', [\App\Http\Controllers\WebsiteController::class, 'logout'])->name('logout');
Route::get('/products', [App\Http\Controllers\WebsiteController::class, 'products'])->name('products');
Route::post('/contact/send', [App\Http\Controllers\WebsiteController::class, "sendContact"])->name('sendcontact');
Route::get('/contact', [App\Http\Controllers\WebsiteController::class, "contact"])->name('contact');
Route::get('/reset', [App\Http\Controllers\WebsiteController::class, "reset"])->name('reset');
Route::get('/resetStock', [App\Http\Controllers\WebsiteController::class, "resetStockStatus"])->name('resetStock');
Route::get('/resetQ', [App\Http\Controllers\WebsiteController::class, "resetQuantity"])->name('resetQuantity');
Route::get('/credit/pay/{invoice}', [App\Http\Controllers\CustomerController::class, 'credit'])->name('credit');
Route::post('/invoice', [\App\Http\Controllers\Payment\GatewayRedirectController::class, 'createInvoice'])->middleware('auth:customer')->name('invoice.create');
Route::get('/mag', [App\Http\Controllers\WebsiteController::class, 'mag'])->name('mag');
Route::get('/search/ajax', [App\Http\Controllers\WebsiteController::class, 'searchAjax'])->name('search.ajax');
Route::get('/compare/now', [App\Http\Controllers\WebsiteController::class, 'compare'])->name('compare');
Route::get('/posts', [App\Http\Controllers\WebsiteController::class, 'posts'])->name('posts');
Route::get('/track', [App\Http\Controllers\WebsiteController::class, 'track'])->name('track');
Route::post('/discount', [\App\Http\Controllers\WebsiteController::class, 'discount'])->name('discount');
Route::get('galleries', [App\Http\Controllers\WebsiteController::class, 'galleries'])->name('galleries');
Route::get('clips', [App\Http\Controllers\WebsiteController::class, 'clips'])->name('clips');
Route::get('/customer/address/save', [App\Http\Controllers\CustomerController::class, 'saveAddress'])->name('customer.address')->middleware('auth:customer');
Route::post('/ticket/send', [\App\Http\Controllers\CustomerController::class, 'SendTicket'])->name('ticket.send');
Route::get('category/{category}', [App\Http\Controllers\WebsiteController::class, 'categoryLang'])->name('category.show');
Route::get('/product-category/{cat}', [App\Http\Controllers\WebsiteController::class, 'catLang'])->name('product-category.show');
Route::get('/product/{pro}', [App\Http\Controllers\WebsiteController::class, 'productLang'])->name('product');
Route::get('post/{post}', [App\Http\Controllers\WebsiteController::class, 'postLang'])->name('post.show');
Route::get('/compare/remove/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareRemLang'])->name('compare.rem');
Route::get('/compare/add/{pro}', [App\Http\Controllers\WebsiteController::class, 'compareAddLang'])->name('compare.add');
Route::get('/card-add/{id}', [App\Http\Controllers\WebsiteController::class, 'cardAddLang'])->name('card.add');
Route::get('/card-rem/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRemLang'])->name('card.rem');
Route::get('/card-add-q/{id}/{count}', [App\Http\Controllers\WebsiteController::class, 'cardAddQLang'])->name('card.addq');
Route::get('/card-rem-q/{id}', [App\Http\Controllers\WebsiteController::class, 'cardRemQLang'])->name('card.remq');
Route::get('/customer/invoice/{invoice}', [App\Http\Controllers\CustomerController::class, 'invoiceLang'])->name('customer.invoice')->middleware('auth:customer');
Route::get('/customer/address/rem/{address}', [App\Http\Controllers\CustomerController::class, 'remAddressLang'])->name('customer.remaddress')->middleware('auth:customer');
Route::get('/invoice/qr/{hash}', [\App\Http\Controllers\CustomerController::class, 'qrLang'])->name('invoice.qr');
Route::get('/invoice/pdf/{hash}', [\App\Http\Controllers\CustomerController::class, 'pdfLang'])->name('invoice.pdf');
Route::get('/ticket/{ticket}', [\App\Http\Controllers\CustomerController::class, 'ticketLang'])->name('ticket.show');
Route::get('/fav/toggle/{product}', [App\Http\Controllers\WebsiteController::class, 'favToggleLang'])->name('fav.toggle');
Route::get('tag/{tag}', [App\Http\Controllers\WebsiteController::class, 'tagLang'])->name('tag.show');
Route::get('/g/{gallery}', [App\Http\Controllers\WebsiteController::class, 'galleryLang'])->name('gallery');
Route::get('/s/{term}', [App\Http\Controllers\WebsiteController::class, 'searchLang'])->name('search');
Route::post('/comment/post/{post}', [App\Http\Controllers\WebsiteController::class, 'commentPostLang'])->name('comment.post');
Route::post('/comment/product/{product}', [App\Http\Controllers\WebsiteController::class, 'commentProductLang'])->name('comment.product');
Route::post('/like/{news}', [App\Http\Controllers\WebsiteController::class, 'likeLang'])->name('like');
Route::post('/vote/{poll}', [App\Http\Controllers\WebsiteController::class, 'voteLang'])->name('vote');
Route::get('/poll/{poll}', [App\Http\Controllers\WebsiteController::class, 'pollLang'])->name('poll');
Route::get('/goadv/{adv}', [App\Http\Controllers\WebsiteController::class, 'goadvLang'])->name('goadv');
// need check by Sadeghpm
Route::get('/redirect/bank/{invoice}/{gateway}', \App\Http\Controllers\Payment\GatewayRedirectController::class)->name('redirect.bank');
Route::any('/pay/check/{invoice_hash}/{gateway}', \App\Http\Controllers\Payment\GatewayVerifyController::class)->name('pay.check');
});
});

@ -40,7 +40,7 @@ class websitePagesTest extends TestCase
public function test_single_post()
{
if (Post::count() > 0) {
$response = $this->get(route('post', Post::inRandomOrder()->first()->slug));
$response = $this->get(route('post.show', Post::inRandomOrder()->first()->slug));
$response->assertStatus(200);
} else {
$this->assertTrue(true);
@ -61,7 +61,7 @@ class websitePagesTest extends TestCase
public function test_single_product_category()
{
$response = $this->get(route('cat', Cat::inRandomOrder()->first()->slug));
$response = $this->get(route('product-category.show', Cat::inRandomOrder()->first()->slug));
$response->assertStatus(200);
}

Loading…
Cancel
Save