/
Dao.php
104 lines (87 loc) · 3.54 KB
/
Dao.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
/**
* Pimcore
*
* This source file is available under two different licenses:
* - GNU General Public License version 3 (GPLv3)
* - Pimcore Enterprise License (PEL)
* Full copyright and license information is available in
* LICENSE.md which is distributed with this source code.
*
* @category Pimcore
* @package Object
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license GPLv3 and PEL
*/
namespace Pimcore\Model\DataObject\Classificationstore\KeyGroupRelation\Listing;
use Pimcore\Model;
use Pimcore\Model\DataObject;
/**
* @property \Pimcore\Model\DataObject\Classificationstore\KeyGroupRelation\Listing $model
*/
class Dao extends Model\Listing\Dao\AbstractDao
{
/**
* Loads a list of Classificationstore group configs for the specified parameters, returns an array of config elements
*
* @return array
*/
public function load()
{
$condition = $this->getCondition();
if ($condition) {
$condition = $condition . ' AND ';
} else {
$condition = ' where ';
}
$condition .= DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS
. '.keyId = ' . DataObject\Classificationstore\KeyConfig\Dao::TABLE_NAME_KEYS . '.id';
$resourceGroupName = $this->model->getResolveGroupName();
if ($resourceGroupName) {
$condition .= ' and ' . DataObject\Classificationstore\GroupConfig\Dao::TABLE_NAME_GROUPS . '.id = '
. DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS . '.groupId';
}
$sql = 'SELECT ' . DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS . '.*,'
. DataObject\Classificationstore\KeyConfig\Dao::TABLE_NAME_KEYS . '.*';
if ($resourceGroupName) {
$sql .= ', ' . DataObject\Classificationstore\GroupConfig\Dao::TABLE_NAME_GROUPS . '.name as groupName';
}
$sql .= ' FROM ' . DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS
. ',' . DataObject\Classificationstore\KeyConfig\Dao::TABLE_NAME_KEYS;
if ($resourceGroupName) {
$sql .= ', ' . DataObject\Classificationstore\GroupConfig\Dao::TABLE_NAME_GROUPS;
}
$sql .= $condition;
$sql .= $this->getOrder() . $this->getOffsetLimit();
$data = $this->db->fetchAll($sql, $this->model->getConditionVariables());
$configData = [];
foreach ($data as $dataItem) {
$entry = new DataObject\Classificationstore\KeyGroupRelation();
$resource = $entry->getDao();
$resource->assignVariablesToModel($dataItem);
$configData[] = $entry;
}
$this->model->setList($configData);
return $configData;
}
/**
* @return array
*/
public function getDataArray()
{
$configsData = $this->db->fetchAll('SELECT * FROM ' . DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS . $this->getCondition() . $this->getOrder() . $this->getOffsetLimit(), $this->model->getConditionVariables());
return $configsData;
}
/**
* @return int
*/
public function getTotalCount()
{
try {
return (int) $this->db->fetchOne('SELECT COUNT(*) FROM ' . DataObject\Classificationstore\KeyGroupRelation\Dao::TABLE_NAME_RELATIONS . ' '. $this->getCondition(), $this->model->getConditionVariables());
} catch (\Exception $e) {
return 0;
}
}
}