popsu-d7/sites/all/modules/boxes/plugins/spaces_controller_boxes.inc
Bachir Soussi Chiadmi 1bc61b12ad first import
2015-04-08 11:40:19 +02:00

46 lines
1.2 KiB
PHP

<?php
/**
* Spaces controller for boxes module.
*/
class spaces_controller_boxes extends spaces_controller {
// Override of load_original_values
protected function load_original_values($id = NULL) {
if (empty($this->loaded_all['original'])) {
// TODO can we always rely on having export.inc loaded?
if (!isset($id)) {
$boxes = array();
foreach (ctools_export_load_object('box') as $box) {
$boxes[$box->delta] = $box;
}
$this->values['original'] = $boxes;
$this->loaded_all['original'] = TRUE;
}
else if (!isset($this->loaded['original'][$id])) {
if ($box = array_pop(ctools_export_load_object('box', 'names', array($id)))) {
$this->values['original'][$id] = $box;
$this->loaded['original'][$id] = TRUE;
}
}
}
}
/**
* Override of the set() method.
*
* Remove flags used by to detect state and transflorm to stdClass so that the
* box configuration can be loaded regardless of whether the plugin is
* available.
*/
function set($id, $value) {
unset($value->new);
unset($value->export_type);
$box = new stdClass();
foreach ($value as $k => $v) {
$box->$k = $v;
}
parent::set($id, $box);
}
}