GX-Feature #46726 » StyleEdit3CustomBoxesPOC.patch
src/StyleEdit3/classes/Repositories/ConfigReader.inc.php (revision ) | ||
---|---|---|
245 | 245 |
|
246 | 246 |
$styleConfig->setJsonDataArray($mergedConfig); |
247 | 247 |
} |
248 |
$this->_initCustomBoxes($styleConfig); |
|
249 |
|
|
250 |
return $styleConfig; |
|
251 |
} |
|
252 |
|
|
253 |
/** |
|
254 |
* Initializes the custom boxes configuration of the active style configuration. |
|
255 |
*/ |
|
256 |
private function _initCustomBoxes(StoredConfig $styleConfig) |
|
257 |
{ |
|
258 |
$boxesConfig = $styleConfig->getJsonDataArray(); |
|
259 |
|
|
260 |
$customBoxesArray = array(); |
|
261 |
|
|
262 |
$customBoxesDirectory = $this->settings->getTemplatesDirectory() . DIRECTORY_SEPARATOR . $this->settings->getCurrentTemplate().DIRECTORY_SEPARATOR.'boxes'.DIRECTORY_SEPARATOR.'*.json'; |
|
263 |
|
|
264 |
$customBoxes = glob($customBoxesDirectory); |
|
265 |
|
|
266 |
foreach($customBoxes as $boxes) |
|
267 |
{ |
|
268 |
$customBoxesArray[] = json_decode(file_get_contents($boxes)); |
|
269 |
} |
|
270 |
|
|
271 |
foreach($boxesConfig['settings'] as $key => &$setting) |
|
272 |
{ |
|
273 |
if($setting['name'] === 'boxes') |
|
274 |
{ |
|
275 |
|
|
276 |
foreach($customBoxesArray as $boxesArray) |
|
277 |
{ |
|
278 |
foreach($boxesArray as $boxes) |
|
279 |
{ |
|
280 |
foreach($boxes as $box) |
|
281 |
{ |
|
282 |
$setting['entries'][] = (array)$box; |
|
283 |
} |
|
284 |
} |
|
285 |
} |
|
286 |
} |
|
287 |
continue; |
|
288 |
} |
|
289 |
|
|
290 |
$styleConfig->setJsonDataArray($boxesConfig); |
|
248 |
|
|
291 |
|
|
249 | 292 |
return $styleConfig; |
250 | 293 |
} |
251 | 294 |
} |