public function _toJson($block) { $block->unsMobileTemplate()->unsTemplate(); $block_data = $block->getData(); switch ($block->getType()) { case "text": $block_data["image_url"] = $block->getImageUrl(); break; case "image": $library = new Cms_Model_Application_Page_Block_Image_Library(); $libraries = $library->findAll(array('library_id' => $block->getLibraryId()), 'image_id ASC', null); $block_data["gallery"] = array(); foreach ($libraries as $image) { $block_data["gallery"][] = array("id" => $image->getId(), "url" => $image->getImageFullSize()); } break; case "video": $video = $block->getObject(); $block_data["cover_url"] = $video->getImageUrl(); $url = $video->getLink(); $video_id = $video->getId(); if ($video->getTypeId() == "youtube") { $url = "http://www.youtube.com/embed/{$video->getYoutube()}?autoplay=1"; $video_id = $video->getYoutube(); } $block_data["url"] = $url; $block_data["video_id"] = $video_id; break; } return $block_data; }
public function copyTo($option) { $blocks = array(); foreach ($this->getBlocks() as $block) { switch ($block->getType()) { case 'image': $library = new Cms_Model_Application_Page_Block_Image_Library(); $images = $library->findAll(array('library_id' => $block->getLibraryId()), 'image_id ASC', null); $block->unsId(null)->unsLibraryId(null)->unsImageId(); $new_block = $block->getData(); $new_block['image_url'] = array(); $new_block['image_fullsize_url'] = array(); $new_block['library_id'] = null; foreach ($images as $image) { $new_block['image_url'][] = $image->getData('image_url'); $new_block['image_fullsize_url'][] = $image->getData('image_fullsize_url'); } $blocks[] = $new_block; break; case 'video': $object = $block->getObject(); $object->setId(null); $block->unsId(null)->unsVideoId(); $blocks[] = $block->getData() + $object->getData(); break; case 'address': $block->unsAddressId(); break; case 'button': $block->unsButtonId(); case 'text': default: $block->unsId(null)->unsTextId(); $blocks[] = $block->getData(); break; } } $this->setData('block', $blocks); $this->setId(null)->setValueId($option->getId())->save(); }