Skip to content

Commit

Permalink
Merge pull request #5 from thewebmen/small-fixes
Browse files Browse the repository at this point in the history
Small fixes
  • Loading branch information
michelsteege committed Nov 19, 2020
2 parents 4a7af8d + 9cb3c57 commit d1bf2d3
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
2 changes: 2 additions & 0 deletions src/Admin/MenusAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ class MenusAdmin extends ModelAdmin {

private static $menu_title = 'Menus';

private static $menu_icon_class = 'font-icon-menu';

public function getEditForm($id = null, $fields = null){
$form = parent::getEditForm($id, $fields);

Expand Down
33 changes: 20 additions & 13 deletions src/Model/MenuItem.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace TheWebmen\Menustructure\Model;

use SilverStripe\Assets\File;
use SilverStripe\Assets\Image;
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Control\Controller;
Expand All @@ -19,6 +20,7 @@ class MenuItem extends DataObject {
private static $link_types = [
'page' => 'Page',
'url' => 'URL',
'file' => 'File',
'no-link' => 'Not linked'
];

Expand All @@ -34,6 +36,7 @@ class MenuItem extends DataObject {

private static $has_one = [
'Image' => Image::class,
'File' => File::class,
'Menu' => Menu::class,
'ParentItem' => MenuItem::class,
'LinkedPage' => SiteTree::class
Expand All @@ -43,6 +46,11 @@ class MenuItem extends DataObject {
'Items' => MenuItem::class
];

private static $owns = [
'Image',
'File'
];

private static $summary_fields = [
'Title',
'LinkType',
Expand All @@ -61,12 +69,13 @@ public function getCMSFields()
$fields->removeByName('ParentItemID');
$fields->removeByName('MenuID');

$fields->replaceField('LinkType', DropdownField::create('LinkType', $this->fieldLabel('LinkType'), self::$link_types));
$fields->replaceField('LinkType', DropdownField::create('LinkType', $this->fieldLabel('LinkType'), $this->getLinkTypes()));
$fields->replaceField('LinkedPageID', $linkedPageWrapper = Wrapper::create(TreeDropdownField::create('LinkedPageID', $this->fieldLabel('LinkedPage'), SiteTree::class)));

$linkedPageWrapper->displayIf('LinkType')->isEqualTo('page');
$fields->dataFieldByName('File')->displayIf('LinkType')->isEqualTo('file');
$fields->dataFieldByName('Url')->displayIf('LinkType')->isEqualTo('url');
$fields->dataFieldByName('OpenInNewWindow')->hideIf('LinkType')->isEqualTo('no-link');
$fields->dataFieldByName('OpenInNewWindow')->displayIf('LinkType')->isEqualTo('page')->orIf('LinkType')->isEqualTo('url')->orIf('LinkType')->isEqualTo('file');

$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('OpenInNewWindow'));
$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('Image')->setFolderName('Menus')->setDescription('Optional image, can be used in some templates.'));
Expand All @@ -82,6 +91,12 @@ public function getCMSFields()
return parent::getCMSFields();
}

private function getLinkTypes() {
$linkTypes = self::$link_types;
$this->extend('updateLinkTypes', $linkTypes);
return $linkTypes;
}

/**
* @return bool|mixed
*/
Expand All @@ -93,6 +108,9 @@ public function getLink(){
case 'page':
return $this->LinkedPage()->Link();
break;
case 'file':
return $this->File()->Link();
break;
}
return false;
}
Expand Down Expand Up @@ -160,17 +178,6 @@ public function canDelete($member = null)
return parent::canDelete($member);
}

protected function onAfterWrite()
{
parent::onAfterWrite();

$image = $this->Image();

if ($image && $image->exists() && !$image->isPublished()) {
$image->doPublish();
}
}

/**
* Recursive delete
*/
Expand Down

0 comments on commit d1bf2d3

Please sign in to comment.