foldershare-8.x-1.2/src/Plugin/FolderShareCommand/NewFolder.php
src/Plugin/FolderShareCommand/NewFolder.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <?php namespace Drupal\foldershare\Plugin\FolderShareCommand; use Drupal\foldershare\Settings; use Drupal\foldershare\Entity\FolderShare; /** * Defines a command plugin to create a new folder. * * The command creates a new folder in the current parent folder, if any. * If there is no parent folder, the command creates a new root folder. * The new folder is empty and has a default name. * * Configuration parameters: * - 'parentId': the parent folder, if any. * * @ingroup foldershare * * @FolderShareCommand( * id = "foldersharecommand_new_folder", * label = @Translation("New Folder"), * menuNameDefault = @Translation("New Folder"), * menuName = @Translation("New Folder"), * description = @Translation("Create a new folder."), * category = "open", * weight = 10, * parentConstraints = { * "kinds" = { * "rootlist", * "folder", * }, * "access" = "create", * }, * selectionConstraints = { * "types" = { * "none", * }, * }, * ) */ class NewFolder extends FolderShareCommandBase { /*-------------------------------------------------------------------- * * Execute. * *--------------------------------------------------------------------*/ /** * {@inheritdoc} */ public function execute() { $parent = $this ->getParent(); try { if ( $parent === NULL) { $newFolder = FolderShare::createRootFolder( '' ); } else { $newFolder = $parent ->createFolder( '' ); } } catch (\Exception $e ) { \Drupal::messenger()->addMessage( $e ->getMessage(), 'error' ); } if (Settings::getCommandNormalCompletionReportEnable() === TRUE) { \Drupal::messenger()->addMessage( t( "A @kind named '@name' has been created." , [ '@kind' => FolderShare::translateKind( $newFolder ->getKind()), '@name' => $newFolder ->getName(), ]), 'status' ); } } } |