Version Notes
Initial functionality of creating and deleting the website is added in this module. Further more enhancement in the next version of this module
Download this release
Release Info
| Developer | Commerce Bees |
| Extension | EasyMultiwebsite_Creation |
| Version | 1.0.0 |
| Comparing to | |
| See all releases | |
Version 1.0.0
- app/code/community/Ameex/EasyMultiwebsite/Block/Adminhtml/Easymultiwebsite.php +27 -0
- app/code/community/Ameex/EasyMultiwebsite/Helper/Data.php +4 -0
- app/code/community/Ameex/EasyMultiwebsite/Model/Observer.php +186 -0
- app/code/community/Ameex/EasyMultiwebsite/controllers/IndexController.php +6 -0
- app/code/community/Ameex/EasyMultiwebsite/etc/config.xml +71 -0
- app/code/community/Ameex/EasyMultiwebsite/etc/system.xml +42 -0
- app/design/adminhtml/default/default/template/easymultiwebsite/array_delete.phtml +194 -0
- app/etc/modules/Ameex_EasyMultiwebsite.xml +9 -0
- package.xml +22 -0
app/code/community/Ameex/EasyMultiwebsite/Block/Adminhtml/Easymultiwebsite.php
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ameex_EasyMultiwebsite_Block_Adminhtml_EasyMultiwebsite extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
|
| 3 |
+
{
|
| 4 |
+
public function __construct()
|
| 5 |
+
{
|
| 6 |
+
$this->addColumn('foldername', array(
|
| 7 |
+
'label' => Mage::helper('easymultiwebsite')->__('Folder Name'),
|
| 8 |
+
'style' => 'width:120px',
|
| 9 |
+
));
|
| 10 |
+
$this->addColumn('websitename', array(
|
| 11 |
+
'label' => Mage::helper('easymultiwebsite')->__('Website Name'),
|
| 12 |
+
'style' => 'width:120px',
|
| 13 |
+
));
|
| 14 |
+
$this->addColumn('storename', array(
|
| 15 |
+
'label' => Mage::helper('easymultiwebsite')->__('Store Name'),
|
| 16 |
+
'style' => 'width:120px',
|
| 17 |
+
));
|
| 18 |
+
$this->addColumn('storeviewname', array(
|
| 19 |
+
'label' => Mage::helper('easymultiwebsite')->__('Storeview Name'),
|
| 20 |
+
'style' => 'width:120px',
|
| 21 |
+
));
|
| 22 |
+
$this->_addAfter = false;
|
| 23 |
+
$this->_addButtonLabel = Mage::helper('easymultiwebsite')->__('Add New');
|
| 24 |
+
parent::__construct();
|
| 25 |
+
$this->setTemplate('easymultiwebsite/array_delete.phtml');
|
| 26 |
+
}
|
| 27 |
+
}
|
app/code/community/Ameex/EasyMultiwebsite/Helper/Data.php
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ameex_EasyMultiwebsite_Helper_Data extends Mage_Core_Helper_Abstract
|
| 3 |
+
{
|
| 4 |
+
}
|
app/code/community/Ameex/EasyMultiwebsite/Model/Observer.php
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ameex_EasyMultiwebsite_Model_Observer
|
| 3 |
+
{
|
| 4 |
+
public function creation(Varien_Event_Observer $observer)
|
| 5 |
+
{
|
| 6 |
+
$postdata = Mage::app()->getRequest()->getPost();
|
| 7 |
+
$websitedetails = $postdata['groups']['setting']['fields'];
|
| 8 |
+
if(isset($websitedetails['storeviewname']['value']['__empty']))
|
| 9 |
+
{
|
| 10 |
+
unset($websitedetails['storeviewname']['value']['__empty']);
|
| 11 |
+
}
|
| 12 |
+
foreach($websitedetails['storeviewname']['value'] as $websitedetail)
|
| 13 |
+
{
|
| 14 |
+
$foldername = $websitedetail['foldername'];
|
| 15 |
+
if (!file_exists($foldername))
|
| 16 |
+
{
|
| 17 |
+
mkdir($foldername, 0777, true);
|
| 18 |
+
chmod($foldername, 0777);
|
| 19 |
+
copy('index.php', $foldername .'/index.php'); // copy index.php to created folder
|
| 20 |
+
copy('.htaccess', $foldername .'/.htaccess'); // copy .htaccess to created folder
|
| 21 |
+
$search = ". '/";
|
| 22 |
+
$replace =". '/../";
|
| 23 |
+
file_put_contents($foldername .'/index.php', str_replace($search, $replace, file_get_contents($foldername .'/index.php'))); // redirect to our folder
|
| 24 |
+
}
|
| 25 |
+
/* to create a root category */
|
| 26 |
+
$categories = Mage::getResourceModel('catalog/category_collection');
|
| 27 |
+
$categories ->addAttributeToFilter('is_active', 1)
|
| 28 |
+
->addAttributeToFilter('name', $foldername)
|
| 29 |
+
->setCurPage(1)->setPageSize(1)
|
| 30 |
+
->load();
|
| 31 |
+
$pId = $categories->getData();
|
| 32 |
+
$pId = $pId[0]['entity_id'];
|
| 33 |
+
if (!$pId)
|
| 34 |
+
{
|
| 35 |
+
$category = Mage::getModel('catalog/category')->setStoreId(0);
|
| 36 |
+
$rootcategory['name'] = $foldername;
|
| 37 |
+
$rootcategory['path'] = "1";
|
| 38 |
+
$rootcategory['display_mode'] = "PRODUCTS";
|
| 39 |
+
$rootcategory['is_active'] = 1;
|
| 40 |
+
$rootcategory['is_anchor'] = 1;
|
| 41 |
+
$category->addData($rootcategory);
|
| 42 |
+
try
|
| 43 |
+
{
|
| 44 |
+
$category->save();
|
| 45 |
+
$rootcategoryid = $category->getId();
|
| 46 |
+
}
|
| 47 |
+
catch (Exception $e)
|
| 48 |
+
{
|
| 49 |
+
echo $e->getMessage();
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
/* to create a website */
|
| 53 |
+
$websitename = $websitedetail['websitename'];
|
| 54 |
+
$websitecode = strtolower($websitename);
|
| 55 |
+
$website = Mage::getModel('core/website')->load($websitecode, 'code');
|
| 56 |
+
if(!($website->getId()))
|
| 57 |
+
{
|
| 58 |
+
$websitedata = Mage::getModel('core/website')->setCode($websitecode)->setName($websitename);
|
| 59 |
+
try
|
| 60 |
+
{
|
| 61 |
+
$websitedata->save();
|
| 62 |
+
$websiteid = $websitedata->getId();
|
| 63 |
+
}
|
| 64 |
+
catch(Exception $e)
|
| 65 |
+
{
|
| 66 |
+
echo $e->getMessage();
|
| 67 |
+
}
|
| 68 |
+
/* to create store */
|
| 69 |
+
$storename = $websitedetail['storename'];
|
| 70 |
+
$storedata = Mage::getModel('core/store_group')->setWebsiteId($websiteid)->setName($storename)->setRootCategoryId($rootcategoryid);
|
| 71 |
+
try
|
| 72 |
+
{
|
| 73 |
+
$storedata->save();
|
| 74 |
+
$storeId=$storedata->getId();
|
| 75 |
+
}
|
| 76 |
+
catch(Exception $e)
|
| 77 |
+
{
|
| 78 |
+
echo $e->getMessage();
|
| 79 |
+
}
|
| 80 |
+
/* assign base url */
|
| 81 |
+
$currentbaseurl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
|
| 82 |
+
$newbaseurl = $currentbaseurl.$foldername."/";
|
| 83 |
+
$baseurl = "$newbaseurl";
|
| 84 |
+
$unsecurebaseurl = Mage::getModel('core/config')->saveConfig('web/unsecure/base_url',$baseurl,'websites',$websiteid);
|
| 85 |
+
$securebaseurl = Mage::getModel('core/config')->saveConfig('web/secure/base_url',$baseurl,'websites',$websiteid);
|
| 86 |
+
/* assign skin url */
|
| 87 |
+
$skinurl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);
|
| 88 |
+
$unsecureskinurl = Mage::getModel('core/config')->saveConfig('web/unsecure/base_skin_url',$skinurl,'websites',$websiteid);
|
| 89 |
+
$secureskinurl = Mage::getModel('core/config')->saveConfig('web/secure/base_skin_url',$skinurl,'websites',$websiteid);
|
| 90 |
+
/* assign media url */
|
| 91 |
+
$mediaurl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA);
|
| 92 |
+
$unsecuremediaurl = Mage::getModel('core/config')->saveConfig('web/unsecure/base_media_url',$mediaurl,'websites',$websiteid);
|
| 93 |
+
$securemediaurl = Mage::getModel('core/config')->saveConfig('web/secure/base_media_url',$mediaurl,'websites',$websiteid);
|
| 94 |
+
/*assign js url */
|
| 95 |
+
$jsurl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);
|
| 96 |
+
$unsecurejsurl = Mage::getModel('core/config')->saveConfig('web/unsecure/base_js_url',$jsurl,'websites',$websiteid);
|
| 97 |
+
$securejsurl = Mage::getModel('core/config')->saveConfig('web/secure/base_js_url',$jsurl,'websites',$websiteid);
|
| 98 |
+
/* to create storeview */
|
| 99 |
+
$storeview = $websitedetail['storeviewname'];
|
| 100 |
+
$storeviewcode = strtolower($storeview);
|
| 101 |
+
$storeviewdata = Mage::getModel('core/store')->setCode($storeviewcode)->setWebsiteId($websiteid)->setGroupId($storeId)->setName($storeview)->setIsActive(1);
|
| 102 |
+
try
|
| 103 |
+
{
|
| 104 |
+
$storeviewdata->save();
|
| 105 |
+
$storeviewId=$storeviewdata->getId();
|
| 106 |
+
}
|
| 107 |
+
catch(Exception $e)
|
| 108 |
+
{
|
| 109 |
+
echo $e->getMessage();
|
| 110 |
+
}
|
| 111 |
+
/* to create subcategory */
|
| 112 |
+
$category = Mage::getModel('catalog/category')->setStoreId($storeviewId);
|
| 113 |
+
$subcategory['name'] = $foldername;
|
| 114 |
+
$subcategory['path'] = "1";
|
| 115 |
+
$subcategory['display_mode'] = "PRODUCTS";
|
| 116 |
+
$subcategory['is_active'] = 1;
|
| 117 |
+
$subcategory['is_anchor'] = 1;
|
| 118 |
+
$category->addData($subcategory);
|
| 119 |
+
$parentCategory = Mage::getModel('catalog/category')->load($rootcategoryid);
|
| 120 |
+
$category->setPath($parentCategory->getPath());
|
| 121 |
+
try
|
| 122 |
+
{
|
| 123 |
+
$category->save();
|
| 124 |
+
}
|
| 125 |
+
catch (Exception $e)
|
| 126 |
+
{
|
| 127 |
+
echo $e->getMessage();
|
| 128 |
+
}
|
| 129 |
+
/* to run our website */
|
| 130 |
+
file_put_contents($foldername .'/index.php', str_replace('store',
|
| 131 |
+
'website', file_get_contents($foldername .'/index.php')));
|
| 132 |
+
file_put_contents($foldername .'/index.php',
|
| 133 |
+
str_replace("''",
|
| 134 |
+
"'$websitecode'", file_get_contents($foldername .'/index.php')));
|
| 135 |
+
}
|
| 136 |
+
}
|
| 137 |
+
/* delete the created website */
|
| 138 |
+
$deletedata = $postdata['fieldname'];
|
| 139 |
+
$deletedata = strtolower($deletedata);
|
| 140 |
+
$deletefields = explode(",",$deletedata);
|
| 141 |
+
foreach($deletefields as $deletefield)
|
| 142 |
+
{
|
| 143 |
+
$deletefield=trim($deletefield);
|
| 144 |
+
if(!empty($deletefield))
|
| 145 |
+
{
|
| 146 |
+
$store = Mage::getModel('core/website')->load($deletefield, 'code')->getId();
|
| 147 |
+
$categorynames = Mage::getResourceModel('catalog/category_collection')
|
| 148 |
+
->addFieldToFilter('name', $deletefield)
|
| 149 |
+
->getFirstItem();
|
| 150 |
+
$categoryId = $categorynames->getId();
|
| 151 |
+
Mage::register('isSecureArea', true);
|
| 152 |
+
$model = Mage::getModel('core/website')->load($store);
|
| 153 |
+
$model->delete();
|
| 154 |
+
$categorymodel = Mage::getModel('catalog/category')->load($categoryId);
|
| 155 |
+
$categorymodel->delete();
|
| 156 |
+
Mage::unregister('isSecureArea');
|
| 157 |
+
}
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
$folderdata = $postdata['folder'];
|
| 161 |
+
$folderdata = strtolower($folderdata);
|
| 162 |
+
$folderfields = explode(",",$folderdata);
|
| 163 |
+
foreach($folderfields as $folderfield)
|
| 164 |
+
{
|
| 165 |
+
$folderfield=trim($folderfield);
|
| 166 |
+
if(!empty($folderfield))
|
| 167 |
+
{
|
| 168 |
+
if (is_dir($folderfield))
|
| 169 |
+
{
|
| 170 |
+
$objects = scandir($folderfield);
|
| 171 |
+
foreach ($objects as $object)
|
| 172 |
+
{
|
| 173 |
+
if ($object != "." && $object != "..")
|
| 174 |
+
{
|
| 175 |
+
if (filetype($folderfield."/".$object) == "dir")
|
| 176 |
+
rrmdir($folderfield."/".$object);
|
| 177 |
+
else unlink ($folderfield."/".$object);
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
reset($objects);
|
| 181 |
+
rmdir($folderfield);
|
| 182 |
+
}
|
| 183 |
+
}
|
| 184 |
+
}
|
| 185 |
+
}
|
| 186 |
+
}
|
app/code/community/Ameex/EasyMultiwebsite/controllers/IndexController.php
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ameex_EasyMultiwebsite_IndexController extends Mage_Core_Controller_Front_Action{
|
| 3 |
+
public function indexAction()
|
| 4 |
+
{
|
| 5 |
+
}
|
| 6 |
+
}
|
app/code/community/Ameex/EasyMultiwebsite/etc/config.xml
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Ameex_EasyMultiwebsite>
|
| 5 |
+
<version>1.0.0</version>
|
| 6 |
+
</Ameex_EasyMultiwebsite>
|
| 7 |
+
</modules>
|
| 8 |
+
<frontend>
|
| 9 |
+
<routers>
|
| 10 |
+
<easymultiwebsite>
|
| 11 |
+
<use>standard</use>
|
| 12 |
+
<args>
|
| 13 |
+
<module>Ameex_EasyMultiwebsite</module>
|
| 14 |
+
<frontName>easymultiwebsite</frontName>
|
| 15 |
+
</args>
|
| 16 |
+
</easymultiwebsite>
|
| 17 |
+
</routers>
|
| 18 |
+
</frontend>
|
| 19 |
+
<global>
|
| 20 |
+
<blocks>
|
| 21 |
+
<easymultiwebsite>
|
| 22 |
+
<class>Ameex_EasyMultiwebsite_Block</class>
|
| 23 |
+
</easymultiwebsite>
|
| 24 |
+
<easymultiwebsite_adminhtml>
|
| 25 |
+
<class>Ameex_EasyMultiwebsite_Block_Adminhtml</class>
|
| 26 |
+
</easymultiwebsite_adminhtml>
|
| 27 |
+
</blocks>
|
| 28 |
+
<helpers>
|
| 29 |
+
<easymultiwebsite>
|
| 30 |
+
<class>Ameex_EasyMultiwebsite_Helper</class>
|
| 31 |
+
</easymultiwebsite>
|
| 32 |
+
</helpers>
|
| 33 |
+
<models>
|
| 34 |
+
<easymultiwebsite>
|
| 35 |
+
<class>Ameex_EasyMultiwebsite_Model</class>
|
| 36 |
+
</easymultiwebsite>
|
| 37 |
+
</models>
|
| 38 |
+
<events>
|
| 39 |
+
<admin_system_config_changed_section_easymultiwebsite_options>
|
| 40 |
+
<observers>
|
| 41 |
+
<easymultiwebsite_options>
|
| 42 |
+
<type>singleton</type>
|
| 43 |
+
<class>Ameex_EasyMultiwebsite_Model_Observer</class>
|
| 44 |
+
<method>creation</method>
|
| 45 |
+
</easymultiwebsite_options>
|
| 46 |
+
</observers>
|
| 47 |
+
</admin_system_config_changed_section_easymultiwebsite_options>
|
| 48 |
+
</events>
|
| 49 |
+
</global>
|
| 50 |
+
<adminhtml>
|
| 51 |
+
<acl>
|
| 52 |
+
<resources>
|
| 53 |
+
<admin>
|
| 54 |
+
<children>
|
| 55 |
+
<system>
|
| 56 |
+
<children>
|
| 57 |
+
<config>
|
| 58 |
+
<children>
|
| 59 |
+
<easymultiwebsite_options translate="title">
|
| 60 |
+
<title>Easy multiwebsite configuration</title>
|
| 61 |
+
</easymultiwebsite_options>
|
| 62 |
+
</children>
|
| 63 |
+
</config>
|
| 64 |
+
</children>
|
| 65 |
+
</system>
|
| 66 |
+
</children>
|
| 67 |
+
</admin>
|
| 68 |
+
</resources>
|
| 69 |
+
</acl>
|
| 70 |
+
</adminhtml>
|
| 71 |
+
</config>
|
app/code/community/Ameex/EasyMultiwebsite/etc/system.xml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<easymultiwebsite translate="label" module="easymultiwebsite">
|
| 5 |
+
<label>Easymultiwebsite Configuration</label>
|
| 6 |
+
<sort_order>1</sort_order>
|
| 7 |
+
</easymultiwebsite>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<easymultiwebsite_options translate="label" module="easymultiwebsite">
|
| 11 |
+
<label>Multi website setting</label>
|
| 12 |
+
<tab>easymultiwebsite</tab>
|
| 13 |
+
<frontend_type>text</frontend_type>
|
| 14 |
+
<sort_order>1</sort_order>
|
| 15 |
+
<show_in_default>1</show_in_default>
|
| 16 |
+
<show_in_website>1</show_in_website>
|
| 17 |
+
<show_in_store>1</show_in_store>
|
| 18 |
+
<groups>
|
| 19 |
+
<setting translate="label">
|
| 20 |
+
<label>Configure the settings</label>
|
| 21 |
+
<frontend_type>text</frontend_type>
|
| 22 |
+
<sort_order>1</sort_order>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>1</show_in_store>
|
| 26 |
+
<fields>
|
| 27 |
+
<storeviewname>
|
| 28 |
+
<label>Click Add new button to create multiple website </label>
|
| 29 |
+
<frontend_model>easymultiwebsite_adminhtml/easymultiwebsite</frontend_model>
|
| 30 |
+
<backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
|
| 31 |
+
<sort_order>1000</sort_order>
|
| 32 |
+
<show_in_default>1</show_in_default>
|
| 33 |
+
<show_in_website>1</show_in_website>
|
| 34 |
+
<show_in_store>1</show_in_store>
|
| 35 |
+
</storeviewname>
|
| 36 |
+
</fields>
|
| 37 |
+
</setting>
|
| 38 |
+
</groups>
|
| 39 |
+
</easymultiwebsite_options>
|
| 40 |
+
</sections>
|
| 41 |
+
</config>
|
| 42 |
+
|
app/design/adminhtml/default/default/template/easymultiwebsite/array_delete.phtml
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magento.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package default_default
|
| 23 |
+
* @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
|
| 28 |
+
<?php
|
| 29 |
+
$_htmlId = $this->getHtmlId() ? $this->getHtmlId() : '_' . uniqid();
|
| 30 |
+
|
| 31 |
+
$_colspan = 2;
|
| 32 |
+
if (!$this->_addAfter) {
|
| 33 |
+
$_colspan -= 1;
|
| 34 |
+
}
|
| 35 |
+
$_colspan = $_colspan > 1 ? 'colspan="' . $_colspan . '"' : '';
|
| 36 |
+
?>
|
| 37 |
+
|
| 38 |
+
<div class="grid" id="grid<?php echo $_htmlId ?>">
|
| 39 |
+
<table cellpadding="0" cellspacing="0" class="border" id="tableid">
|
| 40 |
+
<tbody>
|
| 41 |
+
|
| 42 |
+
<tr class="headings" id="headings<?php echo $_htmlId ?>">
|
| 43 |
+
<?php foreach ($this->_columns as $columnName => $column):?>
|
| 44 |
+
<th><?php echo $column['label'] ?></th>
|
| 45 |
+
<?php endforeach;?>
|
| 46 |
+
<th <?php echo $_colspan?>></th>
|
| 47 |
+
</tr>
|
| 48 |
+
|
| 49 |
+
<tr id="addRow<?php echo $_htmlId ?>">
|
| 50 |
+
<td colspan="<?php echo count($this->_columns) ?>"></td>
|
| 51 |
+
<td <?php echo $_colspan?>>
|
| 52 |
+
<button style="" onclick="" class="scalable add" type="button" id="addToEndBtn<?php echo $_htmlId ?>">
|
| 53 |
+
<span><span><span><?php echo $this->_addButtonLabel ?></span></span></span>
|
| 54 |
+
</button>
|
| 55 |
+
</td>
|
| 56 |
+
</tr>
|
| 57 |
+
|
| 58 |
+
</tbody>
|
| 59 |
+
</table>
|
| 60 |
+
|
| 61 |
+
<input type="hidden" name="<?php echo $this->getElement()->getName() ?>[__empty]" value="" />
|
| 62 |
+
</div>
|
| 63 |
+
<div id="empty<?php echo $_htmlId ?>">
|
| 64 |
+
<button style="" onclick="" class="scalable add" type="button" id="emptyAddBtn<?php echo $_htmlId ?>">
|
| 65 |
+
<span><span><span><?php echo $this->_addButtonLabel ?></span></span></span>
|
| 66 |
+
</button>
|
| 67 |
+
</div>
|
| 68 |
+
|
| 69 |
+
<script type="text/javascript">
|
| 70 |
+
//<![CDATA[
|
| 71 |
+
// create row creator
|
| 72 |
+
|
| 73 |
+
var arrayRow<?php echo $_htmlId ?> = {
|
| 74 |
+
// define row prototypeJS template
|
| 75 |
+
template : new Template(
|
| 76 |
+
'<tr id="#{_id}">'
|
| 77 |
+
<?php foreach ($this->_columns as $columnName => $column):?>
|
| 78 |
+
+'<td>'
|
| 79 |
+
+'<?php echo $this->_renderCellTemplate($columnName)?>'
|
| 80 |
+
+'<\/td>'
|
| 81 |
+
<?php endforeach;?>
|
| 82 |
+
<?php if ($this->_addAfter):?>
|
| 83 |
+
+'<td><button onclick="" class="scalable add" type="button" id="addAfterBtn#{_id}"><span><span><span><?php echo Mage::helper('adminhtml')->__('Add after') ?><\/span><\/span><\/span><\/button><\/td>'
|
| 84 |
+
<?php endif;?>
|
| 85 |
+
+'<td><button onclick="arrayRow<?php echo $_htmlId ?>.del(\'#{_id}\')" class="scalable delete" type="button"><span><span><span><?php echo Mage::helper('adminhtml')->__('Delete') ?><\/span><\/span><\/span><\/button><\/td>'
|
| 86 |
+
+'<\/tr>'
|
| 87 |
+
),
|
| 88 |
+
|
| 89 |
+
rowsCount : 0,
|
| 90 |
+
|
| 91 |
+
add : function(templateData, insertAfterId)
|
| 92 |
+
{
|
| 93 |
+
// generate default template data
|
| 94 |
+
if ('' == templateData) {
|
| 95 |
+
var d = new Date();
|
| 96 |
+
var templateData = {
|
| 97 |
+
<?php foreach ($this->_columns as $columnName => $column):?>
|
| 98 |
+
<?php echo $columnName ?> : '',
|
| 99 |
+
<?php endforeach;?>
|
| 100 |
+
_id : '_' + d.getTime() + '_' + d.getMilliseconds()
|
| 101 |
+
};
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
// insert before last row
|
| 105 |
+
if ('' == insertAfterId) {
|
| 106 |
+
Element.insert($('addRow<?php echo $_htmlId ?>'), {before: this.template.evaluate(templateData)});
|
| 107 |
+
}
|
| 108 |
+
// insert after specified row
|
| 109 |
+
else {
|
| 110 |
+
Element.insert($(insertAfterId), {after: this.template.evaluate(templateData)});
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
<?php if ($this->_addAfter):?>
|
| 114 |
+
Event.observe('addAfterBtn' + templateData._id, 'click', this.add.bind(this, '', templateData._id));
|
| 115 |
+
<?php endif;?>
|
| 116 |
+
|
| 117 |
+
this.rowsCount += 1;
|
| 118 |
+
},
|
| 119 |
+
|
| 120 |
+
del : function(rowId)
|
| 121 |
+
{
|
| 122 |
+
$(rowId).remove();
|
| 123 |
+
this.rowsCount -= 1;
|
| 124 |
+
if (0 == this.rowsCount) {
|
| 125 |
+
this.showButtonOnly();
|
| 126 |
+
}
|
| 127 |
+
},
|
| 128 |
+
|
| 129 |
+
showButtonOnly : function()
|
| 130 |
+
{
|
| 131 |
+
$('grid<?php echo $_htmlId ?>').hide();
|
| 132 |
+
$('empty<?php echo $_htmlId ?>').show();
|
| 133 |
+
}
|
| 134 |
+
}
|
| 135 |
+
|
| 136 |
+
// bind add action to "Add" button in last row
|
| 137 |
+
Event.observe('addToEndBtn<?php echo $_htmlId ?>', 'click', arrayRow<?php echo $_htmlId ?>.add.bind(arrayRow<?php echo $_htmlId ?>, '', ''));
|
| 138 |
+
|
| 139 |
+
// add existing rows
|
| 140 |
+
<?php
|
| 141 |
+
$_addAfterId = "headings{$_htmlId}";
|
| 142 |
+
foreach ($this->getArrayRows() as $_rowId => $_row) {
|
| 143 |
+
echo "arrayRow{$_htmlId}.add(" . $_row->toJson() . ", '{$_addAfterId}');\n";
|
| 144 |
+
$_addAfterId = $_rowId;
|
| 145 |
+
}
|
| 146 |
+
?>
|
| 147 |
+
|
| 148 |
+
// initialize standalone button
|
| 149 |
+
$('empty<?php echo $_htmlId ?>').hide();
|
| 150 |
+
Event.observe('emptyAddBtn<?php echo $_htmlId ?>', 'click', function () {
|
| 151 |
+
$('grid<?php echo $_htmlId ?>').show();
|
| 152 |
+
$('empty<?php echo $_htmlId ?>').hide();
|
| 153 |
+
arrayRow<?php echo $_htmlId ?>.add('', '');
|
| 154 |
+
});
|
| 155 |
+
|
| 156 |
+
// if no rows, hide grid and show button only
|
| 157 |
+
<?php if (!$this->getArrayRows()):?>
|
| 158 |
+
arrayRow<?php echo $_htmlId ?>.showButtonOnly();
|
| 159 |
+
<?php endif;?>
|
| 160 |
+
|
| 161 |
+
// toggle the grid, if element is disabled (depending on scope)
|
| 162 |
+
<?php if ($this->getElement()->getDisabled()):?>
|
| 163 |
+
toggleValueElements({checked:true}, $('grid<?php echo $_htmlId ?>').parentNode);
|
| 164 |
+
<?php endif;?>
|
| 165 |
+
|
| 166 |
+
//]]>
|
| 167 |
+
</script>
|
| 168 |
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
| 169 |
+
<script type="text/javascript">
|
| 170 |
+
var del=jQuery.noConflict();
|
| 171 |
+
del('#tableid tbody').append('<input type="hidden" name="fieldname" value="" id="deleteid" class="delete" />');
|
| 172 |
+
del('#tableid tbody').append('<input type="hidden" name="folder" value="" id="folderid" class="folderdelete" />');
|
| 173 |
+
del('.scalable.delete').click(function(event)
|
| 174 |
+
{
|
| 175 |
+
var $tr = del(this).closest('tr');
|
| 176 |
+
var values = $tr.children('td').eq(1).find('input').val();
|
| 177 |
+
var vals=del("#deleteid").val();
|
| 178 |
+
if(!vals=="")
|
| 179 |
+
{
|
| 180 |
+
values=vals+","+values;
|
| 181 |
+
}
|
| 182 |
+
var elem = document.getElementById("deleteid");
|
| 183 |
+
elem.value = values;
|
| 184 |
+
var $trvalue = del(this).closest('tr');
|
| 185 |
+
var foldervalue = $trvalue.children('td:first').find('input').val();
|
| 186 |
+
var foldervals=del("#folderid").val();
|
| 187 |
+
if(!foldervals=="")
|
| 188 |
+
{
|
| 189 |
+
foldervalue=foldervals+","+foldervalue;
|
| 190 |
+
}
|
| 191 |
+
var elem = document.getElementById("folderid");
|
| 192 |
+
elem.value = foldervalue;
|
| 193 |
+
});
|
| 194 |
+
</script>
|
app/etc/modules/Ameex_EasyMultiwebsite.xml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" ?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Ameex_EasyMultiwebsite>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</Ameex_EasyMultiwebsite>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
package.xml
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>EasyMultiwebsite_Creation</name>
|
| 4 |
+
<version>1.0.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license>Open Software License (OSL)</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>EasyMultiwebsite creation module allows to create multiple website in a single step and also allows to delete the website that is created</summary>
|
| 10 |
+
<description>EasyMultiwebsite creation Module will create multiple website in a quick way.It wll create the website by just entering foldername, website name, storename, storeview name.
|
| 11 |
+
first step is it create a root folder with index.php and .htaccess inside.
|
| 12 |
+
second step is it create a root category with name we given for website.
|
| 13 |
+
third step is it create a website,store and storeview.
|
| 14 |
+
fourth step is it edits the baseurl for the website we created.</description>
|
| 15 |
+
<notes>Initial functionality of creating and deleting the website is added in this module. Further more enhancement in the next version of this module</notes>
|
| 16 |
+
<authors><author><name>commercebees</name><user>CommerceBees</user><email>support@commercebees.com</email></author></authors>
|
| 17 |
+
<date>2015-09-01</date>
|
| 18 |
+
<time>11:05:44</time>
|
| 19 |
+
<contents><target name="magecommunity"><dir><dir name="Ameex"><dir name="EasyMultiwebsite"><dir name="Block"><dir name="Adminhtml"><file name="Easymultiwebsite.php" hash="16829814531a1d219d4c6f4d705e4fa5"/></dir></dir><dir name="Helper"><file name="Data.php" hash="a38668a41143fec281e064fae6077cf4"/></dir><dir name="Model"><file name="Observer.php" hash="111684d1ada789efbfcca83f23bf414e"/></dir><dir name="controllers"><file name="IndexController.php" hash="7cf9074c2d2166e42af469acef3f54b3"/></dir><dir name="etc"><file name="config.xml" hash="b91011a58b58f167a0b39c09707b0969"/><file name="system.xml" hash="690d0100cd5250a5d740ebe9cd389717"/></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ameex_EasyMultiwebsite.xml" hash="97ab7081fc9f1dcf282edab0cbe8288e"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="easymultiwebsite"><file name="array_delete.phtml" hash="640891feaf37f39bc5f1b7967afa33e6"/></dir></dir></dir></dir></dir></dir></target></contents>
|
| 20 |
+
<compatible/>
|
| 21 |
+
<dependencies><required><php><min>5.1.0</min><max>5.5.0</max></php></required></dependencies>
|
| 22 |
+
</package>
|
