diff --git a/app/Models/AudioCodec.php b/app/Models/AudioCodec.php index 326d0b5b..22f1f90b 100644 --- a/app/Models/AudioCodec.php +++ b/app/Models/AudioCodec.php @@ -6,4 +6,9 @@ namespace App\Models; class AudioCodec extends NexusModel { protected $table = 'audiocodecs'; + + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_audio_codec_label'); + } } diff --git a/app/Models/Category.php b/app/Models/Category.php index 0fca4a1e..7890c353 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -9,6 +9,11 @@ class Category extends NexusModel protected $fillable = ['mode', 'name', 'class_name', 'image', 'sort_index', 'icon_id']; + public static function getLabelName() + { + return nexus_trans('searchbox.category_label'); + } + public function icon(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(Icon::class, 'icon_id'); diff --git a/app/Models/Codec.php b/app/Models/Codec.php index 19e46120..2d0bbad5 100644 --- a/app/Models/Codec.php +++ b/app/Models/Codec.php @@ -6,4 +6,9 @@ namespace App\Models; class Codec extends NexusModel { protected $table = 'codecs'; + + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_codec_label'); + } } diff --git a/app/Models/Media.php b/app/Models/Media.php index 67d76b41..3079c7bc 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -6,4 +6,9 @@ namespace App\Models; class Media extends NexusModel { protected $table = 'media'; + + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_media_label'); + } } diff --git a/app/Models/Processing.php b/app/Models/Processing.php index 6cee840d..7d48db49 100644 --- a/app/Models/Processing.php +++ b/app/Models/Processing.php @@ -6,4 +6,9 @@ namespace App\Models; class Processing extends NexusModel { protected $table = 'processings'; + + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_processing_label'); + } } diff --git a/app/Models/Source.php b/app/Models/Source.php index aab4ab1d..5cd72c0a 100644 --- a/app/Models/Source.php +++ b/app/Models/Source.php @@ -5,4 +5,8 @@ namespace App\Models; class Source extends NexusModel { + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_source_label'); + } } diff --git a/app/Models/Standard.php b/app/Models/Standard.php index 2b4b91fc..0494c38e 100644 --- a/app/Models/Standard.php +++ b/app/Models/Standard.php @@ -5,5 +5,8 @@ namespace App\Models; class Standard extends NexusModel { - + public static function getLabelName() + { + return nexus_trans('searchbox.sub_standard_source_label'); + } } diff --git a/app/Models/Team.php b/app/Models/Team.php index 2eaa8f61..dfb3c859 100644 --- a/app/Models/Team.php +++ b/app/Models/Team.php @@ -5,5 +5,8 @@ namespace App\Models; class Team extends NexusModel { - + public static function getLabelName() + { + return nexus_trans('searchbox.sub_category_team_label'); + } } diff --git a/app/Repositories/TorrentRepository.php b/app/Repositories/TorrentRepository.php index cbbf126e..55cbf4d9 100644 --- a/app/Repositories/TorrentRepository.php +++ b/app/Repositories/TorrentRepository.php @@ -11,6 +11,8 @@ use App\Models\Media; use App\Models\Message; use App\Models\Peer; use App\Models\Processing; +use App\Models\SearchBox; +use App\Models\Setting; use App\Models\Snatch; use App\Models\Source; use App\Models\Standard; @@ -80,34 +82,50 @@ class TorrentRepository extends BaseRepository return $torrents; } - public function getSearchBox() + public function getSearchBox($id = null) { - $category = Category::query()->orderBy('sort_index')->orderBy('id')->get(); - $source = Source::query()->orderBy('sort_index')->orderBy('id')->get(); - $media = Media::query()->orderBy('sort_index')->orderBy('id')->get(); - $codec = Codec::query()->orderBy('sort_index')->orderBy('id')->get(); - $standard = Standard::query()->orderBy('sort_index')->orderBy('id')->get(); - $processing = Processing::query()->orderBy('sort_index')->orderBy('id')->get(); - $team = Team::query()->orderBy('sort_index')->orderBy('id')->get(); - $audioCodec = AudioCodec::query()->orderBy('sort_index')->orderBy('id')->get(); - + if (is_null($id)) { + $id = Setting::get('main.browsecat'); + } + $searchBox = SearchBox::query()->findOrFail($id); + $category = $searchBox->categories()->orderBy('sort_index')->orderBy('id')->get(); $modalRows = []; - $modalRows[] = $categoryFormatted = $this->formatRow('类型', $category, 'category'); - $modalRows[] = $this->formatRow('媒介', $source, 'source'); - $modalRows[] = $this->formatRow('媒介', $media, 'medium'); - $modalRows[] = $this->formatRow('编码', $codec, 'codec'); - $modalRows[] = $this->formatRow('音频编码', $audioCodec, 'audio_codec'); - $modalRows[] = $this->formatRow('分辨率', $standard, 'standard'); - $modalRows[] = $this->formatRow('处理', $processing, 'processing'); - $modalRows[] = $this->formatRow('制作组', $team, 'team'); - + $modalRows[] = $categoryFormatted = $this->formatRow(Category::getLabelName(), $category, 'category'); + if ($searchBox->showsubcat) { + if ($searchBox->showsource) { + $source = Source::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Source::getLabelName(), $source, 'source'); + } + if ($searchBox->showmedia) { + $media = Media::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Media::getLabelName(), $media, 'medium'); + } + if ($searchBox->showcodec) { + $codec = Codec::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Codec::getLabelName(), $codec, 'codec'); + } + if ($searchBox->showstandard) { + $standard = Standard::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Standard::getLabelName(), $standard, 'standard'); + } + if ($searchBox->showprocessing) { + $processing = Processing::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Processing::getLabelName(), $processing, 'processing'); + } + if ($searchBox->showteam) { + $team = Team::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(Team::getLabelName(), $team, 'team'); + } + if ($searchBox->showaudiocodec) { + $audioCodec = AudioCodec::query()->orderBy('sort_index')->orderBy('id')->get(); + $modalRows[] = $this->formatRow(AudioCodec::getLabelName(), $audioCodec, 'audio_codec'); + } + } $results = []; $categories = $categoryFormatted['rows']; $categories[0]['active'] = 1; $results['categories'] = $categories; $results['modal_rows'] = $modalRows; - - return $results; } @@ -115,7 +133,7 @@ class TorrentRepository extends BaseRepository { $result['header'] = $header; $result['rows'][] = [ - 'label' => '全部', + 'label' => 'All', 'value' => 0, 'name' => $name, 'active' => 1, diff --git a/resources/lang/en/searchbox.php b/resources/lang/en/searchbox.php new file mode 100644 index 00000000..8b2711d4 --- /dev/null +++ b/resources/lang/en/searchbox.php @@ -0,0 +1,12 @@ + 'Category', + 'sub_category_source_label' => 'Source', + 'sub_category_media_label' => 'Media', + 'sub_category_standard_label' => 'Standard', + 'sub_category_team_label' => 'Team', + 'sub_category_processing_label' => 'Processing', + 'sub_category_codec_label' => 'Codec', + 'sub_category_audio_codec_label' => 'AudioCodec', +]; diff --git a/resources/lang/zh_CN/searchbox.php b/resources/lang/zh_CN/searchbox.php new file mode 100644 index 00000000..1ff6f43a --- /dev/null +++ b/resources/lang/zh_CN/searchbox.php @@ -0,0 +1,12 @@ + '分类', + 'sub_category_source_label' => '来源', + 'sub_category_media_label' => '媒介', + 'sub_category_standard_label' => '分辨率', + 'sub_category_team_label' => '制作组', + 'sub_category_processing_label' => '处理', + 'sub_category_codec_label' => '编码', + 'sub_category_audio_codec_label' => '音频编码', +]; diff --git a/resources/lang/zh_TW/searchbox.php b/resources/lang/zh_TW/searchbox.php new file mode 100644 index 00000000..1d2e9a56 --- /dev/null +++ b/resources/lang/zh_TW/searchbox.php @@ -0,0 +1,12 @@ + '分類', + 'sub_category_source_label' => '來源', + 'sub_category_media_label' => '媒介', + 'sub_category_standard_label' => '分辨率', + 'sub_category_team_label' => '製作組', + 'sub_category_processing_label' => '處理', + 'sub_category_codec_label' => '編碼', + 'sub_category_audio_codec_label' => '音頻編碼', +];