|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* @package midcom.admin.folder |
|
4
|
|
|
* @author The Midgard Project, http://www.midgard-project.org |
|
5
|
|
|
* @copyright The Midgard Project, http://www.midgard-project.org |
|
6
|
|
|
* @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License |
|
7
|
|
|
*/ |
|
8
|
|
|
|
|
9
|
|
|
use Symfony\Component\HttpFoundation\Request; |
|
10
|
|
|
|
|
11
|
|
|
/** |
|
12
|
|
|
* Metadata editor. |
|
13
|
|
|
* |
|
14
|
|
|
* @package midcom.admin.folder |
|
15
|
|
|
*/ |
|
16
|
|
|
class midcom_admin_folder_handler_metadata extends midcom_baseclasses_components_handler |
|
17
|
|
|
{ |
|
18
|
|
|
/** |
|
19
|
|
|
* Object requested for metadata editing |
|
20
|
|
|
* |
|
21
|
|
|
* @var midcom_core_dbaobject |
|
22
|
|
|
*/ |
|
23
|
|
|
private $object; |
|
24
|
|
|
|
|
25
|
|
|
/** |
|
26
|
|
|
* Handler for folder metadata. Checks for updating permissions, initializes |
|
27
|
|
|
* the metadata and the content topic itself. Handles also the sent form. |
|
28
|
|
|
*/ |
|
29
|
1 |
|
public function _handler_metadata(Request $request, string $guid) |
|
30
|
|
|
{ |
|
31
|
1 |
|
$this->object = midcom::get()->dbfactory->get_object_by_guid($guid); |
|
32
|
1 |
|
$this->object->require_do('midgard:update'); |
|
33
|
|
|
|
|
34
|
1 |
|
if (is_a($this->object, midcom_db_topic::class)) { |
|
35
|
1 |
|
$this->object->require_do('midcom.admin.folder:topic_management'); |
|
36
|
|
|
} |
|
37
|
|
|
|
|
38
|
1 |
|
$object_label = midcom_helper_reflector::get($this->object)->get_object_label($this->object); |
|
39
|
1 |
|
midcom::get()->head->set_pagetitle(sprintf($this->_l10n->get('edit metadata of %s'), $object_label)); |
|
40
|
|
|
|
|
41
|
1 |
|
$workflow = $this->get_workflow('datamanager', [ |
|
42
|
1 |
|
'controller' => $this->object->metadata->get_datamanager()->get_controller(), |
|
43
|
1 |
|
'save_callback' => [$this, 'save_callback'] |
|
44
|
|
|
]); |
|
45
|
1 |
|
return $workflow->run($request); |
|
46
|
|
|
} |
|
47
|
|
|
|
|
48
|
|
|
public function save_callback() |
|
49
|
|
|
{ |
|
50
|
|
|
midcom::get()->cache->invalidate($this->object->guid); |
|
51
|
|
|
} |
|
52
|
|
|
} |
|
53
|
|
|
|