示例#1
0
 public function getBlocks()
 {
     if (is_null($this->_blocks) and $this->getId()) {
         $block = new Cms_Model_Application_Block();
         $this->_blocks = $block->findByPage($this->getId());
     } else {
         $this->_blocks = array();
     }
     return $this->_blocks;
 }
示例#2
0
 public function createDummyContents($option_value, $design, $category)
 {
     $option = new Application_Model_Option();
     $option->find($option_value->getOptionId());
     $dummy_content_xml = $this->_getDummyXml($design, $category);
     if ($option->getCode() == 'places' && $dummy_content_xml->places) {
         foreach ($dummy_content_xml->places->children() as $content) {
             $this->unsData();
             $blocks = array();
             $i = 1;
             foreach ($content->block as $block_content) {
                 $block = new Cms_Model_Application_Block();
                 $block->find((string) $block_content->type, "type");
                 $data = (array) $block_content;
                 if ($block_content->image_url) {
                     $data['image_url'] = (array) $block_content->image_url;
                     $data['image_fullsize_url'] = (array) $block_content->image_fullsize_url;
                 }
                 $data["block_id"] = $block->getId();
                 $blocks[$i++] = $data;
             }
             $this->addData((array) $content->content)->setBlock($blocks)->setValueId($option_value->getId())->save();
         }
     } else {
         $blocks = array();
         $i = 1;
         foreach ($dummy_content_xml->blocks->children() as $content) {
             $block = new Cms_Model_Application_Block();
             $block->find((string) $content->type, "type");
             $data = (array) $content;
             if ($content->image_url) {
                 $data['image_url'] = (array) $content->image_url;
                 $data['image_fullsize_url'] = (array) $content->image_fullsize_url;
             }
             $data["block_id"] = $block->getId();
             $blocks[$i++] = $data;
         }
         $this->setValueId($option_value->getId())->setBlock($blocks)->save();
     }
 }
$this->query("\n    CREATE TABLE `cms_application_page_block_text` (\n        `text_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `value_id` int(11) unsigned NOT NULL,\n        `content` text COLLATE utf8_unicode_ci NOT NULL,\n        `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `size` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `alignment` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `layout_id` tinyint(1) unsigned NOT NULL,\n        PRIMARY KEY (`text_id`),\n        KEY `KEY_VALUE_ID` (`value_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n    CREATE TABLE `cms_application_page_block_video` (\n        `video_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `value_id` int(11) unsigned NOT NULL,\n        `type_id` enum('link','youtube','podcast') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'link',\n        `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n        PRIMARY KEY (`video_id`),\n        KEY `FK_CMS_APPLICATION_PAGE_BLOCK_VALUE_ID` (`value_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    CREATE TABLE `cms_application_page_block_video_link` (\n        `video_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `link` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `image` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n        PRIMARY KEY (`video_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n    CREATE TABLE `cms_application_page_block_video_podcast` (\n        `video_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `search` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `link` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        PRIMARY KEY (`video_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    CREATE TABLE `cms_application_page_block_video_youtube` (\n        `video_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `search` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `youtube` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        PRIMARY KEY (`video_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n    CREATE TABLE `cms_application_page_block_button` (\n        `button_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,\n        `value_id` INT(11) UNSIGNED NOT NULL,\n        `type_id` ENUM('link','phone') NOT NULL DEFAULT 'phone',\n        `content` VARCHAR(256) NULL DEFAULT NULL,\n        PRIMARY KEY (`button_id`),\n        KEY `KEY_VALUE_ID` (`value_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    ALTER TABLE `cms_application_page`\n        ADD FOREIGN KEY `FK_VALUE_ID` (`value_id`) REFERENCES `application_option_value` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_address`\n        ADD FOREIGN KEY `FK_VALUE_ID` (`value_id`) REFERENCES `cms_application_page_block` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_image`\n        ADD FOREIGN KEY `FK_VALUE_ID` (`value_id`) REFERENCES `cms_application_page_block` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_text`\n        ADD FOREIGN KEY `FK_VALUE_ID` (`value_id`) REFERENCES `cms_application_page_block` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_video`\n        ADD FOREIGN KEY `FK_VALUE_ID` (`value_id`) REFERENCES `cms_application_page_block` (`value_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_video_link`\n        ADD FOREIGN KEY `FK_VIDEO_ID` (`video_id`) REFERENCES `cms_application_page_block_video` (`video_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_video_podcast`\n        ADD FOREIGN KEY `FK_VIDEO_ID` (`video_id`) REFERENCES `cms_application_page_block_video` (`video_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `cms_application_page_block_video_youtube`\n        ADD FOREIGN KEY `FK_VIDEO_ID` (`video_id`) REFERENCES `cms_application_page_block_video` (`video_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$library = new Media_Model_Library();
$library->setName('Custom Page')->save();
$icon_paths = array('/custom_page/custom1.png', '/loyalty/loyalty6.png', '/newswall/newswall1.png', '/newswall/newswall2.png', '/newswall/newswall3.png', '/newswall/newswall4.png', '/push_notifications/push1.png', '/push_notifications/push2.png', '/catalog/catalog6.png', '/catalog/catalog8.png', '/catalog/catalog9.png');
$icon_id = 0;
foreach ($icon_paths as $key => $icon_path) {
    $datas = array('library_id' => $library->getId(), 'link' => $icon_path, 'can_be_colorized' => 1);
    $image = new Media_Model_Library_Image();
    $image->setData($datas)->save();
    if ($key == 0) {
        $icon_id = $image->getId();
    }
}
$datas = array('library_id' => $library->getId(), 'icon_id' => $icon_id, 'code' => 'custom_page', 'name' => 'Custom Page', 'model' => 'Cms_Model_Application_Page', 'desktop_uri' => 'cms/application_page/', 'mobile_uri' => 'cms/mobile_page_view/', 'only_once' => 0, 'is_ajax' => 1, 'position' => 70, 'social_sharing_is_available' => 1);
$option = new Application_Model_Option();
$option->setData($datas)->save();
$datas = array(array('type' => 'text', 'position' => 1, 'icon' => 'icon-file-alt', 'title' => 'Text', 'template' => 'cms/application/page/edit/block/text.phtml', 'mobile_template' => 'cms/page/%s/view/block/text.phtml'), array('type' => 'image', 'position' => 2, 'icon' => 'icon-picture', 'title' => 'Image', 'template' => 'cms/application/page/edit/block/image.phtml', 'mobile_template' => 'cms/page/%s/view/block/image.phtml'), array('type' => 'video', 'position' => 3, 'icon' => 'icon-facetime-video', 'title' => 'Video', 'template' => 'cms/application/page/edit/block/video.phtml', 'mobile_template' => 'cms/page/%s/view/block/video.phtml'), array('type' => 'address', 'position' => 4, 'icon' => 'icon-location-arrow', 'title' => 'Address', 'template' => 'cms/application/page/edit/block/address.phtml', 'mobile_template' => 'cms/page/%s/view/block/address.phtml'), array('type' => 'button', 'position' => 5, 'icon' => 'icon-barcode', 'title' => 'Button', 'template' => 'cms/application/page/edit/block/button.phtml', 'mobile_template' => 'cms/page/%s/view/block/button.phtml'));
foreach ($datas as $data) {
    $block = new Cms_Model_Application_Block();
    $block->setData($data)->save();
}
示例#4
0
 public function addblockAction()
 {
     if ($datas = $this->getRequest()->getPost()) {
         try {
             $position = $this->getRequest()->getParam('position');
             if (empty($datas['block_id'])) {
                 throw new Exception($this->_('An error occurred during process. Please try again later.'));
             }
             if (empty($position)) {
                 throw new Exception($this->_('An error occurred during process. Please try again later.'));
             }
             $block = new Cms_Model_Application_Block();
             $block->find($datas['block_id']);
             if (!$block->getId()) {
                 throw new Exception($this->_('An error occurred during process. Please try again later.'));
             }
             $html = array('success' => 1);
             $html['layout'] = $this->getLayout()->addPartial('row', 'admin_view_default', $block->getTemplate())->setCurrentBlock($block)->setCurrentOptionValue($this->getCurrentOptionValue())->setPosition($position)->toHtml();
         } catch (Exception $e) {
             $html = array('message' => $e->getMessage(), 'message_button' => 1, 'message_loader' => 1);
         }
         $this->getLayout()->setHtml(Zend_Json::encode($html));
     }
 }