This commit is contained in:
tanch0
2024-06-21 13:29:04 +05:45
parent 5b3c44aa33
commit 25760ad989
50 changed files with 1180 additions and 111 deletions

View File

@ -41,7 +41,8 @@ class NewsController extends Controller
public function store(Request $request)
{
// dd($request->all());
dd($request->all());
$status = $request->input('status');
$isFeatured = $request->input('featured_news');
createActivityLog(NewsController::class, 'store', ' News store');
$validator = Validator::make($request->all(), [
@ -68,6 +69,11 @@ class NewsController extends Controller
} else {
$requestData['featured_news'] = 'False';
}
if($status){
$requestData['status'] = 1;
}else{
$requestData['status'] = 0;
}
array_walk_recursive($requestData, function (&$value) {
$value = str_replace(env('APP_URL') . '/', '', $value);
});
@ -136,6 +142,7 @@ class NewsController extends Controller
public function update(Request $request, $id)
{
$status = $request->input('status');
$isFeatured = $request->input('featured_news');
createActivityLog(NewsController::class, 'update', ' News update');
@ -159,6 +166,11 @@ class NewsController extends Controller
} else {
$filterData['featured_news'] = 'False';
}
if($status){
$filterData['status'] = 1;
}else{
$filterData['status'] = 0;
}
array_walk_recursive($filterData, function (&$value) {
$value = str_replace(env('APP_URL') . '/', '', $value);

View File

@ -0,0 +1,181 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Repositories\PopupRepository;
use Illuminate\Http\Request;
use App\Models\Popups;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Service\CommonModelService;
use Log;
use Exception;
class PopupsController extends Controller
{
protected $modelService;
protected $popupRepository;
public function __construct(Popups $model, PopupRepository $popupRepository)
{
$this->modelService = new CommonModelService($model);
$this->popupRepository = $popupRepository;
}
public function index(Request $request)
{
createActivityLog(PopupsController::class, 'index', ' Popups index');
$data = Popups::where('status', '<>', -1)->orderBy('display_order')->get();
return view("crud.generated.popups.index", compact('data'));
}
public function create(Request $request)
{
createActivityLog(PopupsController::class, 'create', ' Popups create');
$TableData = Popups::where('status', '<>', -1)->orderBy('display_order')->get();
return view("crud.generated.popups.create", compact('TableData'));
}
public function store(Request $request)
{
createActivityLog(PopupsController::class, 'store', ' Popups store');
$validator = Validator::make($request->all(), [
//ADD REQUIRED FIELDS FOR VALIDATION
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors(),
], 500);
}
$request->request->add(['display_order' => getDisplayOrder('tbl_popups')]);
$requestData = $request->all();
array_walk_recursive($requestData, function (&$value) {
$value = str_replace(env('APP_URL') . '/', '', $value);
});
array_walk_recursive($requestData, function (&$value) {
$value = str_replace(env('APP_URL'), '', $value);
});
$requestData['createdBy'] = auth()->user()->id;
$requestData['updatedBy'] = auth()->user()->id;
$this->popupRepository->create($requestData);
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Popups Created Successfully.'], 200);
}
return redirect()->route('popups.index')->with('success', 'The Popups created Successfully.');
}
public function sort(Request $request)
{
$idOrder = $request->input('id_order');
foreach ($idOrder as $index => $id) {
$companyArticle = Popups::find($id);
$companyArticle->display_order = $index + 1;
$companyArticle->save();
}
return response()->json(['status' => true, 'content' => 'The articles sorted successfully.'], 200);
}
public function updatealias(Request $request)
{
$articleId = $request->input('articleId');
$newAlias = $request->input('newAlias');
$companyArticle = Popups::find($articleId);
if (!$companyArticle) {
return response()->json(['status' => false, 'content' => 'Company article not found.'], 404);
}
$companyArticle->alias = $newAlias;
$companyArticle->save();
return response()->json(['status' => true, 'content' => 'Alias updated successfully.'], 200);
}
public function show(Request $request, $id)
{
createActivityLog(PopupsController::class, 'show', ' Popups show');
$data = Popups::findOrFail($id);
return view("crud.generated.popups.show", compact('data'));
}
public function edit(Request $request, $id)
{
createActivityLog(PopupsController::class, 'edit', ' Popups edit');
$TableData = Popups::where('status', '<>', -1)->orderBy('display_order')->get();
$data = Popups::findOrFail($id);
if ($request->ajax()) {
$html = view("crud.generated.popups.ajax.edit", compact('data'))->render();
return response()->json(['status' => true, 'content' => $html], 200);
}
return view("crud.generated.popups.edit", compact('data', 'TableData'));
}
public function update(Request $request, $id)
{
createActivityLog(PopupsController::class, 'update', ' Popups update');
$validator = Validator::make($request->all(), [
//ADD VALIDATION FOR REQIRED FIELDS
]);
if ($validator->fails()) {
return response()->json([
'error' => $validator->errors(),
], 500);
}
$filterData = $request->except(['_method','_token']);
array_walk_recursive($filterData, function (&$value) {
$value = str_replace(env('APP_URL') . '/', '', $value);
});
array_walk_recursive($filterData, function (&$value) {
$value = str_replace(env('APP_URL'), '', $value);
});
$this->popupRepository->update($id, $filterData);
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Popups updated Successfully.'], 200);
}
// return redirect()->route('popups.index')->with('success','The Popups updated Successfully.');
return redirect()->route('popups.index')->with('success', 'The Popups updated successfully.');
}
public function destroy(Request $request, $id)
{
createActivityLog(PopupsController::class, 'destroy', ' Popups destroy');
DB::beginTransaction();
try {
$OperationNumber = getOperationNumber();
$this->modelService->destroy($OperationNumber, $OperationNumber, $id);
} catch (Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
createErrorLog(PopupsController::class, 'destroy', $e->getMessage());
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'The Popups Deleted Successfully.'], 200);
}
public function toggle(Request $request, $id)
{
createActivityLog(PopupsController::class, 'destroy', ' Popups destroy');
$data = Popups::findOrFail($id);
$requestData = ['status' => ($data->status == 1) ? 0 : 1];
DB::beginTransaction();
try {
$OperationNumber = getOperationNumber();
$this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $id);
} catch (Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
createErrorLog(PopupsController::class, 'destroy', $e->getMessage());
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'The Popups Deleted Successfully.'], 200);
}
}

View File

@ -11,6 +11,7 @@ use App\Models\Menuitems;
use App\Models\News;
use App\Models\News_type;
use App\Models\Newscategories;
use App\Models\Popups;
use App\Models\Provinces;
use Illuminate\Http\Request;
use App\Models\Teams;
@ -18,6 +19,7 @@ use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Mail;
use App\Models\Videos;
use Share;
class WebsiteController extends Controller
{
@ -28,22 +30,20 @@ class WebsiteController extends Controller
$this->path = config('app.client_path');
$headerMenuItems = Menuitems::where(['parent_menu' => 0, "status" => 1, "menulocations_id" => 1])->with('children')->orderBy('display_order')->get();
// dd($headerMenuItems->toArray());
$footerMenuItems = Menuitems::where(['parent_menu' => 0, "status" => 1, "menulocations_id" => 2])->with('children')->orderBy('display_order')->get();
$latestNews = News::where('status', 1)->inRandomOrder()->limit(4)->get();
// dd($recentNews);
$ads = Advertisements::where('status', 1)->where('parent_advertisement',0)->get();
// dd($ads->toArray());
$adsWithChildren = Advertisements::where('status',1)->where('parent_advertisement',0)->orderBy('display_order')->with('children')->get();
// dd($adsWithChildren->toArray());
$ads = Advertisements::where('status', 1)->where('parent_advertisement', 0)->get();
$adsWithChildren = Advertisements::where('status', 1)->where('parent_advertisement', 0)->orderBy('display_order')->with('children')->get();
$popup = Popups::where('status',1)->latest()->first();
View::share(
[
'headerMenuItems' => $headerMenuItems,
'footerMenuItems' => $footerMenuItems,
'latestNews' => $latestNews,
'ads' => $ads,
'adsWithChildren' => $adsWithChildren
'adsWithChildren' => $adsWithChildren,
'popup' => $popup
]
);
}
@ -96,11 +96,26 @@ class WebsiteController extends Controller
public function newsDetail($alias)
{
$shareComponent = Share::currentPage()->facebook()->twitter()->whatsapp()->linkedin();
$news = News::where('alias', $alias)->where('status', 1)->first();
$recentNews = News::where('status', 1)->where('news_id', '!=', $news->news_id)->inRandomOrder()->limit(12)->latest()->get();
return view($this->path . '.news-detail', compact('news', 'recentNews'));
if (!$news) {
abort(404, 'News not found');
}
$news->views_count = $news->views_count + 1;
$news->save();
$recentNews = News::where('status', 1)
->where('news_id', '!=', $news->news_id)
->inRandomOrder()
->limit(12)
->latest()
->get();
return view($this->path . '.news-detail', compact('news', 'recentNews','shareComponent'));
}
public function showHororscope()
{
$rashifal = Horoscopes::where('status', 1)->orderBy('display_order')->limit(12)->get();
@ -174,13 +189,14 @@ class WebsiteController extends Controller
public function showProvinces($id)
{
$categoryTitle = Provinces::where('province_id', $id)->pluck('province_nepali_name')->first();
$data = News::where('provinces_id',$id)->where('status',1)->orderBy('display_order')->paginate(9);
return view($this->path . '.single', compact('data','categoryTitle'));
$data = News::where('provinces_id', $id)->where('status', 1)->orderBy('display_order')->paginate(9);
return view($this->path . '.single', compact('data', 'categoryTitle'));
}
public function videoDetail($alias){
public function videoDetail($alias)
{
$data = Videos::where('alias', $alias)->where('status', 1)->first();
$recentNews = News::where('status',1)->inRandomOrder()->limit(12)->latest()->get();
return view($this->path . '.video-detail', compact('data','recentNews'));
$recentNews = News::where('status', 1)->inRandomOrder()->limit(12)->latest()->get();
return view($this->path . '.video-detail', compact('data', 'recentNews'));
}
}

View File

@ -18,6 +18,7 @@ class Advertisements extends Model
'title',
'ad_categories_id',
'alias',
'valid_till',
'parent_advertisement',
'thumb',
'link',

View File

@ -31,6 +31,7 @@ class News extends Model
'image',
'thumb',
'image_source',
'views_count',
'display_order',
'status',
'remarks',

51
app/Models/Popups.php Normal file
View File

@ -0,0 +1,51 @@
<?php
namespace App\Models;
use App\Models\User;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Traits\CreatedUpdatedBy;
class Popups extends Model
{
use HasFactory, CreatedUpdatedBy;
protected $primaryKey = 'id';
public $timestamps = true;
protected $fillable =[
'title',
'description',
'image',
'valid_till',
'link',
'status',
'display_order',
'createdBy',
'updatedBy',
'created_at',
'updated_at',
];
protected $appends = ['status_name'];
protected function getStatusNameAttribute()
{
return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>';
}
protected function createdBy(): Attribute
{
return Attribute::make(
get: fn ($value) => User::find($value) ? User::find($value)->name : '',
);
}
protected function updatedBy(): Attribute
{
return Attribute::make(
get: fn ($value) => User::find($value) ? User::find($value)->name : '',
);
}
}

View File

@ -0,0 +1,9 @@
<?php
namespace App\Repositories\Interface;
interface PopupInterface
{
public function create(array $popupDetail);
public function update($popupId, array $newDetails);
}

View File

@ -0,0 +1,19 @@
<?php
namespace App\Repositories;
use App\Models\Popups;
use App\Repositories\Interface\PopupInterface;
class PopupRepository implements PopupInterface
{
public function create(array $popupDetail)
{
Popups::create($popupDetail);
}
public function update($popupId, array $newDetails)
{
return Popups::where('id', $popupId)->update($newDetails);
}
}