associations.php
3.15 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
/**
* @package Joomla.Administrator
* @subpackage com_associations
*
* @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
JLoader::register('AssociationsHelper', JPATH_ADMINISTRATOR . '/components/com_associations/helpers/associations.php');
/**
* Associations controller class.
*
* @since 3.7.0
*/
class AssociationsControllerAssociations extends JControllerAdmin
{
/**
* The URL view list variable.
*
* @var string
*
* @since 3.7.0
*/
protected $view_list = 'associations';
/**
* Proxy for getModel.
*
* @param string $name The model name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $config The array of possible config values. Optional.
*
* @return JModel|boolean
*
* @since 3.7.0
*/
public function getModel($name = 'Associations', $prefix = 'AssociationsModel', $config = array('ignore_request' => true))
{
return parent::getModel($name, $prefix, $config);
}
/**
* Method to purge the associations table.
*
* @return void
*
* @since 3.7.0
*/
public function purge()
{
$this->getModel('associations')->purge();
$this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false));
}
/**
* Method to delete the orphans from the associations table.
*
* @return void
*
* @since 3.7.0
*/
public function clean()
{
$this->getModel('associations')->clean();
$this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false));
}
/**
* Method to check in an item from the association item overview.
*
* @return void
*
* @since 3.7.1
*/
public function checkin()
{
// Set the redirect so we can just stop processing when we find a condition we can't process
$this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false));
// Figure out if the item supports checking and check it in
$type = null;
list($extensionName, $typeName) = explode('.', $this->input->get('itemtype'));
$extension = AssociationsHelper::getSupportedExtension($extensionName);
$types = $extension->get('types');
if (!array_key_exists($typeName, $types))
{
return;
}
if (AssociationsHelper::typeSupportsCheckout($extensionName, $typeName) === false)
{
// How on earth we came to that point, eject internet
return;
}
$cid = $this->input->get('cid', array(), 'array');
if (empty($cid))
{
// Seems we don't have an id to work with.
return;
}
// We know the first element is the one we need because we don't allow multi selection of rows
$id = $cid[0];
if (AssociationsHelper::canCheckinItem($extensionName, $typeName, $id) === true)
{
$item = AssociationsHelper::getItem($extensionName, $typeName, $id);
$item->checkIn($id);
return;
}
$this->setRedirect(
JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list),
JText::_('COM_ASSOCIATIONS_YOU_ARE_NOT_ALLOWED_TO_CHECKIN_THIS_ITEM')
);
return;
}
}