cms-niceties/src/Widgets/LinksWidget.php

69 lines
1.7 KiB
PHP
Raw Normal View History

2021-06-19 21:30:03 +02:00
<?php
namespace A2nt\CMSNiceties\Widgets;
2022-07-02 18:19:07 +02:00
use gorriecoe\Link\Models\Link;
use gorriecoe\LinkField\LinkField;
2021-06-19 21:30:03 +02:00
use SilverStripe\AssetAdmin\Forms\UploadField;
use SilverStripe\Assets\Image;
use SilverStripe\Forms\GridField\GridField;
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
use SilverStripe\Forms\LiteralField;
use SilverStripe\Widgets\Model\Widget;
if (!class_exists(Widget::class)) {
return;
}
2022-05-10 13:09:06 +02:00
/**
* Class \A2nt\CMSNiceties\Widgets\LinksWidget
*
* @method \SilverStripe\ORM\ManyManyList|\Sheadawson\Linkable\Models\Link[] Links()
*/
2021-06-19 21:30:03 +02:00
class LinksWidget extends Widget
{
private static $title = 'Links';
private static $cmsTitle = 'Links';
private static $description = 'Shows listing of links.';
private static $icon = '<i class="icon font-icon-list"></i>';
private static $table_name = 'LinksWidget';
private static $many_many = [
'Links' => Link::class,
];
2024-05-06 13:03:31 +02:00
private static $many_many_extraFields = [
'Links' => [
'Sort' => 'Int',
],
];
2021-06-19 21:30:03 +02:00
private static $owns = [
'Links',
];
public function getCMSFields()
{
2024-05-06 13:03:31 +02:00
//die('aaa');
2021-06-19 21:30:03 +02:00
$fields = parent::getCMSFields();
if($this->ID) {
2022-07-02 18:19:07 +02:00
$fields->push(LinkField::create(
2021-06-19 21:30:03 +02:00
'Links',
2022-07-02 18:19:07 +02:00
'Links',
$this
2021-06-19 21:30:03 +02:00
));
2024-05-06 13:03:31 +02:00
} else {
$fields->push(
LiteralField::create(
'Note',
'<p class="alert alert-warning"><b>Note:</b> The widget needs to be saved before adding a link.'
.' Enter the Title and click "+ Create" button at the bottom left corner of the screen</p>'
)
2021-06-19 21:30:03 +02:00
);
}
return $fields;
}
}