Example #1
0
 public function getBlocks()
 {
     if (!$this->_blocks) {
         $block = new Template_Model_Block();
         $this->_blocks = $block->findByDesign($this->getId());
     }
     return $this->_blocks;
 }
 public function saveAction()
 {
     if ($datas = $this->getRequest()->getPost()) {
         try {
             // S'il y a embrouille
             if (empty($datas['block_id'])) {
                 throw new Exception($this->_('An error occurred while saving your colors.'));
             }
             // Récupère l'application en cours
             $application = $this->getApplication();
             // Récupère le block
             $block = new Template_Model_Block();
             $block->find($datas['block_id']);
             // S'il y a re-embrouille
             if (!$block->getId()) {
                 throw new Exception($this->_('An error occurred while saving your colors.'));
             }
             if (!empty($datas['color'])) {
                 $block->setData('color', $datas['color']);
             }
             if (!empty($datas['background_color'])) {
                 $block->setData('background_color', $datas['background_color']);
             }
             if (!empty($datas['tabbar_color'])) {
                 $block->setData('image_color', $datas['tabbar_color']);
             }
             $block->save();
             $html = array('success' => '1');
         } catch (Exception $e) {
             $html = array('message' => $e->getMessage());
         }
         $this->getLayout()->setHtml(Zend_Json::encode($html));
     }
 }
<?php

$this->query("\n\n    CREATE TABLE `template_design` (\n        `design_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `layout_id` int(11) unsigned NOT NULL,\n        `code` varchar(20) COLLATE utf8_unicode_ci NOT NULL,\n        `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `overview` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `background_image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `background_image_retina` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        PRIMARY KEY (`design_id`),\n        KEY `KEY_LAYOUT_ID` (`layout_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n    CREATE TABLE `template_block` (\n        `block_id` int(11) NOT NULL AUTO_INCREMENT,\n        `code` varchar(15) COLLATE utf8_unicode_ci NOT NULL,\n        `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,\n        `color` varchar(10) COLLATE utf8_unicode_ci NOT NULL,\n        `background_color` varchar(10) COLLATE utf8_unicode_ci NOT NULL,\n        `image_color` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `position` smallint(5) NOT NULL DEFAULT '0',\n        `created_at` datetime NOT NULL,\n        `updated_at` datetime NOT NULL,\n        PRIMARY KEY (`block_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    CREATE TABLE `template_block_app` (\n        `block_id` int(11) NOT NULL,\n        `app_id` int(11) unsigned NOT NULL,\n        `color` varchar(10) NOT NULL,\n        `background_color` varchar(10) NOT NULL,\n        `image_color` varchar(255) DEFAULT NULL,\n        PRIMARY KEY (`block_id`, `app_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n");
$this->query("\n    CREATE TABLE `template_design_block` (\n        `design_block_id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n        `design_id` int(11) unsigned NOT NULL,\n        `block_id` int(11) NOT NULL,\n        `background_color` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `color` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,\n        `image_color` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,\n        PRIMARY KEY (`design_block_id`),\n        KEY `KEY_DESIGN_ID` (`design_id`),\n        KEY `KEY_BLOCK_ID` (`block_id`)\n    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;\n\n");
$this->query("\n    ALTER TABLE `template_design`\n        ADD FOREIGN KEY `FK_LAYOUT_ID` (`layout_id`) REFERENCES `application_layout_homepage` (`layout_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `template_design_block`\n        ADD FOREIGN KEY `FK_DESIGN_ID` (`design_id`) REFERENCES `template_design` (`design_id`) ON DELETE CASCADE ON UPDATE CASCADE,\n        ADD FOREIGN KEY `FK_BLOCK_ID` (`block_id`) REFERENCES `template_block` (`block_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$this->query("\n    ALTER TABLE `template_block_app`\n        ADD FOREIGN KEY `FK_TEMPLATE_BLOCK_BLOCK_ID` (`block_id`) REFERENCES `template_block` (`block_id`) ON DELETE CASCADE ON UPDATE CASCADE,\n        ADD FOREIGN KEY `FK_APPLICATION_APP_ID` (`app_id`) REFERENCES `application` (`app_id`) ON DELETE CASCADE ON UPDATE CASCADE;\n");
$datas = array(array('code' => 'header', 'name' => 'Header', 'use_color' => 1, 'color' => '#00377a', 'use_background_color' => 1, 'background_color' => '#739c03', 'position' => 10), array('code' => 'subheader', 'name' => 'Subheader', 'use_color' => 1, 'color' => '#00377a', 'use_background_color' => 1, 'background_color' => '#739c03', 'position' => 20), array('code' => 'connect_button', 'name' => 'Connect Button', 'use_color' => 1, 'color' => '#233799', 'use_background_color' => 1, 'background_color' => '#f2f2f2', 'position' => 30), array('code' => 'background', 'name' => 'Background', 'use_color' => 1, 'color' => '#ffffff', 'use_background_color' => 1, 'background_color' => '#0c6ec4', 'position' => 40), array('code' => 'discount', 'name' => 'Discount Zone', 'use_color' => 1, 'color' => '#fcfcfc', 'use_background_color' => 1, 'background_color' => '#739c03', 'position' => 50), array('code' => 'button', 'name' => 'Button', 'use_color' => 1, 'color' => '#fcfcfc', 'use_background_color' => 1, 'background_color' => '#00377a', 'position' => 60), array('code' => 'news', 'name' => 'News', 'use_color' => 1, 'color' => '#fcfcfc', 'use_background_color' => 1, 'background_color' => '#00377a', 'position' => 70), array('code' => 'comments', 'name' => 'Comments', 'use_color' => 1, 'color' => '#ffffff', 'use_background_color' => 1, 'background_color' => '#4d5d8a', 'position' => 80), array('code' => 'tabbar', 'name' => 'Tabbar', 'use_color' => 1, 'color' => '#ffffff', 'use_background_color' => 1, 'background_color' => '#739c03', 'image_color' => '#ffffff', 'position' => 90));
foreach ($datas as $data) {
    $block = new Template_Model_Block();
    $block->setData($data)->save();
}
$datas = array(array("layout_id" => 1, "code" => "zenstitut", "name" => "Zenstitut", "overview" => "/zenstitut/overview.jpg", "background_image" => "/zenstitut/background.jpg", "background_image_retina" => "/zenstitut/background-568h@2x.jpg"), array("layout_id" => 2, "code" => "hairdresser", "name" => "Hairdresser", "overview" => "/hairdresser/overview.jpg", "background_image" => "/hairdresser/background.jpg", "background_image_retina" => "/hairdresser/background-568h@2x.jpg"), array("layout_id" => 3, "code" => "fall_wedding", "name" => "Wedding", "overview" => "/wedding/overview.jpg", "background_image" => "/wedding/background.jpg", "background_image_retina" => "/wedding/background-568h@2x.jpg"), array("layout_id" => 4, "code" => "purple_croco", "name" => "Violet", "overview" => "/purple_croco/overview.jpg", "background_image" => "/purple_croco/background.jpg", "background_image_retina" => "/purple_croco/background-568h@2x.jpg"), array("layout_id" => 5, "code" => "grand_palace", "name" => "Grand Palace", "overview" => "/grand_palace/overview.jpg", "background_image" => "/grand_palace/background.jpg", "background_image_retina" => "/grand_palace/background-568h@2x.jpg"), array("layout_id" => 6, "code" => "white_shadow", "name" => "White Shadow", "overview" => "/white_shadow/overview.jpg", "background_image" => "/white_shadow/background.jpg", "background_image_retina" => "/white_shadow/background-568h@2x.jpg"), array("layout_id" => 7, "code" => "side_brown", "name" => "Marron", "overview" => "/side_brown/overview.jpg", "background_image" => "/side_brown/background.jpg", "background_image_retina" => "/side_brown/background-568h@2x.jpg"));
foreach ($datas as $data) {
    $design = new Template_Model_Design();
    $design->setData($data)->save();
}
$this->query("\n    INSERT INTO `template_design_block` VALUES(1, 1, 1, '#CB0052', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(2, 1, 2, '#FFFFFF', '#CB0052', NULL);\n    INSERT INTO `template_design_block` VALUES(3, 1, 3, '#CB0052', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(4, 1, 4, '#CB0052', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(5, 1, 5, '#CB0052', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(6, 1, 6, '#CB0052', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(7, 1, 7, '#2B8901', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(8, 1, 8, '#FFFFFF', '#CB0052', NULL);\n    INSERT INTO `template_design_block` VALUES(9, 1, 9, '#2B8901', '#000000', '#000000');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(10, 2, 1, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(11, 2, 2, '#FFFFFF', '#56718E', NULL);\n    INSERT INTO `template_design_block` VALUES(12, 2, 3, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(13, 2, 4, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(14, 2, 5, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(15, 2, 6, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(16, 2, 7, '#56718E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(17, 2, 8, '#FFFFFF', '#56718e', NULL);\n    INSERT INTO `template_design_block` VALUES(18, 2, 9, '#56718E', '#FFFFFF', '#FFFFFF');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(19, 3, 1, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(20, 3, 2, '#5B371F', '#BA5521', NULL);\n    INSERT INTO `template_design_block` VALUES(21, 3, 3, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(22, 3, 4, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(23, 3, 5, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(24, 3, 6, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(25, 3, 7, '#BA5521', '#5B371F', NULL);\n    INSERT INTO `template_design_block` VALUES(26, 3, 8, '#5B371F', '#BA5521', NULL);\n    INSERT INTO `template_design_block` VALUES(27, 3, 9, '#BA5521', '#5B371F', '#5B371F');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(28, 4, 1, '#2E2E2E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(29, 4, 2, '#734957', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(30, 4, 3, '#734957', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(31, 4, 4, '#2E2E2E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(32, 4, 5, '#2E2E2E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(33, 4, 6, '#2E2E2E', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(34, 4, 7, '#FFFFFF', '#2E2E2E', NULL);\n    INSERT INTO `template_design_block` VALUES(35, 4, 8, '#734957', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(36, 4, 9, '#FFFFFF', '#2E2E2E', '#2E2E2E');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(37, 5, 1, '#000000', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(38, 5, 2, '#FFFFFF', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(39, 5, 3, '#000000', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(40, 5, 4, '#FFFFFF', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(41, 5, 5, '#FFFFFF', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(42, 5, 6, '#FFFFFF', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(43, 5, 7, '#FFFFFF', '#000000', NULL);\n    INSERT INTO `template_design_block` VALUES(44, 5, 8, '#000000', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(45, 5, 9, '#FFFFFF', '#FFFFFF', '#FFFFFF');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(46, 6, 1, '#1F6FAA', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(47, 6, 2, '#FFFFFF', '#1f6faa', NULL);\n    INSERT INTO `template_design_block` VALUES(48, 6, 3, '#1F6FAA', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(49, 6, 4, '#FFFFFF', '#1F6FAA', NULL);\n    INSERT INTO `template_design_block` VALUES(50, 6, 5, '#FFFFFF', '#1F6FAA', NULL);\n    INSERT INTO `template_design_block` VALUES(51, 6, 6, '#FFFFFF', '#1F6FAA', NULL);\n    INSERT INTO `template_design_block` VALUES(52, 6, 7, '#FFFFFF', '#1F6FAA', NULL);\n    INSERT INTO `template_design_block` VALUES(53, 6, 8, '#FFFFFF', '#1F6FAA', NULL);\n    INSERT INTO `template_design_block` VALUES(54, 6, 9, '#FFFFFF', '#FFFFFF', '#FFFFFF');\n");
$this->query("\n    INSERT INTO `template_design_block` VALUES(55, 7, 1, '#FFFFFF', '#43352A', NULL);\n    INSERT INTO `template_design_block` VALUES(56, 7, 2, '#43352A', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(57, 7, 3, '#FFFFFF', '#43352A', NULL);\n    INSERT INTO `template_design_block` VALUES(58, 7, 4, '#43352A', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(59, 7, 5, '#43352A', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(60, 7, 6, '#43352A', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(61, 7, 7, '#FFFFFF', '#43352A', NULL);\n    INSERT INTO `template_design_block` VALUES(62, 7, 8, '#43352A', '#FFFFFF', NULL);\n    INSERT INTO `template_design_block` VALUES(63, 7, 9, '#FFFFFF', '#43352A', '#43352A');\n");
    $category_data = array();
    $category_data['name'] = $category_name;
    $category_data['code'] = preg_replace('/[&\\s]+/', "_", strtolower($category_name));
    $category = new Template_Model_Category();
    $category->find($category_data['code'], "code");
    $category->setData($category_data)->save();
}
// Listing all layouts
$layouts = array();
$layout = new Application_Model_Layout_Homepage();
foreach ($layout->findAll() as $layout) {
    $layouts[$layout->getCode()] = $layout;
}
// Listings all block ids
$block_ids = array();
$block = new Template_Model_Block();
foreach ($block->findAll() as $block) {
    $block_ids[$block->getCode()] = $block->getId();
}
// Inserting designs with blocks
$designs = array("fairground" => array("layout_id" => $layouts["layout_3"]->getId(), "name" => "Fairground", "overview" => "/fairground/overview.png", "background_image" => "/../../images/templates/fairground/640x1136.jpg", "background_image_hd" => "/../../images/templates/fairground/1242x2208.jpg", "background_image_tablet" => "/../../images/templates/fairground/1536x2048.jpg", "icon" => "/../../images/templates/fairground/180x180.png", "startup_image" => "/../../images/templates/fairground/640x960.png", "startup_image_retina" => "/../../images/templates/fairground/640x1136.jpg", "startup_image_iphone_6" => "/../../images/templates/fairground/750x1334.png", "startup_image_iphone_6_plus" => "/../../images/templates/fairground/1242x2208.jpg", "startup_image_ipad_retina" => "/../../images/templates/fairground/1536x2048.jpg", "blocks" => array("header" => array("color" => "#323b40", "background_color" => "#ee4b63"), "subheader" => array("color" => "#323b40", "background_color" => "#fdc32f"), "connect_button" => array("color" => "#323b40", "background_color" => "#6fb7b1"), "background" => array("color" => "#323b40", "background_color" => "#f9e4d1"), "discount" => array("color" => "#ee4b63", "background_color" => "#f9e4d1"), "button" => array("color" => "#323b40", "background_color" => "#6fb7b1"), "news" => array("color" => "#323b40", "background_color" => "#f9e4d1"), "comments" => array("color" => "#", "background_color" => "#fdc32f"), "tabbar" => array("color" => "#ee4b63", "background_color" => "transparent", "image_color" => "#ee4b63"))), "pizza" => array("layout_id" => $layouts["layout_9"]->getId(), "layout_visibility" => "toggle", "name" => "Pizza", "overview" => "/pizza/overview.png", "background_image" => "/../../images/templates/pizza/640x1136.jpg", "background_image_hd" => "/../../images/templates/pizza/1242x2208.jpg", "background_image_tablet" => "/../../images/templates/pizza/1536x2048.jpg", "icon" => "/../../images/templates/pizza/180x180.png", "startup_image" => "/../../images/templates/pizza/640x960.png", "startup_image_retina" => "/../../images/templates/pizza/640x1136.jpg", "startup_image_iphone_6" => "/../../images/templates/pizza/750x1334.png", "startup_image_iphone_6_plus" => "/../../images/templates/pizza/1242x2208.jpg", "startup_image_ipad_retina" => "/../../images/templates/pizza/1536x2048.jpg", "blocks" => array("header" => array("color" => "#ffffff", "background_color" => "#00a72d"), "subheader" => array("color" => "#ffffff", "background_color" => "#e50017"), "connect_button" => array("color" => "#ffffff", "background_color" => "#00a72d"), "background" => array("color" => "#00a72d", "background_color" => "#ffffff"), "discount" => array("color" => "#ffffff", "background_color" => "#e50017"), "button" => array("color" => "#ffffff", "background_color" => "#00a72d"), "news" => array("color" => "#00a72d", "background_color" => "#ffffff"), "comments" => array("color" => "#ffffff", "background_color" => "#00a72d"), "tabbar" => array("color" => "#00a72d", "background_color" => "#ffffff", "image_color" => "#00a72d"))), "dj" => array("layout_id" => $layouts["layout_2"]->getId(), "name" => "DJ", "overview" => "/dj/overview.png", "background_image" => "/../../images/templates/dj/640x1136.jpg", "background_image_hd" => "/../../images/templates/dj/1242x2208.jpg", "background_image_tablet" => "/../../images/templates/dj/1536x2048.jpg", "icon" => "/../../images/templates/dj/180x180.png", "startup_image" => "/../../images/templates/dj/640x960.png", "startup_image_retina" => "/../../images/templates/dj/640x1136.jpg", "startup_image_iphone_6" => "/../../images/templates/dj/750x1334.png", "startup_image_iphone_6_plus" => "/../../images/templates/dj/1242x2208.jpg", "startup_image_ipad_retina" => "/../../images/templates/dj/1536x2048.jpg", "blocks" => array("header" => array("color" => "#404040", "background_color" => "#e0c341"), "subheader" => array("color" => "#404040", "background_color" => "#f0d970"), "connect_button" => array("color" => "#404040", "background_color" => "#e0c341"), "background" => array("color" => "#f0d970", "background_color" => "#b65c12"), "discount" => array("color" => "#404040", "background_color" => "#e0c341"), "button" => array("color" => "#b65c12", "background_color" => "#e0c341"), "news" => array("color" => "#f0d970", "background_color" => "#b65c12"), "comments" => array("color" => "#404040", "background_color" => "#e0c341"), "tabbar" => array("color" => "#e0c341", "background_color" => "transparent", "image_color" => "#e0c341"))), "blank" => array("layout_id" => $layouts["layout_1"]->getId(), "name" => "Blank", "overview" => "/blank/overview.png", "background_image" => "/../../images/application/placeholder/no-background.jpg", "background_image_hd" => "/../../images/application/placeholder/no-background-hd.jpg", "background_image_tablet" => "/../../images/application/placeholder/no-background-tablet.jpg", "icon" => "/../../images/application/placeholder/no-image.png", "startup_image" => "/../../images/application/placeholder/no-startupimage.png", "startup_image_retina" => "/../../images/application/placeholder/no-startupimage-retina.png", "startup_image_iphone_6" => "/../../images/application/placeholder/no-startupimage-iphone-6.png", "startup_image_iphone_6_plus" => "/../../images/application/placeholder/no-startupimage-iphone-6-plus.png", "startup_image_ipad_retina" => "/../../images/application/placeholder/no-startupimage-tablet.png"));
foreach ($designs as $code => $data) {
    $design = new Template_Model_Design();
    $design->find($code, "code");
    if (!$design->getId()) {
        $design->setData($data)->setCode($code)->save();
        if (!empty($data["blocks"])) {
            foreach ($data["blocks"] as $block_code => $block_data) {
                $block_data["design_id"] = $design->getId();
                $block_data["block_id"] = $block_ids[$block_code];
                $this->_db->insert("template_design_block", $block_data);
Example #5
0
 public function getDesignBlocks()
 {
     $block = new Template_Model_Block();
     if (empty($this->_design_blocks)) {
         $this->_design_blocks = $block->findAll(null, 'position ASC');
         if (!empty($this->_design_blocks)) {
             foreach ($this->_design_blocks as $block) {
                 $block->setApplication($this);
             }
         }
     }
     return $this->_design_blocks;
 }
Example #6
0
 public function duplicate()
 {
     // Retrieve all the accounts
     $admins = $this->getAdmins();
     $admin_ids = array();
     foreach ($admins as $admin) {
         $admin_ids[] = $admin;
     }
     // Retrieve the design
     $blocks = array();
     foreach ($this->getBlocks() as $block) {
         $blocks[] = $block->getData();
     }
     $layout_id = $this->getLayoutId();
     // Load the options
     $option_values = $this->getOptions();
     $value_ids = array();
     // Save the new application
     $old_app_id = $this->getId();
     $this->setId(null)->setName($this->getName() . " (Copy)")->setLayoutId($layout_id)->unsCreatedAt()->unsUpdatedAt()->setBundleId(null)->setDomain(null)->setSubdomain(null)->setSubdomainIsValidated(null)->save();
     // Save the design
     if (!empty($blocks)) {
         foreach ($blocks as $template_block) {
             $block = new Template_Model_Block();
             $block->setData($template_block);
             $block->setAppId($this->getId());
             $block->save();
         }
     }
     $this->setLayoutId($layout_id)->save();
     // Copy all the features but folders
     foreach ($option_values as $option_value) {
         if ($option_value->getCode() != 'folder') {
             $option_value->copyTo($this);
             $value_ids[$option_value->getOldValueId()] = $option_value->getId();
         }
     }
     // Copy the folders
     foreach ($option_values as $option_value) {
         if ($option_value->getCode() == 'folder') {
             $option_value->copyTo($this);
             $value_ids[$option_value->getOldValueId()] = $option_value->getId();
         }
     }
     // Lock the features
     $locker = new Padlock_Model_Padlock();
     $old_locked_value_ids = $locker->getValueIds($old_app_id);
     $locked_value_ids = array();
     foreach ($old_locked_value_ids as $old_locked_value_id) {
         if (!empty($value_ids[$old_locked_value_id])) {
             $locked_value_ids[] = $value_ids[$old_locked_value_id];
         }
     }
     if (!empty($locked_value_ids)) {
         $locker->setValueIds($locked_value_ids)->saveValueIds($this->getId());
     }
     // Set the accounts to the application
     $this->setAdminIds($admin_ids);
     $this->save();
     return $this;
 }