Source of file FolderDropdownField.php
Size: 1,607 Bytes - Last Modified: 2021-12-23T10:34:15+00:00
/var/www/docs.ssmods.com/process/src/src/FolderDropdownField.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | <?php namespace SilverStripe\SelectUpload; use SilverStripe\Control\Controller; use SilverStripe\Forms\TreeDropdownField; use SilverStripe\Assets\Folder; /** * Represents a TreeDropdownField for folders which remembers the last folder * selected. */ class FolderDropdownField extends TreeDropdownField { public function __construct( $name, $title = null, $sourceObject = Folder::class, $keyField = 'ID', $labelField = 'TreeTitle', $showSearch = true ) { parent::__construct($name, $title, $sourceObject, $keyField, $labelField, $showSearch); $this->setValue($this->getLastFolderID()); } /** * Set the last folder selected * * @param int $folderID Folder ID */ public function setLastFolderID($folderID) { $request = Controller::curr()->getRequest(); $session = $request->getSession(); $session->set($this->getSessionKey(), $folderID); return $this; } /** * Get the last folder selected * * @return int */ public function getLastFolderID() { $request = Controller::curr()->getRequest(); $session = $request->getSession(); return $session->get($this->getSessionKey()); } public function setValue($value, $data = null) { if ($value) { $this->setLastFolderID($value); } parent::setValue($value); } /** * @return string */ public function getSessionKey() { return self::class .'.'. $this->name . '.FolderID'; } } |