1313use Illuminate \Support \Str ;
1414use Javaabu \Cms \Enums \GalleryTypes ;
1515use Javaabu \Cms \Enums \PageStyles ;
16+ use Javaabu \Cms \Traits \IsTaggable ;
1617use Javaabu \Helpers \AdminModel \AdminModel ;
1718use Javaabu \Helpers \AdminModel \IsAdminModel ;
1819use Javaabu \Helpers \Enums \PublishStatuses ;
1920use Javaabu \Helpers \Traits \HasSlug ;
2021use Javaabu \Helpers \Traits \Publishable ;
22+ use Javaabu \Mediapicker \Concerns \InteractsWithAttachments ;
23+ use Javaabu \Mediapicker \Contracts \HasAttachments ;
2124use Javaabu \Translatable \Contracts \Translatable ;
2225use Javaabu \Translatable \JsonTranslatable \IsJsonTranslatable ;
2326use Javaabu \Translatable \Models \Language ;
2427
2528class Post extends Model implements
2629 AdminModel,
27- Translatable
30+ Translatable,
31+ HasAttachments
2832{
2933 use IsJsonTranslatable;
3034 use IsAdminModel;
@@ -33,6 +37,8 @@ class Post extends Model implements
3337 use HasSlug;
3438 use IsJsonTranslatable;
3539 use HasFactory;
40+ use InteractsWithAttachments;
41+ use IsTaggable;
3642
3743 protected static $ status_class = PublishStatuses::class;
3844
@@ -179,10 +185,10 @@ public function getAdminLinkNameAttribute(): string
179185 * @param string $namespace
180186 * @return string
181187 */
182- public function url (string $ action = 'show ' , string $ locale = null , string $ namespace = 'web ' ): string
188+ public function url (string $ action = 'show ' , string $ locale = null , string $ namespace = 'admin ' ): string
183189 {
184190 $ controller = Str::lower (Str::plural (Str::kebab (class_basename (get_class ($ this )))));
185- $ controller_action = $ namespace . '. ' . $ controller . '. ' . $ action . ' . ' . $ this -> postType -> slug ;
191+ $ controller_action = $ namespace . '. ' . $ controller . '. ' . $ action ;
186192
187193 $ params = [
188194 'post_type ' => $ this ->postType ->slug ,
@@ -214,6 +220,10 @@ public function postType(): BelongsTo
214220 return $ this ->belongsTo (PostType::class, 'type ' , 'slug ' );
215221 }
216222
223+ public function categories (): BelongsTo
224+ {
225+ return $ this ->belongsTo (Category::class);
226+ }
217227
218228 /**
219229 * A search scope
@@ -226,7 +236,9 @@ public function postType(): BelongsTo
226236 public function scopeSearch ($ query , $ search , $ locale = null ): mixed
227237 {
228238 // fulltext search on db values or
229- return $ query ->translationsSearch ('title ' , $ search , $ locale );
239+ return config ('cms.should_translate ' )
240+ ? $ query ->translationsSearch ('title ' , $ search , $ locale )
241+ : $ query ->where ('title ' , 'LIKE ' , '% ' .$ search .'% ' );
230242 }
231243
232244 /**
@@ -314,16 +326,8 @@ public function scopeQueryPostType(Builder $query, $type): Builder
314326 * @param string|null $locale
315327 * @return string|null
316328 */
317- public function translatedPermalink (string $ action = 'show ' , string $ locale = null ): ?string
329+ public function permalink (string $ action = 'show ' ): ?string
318330 {
319- if (! $ locale ) {
320- $ locale = app ()->getLocale ();
321- }
322-
323- if ($ this ->lang ->value != $ locale && (is_null ($ this ->translations ) || $ this ->hide_translation )) {
324- return null ;
325- }
326-
327331 $ post_type_slug = $ this ->postType ->slug ;
328332 $ controller = Str::lower (Str::plural (Str::kebab (class_basename (get_class ($ this )))));
329333
@@ -333,7 +337,9 @@ public function translatedPermalink(string $action = 'show', string $locale = nu
333337 $ controller_action = 'web.pages. ' . $ action ;
334338 }
335339
336- $ params = [$ locale , $ this ->slug ];
340+ $ params = [];
341+
342+ $ params [] = $ this ->slug ;
337343
338344 return URL ::route ($ controller_action , $ params );
339345 }
@@ -437,6 +443,16 @@ public function getContentBlocksAttribute(): array
437443 }
438444 }
439445
446+ /**
447+ * With relations scope
448+ *
449+ * @param $query
450+ */
451+ public function scopeWithRelations ($ query )
452+ {
453+ return $ query ->withAttachments ();
454+ }
455+
440456 protected static function newFactory ()
441457 {
442458 return PostFactory::new ();
0 commit comments