⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.1
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
work
/
modules
/
News
/
Models
/
Edit File: News.php
<?php namespace Modules\News\Models; use App\BaseModel; use App\User; use Illuminate\Database\Eloquent\SoftDeletes; use Modules\Core\Models\SEO; use Modules\Review\Models\Review; class News extends BaseModel { use SoftDeletes; protected $table = 'core_news'; protected $fillable = [ 'title', 'content', 'status', 'cat_id', 'image_id', 'gallery', ]; protected $slugField = 'slug'; protected $slugFromField = 'title'; protected $seo_type = 'news'; public $type = 'news'; protected $sitemap_type = 'page'; public function getDetailUrlAttribute() { return url('news-' . $this->slug); } public function geCategorylink() { return route('news.category.index',['slug'=>$this->slug]); } public function cat() { return $this->belongsTo(NewsCategory::class); } public function user() { return $this->belongsTo(User::class, 'author_id'); } public static function getAll() { return self::with('cat')->get(); } public function getDetailUrl($locale = false) { return url(app_get_locale(false,false,'/'). config('news.news_route_prefix')."/".$this->slug); } public function category() { $catename = $this->belongsTo("Modules\News\Models\NewsCategory", "cat_id", "id"); return $catename; } public function getTags() { $tags = NewsTag::where('news_id', $this->id)->get(); $tag_ids = []; if (!empty($tags)) { foreach ($tags as $key => $value) { $tag_ids[] = $value->tag_id; } } return Tag::whereIn('id', $tag_ids)->with('translation')->get(); } public function tags(){ return $this->belongsToMany(Tag::class, NewsTag::class, 'news_id', 'tag_id')->with('translation'); } public static function searchForMenu($q = false) { $query = static::select('id', 'title as name'); if (strlen($q)) { $query->where('title', 'like', "%" . $q . "%"); } $a = $query->orderBy('id', 'desc')->limit(10)->get(); return $a; } public function saveTag($tags_name, $tag_ids) { if (empty($tag_ids)) $tag_ids = []; $tag_ids = array_merge(Tag::saveTagByName($tags_name), $tag_ids); $tag_ids = array_filter(array_unique($tag_ids)); // Delete unused NewsTag::whereNotIn('tag_id', $tag_ids)->where('news_id', $this->id)->delete(); //Add NewsTag::addTag($tag_ids, $this->id); } static public function getSeoMetaForPageList() { $meta['seo_title'] = setting_item_with_lang("news_page_list_seo_title", false,null) ?? setting_item_with_lang("news_page_list_title",false, null) ?? __("News"); $meta['seo_desc'] = setting_item_with_lang("news_page_list_seo_desc"); $meta['seo_image'] = setting_item("news_page_list_seo_image", null) ?? setting_item("news_page_list_banner", null); $meta['seo_share'] = setting_item_with_lang("news_page_list_seo_share"); $meta['full_url'] = url()->current(); return $meta; } public function getEditUrl() { $lang = $this->lang ?? setting_item("site_locale"); return route('news.admin.edit',['id'=>$this->id , "lang"=> $lang]); } public function dataForApi($forSingle = false){ $translation = $this->translate(); $data = [ 'id'=>$this->id, 'slug'=>$this->slug, 'title'=>$translation->title, 'content'=>$translation->content, 'image_id'=>$this->image_id, 'image_url'=>get_file_url($this->image_id,'full'), 'category'=>NewsCategory::selectRaw("id,name,slug")->find($this->cat_id) ?? null, 'created_at'=>display_date($this->created_at), 'author'=>[ 'display_name'=>$this->author->getDisplayName(), 'avatar_url'=>$this->author->getAvatarUrl() ], 'url'=>$this->getDetailUrl() ]; return $data; } public function getNextPost(){ return News::where('id', '>', $this->id)->where('status','publish')->first(); } public function getPrevPost(){ return News::where('id', '<', $this->id)->where('status','publish')->orderByDesc('id')->first(); } public static function getModelName() { return __("News"); } public function getReviewEnable() { return setting_item("news_enable_review", 0); } public function getReviewApproved() { return setting_item("news_review_approved", 0); } public function update_service_rate(){ // No action } public function getReviewData(){ $review = app(Review::class); $reviewData = $review::getTotalViewAndRateAvg($this->id, $this->type); return $reviewData; } public static function getReviewStats() { return []; } }
Simpan