1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
12:
13: namespace DcGeneral\Controller;
14:
15: use DcGeneral\DataContainerInterface;
16:
17: 18: 19: 20: 21: 22: 23: 24:
25: class Ajax3X extends Ajax
26: {
27: public function __construct()
28: {
29: parent::__construct();
30: }
31:
32: protected function loadPagetree(DataContainerInterface $objDc)
33: {
34: $arrData['strTable'] = $objDc->getTable();
35: $arrData['id'] = self::getAjaxName() ?: $objDc->getId();
36: $arrData['name'] = self::getPost('name');
37:
38: 39: 40:
41: $objWidget = new $GLOBALS['BE_FFL']['pageSelector']($arrData, $objDc);
42: echo $objWidget->generateAjax(self::getAjaxId(), self::getPost('field'), intval(self::getPost('level')));
43: exit;
44: }
45:
46: protected function loadFiletree(DataContainerInterface $objDc)
47: {
48: $arrData['strTable'] = $objDc->getTable();
49: $arrData['id'] = self::getAjaxName() ?: $objDc->getId();
50: $arrData['name'] = self::getPost('name');
51:
52: 53: 54:
55: $objWidget = new $GLOBALS['BE_FFL']['fileSelector']($arrData, $objDc);
56:
57:
58: if (self::getPost('folder', true) != '')
59: {
60: echo $objWidget->generateAjax(self::getPost('folder', true), self::getPost('field'), intval(self::getPost('level')));
61: }
62: else
63: {
64: echo $objWidget->generate();
65: }
66: exit;
67: }
68:
69: protected function getTreeValue($strType)
70: {
71: $varValue = self::getPost('value');
72:
73: if ($varValue != '')
74: {
75: $varValue = trimsplit("\t", $varValue);
76:
77:
78: if ($strType == 'file')
79: {
80: foreach ($varValue as $k=>$v)
81: {
82: if(version_compare(VERSION, '3.2', '<'))
83: {
84: $varValue[$k] = \Dbafs::addResource($v)->id;
85: }
86: else
87: {
88: $varValue[$k] = \Dbafs::addResource($v)->uuid;
89: }
90: }
91: }
92:
93: $varValue = serialize($varValue);
94: }
95:
96: return $varValue;
97: }
98:
99: protected function reloadTree($strType, DataContainerInterface $objDc)
100: {
101: $intId = self::getGet('id');
102: $strFieldName = self::getPost('name');
103: $strField =preg_replace('/(.*)_[0-9a-zA-Z]+$/', '$1', $strFieldName);
104:
105:
106: if (self::getGet('act') == 'editAll')
107: {
108:
109: $intId = preg_replace('/.*_([0-9a-zA-Z]+)$/', '$1', $strField);
110: $strField = preg_replace('/(.*)_[0-9a-zA-Z]+$/', '$1', $strField);
111: }
112:
113: if(!is_null($intId))
114: {
115: $objDataProvider = $objDc->getDataProvider();
116: $objModel = $objDataProvider->fetch($objDataProvider->getEmptyConfig()->setId($intId));
117:
118: if (is_null($objModel))
119: {
120: $this->log('A record with the ID "' . $intId . '" does not exist in "' . $objDc->getTable() . '"', 'Ajax executePostActions()', TL_ERROR);
121: header('HTTP/1.1 400 Bad Request');
122: die('Bad Request');
123: }
124: }
125:
126: $varValue = $this->getTreeValue($strType);
127: $strKey = $strType . 'Tree';
128:
129:
130: if (!is_null($objModel))
131: {
132: $objModel->setProperty($strField, $varValue);
133: $arrAttribs['activeRecord'] = $objModel;
134: }
135: else
136: {
137: $arrAttribs['activeRecord'] = null;
138: }
139:
140: $arrAttribs['id'] = $strFieldName;
141: $arrAttribs['name'] = $strFieldName;
142: $arrAttribs['value'] = $varValue;
143: $arrAttribs['strTable'] = $objDc->getTable();
144: $arrAttribs['strField'] = $strField;
145:
146: 147: 148:
149: $objWidget = new $GLOBALS['BE_FFL'][$strKey]($arrAttribs);
150: echo $objWidget->generate();
151:
152: exit;
153: }
154:
155: protected function reloadPagetree(DataContainerInterface $objDc)
156: {
157: $this->reloadTree('page', $objDc);
158: }
159:
160: protected function reloadFiletree(DataContainerInterface $objDc)
161: {
162: $this->reloadTree('file', $objDc);
163: }
164: }
165: