use App\Fields\FluidbookLinkEditor\Depth;
use App\Fields\FluidbookLinkEditor\LinkType;
use App\Fields\FluidbookLinkEditor\MultimediaIntegration;
+use App\Models\FluidbookPublication;
use Cubist\Backpack\Magic\Fields\Checkbox;
-use Cubist\Backpack\Magic\Fields\Code;
use Cubist\Backpack\Magic\Fields\FieldGroupEnd;
use Cubist\Backpack\Magic\Fields\FieldGroupStart;
+use Cubist\Backpack\Magic\Fields\FilesOrURL;
use Cubist\Backpack\Magic\Fields\FormSection;
use Cubist\Backpack\Magic\Fields\Text;
use Cubist\Backpack\Magic\Fields\Textarea;
const ANCHOR = 40;
const FLIPCARD = 41;
+ /**
+ * @var int
+ */
+ protected $fluidbook_id;
+
protected $_displayedOnFluidbook = true;
protected $_integration = false;
protected $_multimedia = false;
+ protected $_addedContents = true;
protected $_tooltip = true;
/**
return $res;
}
- public function init()
+ /**
+ * @return mixed
+ */
+ public function getFluidbookId()
+ {
+ return $this->fluidbook_id;
+ }
+
+ /**
+ * @param int|string $fluidbook_id
+ */
+ public function setFluidbookId(int|string $fluidbook_id = '0'): void
+ {
+ $this->fluidbook_id = $fluidbook_id;
+ }
+
+ public function initForm()
{
- parent::init();
$this->addTypeField();
$this->addSettingsFields();
$this->addAppearanceFields();
public function addDestinationField()
{
- $this->addField('to', Text::class, __('Destination'));
+
}
public function addUIDField()
public function addBasicSettingsFields()
{
+ if ($this->_addedContents) {
+ $this->addField('header_contents', FormSection::class, __('Contenus superposés'));
+ $this->addField('image', FilesOrURL::class, __('Image'), array_merge($this->getFilesOrURLEntry(), ['accept' => ['.jpg', '.jpeg', '.png', '.svg', '.gif']]));
+ $this->addField('animation', FilesOrURL::class, __('Animation'), array_merge($this->getFilesOrURLEntry(), ['accept' => ['.html']]));
+ }
if ($this->_integration) {
$this->addField('inline', MultimediaIntegration::class, __('Intégration'), ['default' => 'inline']);
}
}
}
+ /**
+ * @return array
+ */
+ public function getFilesOrURLEntry()
+ {
+ $res = ['entry_class' => FluidbookPublication::class, 'entry_id' => $this->getFluidbookId()];
+ return $res;
+ }
+
public function addMultimediaFields()
{
$this->addField('header_video', FormSection::class, __('Paramètres multimedia'));
public function addExtraFields()
{
$this->addField('header_extra', FormSection::class, __('Autres paramètres'));
- $this->addField('extra', Code::class, '', ['language' => 'properties']);
+ $this->addField('extra', Textarea::class, '');
}
public function getType()
"packages": {
"": {
"dependencies": {
+ "ace-builds": "^1.12.5",
"codemirror": "^5",
"command-line-args": "^5.2.1",
"jquery-contextmenu": "^2.9.2",
"node": ">= 0.6"
}
},
+ "node_modules/ace-builds": {
+ "version": "1.12.5",
+ "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.12.5.tgz",
+ "integrity": "sha512-2OTOZZdXVqWHfsV63n/bWLJ4uGnGNm9uwEQSECbEzMpKF2RKxD04lWu7s+eRBTZoEbqPXziyI1qamJH2OAwdwA=="
+ },
"node_modules/acorn": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
"negotiator": "0.6.3"
}
},
+ "ace-builds": {
+ "version": "1.12.5",
+ "resolved": "https://registry.npmjs.org/ace-builds/-/ace-builds-1.12.5.tgz",
+ "integrity": "sha512-2OTOZZdXVqWHfsV63n/bWLJ4uGnGNm9uwEQSECbEzMpKF2RKxD04lWu7s+eRBTZoEbqPXziyI1qamJH2OAwdwA=="
+ },
"acorn": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
@continue;
@endif
@php
+ /** @var \App\SubForms\Link\Base $instance */
$instance=new $f['class']();
+ $instance->setFluidbookId($id);
+ $instance->initForm();
$instance->setValue('type',$f['type']);
echo $instance->render();
@endphp
@foreach(\App\SubForms\Link\Base::types() as $type)
@if(isset($type['color']))
.link[fb-type="{{$type['type']}}"] {
- color: {{$type['color']}};
- background-color: {{\Cubist\Util\Graphics\Color::colorToCSS($type['color'],0.25)}};
- }
+ color: {{$type['color']}};
+ background-color: {{\Cubist\Util\Graphics\Color::colorToCSS($type['color'],0.25)}};
+ }
- .linkeditor-linktype[data-type="{{$type['type']}}"]::before {
- background-color: {{$type['color']}};
- }
- @endif
+ .linkeditor-linktype[data-type="{{$type['type']}}"]::before {
+ background-color: {{$type['color']}};
+ }
+ @endif
@endforeach
</style>
<link rel="stylesheet"