PageRenderTime 49ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/app/code/core/Mage/Adminhtml/Block/System/Store/Edit/Form.php

https://github.com/leochaves/magento-pt_br
PHP | 325 lines | 246 code | 33 blank | 46 comment | 44 complexity | 53cba92c561d5b0a12be4e3fe45d6e32 MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. /**
  3. * Magento
  4. *
  5. * NOTICE OF LICENSE
  6. *
  7. * This source file is subject to the Open Software License (OSL 3.0)
  8. * that is bundled with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://opensource.org/licenses/osl-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@magentocommerce.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.magentocommerce.com for more information.
  20. *
  21. * @category Mage
  22. * @package Mage_Adminhtml
  23. * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
  24. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  25. */
  26. /**
  27. * Adminhtml store edit form
  28. *
  29. * @category Mage
  30. * @package Mage_Adminhtml
  31. * @author Magento Core Team <core@magentocommerce.com>
  32. */
  33. class Mage_Adminhtml_Block_System_Store_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
  34. {
  35. /**
  36. * Class constructor
  37. *
  38. */
  39. public function __construct()
  40. {
  41. parent::__construct();
  42. $this->setId('coreStoreForm');
  43. }
  44. /**
  45. * Prepare form data
  46. *
  47. * return Mage_Adminhtml_Block_Widget_Form
  48. */
  49. protected function _prepareForm()
  50. {
  51. if (Mage::registry('store_type') == 'website') {
  52. $websiteModel = Mage::registry('store_data');
  53. $showWebsiteFieldset = true;
  54. $showGroupFieldset = $showStoreFieldset = false;
  55. } elseif (Mage::registry('store_type') == 'group') {
  56. $groupModel = Mage::registry('store_data');
  57. $showGroupFieldset = true;
  58. $showWebsiteFieldset = $showStoreFieldset = false;
  59. } elseif (Mage::registry('store_type') == 'store') {
  60. $storeModel = Mage::registry('store_data');
  61. $showWebsiteFieldset = $showGroupFieldset = false;
  62. $showStoreFieldset = true;
  63. }
  64. /* @var $websiteModel Mage_Core_Model_Website */
  65. /* @var $groupModel Mage_Core_Model_Store_Group */
  66. /* @var $storeModel Mage_Core_Model_Store */
  67. $form = new Varien_Data_Form(array(
  68. 'id' => 'edit_form',
  69. 'action' => $this->getData('action'),
  70. 'method' => 'post'
  71. ));
  72. if ($showWebsiteFieldset) {
  73. if ($postData = Mage::registry('store_post_data')) {
  74. $websiteModel->setData($postData['website']);
  75. }
  76. $fieldset = $form->addFieldset('website_fieldset', array(
  77. 'legend' => Mage::helper('core')->__('Website Information')
  78. ));
  79. /* @var $fieldset Varien_Data_Form */
  80. $fieldset->addField('website_name', 'text', array(
  81. 'name' => 'website[name]',
  82. 'label' => Mage::helper('core')->__('Name'),
  83. 'value' => $websiteModel->getName(),
  84. 'required' => true
  85. ));
  86. $fieldset->addField('website_code', 'text', array(
  87. 'name' => 'website[code]',
  88. 'label' => Mage::helper('core')->__('Code'),
  89. 'value' => $websiteModel->getCode(),
  90. 'required' => true
  91. ));
  92. $fieldset->addField('website_sort_order', 'text', array(
  93. 'name' => 'website[sort_order]',
  94. 'label' => Mage::helper('core')->__('Sort order'),
  95. 'value' => $websiteModel->getSortOrder(),
  96. 'required' => false
  97. ));
  98. if (Mage::registry('store_action') == 'edit') {
  99. $groups = Mage::getModel('core/store_group')->getCollection()->addWebsiteFilter($websiteModel->getId())->toOptionArray();
  100. //array_unshift($groups, array('label'=>'', 'value'=>0));
  101. $fieldset->addField('website_default_group_id', 'select', array(
  102. 'name' => 'website[default_group_id]',
  103. 'label' => Mage::helper('core')->__('Default Store'),
  104. 'value' => $websiteModel->getDefaultGroupId(),
  105. 'values' => $groups,
  106. 'required' => false
  107. ));
  108. }
  109. if (!$websiteModel->getIsDefault() && $websiteModel->getStoresCount()) {
  110. $fieldset->addField('is_default', 'checkbox', array(
  111. 'name' => 'website[is_default]',
  112. 'label' => Mage::helper('core')->__('Set as default'),
  113. 'value' => 1
  114. ));
  115. }
  116. else {
  117. $fieldset->addField('is_default', 'hidden', array(
  118. 'name' => 'website[is_default]',
  119. 'value' => $websiteModel->getIsDefault()
  120. ));
  121. }
  122. $fieldset->addField('website_website_id', 'hidden', array(
  123. 'name' => 'website[website_id]',
  124. 'value' => $websiteModel->getId()
  125. ));
  126. }
  127. if ($showGroupFieldset) {
  128. if ($postData = Mage::registry('store_post_data')) {
  129. $groupModel->setData($postData['group']);
  130. }
  131. $fieldset = $form->addFieldset('group_fieldset', array(
  132. 'legend' => Mage::helper('core')->__('Store Information')
  133. ));
  134. if (Mage::registry('store_action') == 'edit'
  135. || (Mage::registry('store_action') == 'add' && Mage::registry('store_type') == 'group')) {
  136. $websites = Mage::getModel('core/website')->getCollection()->toOptionArray();
  137. $fieldset->addField('group_website_id', 'select', array(
  138. 'name' => 'group[website_id]',
  139. 'label' => Mage::helper('core')->__('Website'),
  140. 'value' => $groupModel->getWebsiteId(),
  141. 'values' => $websites,
  142. 'required' => true
  143. ));
  144. if ($groupModel->getId() && $groupModel->getWebsite()->getDefaultGroupId() == $groupModel->getId()) {
  145. if ($groupModel->getWebsite()->getIsDefault() || $groupModel->getWebsite()->getGroupsCount() == 1) {
  146. $form->getElement('group_website_id')->setDisabled(true);
  147. $fieldset->addField('group_hidden_website_id', 'hidden', array(
  148. 'name' => 'group[website_id]',
  149. 'no_span' => true,
  150. 'value' => $groupModel->getWebsiteId()
  151. ));
  152. }
  153. else {
  154. $fieldset->addField('group_original_website_id', 'hidden', array(
  155. 'name' => 'group[original_website_id]',
  156. 'no_span' => true,
  157. 'value' => $groupModel->getWebsiteId()
  158. ));
  159. }
  160. }
  161. }
  162. $fieldset->addField('group_name', 'text', array(
  163. 'name' => 'group[name]',
  164. 'label' => Mage::helper('core')->__('Name'),
  165. 'value' => $groupModel->getName(),
  166. 'required' => true
  167. ));
  168. $categories = Mage::getModel('adminhtml/system_config_source_category')->toOptionArray();
  169. $fieldset->addField('group_root_category_id', 'select', array(
  170. 'name' => 'group[root_category_id]',
  171. 'label' => Mage::helper('core')->__('Root Category'),
  172. 'value' => $groupModel->getRootCategoryId(),
  173. 'values' => $categories,
  174. 'required' => true
  175. ));
  176. if (Mage::registry('store_action') == 'edit') {
  177. $stores = Mage::getModel('core/store')->getCollection()->addGroupFilter($groupModel->getId())->toOptionArray();
  178. //array_unshift($stores, array('label'=>'', 'value'=>0));
  179. $fieldset->addField('group_default_store_id', 'select', array(
  180. 'name' => 'group[default_store_id]',
  181. 'label' => Mage::helper('core')->__('Default Store View'),
  182. 'value' => $groupModel->getDefaultStoreId(),
  183. 'values' => $stores,
  184. 'required' => false
  185. ));
  186. }
  187. $fieldset->addField('group_group_id', 'hidden', array(
  188. 'name' => 'group[group_id]',
  189. 'no_span' => true,
  190. 'value' => $groupModel->getId()
  191. ));
  192. }
  193. if ($showStoreFieldset) {
  194. if ($postData = Mage::registry('store_post_data')) {
  195. $storeModel->setData($postData['store']);
  196. }
  197. $fieldset = $form->addFieldset('store_fieldset', array(
  198. 'legend' => Mage::helper('core')->__('Store View Information')
  199. ));
  200. if (Mage::registry('store_action') == 'edit'
  201. || Mage::registry('store_action') == 'add' && Mage::registry('store_type') == 'store') {
  202. $websites = Mage::getModel('core/website')->getCollection();
  203. $allgroups = Mage::getModel('core/store_group')->getCollection();
  204. $groups = array();
  205. foreach ($websites as $website) {
  206. $values = array();
  207. foreach ($allgroups as $group) {
  208. if ($group->getWebsiteId() == $website->getId()) {
  209. $values[] = array('label'=>$group->getName(),'value'=>$group->getId());
  210. }
  211. }
  212. $groups[] = array('label'=>$website->getName(),'value'=>$values);
  213. }
  214. $fieldset->addField('store_group_id', 'select', array(
  215. 'name' => 'store[group_id]',
  216. 'label' => Mage::helper('core')->__('Store'),
  217. 'value' => $storeModel->getGroupId(),
  218. 'values' => $groups,
  219. 'required' => true
  220. ));
  221. if ($storeModel->getId() && $storeModel->getGroup()->getDefaultStoreId() == $storeModel->getId()) {
  222. if ($storeModel->getGroup() && $storeModel->getGroup()->getStoresCount() > 1) {
  223. $form->getElement('store_group_id')->setDisabled(true);
  224. $fieldset->addField('store_hidden_group_id', 'hidden', array(
  225. 'name' => 'store[group_id]',
  226. 'no_span' => true,
  227. 'value' => $storeModel->getGroupId()
  228. ));
  229. }
  230. else {
  231. $fieldset->addField('store_original_group_id', 'hidden', array(
  232. 'name' => 'store[original_group_id]',
  233. 'no_span' => true,
  234. 'value' => $storeModel->getGroupId()
  235. ));
  236. }
  237. }
  238. }
  239. $fieldset->addField('store_name', 'text', array(
  240. 'name' => 'store[name]',
  241. 'label' => Mage::helper('core')->__('Name'),
  242. 'value' => $storeModel->getName(),
  243. 'required' => true
  244. ));
  245. $fieldset->addField('store_code', 'text', array(
  246. 'name' => 'store[code]',
  247. 'label' => Mage::helper('core')->__('Code'),
  248. 'value' => $storeModel->getCode(),
  249. 'required' => true
  250. ));
  251. $fieldset->addField('store_is_active', 'select', array(
  252. 'name' => 'store[is_active]',
  253. 'label' => Mage::helper('core')->__('Status'),
  254. 'value' => $storeModel->getIsActive(),
  255. 'options' => array(
  256. 0 => Mage::helper('adminhtml')->__('Disabled'),
  257. 1 => Mage::helper('adminhtml')->__('Enabled')),
  258. 'required' => true
  259. ));
  260. $fieldset->addField('store_sort_order', 'text', array(
  261. 'name' => 'store[sort_order]',
  262. 'label' => Mage::helper('core')->__('Sort order'),
  263. 'value' => $storeModel->getSortOrder(),
  264. 'required' => false
  265. ));
  266. $fieldset->addField('store_is_default', 'hidden', array(
  267. 'name' => 'store[is_default]',
  268. 'no_span' => true,
  269. 'value' => $storeModel->getIsDefault(),
  270. ));
  271. $fieldset->addField('store_store_id', 'hidden', array(
  272. 'name' => 'store[store_id]',
  273. 'no_span' => true,
  274. 'value' => $storeModel->getId()
  275. ));
  276. }
  277. $form->addField('store_type', 'hidden', array(
  278. 'name' => 'store_type',
  279. 'no_span' => true,
  280. 'value' => Mage::registry('store_type')
  281. ));
  282. $form->addField('store_action', 'hidden', array(
  283. 'name' => 'store_action',
  284. 'no_span' => true,
  285. 'value' => Mage::registry('store_action')
  286. ));
  287. $form->setAction($this->getUrl('*/*/save'));
  288. $form->setUseContainer(true);
  289. $this->setForm($form);
  290. return parent::_prepareForm();
  291. }
  292. }