Add (post manage)

Add (post country viewing)
This commit is contained in:
2023-07-28 02:29:11 +08:00
parent e70195f4f7
commit ded1643e5f
49 changed files with 4484 additions and 3844 deletions

View File

@@ -23,6 +23,7 @@ public function __construct()
*/
public function index()
{
return view('admin.home');
return redirect()->route('posts.manage');
//return view('admin.home');
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller
{
public function index(Request $request)
{
$posts = Post::with('post_categories.category.country_locale')->orderBy('created_at', 'desc')->paginate();
return view('admin.posts.manage', compact('posts'));
}
public function new(Request $request)
{
return 'PostController@new';
}
public function edit(Request $request, $post_id)
{
return 'PostController@edit : '.$post_id;
}
}

View File

@@ -8,9 +8,6 @@
use App\Models\Post;
use Illuminate\Http\Request;
use Stevebauman\Location\Facades\Location;
class HomeController extends Controller
{
public function index(Request $request)
@@ -25,37 +22,35 @@ public function country(Request $request, $country)
$country_locale = CountryLocale::where('slug', $country)->first();
if (! is_null($country_locale)) {
$request->session()->put('view_country_locale', $country_locale);
$featured_posts = Post::select('posts.*')
->join('post_categories','posts.id','=', 'post_categories.post_id')
->join('categories','post_categories.category_id','=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->where('posts.featured', true)
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->take(3)
->get();
->join('post_categories', 'posts.id', '=', 'post_categories.post_id')
->join('categories', 'post_categories.category_id', '=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->where('posts.featured', true)
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->take(3)
->get();
$latest_posts = Post::select('posts.*')
->join('post_categories','posts.id','=', 'post_categories.post_id')
->join('categories','post_categories.category_id','=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->where('posts.featured', true)
->whereNotIn('posts.id', $featured_posts->pluck('id')->toArray())
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->distinct()
->take(20)
->get();
->join('post_categories', 'posts.id', '=', 'post_categories.post_id')
->join('categories', 'post_categories.category_id', '=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->whereNotIn('posts.id', $featured_posts->pluck('id')->toArray())
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->distinct()
->take(10)
->get();
return view('front.country', compact('country_locale','featured_posts','latest_posts')
return view('front.country', compact('country_locale', 'featured_posts', 'latest_posts')
);
}
@@ -67,32 +62,57 @@ public function countryCategory(Request $request, $country, $category)
$country_locale = CountryLocale::where('slug', $country)->first();
if (is_null($country_locale)) {
abort(404);
abort(404);
}
$category = Category::where('slug', $category)->where('enabled', true)->first();
$category = Category::where('slug', $category)->where('enabled', true)->first();
if (is_null($category))
{
abort(404);
}
return view('front.country_category', ['country_locale' => $country_locale, 'category' => $category]);
if (is_null($category)) {
abort(404);
}
$latest_posts = Post::with('post_categories')->select('posts.*')
->join('post_categories', 'posts.id', '=', 'post_categories.post_id')
->join('categories', 'post_categories.category_id', '=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->where('categories.id', $category->id)
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->distinct()
->paginate(15);
return view('front.country_category', compact('country_locale', 'category', 'latest_posts'));
}
public function all(Request $request, $country)
{
$country_locale = CountryLocale::where('slug', $country)->first();
$country_locale = CountryLocale::where('slug', $country)->first();
return view('front.country_all', ['country_locale' => $country_locale]);
$latest_posts = Post::with('post_categories')->select('posts.*')
->join('post_categories', 'posts.id', '=', 'post_categories.post_id')
->join('categories', 'post_categories.category_id', '=', 'categories.id')
->whereNotNull('post_categories.id')
->whereNotNull('categories.id')
->where('categories.country_locale_slug', $country_locale->slug)
->where('posts.status', 'publish')
->orderBy('posts.updated_at', 'desc')
->distinct()
->paginate(15);
return view('front.country_all', compact('country_locale', 'latest_posts'));
}
public function posts(Request $request, $country)
public function post(Request $request, $country, $post_slug)
{
return "{$country} : all posts";
}
$post = Post::where('slug', $post_slug)->where('status', 'publish')->first();
if (! is_null($post)) {
return view('front.post', compact('post'));
}
abort(404);
public function post(Request $request, $country, $post)
{
return "{$country} : {$post}";
}
}

View File

@@ -3,10 +3,8 @@
namespace App\Http\Middleware;
use Closure;
use Stevebauman\Location\Facades\Location;
use Galahad\TimezoneMapper\Facades\TimezoneMapper;
use Stevebauman\Location\Facades\Location;
class StoreGeoSession
{
@@ -14,7 +12,6 @@ class StoreGeoSession
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
@@ -34,28 +31,23 @@ public function handle($request, Closure $next)
$needs_update = true;
}
if (!$request->session()->has('timezone')) {
$needs_update = true;
if (! $request->session()->has('timezone')) {
$needs_update = true;
}
if ($needs_update)
{
if ($needs_update) {
if ($payload = Location::get($ip))
{
$request->session()->put('geodata', base64_encode(json_encode($payload)));
$isocode = $payload->isoCode;
}
else
{
$isocode = '*';
if ($payload = Location::get($ip)) {
$request->session()->put('geodata', base64_encode(json_encode($payload)));
$isocode = $payload->isoCode;
} else {
$isocode = '*';
}
$request->session()->put('country', $isocode);
$request->session()->put('country', $isocode);
if (isset($payload->latitude) && isset($payload->longitude))
{
$request->session()->put('timezone', TimezoneMapper::mapCoordinates($payload->latitude, $payload->longitude));
if (isset($payload->latitude) && isset($payload->longitude)) {
$request->session()->put('timezone', TimezoneMapper::mapCoordinates($payload->latitude, $payload->longitude));
}
}