namespace App\Http\Controllers\Admin\Operations\Tools;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\SettingsExportOperation;
+use App\Models\FluidbookPublication;
use Cubist\Backpack\Magic\Fields\StandardFile;
use Cubist\Backpack\Magic\Form;
use Cubist\Excel\ExcelToArray;
+use Prologue\Alerts\Facades\Alert;
trait ImportFluidbookSettings
{
return view('tools.form', ['form' => $form]);
}
+ /**
+ * @throws \JsonException
+ */
public function doimportfluidbooksettings() {
$file = request()->file('file');
ExcelToArray::setCache(protected_path('tools/importfluidbooksettings'));
- $res = ExcelToArray::excelToArrayKeyVars($file->getPathname(), request()->input('sheet', ''));
+ $res = ExcelToArray::excelToArrayKeyVars($file->getPathname(),null, false, false, false);
//
- $ids = implode(',',array_keys($res));
- $this->sendLinkForDownload($ids);
+ $ids = array_keys($res);
- //dd($res);
+ foreach ($ids as $id) {
+ $f = FluidbookPublication::find($id);
+ $settings = array_map(function($n) {
+ return $n;
+ },json_decode($f->settings, true));
+
+ $settings['title'] = 'Test loutres 56';
+
+ $intersect = array_intersect_key($settings,$res[$id]);
+ $settingsJson = json_encode($intersect);
+
+ $diff = array_diff_key($res[$id], $settings);
+ $diff['settings'] = $settingsJson;
+
+ foreach ($diff as $k => &$value) {
+ if(!in_array($k, ['export_data','settings'])) {
+ $decode = json_decode($value,true);
+ if(is_array($decode)) {
+ $value = $decode;
+ }
+ }
+ }
+
+ $f->update($diff);
+ $f->save();
+ }
+
+ Alert::add('success', __('Les données ont été mise à jour avec succès.'))->flash();
+ return back();
}
}
];
$instance = new FluidbookPublication();
+
foreach ($instance->getFields() as $field) {
$name = $field->getName();
/** @var $field Field */
- if ($field instanceof UnstoredField || in_array($name, ['deleted_at', 'videoPath'])) {
+ if ($field instanceof UnstoredField || in_array($name, ['deleted_at', 'videoPath', 'created_at', 'composition', 'composition_updated_at', 'status_date', 'compilation_date', 'compilation_date'])) {
continue;
}
$fields[$name] = [
'default' => $field->getAttribute('default'),
'noteditable' => $field instanceof Hidden
];
-
}
$keys = array_keys($fields);
$maxColSize = [];
+
for ($i = 0; $i < sizeof($settings); $i++) {
$c = 1;
$line++;