/** * Updating a given space override. * * type: PUT * values: { * vsite: 2, * object_id: os_pages-page-581, * blocks: [ * os_search_db-site-search: [ * region: "sidebar_first" * ] * ] * } */ public function updateSpace() { // Check group access. $this->checkGroupAccess(); // Validate the object from the request. $this->validate(); // Set up the blocks layout. ctools_include('layout', 'os'); $blocks = os_layout_get($this->object->object_id, FALSE, FALSE, $this->space); foreach ($blocks as $delta => $block) { if (empty($this->object->blocks[$delta])) { continue; } $blocks[$delta] = array_merge($blocks[$delta], $this->object->blocks[$delta]); } os_layout_set($this->object->object_id, $blocks, $this->space); return $blocks; }
/** * Delete a specific box. * * type: DELETE * values: { * vsite: 2, * delta: 1419335380, * context: blogs_blogs * } */ public function deleteSpace() { // Check group access. $this->checkGroupAccess(); ctools_include('layout', 'os'); $delta = $this->object->delta; $blocks = os_layout_get($this->object->context, FALSE, FALSE, $this->space); $this->space->controllers->boxes->del($delta); unset($blocks['boxes-' . $delta]); os_layout_set($this->object->context, $blocks, $this->space); }