use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
use Cubist\Backpack\Magic\Fields\Checkbox;
use Cubist\Backpack\Magic\Fields\ExternalPath;
+use Cubist\Backpack\Magic\Fields\FilesOrURL;
use Cubist\Backpack\Magic\Fields\Hidden;
use Cubist\Backpack\Magic\Fields\Integer;
use Cubist\Backpack\Magic\Fields\SelectFromArray;
use Cubist\Backpack\Magic\Fields\Text;
use Cubist\Util\Files\Files;
use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Auth;
// __('!! Collections de fluidbooks')
$this->addField('publications', BunchOfFieldsMultiple::class, __('Publications'), ['bunch' => CollectionPublication::class, 'edit_label' => '%fluidbook > %dir']);
$this->addField('install', ExternalPath::class, 'Installer sur un serveur externe', ['default' => '', 'fake' => true, 'translatable' => false, 'store_in' => 'settings', 'servers_model' => FluidbookExternalInstallServer::class, ['when' => ['type' => ['export', 'export_multilang']]]]);
$this->addField('override_settings', BunchOfFieldsMultiple::class, __('Redéfinir les paramètres lors de l\'export'), ['bunch' => Fluidbook_Setting::class]);
+ $this->addField('linksAssets', FilesOrURL::class, __('Charger ou remplacer des assets sur tous les fluidbooks de la collection'), ['hint' => __('Cela écrasera les fichiers sur tous les fluidbooks de la collection si ils portent le même nom d\'un asset chargé ici')]);
$this->addField('visits_counter', Integer::class, 'Compteur de visites', ['can' => 'fluidbook-collection:write', 'read_only' => true, 'default' => 0, 'column' => true, 'column_label' => '<i class="las la-chart-area" title="' . __('Compteur de visites du lien de préview') . '"></i>', 'searchLogic' => false]);
}
+
+ public function uploadFreeFile($uploadedFile, $attribute, $operation = 'move')
+ {
+ $field = $this->getField($attribute);
+ if (!$field instanceof FilesOrURL) {
+ throw new \Exception('Field must be FilesOrURL');
+ }
+ foreach ($this->getPageData()->publications as $publication) {
+ /** @var FluidbookPublication $fb */
+ $fb = FluidbookPublication::withoutGlobalScopes()->find($publication['fluidbook']);
+ $res = $fb->uploadFreeFile($uploadedFile, $attribute, 'copy');
+ }
+ return $res;
+ }
+
public function getFinalPath()
{
return Files::mkdir(protected_path('fluidbookcollection/final/' . $this->id));