Fixed issue with category type
This commit is contained in:
parent
a149b358a3
commit
43c4a7b096
72
app/Listeners/Update/V30/Version3013.php
Normal file
72
app/Listeners/Update/V30/Version3013.php
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Listeners\Update\V30;
|
||||||
|
|
||||||
|
use App\Abstracts\Listeners\Update as Listener;
|
||||||
|
use App\Events\Install\UpdateFinished as Event;
|
||||||
|
use App\Traits\Categories;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class Version3013 extends Listener
|
||||||
|
{
|
||||||
|
use Categories;
|
||||||
|
|
||||||
|
const ALIAS = 'core';
|
||||||
|
|
||||||
|
const VERSION = '3.0.13';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle the event.
|
||||||
|
*
|
||||||
|
* @param $event
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function handle(Event $event)
|
||||||
|
{
|
||||||
|
if ($this->skipThisUpdate($event)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log::channel('stdout')->info('Updating to 3.0.13 version...');
|
||||||
|
|
||||||
|
DB::transaction(function () {
|
||||||
|
$types = $this->getTypesByAllowedTranslations();
|
||||||
|
|
||||||
|
foreach ($types as $type => $translations) {
|
||||||
|
DB::table('categories')->whereIn('type', $translations)->update(['type' => $type]);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Log::channel('stdout')->info('Done!');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getTypesByAllowedTranslations(): array
|
||||||
|
{
|
||||||
|
$types = $this->getCategoryTypes(false);
|
||||||
|
$lang_codes = array_keys(language()->allowed());
|
||||||
|
|
||||||
|
foreach ($types as $type => $trans_name) {
|
||||||
|
$translations_for_type = [];
|
||||||
|
|
||||||
|
foreach ($lang_codes as $lang_code) {
|
||||||
|
$translation = trans_choice($trans_name, 1, locale: $lang_code);
|
||||||
|
|
||||||
|
if ($translation === $trans_name) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$translations_for_type[] = $translation;
|
||||||
|
}
|
||||||
|
|
||||||
|
$types[$type] = $translations_for_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Example: en-GB es-ES
|
||||||
|
* 'income' => ['Income', 'Ingresos']
|
||||||
|
*/
|
||||||
|
return $types;
|
||||||
|
}
|
||||||
|
}
|
@ -7,7 +7,7 @@ use Illuminate\Support\Str;
|
|||||||
|
|
||||||
trait Categories
|
trait Categories
|
||||||
{
|
{
|
||||||
public function getCategoryTypes(): array
|
public function getCategoryTypes(bool $translate = true): array
|
||||||
{
|
{
|
||||||
$types = [];
|
$types = [];
|
||||||
$configs = config('type.category');
|
$configs = config('type.category');
|
||||||
@ -21,7 +21,7 @@ trait Categories
|
|||||||
$name = $attr['alias'] . '::' . $name;
|
$name = $attr['alias'] . '::' . $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
$types[$type] = trans_choice($name, 1);
|
$types[$type] = $translate ? trans_choice($name, 1) : $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $types;
|
return $types;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user