Completed
Push — master ( 60b259...83077f )
by Will
01:57
created

code/forms/SubsitesTreeDropdownField.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace SilverStripe\Subsites\Forms;
4
5
use SilverStripe\Control\Controller;
6
use SilverStripe\Control\HTTPRequest;
7
use SilverStripe\Control\Session;
8
use SilverStripe\Core\Manifest\ModuleLoader;
9
use SilverStripe\Forms\TreeDropdownField;
10
use SilverStripe\View\Requirements;
11
12
/**
13
 * Wraps around a TreedropdownField to add ability for temporary
14
 * switching of subsite sessions.
15
 *
16
 * @package subsites
17
 */
18
class SubsitesTreeDropdownField extends TreeDropdownField
19
{
20
    private static $allowed_actions = [
0 ignored issues
show
Comprehensibility introduced by
Consider using a different property name as you override a private property of the parent class.
Loading history...
The property $allowed_actions is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
21
        'tree'
22
    ];
23
24
    protected $subsiteID = 0;
25
26
    /**
27
     * Extra HTML classes
28
     *
29
     * @skipUpgrade
30
     * @var string[]
31
     */
32
    protected $extraClasses = ['SubsitesTreeDropdownField'];
33
34
    public function Field($properties = [])
35
    {
36
        $html = parent::Field($properties);
37
38
        $module = ModuleLoader::getModule('silverstripe/subsites');
39
        Requirements::javascript($module->getRelativeResourcePath('javascript/SubsitesTreeDropdownField.js'));
40
41
        return $html;
42
    }
43
44
    public function setSubsiteID($id)
45
    {
46
        $this->subsiteID = $id;
47
    }
48
49
    public function getSubsiteID()
50
    {
51
        return $this->subsiteID;
52
    }
53
54
    public function tree(HTTPRequest $request)
55
    {
56
        $session = Controller::curr()->getRequest()->getSession();
57
58
        $oldSubsiteID = $session->get('SubsiteID');
59
        $session->set('SubsiteID', $this->subsiteID);
60
61
        $results = parent::tree($request);
62
63
        $session->set('SubsiteID', $oldSubsiteID);
64
65
        return $results;
66
    }
67
}
68