protected function _update_blocks($blocks_to_update, array $data)
 {
     foreach ($blocks_to_update as $entity) {
         $row = $data[$entity->get_bid()];
         $entity->set_position($row['position']);
         $entity->set_weight($row['weight']);
         $this->block_mapper->save($entity);
     }
 }
 protected function _duplicate_blocks(\blitze\sitemaker\model\blocks\collections\blocks $collection, $route_id, $style_id)
 {
     $blocks = array();
     foreach ($collection as $entity) {
         $copy = clone $entity;
         $copy->set_style($style_id)->set_route_id($route_id);
         $copied = $this->block_mapper->save($copy);
         $position = $copied->get_position();
         $blocks[$position][] = $this->render_block($copied);
     }
     return $blocks;
 }
 private function _update_similar($old_hash, $new_hash, $settings)
 {
     // find all similar blocks
     $blocks_collection = $this->block_mapper->find(array('hash' => $old_hash));
     $blocks = array();
     foreach ($blocks_collection as $entity) {
         $entity->set_hash($new_hash);
         $entity->set_settings($settings);
         $this->block_mapper->save($entity);
         $blocks[$entity->get_bid()] = $this->render_block($entity);
     }
     return $blocks;
 }
 /**
  * Delete all instances of a block across styles/routes
  */
 public function delete_blocks_by_name($block_name)
 {
     $collection = $this->block_mapper->find(array('name' => $block_name));
     foreach ($collection as $entity) {
         $this->block_mapper->delete($entity);
     }
 }