Version Notes
- Enables syncing of products from the restaurant POS with magento
- Enables sending of orders from magento to the restaurant POS
Download this release
Release Info
| Developer | Joris De Smedt |
| Extension | Lightspeed_Restaurant_POS_connector |
| Version | 0.0.1 |
| Comparing to | |
| See all releases | |
Version 0.0.1
- app/code/local/Lightspeed/Syncproducts/Block/Establishmentfields.php +140 -0
- app/code/local/Lightspeed/Syncproducts/Block/Monitor.php +95 -0
- app/code/local/Lightspeed/Syncproducts/Block/Paymentfields.php +105 -0
- app/code/local/Lightspeed/Syncproducts/Block/Shippingfields.php +94 -0
- app/code/local/Lightspeed/Syncproducts/Block/Synccustomers.php +43 -0
- app/code/local/Lightspeed/Syncproducts/Block/Syncproducts.php +96 -0
- app/code/local/Lightspeed/Syncproducts/Helper/Api.php +303 -0
- app/code/local/Lightspeed/Syncproducts/Helper/Data.php +4 -0
- app/code/local/Lightspeed/Syncproducts/Helper/Import.php +585 -0
- app/code/local/Lightspeed/Syncproducts/Helper/SyncProcess.php +71 -0
- app/code/local/Lightspeed/Syncproducts/Model/Category/Source.php +40 -0
- app/code/local/Lightspeed/Syncproducts/Model/Log/Log.php +9 -0
- app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Collection.php +9 -0
- app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Log.php +9 -0
- app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Setup.php +5 -0
- app/code/local/Lightspeed/Syncproducts/Model/Order/Observer.php +211 -0
- app/code/local/Lightspeed/Syncproducts/Model/Payment/Source.php +34 -0
- app/code/local/Lightspeed/Syncproducts/Model/Product/Source.php +34 -0
- app/code/local/Lightspeed/Syncproducts/Model/Tax/Source.php +20 -0
- app/code/local/Lightspeed/Syncproducts/controllers/MonitorController.php +35 -0
- app/code/local/Lightspeed/Syncproducts/controllers/SynccustomersController.php +22 -0
- app/code/local/Lightspeed/Syncproducts/controllers/SyncproductsController.php +57 -0
- app/code/local/Lightspeed/Syncproducts/etc/adminhtml.xml +60 -0
- app/code/local/Lightspeed/Syncproducts/etc/config.xml +80 -0
- app/code/local/Lightspeed/Syncproducts/etc/system.xml +154 -0
- app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.1.php +74 -0
- app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.2.php +35 -0
- app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.3.php +20 -0
- app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.4.php +28 -0
- app/design/adminhtml/.DS_Store +0 -0
- app/design/adminhtml/default/.DS_Store +0 -0
- app/design/adminhtml/default/default/.DS_Store +0 -0
- app/design/adminhtml/default/default/etc/theme.xml +30 -0
- app/design/adminhtml/default/default/layout/.DS_Store +0 -0
- app/design/adminhtml/default/default/layout/admin.xml +93 -0
- app/design/adminhtml/default/default/layout/adminnotification.xml +38 -0
- app/design/adminhtml/default/default/layout/api2.xml +147 -0
- app/design/adminhtml/default/default/layout/authorizenet.xml +35 -0
- app/design/adminhtml/default/default/layout/bundle.xml +118 -0
- app/design/adminhtml/default/default/layout/captcha.xml +48 -0
- app/design/adminhtml/default/default/layout/catalog.xml +332 -0
- app/design/adminhtml/default/default/layout/centinel.xml +70 -0
- app/design/adminhtml/default/default/layout/cms.xml +95 -0
- app/design/adminhtml/default/default/layout/compiler.xml +35 -0
- app/design/adminhtml/default/default/layout/connect.xml +73 -0
- app/design/adminhtml/default/default/layout/currencysymbol.xml +34 -0
- app/design/adminhtml/default/default/layout/customer.xml +126 -0
- app/design/adminhtml/default/default/layout/dataflow.xml +59 -0
- app/design/adminhtml/default/default/layout/downloadable.xml +97 -0
- app/design/adminhtml/default/default/layout/giftmessage.xml +82 -0
- app/design/adminhtml/default/default/layout/importexport.xml +59 -0
- app/design/adminhtml/default/default/layout/index.xml +51 -0
- app/design/adminhtml/default/default/layout/lightspeed_syncproducts.xml +38 -0
- app/design/adminhtml/default/default/layout/main.xml +292 -0
- app/design/adminhtml/default/default/layout/moneybookers.xml +28 -0
- app/design/adminhtml/default/default/layout/newsletter.xml +67 -0
- app/design/adminhtml/default/default/layout/oauth.xml +194 -0
- app/design/adminhtml/default/default/layout/pagecache.xml +35 -0
- app/design/adminhtml/default/default/layout/promo.xml +101 -0
- app/design/adminhtml/default/default/layout/report.xml +55 -0
- app/design/adminhtml/default/default/layout/rss.xml +45 -0
- app/design/adminhtml/default/default/layout/sales.xml +1080 -0
- app/design/adminhtml/default/default/layout/search.xml +35 -0
- app/design/adminhtml/default/default/layout/tag.xml +88 -0
- app/design/adminhtml/default/default/layout/tax.xml +34 -0
- app/design/adminhtml/default/default/layout/widget.xml +69 -0
- app/design/adminhtml/default/default/layout/xmlconnect.xml +282 -0
- app/design/adminhtml/default/default/locale/en_US/translate.csv +201 -0
- app/design/adminhtml/default/default/template/.DS_Store +0 -0
- app/design/adminhtml/default/default/template/access_denied.phtml +40 -0
- app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml +105 -0
- app/design/adminhtml/default/default/template/api/roleinfo.phtml +47 -0
- app/design/adminhtml/default/default/template/api/roles.phtml +37 -0
- app/design/adminhtml/default/default/template/api/rolesedit.phtml +143 -0
- app/design/adminhtml/default/default/template/api/rolesusers.phtml +28 -0
- app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml +85 -0
- app/design/adminhtml/default/default/template/api/userinfo.phtml +52 -0
- app/design/adminhtml/default/default/template/api/usernroles.phtml +31 -0
- app/design/adminhtml/default/default/template/api/userroles.phtml +45 -0
- app/design/adminhtml/default/default/template/api/users.phtml +40 -0
- app/design/adminhtml/default/default/template/api2/attribute/buttons.phtml +53 -0
- app/design/adminhtml/default/default/template/api2/attribute/resource.phtml +158 -0
- app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml +59 -0
- app/design/adminhtml/default/default/template/api2/role/buttons.phtml +52 -0
- app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml +122 -0
- app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml +56 -0
- app/design/adminhtml/default/default/template/authorizenet/directpost/info.phtml +157 -0
- app/design/adminhtml/default/default/template/backup/dialogs.phtml +190 -0
- app/design/adminhtml/default/default/template/backup/left.phtml +27 -0
- app/design/adminhtml/default/default/template/backup/list.phtml +40 -0
- app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/bundle.phtml +95 -0
- app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/checkbox.phtml +52 -0
- app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/multi.phtml +49 -0
- app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/radio.phtml +65 -0
- app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/select.phtml +55 -0
- app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml +85 -0
- app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml +235 -0
- app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml +35 -0
- app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml +352 -0
- app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml +411 -0
- app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml +341 -0
- app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml +398 -0
- app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml +340 -0
- app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml +415 -0
- app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml +118 -0
- app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml +115 -0
- app/design/adminhtml/default/default/template/captcha/zend.phtml +56 -0
- app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml +199 -0
- app/design/adminhtml/default/default/template/catalog/category/edit.phtml +198 -0
- app/design/adminhtml/default/default/template/catalog/category/edit/form.phtml +258 -0
- app/design/adminhtml/default/default/template/catalog/category/tree.phtml +480 -0
- app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml +202 -0
- app/design/adminhtml/default/default/template/catalog/form/renderer/fieldset/element.phtml +60 -0
- app/design/adminhtml/default/default/template/catalog/product.phtml +47 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/js.phtml +338 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml +54 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/options.phtml +224 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml +461 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/attribute.phtml +26 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/group.phtml +27 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml +41 -0
- app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml +36 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/configure.phtml +54 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/configurable.phtml +60 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/grouped.phtml +95 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options.phtml +45 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/js.phtml +106 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/date.phtml +94 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/default.phtml +31 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml +103 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/select.phtml +39 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/text.phtml +42 -0
- app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/qty.phtml +36 -0
- app/design/adminhtml/default/default/template/catalog/product/created.phtml +59 -0
- app/design/adminhtml/default/default/template/catalog/product/edit.phtml +133 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml +61 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml +181 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml +120 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/categories.phtml +148 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options.phtml +57 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml +351 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options/type/date.phtml +53 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml +61 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options/type/select.phtml +173 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/options/type/text.phtml +55 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/price/group.phtml +169 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/price/tier.phtml +171 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml +33 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml +153 -0
- app/design/adminhtml/default/default/template/catalog/product/edit/websites.phtml +100 -0
- app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml +125 -0
- app/design/adminhtml/default/default/template/catalog/product/js.phtml +94 -0
- app/design/adminhtml/default/default/template/catalog/product/price.phtml +383 -0
- app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml +37 -0
- app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml +263 -0
- app/design/adminhtml/default/default/template/catalog/product/widget/chooser/container.phtml +37 -0
- app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml +119 -0
- app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml +38 -0
- app/design/adminhtml/default/default/template/centinel/authentication/start.phtml +38 -0
- app/design/adminhtml/default/default/template/centinel/validation/form.phtml +37 -0
- app/design/adminhtml/default/default/template/cms/browser/content.phtml +49 -0
- app/design/adminhtml/default/default/template/cms/browser/content/files.phtml +54 -0
- app/design/adminhtml/default/default/template/cms/browser/content/newfolder.phtml +33 -0
- app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml +71 -0
- app/design/adminhtml/default/default/template/cms/browser/js.phtml +39 -0
- app/design/adminhtml/default/default/template/cms/browser/tree.phtml +82 -0
- app/design/adminhtml/default/default/template/cms/page/edit/form/renderer/content.phtml +32 -0
- app/design/adminhtml/default/default/template/coming.phtml +30 -0
- app/design/adminhtml/default/default/template/compiler/process.phtml +94 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/authors.phtml +91 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/contents.phtml +91 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/depends.phtml +137 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/load.phtml +35 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/package.phtml +91 -0
- app/design/adminhtml/default/default/template/connect/extension/custom/release.phtml +29 -0
- app/design/adminhtml/default/default/template/currencysymbol/grid.phtml +100 -0
- app/design/adminhtml/default/default/template/customer/edit/js.phtml +33 -0
- app/design/adminhtml/default/default/template/customer/edit/tab/account/form/renderer/group.phtml +52 -0
- app/design/adminhtml/default/default/template/customer/edit/tab/view/grid/item.phtml +46 -0
- app/design/adminhtml/default/default/template/customer/online.phtml +34 -0
- app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml +52 -0
- app/design/adminhtml/default/default/template/customer/system/config/validatevat.phtml +65 -0
- app/design/adminhtml/default/default/template/customer/tab/addresses.phtml +640 -0
- app/design/adminhtml/default/default/template/customer/tab/cart.phtml +96 -0
- app/design/adminhtml/default/default/template/customer/tab/newsletter.phtml +30 -0
- app/design/adminhtml/default/default/template/customer/tab/view.phtml +82 -0
- app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml +85 -0
- app/design/adminhtml/default/default/template/customer/tab/wishlist.phtml +79 -0
- app/design/adminhtml/default/default/template/dashboard/graph.phtml +65 -0
- app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml +31 -0
- app/design/adminhtml/default/default/template/dashboard/grid.phtml +86 -0
- app/design/adminhtml/default/default/template/dashboard/index.phtml +41 -0
app/code/local/Lightspeed/Syncproducts/Block/Establishmentfields.php
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Establishmentfields extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
|
| 3 |
+
|
| 4 |
+
protected $_dummyElement;
|
| 5 |
+
protected $_fieldRenderer;
|
| 6 |
+
protected $_values;
|
| 7 |
+
|
| 8 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
| 9 |
+
{
|
| 10 |
+
$html = $this->_getHeaderHtml($element);
|
| 11 |
+
$establishments = Mage::helper('lightspeed_syncproducts/api')->getEstablishments();
|
| 12 |
+
|
| 13 |
+
if(count($establishments) > 1) {
|
| 14 |
+
for ($index = 1; $index <= count($establishments); $index++) {
|
| 15 |
+
$html.= $this->_getFieldHtml($element, $index);
|
| 16 |
+
}
|
| 17 |
+
$html.= $this->_getEstablishmentMappingField($element);
|
| 18 |
+
} else {
|
| 19 |
+
$html .= "<p>You don't have any establishments connected to this account.</p>";
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
$html .= $this->_getFooterHtml($element);
|
| 25 |
+
|
| 26 |
+
return $html;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
//this creates a dummy element so you can say if your config fields are available on default and website level - you can skip this and add the scope for each element in _getFieldHtml method
|
| 30 |
+
protected function _getDummyElement()
|
| 31 |
+
{
|
| 32 |
+
if (empty($this->_dummyElement)) {
|
| 33 |
+
$this->_dummyElement = new Varien_Object(array('show_in_default'=>1, 'show_in_website'=>1));
|
| 34 |
+
}
|
| 35 |
+
return $this->_dummyElement;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
//this sets the fields renderer. If you have a custom renderer tou can change this.
|
| 39 |
+
protected function _getFieldRenderer()
|
| 40 |
+
{
|
| 41 |
+
if (empty($this->_fieldRenderer)) {
|
| 42 |
+
$this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
|
| 43 |
+
}
|
| 44 |
+
return $this->_fieldRenderer;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
protected function _getValues()
|
| 48 |
+
{
|
| 49 |
+
if (empty($this->_values)) {
|
| 50 |
+
$establishmentValues = $this->getSyncSession()->getEstablishments();
|
| 51 |
+
$lastUpdate = $this->getSyncSession()->getLastUpdate();
|
| 52 |
+
|
| 53 |
+
if(!isset($establishmentValues) || (time() - $lastUpdate) > 300){
|
| 54 |
+
$establishments = Mage::helper('lightspeed_syncproducts/api')->getEstablishments();
|
| 55 |
+
$establishmentValues = array(array("value"=>-1, "label" => "-- Please select an establishment --"));
|
| 56 |
+
$currentUser = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_username");
|
| 57 |
+
$currentCompany = (int)Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_company');
|
| 58 |
+
$establishmentValues[] = array("value" => $currentCompany, "label" => $currentUser);
|
| 59 |
+
if(isset($establishments) && count($establishments) > 0){
|
| 60 |
+
foreach($establishments as $establishment){
|
| 61 |
+
$establishmentValues[] = array("value" => $establishment->id, "label" => $establishment->name);
|
| 62 |
+
}
|
| 63 |
+
$this->setSyncSession($this->getSyncSession()->setPayments($establishmentValues));
|
| 64 |
+
$this->setSyncSession($this->getSyncSession()->setLastUpdate(time()));
|
| 65 |
+
} else {
|
| 66 |
+
$establishmentValues = array();
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
$this->_values = $establishmentValues;
|
| 70 |
+
}
|
| 71 |
+
return $this->_values;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
//this actually gets the html for a field
|
| 75 |
+
protected function _getFieldHtml($fieldset, $index)
|
| 76 |
+
{
|
| 77 |
+
$configData = $this->getConfigData();
|
| 78 |
+
$path = 'lightspeed_settings/lightspeed_establishments/lightspeed_establishment_'.$index;
|
| 79 |
+
if (isset($configData[$path])) {
|
| 80 |
+
$data = $configData[$path];
|
| 81 |
+
$inherit = false;
|
| 82 |
+
} else {
|
| 83 |
+
$data = (int)(string)$this->getForm()->getConfigRoot()->descend($path);
|
| 84 |
+
$inherit = true;
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
$e = $this->_getDummyElement();//get the dummy element
|
| 88 |
+
|
| 89 |
+
$field = $fieldset->addField($index, 'select',//this is the type of the element (can be text, textarea, select, multiselect, ...)
|
| 90 |
+
array(
|
| 91 |
+
'name' => 'groups[lightspeed_establishments][fields][lightspeed_establishment_'.$index.'][value]',//this is groups[group name][fields][field name][value]
|
| 92 |
+
'label' => 'Establishment '.$index,//this is the label of the element
|
| 93 |
+
'value' => $data,//this is the current value
|
| 94 |
+
'values' => $this->_getValues(),//this is necessary if the type is select or multiselect
|
| 95 |
+
'inherit' => $inherit,
|
| 96 |
+
'can_use_default_value' => $this->getForm()->canUseDefaultValue($e),//sets if it can be changed on the default level
|
| 97 |
+
'can_use_website_value' => $this->getForm()->canUseWebsiteValue($e),//sets if can be changed on website level
|
| 98 |
+
))->setRenderer($this->_getFieldRenderer());
|
| 99 |
+
|
| 100 |
+
return $field->toHtml();
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
protected function _getEstablishmentMappingField($fieldset){
|
| 104 |
+
$configData = $this->getConfigData();
|
| 105 |
+
$path = 'lightspeed_settings/lightspeed_establishments/lightspeed_establishment_field';
|
| 106 |
+
if (isset($configData[$path])) {
|
| 107 |
+
$data = $configData[$path];
|
| 108 |
+
$inherit = false;
|
| 109 |
+
} else {
|
| 110 |
+
$data = (int)(string)$this->getForm()->getConfigRoot()->descend($path);
|
| 111 |
+
$inherit = true;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
$e = $this->_getDummyElement();//get the dummy element
|
| 115 |
+
|
| 116 |
+
$field = $fieldset->addField('field', 'text',//this is the type of the element (can be text, textarea, select, multiselect, ...)
|
| 117 |
+
array(
|
| 118 |
+
'name' => 'groups[lightspeed_establishments][fields][lightspeed_establishment_field][value]',//this is groups[group name][fields][field name][value]
|
| 119 |
+
'label' => 'Establishment Field Mapping',//this is the label of the element
|
| 120 |
+
'value' => $data,//this is the current value
|
| 121 |
+
'inherit' => $inherit,
|
| 122 |
+
'can_use_default_value' => $this->getForm()->canUseDefaultValue($e),//sets if it can be changed on the default level
|
| 123 |
+
'can_use_website_value' => $this->getForm()->canUseWebsiteValue($e),//sets if can be changed on website level
|
| 124 |
+
))->setRenderer($this->_getFieldRenderer());
|
| 125 |
+
|
| 126 |
+
return $field->toHtml();
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
private function getSyncSession(){
|
| 130 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedEstablishments();
|
| 131 |
+
if($session == null){
|
| 132 |
+
$session = new Varien_Object();
|
| 133 |
+
}
|
| 134 |
+
return $session;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
private function setSyncSession($session){
|
| 138 |
+
return Mage::getSingleton('adminhtml/session')->setLightspeedEstablishments($session);
|
| 139 |
+
}
|
| 140 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Block/Monitor.php
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Monitor extends Mage_Adminhtml_Block_Template {
|
| 3 |
+
|
| 4 |
+
private function log($message){
|
| 5 |
+
Mage::log($message, null, "lightspeed.log");
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
public function __construct() {
|
| 9 |
+
$this->statuses = array(
|
| 10 |
+
'ALL' => '-1',
|
| 11 |
+
'PROCESSED' => 'PROCESSED',
|
| 12 |
+
'DENIED' => 'DENIED',
|
| 13 |
+
'ACCEPTED' => 'ACCEPTED',
|
| 14 |
+
);
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
public function getOrders() {
|
| 19 |
+
$this->offset = Mage::registry('offset');
|
| 20 |
+
$this->status = Mage::registry('status');
|
| 21 |
+
$this->nextPage = false;
|
| 22 |
+
$this->previousPage = false;
|
| 23 |
+
$this->log('Status in block = '.$this->status);
|
| 24 |
+
$orders = Mage::helper('lightspeed_syncproducts/api')->getOrders($this->status, $this->offset);
|
| 25 |
+
|
| 26 |
+
foreach($orders as $order){
|
| 27 |
+
$magentoOrder = $this->getMagentoOrder($order->id);
|
| 28 |
+
$totalPrice = 0;
|
| 29 |
+
foreach($order->orderTaxInfo as $orderTaxInfo){
|
| 30 |
+
$totalPrice += $orderTaxInfo->totalWithTax;
|
| 31 |
+
}
|
| 32 |
+
$order->totalPrice = Mage::helper('core')->currency($totalPrice, true, false);
|
| 33 |
+
if(isset($magentoOrder)){
|
| 34 |
+
$order->customerName = $this->getCustomerName($magentoOrder->getCustomerId());
|
| 35 |
+
$order->magentoId = $magentoOrder->getId();
|
| 36 |
+
$order->magentoIncId = $magentoOrder->getIncrementId();
|
| 37 |
+
$order->magentoLink = $this->getOrderUrl($magentoOrder->getId());
|
| 38 |
+
$order->totalPrice = Mage::helper('core')->currency($magentoOrder->getGrandTotal(), true, false);
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
if($this->offset > 0) {
|
| 42 |
+
$this->previousPage = true;
|
| 43 |
+
}
|
| 44 |
+
if(count($orders) >= 15) {
|
| 45 |
+
$this->nextPage = true;
|
| 46 |
+
}
|
| 47 |
+
return $orders;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
private function getMagentoOrder($lightspeedId) {
|
| 51 |
+
$orders = Mage::getModel('sales/order')
|
| 52 |
+
->getCollection()
|
| 53 |
+
->addAttributeToSelect('*')
|
| 54 |
+
->addAttributeToFilter('posiosId', array('eq'=>$lightspeedId));
|
| 55 |
+
$ret = array();
|
| 56 |
+
foreach($orders as $order){
|
| 57 |
+
$ret[] = $order;
|
| 58 |
+
}
|
| 59 |
+
if(count($ret) > 0){
|
| 60 |
+
$this->log('Found a magento order...');
|
| 61 |
+
return $ret[0];
|
| 62 |
+
} else {
|
| 63 |
+
return null;
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
private function getCustomerName($id) {
|
| 68 |
+
$customer = Mage::getModel('customer/customer')->load($id);
|
| 69 |
+
if($customer->getId()){
|
| 70 |
+
return $customer->getFirstname() . ' ' . $customer->getLastname();
|
| 71 |
+
} else {
|
| 72 |
+
return "Customer deleted";
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
public function getConfigUrl() {
|
| 77 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/system_config/edit/section/lightspeed_settings');
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
public function getOrderUrl($id) {
|
| 81 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/sales_order/view/order_id/'.$id);
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
public function getreOrderUrl($id) {
|
| 85 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/monitor/reorder/order_id/'.$id);
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
public function getNextPage() {
|
| 89 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/monitor/index/offset/'.($this->offset + 15));
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
public function getPreviousPage() {
|
| 93 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/monitor/index/offset/'.($this->offset - 15));
|
| 94 |
+
}
|
| 95 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Block/Paymentfields.php
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Paymentfields extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
|
| 3 |
+
|
| 4 |
+
protected $_dummyElement;
|
| 5 |
+
protected $_fieldRenderer;
|
| 6 |
+
protected $_values;
|
| 7 |
+
|
| 8 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
| 9 |
+
{
|
| 10 |
+
$html = $this->_getHeaderHtml($element);
|
| 11 |
+
$paymentsMethods = Mage::getSingleton('payment/config')->getActiveMethods();
|
| 12 |
+
|
| 13 |
+
foreach ($paymentsMethods as $paymentCode=>$paymentModel) {
|
| 14 |
+
$paymentTitle = Mage::getStoreConfig('payment/'.$paymentCode.'/title');
|
| 15 |
+
$html.= $this->_getFieldHtml($element, $paymentCode, $paymentTitle);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
$html .= $this->_getFooterHtml($element);
|
| 19 |
+
|
| 20 |
+
return $html;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
//this creates a dummy element so you can say if your config fields are available on default and website level - you can skip this and add the scope for each element in _getFieldHtml method
|
| 24 |
+
protected function _getDummyElement()
|
| 25 |
+
{
|
| 26 |
+
if (empty($this->_dummyElement)) {
|
| 27 |
+
$this->_dummyElement = new Varien_Object(array('show_in_default'=>1, 'show_in_website'=>1));
|
| 28 |
+
}
|
| 29 |
+
return $this->_dummyElement;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
//this sets the fields renderer. If you have a custom renderer tou can change this.
|
| 33 |
+
protected function _getFieldRenderer()
|
| 34 |
+
{
|
| 35 |
+
if (empty($this->_fieldRenderer)) {
|
| 36 |
+
$this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
|
| 37 |
+
}
|
| 38 |
+
return $this->_fieldRenderer;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
protected function _getValues()
|
| 42 |
+
{
|
| 43 |
+
if (empty($this->_values)) {
|
| 44 |
+
$paymentMethods = $this->getSyncSession()->getPayments();
|
| 45 |
+
$lastUpdate = $this->getSyncSession()->getLastUpdate();
|
| 46 |
+
|
| 47 |
+
if(!isset($ret) || (time() - $lastUpdate) > 300){
|
| 48 |
+
$paymentTypes = Mage::helper('lightspeed_syncproducts/api')->getPaymentTypes();
|
| 49 |
+
$paymentMethods = array(array("value"=>-1, "label" => "-- Please select a payment type --"));
|
| 50 |
+
if(isset($paymentTypes) && count($paymentTypes) > 0){
|
| 51 |
+
foreach($paymentTypes as $paymentType){
|
| 52 |
+
$paymentMethods[] = array("value" => $paymentType->id, "label" => $paymentType->name);
|
| 53 |
+
}
|
| 54 |
+
$this->setSyncSession($this->getSyncSession()->setPayments($paymentMethods));
|
| 55 |
+
$this->setSyncSession($this->getSyncSession()->setLastUpdate(time()));
|
| 56 |
+
} else {
|
| 57 |
+
$paymentMethods = array();
|
| 58 |
+
}
|
| 59 |
+
}
|
| 60 |
+
$this->_values = $paymentMethods;
|
| 61 |
+
}
|
| 62 |
+
return $this->_values;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
//this actually gets the html for a field
|
| 66 |
+
protected function _getFieldHtml($fieldset, $paymentMethod, $paymentTitle)
|
| 67 |
+
{
|
| 68 |
+
$configData = $this->getConfigData();
|
| 69 |
+
$path = 'lightspeed_settings/lightspeed_payment/lightspeed_payment_'.$paymentMethod;
|
| 70 |
+
if (isset($configData[$path])) {
|
| 71 |
+
$data = $configData[$path];
|
| 72 |
+
$inherit = false;
|
| 73 |
+
} else {
|
| 74 |
+
$data = (int)(string)$this->getForm()->getConfigRoot()->descend($path);
|
| 75 |
+
$inherit = true;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
$e = $this->_getDummyElement();//get the dummy element
|
| 79 |
+
|
| 80 |
+
$field = $fieldset->addField($paymentMethod, 'select',//this is the type of the element (can be text, textarea, select, multiselect, ...)
|
| 81 |
+
array(
|
| 82 |
+
'name' => 'groups[lightspeed_payment][fields][lightspeed_payment_'.$paymentMethod.'][value]',//this is groups[group name][fields][field name][value]
|
| 83 |
+
'label' => $paymentTitle,//this is the label of the element
|
| 84 |
+
'value' => $data,//this is the current value
|
| 85 |
+
'values' => $this->_getValues(),//this is necessary if the type is select or multiselect
|
| 86 |
+
'inherit' => $inherit,
|
| 87 |
+
'can_use_default_value' => $this->getForm()->canUseDefaultValue($e),//sets if it can be changed on the default level
|
| 88 |
+
'can_use_website_value' => $this->getForm()->canUseWebsiteValue($e),//sets if can be changed on website level
|
| 89 |
+
))->setRenderer($this->_getFieldRenderer());
|
| 90 |
+
|
| 91 |
+
return $field->toHtml();
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
private function getSyncSession(){
|
| 95 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedPayments();
|
| 96 |
+
if($session == null){
|
| 97 |
+
$session = new Varien_Object();
|
| 98 |
+
}
|
| 99 |
+
return $session;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
private function setSyncSession($session){
|
| 103 |
+
return Mage::getSingleton('adminhtml/session')->setLightspeedPayments($session);
|
| 104 |
+
}
|
| 105 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Block/Shippingfields.php
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Shippingfields extends Mage_Adminhtml_Block_System_Config_Form_Fieldset {
|
| 3 |
+
|
| 4 |
+
protected $_dummyElement;
|
| 5 |
+
protected $_fieldRenderer;
|
| 6 |
+
protected $_values;
|
| 7 |
+
|
| 8 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
| 9 |
+
{
|
| 10 |
+
$html = $this->_getHeaderHtml($element);
|
| 11 |
+
$html.= $this->_getFieldHtml($element, 'delivery', 'Delivery');
|
| 12 |
+
$html.= $this->_getFieldHtml($element, 'takeaway', 'Take-Away');
|
| 13 |
+
$html .= $this->_getFooterHtml($element);
|
| 14 |
+
|
| 15 |
+
return $html;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
//this creates a dummy element so you can say if your config fields are available on default and website level - you can skip this and add the scope for each element in _getFieldHtml method
|
| 19 |
+
protected function _getDummyElement()
|
| 20 |
+
{
|
| 21 |
+
if (empty($this->_dummyElement)) {
|
| 22 |
+
$this->_dummyElement = new Varien_Object(array('show_in_default'=>1, 'show_in_website'=>1));
|
| 23 |
+
}
|
| 24 |
+
return $this->_dummyElement;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
//this sets the fields renderer. If you have a custom renderer tou can change this.
|
| 28 |
+
protected function _getFieldRenderer()
|
| 29 |
+
{
|
| 30 |
+
if (empty($this->_fieldRenderer)) {
|
| 31 |
+
$this->_fieldRenderer = Mage::getBlockSingleton('adminhtml/system_config_form_field');
|
| 32 |
+
}
|
| 33 |
+
return $this->_fieldRenderer;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
protected function _getValues()
|
| 37 |
+
{
|
| 38 |
+
if (empty($this->_values)) {
|
| 39 |
+
$methods = Mage::getSingleton('shipping/config')->getActiveCarriers();
|
| 40 |
+
$options = array();
|
| 41 |
+
foreach($methods as $_code => $_method)
|
| 42 |
+
{
|
| 43 |
+
if(!$_title = Mage::getStoreConfig("carriers/$_code/title")){
|
| 44 |
+
$_title = $_code;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
$options[] = array('value' => $_code, 'label' => $_title . " ($_code)");
|
| 48 |
+
}
|
| 49 |
+
$this->_values = $options;
|
| 50 |
+
}
|
| 51 |
+
return $this->_values;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
//this actually gets the html for a field
|
| 55 |
+
protected function _getFieldHtml($fieldset, $shippingMethod, $shippingTitle)
|
| 56 |
+
{
|
| 57 |
+
$configData = $this->getConfigData();
|
| 58 |
+
$path = 'lightspeed_settings/lightspeed_shipping/lightspeed_shipping_'.$shippingMethod;
|
| 59 |
+
if (isset($configData[$path])) {
|
| 60 |
+
$data = $configData[$path];
|
| 61 |
+
$inherit = false;
|
| 62 |
+
} else {
|
| 63 |
+
$data = (int)(string)$this->getForm()->getConfigRoot()->descend($path);
|
| 64 |
+
$inherit = true;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
$e = $this->_getDummyElement();//get the dummy element
|
| 68 |
+
|
| 69 |
+
$field = $fieldset->addField($shippingMethod, 'multiselect',//this is the type of the element (can be text, textarea, select, multiselect, ...)
|
| 70 |
+
array(
|
| 71 |
+
'name' => 'groups[lightspeed_shipping][fields][lightspeed_shipping_'.$shippingMethod.'][value]',//this is groups[group name][fields][field name][value]
|
| 72 |
+
'label' => $shippingTitle,//this is the label of the element
|
| 73 |
+
'value' => $data,//this is the current value
|
| 74 |
+
'values' => $this->_getValues(),//this is necessary if the type is select or multiselect
|
| 75 |
+
'inherit' => $inherit,
|
| 76 |
+
'can_use_default_value' => $this->getForm()->canUseDefaultValue($e),//sets if it can be changed on the default level
|
| 77 |
+
'can_use_website_value' => $this->getForm()->canUseWebsiteValue($e),//sets if can be changed on website level
|
| 78 |
+
))->setRenderer($this->_getFieldRenderer());
|
| 79 |
+
|
| 80 |
+
return $field->toHtml();
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
private function getSyncSession(){
|
| 84 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedPayments();
|
| 85 |
+
if($session == null){
|
| 86 |
+
$session = new Varien_Object();
|
| 87 |
+
}
|
| 88 |
+
return $session;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
private function setSyncSession($session){
|
| 92 |
+
return Mage::getSingleton('adminhtml/session')->setLightspeedPayments($session);
|
| 93 |
+
}
|
| 94 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Block/Synccustomers.php
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Synccustomers extends Mage_Adminhtml_Block_Template {
|
| 3 |
+
|
| 4 |
+
private function log($message){
|
| 5 |
+
Mage::log($message, null, "lightspeed.log");
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
public function checkSync(){
|
| 10 |
+
$errors = array();
|
| 11 |
+
|
| 12 |
+
$server = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_server');
|
| 13 |
+
$username = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_username');
|
| 14 |
+
$password = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_password');
|
| 15 |
+
$companyId = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_company');
|
| 16 |
+
|
| 17 |
+
if($server == null || strlen($server) == 0){
|
| 18 |
+
$errors[] = 'Hostname';
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
if($username == null || strlen($username) == 0){
|
| 22 |
+
$errors[] = 'Username';
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
if($password == null || strlen($password) == 0){
|
| 26 |
+
$errors[] = 'Password';
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
if($companyId == null || strlen($companyId) == 0){
|
| 30 |
+
$errors[] = 'Company id';
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
return $errors;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function getConfigUrl() {
|
| 37 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/system_config/edit/section/lightspeed_settings');
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
public function getLightSpeedUrl($action) {
|
| 41 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/synccustomers/'.$action);
|
| 42 |
+
}
|
| 43 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Block/Syncproducts.php
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Block_Syncproducts extends Mage_Adminhtml_Block_Template {
|
| 3 |
+
|
| 4 |
+
private function log($message){
|
| 5 |
+
Mage::log($message, null, "lightspeed.log");
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
public function checkSync(){
|
| 10 |
+
$errors = array();
|
| 11 |
+
|
| 12 |
+
$server = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_server');
|
| 13 |
+
$username = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_username');
|
| 14 |
+
$password = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_password');
|
| 15 |
+
$companyId = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_company');
|
| 16 |
+
|
| 17 |
+
if($server == null || strlen($server) == 0){
|
| 18 |
+
$errors[] = 'Hostname';
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
if($username == null || strlen($username) == 0){
|
| 22 |
+
$errors[] = 'Username';
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
if($password == null || strlen($password) == 0){
|
| 26 |
+
$errors[] = 'Password';
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
if($companyId == null || strlen($companyId) == 0){
|
| 30 |
+
$errors[] = 'Company id';
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
return $errors;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function getProductGroups(){
|
| 37 |
+
return Mage::helper('lightspeed_syncproducts/api')->getProductGroups();
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
public function getProducts(){
|
| 41 |
+
$syncHelper = Mage::helper('lightspeed_syncproducts/syncProcess');
|
| 42 |
+
$apiHelper = Mage::helper('lightspeed_syncproducts/api');
|
| 43 |
+
$productGroups = $syncHelper->getProductGroups();
|
| 44 |
+
$ret = array();
|
| 45 |
+
foreach($productGroups as $productGroup){
|
| 46 |
+
$products = $apiHelper->getProducts($productGroup["id"]);
|
| 47 |
+
$syncHelper->addProducts($products);
|
| 48 |
+
$productGroup['products'] = $products;
|
| 49 |
+
$ret[] = $productGroup;
|
| 50 |
+
}
|
| 51 |
+
return $ret;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function getConfigUrl() {
|
| 55 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/system_config/edit/section/lightspeed_settings');
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
public function getLightSpeedUrl($action) {
|
| 59 |
+
return Mage::getModel('adminhtml/url')->getUrl('adminhtml/syncproducts/'.$action);
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
public function getToken(){
|
| 63 |
+
return Mage::helper('lightspeed_syncproducts/api')->getClientApiToken();
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
public function formatPrice($price){
|
| 67 |
+
return Mage::helper('core')->currency($price, true, false);
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
public function import(){
|
| 71 |
+
$syncHelper = Mage::helper('lightspeed_syncproducts/syncProcess');
|
| 72 |
+
$productGroups = $syncHelper->getProductGroups();
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
public function getPrice($product, $vatIncl){
|
| 76 |
+
$priceField = Mage::helper('lightspeed_syncproducts/syncProcess')->getPriceField();
|
| 77 |
+
if($vatIncl){
|
| 78 |
+
return $product->{$priceField};
|
| 79 |
+
} else {
|
| 80 |
+
$priceField .= "WithoutVat";
|
| 81 |
+
return $product->{$priceField};
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
public function parseName($name){
|
| 86 |
+
$name = str_replace(' ', '@', $name);
|
| 87 |
+
$name = str_replace('.', '!', $name);
|
| 88 |
+
return $name;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
public function decodeName($name){
|
| 92 |
+
$name = str_replace('@', ' ', $name);
|
| 93 |
+
$name = str_replace('!', '.', $name);
|
| 94 |
+
return $name;
|
| 95 |
+
}
|
| 96 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Helper/Api.php
ADDED
|
@@ -0,0 +1,303 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Helper_Api extends Mage_Core_Helper_Abstract{
|
| 3 |
+
|
| 4 |
+
const CORE = "PosServer/rest/core/";
|
| 5 |
+
const HEARTBEAT_CONTROLLER = "PosServer/rest/heartbeat/";
|
| 6 |
+
const INVENTORY = "PosServer/rest/inventory/";
|
| 7 |
+
const ONLINE_ORDERING = "PosServer/rest/onlineordering/";
|
| 8 |
+
const SECURITY_API = "PosServer/rest/";
|
| 9 |
+
const RPC = "PosServer/JSON-RPC";
|
| 10 |
+
|
| 11 |
+
private $cachedClientApiToken=null;
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
private function log($message){
|
| 15 |
+
Mage::log($message, null, "lightspeed.log");
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
private function logPost($message){
|
| 19 |
+
Mage::log($message, null, "lightspeedPost.log");
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
private function logGet($message){
|
| 23 |
+
Mage::log($message, null, "lightspeedGet.log");
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
private function logPut($message){
|
| 27 |
+
Mage::log($message, null, "lightspeedPut.log");
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
public function getClientApiToken(){
|
| 31 |
+
$this->log('Getting api token...');
|
| 32 |
+
if($this->cachedClientApiToken == null){
|
| 33 |
+
$username = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_username");
|
| 34 |
+
$password = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_password");
|
| 35 |
+
$companyId = Mage::getStoreConfig('lightspeed_settings/lightspeed_account/lightspeed_company');
|
| 36 |
+
$response = $this->post(self::SECURITY_API, "token",array("username" => $username, "password" => $password, "companyId" => $companyId, "deviceId" => "webmanager"), true, false);
|
| 37 |
+
if($response["status"] == 200){
|
| 38 |
+
$this->cachedClientApiToken = $response["data"]->token;
|
| 39 |
+
$this->log("Got api token: " . $this->cachedClientApiToken);
|
| 40 |
+
} else {
|
| 41 |
+
$this->log("Error getting api token: ");
|
| 42 |
+
$this->cachedClientApiToken = null;
|
| 43 |
+
}
|
| 44 |
+
}
|
| 45 |
+
return $this->cachedClientApiToken;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
protected function getEstablishmentToken($establishmentId){
|
| 49 |
+
/*
|
| 50 |
+
* $response = $this->post(self::SECURITY_API, "token/establishment/".$establishmentId);
|
| 51 |
+
* if($response["status"] == 200){
|
| 52 |
+
* return $response["data"]->token;
|
| 53 |
+
* } else {
|
| 54 |
+
* }
|
| 55 |
+
*/
|
| 56 |
+
$token = $this->getClientApiToken();
|
| 57 |
+
$params = array(
|
| 58 |
+
'id' => 0,
|
| 59 |
+
'method' => 'manager.getTokenForEstablishment',
|
| 60 |
+
'params' => array($token , $establishmentId, 'webmanager')
|
| 61 |
+
);
|
| 62 |
+
$response = $this->post(self::RPC, "", $params, true, false);
|
| 63 |
+
if($response["status"] == 200){
|
| 64 |
+
return $response["data"]->result;
|
| 65 |
+
} else {
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
public function getProductGroups(){
|
| 70 |
+
$response = $this->get(self::INVENTORY, "productgroup", array("amount" => 50));
|
| 71 |
+
if($response["status"] == 200){
|
| 72 |
+
return $response["data"];
|
| 73 |
+
} else {
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
public function getProducts($productGroupId){
|
| 78 |
+
$response = $this->get(self::INVENTORY, "productgroup/".$productGroupId."/product", array("amount" => 100));
|
| 79 |
+
if($response["status"] == 200){
|
| 80 |
+
return $response["data"];
|
| 81 |
+
} else {
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
public function getAllProducts(){
|
| 86 |
+
$response = $this->get(self::INVENTORY, "product", array("amount" => 100));
|
| 87 |
+
if($response["status"] == 200){
|
| 88 |
+
return $response["data"];
|
| 89 |
+
} else {
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
public function createCustomer($customer, $establishmentId){
|
| 94 |
+
$this->log('Creating user for establishment: '.$establishmentId);
|
| 95 |
+
if(isset($establishmentId)){
|
| 96 |
+
$token = $this->getEstablishmentToken($establishmentId);
|
| 97 |
+
} else {
|
| 98 |
+
$token = null;
|
| 99 |
+
}
|
| 100 |
+
$response = $this->post(self::ONLINE_ORDERING, "customer", $customer, false, true, $token);
|
| 101 |
+
if($response["status"] == 201){
|
| 102 |
+
return intval($response["data"]);
|
| 103 |
+
} else {
|
| 104 |
+
}
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
public function saveCustomer($customer, $id, $establishmentId = null){
|
| 108 |
+
$this->log('Updating user for establishment: '.$establishmentId);
|
| 109 |
+
if(isset($establishmentId)){
|
| 110 |
+
$token = $this->getEstablishmentToken($establishmentId);
|
| 111 |
+
} else {
|
| 112 |
+
$token = null;
|
| 113 |
+
}
|
| 114 |
+
$customer['id'] = (int)$id;
|
| 115 |
+
$response = $this->put(self::ONLINE_ORDERING, "customer/".$id, $customer, true, $token);
|
| 116 |
+
if($response["status"] == 200){
|
| 117 |
+
return $response["data"];
|
| 118 |
+
} else {
|
| 119 |
+
}
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
public function getCustomer($id, $establishmentId = null){
|
| 123 |
+
if(isset($establishmentId)){
|
| 124 |
+
$token = $this->getEstablishmentToken($establishmentId);
|
| 125 |
+
} else {
|
| 126 |
+
$token = null;
|
| 127 |
+
}
|
| 128 |
+
$response = $this->get(self::ONLINE_ORDERING, 'customer/'.$id, array(), true, $token);
|
| 129 |
+
if($response["status"] == 200){
|
| 130 |
+
return $response["data"];
|
| 131 |
+
} else {
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
public function getPaymentTypes(){
|
| 136 |
+
$response = $this->get(self::ONLINE_ORDERING, "paymenttype");
|
| 137 |
+
if($response["status"] == 200){
|
| 138 |
+
return $response["data"];
|
| 139 |
+
} else {
|
| 140 |
+
}
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
public function getPaymentType($id){
|
| 144 |
+
$response = $this->get(self::ONLINE_ORDERING, "paymenttype");
|
| 145 |
+
$id = (int)$id;
|
| 146 |
+
if($response["status"] == 200){
|
| 147 |
+
foreach($response["data"] as $paymentType){
|
| 148 |
+
if($paymentType->id == $id){
|
| 149 |
+
return $paymentType;
|
| 150 |
+
}
|
| 151 |
+
}
|
| 152 |
+
return null;
|
| 153 |
+
} else {
|
| 154 |
+
}
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
public function getTaxClasses(){
|
| 158 |
+
$response = $this->get(self::ONLINE_ORDERING, "taxclass");
|
| 159 |
+
if($response["status"] == 200){
|
| 160 |
+
return $response["data"];
|
| 161 |
+
} else {
|
| 162 |
+
}
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
public function createOrder($order, $establishmentId = null){
|
| 166 |
+
$this->log('Creating order for establishment: '.$establishmentId);
|
| 167 |
+
if(isset($establishmentId)){
|
| 168 |
+
$token = $this->getEstablishmentToken($establishmentId);
|
| 169 |
+
$response = $this->post(self::ONLINE_ORDERING, "customer/".$order["customerId"]."/establishmentorder", $order, false, true, $token);
|
| 170 |
+
} else {
|
| 171 |
+
$token = null;
|
| 172 |
+
$response = $this->post(self::ONLINE_ORDERING, "customer/".$order["customerId"]."/order", $order, false, true, $token);
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
if($response["status"] == 201){
|
| 176 |
+
return intval($response["data"]);
|
| 177 |
+
} else {
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
public function getOrders($status, $offset){
|
| 182 |
+
$params = array(
|
| 183 |
+
"amount" => 15
|
| 184 |
+
);
|
| 185 |
+
if(isset($status)){
|
| 186 |
+
$params["status"] = $status;
|
| 187 |
+
}
|
| 188 |
+
$this->logGet('Offset = ' .$offset);
|
| 189 |
+
if(isset($offset)){
|
| 190 |
+
$params["offset"] = $offset;
|
| 191 |
+
}
|
| 192 |
+
$response = $this->get(self::ONLINE_ORDERING, "order", $params);
|
| 193 |
+
if($response["status"] == 200){
|
| 194 |
+
return $response["data"];
|
| 195 |
+
} else {
|
| 196 |
+
}
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
public function getEstablishments(){
|
| 200 |
+
$response = $this->get(self::CORE, "company");
|
| 201 |
+
if($response["status"] == 200){
|
| 202 |
+
return $response["data"];
|
| 203 |
+
} else {
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
private function post($api, $resource, array $data = array(), $decode = true, $secure = true, $token = null)
|
| 208 |
+
{
|
| 209 |
+
$this->logPost('Creating '.$resource);
|
| 210 |
+
$this->logPost(print_r($data, true));
|
| 211 |
+
$url = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_server");
|
| 212 |
+
if(!substr($url, -strlen('/'))==='/'){
|
| 213 |
+
$url .= '/';
|
| 214 |
+
}
|
| 215 |
+
$url .= $api.$resource;
|
| 216 |
+
$curl = curl_init($url);
|
| 217 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
| 218 |
+
curl_setopt($curl, CURLOPT_POST, true);
|
| 219 |
+
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
|
| 220 |
+
$headers = array('Content-Type: application/json', 'Accept: application/json');
|
| 221 |
+
if($secure){
|
| 222 |
+
if(isset($token)){
|
| 223 |
+
$this->log('Posting '.$resource.' using provided token...');
|
| 224 |
+
$headers[] = 'X-Auth-Token: '.$token;
|
| 225 |
+
} else {
|
| 226 |
+
$this->log('Posting '.$resource.' using normal token...');
|
| 227 |
+
$headers[] = 'X-Auth-Token: '.$this->getClientApiToken();
|
| 228 |
+
}
|
| 229 |
+
}
|
| 230 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
| 231 |
+
$curl_post_response = curl_exec($curl);
|
| 232 |
+
$curl_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
| 233 |
+
curl_close($curl);
|
| 234 |
+
if($decode){
|
| 235 |
+
$curl_post_response = json_decode($curl_post_response);
|
| 236 |
+
}
|
| 237 |
+
$this->logPost('Created '.$resource);
|
| 238 |
+
$this->logPost(print_r(array("data" => $curl_post_response, "status" => $curl_status), true));
|
| 239 |
+
return array("data" => $curl_post_response, "status" => $curl_status);
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
private function put($api, $resource, array $data = array(), $secure = true, $token = null)
|
| 243 |
+
{
|
| 244 |
+
$this->logPut('Creating '.$resource);
|
| 245 |
+
$this->logPut(print_r($data, true));
|
| 246 |
+
$url = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_server");
|
| 247 |
+
if(!substr($url, -strlen('/'))==='/'){
|
| 248 |
+
$url .= '/';
|
| 249 |
+
}
|
| 250 |
+
$url .= $api.$resource;
|
| 251 |
+
$curl = curl_init($url);
|
| 252 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
| 253 |
+
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
|
| 254 |
+
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
|
| 255 |
+
$headers = array('Content-Type: application/json', 'Accept: application/json');
|
| 256 |
+
if($secure){
|
| 257 |
+
if(isset($token)){
|
| 258 |
+
$headers[] = 'X-Auth-Token: '.$token;
|
| 259 |
+
} else {
|
| 260 |
+
$headers[] = 'X-Auth-Token: '.$this->getClientApiToken();
|
| 261 |
+
}
|
| 262 |
+
}
|
| 263 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
| 264 |
+
$curl_post_response = curl_exec($curl);
|
| 265 |
+
$curl_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
| 266 |
+
curl_close($curl);
|
| 267 |
+
$this->logPut('Created '.$resource);
|
| 268 |
+
$this->logPut(print_r(array("data" => $curl_post_response, "status" => $curl_status), true));
|
| 269 |
+
return array("data" => json_decode($curl_post_response), "status" => $curl_status);
|
| 270 |
+
}
|
| 271 |
+
|
| 272 |
+
private function get($api, $resource, array $data = array(), $secure = true, $token = null)
|
| 273 |
+
{
|
| 274 |
+
$this->logGet('Getting '.$resource);
|
| 275 |
+
$this->logGet(print_r($data, true));
|
| 276 |
+
$url = Mage::getStoreConfig("lightspeed_settings/lightspeed_account/lightspeed_server");
|
| 277 |
+
if(!substr($url, -strlen('/'))==='/'){
|
| 278 |
+
$url .= '/';
|
| 279 |
+
}
|
| 280 |
+
$url .= $api.$resource;
|
| 281 |
+
if(isset($data) && count($data) > 0){
|
| 282 |
+
$url .= '?' . http_build_query($data);
|
| 283 |
+
}
|
| 284 |
+
$curl = curl_init($url);
|
| 285 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
| 286 |
+
$headers = array('Content-Type: application/json', 'Accept: application/json');
|
| 287 |
+
if($secure){
|
| 288 |
+
if(isset($token)){
|
| 289 |
+
$headers[] = 'X-Auth-Token: '.$token;
|
| 290 |
+
} else {
|
| 291 |
+
$headers[] = 'X-Auth-Token: '.$this->getClientApiToken();
|
| 292 |
+
}
|
| 293 |
+
}
|
| 294 |
+
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
| 295 |
+
$curl_response = curl_exec($curl);
|
| 296 |
+
$curl_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
| 297 |
+
$this->logGet('Got '.$resource);
|
| 298 |
+
$this->logGet(print_r(array("data" => $curl_response, "status" => $curl_status), true));
|
| 299 |
+
curl_close($curl);
|
| 300 |
+
|
| 301 |
+
return array("data" => json_decode($curl_response), "status" => $curl_status);
|
| 302 |
+
}
|
| 303 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Helper/Data.php
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Helper_Data extends Mage_Core_Helper_Abstract {
|
| 3 |
+
|
| 4 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Helper/Import.php
ADDED
|
@@ -0,0 +1,585 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Helper_Import extends Mage_Core_Helper_Abstract{
|
| 3 |
+
|
| 4 |
+
private function log($message){
|
| 5 |
+
Mage::log($message, null, "lightspeed.log");
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
private function logOptions($message){
|
| 9 |
+
Mage::log($message, null, "lightspeedOptions.log");
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
public function importTaxClasses(){
|
| 13 |
+
$customerName = Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_customer_tax');
|
| 14 |
+
$country = Mage::getStoreConfig('general/country/default');
|
| 15 |
+
|
| 16 |
+
$apiHelper = Mage::helper('lightspeed_syncproducts/api');
|
| 17 |
+
$taxClasses = $apiHelper->getTaxClasses();
|
| 18 |
+
|
| 19 |
+
//Check to see if lightspeed customer class already exists
|
| 20 |
+
$lightSpeedCustomerClass = Mage::getModel('tax/class')
|
| 21 |
+
->getCollection()
|
| 22 |
+
->addFieldToFilter('class_name', $customerName)
|
| 23 |
+
->load()
|
| 24 |
+
->getFirstItem();
|
| 25 |
+
|
| 26 |
+
if(!$lightSpeedCustomerClass->getId()){
|
| 27 |
+
$lightSpeedCustomerClass = Mage::getModel('tax/class')
|
| 28 |
+
->setData(
|
| 29 |
+
array(
|
| 30 |
+
'class_name' => $customerName,
|
| 31 |
+
'class_type' => 'CUSTOMER'
|
| 32 |
+
)
|
| 33 |
+
)
|
| 34 |
+
->save();
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
foreach($taxClasses as $taxClass){
|
| 38 |
+
$taxRate = Mage::getModel('tax/calculation_rate')
|
| 39 |
+
->getCollection()
|
| 40 |
+
->addFieldToFilter('code', $taxClass->id)
|
| 41 |
+
->load()
|
| 42 |
+
->getFirstItem();
|
| 43 |
+
|
| 44 |
+
if(!$taxRate->getId()){
|
| 45 |
+
$taxRate = Mage::getModel('tax/calculation_rate')
|
| 46 |
+
->setData(
|
| 47 |
+
array(
|
| 48 |
+
'code' => $taxClass->id,
|
| 49 |
+
'rate' => $taxClass->taxRate,
|
| 50 |
+
'tax_country_id' => $country,
|
| 51 |
+
"tax_region_id" => "0",
|
| 52 |
+
"zip_is_range" => "0",
|
| 53 |
+
"tax_postcode" => "*",
|
| 54 |
+
)
|
| 55 |
+
)
|
| 56 |
+
->save();
|
| 57 |
+
|
| 58 |
+
$productClass = Mage::getModel('tax/class')
|
| 59 |
+
->setData(
|
| 60 |
+
array(
|
| 61 |
+
'class_name' => $taxClass->id,
|
| 62 |
+
'class_type' => 'PRODUCT'
|
| 63 |
+
)
|
| 64 |
+
)
|
| 65 |
+
->save();
|
| 66 |
+
|
| 67 |
+
$taxRule = Mage::getModel('tax/calculation_rule')
|
| 68 |
+
->setData(array(
|
| 69 |
+
"code" => $taxClass->id,
|
| 70 |
+
"tax_customer_class" => array($lightSpeedCustomerClass->getId()),
|
| 71 |
+
"tax_product_class" => array($productClass->getId()),
|
| 72 |
+
"tax_rate" => array($taxRate->getId()),
|
| 73 |
+
"priority" => "0",
|
| 74 |
+
"position" => "0",
|
| 75 |
+
))->save();
|
| 76 |
+
} else {
|
| 77 |
+
$taxRate
|
| 78 |
+
->setData('rate', $taxClass->taxRate)
|
| 79 |
+
->save();
|
| 80 |
+
}
|
| 81 |
+
}
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
public function importCategories(){
|
| 85 |
+
$syncHelper = Mage::helper('lightspeed_syncproducts/syncProcess');
|
| 86 |
+
$this->log('Start importing categories');
|
| 87 |
+
$categories = $syncHelper->getProductGroups();
|
| 88 |
+
$parentCategoryId = Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_parent_category');
|
| 89 |
+
if(!isset($parentCategoryId) || ((int)$parentCategoryId) == -1){
|
| 90 |
+
$parentCategoryId = 2;
|
| 91 |
+
}
|
| 92 |
+
$parentCategory = Mage::getModel('catalog/category')->load((int)$parentCategoryId);
|
| 93 |
+
foreach($categories as $category){
|
| 94 |
+
$magentoCategory = null;
|
| 95 |
+
$this->log('Start importing category '.$category["name"]);
|
| 96 |
+
$magentoCategories = $this->getMagentoCategory($category["id"], $category["name"]);
|
| 97 |
+
if(isset($magentoCategories) && count($magentoCategories) == 1){
|
| 98 |
+
$magentoCategory = $magentoCategories[0];
|
| 99 |
+
$magentoCategory->setPath($parentCategory->getPath().'/'.$magentoCategory->getId());
|
| 100 |
+
$this->log('Found magento category');
|
| 101 |
+
} else if(isset($magentoCategories) && count($magentoCategories) > 0){
|
| 102 |
+
foreach($magentoCategories as $c){
|
| 103 |
+
$magentoCategory = $c;
|
| 104 |
+
if($c->posiosId == $category["id"]){
|
| 105 |
+
break;
|
| 106 |
+
}
|
| 107 |
+
}
|
| 108 |
+
$magentoCategory->setPath($parentCategory->getPath());
|
| 109 |
+
$magentoCategory->setPath($parentCategory->getPath().'/'.$magentoCategory->getId());
|
| 110 |
+
$this->log('Found magento category');
|
| 111 |
+
}
|
| 112 |
+
else{
|
| 113 |
+
$this->log('Did not find magento category');
|
| 114 |
+
|
| 115 |
+
$magentoCategory = Mage::getModel('catalog/category');
|
| 116 |
+
$magentoCategory->setPath($parentCategory->getPath());
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
$magentoCategory->setName($this->decodeName($category["name"]))
|
| 120 |
+
->setIsActive(1) //activate your category
|
| 121 |
+
->setDisplayMode('PRODUCTS')
|
| 122 |
+
->setIsAnchor(1)
|
| 123 |
+
->setCustomDesignApply(1);
|
| 124 |
+
$this->log('Adding posios id');
|
| 125 |
+
$magentoCategory->setData("posiosId", $category["id"]);
|
| 126 |
+
$magentoCategory->save();
|
| 127 |
+
$this->log('Magento category saved');
|
| 128 |
+
$this->importProducts(intval($category["id"]), intval($magentoCategory->getId()));
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
public function importProducts($categoryId, $magentoCategoryId){
|
| 133 |
+
$syncHelper = Mage::helper('lightspeed_syncproducts/syncProcess');
|
| 134 |
+
if(array_key_exists($categoryId, $syncHelper->getProductIds())){
|
| 135 |
+
$allProducts = $syncHelper->getProductIds();
|
| 136 |
+
$productIds = $allProducts[$categoryId];
|
| 137 |
+
$taxClasses = array();
|
| 138 |
+
$mediaApi = Mage::getModel("catalog/product_attribute_media_api");
|
| 139 |
+
$taxInclusivePrices = (Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_use_tax_inclusive') == '1');
|
| 140 |
+
$useModifiers = (Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_import_modifiers') == '1');
|
| 141 |
+
foreach($productIds as $productId){
|
| 142 |
+
$product = $syncHelper->getProduct($productId);
|
| 143 |
+
|
| 144 |
+
$taxClassId = null;
|
| 145 |
+
if(!isset($product->taxClass)){
|
| 146 |
+
$product->taxClass = "BUILTIN-21.00";
|
| 147 |
+
}
|
| 148 |
+
if(!array_key_exists($product->taxClass, $taxClasses)){
|
| 149 |
+
$taxClassId = Mage::getModel('tax/class')
|
| 150 |
+
->getCollection()
|
| 151 |
+
->addFieldToFilter('class_name', $product->taxClass)
|
| 152 |
+
->load()
|
| 153 |
+
->getFirstItem()
|
| 154 |
+
->getId();
|
| 155 |
+
$taxClasses[$product->taxClass] = $taxClassId;
|
| 156 |
+
} else {
|
| 157 |
+
$taxClassId = $taxClasses[$product->taxClass];
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
$magentoProducts = $this->getMagentoProduct($productId);
|
| 161 |
+
$magentoProduct = null;
|
| 162 |
+
if(isset($magentoProducts) && count($magentoProducts) > 0){
|
| 163 |
+
$magentoProduct = Mage::getModel('catalog/product')->load($magentoProducts[0]->getId());
|
| 164 |
+
} else if(isset($magentoProducts) && count($magentoProducts) > 1){
|
| 165 |
+
foreach($magentoProducts as $p){
|
| 166 |
+
$magentoProduct = Mage::getModel('catalog/product')->load($p->getId());
|
| 167 |
+
if($p->posiosId == $productId){
|
| 168 |
+
break;
|
| 169 |
+
}
|
| 170 |
+
}
|
| 171 |
+
} else {
|
| 172 |
+
$magentoProduct = Mage::getModel('catalog/product');
|
| 173 |
+
$magentoProduct->setVisibility(4);
|
| 174 |
+
$magentoProduct->setStatus(1);
|
| 175 |
+
$magentoProduct->setWebsiteIds(array(1));
|
| 176 |
+
}
|
| 177 |
+
$stockData = array(
|
| 178 |
+
'manage_stock' => 0
|
| 179 |
+
);
|
| 180 |
+
$magentoProduct->setStockData($stockData);
|
| 181 |
+
$magentoProduct->setAttributeSetId($magentoProduct->getDefaultAttributeSetId());
|
| 182 |
+
$magentoProduct->setSku($product->sku);
|
| 183 |
+
$magentoProduct->setTypeId('simple');
|
| 184 |
+
$magentoProduct->setName($product->name);
|
| 185 |
+
$magentoProduct->setDescription($product->info);
|
| 186 |
+
$magentoProduct->setShortDescription($product->info);
|
| 187 |
+
$magentoProduct->setCategoryIds(array($magentoCategoryId));
|
| 188 |
+
$magentoProduct->setPrice($this->getPrice($product, $taxInclusivePrices));
|
| 189 |
+
$magentoProduct->setWeight(0);
|
| 190 |
+
$magentoProduct->setTaxClassId($taxClassId);
|
| 191 |
+
$magentoProduct->setCreatedAt(strtotime('now'));
|
| 192 |
+
$magentoProduct->setData("posiosId", $productId);
|
| 193 |
+
|
| 194 |
+
if($product->imageLocation != ""){
|
| 195 |
+
$magentoProduct->getOptionInstance()->unsetOptions();
|
| 196 |
+
$this->deleteImages($magentoProduct, $mediaApi);
|
| 197 |
+
$destinationName = "imgprod_" . $productId ."_".strtotime('now').".".pathinfo($product->imageLocation, PATHINFO_EXTENSION);;
|
| 198 |
+
$imgImportDir = Mage::getBaseDir('media') . DS . 'import';
|
| 199 |
+
if (!file_exists($imgImportDir)) {
|
| 200 |
+
mkdir($imgImportDir, 0755, true);
|
| 201 |
+
}
|
| 202 |
+
$destinationPath = $imgImportDir.DS.$destinationName;
|
| 203 |
+
if(!file_exists($destinationPath)){
|
| 204 |
+
$imageLocation = $product->imageLocation;
|
| 205 |
+
$this->downloadFile($imageLocation, $destinationPath);
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
$magentoProduct->setMediaGallery (array('images'=>array (), 'values'=>array ()));
|
| 209 |
+
$magentoProduct->addImageToMediaGallery ($destinationPath, array ('image','small_image','thumbnail'), false, false);
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
if($useModifiers && isset($product->additions) && count($product->additions) > 0){
|
| 213 |
+
$this->addModifications($magentoProduct, $product, $taxInclusivePrices);
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
try {
|
| 217 |
+
$magentoProduct->save();
|
| 218 |
+
} catch (Exception $e) {
|
| 219 |
+
$magentoProduct->getResource()->save($magentoProduct);
|
| 220 |
+
}
|
| 221 |
+
}
|
| 222 |
+
}
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
private function getPrice($product, $vatIncl){
|
| 226 |
+
$priceField = Mage::helper('lightspeed_syncproducts/syncProcess')->getPriceField();
|
| 227 |
+
if($vatIncl){
|
| 228 |
+
return $product->{$priceField};
|
| 229 |
+
} else {
|
| 230 |
+
$priceField .= "WithoutVat";
|
| 231 |
+
return $product->{$priceField};
|
| 232 |
+
}
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
private function getMagentoProduct($id){
|
| 236 |
+
$products = $categories = Mage::getModel('catalog/product')
|
| 237 |
+
->getCollection()
|
| 238 |
+
->addAttributeToSelect('*')
|
| 239 |
+
->addFieldToFilter(array(array('attribute'=>'posiosId','eq'=>$id)));
|
| 240 |
+
|
| 241 |
+
$ret = array();
|
| 242 |
+
|
| 243 |
+
foreach($products as $product){
|
| 244 |
+
$ret[] = $product;
|
| 245 |
+
}
|
| 246 |
+
return $ret;
|
| 247 |
+
}
|
| 248 |
+
|
| 249 |
+
|
| 250 |
+
private function getMagentoCategory($posiosId, $name){
|
| 251 |
+
|
| 252 |
+
$categories = Mage::getModel('catalog/category')
|
| 253 |
+
->getCollection()
|
| 254 |
+
->addAttributeToSelect('*')
|
| 255 |
+
->addIsActiveFilter()
|
| 256 |
+
->addFieldToFilter(array(array('attribute'=>'posiosId','eq'=>$posiosId), array('attribute'=>'name','eq'=>$name)));
|
| 257 |
+
|
| 258 |
+
$ret = array();
|
| 259 |
+
|
| 260 |
+
foreach($categories as $category){
|
| 261 |
+
$ret[] = $category;
|
| 262 |
+
}
|
| 263 |
+
|
| 264 |
+
return $ret;
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
public function syncCustomers($syncField){
|
| 268 |
+
$magentoCustomers = $this->getMagentoCustomers($syncField);
|
| 269 |
+
foreach($magentoCustomers as $magentoCustomer){
|
| 270 |
+
$this->importCustomer($magentoCustomer, null, null, null);
|
| 271 |
+
}
|
| 272 |
+
}
|
| 273 |
+
|
| 274 |
+
public function importCustomer($magentoCustomer, $billingAddress, $shippingAddress, $establishmentId){
|
| 275 |
+
$customer = array();
|
| 276 |
+
|
| 277 |
+
if(!isset($billingAddress)){
|
| 278 |
+
$billingAddress = Mage::getModel('customer/address')->load($magentoCustomer->getData("default_billing"));
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
if(!isset($shippingAddress)){
|
| 282 |
+
$shippingAddress = Mage::getModel('customer/address')->load($magentoCustomer->getData("default_shipping"));
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
if(!isset($billingAddress)){
|
| 286 |
+
$billingAddress = $shippingAddress;
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
if(!isset($shippingAddress)){
|
| 290 |
+
$shippingAddress = $billingAddress;
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
$customer["firstName"] = $magentoCustomer->getData("firstname");
|
| 295 |
+
$customer["lastName"] = $magentoCustomer->getData("lastname");
|
| 296 |
+
$customer["email"] = $magentoCustomer->getData("email");
|
| 297 |
+
|
| 298 |
+
$street = $this->parseMagentoStreet($billingAddress->getStreetFull());
|
| 299 |
+
$customer["street"] = $street[0];
|
| 300 |
+
$customer["streetNumber"] = $street[1];
|
| 301 |
+
$customer["zip"] = $billingAddress->getData('postcode');
|
| 302 |
+
$customer["city"] = $billingAddress->getData('city');
|
| 303 |
+
$customer["country"] = $billingAddress->getCountry();
|
| 304 |
+
|
| 305 |
+
$street2 = $this->parseMagentoStreet($shippingAddress->getStreetFull());
|
| 306 |
+
$customer["deliveryStreet"] = $street2[0];
|
| 307 |
+
$customer["deliveryStreetNumber"] = $street2[1];
|
| 308 |
+
$customer["deliveryZip"] = $shippingAddress->getData('postcode');
|
| 309 |
+
$customer["deliveryCity"] = $shippingAddress->getData('city');
|
| 310 |
+
$customer["deliveryCountry"] = $shippingAddress->getCountry();
|
| 311 |
+
|
| 312 |
+
$posiosId = $magentoCustomer->getData('posiosId');
|
| 313 |
+
$apiHelper = Mage::helper('lightspeed_syncproducts/api');
|
| 314 |
+
if(isset($posiosId)){
|
| 315 |
+
if(isset($establishmentId)){
|
| 316 |
+
$apiHelper->saveCustomer($customer, $posiosId, null);
|
| 317 |
+
$establishmentCustomer= $apiHelper->getCustomer($posiosId, $establishmentId);
|
| 318 |
+
$apiHelper->saveCustomer($customer, $establishmentCustomer->id, $establishmentId);
|
| 319 |
+
$posiosId = $establishmentCustomer->id;
|
| 320 |
+
} else {
|
| 321 |
+
$customer["id"] = (int)$posiosId;
|
| 322 |
+
$apiHelper->saveCustomer($customer, $posiosId, null);
|
| 323 |
+
}
|
| 324 |
+
} else {
|
| 325 |
+
$posiosId = $apiHelper->createCustomer($customer, null);
|
| 326 |
+
$magentoCustomer->setData('posiosId', (int)$posiosId);
|
| 327 |
+
$magentoCustomer->getResource()->saveAttribute($magentoCustomer,'posiosId');
|
| 328 |
+
if(isset($establishmentId)){
|
| 329 |
+
$establishmentCustomer= $apiHelper->getCustomer($posiosId, $establishmentId);
|
| 330 |
+
$posiosId = $establishmentCustomer->id;
|
| 331 |
+
}
|
| 332 |
+
}
|
| 333 |
+
return $posiosId;
|
| 334 |
+
}
|
| 335 |
+
|
| 336 |
+
private function getCustomerIdForEstablishment($attributeValue, $establishmentId){
|
| 337 |
+
$this->log('Parsing establishment posios id...');
|
| 338 |
+
if(strpos($attributeValue, (String)$establishmentId) !== false){
|
| 339 |
+
$this->log('Establishment id found...');
|
| 340 |
+
preg_match('/'.$establishmentId.'_(.*?);/', $attributeValue, $matches);
|
| 341 |
+
if(count($matches) > 0){
|
| 342 |
+
return $matches[1];
|
| 343 |
+
} else {
|
| 344 |
+
return false;
|
| 345 |
+
}
|
| 346 |
+
} else {
|
| 347 |
+
$this->log('Establishment id not found...');
|
| 348 |
+
return false;
|
| 349 |
+
}
|
| 350 |
+
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
private function downloadFile($url, $fullPath){
|
| 354 |
+
$fp = fopen($fullPath, 'w');
|
| 355 |
+
$ch = curl_init($url);
|
| 356 |
+
curl_setopt($ch, CURLOPT_FILE, $fp);
|
| 357 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
| 358 |
+
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies');
|
| 359 |
+
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies');
|
| 360 |
+
$data = curl_exec($ch);
|
| 361 |
+
|
| 362 |
+
if(fwrite($fp,$data))
|
| 363 |
+
{
|
| 364 |
+
return true;
|
| 365 |
+
}
|
| 366 |
+
else
|
| 367 |
+
{
|
| 368 |
+
return false;
|
| 369 |
+
}
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
private function parseMagentoStreet($street){
|
| 373 |
+
$this->log('Parse street '.print_r($street, true));
|
| 374 |
+
$arr = is_array($street) ? $street : explode("\n", $street);
|
| 375 |
+
$street = implode(" ", $arr);
|
| 376 |
+
|
| 377 |
+
$result = array();
|
| 378 |
+
$lastSpacePosition = strrpos($street, " ");
|
| 379 |
+
if($lastSpacePosition > 0){
|
| 380 |
+
$number = substr($street, $lastSpacePosition+1);
|
| 381 |
+
$street = substr($street, 0, $lastSpacePosition);
|
| 382 |
+
} else {
|
| 383 |
+
$number = $street;
|
| 384 |
+
$street = '?';
|
| 385 |
+
}
|
| 386 |
+
|
| 387 |
+
$result[0] = $street;
|
| 388 |
+
$result[1] = $number;
|
| 389 |
+
|
| 390 |
+
if(!isset($result[0])){
|
| 391 |
+
$result[0] = "";
|
| 392 |
+
}
|
| 393 |
+
|
| 394 |
+
if(!isset($result[1])){
|
| 395 |
+
$result[1] = "";
|
| 396 |
+
}
|
| 397 |
+
|
| 398 |
+
$this->log('Parsed street '.print_r($result, true));
|
| 399 |
+
return $result;
|
| 400 |
+
}
|
| 401 |
+
|
| 402 |
+
private function getMagentoCustomers($syncField){
|
| 403 |
+
$users = mage::getModel('customer/customer')
|
| 404 |
+
->getCollection()
|
| 405 |
+
->addAttributeToSelect('*');
|
| 406 |
+
if('existing' == $syncField){
|
| 407 |
+
$users->addFieldToFilter(array(array('attribute'=>'posiosId','neq'=>'NULL')));
|
| 408 |
+
} else if('new' == $syncField){
|
| 409 |
+
$users->addAttributeToFilter('posiosId', array('null' => true), 'left');
|
| 410 |
+
}
|
| 411 |
+
$ret = array();
|
| 412 |
+
foreach($users as $user){
|
| 413 |
+
$ret[] = $user;
|
| 414 |
+
}
|
| 415 |
+
return $ret;
|
| 416 |
+
}
|
| 417 |
+
|
| 418 |
+
private function decodeName($name){
|
| 419 |
+
$name = str_replace('@', ' ', $name);
|
| 420 |
+
$name = str_replace('!', '.', $name);
|
| 421 |
+
return $name;
|
| 422 |
+
}
|
| 423 |
+
|
| 424 |
+
private function addModifications($magentoProduct, $lightspeedProduct, $taxInclusivePrices){
|
| 425 |
+
$store = Mage::app()->getStore('default');
|
| 426 |
+
$taxCalculation = Mage::getModel('tax/calculation');
|
| 427 |
+
$request = $taxCalculation->getRateRequest(null, null, null, $store);
|
| 428 |
+
$taxClassId = $magentoProduct->getTaxClassId();
|
| 429 |
+
$percent = $taxCalculation->getRate($request->setProductClassId($taxClassId));
|
| 430 |
+
|
| 431 |
+
$magentoProduct->setHasOptions(1);
|
| 432 |
+
$optionInstance = $magentoProduct->getOptionInstance();
|
| 433 |
+
$optionInstance = $optionInstance->setProduct($magentoProduct);
|
| 434 |
+
$oldOptions = $magentoProduct->getOptions();
|
| 435 |
+
$optionsToDelete = null;
|
| 436 |
+
if (count($oldOptions) > 0) {
|
| 437 |
+
$optionsToDelete = array();
|
| 438 |
+
foreach($oldOptions as $option){
|
| 439 |
+
$optionsData = $option->getData();
|
| 440 |
+
$optionsData['is_delete'] = '1';
|
| 441 |
+
$optionsToDelete[] = $optionsData;
|
| 442 |
+
}
|
| 443 |
+
$optionInstance->setOptions($optionsToDelete)->saveOptions();
|
| 444 |
+
}
|
| 445 |
+
|
| 446 |
+
$optionInstance = $magentoProduct->getOptionInstance()->unsetOptions();
|
| 447 |
+
|
| 448 |
+
$index = 0;
|
| 449 |
+
$sku = $lightspeedProduct->sku;
|
| 450 |
+
foreach($lightspeedProduct->additions as $addition){
|
| 451 |
+
$index2 = 0;
|
| 452 |
+
$option = array(
|
| 453 |
+
'title' => $addition->name,
|
| 454 |
+
'type' => $this->getOptionType($addition),
|
| 455 |
+
'is_require' => $this->isRequired($addition),
|
| 456 |
+
'sort_order' => $index,
|
| 457 |
+
'sku' => $addition->id.'_'.$sku,
|
| 458 |
+
'values' => array()
|
| 459 |
+
);
|
| 460 |
+
if(count($addition->values) == 0){
|
| 461 |
+
$option['values'][] = array(
|
| 462 |
+
'price' => 0,
|
| 463 |
+
'price_type' => 'fixed',
|
| 464 |
+
'sku' => $addition->id.'_note'.'_'.$sku,
|
| 465 |
+
'sort_order' => $index2,
|
| 466 |
+
'sku' => $addition->id
|
| 467 |
+
);
|
| 468 |
+
} else {
|
| 469 |
+
foreach($addition->values as $additionValue){
|
| 470 |
+
$price = $additionValue->price;
|
| 471 |
+
if(!$taxInclusivePrices){
|
| 472 |
+
$price -= $taxCalculation->calcTaxAmount($additionValue->price, $percent, true, false);
|
| 473 |
+
}
|
| 474 |
+
$option['values'][] = array(
|
| 475 |
+
'title' => $additionValue->name,
|
| 476 |
+
'price' => $price,
|
| 477 |
+
'price_type' => 'fixed',
|
| 478 |
+
'sku' => $addition->id.'_'.$additionValue->id.'_'.$sku,
|
| 479 |
+
'sort_order' => $index2
|
| 480 |
+
);
|
| 481 |
+
$index2++;
|
| 482 |
+
}
|
| 483 |
+
}
|
| 484 |
+
$index++;
|
| 485 |
+
$optionInstance->addOption($option);
|
| 486 |
+
}
|
| 487 |
+
$magentoProduct->setOptionInstance($optionInstance);
|
| 488 |
+
}
|
| 489 |
+
|
| 490 |
+
private function getOptionType($option){
|
| 491 |
+
if(!isset($option->values) || count($option->values) == 0){
|
| 492 |
+
return 'area';
|
| 493 |
+
} elseif($option->multiselect){
|
| 494 |
+
return 'multiple';
|
| 495 |
+
} else {
|
| 496 |
+
return 'drop_down';
|
| 497 |
+
}
|
| 498 |
+
}
|
| 499 |
+
|
| 500 |
+
private function isRequired($option){
|
| 501 |
+
if(!isset($option->values) || count($option->values) == 0){
|
| 502 |
+
return false;
|
| 503 |
+
}else if(!$option->multiselect){
|
| 504 |
+
return true;
|
| 505 |
+
} else {
|
| 506 |
+
return $option->minSelectedAmount > 0;
|
| 507 |
+
}
|
| 508 |
+
}
|
| 509 |
+
|
| 510 |
+
private function createSubProducts($lightspeedProduct, $taxClasses, $magentoCategoryId){
|
| 511 |
+
$syncHelper = Mage::helper('lightspeed_syncproducts/syncProcess');
|
| 512 |
+
$apiHelper = Mage::helper('lightspeed_syncproducts/api');
|
| 513 |
+
$subProducts = $apiHelper->getSubProducts($lightspeedProduct->id);
|
| 514 |
+
|
| 515 |
+
$ret = array();
|
| 516 |
+
|
| 517 |
+
foreach ($subProducts as $subProduct) {
|
| 518 |
+
$sub = $syncHelper->getProduct($subProduct->id);
|
| 519 |
+
if (!$sub) {
|
| 520 |
+
$sub = $apiHelper->getProduct($subProduct->id);
|
| 521 |
+
}
|
| 522 |
+
if (array_key_exists($magentoCategoryId, $sub->groupIds)) {
|
| 523 |
+
$subCategoryId = $magentoCategoryId;
|
| 524 |
+
} else {
|
| 525 |
+
$lightspeedCategory = $syncHelper->getProductGroup($sub->groupIds[0]);
|
| 526 |
+
if (!$lightspeedCategory) {
|
| 527 |
+
$lightspeedCategory = $apiHelper->getProductGroup($sub->groupIds[0]);
|
| 528 |
+
$subCategory = $this->importCategory(array('id' => $lightspeedCategory->id, 'name' => $lightspeedCategory->name));
|
| 529 |
+
} else {
|
| 530 |
+
$subCategory = $this->importCategory($lightspeedCategory);
|
| 531 |
+
}
|
| 532 |
+
$subCategoryId = $subCategory->getId();
|
| 533 |
+
}
|
| 534 |
+
$magentoSubProduct = $this->createProduct($sub, $this->getTaxClassId($sub, $taxClasses), $subCategoryId);
|
| 535 |
+
$ret[] = array('magento' => $magentoSubProduct, 'lightspeed' => $sub);
|
| 536 |
+
}
|
| 537 |
+
return $ret;
|
| 538 |
+
}
|
| 539 |
+
|
| 540 |
+
private function deleteImages ($magentoProduct, $mediaApi){
|
| 541 |
+
if($magentoProduct->getId()){
|
| 542 |
+
$items = $mediaApi->items($magentoProduct->getId());
|
| 543 |
+
foreach($items as $item) {
|
| 544 |
+
$mediaApi->remove($magentoProduct->getId(), $item['file']);
|
| 545 |
+
}
|
| 546 |
+
}
|
| 547 |
+
|
| 548 |
+
}
|
| 549 |
+
|
| 550 |
+
public function reorder($orderId) {
|
| 551 |
+
Mage::unregister('rule_data');
|
| 552 |
+
Mage::getSingleton('adminhtml/session_quote')->clear();
|
| 553 |
+
|
| 554 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
| 555 |
+
$incId = $order->getIncrementId();
|
| 556 |
+
|
| 557 |
+
$newQuote = new Mage_Sales_Model_Quote();
|
| 558 |
+
$newQuote->setStoreId($order->getStoreId());
|
| 559 |
+
Mage::getSingleton('adminhtml/sales_order_create')->setQuote($newQuote);
|
| 560 |
+
|
| 561 |
+
$order_model = Mage::getSingleton('adminhtml/sales_order_create');
|
| 562 |
+
$order_model->getSession()->clear();
|
| 563 |
+
|
| 564 |
+
try {
|
| 565 |
+
$order->setReordered(true);
|
| 566 |
+
Mage::getSingleton('adminhtml/session_quote')->setUseOldShippingMethod(true);
|
| 567 |
+
|
| 568 |
+
$reorder = new Varien_Object();
|
| 569 |
+
$reorder = $order_model->initFromOrder($order);
|
| 570 |
+
$newOrder = $reorder->createOrder();
|
| 571 |
+
|
| 572 |
+
$reOrderId = $newOrder->getId();
|
| 573 |
+
return $reOrderId;
|
| 574 |
+
|
| 575 |
+
} catch (Exception $e) {
|
| 576 |
+
Mage::log("Order #{$incId} Reorder Error : {$e->getMessage()}",null,"reorder.log");
|
| 577 |
+
}
|
| 578 |
+
}
|
| 579 |
+
|
| 580 |
+
|
| 581 |
+
|
| 582 |
+
|
| 583 |
+
|
| 584 |
+
|
| 585 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Helper/SyncProcess.php
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Helper_SyncProcess extends Mage_Core_Helper_Abstract{
|
| 3 |
+
|
| 4 |
+
private function getSyncSession(){
|
| 5 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedSync();
|
| 6 |
+
if($session == null){
|
| 7 |
+
$session = new Varien_Object();
|
| 8 |
+
}
|
| 9 |
+
return $session;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
private function setSyncSession($session){
|
| 13 |
+
return Mage::getSingleton('adminhtml/session')->setLightspeedSync($session);
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
public function getPriceField() {
|
| 17 |
+
return $this->getSyncSession()->getPriceField();
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
public function setPriceField($priceField) {
|
| 21 |
+
$this->setSyncSession($this->getSyncSession()->setPriceField($priceField));
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
public function getProductGroups()
|
| 25 |
+
{
|
| 26 |
+
return $this->getSyncSession()->getProductGroups();
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
public function setProductGroups($productGroups)
|
| 30 |
+
{
|
| 31 |
+
$this->setSyncSession($this->getSyncSession()->setProductGroups($productGroups));
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
public function getProductIds()
|
| 35 |
+
{
|
| 36 |
+
return $this->getSyncSession()->getProductIds();
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
public function setProductIds($productIds)
|
| 40 |
+
{
|
| 41 |
+
$this->setSyncSession($this->getSyncSession()->setProductIds($productIds));
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
public function resetProducts()
|
| 45 |
+
{
|
| 46 |
+
$this->setSyncSession($this->getSyncSession()->setProducts(array()));
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
public function addProduct($product)
|
| 50 |
+
{
|
| 51 |
+
$products = $this->getSyncSession()->getProducts();
|
| 52 |
+
if($products == null){
|
| 53 |
+
$products = array();
|
| 54 |
+
}
|
| 55 |
+
$products[$product->id] = $product;
|
| 56 |
+
$this->setSyncSession($this->getSyncSession()->setProducts($products));
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
public function addProducts($products)
|
| 60 |
+
{
|
| 61 |
+
foreach($products as $product){
|
| 62 |
+
$this->addProduct($product);
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
public function getProduct($id)
|
| 67 |
+
{
|
| 68 |
+
$products = $this->getSyncSession()->getProducts();
|
| 69 |
+
return $products[$id];
|
| 70 |
+
}
|
| 71 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Category/Source.php
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Model_Category_Source {
|
| 3 |
+
private function getSyncSession(){
|
| 4 |
+
$session = Mage::getSingleton('adminhtml/session')->getMagentoCategories();
|
| 5 |
+
if($session == null){
|
| 6 |
+
$session = new Varien_Object();
|
| 7 |
+
}
|
| 8 |
+
return $session;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
private function setSyncSession($session){
|
| 12 |
+
return Mage::getSingleton('adminhtml/session')->getMagentoCategories($session);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
public function toOptionArray(){
|
| 16 |
+
$ret = $this->getSyncSession()->getCategories();
|
| 17 |
+
$lastUpdate = $this->getSyncSession()->getLastUpdate();
|
| 18 |
+
|
| 19 |
+
if(!isset($ret) || (time() - $lastUpdate) > 300){
|
| 20 |
+
$categories = Mage::getModel('catalog/category')
|
| 21 |
+
->getCollection()
|
| 22 |
+
->addAttributeToSelect('*')
|
| 23 |
+
->addIsActiveFilter();
|
| 24 |
+
$ret = array(array("value"=>-1, "label" => "-- Please select a product --"));
|
| 25 |
+
if(isset($categories) && count($categories) > 0){
|
| 26 |
+
foreach($categories as $category){
|
| 27 |
+
$posiosId = $category->getData('posiosId');
|
| 28 |
+
if(!isset($posiosId)){
|
| 29 |
+
$ret[] = array("value" => $category->getId(), "label" => $category->getName());
|
| 30 |
+
}
|
| 31 |
+
}
|
| 32 |
+
$this->setSyncSession($this->getSyncSession()->setCategories($ret));
|
| 33 |
+
$this->setSyncSession($this->getSyncSession()->setLastUpdate(time()));
|
| 34 |
+
} else {
|
| 35 |
+
$ret = array();
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
return $ret;
|
| 39 |
+
}
|
| 40 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Log/Log.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Lightspeed_Syncproducts_Model_Log_Log extends Mage_Core_Model_Abstract {
|
| 4 |
+
|
| 5 |
+
protected function _construct() {
|
| 6 |
+
$this->_init('lightspeed/log');
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Collection.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Lightspeed_Syncproducts_Model_Log_Resource_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract {
|
| 4 |
+
|
| 5 |
+
protected function _construct()
|
| 6 |
+
{
|
| 7 |
+
$this->_init('lightspeed/log');
|
| 8 |
+
}
|
| 9 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Log.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Lightspeed_Syncproducts_Model_Log_Resource_Log extends Mage_Core_Model_Resource_Db_Abstract {
|
| 4 |
+
|
| 5 |
+
protected function _construct()
|
| 6 |
+
{
|
| 7 |
+
$this->_init('lightspeed/log', 'log_id');
|
| 8 |
+
}
|
| 9 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Log/Resource/Setup.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Lightspeed_Syncproduct_Model_Log_Resource_Setup extends Mage_Core_Model_Resource_Setup{
|
| 4 |
+
|
| 5 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Order/Observer.php
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Model_Order_Observer {
|
| 3 |
+
|
| 4 |
+
public function __construct()
|
| 5 |
+
{
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
private function log($message){
|
| 9 |
+
Mage::log($message, null, "lightspeed.log");
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
public function syncOrder($magentoOrder){
|
| 13 |
+
$this->log('Start order syncing');
|
| 14 |
+
$order = array();
|
| 15 |
+
$order["id"] = 0;
|
| 16 |
+
$order["description"] = "auto-generated order by magento-plugin for invoice ";
|
| 17 |
+
|
| 18 |
+
$useEstablishment = false;
|
| 19 |
+
$establishmentField = Mage::getStoreConfig('lightspeed_settings/lightspeed_establishments/lightspeed_establishment_field');
|
| 20 |
+
if(!isset($establishmentField) || $establishmentField == '0'){
|
| 21 |
+
$establishmentId = null;
|
| 22 |
+
} else {
|
| 23 |
+
$establishmentId = $magentoOrder->getData($establishmentField);
|
| 24 |
+
if(isset($establishmentId)){
|
| 25 |
+
$establishmentId = (int)$establishmentId;
|
| 26 |
+
$order['companyId'] = (int)$establishmentId;
|
| 27 |
+
$useEstablishment = true;
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
$this->log('Using establishments? ' . ($useEstablishment ? 'Yes' : 'No'));
|
| 32 |
+
|
| 33 |
+
$customer= mage::getModel('customer/customer')->load($magentoOrder->getCustomerId());
|
| 34 |
+
$order["customerId"] = $this->getCustomerId($customer, $establishmentId, $magentoOrder);
|
| 35 |
+
$this->log('Lightspeed customer id: ' .$order['customerId']);
|
| 36 |
+
|
| 37 |
+
$order["deliveryDate"] = $this->getDeliveryTimestamp($magentoOrder);
|
| 38 |
+
$order["type"] = $this->getShippingType($magentoOrder->getShippingMethod(true)->getCarrierCode());
|
| 39 |
+
$orderItems = array();
|
| 40 |
+
$items = Mage::getModel("sales/order_item")->getCollection()->addFieldToFilter("order_id",$magentoOrder->getEntityId());
|
| 41 |
+
$taxes = array();
|
| 42 |
+
$useModifiers = (Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_import_modifiers') == '1');
|
| 43 |
+
foreach($items as $orderItem){
|
| 44 |
+
$item = array();
|
| 45 |
+
$product = Mage::getModel('catalog/product')->load($orderItem->getProductId());
|
| 46 |
+
if(false){
|
| 47 |
+
$this->log('Adding product plu...');
|
| 48 |
+
$item["productPlu"] = $product->getSku();
|
| 49 |
+
} else {
|
| 50 |
+
$this->log('Adding product id...');
|
| 51 |
+
$item["productId"] = (int)$product->getData("posiosId");
|
| 52 |
+
}
|
| 53 |
+
$item["amount"] = (float)$orderItem->getQtyOrdered();
|
| 54 |
+
$item["unitPrice"] = (float)$orderItem->getPriceInclTax();
|
| 55 |
+
$item["totalPrice"] =(float)$orderItem->getRowTotalInclTax();
|
| 56 |
+
$item["unitPriceWithoutVat"] = (float)$orderItem->getPrice();
|
| 57 |
+
$item["totalPriceWithoutVat"] =(float)$orderItem->getRowTotal();
|
| 58 |
+
|
| 59 |
+
$taxClass = Mage::getModel('tax/class')->load($product->getTaxClassId());
|
| 60 |
+
$taxClassName = $taxClass->getClassName();
|
| 61 |
+
if(isset($taxes[$taxClassName])){
|
| 62 |
+
$taxes[$taxClassName]["total"] += $orderItem->getRowTotal();
|
| 63 |
+
$taxes[$taxClassName]["totalInclTax"] += $orderItem->getRowTotalInclTax();
|
| 64 |
+
} else {
|
| 65 |
+
$taxes[$taxClassName] = array("total" => (float)$orderItem->getRowTotal(), "totalInclTax" => (float)$orderItem->getRowTotalInclTax());
|
| 66 |
+
}
|
| 67 |
+
$modifiers = array();
|
| 68 |
+
$options = $orderItem->getProductOptions();
|
| 69 |
+
if ($useModifiers && isset($options) && array_key_exists('options', $options)) {
|
| 70 |
+
foreach($options['options'] as $option){
|
| 71 |
+
$modifiers = $this->addModifier($option, $modifiers);
|
| 72 |
+
}
|
| 73 |
+
$item['modifiers'] = $modifiers;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
$orderItems[] = $item;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
$deliveryCostProduct = array();
|
| 81 |
+
$deliveryProduct = explode('_',Mage::getStoreConfig('lightspeed_settings/lightspeed_sync/lightspeed_delivery_costs'));
|
| 82 |
+
if(count($deliveryProduct) > 1){
|
| 83 |
+
if(false){
|
| 84 |
+
$deliveryCostProduct["productPlu"] = $deliveryProduct[1];
|
| 85 |
+
} else {
|
| 86 |
+
$deliveryCostProduct["productId"] = $deliveryProduct[0];
|
| 87 |
+
}
|
| 88 |
+
$deliveryCostProduct["amount"] = 1;
|
| 89 |
+
$deliveryCostProduct["unitPrice"] = (float)$magentoOrder->getShippingAmount();
|
| 90 |
+
$deliveryCostProduct["unitPriceWithoutVat"] = (float)$magentoOrder->getShippingAmount();
|
| 91 |
+
$deliveryCostProduct["totalPrice"] = (float)$magentoOrder->getShippingAmount();
|
| 92 |
+
$deliveryCostProduct["totalPriceWithoutVat"] = (float)$magentoOrder->getShippingAmount();
|
| 93 |
+
$orderItems[] = $deliveryCostProduct;
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
$order["orderItems"] = $orderItems;
|
| 98 |
+
$paymentMethod = $magentoOrder->getPayment()->getMethod();
|
| 99 |
+
if($paymentMethod != "checkmo" && $paymentMethod != "free"){
|
| 100 |
+
$paymentId = Mage::getStoreConfig('lightspeed_settings/lightspeed_payment/lightspeed_payment_'.$paymentMethod);
|
| 101 |
+
$payment = Mage::helper('lightspeed_syncproducts/api')->getPaymentType($paymentId);
|
| 102 |
+
$order["orderPayment"] = array("amount" => (float)$magentoOrder->getGrandTotal(), "paymentTypeId"=>(int)$payment->id, "paymentTypeTypeId"=>(int)$payment->typeId);
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
$taxInfo = $magentoOrder->getFullTaxInfo();
|
| 106 |
+
$orderTaxInfo = array();
|
| 107 |
+
foreach($taxInfo as $taxItem){
|
| 108 |
+
$taxClassName = $taxItem["id"];
|
| 109 |
+
$total = $taxes[$taxClassName]["total"];
|
| 110 |
+
$totalInclTax = $taxes[$taxClassName]["totalInclTax"];
|
| 111 |
+
$orderTaxInfo[] = array("tax" => (float)$taxItem["amount"], "taxRate" => $taxItem["percent"], "totalWithoutTax" => $total, "totalWithTax" => $totalInclTax);
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
if(count($orderTaxInfo) > 0){
|
| 115 |
+
$order["orderTaxInfo"] = $orderTaxInfo;
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
$this->log('Going to create an order for establishment: ' .$establishmentId);
|
| 119 |
+
$posiosId = Mage::helper('lightspeed_syncproducts/api')->createOrder($order, $establishmentId);
|
| 120 |
+
$magentoOrder->setData('posiosId', $posiosId);
|
| 121 |
+
$magentoOrder->save();
|
| 122 |
+
|
| 123 |
+
$this->log('Order synced');
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
protected function getCustomerId($customer, $establishmentId, $order){
|
| 127 |
+
$this->log('Start syncing user...');
|
| 128 |
+
if(!isset($establishmentId)){
|
| 129 |
+
$lightspeedId = $customer->getData("posiosId");
|
| 130 |
+
if(isset($lightspeedId)){
|
| 131 |
+
return (int)$lightspeedId;
|
| 132 |
+
} else {
|
| 133 |
+
return (int)(Mage::helper('lightspeed_syncproducts/import')->importCustomer($customer, $order->getBillingAddress(), $order->getShippingAddress(), null));
|
| 134 |
+
}
|
| 135 |
+
} else {
|
| 136 |
+
$this->log('Start syncing user... using establishment');
|
| 137 |
+
$this->log('Got establishment id: ' .$establishmentId);
|
| 138 |
+
return (int)(Mage::helper('lightspeed_syncproducts/import')->importCustomer($customer, $order->getBillingAddress(), $order->getShippingAddress(), $establishmentId));
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
|
| 144 |
+
public function syncOrderAfterPayment($event){
|
| 145 |
+
$invoice = $event->getInvoice();
|
| 146 |
+
$magentoOrder = $invoice->getOrder();
|
| 147 |
+
|
| 148 |
+
$paymentMethod = $magentoOrder->getPayment()->getMethod();
|
| 149 |
+
$this->log("Payment placed with: ".$paymentMethod);
|
| 150 |
+
if($paymentMethod != "checkmo"){
|
| 151 |
+
$this->syncOrder($magentoOrder);
|
| 152 |
+
}
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
public function syncOrderAfterPlacement ($event){
|
| 156 |
+
$magentoOrder = $event->getOrder();
|
| 157 |
+
|
| 158 |
+
$paymentMethod = $magentoOrder->getPayment()->getMethod();
|
| 159 |
+
$this->log("Order placed with: ".$paymentMethod);
|
| 160 |
+
|
| 161 |
+
if($paymentMethod == "free" || $paymentMethod == "checkmo"){
|
| 162 |
+
$this->syncOrder($magentoOrder);
|
| 163 |
+
}
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
private function getDeliveryTimestamp($order){
|
| 167 |
+
try{
|
| 168 |
+
$mod = Mage::getModel("invoiceogone/deliverytime");
|
| 169 |
+
if($mod){
|
| 170 |
+
$deliveryTimeStamp = $mod->loadDeliverytime($order->getEntityId());
|
| 171 |
+
$this->log('Using bluevision deliveryDate: '. date('c', ((int)$deliveryTimeStamp)/1000));
|
| 172 |
+
return Mage::app()->getLocale()->date(((int)$deliveryTimeStamp)/1000, null, null, false)->toString('c');
|
| 173 |
+
}else{
|
| 174 |
+
return Mage::app()->getLocale()->date(strtotime($order->getCreatedAt()), null, null, false)->toString('c');
|
| 175 |
+
}
|
| 176 |
+
}catch (Exception $ex){
|
| 177 |
+
return Mage::app()->getLocale()->date(strtotime($order->getCreatedAt()), null, null, false)->toString('c');
|
| 178 |
+
}
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
private function getShippingType($shippingMethod){
|
| 182 |
+
if(strpos(Mage::getStoreConfig('lightspeed_settings/lightspeed_shipping/lightspeed_shipping_delivery'), $shippingMethod) !== false) {
|
| 183 |
+
return 'delivery';
|
| 184 |
+
} elseif(strpos(Mage::getStoreConfig('lightspeed_settings/lightspeed_shipping/lightspeed_shipping_takeaway'), $shippingMethod) !== false) {
|
| 185 |
+
return 'takeaway';
|
| 186 |
+
} else {
|
| 187 |
+
return 'takeaway';
|
| 188 |
+
}
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
private function addModifier($option, $modifiers) {
|
| 192 |
+
//$this->log('Getting option: '.print_r($option, true));
|
| 193 |
+
if($option["option_type"] != 'area'){
|
| 194 |
+
$optionValueIds = explode(',', $option['option_value']);
|
| 195 |
+
$optionValues = explode(',', $option['value']);
|
| 196 |
+
for($index = 0; $index < count($optionValueIds); $index++){
|
| 197 |
+
$optionValue = Mage::getModel('catalog/product_option_value')->load($optionValueIds[$index]);
|
| 198 |
+
//$this->log(print_r($optionValue, true));
|
| 199 |
+
$lightspeedIds = explode('_', $optionValue['sku']);
|
| 200 |
+
$modifiers[] = array('modifierId' => $lightspeedIds[0], 'modifierValueId' => $lightspeedIds[1], 'price' => 0, 'priceWithoutVat' => 0, 'description' => $optionValues[$index], 'modifierName' => $option['label']);
|
| 201 |
+
}
|
| 202 |
+
} else {
|
| 203 |
+
$optionValue = Mage::getModel('catalog/product_option')->load($option['option_id']);
|
| 204 |
+
$lightspeedIds = explode('_', $optionValue['sku']);
|
| 205 |
+
//$this->log('OptionValue: '.print_r($optionValue->getData(),true));
|
| 206 |
+
//$this->log('Option: '.print_r($option,true));
|
| 207 |
+
$modifiers[] = array('modifierId' => $lightspeedIds[0], 'modifierValueId' => -1, 'price' => 0, 'priceWithoutVat' => 0, 'description' => $option['value'], 'modifierName' => $option['label']);
|
| 208 |
+
}
|
| 209 |
+
return $modifiers;
|
| 210 |
+
}
|
| 211 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Payment/Source.php
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Model_Payment_Source {
|
| 3 |
+
private function getSyncSession(){
|
| 4 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedPayments();
|
| 5 |
+
if($session == null){
|
| 6 |
+
$session = new Varien_Object();
|
| 7 |
+
}
|
| 8 |
+
return $session;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
private function setSyncSession($session){
|
| 12 |
+
return Mage::getSingleton('adminhtml/session')->setLightspeedPayments($session);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
public function toOptionArray(){
|
| 16 |
+
$ret = $this->getSyncSession()->getPayments();
|
| 17 |
+
$lastUpdate = $this->getSyncSession()->getLastUpdate();
|
| 18 |
+
|
| 19 |
+
if(!isset($ret) || (time() - $lastUpdate) > 300){
|
| 20 |
+
$paymentTypes = Mage::helper('lightspeed_syncproducts/api')->getPaymentTypes();
|
| 21 |
+
$ret = array(array("value"=>-1, "label" => "-- Please select a payment type --"));
|
| 22 |
+
if(isset($paymentTypes) && count($paymentTypes) > 0){
|
| 23 |
+
foreach($paymentTypes as $paymentType){
|
| 24 |
+
$ret[] = array("value" => $paymentType->id, "label" => $paymentType->name);
|
| 25 |
+
}
|
| 26 |
+
$this->setSyncSession($this->getSyncSession()->setPayments($ret));
|
| 27 |
+
$this->setSyncSession($this->getSyncSession()->setLastUpdate(time()));
|
| 28 |
+
} else {
|
| 29 |
+
$ret = array();
|
| 30 |
+
}
|
| 31 |
+
}
|
| 32 |
+
return $ret;
|
| 33 |
+
}
|
| 34 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Product/Source.php
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Model_Product_Source {
|
| 3 |
+
private function getSyncSession(){
|
| 4 |
+
$session = Mage::getSingleton('adminhtml/session')->getLightspeedProducts();
|
| 5 |
+
if($session == null){
|
| 6 |
+
$session = new Varien_Object();
|
| 7 |
+
}
|
| 8 |
+
return $session;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
private function setSyncSession($session){
|
| 12 |
+
return Mage::getSingleton('adminhtml/session')->getLightspeedProducts($session);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
public function toOptionArray(){
|
| 16 |
+
$ret = $this->getSyncSession()->getProducts();
|
| 17 |
+
$lastUpdate = $this->getSyncSession()->getLastUpdate();
|
| 18 |
+
|
| 19 |
+
if(!isset($ret) || (time() - $lastUpdate) > 300){
|
| 20 |
+
$products = Mage::helper('lightspeed_syncproducts/api')->getAllProducts();
|
| 21 |
+
$ret = array(array("value"=>-1, "label" => "-- Please select a product --"));
|
| 22 |
+
if(isset($products) && count($products) > 0){
|
| 23 |
+
foreach($products as $products){
|
| 24 |
+
$ret[] = array("value" => $products->id.'_'.$products->sku, "label" => $products->name);
|
| 25 |
+
}
|
| 26 |
+
$this->setSyncSession($this->getSyncSession()->setProducts($ret));
|
| 27 |
+
$this->setSyncSession($this->getSyncSession()->setLastUpdate(time()));
|
| 28 |
+
} else {
|
| 29 |
+
$ret = array();
|
| 30 |
+
}
|
| 31 |
+
}
|
| 32 |
+
return $ret;
|
| 33 |
+
}
|
| 34 |
+
}
|
app/code/local/Lightspeed/Syncproducts/Model/Tax/Source.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_Model_Tax_Source {
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
public function toOptionArray(){
|
| 6 |
+
$customerTaxClasses = Mage::getModel('tax/class')
|
| 7 |
+
->getCollection()
|
| 8 |
+
->addFieldToFilter('class_type', 'CUSTOMER')
|
| 9 |
+
->load();
|
| 10 |
+
$ret = array(array("value"=>-1, "label" => "-- Please select a customer tax class --"));
|
| 11 |
+
if(isset($customerTaxClasses) && count($customerTaxClasses) > 0){
|
| 12 |
+
foreach($customerTaxClasses as $customerTaxClass){
|
| 13 |
+
$ret[] = array("value" => $customerTaxClass->getClassName(), "label" => $customerTaxClass->getClassName());
|
| 14 |
+
}
|
| 15 |
+
} else {
|
| 16 |
+
$ret = array();
|
| 17 |
+
}
|
| 18 |
+
return $ret;
|
| 19 |
+
}
|
| 20 |
+
}
|
app/code/local/Lightspeed/Syncproducts/controllers/MonitorController.php
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_MonitorController extends Mage_Adminhtml_Controller_Action
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
public function indexAction()
|
| 6 |
+
{
|
| 7 |
+
$offset = $this->getRequest()->getParam('offset', 0);
|
| 8 |
+
if(!isset($offset)) {
|
| 9 |
+
$offset = 0;
|
| 10 |
+
}
|
| 11 |
+
$status = $this->getRequest()->getParam('status', null);
|
| 12 |
+
if(!isset($status) || $status == '' || $status == '-1') {
|
| 13 |
+
$status = null;
|
| 14 |
+
}
|
| 15 |
+
Mage::register('offset', $offset);
|
| 16 |
+
Mage::register('status', $status);
|
| 17 |
+
$this->loadLayout();
|
| 18 |
+
$this->renderLayout();
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function checkAction() {
|
| 22 |
+
$this->loadLayout();
|
| 23 |
+
$this->renderLayout();
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
public function reorderAction() {
|
| 27 |
+
$orderId = $this->getRequest()->getParam("order_id", -1);
|
| 28 |
+
if($orderId >= 0) {
|
| 29 |
+
$newOrderId = Mage::helper('lightspeed_syncproducts/import')->reorder($orderId);
|
| 30 |
+
$this->_redirect('adminhtml/sales_order/view/order_id/'.$newOrderId);
|
| 31 |
+
} else {
|
| 32 |
+
$this->_redirect('*/*/index');
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
}
|
app/code/local/Lightspeed/Syncproducts/controllers/SynccustomersController.php
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_SynccustomersController extends Mage_Adminhtml_Controller_Action
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
public function indexAction()
|
| 6 |
+
{
|
| 7 |
+
$this->loadLayout();
|
| 8 |
+
$this->renderLayout();
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
public function checkAction() {
|
| 12 |
+
$this->loadLayout();
|
| 13 |
+
$this->renderLayout();
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
public function syncAction() {
|
| 17 |
+
$syncField = $this->getRequest()->getPost('syncField');
|
| 18 |
+
Mage::helper('lightspeed_syncproducts/import')->syncCustomers($syncField);
|
| 19 |
+
$this->loadLayout();
|
| 20 |
+
$this->renderLayout();
|
| 21 |
+
}
|
| 22 |
+
}
|
app/code/local/Lightspeed/Syncproducts/controllers/SyncproductsController.php
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Lightspeed_Syncproducts_SyncproductsController extends Mage_Adminhtml_Controller_Action
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
private function log($message){
|
| 6 |
+
Mage::log($message, null, "lightspeed.log");
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function indexAction()
|
| 11 |
+
{
|
| 12 |
+
$this->loadLayout();
|
| 13 |
+
$this->renderLayout();
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
public function checkAction() {
|
| 17 |
+
$this->loadLayout();
|
| 18 |
+
$this->renderLayout();
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function categoriesAction() {
|
| 22 |
+
$priceField = $this->getRequest()->getPost("priceField", "price");
|
| 23 |
+
Mage::helper('lightspeed_syncproducts/syncProcess')->setPriceField($priceField);
|
| 24 |
+
$this->loadLayout();
|
| 25 |
+
$this->renderLayout();
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
public function productsAction() {
|
| 29 |
+
$productGroups = array();
|
| 30 |
+
foreach($this->getRequest()->getPost() as $name => $id){
|
| 31 |
+
if($name != "form_key"){
|
| 32 |
+
$productGroups[] = array("name" => $name, "id" => $id);
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
Mage::helper('lightspeed_syncproducts/syncProcess')->setProductGroups($productGroups);
|
| 36 |
+
$this->loadLayout();
|
| 37 |
+
$this->renderLayout();
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
public function syncAction() {
|
| 41 |
+
$products = array();
|
| 42 |
+
foreach($this->getRequest()->getPost() as $productId => $categoryId){
|
| 43 |
+
if($productId != "form_key"){
|
| 44 |
+
$categoryId = intval($categoryId);
|
| 45 |
+
if(!isset($products[$categoryId])){
|
| 46 |
+
$products[$categoryId] = array();
|
| 47 |
+
}
|
| 48 |
+
$products[$categoryId][] = $productId;
|
| 49 |
+
}
|
| 50 |
+
}
|
| 51 |
+
Mage::helper('lightspeed_syncproducts/syncProcess')->setProductIds($products);
|
| 52 |
+
Mage::helper('lightspeed_syncproducts/import')->importTaxClasses();
|
| 53 |
+
Mage::helper('lightspeed_syncproducts/import')->importCategories();
|
| 54 |
+
$this->loadLayout();
|
| 55 |
+
$this->renderLayout();
|
| 56 |
+
}
|
| 57 |
+
}
|
app/code/local/Lightspeed/Syncproducts/etc/adminhtml.xml
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<menu>
|
| 4 |
+
<lightspeed translate="title" module="lightspeed_syncproducts">
|
| 5 |
+
<title>Lightspeed</title>
|
| 6 |
+
<sort_order>65</sort_order>
|
| 7 |
+
<children>
|
| 8 |
+
<products>
|
| 9 |
+
<title>Sync Products</title>
|
| 10 |
+
<action>adminhtml/syncproducts/index</action>
|
| 11 |
+
<sort_order>50</sort_order>
|
| 12 |
+
</products>
|
| 13 |
+
<customers>
|
| 14 |
+
<title>Sync Customers</title>
|
| 15 |
+
<action>adminhtml/synccustomers/index</action>
|
| 16 |
+
<sort_order>60</sort_order>
|
| 17 |
+
</customers>
|
| 18 |
+
<monitor>
|
| 19 |
+
<title>Monitor orders</title>
|
| 20 |
+
<action>adminhtml/monitor/index</action>
|
| 21 |
+
<sort_order>70</sort_order>
|
| 22 |
+
</monitor>
|
| 23 |
+
</children>
|
| 24 |
+
</lightspeed>
|
| 25 |
+
</menu>
|
| 26 |
+
<acl>
|
| 27 |
+
<resources>
|
| 28 |
+
<admin>
|
| 29 |
+
<children>
|
| 30 |
+
<lightspeed translate="title" module="lightspeed_syncproducts">
|
| 31 |
+
<title>Lightspeed</title>
|
| 32 |
+
<sort_order>65</sort_order>
|
| 33 |
+
<children>
|
| 34 |
+
<products>
|
| 35 |
+
<title>Sync Products</title>
|
| 36 |
+
</products>
|
| 37 |
+
<customers>
|
| 38 |
+
<title>Sync Customers</title>
|
| 39 |
+
</customers>
|
| 40 |
+
<monitor>
|
| 41 |
+
<title>Monitor orders</title>
|
| 42 |
+
</monitor>
|
| 43 |
+
</children>
|
| 44 |
+
</lightspeed>
|
| 45 |
+
<system>
|
| 46 |
+
<children>
|
| 47 |
+
<config>
|
| 48 |
+
<children>
|
| 49 |
+
<lightspeed_settings translate="title" module="lightspeed_syncproducts">
|
| 50 |
+
<title>Lightspeed Settings</title>
|
| 51 |
+
</lightspeed_settings>
|
| 52 |
+
</children>
|
| 53 |
+
</config>
|
| 54 |
+
</children>
|
| 55 |
+
</system>
|
| 56 |
+
</children>
|
| 57 |
+
</admin>
|
| 58 |
+
</resources>
|
| 59 |
+
</acl>
|
| 60 |
+
</config>
|
app/code/local/Lightspeed/Syncproducts/etc/config.xml
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Lightspeed_Syncproducts>
|
| 5 |
+
<version>1.0.0.0.1</version>
|
| 6 |
+
</Lightspeed_Syncproducts>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<helpers>
|
| 10 |
+
<lightspeed_syncproducts>
|
| 11 |
+
<class>Lightspeed_Syncproducts_Helper</class>
|
| 12 |
+
</lightspeed_syncproducts>
|
| 13 |
+
</helpers>
|
| 14 |
+
<blocks>
|
| 15 |
+
<lightspeed>
|
| 16 |
+
<class>Lightspeed_Syncproducts_Block</class>
|
| 17 |
+
</lightspeed>
|
| 18 |
+
</blocks>
|
| 19 |
+
<models>
|
| 20 |
+
<lightspeed_syncproducts>
|
| 21 |
+
<class>Lightspeed_Syncproducts_Model</class>
|
| 22 |
+
</lightspeed_syncproducts>
|
| 23 |
+
</models>
|
| 24 |
+
<resources>
|
| 25 |
+
<syncproducts_setup>
|
| 26 |
+
<setup>
|
| 27 |
+
<module>Lightspeed_Syncproducts</module>
|
| 28 |
+
</setup>
|
| 29 |
+
<connection>
|
| 30 |
+
<use>core_setup</use>
|
| 31 |
+
</connection>
|
| 32 |
+
</syncproducts_setup>
|
| 33 |
+
<syncproducts_write>
|
| 34 |
+
<connection>
|
| 35 |
+
<use>core_write</use>
|
| 36 |
+
</connection>
|
| 37 |
+
</syncproducts_write>
|
| 38 |
+
</resources>
|
| 39 |
+
<events>
|
| 40 |
+
<sales_order_payment_pay>
|
| 41 |
+
<observers>
|
| 42 |
+
<lightspeed_syncproducts_model_order_observer>
|
| 43 |
+
<type>singleton</type>
|
| 44 |
+
<class>lightspeed_syncproducts/order_observer</class>
|
| 45 |
+
<method>syncOrderAfterPayment</method>
|
| 46 |
+
</lightspeed_syncproducts_model_order_observer>
|
| 47 |
+
</observers>
|
| 48 |
+
</sales_order_payment_pay>
|
| 49 |
+
<sales_order_place_after>
|
| 50 |
+
<observers>
|
| 51 |
+
<lightspeed_syncproducts_model_order_observer>
|
| 52 |
+
<type>singleton</type>
|
| 53 |
+
<class>lightspeed_syncproducts/order_observer</class>
|
| 54 |
+
<method>syncOrderAfterPlacement</method>
|
| 55 |
+
</lightspeed_syncproducts_model_order_observer>
|
| 56 |
+
</observers>
|
| 57 |
+
</sales_order_place_after>
|
| 58 |
+
</events>
|
| 59 |
+
</global>
|
| 60 |
+
<admin>
|
| 61 |
+
<routers>
|
| 62 |
+
<adminhtml>
|
| 63 |
+
<args>
|
| 64 |
+
<modules>
|
| 65 |
+
<Lightspeed_Syncproducts after="Mage_Adminhtml">Lightspeed_Syncproducts</Lightspeed_Syncproducts>
|
| 66 |
+
</modules>
|
| 67 |
+
</args>
|
| 68 |
+
</adminhtml>
|
| 69 |
+
</routers>
|
| 70 |
+
</admin>
|
| 71 |
+
<adminhtml>
|
| 72 |
+
<layout>
|
| 73 |
+
<updates>
|
| 74 |
+
<lightspeed_syncproducts>
|
| 75 |
+
<file>lightspeed_syncproducts.xml</file>
|
| 76 |
+
</lightspeed_syncproducts>
|
| 77 |
+
</updates>
|
| 78 |
+
</layout>
|
| 79 |
+
</adminhtml>
|
| 80 |
+
</config>
|
app/code/local/Lightspeed/Syncproducts/etc/system.xml
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<lightspeed translate="label" module="lightspeed_syncproducts">
|
| 5 |
+
<label>Lightspeed</label>
|
| 6 |
+
<sort_order>100</sort_order>
|
| 7 |
+
</lightspeed>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<lightspeed_settings translate="label" module="lightspeed_syncproducts">
|
| 11 |
+
<label>Lightspeed Settings</label>
|
| 12 |
+
<tab>lightspeed</tab>
|
| 13 |
+
<sort_order>1000</sort_order>
|
| 14 |
+
<show_in_default>1</show_in_default>
|
| 15 |
+
<show_in_website>1</show_in_website>
|
| 16 |
+
<show_in_store>1</show_in_store>
|
| 17 |
+
<groups>
|
| 18 |
+
<lightspeed_account translate="label" module="lightspeed_syncproducts">
|
| 19 |
+
<label>Account Settings</label>
|
| 20 |
+
<frontend_type>text</frontend_type>
|
| 21 |
+
<sort_order>10</sort_order>
|
| 22 |
+
<show_in_default>1</show_in_default>
|
| 23 |
+
<show_in_website>1</show_in_website>
|
| 24 |
+
<show_in_store>1</show_in_store>
|
| 25 |
+
<fields>
|
| 26 |
+
<lightspeed_server translate="label">
|
| 27 |
+
<label>Cloudserver</label>
|
| 28 |
+
<comment>Give in the cloudserver you are using. format: http(s)://xx#.posios.com/</comment>
|
| 29 |
+
<frontend_type>text</frontend_type>
|
| 30 |
+
<sort_order>10</sort_order>
|
| 31 |
+
<show_in_default>1</show_in_default>
|
| 32 |
+
<show_in_website>1</show_in_website>
|
| 33 |
+
<show_in_store>1</show_in_store>
|
| 34 |
+
</lightspeed_server>
|
| 35 |
+
<lightspeed_username translate="label">
|
| 36 |
+
<label>Username</label>
|
| 37 |
+
<comment>Give in your Lightspeed username.</comment>
|
| 38 |
+
<frontend_type>text</frontend_type>
|
| 39 |
+
<sort_order>20</sort_order>
|
| 40 |
+
<show_in_default>1</show_in_default>
|
| 41 |
+
<show_in_website>1</show_in_website>
|
| 42 |
+
<show_in_store>1</show_in_store>
|
| 43 |
+
</lightspeed_username>
|
| 44 |
+
<lightspeed_password translate="label">
|
| 45 |
+
<label>Password</label>
|
| 46 |
+
<comment>Give in your Lightspeed password.</comment>
|
| 47 |
+
<frontend_type>password</frontend_type>
|
| 48 |
+
<sort_order>30</sort_order>
|
| 49 |
+
<show_in_default>1</show_in_default>
|
| 50 |
+
<show_in_website>1</show_in_website>
|
| 51 |
+
<show_in_store>1</show_in_store>
|
| 52 |
+
</lightspeed_password>
|
| 53 |
+
<lightspeed_company translate="label">
|
| 54 |
+
<label>Company id</label>
|
| 55 |
+
<comment>Give in your Lightspeed's company id.</comment>
|
| 56 |
+
<frontend_type>text</frontend_type>
|
| 57 |
+
<sort_order>40</sort_order>
|
| 58 |
+
<show_in_default>1</show_in_default>
|
| 59 |
+
<show_in_website>1</show_in_website>
|
| 60 |
+
<show_in_store>1</show_in_store>
|
| 61 |
+
</lightspeed_company>
|
| 62 |
+
</fields>
|
| 63 |
+
</lightspeed_account>
|
| 64 |
+
<lightspeed_payment translate="label" module="lightspeed_syncproducts">
|
| 65 |
+
<label>Payment Mapping</label>
|
| 66 |
+
<frontend_type>text</frontend_type>
|
| 67 |
+
<frontend_model>lightspeed/paymentfields</frontend_model>
|
| 68 |
+
<sort_order>20</sort_order>
|
| 69 |
+
<show_in_default>1</show_in_default>
|
| 70 |
+
<show_in_website>1</show_in_website>
|
| 71 |
+
<show_in_store>1</show_in_store>
|
| 72 |
+
</lightspeed_payment>
|
| 73 |
+
<lightspeed_sync translate="label" module="lightspeed_syncproducts">
|
| 74 |
+
<label>Sync Settings</label>
|
| 75 |
+
<frontend_type>text</frontend_type>
|
| 76 |
+
<sort_order>30</sort_order>
|
| 77 |
+
<show_in_default>1</show_in_default>
|
| 78 |
+
<show_in_website>1</show_in_website>
|
| 79 |
+
<show_in_store>1</show_in_store>
|
| 80 |
+
<fields>
|
| 81 |
+
<lightspeed_delivery_costs translate="label">
|
| 82 |
+
<label>Delivery costs product</label>
|
| 83 |
+
<comment>Which product must be used for delivery costs</comment>
|
| 84 |
+
<frontend_type>select</frontend_type>
|
| 85 |
+
<source_model>lightspeed_syncproducts/product_source</source_model>
|
| 86 |
+
<sort_order>20</sort_order>
|
| 87 |
+
<show_in_default>1</show_in_default>
|
| 88 |
+
<show_in_website>1</show_in_website>
|
| 89 |
+
<show_in_store>1</show_in_store>
|
| 90 |
+
</lightspeed_delivery_costs>
|
| 91 |
+
<lightspeed_customer_tax translate="label">
|
| 92 |
+
<label>Which customer tax class do you want to use?</label>
|
| 93 |
+
<comment>Which customer tax class must be used for the imported products</comment>
|
| 94 |
+
<frontend_type>select</frontend_type>
|
| 95 |
+
<source_model>lightspeed_syncproducts/tax_source</source_model>
|
| 96 |
+
<sort_order>25</sort_order>
|
| 97 |
+
<show_in_default>1</show_in_default>
|
| 98 |
+
<show_in_website>1</show_in_website>
|
| 99 |
+
<show_in_store>1</show_in_store>
|
| 100 |
+
</lightspeed_customer_tax>
|
| 101 |
+
<lightspeed_parent_category translate="label">
|
| 102 |
+
<label>Parent category to import to</label>
|
| 103 |
+
<comment>Which category must be used as a parent category to import lightspeed categories</comment>
|
| 104 |
+
<frontend_type>select</frontend_type>
|
| 105 |
+
<source_model>lightspeed_syncproducts/category_source</source_model>
|
| 106 |
+
<sort_order>20</sort_order>
|
| 107 |
+
<show_in_default>1</show_in_default>
|
| 108 |
+
<show_in_website>1</show_in_website>
|
| 109 |
+
<show_in_store>1</show_in_store>
|
| 110 |
+
</lightspeed_parent_category>
|
| 111 |
+
<lightspeed_use_tax_inclusive translate="label">
|
| 112 |
+
<label>Use tax inclusive prices</label>
|
| 113 |
+
<comment>When importing, should we use tax inclusive prices?</comment>
|
| 114 |
+
<frontend_type>select</frontend_type>
|
| 115 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 116 |
+
<sort_order>30</sort_order>
|
| 117 |
+
<show_in_default>1</show_in_default>
|
| 118 |
+
<show_in_website>1</show_in_website>
|
| 119 |
+
<show_in_store>1</show_in_store>
|
| 120 |
+
</lightspeed_use_tax_inclusive>
|
| 121 |
+
<lightspeed_import_modifiers translate="label">
|
| 122 |
+
<label>Import modifiers</label>
|
| 123 |
+
<comment>When importing, should we also import modifiers?</comment>
|
| 124 |
+
<frontend_type>select</frontend_type>
|
| 125 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 126 |
+
<sort_order>40</sort_order>
|
| 127 |
+
<show_in_default>1</show_in_default>
|
| 128 |
+
<show_in_website>1</show_in_website>
|
| 129 |
+
<show_in_store>1</show_in_store>
|
| 130 |
+
</lightspeed_import_modifiers>
|
| 131 |
+
</fields>
|
| 132 |
+
</lightspeed_sync>
|
| 133 |
+
<lightspeed_establishments translate="label" module="lightspeed_syncproducts">
|
| 134 |
+
<label>Establishment Mapping</label>
|
| 135 |
+
<frontend_type>text</frontend_type>
|
| 136 |
+
<frontend_model>lightspeed/establishmentfields</frontend_model>
|
| 137 |
+
<sort_order>25</sort_order>
|
| 138 |
+
<show_in_default>1</show_in_default>
|
| 139 |
+
<show_in_website>1</show_in_website>
|
| 140 |
+
<show_in_store>1</show_in_store>
|
| 141 |
+
</lightspeed_establishments>
|
| 142 |
+
<lightspeed_shipping translate="label" module="lightspeed_syncproducts">
|
| 143 |
+
<label>Shipping Mapping</label>
|
| 144 |
+
<frontend_type>text</frontend_type>
|
| 145 |
+
<frontend_model>lightspeed/shippingfields</frontend_model>
|
| 146 |
+
<sort_order>27</sort_order>
|
| 147 |
+
<show_in_default>1</show_in_default>
|
| 148 |
+
<show_in_website>1</show_in_website>
|
| 149 |
+
<show_in_store>1</show_in_store>
|
| 150 |
+
</lightspeed_shipping>
|
| 151 |
+
</groups>
|
| 152 |
+
</lightspeed_settings>
|
| 153 |
+
</sections>
|
| 154 |
+
</config>
|
app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.1.php
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
Mage::log('Adding posiosId to category and product', null, "lightspeed.log");
|
| 4 |
+
|
| 5 |
+
$installer = $this;
|
| 6 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 7 |
+
$installer->startSetup();
|
| 8 |
+
|
| 9 |
+
$setup->addAttribute('catalog_category', 'posiosId', array(
|
| 10 |
+
'group' => 'General Information',
|
| 11 |
+
'input' => 'text',
|
| 12 |
+
'type' => 'int',
|
| 13 |
+
'label' => 'posiosId',
|
| 14 |
+
'backend' => '',
|
| 15 |
+
'visible' => true,
|
| 16 |
+
'required' => false,
|
| 17 |
+
'visible_on_front' => true,
|
| 18 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 19 |
+
));
|
| 20 |
+
|
| 21 |
+
$setup->addAttribute('catalog_product', 'posiosId', array(
|
| 22 |
+
'group' => 'General',
|
| 23 |
+
'input' => 'text',
|
| 24 |
+
'type' => 'int',
|
| 25 |
+
'label' => 'posiosId',
|
| 26 |
+
'backend' => '',
|
| 27 |
+
'visible' => true,
|
| 28 |
+
'required' => false,
|
| 29 |
+
'visible_on_front' => true,
|
| 30 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 31 |
+
));
|
| 32 |
+
|
| 33 |
+
$entityTypeId = $setup->getEntityTypeId('customer');
|
| 34 |
+
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
|
| 35 |
+
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
|
| 36 |
+
|
| 37 |
+
$setup->addAttribute('customer', 'posiosId', array(
|
| 38 |
+
'input' => 'text',
|
| 39 |
+
'type' => 'text',
|
| 40 |
+
'label' => 'posiosId',
|
| 41 |
+
'backend' => '',
|
| 42 |
+
'visible' => true,
|
| 43 |
+
'required' => false,
|
| 44 |
+
'visible_on_front' => true,
|
| 45 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 46 |
+
));
|
| 47 |
+
|
| 48 |
+
$setup->addAttributeToGroup(
|
| 49 |
+
$entityTypeId,
|
| 50 |
+
$attributeSetId,
|
| 51 |
+
$attributeGroupId,
|
| 52 |
+
'posiosId',
|
| 53 |
+
'999' //sort_order
|
| 54 |
+
);
|
| 55 |
+
|
| 56 |
+
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'posiosId');
|
| 57 |
+
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 58 |
+
|
| 59 |
+
$oAttribute->save();
|
| 60 |
+
|
| 61 |
+
$setup->addAttribute('order', 'posiosId', array(
|
| 62 |
+
'type' => 'varchar',
|
| 63 |
+
'visible' => true,
|
| 64 |
+
'required' => false,
|
| 65 |
+
'is_user_defined' => false,
|
| 66 |
+
'note' => 'posios id',
|
| 67 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 68 |
+
));
|
| 69 |
+
|
| 70 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'posiosId','VARCHAR(255) NULL DEFAULT NULL');
|
| 71 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order_grid'), 'posiosId','VARCHAR(255) NULL DEFAULT NULL');
|
| 72 |
+
|
| 73 |
+
$installer->endSetup();
|
| 74 |
+
Mage::log('Added posiosId to category and product', null, "lightspeed.log");
|
app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.2.php
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$entityTypeId = $setup->getEntityTypeId('customer');
|
| 8 |
+
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
|
| 9 |
+
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
|
| 10 |
+
|
| 11 |
+
$setup->addAttribute('customer', 'posiosId', array(
|
| 12 |
+
'input' => 'text',
|
| 13 |
+
'type' => 'int',
|
| 14 |
+
'label' => 'posiosId',
|
| 15 |
+
'backend' => '',
|
| 16 |
+
'visible' => true,
|
| 17 |
+
'required' => false,
|
| 18 |
+
'visible_on_front' => true,
|
| 19 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 20 |
+
));
|
| 21 |
+
|
| 22 |
+
$setup->addAttributeToGroup(
|
| 23 |
+
$entityTypeId,
|
| 24 |
+
$attributeSetId,
|
| 25 |
+
$attributeGroupId,
|
| 26 |
+
'posiosId',
|
| 27 |
+
'999' //sort_order
|
| 28 |
+
);
|
| 29 |
+
|
| 30 |
+
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'posiosId');
|
| 31 |
+
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 32 |
+
|
| 33 |
+
$oAttribute->save();
|
| 34 |
+
|
| 35 |
+
$installer->endSetup();
|
app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.3.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 5 |
+
$installer->startSetup();
|
| 6 |
+
|
| 7 |
+
$setup->addAttribute('order', 'posiosId', array(
|
| 8 |
+
'type' => 'varchar',
|
| 9 |
+
'visible' => true,
|
| 10 |
+
'required' => false,
|
| 11 |
+
'is_user_defined' => false,
|
| 12 |
+
'note' => 'posios id',
|
| 13 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
|
| 14 |
+
));
|
| 15 |
+
|
| 16 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order'), 'posiosId','VARCHAR(255) NULL DEFAULT NULL');
|
| 17 |
+
$installer->getConnection()->addColumn($installer->getTable('sales_flat_order_grid'), 'posiosId','VARCHAR(255) NULL DEFAULT NULL');
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
$installer->endSetup();
|
app/code/local/Lightspeed/Syncproducts/sql/syncproducts_setup/mysql4-install-1.0.0.0.4.php
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/*$installer = $this;
|
| 4 |
+
$installer->startSetup();
|
| 5 |
+
|
| 6 |
+
$table = $installer->getConnection()->newTable($installer->getTable('lightspeed/log'))
|
| 7 |
+
->addColumn('log_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
|
| 8 |
+
'unsigned' => true,
|
| 9 |
+
'nullable' => false,
|
| 10 |
+
'primary' => true,
|
| 11 |
+
'identity' => true,
|
| 12 |
+
), 'ID')
|
| 13 |
+
->addColumn('date', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
|
| 14 |
+
'nullable' => false,
|
| 15 |
+
), 'Date')
|
| 16 |
+
->addColumn('resource', Varien_Db_Ddl_Table::TYPE_TEXT, null, array(
|
| 17 |
+
'nullable' => false,
|
| 18 |
+
), 'Resource')
|
| 19 |
+
->addColumn('json', Varien_Db_Ddl_Table::TYPE_TEXT, null, array(
|
| 20 |
+
'nullable' => false,
|
| 21 |
+
'length' => 2000,
|
| 22 |
+
), 'Timestamp')
|
| 23 |
+
->addColumn('exception', Varien_Db_Ddl_Table::TYPE_TEXT, null, array(
|
| 24 |
+
'nullable' => true,
|
| 25 |
+
), 'Exception');
|
| 26 |
+
|
| 27 |
+
$installer->getConnection()->createTable($table);
|
| 28 |
+
$installer->endSetup();*/
|
app/design/adminhtml/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/etc/theme.xml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<theme>
|
| 29 |
+
<parent />
|
| 30 |
+
</theme>
|
app/design/adminhtml/default/default/layout/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/layout/admin.xml
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<!-- admin acl users edit page -->
|
| 31 |
+
<adminhtml_permissions_user_edit>
|
| 32 |
+
<reference name="left">
|
| 33 |
+
<block type="adminhtml/permissions_user_edit_tabs" name="adminhtml.permissions.user.edit.tabs"/>
|
| 34 |
+
</reference>
|
| 35 |
+
<reference name="content">
|
| 36 |
+
<block type="adminhtml/permissions_user_edit" name="adminhtml.permissions.user.edit"/>
|
| 37 |
+
</reference>
|
| 38 |
+
<reference name="js">
|
| 39 |
+
<block type="adminhtml/template" name="adminhtml.permissions.user.roles.grid.js" template="permissions/user_roles_grid_js.phtml"/>
|
| 40 |
+
</reference>
|
| 41 |
+
</adminhtml_permissions_user_edit>
|
| 42 |
+
<!-- admin permissions block edit page -->
|
| 43 |
+
<adminhtml_permissions_block_edit>
|
| 44 |
+
<reference name="content">
|
| 45 |
+
<block type="adminhtml/permissions_block_edit" name="adminhtml.permissions.block.edit"/>
|
| 46 |
+
</reference>
|
| 47 |
+
</adminhtml_permissions_block_edit>
|
| 48 |
+
<!-- admin permissions variable edit page -->
|
| 49 |
+
<adminhtml_permissions_variable_edit>
|
| 50 |
+
<reference name="content">
|
| 51 |
+
<block type="adminhtml/permissions_variable_edit" name="adminhtml.permissions.variable.edit"/>
|
| 52 |
+
</reference>
|
| 53 |
+
</adminhtml_permissions_variable_edit>
|
| 54 |
+
<!-- admin acl roles grid page -->
|
| 55 |
+
<adminhtml_permissions_role_index>
|
| 56 |
+
<reference name="content">
|
| 57 |
+
<block type="adminhtml/permissions_roles" name="adminhtml.permission.role.index" template="permissions/roles.phtml">
|
| 58 |
+
<block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid" as="grid"/>
|
| 59 |
+
</block>
|
| 60 |
+
</reference>
|
| 61 |
+
</adminhtml_permissions_role_index>
|
| 62 |
+
<adminhtml_permissions_role_rolegrid>
|
| 63 |
+
<remove name="root"/>
|
| 64 |
+
<block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid"/>
|
| 65 |
+
</adminhtml_permissions_role_rolegrid>
|
| 66 |
+
|
| 67 |
+
<!-- admin acl roles edit page -->
|
| 68 |
+
<adminhtml_permissions_role_editrole>
|
| 69 |
+
<reference name="left">
|
| 70 |
+
<block type="adminhtml/permissions_editroles" name="adminhtml.permissions.editroles"/>
|
| 71 |
+
</reference>
|
| 72 |
+
</adminhtml_permissions_role_editrole>
|
| 73 |
+
<adminhtml_system_config_edit>
|
| 74 |
+
<reference name="left">
|
| 75 |
+
<block type="adminhtml/system_config_switcher" name="adminhtml.system.config.switcher" before="-"/>
|
| 76 |
+
</reference>
|
| 77 |
+
</adminhtml_system_config_edit>
|
| 78 |
+
<adminhtml_dashboard_index>
|
| 79 |
+
<reference name="content">
|
| 80 |
+
<block type="adminhtml/dashboard" name="dashboard">
|
| 81 |
+
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" template="store/switcher.phtml">
|
| 82 |
+
<action method="setUseConfirm"><params>0</params></action>
|
| 83 |
+
</block>
|
| 84 |
+
</block>
|
| 85 |
+
</reference>
|
| 86 |
+
</adminhtml_dashboard_index>
|
| 87 |
+
<adminhtml_cache_index>
|
| 88 |
+
<reference name="content">
|
| 89 |
+
<block type="adminhtml/cache" name="cache"></block>
|
| 90 |
+
<block type="adminhtml/cache_additional" name="cache.additional" template="system/cache/additional.phtml"></block>
|
| 91 |
+
</reference>
|
| 92 |
+
</adminhtml_cache_index>
|
| 93 |
+
</layout>
|
app/design/adminhtml/default/default/layout/adminnotification.xml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<default>
|
| 31 |
+
<reference name="notifications">
|
| 32 |
+
<block type="adminhtml/notification_toolbar" name="notification_toolbar" as="notification_toolbar" acl="system/adminnotification/show_toolbar" template="notification/toolbar.phtml" />
|
| 33 |
+
</reference>
|
| 34 |
+
<reference name="notifications">
|
| 35 |
+
<block type="adminhtml/notification_window" name="notification_window" as="notification_window" acl="system/adminnotification/show_toolbar" template="notification/window.phtml" />
|
| 36 |
+
</reference>
|
| 37 |
+
</default>
|
| 38 |
+
</layout>
|
app/design/adminhtml/default/default/layout/api2.xml
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<adminhtml_api2_role_index>
|
| 30 |
+
<reference name="content">
|
| 31 |
+
<block type="api2/adminhtml_roles" name="api2_roles"/>
|
| 32 |
+
</reference>
|
| 33 |
+
</adminhtml_api2_role_index>
|
| 34 |
+
|
| 35 |
+
<adminhtml_api2_role_new>
|
| 36 |
+
<reference name="left">
|
| 37 |
+
<block type="api2/adminhtml_roles_tabs" name="adminhtml.role.edit.tabs">
|
| 38 |
+
<block type="api2/adminhtml_roles_tab_info" name="adminhtml.role.edit.tab.info"/>
|
| 39 |
+
<block type="api2/adminhtml_roles_tab_resources" name="adminhtml.role.edit.tab.resources" template="permissions/rolesedit.phtml"/>
|
| 40 |
+
<action method="addTab">
|
| 41 |
+
<id>api2_role_section_info</id>
|
| 42 |
+
<block>adminhtml.role.edit.tab.info</block>
|
| 43 |
+
</action>
|
| 44 |
+
<action method="addTab">
|
| 45 |
+
<id>api2_role_section_resources</id>
|
| 46 |
+
<block>adminhtml.role.edit.tab.resources</block>
|
| 47 |
+
</action>
|
| 48 |
+
</block>
|
| 49 |
+
</reference>
|
| 50 |
+
<reference name="content">
|
| 51 |
+
<block type="api2/adminhtml_roles_buttons" name="adminhtml.roles.buttons"/>
|
| 52 |
+
</reference>
|
| 53 |
+
<reference name="head">
|
| 54 |
+
<action method="setCanLoadExtJs">
|
| 55 |
+
<flag>1</flag>
|
| 56 |
+
</action>
|
| 57 |
+
</reference>
|
| 58 |
+
</adminhtml_api2_role_new>
|
| 59 |
+
|
| 60 |
+
<adminhtml_api2_role_edit>
|
| 61 |
+
<reference name="left">
|
| 62 |
+
<block type="api2/adminhtml_roles_tabs" name="adminhtml.role.edit.tabs">
|
| 63 |
+
<block type="api2/adminhtml_roles_tab_info" name="adminhtml.role.edit.tab.info"/>
|
| 64 |
+
<block type="api2/adminhtml_roles_tab_resources" name="adminhtml.role.edit.tab.resources" template="permissions/rolesedit.phtml"/>
|
| 65 |
+
<block type="api2/adminhtml_roles_tab_users" name="adminhtml.role.edit.tab.users"/>
|
| 66 |
+
<action method="addTab">
|
| 67 |
+
<id>api2_role_section_info</id>
|
| 68 |
+
<block>adminhtml.role.edit.tab.info</block>
|
| 69 |
+
</action>
|
| 70 |
+
<action method="addTab">
|
| 71 |
+
<id>api2_role_section_resources</id>
|
| 72 |
+
<block>adminhtml.role.edit.tab.resources</block>
|
| 73 |
+
</action>
|
| 74 |
+
<action method="addTab">
|
| 75 |
+
<id>roleUsersGrid</id>
|
| 76 |
+
<block>adminhtml.role.edit.tab.users</block>
|
| 77 |
+
</action>
|
| 78 |
+
</block>
|
| 79 |
+
</reference>
|
| 80 |
+
<reference name="content">
|
| 81 |
+
<block type="api2/adminhtml_roles_buttons" name="adminhtml.roles.buttons"/>
|
| 82 |
+
</reference>
|
| 83 |
+
<reference name="head">
|
| 84 |
+
<action method="setCanLoadExtJs">
|
| 85 |
+
<flag>1</flag>
|
| 86 |
+
</action>
|
| 87 |
+
</reference>
|
| 88 |
+
<reference name="js">
|
| 89 |
+
<block type="adminhtml/template" name="adminhtml.role.js.users.grid" template="api2/role/users_grid_js.phtml"/>
|
| 90 |
+
</reference>
|
| 91 |
+
</adminhtml_api2_role_edit>
|
| 92 |
+
|
| 93 |
+
<adminhtml_api2_role_grid>
|
| 94 |
+
<remove name="root"/>
|
| 95 |
+
<block type="api2/adminhtml_roles_grid" name="api2_roles.grid" output="toHtml"/>
|
| 96 |
+
</adminhtml_api2_role_grid>
|
| 97 |
+
|
| 98 |
+
<adminhtml_api2_role_usersgrid>
|
| 99 |
+
<remove name="root"/>
|
| 100 |
+
<block type="api2/adminhtml_roles_tab_users" name="adminhtml.role.edit.tab.users" output="toHtml"/>
|
| 101 |
+
</adminhtml_api2_role_usersgrid>
|
| 102 |
+
|
| 103 |
+
<!-- admin acl users edit page -->
|
| 104 |
+
<adminhtml_permissions_user_edit>
|
| 105 |
+
<reference name="adminhtml.permissions.user.edit.tabs">
|
| 106 |
+
<block type="api2/adminhtml_permissions_user_edit_tab_roles" name="adminhtml.permissions.user.edit.tab.roles"/>
|
| 107 |
+
<action method="addTabAfter">
|
| 108 |
+
<id>api2_roles_section</id>
|
| 109 |
+
<block>adminhtml.permissions.user.edit.tab.roles</block>
|
| 110 |
+
<after>roles_section</after>
|
| 111 |
+
</action>
|
| 112 |
+
</reference>
|
| 113 |
+
<reference name="js">
|
| 114 |
+
<block type="adminhtml/template" name="adminhtml.permissions.user.edit.tab.roles.js" template="api2/permissions/user/edit/tab/roles/js.phtml"/>
|
| 115 |
+
</reference>
|
| 116 |
+
</adminhtml_permissions_user_edit>
|
| 117 |
+
|
| 118 |
+
<!-- ACL attributes -->
|
| 119 |
+
<adminhtml_api2_attribute_index>
|
| 120 |
+
<reference name="content">
|
| 121 |
+
<block type="api2/adminhtml_attribute" name="api2.attribute"/>
|
| 122 |
+
</reference>
|
| 123 |
+
</adminhtml_api2_attribute_index>
|
| 124 |
+
|
| 125 |
+
<adminhtml_api2_attribute_edit>
|
| 126 |
+
<reference name="left">
|
| 127 |
+
<block type="api2/adminhtml_attribute_tabs" name="api2.attribute.edit.tabs">
|
| 128 |
+
<block type="api2/adminhtml_attribute_tab_resource" name="api2.attribute.tab.resource" template="api2/attribute/resource.phtml"/>
|
| 129 |
+
<action method="addTab">
|
| 130 |
+
<name>api2_attribute_section_resources</name>
|
| 131 |
+
<block>api2.attribute.tab.resource</block>
|
| 132 |
+
</action>
|
| 133 |
+
</block>
|
| 134 |
+
</reference>
|
| 135 |
+
<reference name="content">
|
| 136 |
+
<block type="api2/adminhtml_attribute_edit" name="edit_form">
|
| 137 |
+
<block type="api2/adminhtml_attribute_edit_form" name="form"/>
|
| 138 |
+
</block>
|
| 139 |
+
</reference>
|
| 140 |
+
<reference name="head">
|
| 141 |
+
<action method="setCanLoadExtJs">
|
| 142 |
+
<flag>1</flag>
|
| 143 |
+
</action>
|
| 144 |
+
</reference>
|
| 145 |
+
</adminhtml_api2_attribute_edit>
|
| 146 |
+
<!-- EOF ACL attributes -->
|
| 147 |
+
</layout>
|
app/design/adminhtml/default/default/layout/authorizenet.xml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
-->
|
| 29 |
+
<layout version="0.1.0">
|
| 30 |
+
<adminhtml_sales_order_create_index>
|
| 31 |
+
<reference name="head">
|
| 32 |
+
<action method="addJs"><file>mage/directpost.js</file></action>
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_sales_order_create_index>
|
| 35 |
+
</layout>
|
app/design/adminhtml/default/default/layout/bundle.xml
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
|
| 31 |
+
<!--
|
| 32 |
+
Layout handle for budle products
|
| 33 |
+
-->
|
| 34 |
+
|
| 35 |
+
<!--<default>
|
| 36 |
+
<reference name="left">
|
| 37 |
+
<action method="setData"><attribute>attributeTabs</attribute><attributeType>bundle/adminhtml_catalog_product_edit_tab_attributes</attributeType></action>
|
| 38 |
+
</reference>
|
| 39 |
+
</default>-->
|
| 40 |
+
|
| 41 |
+
<adminhtml_catalog_product_bundle>
|
| 42 |
+
<reference name="product_tabs">
|
| 43 |
+
<action method="addTab"><name>bundle_items</name><block>bundle/adminhtml_catalog_product_edit_tab_bundle</block></action>
|
| 44 |
+
<action method="bindShadowTabs"><first>bundle_items</first><second>customer_options</second></action>
|
| 45 |
+
</reference>
|
| 46 |
+
</adminhtml_catalog_product_bundle>
|
| 47 |
+
|
| 48 |
+
<adminhtml_sales_order_view>
|
| 49 |
+
<reference name="order_items">
|
| 50 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_view_items_renderer</block><template>bundle/sales/order/view/items/renderer.phtml</template></action>
|
| 51 |
+
</reference>
|
| 52 |
+
</adminhtml_sales_order_view>
|
| 53 |
+
|
| 54 |
+
<adminhtml_sales_order_invoice_new>
|
| 55 |
+
<reference name="order_items">
|
| 56 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/create/items/renderer.phtml</template></action>
|
| 57 |
+
</reference>
|
| 58 |
+
</adminhtml_sales_order_invoice_new>
|
| 59 |
+
|
| 60 |
+
<adminhtml_sales_order_invoice_updateqty>
|
| 61 |
+
<reference name="order_items">
|
| 62 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/create/items/renderer.phtml</template></action>
|
| 63 |
+
</reference>
|
| 64 |
+
</adminhtml_sales_order_invoice_updateqty>
|
| 65 |
+
|
| 66 |
+
<adminhtml_sales_order_invoice_view>
|
| 67 |
+
<reference name="invoice_items">
|
| 68 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/invoice/view/items/renderer.phtml</template></action>
|
| 69 |
+
</reference>
|
| 70 |
+
</adminhtml_sales_order_invoice_view>
|
| 71 |
+
|
| 72 |
+
<adminhtml_sales_order_shipment_new>
|
| 73 |
+
<reference name="order_items">
|
| 74 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/shipment/create/items/renderer.phtml</template></action>
|
| 75 |
+
</reference>
|
| 76 |
+
</adminhtml_sales_order_shipment_new>
|
| 77 |
+
|
| 78 |
+
<adminhtml_sales_order_shipment_view>
|
| 79 |
+
<reference name="shipment_items">
|
| 80 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/shipment/view/items/renderer.phtml</template></action>
|
| 81 |
+
</reference>
|
| 82 |
+
</adminhtml_sales_order_shipment_view>
|
| 83 |
+
|
| 84 |
+
<adminhtml_sales_order_creditmemo_new>
|
| 85 |
+
<reference name="order_items">
|
| 86 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/create/items/renderer.phtml</template></action>
|
| 87 |
+
</reference>
|
| 88 |
+
</adminhtml_sales_order_creditmemo_new>
|
| 89 |
+
|
| 90 |
+
<adminhtml_sales_order_creditmemo_updateqty>
|
| 91 |
+
<reference name="order_items">
|
| 92 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/create/items/renderer.phtml</template></action>
|
| 93 |
+
</reference>
|
| 94 |
+
</adminhtml_sales_order_creditmemo_updateqty>
|
| 95 |
+
|
| 96 |
+
<adminhtml_sales_order_creditmemo_view>
|
| 97 |
+
<reference name="creditmemo_items">
|
| 98 |
+
<action method="addItemRender"><type>bundle</type><block>bundle/adminhtml_sales_order_items_renderer</block><template>bundle/sales/creditmemo/view/items/renderer.phtml</template></action>
|
| 99 |
+
</reference>
|
| 100 |
+
</adminhtml_sales_order_creditmemo_view>
|
| 101 |
+
|
| 102 |
+
<adminhtml_customer_wishlist>
|
| 103 |
+
<reference name="customer.wishlist.edit.tab">
|
| 104 |
+
<action method="addProductConfigurationHelper"><type>bundle</type><name>bundle/catalog_product_configuration</name></action>
|
| 105 |
+
</reference>
|
| 106 |
+
</adminhtml_customer_wishlist>
|
| 107 |
+
|
| 108 |
+
<PRODUCT_TYPE_bundle>
|
| 109 |
+
<reference name="product.composite.fieldset">
|
| 110 |
+
<block type="bundle/adminhtml_catalog_product_composite_fieldset_bundle" before="product.composite.fieldset.options" name="product.composite.fieldset.bundle" template="bundle/product/composite/fieldset/options/bundle.phtml">
|
| 111 |
+
<action method="addRenderer"><type>select</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_select</block></action>
|
| 112 |
+
<action method="addRenderer"><type>multi</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_multi</block></action>
|
| 113 |
+
<action method="addRenderer"><type>radio</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_radio</block></action>
|
| 114 |
+
<action method="addRenderer"><type>checkbox</type><block>bundle/adminhtml_catalog_product_composite_fieldset_options_type_checkbox</block></action>
|
| 115 |
+
</block>
|
| 116 |
+
</reference>
|
| 117 |
+
</PRODUCT_TYPE_bundle>
|
| 118 |
+
</layout>
|
app/design/adminhtml/default/default/layout/captcha.xml
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
-->
|
| 29 |
+
<layout version="0.1.0">
|
| 30 |
+
<adminhtml_index_login>
|
| 31 |
+
<reference name="form.additional.info">
|
| 32 |
+
<block type="captcha/captcha" name="captcha">
|
| 33 |
+
<action method="setFormId"><formId>backend_login</formId></action>
|
| 34 |
+
<action method="setImgWidth"><width>226</width></action>
|
| 35 |
+
<action method="setImgHeight"><width>50</width></action>
|
| 36 |
+
</block>
|
| 37 |
+
</reference>
|
| 38 |
+
</adminhtml_index_login>
|
| 39 |
+
<adminhtml_index_forgotpassword>
|
| 40 |
+
<reference name="form.additional.info">
|
| 41 |
+
<block type="captcha/captcha" name="captcha">
|
| 42 |
+
<action method="setFormId"><formId>backend_forgotpassword</formId></action>
|
| 43 |
+
<action method="setImgWidth"><width>226</width></action>
|
| 44 |
+
<action method="setImgHeight"><width>50</width></action>
|
| 45 |
+
</block>
|
| 46 |
+
</reference>
|
| 47 |
+
</adminhtml_index_forgotpassword>
|
| 48 |
+
</layout>
|
app/design/adminhtml/default/default/layout/catalog.xml
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_catalog_product_index>
|
| 31 |
+
<referense name="head">
|
| 32 |
+
<action method="setTitle" translate="title"><title>Catalog</title></action>
|
| 33 |
+
</referense>
|
| 34 |
+
<reference name="menu">
|
| 35 |
+
<action method="setActive"><menupath>catalog/products</menupath></action>
|
| 36 |
+
</reference>
|
| 37 |
+
<reference name="content">
|
| 38 |
+
<block type="adminhtml/catalog_product" name="products_list">
|
| 39 |
+
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher">
|
| 40 |
+
<action method="setUseConfirm"><params>0</params></action>
|
| 41 |
+
</block>
|
| 42 |
+
</block>
|
| 43 |
+
</reference>
|
| 44 |
+
</adminhtml_catalog_product_index>
|
| 45 |
+
|
| 46 |
+
<adminhtml_catalog_product_new>
|
| 47 |
+
<update handle="editor"/>
|
| 48 |
+
<reference name="content">
|
| 49 |
+
<block type="adminhtml/catalog_product_edit" name="product_edit"></block>
|
| 50 |
+
</reference>
|
| 51 |
+
<reference name="left">
|
| 52 |
+
<block type="adminhtml/catalog_product_edit_tabs" name="product_tabs"></block>
|
| 53 |
+
</reference>
|
| 54 |
+
<reference name="js">
|
| 55 |
+
<block type="adminhtml/catalog_product_edit_js" template="catalog/product/js.phtml" name="catalog_product_js"></block>
|
| 56 |
+
<block type="core/template" template="catalog/wysiwyg/js.phtml"/>
|
| 57 |
+
</reference>
|
| 58 |
+
</adminhtml_catalog_product_new>
|
| 59 |
+
|
| 60 |
+
<adminhtml_catalog_product_edit>
|
| 61 |
+
<update handle="editor"/>
|
| 62 |
+
<reference name="content">
|
| 63 |
+
<block type="adminhtml/catalog_product_edit" name="product_edit"></block>
|
| 64 |
+
</reference>
|
| 65 |
+
<reference name="left">
|
| 66 |
+
<block type="adminhtml/store_switcher" name="store_switcher" before="-"></block>
|
| 67 |
+
<block type="adminhtml/catalog_product_edit_tabs" name="product_tabs"></block>
|
| 68 |
+
</reference>
|
| 69 |
+
<reference name="js">
|
| 70 |
+
<block type="adminhtml/catalog_product_edit_js" template="catalog/product/js.phtml" name="catalog_product_js"></block>
|
| 71 |
+
<block type="core/template" name="catalog.wysiwyg.js" template="catalog/wysiwyg/js.phtml"/>
|
| 72 |
+
</reference>
|
| 73 |
+
</adminhtml_catalog_product_edit>
|
| 74 |
+
|
| 75 |
+
<adminhtml_catalog_product_categories>
|
| 76 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 77 |
+
<block type="adminhtml/catalog_product_edit_tab_categories" name="catalog.product.edit.tab.categories"/>
|
| 78 |
+
</block>
|
| 79 |
+
</adminhtml_catalog_product_categories>
|
| 80 |
+
|
| 81 |
+
<adminhtml_catalog_product_reviews>
|
| 82 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 83 |
+
<block type="adminhtml/catalog_product_edit_tab_reviews" name="admin.product.reviews"/>
|
| 84 |
+
</block>
|
| 85 |
+
</adminhtml_catalog_product_reviews>
|
| 86 |
+
|
| 87 |
+
<adminhtml_catalog_product_taggrid>
|
| 88 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 89 |
+
<block type="adminhtml/catalog_product_edit_tab_tag" name="admin.product.tags"/>
|
| 90 |
+
</block>
|
| 91 |
+
</adminhtml_catalog_product_taggrid>
|
| 92 |
+
|
| 93 |
+
<adminhtml_catalog_product_tagcustomergrid>
|
| 94 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 95 |
+
<block type="adminhtml/catalog_product_edit_tab_tag_customer" name="admin.product.tags.customers"/>
|
| 96 |
+
</block>
|
| 97 |
+
</adminhtml_catalog_product_tagcustomergrid>
|
| 98 |
+
|
| 99 |
+
<adminhtml_catalog_product_options>
|
| 100 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 101 |
+
<block type="adminhtml/catalog_product_edit_tab_options" name="admin.product.options"/>
|
| 102 |
+
</block>
|
| 103 |
+
</adminhtml_catalog_product_options>
|
| 104 |
+
|
| 105 |
+
<adminhtml_catalog_product_grid>
|
| 106 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 107 |
+
<block type="adminhtml/catalog_product_grid" name="admin.product.grid"/>
|
| 108 |
+
</block>
|
| 109 |
+
</adminhtml_catalog_product_grid>
|
| 110 |
+
|
| 111 |
+
<adminhtml_catalog_product_related>
|
| 112 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 113 |
+
<block type="adminhtml/catalog_product_edit_tab_related" name="catalog.product.edit.tab.related"/>
|
| 114 |
+
<block type="adminhtml/widget_grid_serializer" name="related_grid_serializer">
|
| 115 |
+
<reference name="related_grid_serializer">
|
| 116 |
+
<action method="initSerializerBlock">
|
| 117 |
+
<grid_block_name>catalog.product.edit.tab.related</grid_block_name>
|
| 118 |
+
<data_callback>getSelectedRelatedProducts</data_callback>
|
| 119 |
+
<hidden_input_name>links[related]</hidden_input_name>
|
| 120 |
+
<reload_param_name>products_related</reload_param_name>
|
| 121 |
+
</action>
|
| 122 |
+
<action method="addColumnInputName">
|
| 123 |
+
<input_name>position</input_name>
|
| 124 |
+
</action>
|
| 125 |
+
</reference>
|
| 126 |
+
</block>
|
| 127 |
+
</block>
|
| 128 |
+
</adminhtml_catalog_product_related>
|
| 129 |
+
|
| 130 |
+
<adminhtml_catalog_product_relatedgrid>
|
| 131 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 132 |
+
<block type="adminhtml/catalog_product_edit_tab_related" name="catalog.product.edit.tab.related"/>
|
| 133 |
+
</block>
|
| 134 |
+
</adminhtml_catalog_product_relatedgrid>
|
| 135 |
+
|
| 136 |
+
<adminhtml_catalog_product_superconfig>
|
| 137 |
+
<block type="adminhtml/catalog_product_edit_tab_super_config_grid" name="admin.product.edit.tab.super.config.grid" output="toHtml" />
|
| 138 |
+
</adminhtml_catalog_product_superconfig>
|
| 139 |
+
|
| 140 |
+
<adminhtml_catalog_product_alertspricegrid>
|
| 141 |
+
<block type="adminhtml/catalog_product_edit_tab_alerts_price" name="admin.product.edit.tab.alerts.price" output="toHtml" />
|
| 142 |
+
</adminhtml_catalog_product_alertspricegrid>
|
| 143 |
+
|
| 144 |
+
<adminhtml_catalog_product_alertsstockgrid>
|
| 145 |
+
<block type="adminhtml/catalog_product_edit_tab_alerts_stock" name="admin.product.edit.tab.alerts.stock" output="toHtml" />
|
| 146 |
+
</adminhtml_catalog_product_alertsstockgrid>
|
| 147 |
+
|
| 148 |
+
<adminhtml_catalog_product_upsell>
|
| 149 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 150 |
+
<block type="adminhtml/catalog_product_edit_tab_upsell" name="catalog.product.edit.tab.upsell"/>
|
| 151 |
+
<block type="adminhtml/widget_grid_serializer" name="upsell_grid_serializer">
|
| 152 |
+
<reference name="upsell_grid_serializer">
|
| 153 |
+
<action method="initSerializerBlock">
|
| 154 |
+
<grid_block_name>catalog.product.edit.tab.upsell</grid_block_name>
|
| 155 |
+
<data_callback>getSelectedUpsellProducts</data_callback>
|
| 156 |
+
<hidden_input_name>links[upsell]</hidden_input_name>
|
| 157 |
+
<reload_param_name>products_upsell</reload_param_name>
|
| 158 |
+
</action>
|
| 159 |
+
<action method="addColumnInputName">
|
| 160 |
+
<input_name>position</input_name>
|
| 161 |
+
</action>
|
| 162 |
+
</reference>
|
| 163 |
+
</block>
|
| 164 |
+
</block>
|
| 165 |
+
</adminhtml_catalog_product_upsell>
|
| 166 |
+
|
| 167 |
+
<adminhtml_catalog_product_upsellgrid>
|
| 168 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 169 |
+
<block type="adminhtml/catalog_product_edit_tab_upsell" name="catalog.product.edit.tab.upsell"/>
|
| 170 |
+
</block>
|
| 171 |
+
</adminhtml_catalog_product_upsellgrid>
|
| 172 |
+
|
| 173 |
+
<adminhtml_catalog_product_crosssell>
|
| 174 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 175 |
+
<block type="adminhtml/catalog_product_edit_tab_crosssell" name="catalog.product.edit.tab.crosssell"/>
|
| 176 |
+
<block type="adminhtml/widget_grid_serializer" name="crosssell_grid_serializer">
|
| 177 |
+
<reference name="crosssell_grid_serializer">
|
| 178 |
+
<action method="initSerializerBlock">
|
| 179 |
+
<grid_block_name>catalog.product.edit.tab.crosssell</grid_block_name>
|
| 180 |
+
<data_callback>getSelectedCrossSellProducts</data_callback>
|
| 181 |
+
<hidden_input_name>links[crosssell]</hidden_input_name>
|
| 182 |
+
<reload_param_name>products_crosssell</reload_param_name>
|
| 183 |
+
</action>
|
| 184 |
+
<action method="addColumnInputName">
|
| 185 |
+
<input_name>position</input_name>
|
| 186 |
+
</action>
|
| 187 |
+
</reference>
|
| 188 |
+
</block>
|
| 189 |
+
</block>
|
| 190 |
+
</adminhtml_catalog_product_crosssell>
|
| 191 |
+
|
| 192 |
+
<adminhtml_catalog_product_crosssellgrid>
|
| 193 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 194 |
+
<block type="adminhtml/catalog_product_edit_tab_crosssell" name="catalog.product.edit.tab.crosssell"/>
|
| 195 |
+
</block>
|
| 196 |
+
</adminhtml_catalog_product_crosssellgrid>
|
| 197 |
+
<!--
|
| 198 |
+
Layout handle for simple products
|
| 199 |
+
-->
|
| 200 |
+
|
| 201 |
+
<adminhtml_catalog_product_simple />
|
| 202 |
+
|
| 203 |
+
<!--
|
| 204 |
+
Layout handle for grouped products
|
| 205 |
+
-->
|
| 206 |
+
<adminhtml_catalog_product_grouped>
|
| 207 |
+
<reference name="product_tabs">
|
| 208 |
+
<action method="addTab"><name>super</name><block>adminhtml/catalog_product_edit_tab_super_group</block></action>
|
| 209 |
+
</reference>
|
| 210 |
+
</adminhtml_catalog_product_grouped>
|
| 211 |
+
|
| 212 |
+
<adminhtml_catalog_product_supergroup>
|
| 213 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 214 |
+
<block type="adminhtml/catalog_product_edit_tab_super_group" name="catalog.product.edit.tab.super.group" />
|
| 215 |
+
<block type="adminhtml/widget_grid_serializer" name="grouped_grid_serializer">
|
| 216 |
+
<reference name="grouped_grid_serializer">
|
| 217 |
+
<action method="initSerializerBlock">
|
| 218 |
+
<grid_block_name>catalog.product.edit.tab.super.group</grid_block_name>
|
| 219 |
+
<data_callback>getSelectedGroupedProducts</data_callback>
|
| 220 |
+
<hidden_input_name>links[grouped]</hidden_input_name>
|
| 221 |
+
<reload_param_name>products_grouped</reload_param_name>
|
| 222 |
+
</action>
|
| 223 |
+
<action method="addColumnInputName">
|
| 224 |
+
<input_name>qty</input_name>
|
| 225 |
+
<input_name>position</input_name>
|
| 226 |
+
</action>
|
| 227 |
+
</reference>
|
| 228 |
+
</block>
|
| 229 |
+
</block>
|
| 230 |
+
</adminhtml_catalog_product_supergroup>
|
| 231 |
+
|
| 232 |
+
<adminhtml_catalog_product_supergroupgridonly>
|
| 233 |
+
<block type="core/text_list" name="root">
|
| 234 |
+
<block type="adminhtml/catalog_product_edit_tab_super_group" name="catalog.product.edit.tab.super.group" />
|
| 235 |
+
</block>
|
| 236 |
+
</adminhtml_catalog_product_supergroupgridonly>
|
| 237 |
+
<!--
|
| 238 |
+
Layout handle for configurable products
|
| 239 |
+
-->
|
| 240 |
+
|
| 241 |
+
<adminhtml_catalog_product_configurable_new>
|
| 242 |
+
<remove name="product_tabs"/>
|
| 243 |
+
<reference name="left">
|
| 244 |
+
<block type="adminhtml/catalog_product_edit_tabs_configurable" name="configurable_product_tabs"></block>
|
| 245 |
+
</reference>
|
| 246 |
+
</adminhtml_catalog_product_configurable_new>
|
| 247 |
+
|
| 248 |
+
<adminhtml_catalog_product_configurable>
|
| 249 |
+
<reference name="product_tabs">
|
| 250 |
+
<action method="addTab"><name>configurable</name><block>adminhtml/catalog_product_edit_tab_super_config</block></action>
|
| 251 |
+
<action method="bindShadowTabs"><first>configurable</first><second>customer_options</second></action>
|
| 252 |
+
</reference>
|
| 253 |
+
</adminhtml_catalog_product_configurable>
|
| 254 |
+
|
| 255 |
+
<adminhtml_catalog_product_action_attribute_edit>
|
| 256 |
+
<reference name="left">
|
| 257 |
+
<block type="adminhtml/store_switcher" name="store_switcher" template="store/switcher.phtml" />
|
| 258 |
+
<block type="adminhtml/catalog_product_edit_action_attribute_tabs" name="attributes_tabs">
|
| 259 |
+
<block type="adminhtml/catalog_product_edit_action_attribute_tab_attributes" name="tab_attributes"/>
|
| 260 |
+
<block type="adminhtml/catalog_product_edit_action_attribute_tab_inventory" name="tab_inventory" template="catalog/product/edit/action/inventory.phtml" />
|
| 261 |
+
<block type="adminhtml/catalog_product_edit_action_attribute_tab_websites" name="tab_websites" template="catalog/product/edit/action/websites.phtml" />
|
| 262 |
+
<action method="addTab"><name>attributes</name><block>tab_attributes</block></action>
|
| 263 |
+
<action method="addTab"><name>inventory</name><block>tab_inventory</block></action>
|
| 264 |
+
<action method="addTab"><name>websites</name><block>tab_websites</block></action>
|
| 265 |
+
</block>
|
| 266 |
+
</reference>
|
| 267 |
+
<reference name="content">
|
| 268 |
+
<block type="adminhtml/catalog_product_edit_action_attribute" name="attribute" template="catalog/product/edit/action/attribute.phtml" />
|
| 269 |
+
</reference>
|
| 270 |
+
</adminhtml_catalog_product_action_attribute_edit>
|
| 271 |
+
|
| 272 |
+
<adminhtml_catalog_product_attribute_edit>
|
| 273 |
+
<reference name="left">
|
| 274 |
+
<block type="adminhtml/catalog_product_attribute_edit_tabs" name="attribute_edit_tabs"></block>
|
| 275 |
+
</reference>
|
| 276 |
+
<reference name="content">
|
| 277 |
+
<block type="adminhtml/catalog_product_attribute_edit" name="attribute_edit_content"></block>
|
| 278 |
+
</reference>
|
| 279 |
+
<reference name="js">
|
| 280 |
+
<block type="adminhtml/template" name="attribute_edit_js" template="catalog/product/attribute/js.phtml"></block>
|
| 281 |
+
</reference>
|
| 282 |
+
</adminhtml_catalog_product_attribute_edit>
|
| 283 |
+
|
| 284 |
+
<adminhtml_catalog_category_edit>
|
| 285 |
+
<update handle="editor"/>
|
| 286 |
+
<reference name="left">
|
| 287 |
+
<block name="category.tree" type="adminhtml/catalog_category_tree" template="catalog/category/tree.phtml" />
|
| 288 |
+
</reference>
|
| 289 |
+
<reference name="content">
|
| 290 |
+
<block name="category.edit" type="adminhtml/catalog_category_edit" template="catalog/category/edit.phtml" />
|
| 291 |
+
</reference>
|
| 292 |
+
<reference name="js">
|
| 293 |
+
<block type="core/template" template="catalog/wysiwyg/js.phtml" name="catalog.wysiwyg.js" />
|
| 294 |
+
</reference>
|
| 295 |
+
</adminhtml_catalog_category_edit>
|
| 296 |
+
|
| 297 |
+
<ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE>
|
| 298 |
+
<block type="adminhtml/catalog_product_composite_fieldset" name="product.composite.fieldset" output="toHtml">
|
| 299 |
+
<block name="product.composite.fieldset.options" type="adminhtml/catalog_product_composite_fieldset_options" template="catalog/product/composite/fieldset/options.phtml">
|
| 300 |
+
<action method="addOptionRenderer"><type>text</type><block>catalog/product_view_options_type_text</block><template>catalog/product/composite/fieldset/options/type/text.phtml</template></action>
|
| 301 |
+
<action method="addOptionRenderer"><type>file</type><block>catalog/product_view_options_type_file</block><template>catalog/product/composite/fieldset/options/type/file.phtml</template></action>
|
| 302 |
+
<action method="addOptionRenderer"><type>select</type><block>catalog/product_view_options_type_select</block><template>catalog/product/composite/fieldset/options/type/select.phtml</template></action>
|
| 303 |
+
<action method="addOptionRenderer"><type>date</type><block>catalog/product_view_options_type_date</block><template>catalog/product/composite/fieldset/options/type/date.phtml</template></action>
|
| 304 |
+
<block type="core/template" name="product.composite.fieldset.options.js" as="options_js" template="catalog/product/composite/fieldset/options/js.phtml"/>
|
| 305 |
+
</block>
|
| 306 |
+
<block type="adminhtml/catalog_product_composite_fieldset_qty" name="product.composite.fieldset.qty" template="catalog/product/composite/fieldset/qty.phtml"/>
|
| 307 |
+
</block>
|
| 308 |
+
</ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE>
|
| 309 |
+
|
| 310 |
+
<ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR>
|
| 311 |
+
<block type="adminhtml/catalog_product_composite_error" name="product.composite.error" output="toHtml" />
|
| 312 |
+
</ADMINHTML_CATALOG_PRODUCT_COMPOSITE_CONFIGURE_ERROR>
|
| 313 |
+
|
| 314 |
+
<ADMINHTML_CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT>
|
| 315 |
+
<block type="adminhtml/catalog_product_composite_update_result" name="product.composite.update.result" output="toHtml" />
|
| 316 |
+
</ADMINHTML_CATALOG_PRODUCT_COMPOSITE_UPDATE_RESULT>
|
| 317 |
+
<!--
|
| 318 |
+
Additional block in composite_fieldset block dependant on product type
|
| 319 |
+
-->
|
| 320 |
+
<PRODUCT_TYPE_configurable>
|
| 321 |
+
<reference name="product.composite.fieldset">
|
| 322 |
+
<block type="adminhtml/catalog_product_composite_fieldset_configurable" name="product.composite.fieldset.configurable" before="product.composite.fieldset.options" template="catalog/product/composite/fieldset/configurable.phtml" />
|
| 323 |
+
</reference>
|
| 324 |
+
</PRODUCT_TYPE_configurable>
|
| 325 |
+
<PRODUCT_TYPE_grouped>
|
| 326 |
+
<reference name="product.composite.fieldset">
|
| 327 |
+
<block type="adminhtml/catalog_product_composite_fieldset_grouped" name="product.composite.fieldset.grouped" before="product.composite.fieldset.options" template="catalog/product/composite/fieldset/grouped.phtml"/>
|
| 328 |
+
<remove name="product.composite.fieldset.qty"/>
|
| 329 |
+
</reference>
|
| 330 |
+
</PRODUCT_TYPE_grouped>
|
| 331 |
+
|
| 332 |
+
</layout>
|
app/design/adminhtml/default/default/layout/centinel.xml
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
-->
|
| 29 |
+
<layout version="0.1.0">
|
| 30 |
+
|
| 31 |
+
<adminhtml_centinel_index_authenticationstart>
|
| 32 |
+
<block type="centinel/authentication_start" name="root" output="toHtml" template="centinel/authentication/start.phtml"/>
|
| 33 |
+
</adminhtml_centinel_index_authenticationstart>
|
| 34 |
+
|
| 35 |
+
<adminhtml_centinel_index_authenticationcomplete>
|
| 36 |
+
<block type="centinel/authentication_complete" name="root" output="toHtml" template="centinel/authentication/complete.phtml"/>
|
| 37 |
+
</adminhtml_centinel_index_authenticationcomplete>
|
| 38 |
+
|
| 39 |
+
<adminhtml_sales_order_create_index>
|
| 40 |
+
<reference name="head">
|
| 41 |
+
<action method="addJs"><script>mage/adminhtml/sales/centinel.js</script></action>
|
| 42 |
+
</reference>
|
| 43 |
+
<reference name="data">
|
| 44 |
+
<block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
|
| 45 |
+
<block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
|
| 46 |
+
</block>
|
| 47 |
+
</reference>
|
| 48 |
+
</adminhtml_sales_order_create_index>
|
| 49 |
+
|
| 50 |
+
<adminhtml_sales_order_create_start>
|
| 51 |
+
<update handle="adminhtml_sales_order_create_index"/>
|
| 52 |
+
</adminhtml_sales_order_create_start>
|
| 53 |
+
|
| 54 |
+
<adminhtml_sales_order_create_load_block_data>
|
| 55 |
+
<reference name="data">
|
| 56 |
+
<block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
|
| 57 |
+
<block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
|
| 58 |
+
</block>
|
| 59 |
+
</reference>
|
| 60 |
+
</adminhtml_sales_order_create_load_block_data>
|
| 61 |
+
|
| 62 |
+
<adminhtml_sales_order_create_load_block_card_validation>
|
| 63 |
+
<reference name="content">
|
| 64 |
+
<block type="centinel/adminhtml_validation" as="card_validation" name="card_validation" template="sales/order/create/abstract.phtml">
|
| 65 |
+
<block type="centinel/adminhtml_validation_form" template="centinel/validation/form.phtml" name="form" />
|
| 66 |
+
</block>
|
| 67 |
+
</reference>
|
| 68 |
+
</adminhtml_sales_order_create_load_block_card_validation>
|
| 69 |
+
|
| 70 |
+
</layout>
|
app/design/adminhtml/default/default/layout/cms.xml
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_cms_page_index>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="adminhtml/cms_page" name="cms_page"></block>
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_cms_page_index>
|
| 35 |
+
|
| 36 |
+
<adminhtml_cms_page_new>
|
| 37 |
+
<update handle="adminhtml_cms_page_edit" />
|
| 38 |
+
</adminhtml_cms_page_new>
|
| 39 |
+
|
| 40 |
+
<adminhtml_cms_page_edit>
|
| 41 |
+
<update handle="editor"/>
|
| 42 |
+
<reference name="content">
|
| 43 |
+
<block type="adminhtml/cms_page_edit" name="cms_page_edit"></block>
|
| 44 |
+
</reference>
|
| 45 |
+
<reference name="left">
|
| 46 |
+
<block type="adminhtml/cms_page_edit_tabs" name="cms_page_edit_tabs">
|
| 47 |
+
<block type="adminhtml/cms_page_edit_tab_main" name="cms_page_edit_tab_main" />
|
| 48 |
+
<block type="adminhtml/cms_page_edit_tab_content" name="cms_page_edit_tab_content" />
|
| 49 |
+
<block type="adminhtml/cms_page_edit_tab_design" name="cms_page_edit_tab_design" />
|
| 50 |
+
<block type="adminhtml/cms_page_edit_tab_meta" name="cms_page_edit_tab_meta" />
|
| 51 |
+
<action method="addTab"><name>main_section</name><block>cms_page_edit_tab_main</block></action>
|
| 52 |
+
<action method="addTab"><name>content_section</name><block>cms_page_edit_tab_content</block></action>
|
| 53 |
+
<action method="addTab"><name>design_section</name><block>cms_page_edit_tab_design</block></action>
|
| 54 |
+
<action method="addTab"><name>meta_section</name><block>cms_page_edit_tab_meta</block></action>
|
| 55 |
+
</block>
|
| 56 |
+
</reference>
|
| 57 |
+
</adminhtml_cms_page_edit>
|
| 58 |
+
|
| 59 |
+
<adminhtml_cms_block_index>
|
| 60 |
+
<reference name="content">
|
| 61 |
+
<block type="adminhtml/cms_block" name="cms_block"></block>
|
| 62 |
+
</reference>
|
| 63 |
+
</adminhtml_cms_block_index>
|
| 64 |
+
|
| 65 |
+
<adminhtml_cms_block_new>
|
| 66 |
+
<update handle="adminhtml_cms_block_edit" />
|
| 67 |
+
</adminhtml_cms_block_new>
|
| 68 |
+
|
| 69 |
+
<adminhtml_cms_block_edit>
|
| 70 |
+
<update handle="editor"/>
|
| 71 |
+
<reference name="content">
|
| 72 |
+
<block type="adminhtml/cms_block_edit" name="cms_block_edit"></block>
|
| 73 |
+
</reference>
|
| 74 |
+
</adminhtml_cms_block_edit>
|
| 75 |
+
|
| 76 |
+
<adminhtml_cms_wysiwyg_images_index>
|
| 77 |
+
<remove name="footer" />
|
| 78 |
+
<remove name="head" />
|
| 79 |
+
<reference name="left">
|
| 80 |
+
<block name="wysiwyg_images.js" type="adminhtml/cms_wysiwyg_images_content" template="cms/browser/js.phtml" />
|
| 81 |
+
<block name="wysiwyg_images.tree" type="adminhtml/cms_wysiwyg_images_tree" template="cms/browser/tree.phtml" />
|
| 82 |
+
</reference>
|
| 83 |
+
<reference name="content">
|
| 84 |
+
<block name="wysiwyg_images.content" type="adminhtml/cms_wysiwyg_images_content" template="cms/browser/content.phtml">
|
| 85 |
+
<block name="wysiwyg_images.uploader" type="adminhtml/cms_wysiwyg_images_content_uploader" template="cms/browser/content/uploader.phtml" />
|
| 86 |
+
<block name="wysiwyg_images.newfolder" type="adminhtml/cms_wysiwyg_images_content_newfolder" template="cms/browser/content/newfolder.phtml" />
|
| 87 |
+
</block>
|
| 88 |
+
</reference>
|
| 89 |
+
</adminhtml_cms_wysiwyg_images_index>
|
| 90 |
+
|
| 91 |
+
<adminhtml_cms_wysiwyg_images_contents>
|
| 92 |
+
<block name="wysiwyg_images.files" type="adminhtml/cms_wysiwyg_images_content_files" template="cms/browser/content/files.phtml" output="toHtml" />
|
| 93 |
+
</adminhtml_cms_wysiwyg_images_contents>
|
| 94 |
+
|
| 95 |
+
</layout>
|
app/design/adminhtml/default/default/layout/compiler.xml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_compiler_process_index>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="compiler/process" name="compiler_process" template="compiler/process.phtml"></block>
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_compiler_process_index>
|
| 35 |
+
</layout>
|
app/design/adminhtml/default/default/layout/connect.xml
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_extension_custom_edit>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="connect/adminhtml_extension_custom_edit" name="connect_extension_edit"></block>
|
| 33 |
+
</reference>
|
| 34 |
+
<reference name="left">
|
| 35 |
+
<block type="connect/adminhtml_extension_custom_edit_tabs" name="connect_extension_edit_tabs">
|
| 36 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_package" name="tab_package"
|
| 37 |
+
template="connect/extension/custom/package.phtml" />
|
| 38 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_release" name="tab_release"
|
| 39 |
+
template="connect/extension/custom/release.phtml" />
|
| 40 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_authors" name="tab_authors"
|
| 41 |
+
template="connect/extension/custom/authors.phtml" />
|
| 42 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_depends" name="tab_depends"
|
| 43 |
+
template="connect/extension/custom/depends.phtml" />
|
| 44 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_contents" name="tab_contents"
|
| 45 |
+
template="connect/extension/custom/contents.phtml" />
|
| 46 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_local" name="tab_local" />
|
| 47 |
+
|
| 48 |
+
<action method="addTab"><name>package_info</name><block>tab_package</block></action>
|
| 49 |
+
<action method="addTab"><name>release_info</name><block>tab_release</block></action>
|
| 50 |
+
<action method="addTab"><name>authors</name><block>tab_authors</block></action>
|
| 51 |
+
<action method="addTab"><name>dependencies</name><block>tab_depends</block></action>
|
| 52 |
+
<action method="addTab"><name>contents</name><block>tab_contents</block></action>
|
| 53 |
+
<action method="addTab"><name>load_local_package</name><block>tab_local</block></action>
|
| 54 |
+
</block>
|
| 55 |
+
</reference>
|
| 56 |
+
</adminhtml_extension_custom_edit>
|
| 57 |
+
|
| 58 |
+
<adminhtml_extension_custom_loadtab>
|
| 59 |
+
<block type="core/text_list" name="root">
|
| 60 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_load" name="connect_extension_load_local_package_grid"
|
| 61 |
+
template="connect/extension/custom/load.phtml">
|
| 62 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_grid" name="local_package_grid" />
|
| 63 |
+
</block>
|
| 64 |
+
</block>
|
| 65 |
+
</adminhtml_extension_custom_loadtab>
|
| 66 |
+
|
| 67 |
+
<adminhtml_extension_custom_grid>
|
| 68 |
+
<block type="core/text_list" name="root">
|
| 69 |
+
<block type="connect/adminhtml_extension_custom_edit_tab_grid" name="connect_extension_edit_local_package_grid" />
|
| 70 |
+
</block>
|
| 71 |
+
</adminhtml_extension_custom_grid>
|
| 72 |
+
</layout>
|
| 73 |
+
|
app/design/adminhtml/default/default/layout/currencysymbol.xml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<adminhtml_system_currencysymbol_index>
|
| 30 |
+
<reference name="content">
|
| 31 |
+
<block type="currencysymbol/adminhtml_system_currencysymbol" name="mage.system.currencysymbol" template="currencysymbol/grid.phtml"/>
|
| 32 |
+
</reference>
|
| 33 |
+
</adminhtml_system_currencysymbol_index>
|
| 34 |
+
</layout>
|
app/design/adminhtml/default/default/layout/customer.xml
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_customer_edit>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="adminhtml/customer_edit" name="customer_edit"></block>
|
| 33 |
+
</reference>
|
| 34 |
+
<reference name="head">
|
| 35 |
+
<block type="adminhtml/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
|
| 36 |
+
<action method="addJs"><file>mage/adminhtml/product/composite/configure.js</file></action>
|
| 37 |
+
<action method="addJs"><file>varien/configurable.js</file></action>
|
| 38 |
+
</reference>
|
| 39 |
+
<reference name="left">
|
| 40 |
+
<block type="adminhtml/customer_edit_tabs" name="customer_edit_tabs">
|
| 41 |
+
<block type="adminhtml/customer_edit_tab_view" name="customer_edit_tab_view" template="customer/tab/view.phtml">
|
| 42 |
+
<block type="adminhtml/customer_edit_tab_view_sales" name="sales" template="customer/tab/view/sales.phtml" before="-" />
|
| 43 |
+
<block type="adminhtml/customer_edit_tab_view_accordion" name="accordion" />
|
| 44 |
+
</block>
|
| 45 |
+
<action method="addTab"><name>customer_edit_tab_view</name><block>customer_edit_tab_view</block></action>
|
| 46 |
+
</block>
|
| 47 |
+
</reference>
|
| 48 |
+
<reference name="js">
|
| 49 |
+
<block type="adminhtml/template" template="customer/edit/js.phtml" name="customer.edit.js" as="customer_edit_js"></block>
|
| 50 |
+
</reference>
|
| 51 |
+
</adminhtml_customer_edit>
|
| 52 |
+
<adminhtml_customer_group_index>
|
| 53 |
+
<reference name="content">
|
| 54 |
+
<block type="adminhtml/customer_group" name="customer_group"></block>
|
| 55 |
+
</reference>
|
| 56 |
+
</adminhtml_customer_group_index>
|
| 57 |
+
<adminhtml_customer_wishlist>
|
| 58 |
+
<block type="adminhtml/customer_edit_tab_wishlist" name="customer.wishlist.edit.tab" output="toHtml" />
|
| 59 |
+
</adminhtml_customer_wishlist>
|
| 60 |
+
|
| 61 |
+
<adminhtml_customer_orders>
|
| 62 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 63 |
+
<block type="adminhtml/customer_edit_tab_orders" name="adminhtml.customer.edit.tab.orders"/>
|
| 64 |
+
</block>
|
| 65 |
+
</adminhtml_customer_orders>
|
| 66 |
+
|
| 67 |
+
<adminhtml_customer_carts>
|
| 68 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 69 |
+
<block type="adminhtml/customer_edit_tab_carts" name="admin.customer.carts"/>
|
| 70 |
+
</block>
|
| 71 |
+
</adminhtml_customer_carts>
|
| 72 |
+
|
| 73 |
+
<adminhtml_customer_viewcart>
|
| 74 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 75 |
+
<block type="adminhtml/customer_edit_tab_view_cart" name="admin.customer.view.cart"/>
|
| 76 |
+
</block>
|
| 77 |
+
</adminhtml_customer_viewcart>
|
| 78 |
+
|
| 79 |
+
<adminhtml_customer_viewwishlist>
|
| 80 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 81 |
+
<block type="adminhtml/customer_edit_tab_view_wishlist" name="admin.customer.view.wishlist"/>
|
| 82 |
+
</block>
|
| 83 |
+
</adminhtml_customer_viewwishlist>
|
| 84 |
+
|
| 85 |
+
<adminhtml_customer_lastorders>
|
| 86 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 87 |
+
<block type="adminhtml/customer_edit_tab_view_orders" name="admin.customer.lastorders"/>
|
| 88 |
+
</block>
|
| 89 |
+
</adminhtml_customer_lastorders>
|
| 90 |
+
|
| 91 |
+
<adminhtml_customer_productreviews>
|
| 92 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 93 |
+
<block type="adminhtml/customer_edit_tab_reviews" name="admin.customer.reviews"/>
|
| 94 |
+
</block>
|
| 95 |
+
</adminhtml_customer_productreviews>
|
| 96 |
+
|
| 97 |
+
<adminhtml_customer_producttags>
|
| 98 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 99 |
+
<block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
|
| 100 |
+
</block>
|
| 101 |
+
</adminhtml_customer_producttags>
|
| 102 |
+
|
| 103 |
+
<adminhtml_customer_taggrid>
|
| 104 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 105 |
+
<block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
|
| 106 |
+
</block>
|
| 107 |
+
</adminhtml_customer_taggrid>
|
| 108 |
+
|
| 109 |
+
<adminhtml_customer_newsletter>
|
| 110 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 111 |
+
<block type="adminhtml/customer_edit_tab_newsletter_grid" name="admin.customer.newsletter.grid"/>
|
| 112 |
+
</block>
|
| 113 |
+
</adminhtml_customer_newsletter>
|
| 114 |
+
|
| 115 |
+
<adminhtml_customer_grid>
|
| 116 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 117 |
+
<block type="adminhtml/customer_grid" name="admin.customer.grid"/>
|
| 118 |
+
</block>
|
| 119 |
+
</adminhtml_customer_grid>
|
| 120 |
+
|
| 121 |
+
<adminhtml_customer_cart>
|
| 122 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 123 |
+
<block type="adminhtml/customer_edit_tab_cart" name="admin.customer.view.edit.cart" />
|
| 124 |
+
</block>
|
| 125 |
+
</adminhtml_customer_cart>
|
| 126 |
+
</layout>
|
app/design/adminhtml/default/default/layout/dataflow.xml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
|
| 31 |
+
<adminhtml_system_convert_gui_run>
|
| 32 |
+
<remove name="root"/>
|
| 33 |
+
<block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
|
| 34 |
+
<block type="adminhtml/page_head" name="convert_root_head" as="head" template="page/head.phtml">
|
| 35 |
+
<action method="addJs"><script>prototype/prototype.js</script></action>
|
| 36 |
+
<action method="addJs"><script>prototype/validation.js</script></action>
|
| 37 |
+
<action method="addJs"><script>varien/js.js</script></action>
|
| 38 |
+
<action method="addJs"><script>mage/translate.js</script></action>
|
| 39 |
+
<action method="addJs"><script>mage/adminhtml/tools.js</script></action>
|
| 40 |
+
</block>
|
| 41 |
+
<block type="adminhtml/system_convert_profile_run" name="system_convert_profile_run" template="system/convert/profile/process.phtml" output="toHtml"/>
|
| 42 |
+
</block>
|
| 43 |
+
</adminhtml_system_convert_gui_run>
|
| 44 |
+
|
| 45 |
+
<adminhtml_system_convert_profile_run>
|
| 46 |
+
<remove name="root"/>
|
| 47 |
+
<block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
|
| 48 |
+
<block type="adminhtml/page_head" name="convert_root_head" as="head" template="page/head.phtml">
|
| 49 |
+
<action method="addJs"><script>prototype/prototype.js</script></action>
|
| 50 |
+
<action method="addJs"><script>prototype/validation.js</script></action>
|
| 51 |
+
<action method="addJs"><script>varien/js.js</script></action>
|
| 52 |
+
<action method="addJs"><script>mage/translate.js</script></action>
|
| 53 |
+
<action method="addJs"><script>mage/adminhtml/tools.js</script></action>
|
| 54 |
+
</block>
|
| 55 |
+
<block type="adminhtml/system_convert_profile_run" name="system_convert_profile_run" template="system/convert/profile/process.phtml" output="toHtml"/>
|
| 56 |
+
</block>
|
| 57 |
+
</adminhtml_system_convert_profile_run>
|
| 58 |
+
|
| 59 |
+
</layout>
|
app/design/adminhtml/default/default/layout/downloadable.xml
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
|
| 31 |
+
<adminhtml_catalog_product_downloadable>
|
| 32 |
+
<reference name="product_tabs">
|
| 33 |
+
<action method="addTab"><name>downloadable_items</name><block>downloadable/adminhtml_catalog_product_edit_tab_downloadable</block></action>
|
| 34 |
+
</reference>
|
| 35 |
+
</adminhtml_catalog_product_downloadable>
|
| 36 |
+
|
| 37 |
+
<adminhtml_sales_order_view>
|
| 38 |
+
<reference name="order_items">
|
| 39 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_order_view_items_renderer_default</block><template>downloadable/sales/order/view/items/renderer/downloadable.phtml</template></action>
|
| 40 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/name.phtml</template></action>
|
| 41 |
+
</reference>
|
| 42 |
+
</adminhtml_sales_order_view>
|
| 43 |
+
|
| 44 |
+
<adminhtml_sales_order_invoice_new>
|
| 45 |
+
<reference name="order_items">
|
| 46 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml</template></action>
|
| 47 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
|
| 48 |
+
</reference>
|
| 49 |
+
</adminhtml_sales_order_invoice_new>
|
| 50 |
+
|
| 51 |
+
<adminhtml_sales_order_invoice_updateqty>
|
| 52 |
+
<reference name="order_items">
|
| 53 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/create/items/renderer/downloadable.phtml</template></action>
|
| 54 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
|
| 55 |
+
</reference>
|
| 56 |
+
</adminhtml_sales_order_invoice_updateqty>
|
| 57 |
+
|
| 58 |
+
<adminhtml_sales_order_invoice_view>
|
| 59 |
+
<reference name="invoice_items">
|
| 60 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/invoice/view/items/renderer/downloadable.phtml</template></action>
|
| 61 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/invoice/name.phtml</template></action>
|
| 62 |
+
</reference>
|
| 63 |
+
</adminhtml_sales_order_invoice_view>
|
| 64 |
+
|
| 65 |
+
<adminhtml_sales_order_creditmemo_new>
|
| 66 |
+
<reference name="order_items">
|
| 67 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml</template></action>
|
| 68 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
|
| 69 |
+
</reference>
|
| 70 |
+
</adminhtml_sales_order_creditmemo_new>
|
| 71 |
+
|
| 72 |
+
<adminhtml_sales_order_creditmemo_updateqty>
|
| 73 |
+
<reference name="order_items">
|
| 74 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/create/items/renderer/downloadable.phtml</template></action>
|
| 75 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
|
| 76 |
+
</reference>
|
| 77 |
+
</adminhtml_sales_order_creditmemo_updateqty>
|
| 78 |
+
|
| 79 |
+
<adminhtml_sales_order_creditmemo_view>
|
| 80 |
+
<reference name="creditmemo_items">
|
| 81 |
+
<action method="addItemRender"><type>downloadable</type><block>adminhtml/sales_items_renderer_default</block><template>downloadable/sales/order/creditmemo/view/items/renderer/downloadable.phtml</template></action>
|
| 82 |
+
<action method="addColumnRender"><column>downloadable</column><block>downloadable/adminhtml_sales_items_column_downloadable_name</block><template>downloadable/sales/items/column/downloadable/creditmemo/name.phtml</template></action>
|
| 83 |
+
</reference>
|
| 84 |
+
</adminhtml_sales_order_creditmemo_view>
|
| 85 |
+
|
| 86 |
+
<adminhtml_customer_wishlist>
|
| 87 |
+
<reference name="customer.wishlist.edit.tab">
|
| 88 |
+
<action method="addProductConfigurationHelper"><type>downloadable</type><name>downloadable/catalog_product_configuration</name></action>
|
| 89 |
+
</reference>
|
| 90 |
+
</adminhtml_customer_wishlist>
|
| 91 |
+
|
| 92 |
+
<PRODUCT_TYPE_downloadable>
|
| 93 |
+
<reference name="product.composite.fieldset">
|
| 94 |
+
<block type="downloadable/adminhtml_catalog_product_composite_fieldset_downloadable" name="product.composite.fieldset.downloadable" before="product.composite.fieldset.options" template="downloadable/product/composite/fieldset/downloadable.phtml" />
|
| 95 |
+
</reference>
|
| 96 |
+
</PRODUCT_TYPE_downloadable>
|
| 97 |
+
</layout>
|
app/design/adminhtml/default/default/layout/giftmessage.xml
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_sales_order_view>
|
| 31 |
+
<reference name="order_item_extra_info">
|
| 32 |
+
<block type="giftmessage/adminhtml_sales_order_view_giftoptions" name="gift_options_link" template="giftmessage/sales/order/view/giftoptions.phtml">
|
| 33 |
+
<block type="giftmessage/adminhtml_sales_order_view_items" name="gift_options_item_data" template="giftmessage/sales/order/view/items.phtml" />
|
| 34 |
+
</block>
|
| 35 |
+
</reference>
|
| 36 |
+
<reference name="order_tab_info">
|
| 37 |
+
<block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
|
| 38 |
+
<block type="giftmessage/adminhtml_sales_order_view_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
|
| 39 |
+
</block>
|
| 40 |
+
</reference>
|
| 41 |
+
</adminhtml_sales_order_view>
|
| 42 |
+
|
| 43 |
+
<adminhtml_sales_order_create_index>
|
| 44 |
+
<reference name="order_item_extra_info">
|
| 45 |
+
<block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
|
| 46 |
+
<block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
|
| 47 |
+
</block>
|
| 48 |
+
</reference>
|
| 49 |
+
<reference name="items_grid">
|
| 50 |
+
<block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
|
| 51 |
+
<block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
|
| 52 |
+
</block>
|
| 53 |
+
</reference>
|
| 54 |
+
</adminhtml_sales_order_create_index>
|
| 55 |
+
|
| 56 |
+
<adminhtml_sales_order_create_load_block_data>
|
| 57 |
+
<reference name="order_item_extra_info">
|
| 58 |
+
<block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
|
| 59 |
+
<block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
|
| 60 |
+
</block>
|
| 61 |
+
</reference>
|
| 62 |
+
<reference name="items_grid">
|
| 63 |
+
<block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
|
| 64 |
+
<block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
|
| 65 |
+
</block>
|
| 66 |
+
</reference>
|
| 67 |
+
</adminhtml_sales_order_create_load_block_data>
|
| 68 |
+
|
| 69 |
+
<adminhtml_sales_order_create_load_block_items>
|
| 70 |
+
<reference name="order_item_extra_info">
|
| 71 |
+
<block type="giftmessage/adminhtml_sales_order_create_giftoptions" name="gift_options_link" template="giftmessage/sales/order/create/giftoptions.phtml">
|
| 72 |
+
<block type="giftmessage/adminhtml_sales_order_create_items" name="gift_options_item_data" template="giftmessage/sales/order/create/items.phtml" />
|
| 73 |
+
</block>
|
| 74 |
+
</reference>
|
| 75 |
+
<reference name="items_grid">
|
| 76 |
+
<block type="adminhtml/template" name="popup_window" template="giftmessage/popup.phtml">
|
| 77 |
+
<block type="giftmessage/adminhtml_sales_order_create_form" name="gift_options_form" template="giftmessage/giftoptionsform.phtml" />
|
| 78 |
+
</block>
|
| 79 |
+
</reference>
|
| 80 |
+
</adminhtml_sales_order_create_load_block_items>
|
| 81 |
+
</layout>
|
| 82 |
+
|
app/design/adminhtml/default/default/layout/importexport.xml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<adminhtml_import_index>
|
| 30 |
+
<reference name="content">
|
| 31 |
+
<block type="adminhtml/template" template="importexport/import/form/before.phtml" name="import.form.before" alias="form_before"/>
|
| 32 |
+
<block type="importexport/adminhtml_import_edit" name="import.form.container"/>
|
| 33 |
+
<block type="adminhtml/template" template="importexport/import/form/after.phtml" name="import.form.after" alias="form_after"/>
|
| 34 |
+
</reference>
|
| 35 |
+
</adminhtml_import_index>
|
| 36 |
+
<adminhtml_import_validate>
|
| 37 |
+
<block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
|
| 38 |
+
</adminhtml_import_validate>
|
| 39 |
+
<adminhtml_import_start>
|
| 40 |
+
<block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
|
| 41 |
+
</adminhtml_import_start>
|
| 42 |
+
<adminhtml_import_busy>
|
| 43 |
+
<reference name="content">
|
| 44 |
+
<block type="core/template" template="importexport/busy.phtml" name="busy" alias="busy"/>
|
| 45 |
+
</reference>
|
| 46 |
+
</adminhtml_import_busy>
|
| 47 |
+
<adminhtml_export_index>
|
| 48 |
+
<reference name="content">
|
| 49 |
+
<block type="adminhtml/template" template="importexport/export/form/before.phtml" name="export.form.before" alias="form_before"/>
|
| 50 |
+
<block type="importexport/adminhtml_export_edit" name="export.form.container"/>
|
| 51 |
+
<block type="adminhtml/template" template="importexport/export/form/after.phtml" name="export.form.after" alias="form_after"/>
|
| 52 |
+
</reference>
|
| 53 |
+
</adminhtml_export_index>
|
| 54 |
+
<adminhtml_export_getfilter>
|
| 55 |
+
<block type="core/text_list" name="root">
|
| 56 |
+
<block type="importexport/adminhtml_export_filter" name="export.filter"/>
|
| 57 |
+
</block>
|
| 58 |
+
</adminhtml_export_getfilter>
|
| 59 |
+
</layout>
|
app/design/adminhtml/default/default/layout/index.xml
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<default>
|
| 30 |
+
<reference name="notifications">
|
| 31 |
+
<block type="index/adminhtml_notifications" name="index_notifications" template="index/notifications.phtml"></block>
|
| 32 |
+
</reference>
|
| 33 |
+
</default>
|
| 34 |
+
|
| 35 |
+
<adminhtml_process_edit>
|
| 36 |
+
<reference name="content">
|
| 37 |
+
<block type="index/adminhtml_process_edit" name="process_edit"></block>
|
| 38 |
+
</reference>
|
| 39 |
+
<reference name="left">
|
| 40 |
+
<block type="index/adminhtml_process_edit_tabs" name="index_edit_tabs">
|
| 41 |
+
<action method="addTab"><name>main_section</name><block>index/adminhtml_process_edit_tab_main</block></action>
|
| 42 |
+
</block>
|
| 43 |
+
</reference>
|
| 44 |
+
</adminhtml_process_edit>
|
| 45 |
+
|
| 46 |
+
<adminhtml_process_list>
|
| 47 |
+
<reference name="content">
|
| 48 |
+
<block type="index/adminhtml_process" name="process" />
|
| 49 |
+
</reference>
|
| 50 |
+
</adminhtml_process_list>
|
| 51 |
+
</layout>
|
app/design/adminhtml/default/default/layout/lightspeed_syncproducts.xml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<layout>
|
| 3 |
+
<adminhtml_syncproducts_index>
|
| 4 |
+
<reference name="content">
|
| 5 |
+
<block type="lightspeed/syncproducts" name="lightspeed_sync" template="lightspeed/page.phtml"></block>
|
| 6 |
+
</reference>
|
| 7 |
+
</adminhtml_syncproducts_index>
|
| 8 |
+
<adminhtml_syncproducts_categories>
|
| 9 |
+
<reference name="content">
|
| 10 |
+
<block type="lightspeed/syncproducts" name="lightspeed_sync" template="lightspeed/categories.phtml"></block>
|
| 11 |
+
</reference>
|
| 12 |
+
</adminhtml_syncproducts_categories>
|
| 13 |
+
<adminhtml_syncproducts_products>
|
| 14 |
+
<reference name="content">
|
| 15 |
+
<block type="lightspeed/syncproducts" name="lightspeed_sync" template="lightspeed/products.phtml"></block>
|
| 16 |
+
</reference>
|
| 17 |
+
</adminhtml_syncproducts_products>
|
| 18 |
+
<adminhtml_syncproducts_sync>
|
| 19 |
+
<reference name="content">
|
| 20 |
+
<block type="lightspeed/syncproducts" name="lightspeed_sync" template="lightspeed/sync.phtml"></block>
|
| 21 |
+
</reference>
|
| 22 |
+
</adminhtml_syncproducts_sync>
|
| 23 |
+
<adminhtml_synccustomers_index>
|
| 24 |
+
<reference name="content">
|
| 25 |
+
<block type="lightspeed/synccustomers" name="lightspeed_sync" template="lightspeed/customers/check.phtml"></block>
|
| 26 |
+
</reference>
|
| 27 |
+
</adminhtml_synccustomers_index>
|
| 28 |
+
<adminhtml_synccustomers_sync>
|
| 29 |
+
<reference name="content">
|
| 30 |
+
<block type="lightspeed/synccustomers" name="lightspeed_sync" template="lightspeed/customers/sync.phtml"></block>
|
| 31 |
+
</reference>
|
| 32 |
+
</adminhtml_synccustomers_sync>
|
| 33 |
+
<adminhtml_monitor_index>
|
| 34 |
+
<reference name="content">
|
| 35 |
+
<block type="lightspeed/monitor" name="lightspeed_sync" template="lightspeed/monitor/monitor.phtml"></block>
|
| 36 |
+
</reference>
|
| 37 |
+
</adminhtml_monitor_index>
|
| 38 |
+
</layout>
|
app/design/adminhtml/default/default/layout/main.xml
ADDED
|
@@ -0,0 +1,292 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
Supported layout update handles (action):
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
Supported layout update handles (special):
|
| 33 |
+
- adminhtml
|
| 34 |
+
- default
|
| 35 |
+
- admin_noroute
|
| 36 |
+
- admin_denied
|
| 37 |
+
- preview
|
| 38 |
+
- systemPreview
|
| 39 |
+
-->
|
| 40 |
+
|
| 41 |
+
<layout>
|
| 42 |
+
|
| 43 |
+
<!--
|
| 44 |
+
Form key for inserting into various forms
|
| 45 |
+
-->
|
| 46 |
+
<formkey>
|
| 47 |
+
<block type="core/template" name="formkey" as="formkey" template="formkey.phtml"/>
|
| 48 |
+
</formkey>
|
| 49 |
+
|
| 50 |
+
<!--
|
| 51 |
+
Default layout, loads most of the pages
|
| 52 |
+
-->
|
| 53 |
+
|
| 54 |
+
<default>
|
| 55 |
+
<block type="adminhtml/page" name="root" output="toHtml" template="page.phtml">
|
| 56 |
+
<block type="adminhtml/page_head" name="head" as="head" template="page/head.phtml">
|
| 57 |
+
<action method="setTitle" translate="title"><title>Magento Admin</title></action>
|
| 58 |
+
<action method="addJs"><script>prototype/prototype.js</script></action>
|
| 59 |
+
<action method="addItem"><type>js</type><name>extjs/fix-defer-before.js</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 60 |
+
<action method="addJs"><script>prototype/window.js</script></action>
|
| 61 |
+
<action method="addJs"><script>scriptaculous/builder.js</script></action>
|
| 62 |
+
<action method="addJs"><script>scriptaculous/effects.js</script></action>
|
| 63 |
+
<action method="addJs"><script>scriptaculous/dragdrop.js</script></action>
|
| 64 |
+
<action method="addJs"><script>scriptaculous/controls.js</script></action>
|
| 65 |
+
<action method="addJs"><script>scriptaculous/slider.js</script></action>
|
| 66 |
+
<action method="addJs"><script>lib/ccard.js</script></action>
|
| 67 |
+
<action method="addJs"><script>prototype/validation.js</script></action>
|
| 68 |
+
<action method="addJs"><script>varien/js.js</script></action>
|
| 69 |
+
<action method="addJs"><script>mage/translate.js</script></action>
|
| 70 |
+
|
| 71 |
+
<action method="addJs"><script>mage/adminhtml/hash.js</script></action>
|
| 72 |
+
<action method="addJs"><script>mage/adminhtml/events.js</script></action>
|
| 73 |
+
<action method="addJs"><script>mage/adminhtml/loader.js</script></action>
|
| 74 |
+
<action method="addJs"><script>mage/adminhtml/grid.js</script></action>
|
| 75 |
+
<action method="addJs"><script>mage/adminhtml/tabs.js</script></action>
|
| 76 |
+
<action method="addJs"><script>mage/adminhtml/form.js</script></action>
|
| 77 |
+
<action method="addJs"><script>mage/adminhtml/accordion.js</script></action>
|
| 78 |
+
<action method="addJs"><script>mage/adminhtml/tools.js</script></action>
|
| 79 |
+
<action method="addJs"><script>mage/adminhtml/uploader.js</script></action>
|
| 80 |
+
<action method="addJs"><script>mage/adminhtml/product.js</script></action>
|
| 81 |
+
|
| 82 |
+
<action method="addCss"><name>reset.css</name></action>
|
| 83 |
+
<action method="addCss"><name>boxes.css</name></action>
|
| 84 |
+
<action method="addCss"><name>custom.css</name></action>
|
| 85 |
+
|
| 86 |
+
<action method="addItem"><type>skin_css</type><name>iestyles.css</name><params/><if>lt IE 8</if></action>
|
| 87 |
+
<action method="addItem"><type>skin_css</type><name>below_ie7.css</name><params/><if>lt IE 7</if></action>
|
| 88 |
+
<action method="addItem"><type>skin_css</type><name>ie7.css</name><params/><if>IE 7</if></action>
|
| 89 |
+
|
| 90 |
+
<action method="addCss"><name>print.css</name><params>media="print"</params></action>
|
| 91 |
+
|
| 92 |
+
<action method="addItem"><type>js</type><name>lib/ds-sleight.js</name><params>defer</params><if>lt IE 7</if></action>
|
| 93 |
+
<action method="addItem"><type>js</type><name>varien/iehover-fix.js</name><params/><if>lt IE 7</if></action>
|
| 94 |
+
|
| 95 |
+
<action method="addItem"><type>skin_css</type><name>menu.css</name><params>media="screen, projection"</params></action>
|
| 96 |
+
|
| 97 |
+
<action method="addItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name><params/><!--<if/><condition>can_load_calendar_js</condition>--></action>
|
| 98 |
+
<action method="addItem"><type>js</type><name>calendar/calendar.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
|
| 99 |
+
<action method="addItem"><type>js</type><name>calendar/calendar-setup.js</name><!--<params/><if/><condition>can_load_calendar_js</condition>--></action>
|
| 100 |
+
|
| 101 |
+
<action method="addItem"><type>js</type><name>extjs/ext-tree.js</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 102 |
+
<action method="addItem"><type>js</type><name>extjs/fix-defer.js</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 103 |
+
<action method="addItem"><type>js</type><name>extjs/ext-tree-checkbox.js</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 104 |
+
<action method="addItem"><type>js_css</type><name>extjs/resources/css/ext-all.css</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 105 |
+
<action method="addItem"><type>js_css</type><name>extjs/resources/css/ytheme-magento.css</name><params/><if/><condition>can_load_ext_js</condition></action>
|
| 106 |
+
|
| 107 |
+
<action method="addItem"><type>js</type><name>mage/adminhtml/rules.js</name><params/><if/><condition>can_load_rules_js</condition></action>
|
| 108 |
+
|
| 109 |
+
<action method="addItem"><type>js</type><name>mage/adminhtml/wysiwyg/tiny_mce/setup.js</name><params/><if/><condition>can_load_tiny_mce</condition></action>
|
| 110 |
+
|
| 111 |
+
<block type="core/html_calendar" name="head.calendar" as="calendar" template="page/js/calendar.phtml"/>
|
| 112 |
+
</block>
|
| 113 |
+
|
| 114 |
+
<block type="adminhtml/page_notices" name="global_notices" as="global_notices" template="page/notices.phtml" />
|
| 115 |
+
<block type="adminhtml/page_header" name="header" as="header"></block>
|
| 116 |
+
<block type="adminhtml/page_menu" name="menu" as="menu"></block>
|
| 117 |
+
<block type="core/text_list" name="notifications" as="notifications">
|
| 118 |
+
<block type="adminhtml/notification_baseurl" name="notification_baseurl" as="notification_baseurl" template="notification/baseurl.phtml"></block>
|
| 119 |
+
<block type="adminhtml/cache_notifications" name="cache_notifications" template="system/cache/notifications.phtml"></block>
|
| 120 |
+
<block type="adminhtml/notification_survey" name="notification_survey" template="notification/survey.phtml"/>
|
| 121 |
+
<block type="adminhtml/notification_security" name="notification_security" as="notification_security" template="notification/security.phtml"></block>
|
| 122 |
+
</block>
|
| 123 |
+
<block type="adminhtml/widget_breadcrumbs" name="breadcrumbs" as="breadcrumbs"></block>
|
| 124 |
+
|
| 125 |
+
<!--<update handle="formkey"/> this won't work, see the try/catch and a jammed exception in Mage_Core_Model_Layout::createBlock() -->
|
| 126 |
+
<block type="core/template" name="formkey" as="formkey" template="formkey.phtml"/>
|
| 127 |
+
|
| 128 |
+
<!-- deprecated since 1.7.0.0 see Mage_Page_Block_Js_Translate -->
|
| 129 |
+
<block type="page/js_translate" name="js_translate" as="js_translate" template="page/js/translate.phtml"/>
|
| 130 |
+
<block type="core/text_list" name="left" as="left"/>
|
| 131 |
+
<block type="core/text_list" name="content" as="content"/>
|
| 132 |
+
<block type="core/messages" name="messages" as="messages"/>
|
| 133 |
+
<block type="core/text_list" name="js" as="js"/>
|
| 134 |
+
<block type="adminhtml/page_footer" name="footer" as="footer">
|
| 135 |
+
<action method="setBugreportUrl"><url>http://www.magentocommerce.com/bug-tracking</url></action>
|
| 136 |
+
<action method="setConnectWithMagentoUrl"><url>http://magento.com/resources/technical</url></action>
|
| 137 |
+
</block>
|
| 138 |
+
<block type="core/profiler" name="profiler" as="profiler"/>
|
| 139 |
+
<block type="core/text_list" name="before_body_end" as="before_body_end"/>
|
| 140 |
+
|
| 141 |
+
</block>
|
| 142 |
+
</default>
|
| 143 |
+
|
| 144 |
+
<!--
|
| 145 |
+
Layout for pop up windows
|
| 146 |
+
-->
|
| 147 |
+
<popup>
|
| 148 |
+
<update handle="default"/>
|
| 149 |
+
<remove name="header"/>
|
| 150 |
+
<remove name="menu"/>
|
| 151 |
+
<reference name="root">
|
| 152 |
+
<action method="setTemplate"><template>popup.phtml</template></action>
|
| 153 |
+
</reference>
|
| 154 |
+
</popup>
|
| 155 |
+
|
| 156 |
+
<!--
|
| 157 |
+
Layout for overlay pop up windows
|
| 158 |
+
-->
|
| 159 |
+
<overlay_popup>
|
| 160 |
+
<update handle="popup"/>
|
| 161 |
+
<reference name="root">
|
| 162 |
+
<action method="setTemplate"><template>overlay_popup.phtml</template></action>
|
| 163 |
+
</reference>
|
| 164 |
+
</overlay_popup>
|
| 165 |
+
|
| 166 |
+
<!--
|
| 167 |
+
Layout for editor element
|
| 168 |
+
-->
|
| 169 |
+
<editor>
|
| 170 |
+
<reference name="head">
|
| 171 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 172 |
+
<action method="addJs"><script>mage/adminhtml/variables.js</script></action>
|
| 173 |
+
<action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
|
| 174 |
+
<action method="addJs"><script>lib/flex.js</script></action>
|
| 175 |
+
<action method="addJs"><script>lib/FABridge.js</script></action>
|
| 176 |
+
<action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
|
| 177 |
+
<action method="addJs"><script>mage/adminhtml/browser.js</script></action>
|
| 178 |
+
<action method="addJs"><script>prototype/window.js</script></action>
|
| 179 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
| 180 |
+
<action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
|
| 181 |
+
</reference>
|
| 182 |
+
</editor>
|
| 183 |
+
|
| 184 |
+
<!--
|
| 185 |
+
No page found
|
| 186 |
+
-->
|
| 187 |
+
|
| 188 |
+
<adminhtml_noroute>
|
| 189 |
+
<reference name="content">
|
| 190 |
+
<block type="core/text" name="content.noRoute">
|
| 191 |
+
<action method="setText" translate="text" module="adminhtml"><text><![CDATA[<h1 class="page-heading">404 Error</h1><p>Page not found.</p>]]></text></action>
|
| 192 |
+
</block>
|
| 193 |
+
</reference>
|
| 194 |
+
</adminhtml_noroute>
|
| 195 |
+
|
| 196 |
+
<!--
|
| 197 |
+
Access denied
|
| 198 |
+
-->
|
| 199 |
+
|
| 200 |
+
<adminhtml_denied>
|
| 201 |
+
<reference name="content">
|
| 202 |
+
<block type="adminhtml/denied" name="content.denied" template="access_denied.phtml"/>
|
| 203 |
+
</reference>
|
| 204 |
+
</adminhtml_denied>
|
| 205 |
+
|
| 206 |
+
<!--
|
| 207 |
+
Base preview layout (?)
|
| 208 |
+
-->
|
| 209 |
+
|
| 210 |
+
<preview>
|
| 211 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
|
| 212 |
+
<block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
|
| 213 |
+
</block>
|
| 214 |
+
</preview>
|
| 215 |
+
|
| 216 |
+
<newsletter_template_preview>
|
| 217 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
|
| 218 |
+
<block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
|
| 219 |
+
</block>
|
| 220 |
+
</newsletter_template_preview>
|
| 221 |
+
|
| 222 |
+
<newsletter_template_preview_switcher>
|
| 223 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview/iframeswitcher.phtml">
|
| 224 |
+
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" />
|
| 225 |
+
<block type="adminhtml/newsletter_template_preview_form" name="preview_form" />
|
| 226 |
+
</block>
|
| 227 |
+
</newsletter_template_preview_switcher>
|
| 228 |
+
|
| 229 |
+
<newsletter_queue_preview>
|
| 230 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/queue/preview.phtml">
|
| 231 |
+
<block type="adminhtml/newsletter_queue_preview" name="content" as="content"></block>
|
| 232 |
+
</block>
|
| 233 |
+
</newsletter_queue_preview>
|
| 234 |
+
|
| 235 |
+
<!--
|
| 236 |
+
Base customer alerts preview layout (?)
|
| 237 |
+
-->
|
| 238 |
+
|
| 239 |
+
<alert_preview>
|
| 240 |
+
<block type="core/template" name="root" output="toHtml" template="alert/template/preview.phtml">
|
| 241 |
+
<block type="adminhtml/alert_template_preview" name="content" as="content"></block>
|
| 242 |
+
</block>
|
| 243 |
+
</alert_preview>
|
| 244 |
+
<!--
|
| 245 |
+
Base preview layout
|
| 246 |
+
-->
|
| 247 |
+
|
| 248 |
+
<systemPreview>
|
| 249 |
+
<block type="core/template" name="root" output="toHtml" template="system/email/template/preview.phtml">
|
| 250 |
+
<block type="adminhtml/system_email_template_preview" name="content" as="content"></block>
|
| 251 |
+
</block>
|
| 252 |
+
</systemPreview>
|
| 253 |
+
|
| 254 |
+
<adminhtml_dashboard_customersmost>
|
| 255 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 256 |
+
<block type="adminhtml/dashboard_tab_customers_most" name="adminhtml.dashboard.tab.customers.most"/>
|
| 257 |
+
</block>
|
| 258 |
+
</adminhtml_dashboard_customersmost>
|
| 259 |
+
|
| 260 |
+
<adminhtml_dashboard_customersnewest>
|
| 261 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 262 |
+
<block type="adminhtml/dashboard_tab_customers_newest" name="adminhtml.dashboard.tab.customers.newest"/>
|
| 263 |
+
</block>
|
| 264 |
+
</adminhtml_dashboard_customersnewest>
|
| 265 |
+
|
| 266 |
+
<adminhtml_dashboard_productsviewed>
|
| 267 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 268 |
+
<block type="adminhtml/dashboard_tab_products_viewed" name="adminhtml.dashboard.tab.products.viewed"/>
|
| 269 |
+
</block>
|
| 270 |
+
</adminhtml_dashboard_productsviewed>
|
| 271 |
+
|
| 272 |
+
<adminhtml_index_login>
|
| 273 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 274 |
+
<block type="adminhtml/template" name="content" template="login.phtml">
|
| 275 |
+
<block type="core/text_list" name="form.additional.info" />
|
| 276 |
+
</block>
|
| 277 |
+
</block>
|
| 278 |
+
</adminhtml_index_login>
|
| 279 |
+
|
| 280 |
+
<adminhtml_index_forgotpassword>
|
| 281 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 282 |
+
<block type="adminhtml/template" name="content" template="forgotpassword.phtml">
|
| 283 |
+
<block type="core/text_list" name="form.additional.info" />
|
| 284 |
+
</block>
|
| 285 |
+
</block>
|
| 286 |
+
</adminhtml_index_forgotpassword>
|
| 287 |
+
<!--
|
| 288 |
+
Empty hanle for ajax response etc.
|
| 289 |
+
-->
|
| 290 |
+
<empty>
|
| 291 |
+
</empty>
|
| 292 |
+
</layout>
|
app/design/adminhtml/default/default/layout/moneybookers.xml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* @category design
|
| 17 |
+
* @package default_default
|
| 18 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
| 19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 20 |
+
*/
|
| 21 |
+
-->
|
| 22 |
+
<layout>
|
| 23 |
+
<adminhtml_system_config_edit>
|
| 24 |
+
<reference name="content">
|
| 25 |
+
<block type="moneybookers/jsinit" name="moneybookers_jsinit" template="moneybookers/jsinit.phtml"></block>
|
| 26 |
+
</reference>
|
| 27 |
+
</adminhtml_system_config_edit>
|
| 28 |
+
</layout>
|
app/design/adminhtml/default/default/layout/newsletter.xml
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_newsletter_template_edit>
|
| 31 |
+
<update handle="editor"/>
|
| 32 |
+
<reference name="content">
|
| 33 |
+
<block type="adminhtml/newsletter_template_edit" name="template_edit" template="newsletter/template/edit.phtml" />
|
| 34 |
+
</reference>
|
| 35 |
+
</adminhtml_newsletter_template_edit>
|
| 36 |
+
|
| 37 |
+
<adminhtml_newsletter_queue_edit>
|
| 38 |
+
<update handle="editor"/>
|
| 39 |
+
<reference name="content">
|
| 40 |
+
<block type="adminhtml/newsletter_queue_edit" name="queue_edit" template="newsletter/queue/edit.phtml" />
|
| 41 |
+
</reference>
|
| 42 |
+
</adminhtml_newsletter_queue_edit>
|
| 43 |
+
|
| 44 |
+
<adminhtml_newsletter_queue_preview>
|
| 45 |
+
<reference name="root">
|
| 46 |
+
<action method="setTemplate"><template>newsletter/preview/iframeswitcher.phtml</template></action>
|
| 47 |
+
<block type="adminhtml/newsletter_queue_preview_form" name="preview_form" />
|
| 48 |
+
<block type="adminhtml/store_switcher" name="store_switcher" template="newsletter/preview/store.phtml" />
|
| 49 |
+
</reference>
|
| 50 |
+
</adminhtml_newsletter_queue_preview>
|
| 51 |
+
|
| 52 |
+
<adminhtml_newsletter_template_preview>
|
| 53 |
+
<reference name="root">
|
| 54 |
+
<action method="setTemplate"><template>newsletter/preview/iframeswitcher.phtml</template></action>
|
| 55 |
+
<block type="adminhtml/newsletter_template_preview_form" name="preview_form" />
|
| 56 |
+
<block type="adminhtml/store_switcher" name="store_switcher" template="newsletter/preview/store.phtml" />
|
| 57 |
+
</reference>
|
| 58 |
+
</adminhtml_newsletter_template_preview>
|
| 59 |
+
|
| 60 |
+
<newsletter_queue_preview>
|
| 61 |
+
<block type="adminhtml/newsletter_queue_preview" name="preview_template" />
|
| 62 |
+
</newsletter_queue_preview>
|
| 63 |
+
|
| 64 |
+
<newsletter_template_preview>
|
| 65 |
+
<block type="adminhtml/newsletter_template_preview" name="preview_template" />
|
| 66 |
+
</newsletter_template_preview>
|
| 67 |
+
</layout>
|
app/design/adminhtml/default/default/layout/oauth.xml
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<!-- Consumers -->
|
| 30 |
+
<adminhtml_oauth_consumer_index>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="oauth/adminhtml_oauth_consumer" name="oauth_consumer"/>
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_oauth_consumer_index>
|
| 35 |
+
|
| 36 |
+
<adminhtml_oauth_consumer_grid>
|
| 37 |
+
<remove name="root"/>
|
| 38 |
+
<block type="oauth/adminhtml_oauth_consumer_grid" name="oauth_consumer.grid" output="toHtml"/>
|
| 39 |
+
</adminhtml_oauth_consumer_grid>
|
| 40 |
+
|
| 41 |
+
<adminhtml_oauth_consumer_new>
|
| 42 |
+
<reference name="content">
|
| 43 |
+
<block type="oauth/adminhtml_oauth_consumer_edit" name="oauth_consumer.edit">
|
| 44 |
+
<block type="oauth/adminhtml_oauth_consumer_edit_form" name="form"/>
|
| 45 |
+
</block>
|
| 46 |
+
</reference>
|
| 47 |
+
</adminhtml_oauth_consumer_new>
|
| 48 |
+
|
| 49 |
+
<adminhtml_oauth_consumer_edit>
|
| 50 |
+
<reference name="content">
|
| 51 |
+
<block type="oauth/adminhtml_oauth_consumer_edit" name="oauth_consumer.edit">
|
| 52 |
+
<block type="oauth/adminhtml_oauth_consumer_edit_form" name="form"/>
|
| 53 |
+
</block>
|
| 54 |
+
</reference>
|
| 55 |
+
</adminhtml_oauth_consumer_edit>
|
| 56 |
+
<!-- EOF Consumers -->
|
| 57 |
+
|
| 58 |
+
<!-- My Applications -->
|
| 59 |
+
<adminhtml_oauth_admin_token_index>
|
| 60 |
+
<reference name="content">
|
| 61 |
+
<block type="oauth/adminhtml_oauth_admin_token" name="oauth_admin_token"/>
|
| 62 |
+
</reference>
|
| 63 |
+
</adminhtml_oauth_admin_token_index>
|
| 64 |
+
|
| 65 |
+
<adminhtml_oauth_admin_token_grid>
|
| 66 |
+
<remove name="root"/>
|
| 67 |
+
<block type="oauth/adminhtml_oauth_admin_token_grid" name="oauth_admin_token.grid" output="toHtml"/>
|
| 68 |
+
</adminhtml_oauth_admin_token_grid>
|
| 69 |
+
<!-- EOF My Applications -->
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
<oauth_root_handle>
|
| 74 |
+
<reference name="root">
|
| 75 |
+
<action method="setTemplate">
|
| 76 |
+
<template>empty.phtml</template>
|
| 77 |
+
</action>
|
| 78 |
+
</reference>
|
| 79 |
+
<reference name="head">
|
| 80 |
+
<action method="removeItem"><type>js</type><name>scriptaculous/controls.js</name></action>
|
| 81 |
+
<action method="removeItem"><type>js</type><name>prototype/window.js</name></action>
|
| 82 |
+
<action method="removeItem"><type>js</type><name>scriptaculous/builder.js</name></action>
|
| 83 |
+
<action method="removeItem"><type>js</type><name>scriptaculous/dragdrop.js</name></action>
|
| 84 |
+
<action method="removeItem"><type>js</type><name>scriptaculous/controls.js</name></action>
|
| 85 |
+
<action method="removeItem"><type>js</type><name>scriptaculous/slider.js</name></action>
|
| 86 |
+
<action method="removeItem"><type>js</type><name>lib/ccard.js</name></action>
|
| 87 |
+
<action method="removeItem"><type>js</type><name>varien/js.js</name></action>
|
| 88 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/hash.js</name></action>
|
| 89 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/events.js</name></action>
|
| 90 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/loader.js</name></action>
|
| 91 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/grid.js</name></action>
|
| 92 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/tabs.js</name></action>
|
| 93 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/accordion.js</name></action>
|
| 94 |
+
<!-- <action method="removeItem"><type>js</type><name>mage/adminhtml/tools.js</name></action>-->
|
| 95 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/uploader.js</name></action>
|
| 96 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/product.js</name></action>
|
| 97 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/rules.js</name></action>
|
| 98 |
+
<action method="removeItem"><type>js</type><name>mage/adminhtml/wysiwyg/tiny_mce/setup.js</name></action>
|
| 99 |
+
<action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name></action>
|
| 100 |
+
<action method="removeItem"><type>js</type><name>varien/iehover-fix.js</name></action>
|
| 101 |
+
|
| 102 |
+
<action method="removeItem"><type>css</type><name>print.css</name></action>
|
| 103 |
+
<action method="removeItem"><type>js_css</type><name>calendar/calendar-win2k-1.css</name></action>
|
| 104 |
+
<action method="removeItem"><type>js_css</type><name>extjs/resources/css/ext-all.css</name></action>
|
| 105 |
+
<action method="removeItem"><type>js_css</type><name>extjs/resources/css/ytheme-magento.css</name></action>
|
| 106 |
+
<action method="removeItem"><type>skin_css</type><name>menu.css</name></action>
|
| 107 |
+
|
| 108 |
+
<action method="removeItem"><type>js</type><name>calendar/calendar.js</name></action>
|
| 109 |
+
<action method="removeItem"><type>js</type><name>calendar/calendar-setup.js</name></action>
|
| 110 |
+
<action method="removeItem"><type>js</type><name>extjs/fix-defer-before.js</name></action>
|
| 111 |
+
<action method="removeItem"><type>js</type><name>extjs/ext-tree.js</name></action>
|
| 112 |
+
<action method="removeItem"><type>js</type><name>extjs/fix-defer.js</name></action>
|
| 113 |
+
<action method="removeItem"><type>js</type><name>extjs/ext-tree-checkbox.js</name></action>
|
| 114 |
+
</reference>
|
| 115 |
+
</oauth_root_handle>
|
| 116 |
+
|
| 117 |
+
<oauth_root_handle_simple>
|
| 118 |
+
<remove name="js_cookie" />
|
| 119 |
+
<block type="adminhtml/page" name="root" output="toHtml" template="empty.phtml">
|
| 120 |
+
<block type="adminhtml/page_head" name="head" as="head" template="oauth/authorize/head-simple.phtml">
|
| 121 |
+
<action method="addCss"><name>oauth-simple.css</name></action>
|
| 122 |
+
</block>
|
| 123 |
+
<block type="core/text_list" name="content"/>
|
| 124 |
+
</block>
|
| 125 |
+
</oauth_root_handle_simple>
|
| 126 |
+
|
| 127 |
+
<!-- Authorize -->
|
| 128 |
+
<!--Handle for simple pages-->
|
| 129 |
+
<adminhtml_oauth_authorize_index translate="label">
|
| 130 |
+
<update handle="oauth_root_handle"/>
|
| 131 |
+
<label>OAuth authorization for admin</label>
|
| 132 |
+
<reference name="content">
|
| 133 |
+
<block type="oauth/adminhtml_oauth_authorize" name="oauth.authorize.form" template="oauth/authorize/form/login.phtml"/>
|
| 134 |
+
<block type="oauth/adminhtml_oauth_authorize_button" name="oauth.authorize.button" template="oauth/authorize/button.phtml" />
|
| 135 |
+
</reference>
|
| 136 |
+
</adminhtml_oauth_authorize_index>
|
| 137 |
+
|
| 138 |
+
<adminhtml_oauth_authorize_simple translate="label">
|
| 139 |
+
<update handle="oauth_root_handle_simple"/>
|
| 140 |
+
<label>OAuth authorization simple for admin</label>
|
| 141 |
+
<reference name="content">
|
| 142 |
+
<block type="oauth/adminhtml_oauth_authorize" name="oauth.authorize.form" template="oauth/authorize/form/login-simple.phtml"/>
|
| 143 |
+
<block type="oauth/adminhtml_oauth_authorize_button" name="oauth.authorize.button" template="oauth/authorize/button-simple.phtml" />
|
| 144 |
+
</reference>
|
| 145 |
+
</adminhtml_oauth_authorize_simple>
|
| 146 |
+
<!-- EOF Authorize -->
|
| 147 |
+
|
| 148 |
+
<!-- Confirm Authorization -->
|
| 149 |
+
<adminhtml_oauth_authorize_confirm translate="label">
|
| 150 |
+
<update handle="oauth_root_handle"/>
|
| 151 |
+
<label>Confirm token authorization for admin</label>
|
| 152 |
+
<reference name="content">
|
| 153 |
+
<block type="core/template" name="oauth.authorize.confirm" template="oauth/authorize/confirm.phtml" />
|
| 154 |
+
</reference>
|
| 155 |
+
</adminhtml_oauth_authorize_confirm>
|
| 156 |
+
|
| 157 |
+
<adminhtml_oauth_authorize_confirmsimple translate="label">
|
| 158 |
+
<update handle="oauth_root_handle_simple"/>
|
| 159 |
+
<label>Confirm token authorization Pop Up for admin</label>
|
| 160 |
+
<reference name="content">
|
| 161 |
+
<block type="core/template" name="oauth.authorize.confirm" template="oauth/authorize/confirm-simple.phtml" />
|
| 162 |
+
</reference>
|
| 163 |
+
</adminhtml_oauth_authorize_confirmsimple>
|
| 164 |
+
<!-- EOF Confirm Authorization -->
|
| 165 |
+
|
| 166 |
+
<!-- Reject Authorization -->
|
| 167 |
+
<adminhtml_oauth_authorize_reject translate="label">
|
| 168 |
+
<update handle="oauth_root_handle"/>
|
| 169 |
+
<label>Reject token authorization for admin</label>
|
| 170 |
+
<reference name="content">
|
| 171 |
+
<block type="core/template" name="oauth.authorize.reject" template="oauth/authorize/reject.phtml" />
|
| 172 |
+
</reference>
|
| 173 |
+
</adminhtml_oauth_authorize_reject>
|
| 174 |
+
|
| 175 |
+
<adminhtml_oauth_authorize_rejectsimple translate="label">
|
| 176 |
+
<update handle="oauth_root_handle_simple"/>
|
| 177 |
+
<label>Reject token authorization Pop Up for admin</label>
|
| 178 |
+
<reference name="content">
|
| 179 |
+
<block type="core/template" name="oauth.authorize.reject" template="oauth/authorize/reject-simple.phtml" />
|
| 180 |
+
</reference>
|
| 181 |
+
</adminhtml_oauth_authorize_rejectsimple>
|
| 182 |
+
<!-- EOF Reject Authorization -->
|
| 183 |
+
|
| 184 |
+
<adminhtml_oauth_authorizedtokens_index>
|
| 185 |
+
<reference name="content">
|
| 186 |
+
<block type="oauth/adminhtml_oauth_authorizedTokens" name="oauth_authorizedTokens"/>
|
| 187 |
+
</reference>
|
| 188 |
+
</adminhtml_oauth_authorizedtokens_index>
|
| 189 |
+
|
| 190 |
+
<adminhtml_oauth_authorizedtokens_grid>
|
| 191 |
+
<remove name="root"/>
|
| 192 |
+
<block type="oauth/adminhtml_oauth_authorizedTokens_grid" name="oauth_authorizedTokens.grid" output="toHtml"/>
|
| 193 |
+
</adminhtml_oauth_authorizedtokens_grid>
|
| 194 |
+
</layout>
|
app/design/adminhtml/default/default/layout/pagecache.xml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_cache_index>
|
| 31 |
+
<reference name="cache.additional">
|
| 32 |
+
<block type="pagecache/adminhtml_cache_additional" name="page.cache.additional" template = "pagecache/cache/additional.phtml" />
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_cache_index>
|
| 35 |
+
</layout>
|
app/design/adminhtml/default/default/layout/promo.xml
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<!-- Catalog Price Rule -->
|
| 31 |
+
<adminhtml_promo_catalog_index>
|
| 32 |
+
<reference name="content">
|
| 33 |
+
<block type="adminhtml/promo_catalog" name="promo_catalog"/>
|
| 34 |
+
</reference>
|
| 35 |
+
</adminhtml_promo_catalog_index>
|
| 36 |
+
<adminhtml_promo_catalog_edit>
|
| 37 |
+
<reference name="head">
|
| 38 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 39 |
+
<action method="setCanLoadRulesJs"><flag>1</flag></action>
|
| 40 |
+
</reference>
|
| 41 |
+
<reference name="left">
|
| 42 |
+
<block type="adminhtml/promo_catalog_edit_tabs" name="promo_catalog_edit_tabs">
|
| 43 |
+
<block type="adminhtml/promo_catalog_edit_tab_main" name="promo_catalog_edit_tab_main"/>
|
| 44 |
+
<block type="adminhtml/promo_catalog_edit_tab_conditions" name="promo_catalog_edit_tab_conditions"/>
|
| 45 |
+
<block type="adminhtml/promo_catalog_edit_tab_actions" name="promo_catalog_edit_tab_actions"/>
|
| 46 |
+
<action method="addTab"><name>main_section</name><block>promo_catalog_edit_tab_main</block></action>
|
| 47 |
+
<action method="addTab"><name>conditions_section</name><block>promo_catalog_edit_tab_conditions</block></action>
|
| 48 |
+
<action method="addTab"><name>actions_section</name><block>promo_catalog_edit_tab_actions</block></action>
|
| 49 |
+
</block>
|
| 50 |
+
</reference>
|
| 51 |
+
<reference name="content">
|
| 52 |
+
<block type="adminhtml/promo_catalog_edit" name="promo_catalog_edit"/>
|
| 53 |
+
</reference>
|
| 54 |
+
<reference name="js">
|
| 55 |
+
<block type="adminhtml/promo_catalog_edit_js" template="promo/js.phtml" />
|
| 56 |
+
</reference>
|
| 57 |
+
</adminhtml_promo_catalog_edit>
|
| 58 |
+
|
| 59 |
+
<!-- Shopping Cart Price Rule -->
|
| 60 |
+
<adminhtml_promo_quote_index>
|
| 61 |
+
<reference name="content">
|
| 62 |
+
<block type="adminhtml/promo_quote" name="promo_quote"></block>
|
| 63 |
+
</reference>
|
| 64 |
+
</adminhtml_promo_quote_index>
|
| 65 |
+
<adminhtml_promo_quote_edit>
|
| 66 |
+
<reference name="head">
|
| 67 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 68 |
+
<action method="setCanLoadRulesJs"><flag>1</flag></action>
|
| 69 |
+
</reference>
|
| 70 |
+
<reference name="left">
|
| 71 |
+
<block type="adminhtml/promo_quote_edit_tabs" name="promo_quote_edit_tabs">
|
| 72 |
+
<block type="adminhtml/promo_quote_edit_tab_main" name="promo_quote_edit_tab_main" />
|
| 73 |
+
<block type="adminhtml/promo_quote_edit_tab_conditions" name="promo_quote_edit_tab_conditions"/>
|
| 74 |
+
<block type="adminhtml/promo_quote_edit_tab_actions" name="promo_quote_edit_tab_actions"/>
|
| 75 |
+
<block type="adminhtml/promo_quote_edit_tab_labels" name="promo_quote_edit_tab_labels"/>
|
| 76 |
+
<block type="adminhtml/promo_quote_edit_tab_coupons" name="promo_quote_edit_tab_coupons">
|
| 77 |
+
<block type="adminhtml/promo_quote_edit_tab_coupons_form" name="promo_quote_edit_tab_coupons_form"/>
|
| 78 |
+
<block type="adminhtml/promo_quote_edit_tab_coupons_grid" name="promo_quote_edit_tab_coupons_grid"/>
|
| 79 |
+
</block>
|
| 80 |
+
<action method="addTab"><name>main_section</name><block>promo_quote_edit_tab_main</block></action>
|
| 81 |
+
<action method="addTab"><name>conditions_section</name><block>promo_quote_edit_tab_conditions</block></action>
|
| 82 |
+
<action method="addTab"><name>actions_section</name><block>promo_quote_edit_tab_actions</block></action>
|
| 83 |
+
<action method="addTab"><name>labels_section</name><block>promo_quote_edit_tab_labels</block></action>
|
| 84 |
+
<action method="addTab"><name>coupons_section</name><block>promo_quote_edit_tab_coupons</block></action>
|
| 85 |
+
</block>
|
| 86 |
+
<block type="adminhtml/template" template="promo/salesrulejs.phtml" name="promo_quote_edit_jsinit"/>
|
| 87 |
+
</reference>
|
| 88 |
+
<reference name="content">
|
| 89 |
+
<block type="adminhtml/promo_quote_edit" name="promo_quote_edit"></block>
|
| 90 |
+
</reference>
|
| 91 |
+
</adminhtml_promo_quote_edit>
|
| 92 |
+
<adminhtml_promo_quote_grid>
|
| 93 |
+
<remove name="root" />
|
| 94 |
+
<block type="adminhtml/promo_quote_edit_tab_product" name="promo_quote_grid" output="toHtml" />
|
| 95 |
+
</adminhtml_promo_quote_grid>
|
| 96 |
+
<adminhtml_promo_quote_couponsgrid>
|
| 97 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 98 |
+
<block type="adminhtml/promo_quote_edit_tab_coupons_grid" name="promo_quote_edit_tab_coupons_grid" />
|
| 99 |
+
</block>
|
| 100 |
+
</adminhtml_promo_quote_couponsgrid>
|
| 101 |
+
</layout>
|
app/design/adminhtml/default/default/layout/report.xml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_report_statistics_index>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="adminhtml/report_refresh_statistics" template="report/refresh/statistics.phtml" name="sales.report.refreshstatistics" />
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_report_statistics_index>
|
| 35 |
+
<adminhtml_report_product_viewed>
|
| 36 |
+
<reference name="messages">
|
| 37 |
+
<action method="addNotice" translate="message">
|
| 38 |
+
<message>This report depends on timezone configuration. Once timezone is changed, the lifetime statistics need to be refreshed.</message>
|
| 39 |
+
</action>
|
| 40 |
+
</reference>
|
| 41 |
+
<reference name="content">
|
| 42 |
+
<block type="adminhtml/report_product_viewed" template="report/grid/container.phtml" name="product.report.grid.container">
|
| 43 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 44 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 45 |
+
</block>
|
| 46 |
+
<block type="adminhtml/report_filter_form" name="grid.filter.form">
|
| 47 |
+
<action method="setFieldVisibility">
|
| 48 |
+
<field>report_type</field>
|
| 49 |
+
<visibility>0</visibility>
|
| 50 |
+
</action>
|
| 51 |
+
</block>
|
| 52 |
+
</block>
|
| 53 |
+
</reference>
|
| 54 |
+
</adminhtml_report_product_viewed>
|
| 55 |
+
</layout>
|
app/design/adminhtml/default/default/layout/rss.xml
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
|
| 31 |
+
<!--
|
| 32 |
+
|
| 33 |
+
-->
|
| 34 |
+
<adminhtml_rss_catalog_review>
|
| 35 |
+
<block type="rss/catalog_review" output="toHtml" name="rss.catalog.review" />
|
| 36 |
+
</adminhtml_rss_catalog_review>
|
| 37 |
+
|
| 38 |
+
<adminhtml_rss_catalog_notifystock>
|
| 39 |
+
<block type="rss/catalog_notifyStock" output="toHtml" name="rss.catalog.notifystock" />
|
| 40 |
+
</adminhtml_rss_catalog_notifystock>
|
| 41 |
+
|
| 42 |
+
<adminhtml_rss_order_new>
|
| 43 |
+
<block type="rss/order_new" output="toHtml" name="rss.order.new"/>
|
| 44 |
+
</adminhtml_rss_order_new>
|
| 45 |
+
</layout>
|
app/design/adminhtml/default/default/layout/sales.xml
ADDED
|
@@ -0,0 +1,1080 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_sales_order_grid>
|
| 31 |
+
<update handle="formkey"/>
|
| 32 |
+
<block type="adminhtml/sales_order_grid" name="sales_order.grid" output="toHtml"></block>
|
| 33 |
+
</adminhtml_sales_order_grid>
|
| 34 |
+
|
| 35 |
+
<adminhtml_sales_order_index>
|
| 36 |
+
<reference name="content">
|
| 37 |
+
<block type="adminhtml/sales_order" name="sales_order.grid.container"></block>
|
| 38 |
+
</reference>
|
| 39 |
+
</adminhtml_sales_order_index>
|
| 40 |
+
|
| 41 |
+
<adminhtml_sales_order_transactions>
|
| 42 |
+
<block type="adminhtml/sales_transactions_grid" name="sales_transactions.grid" output="toHtml"></block>
|
| 43 |
+
</adminhtml_sales_order_transactions>
|
| 44 |
+
|
| 45 |
+
<adminhtml_sales_billing_agreement_index>
|
| 46 |
+
<reference name="content">
|
| 47 |
+
<block type="sales/adminhtml_billing_agreement" name="sales.billing.agreement.grid.container"></block>
|
| 48 |
+
</reference>
|
| 49 |
+
</adminhtml_sales_billing_agreement_index>
|
| 50 |
+
|
| 51 |
+
<adminhtml_sales_billing_agreement_grid>
|
| 52 |
+
<block type="sales/adminhtml_billing_agreement_grid" name="sales.billing.agreement.grid" output="toHtml"></block>
|
| 53 |
+
</adminhtml_sales_billing_agreement_grid>
|
| 54 |
+
|
| 55 |
+
<adminhtml_sales_billing_agreement_view>
|
| 56 |
+
<reference name="content">
|
| 57 |
+
<block type="sales/adminhtml_billing_agreement_view" name="sales.billing.agreement.view"></block>
|
| 58 |
+
</reference>
|
| 59 |
+
<reference name="left">
|
| 60 |
+
<block type="sales/adminhtml_billing_agreement_view_tabs" name="sales.billing.agreement.tabs">
|
| 61 |
+
<action method="addTab"><name>billing_agreement_info</name><block>sales/adminhtml_billing_agreement_view_tab_info</block></action>
|
| 62 |
+
<action method="addTab"><name>billing_agreement_orders</name><block>sales/adminhtml_billing_agreement_view_tab_orders</block></action>
|
| 63 |
+
</block>
|
| 64 |
+
</reference>
|
| 65 |
+
</adminhtml_sales_billing_agreement_view>
|
| 66 |
+
|
| 67 |
+
<adminhtml_sales_billing_agreement_ordersgrid>
|
| 68 |
+
<block type="sales/adminhtml_billing_agreement_view_tab_orders" name="related.orders.grid" output="toHtml"></block>
|
| 69 |
+
</adminhtml_sales_billing_agreement_ordersgrid>
|
| 70 |
+
|
| 71 |
+
<adminhtml_sales_billing_agreement_customergrid>
|
| 72 |
+
<block type="sales/adminhtml_customer_edit_tab_agreement" name="customer.billing.agreement.grid" output="toHtml"></block>
|
| 73 |
+
</adminhtml_sales_billing_agreement_customergrid>
|
| 74 |
+
|
| 75 |
+
<adminhtml_sales_order_view>
|
| 76 |
+
<reference name="head">
|
| 77 |
+
<action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
|
| 78 |
+
<action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
|
| 79 |
+
</reference>
|
| 80 |
+
<reference name="content">
|
| 81 |
+
<block type="adminhtml/sales_order_view" name="sales_order_edit"></block>
|
| 82 |
+
</reference>
|
| 83 |
+
<reference name="left">
|
| 84 |
+
<block type="adminhtml/sales_order_view_tabs" name="sales_order_tabs">
|
| 85 |
+
<block type="adminhtml/sales_order_view_tab_info" name="order_tab_info" template="sales/order/view/tab/info.phtml">
|
| 86 |
+
<block type="adminhtml/sales_order_view_messages" name="order_messages"></block>
|
| 87 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 88 |
+
<block type="adminhtml/sales_order_view_items" name="order_items" template="sales/order/view/items.phtml">
|
| 89 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_order_view_items_renderer_default</block><template>sales/order/view/items/renderer/default.phtml</template></action>
|
| 90 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 91 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 92 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 93 |
+
<block type="core/text_list" name="order_item_extra_info" />
|
| 94 |
+
</block>
|
| 95 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"/>
|
| 96 |
+
<block type="adminhtml/sales_order_view_history" name="order_history" template="sales/order/view/history.phtml"></block>
|
| 97 |
+
<block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
|
| 98 |
+
<block type="adminhtml/sales_order_view_giftmessage" name="order_giftmessage" template="sales/order/view/giftmessage.phtml"></block>
|
| 99 |
+
</block>
|
| 100 |
+
<block type="adminhtml/sales_order_totals" name="order_totals" template="sales/order/totals.phtml">
|
| 101 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 102 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 103 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
|
| 104 |
+
<block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
|
| 105 |
+
<block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
|
| 106 |
+
<block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
|
| 107 |
+
</block>
|
| 108 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 109 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 110 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 111 |
+
<block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
|
| 112 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
|
| 113 |
+
<block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
|
| 114 |
+
<action method="setSourceField"><value>giftcert_amount</value></action>
|
| 115 |
+
<action method="setLabel"><value>Gift Certificate</value></action>
|
| 116 |
+
</block>
|
| 117 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
|
| 118 |
+
<action method="setSourceField"><value>adjustment_positive</value></action>
|
| 119 |
+
<action method="setLabel"><value>Adjustment Refund</value></action>
|
| 120 |
+
</block>
|
| 121 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
|
| 122 |
+
<action method="setSourceField"><value>adjustment_negative</value></action>
|
| 123 |
+
<action method="setLabel"><value>Adjustment Fee</value></action>
|
| 124 |
+
</block>
|
| 125 |
+
</block>-->
|
| 126 |
+
</block>
|
| 127 |
+
</block>
|
| 128 |
+
<action method="addTab"><name>order_info</name><block>order_tab_info</block></action>
|
| 129 |
+
<action method="addTab"><name>order_invoices</name><block>adminhtml/sales_order_view_tab_invoices</block></action>
|
| 130 |
+
<action method="addTab"><name>order_creditmemos</name><block>adminhtml/sales_order_view_tab_creditmemos</block></action>
|
| 131 |
+
<action method="addTab"><name>order_shipments</name><block>adminhtml/sales_order_view_tab_shipments</block></action>
|
| 132 |
+
<action method="addTab"><name>order_history</name><block>adminhtml/sales_order_view_tab_history</block></action>
|
| 133 |
+
<action method="addTab"><name>order_transactions</name><block>adminhtml/sales_order_view_tab_transactions</block></action>
|
| 134 |
+
</block>
|
| 135 |
+
</reference>
|
| 136 |
+
</adminhtml_sales_order_view>
|
| 137 |
+
|
| 138 |
+
<adminhtml_sales_order_addcomment>
|
| 139 |
+
<block type="adminhtml/sales_order_view_history" name="order_history" template="sales/order/view/history.phtml" output="toHtml"/>
|
| 140 |
+
</adminhtml_sales_order_addcomment>
|
| 141 |
+
|
| 142 |
+
<adminhtml_sales_order_invoice_new>
|
| 143 |
+
<reference name="content">
|
| 144 |
+
<block type="adminhtml/sales_order_invoice_create" name="sales_invoice_create">
|
| 145 |
+
<block type="adminhtml/sales_order_invoice_create_form" name="form" template="sales/order/invoice/create/form.phtml">
|
| 146 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 147 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 148 |
+
<block type="adminhtml/sales_order_invoice_create_items" name="order_items" template="sales/order/invoice/create/items.phtml">
|
| 149 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/create/items/renderer/default.phtml</template></action>
|
| 150 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 151 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 152 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 153 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 154 |
+
<block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
|
| 155 |
+
|
| 156 |
+
<block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
|
| 157 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 158 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 159 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
|
| 160 |
+
<block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
|
| 161 |
+
<block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
|
| 162 |
+
<block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
|
| 163 |
+
</block>
|
| 164 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 165 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 166 |
+
<block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
|
| 167 |
+
<action method="setSourceField"><value>tax_amount</value></action>
|
| 168 |
+
<action method="setLabel"><value>Tax</value></action>
|
| 169 |
+
</block>
|
| 170 |
+
<block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
|
| 171 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
|
| 172 |
+
<block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
|
| 173 |
+
<action method="setSourceField"><value>giftcert_amount</value></action>
|
| 174 |
+
<action method="setLabel"><value>Gift Certificate</value></action>
|
| 175 |
+
</block>
|
| 176 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
|
| 177 |
+
<action method="setSourceField"><value>adjustment_positive</value></action>
|
| 178 |
+
<action method="setLabel"><value>Adjustment Refund</value></action>
|
| 179 |
+
</block>
|
| 180 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
|
| 181 |
+
<action method="setSourceField"><value>adjustment_negative</value></action>
|
| 182 |
+
<action method="setLabel"><value>Adjustment Fee</value></action>
|
| 183 |
+
</block>
|
| 184 |
+
</block>-->
|
| 185 |
+
</block>
|
| 186 |
+
</block>
|
| 187 |
+
</block>
|
| 188 |
+
</block>
|
| 189 |
+
</reference>
|
| 190 |
+
</adminhtml_sales_order_invoice_new>
|
| 191 |
+
|
| 192 |
+
<adminhtml_sales_order_invoice_updateqty>
|
| 193 |
+
<block type="adminhtml/sales_order_invoice_create_items" name="order_items" template="sales/order/invoice/create/items.phtml">
|
| 194 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/create/items/renderer/default.phtml</template></action>
|
| 195 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 196 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 197 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 198 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 199 |
+
<block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
|
| 200 |
+
<block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
|
| 201 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 202 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 203 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
|
| 204 |
+
<block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
|
| 205 |
+
<block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
|
| 206 |
+
<block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
|
| 207 |
+
</block>
|
| 208 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 209 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 210 |
+
<block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
|
| 211 |
+
<action method="setSourceField"><value>tax_amount</value></action>
|
| 212 |
+
<action method="setLabel"><value>Tax</value></action>
|
| 213 |
+
</block>
|
| 214 |
+
<block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
|
| 215 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
|
| 216 |
+
<block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
|
| 217 |
+
<action method="setSourceField"><value>giftcert_amount</value></action>
|
| 218 |
+
<action method="setLabel"><value>Gift Certificate</value></action>
|
| 219 |
+
</block>
|
| 220 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
|
| 221 |
+
<action method="setSourceField"><value>adjustment_positive</value></action>
|
| 222 |
+
<action method="setLabel"><value>Adjustment Refund</value></action>
|
| 223 |
+
</block>
|
| 224 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
|
| 225 |
+
<action method="setSourceField"><value>adjustment_negative</value></action>
|
| 226 |
+
<action method="setLabel"><value>Adjustment Fee</value></action>
|
| 227 |
+
</block>
|
| 228 |
+
</block>-->
|
| 229 |
+
</block>
|
| 230 |
+
</block>
|
| 231 |
+
</adminhtml_sales_order_invoice_updateqty>
|
| 232 |
+
|
| 233 |
+
<adminhtml_sales_order_invoice_addcomment>
|
| 234 |
+
<block type="adminhtml/sales_order_invoice_view_comments" name="invoice_comments">
|
| 235 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
|
| 236 |
+
</block>
|
| 237 |
+
</adminhtml_sales_order_invoice_addcomment>
|
| 238 |
+
|
| 239 |
+
<adminhtml_sales_order_invoice_view>
|
| 240 |
+
<reference name="content">
|
| 241 |
+
<block type="adminhtml/sales_order_invoice_view" name="sales_invoice_view">
|
| 242 |
+
<block type="adminhtml/sales_order_invoice_view_form" name="form" template="sales/order/invoice/view/form.phtml">
|
| 243 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 244 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 245 |
+
|
| 246 |
+
<block type="adminhtml/sales_order_invoice_view_items" name="invoice_items" template="sales/order/invoice/view/items.phtml">
|
| 247 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/invoice/view/items/renderer/default.phtml</template></action>
|
| 248 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 249 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 250 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 251 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 252 |
+
</block>
|
| 253 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
|
| 254 |
+
<action method="setParentType"><type>invoice</type></action>
|
| 255 |
+
</block>
|
| 256 |
+
<block type="adminhtml/sales_order_invoice_totals" name="invoice_totals" template="sales/order/totals.phtml">
|
| 257 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 258 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 259 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
|
| 260 |
+
<block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
|
| 261 |
+
<block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
|
| 262 |
+
<block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
|
| 263 |
+
</block>
|
| 264 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 265 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 266 |
+
<block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
|
| 267 |
+
<action method="setSourceField"><value>tax_amount</value></action>
|
| 268 |
+
<action method="setLabel"><value>Tax</value></action>
|
| 269 |
+
</block>
|
| 270 |
+
<block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
|
| 271 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
|
| 272 |
+
<block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
|
| 273 |
+
<action method="setSourceField"><value>giftcert_amount</value></action>
|
| 274 |
+
<action method="setLabel"><value>Gift Certificate</value></action>
|
| 275 |
+
</block>
|
| 276 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
|
| 277 |
+
<action method="setSourceField"><value>adjustment_positive</value></action>
|
| 278 |
+
<action method="setLabel"><value>Adjustment Refund</value></action>
|
| 279 |
+
</block>
|
| 280 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
|
| 281 |
+
<action method="setSourceField"><value>adjustment_negative</value></action>
|
| 282 |
+
<action method="setLabel"><value>Adjustment Fee</value></action>
|
| 283 |
+
</block>
|
| 284 |
+
</block>-->
|
| 285 |
+
</block>
|
| 286 |
+
</block>
|
| 287 |
+
</block>
|
| 288 |
+
</reference>
|
| 289 |
+
</adminhtml_sales_order_invoice_view>
|
| 290 |
+
|
| 291 |
+
<adminhtml_sales_order_shipment_new>
|
| 292 |
+
<reference name="head">
|
| 293 |
+
<action method="addJs"><file>mage/adminhtml/sales/packaging.js</file></action>
|
| 294 |
+
</reference>
|
| 295 |
+
<reference name="content">
|
| 296 |
+
<block type="adminhtml/sales_order_shipment_create" name="sales_shipment_create">
|
| 297 |
+
<block type="adminhtml/sales_order_shipment_create_form" name="form" template="sales/order/shipment/create/form.phtml">
|
| 298 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 299 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 300 |
+
<block type="adminhtml/sales_order_shipment_create_tracking" name="shipment_tracking" template="sales/order/shipment/create/tracking.phtml"></block>
|
| 301 |
+
<block type="adminhtml/sales_order_shipment_create_items" name="order_items" template="sales/order/shipment/create/items.phtml">
|
| 302 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/shipment/create/items/renderer/default.phtml</template></action>
|
| 303 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 304 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 305 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 306 |
+
</block>
|
| 307 |
+
<block type="adminhtml/sales_order_shipment_packaging" name="shipment_packaging" template="sales/order/shipment/packaging/popup.phtml" />
|
| 308 |
+
</block>
|
| 309 |
+
</block>
|
| 310 |
+
</reference>
|
| 311 |
+
</adminhtml_sales_order_shipment_new>
|
| 312 |
+
|
| 313 |
+
<adminhtml_sales_order_shipment_addtrack>
|
| 314 |
+
<block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
|
| 315 |
+
</adminhtml_sales_order_shipment_addtrack>
|
| 316 |
+
|
| 317 |
+
<adminhtml_sales_order_shipment_removetrack>
|
| 318 |
+
<block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
|
| 319 |
+
</adminhtml_sales_order_shipment_removetrack>
|
| 320 |
+
|
| 321 |
+
<adminhtml_sales_order_shipment_addcomment>
|
| 322 |
+
<block type="adminhtml/sales_order_shipment_view_comments" name="shipment_comments">
|
| 323 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
|
| 324 |
+
</block>
|
| 325 |
+
</adminhtml_sales_order_shipment_addcomment>
|
| 326 |
+
|
| 327 |
+
<adminhtml_sales_order_shipment_view>
|
| 328 |
+
<reference name="head">
|
| 329 |
+
<action method="addJs"><file>mage/adminhtml/sales/packaging.js</file></action>
|
| 330 |
+
</reference>
|
| 331 |
+
<reference name="content">
|
| 332 |
+
<block type="adminhtml/sales_order_shipment_view" name="sales_shipment_view">
|
| 333 |
+
<block type="adminhtml/sales_order_shipment_view_form" name="form" template="sales/order/shipment/view/form.phtml">
|
| 334 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 335 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 336 |
+
<block type="adminhtml/sales_order_shipment_view_tracking" name="shipment_tracking" template="sales/order/shipment/view/tracking.phtml"></block>
|
| 337 |
+
<block type="adminhtml/sales_order_shipment_view_items" name="shipment_items" template="sales/order/shipment/view/items.phtml">
|
| 338 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/shipment/view/items/renderer/default.phtml</template></action>
|
| 339 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 340 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 341 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 342 |
+
</block>
|
| 343 |
+
<block type="adminhtml/sales_order_invoice_create_tracking" name="invoice_tracking" template="sales/order/shipment/create/tracking.phtml"></block>
|
| 344 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
|
| 345 |
+
<action method="setParentType"><type>shipment</type></action>
|
| 346 |
+
</block>
|
| 347 |
+
<block type="adminhtml/sales_order_shipment_packaging" name="shipment_packaging" template="sales/order/shipment/packaging/popup.phtml" />
|
| 348 |
+
<block type="adminhtml/sales_order_shipment_packaging" name="shipment_packed" template="sales/order/shipment/packaging/packed.phtml"/>
|
| 349 |
+
</block>
|
| 350 |
+
</block>
|
| 351 |
+
</reference>
|
| 352 |
+
</adminhtml_sales_order_shipment_view>
|
| 353 |
+
|
| 354 |
+
<adminhtml_sales_order_creditmemo_new>
|
| 355 |
+
<reference name="content">
|
| 356 |
+
<block type="adminhtml/sales_order_creditmemo_create" name="sales_creditmemo_create">
|
| 357 |
+
<block type="adminhtml/sales_order_creditmemo_create_form" name="form" template="sales/order/creditmemo/create/form.phtml">
|
| 358 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 359 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 360 |
+
<block type="adminhtml/sales_order_creditmemo_create_items" name="order_items" template="sales/order/creditmemo/create/items.phtml">
|
| 361 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/create/items/renderer/default.phtml</template></action>
|
| 362 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 363 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 364 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 365 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 366 |
+
<block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
|
| 367 |
+
|
| 368 |
+
<block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
|
| 369 |
+
<block type="adminhtml/sales_order_creditmemo_create_adjustments" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
|
| 370 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 371 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 372 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml">
|
| 373 |
+
<action method="setGrandTotalTitle"><title>Total Refund</title></action>
|
| 374 |
+
</block>
|
| 375 |
+
</block>
|
| 376 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 377 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 378 |
+
<block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
|
| 379 |
+
<action method="setSourceField"><value>tax_amount</value></action>
|
| 380 |
+
<action method="setLabel"><value>Tax</value></action>
|
| 381 |
+
</block>
|
| 382 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/item.phtml">
|
| 383 |
+
<action method="setSourceField"><value>discount_amount</value></action>
|
| 384 |
+
<action method="setLabel"><value>Discount</value></action>
|
| 385 |
+
</block>
|
| 386 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
|
| 387 |
+
</block>-->
|
| 388 |
+
</block>
|
| 389 |
+
<block type="core/text_list" name="submit_before" />
|
| 390 |
+
<block type="core/text_list" name="submit_after" />
|
| 391 |
+
</block>
|
| 392 |
+
</block>
|
| 393 |
+
</block>
|
| 394 |
+
</reference>
|
| 395 |
+
</adminhtml_sales_order_creditmemo_new>
|
| 396 |
+
|
| 397 |
+
<adminhtml_sales_order_creditmemo_updateqty>
|
| 398 |
+
<block type="adminhtml/sales_order_creditmemo_create_items" name="order_items" template="sales/order/creditmemo/create/items.phtml">
|
| 399 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/create/items/renderer/default.phtml</template></action>
|
| 400 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 401 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 402 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 403 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 404 |
+
<block type="adminhtml/sales_order_totalbar" name="order_totalbar" template="sales/order/totalbar.phtml"></block>
|
| 405 |
+
|
| 406 |
+
<block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
|
| 407 |
+
<block type="adminhtml/sales_order_creditmemo_create_adjustments" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
|
| 408 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 409 |
+
<!--<block type="adminhtml/sales_order_totals" name="order_totals" template="sales/order/totals.phtml">
|
| 410 |
+
<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 411 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml">
|
| 412 |
+
<action method="setGrandTotalTitle"><title>Total Refund</title></action>
|
| 413 |
+
</block>
|
| 414 |
+
</block>
|
| 415 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 416 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 417 |
+
<block type="adminhtml/sales_order_totals_item" name="tax" template="sales/order/totals/item.phtml">
|
| 418 |
+
<action method="setSourceField"><value>tax_amount</value></action>
|
| 419 |
+
<action method="setLabel"><value>Tax</value></action>
|
| 420 |
+
</block>
|
| 421 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/item.phtml">
|
| 422 |
+
<action method="setSourceField"><value>discount_amount</value></action>
|
| 423 |
+
<action method="setLabel"><value>Discount</value></action>
|
| 424 |
+
</block>
|
| 425 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustments" template="sales/order/creditmemo/create/totals/adjustments.phtml" />
|
| 426 |
+
</block>-->
|
| 427 |
+
</block>
|
| 428 |
+
|
| 429 |
+
<block type="core/text_list" name="submit_before" />
|
| 430 |
+
<block type="core/text_list" name="submit_after" />
|
| 431 |
+
</block>
|
| 432 |
+
</adminhtml_sales_order_creditmemo_updateqty>
|
| 433 |
+
|
| 434 |
+
<adminhtml_sales_order_creditmemo_addcomment>
|
| 435 |
+
<block type="adminhtml/sales_order_creditmemo_view_comments" name="creditmemo_comments">
|
| 436 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml"></block>
|
| 437 |
+
</block>
|
| 438 |
+
</adminhtml_sales_order_creditmemo_addcomment>
|
| 439 |
+
|
| 440 |
+
<adminhtml_sales_order_creditmemo_view>
|
| 441 |
+
<reference name="content">
|
| 442 |
+
<block type="adminhtml/sales_order_creditmemo_view" name="sales_creditmemo_view">
|
| 443 |
+
<block type="adminhtml/sales_order_creditmemo_view_form" name="form" template="sales/order/creditmemo/view/form.phtml">
|
| 444 |
+
<block type="adminhtml/sales_order_view_info" name="order_info" template="sales/order/view/info.phtml"></block>
|
| 445 |
+
<block type="adminhtml/sales_order_payment" name="order_payment"></block>
|
| 446 |
+
<block type="adminhtml/sales_order_creditmemo_view_items" name="creditmemo_items" template="sales/order/creditmemo/view/items.phtml">
|
| 447 |
+
<action method="addItemRender"><type>default</type><block>adminhtml/sales_items_renderer_default</block><template>sales/order/creditmemo/view/items/renderer/default.phtml</template></action>
|
| 448 |
+
<action method="addColumnRender"><column>qty</column><block>adminhtml/sales_items_column_qty</block><template>sales/items/column/qty.phtml</template></action>
|
| 449 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name</block><template>sales/items/column/name.phtml</template></action>
|
| 450 |
+
<action method="addColumnRender"><column>name</column><block>adminhtml/sales_items_column_name_grouped</block><template>sales/items/column/name.phtml</template><type>grouped</type></action>
|
| 451 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 452 |
+
</block>
|
| 453 |
+
<block type="adminhtml/sales_order_comments_view" name="order_comments" template="sales/order/comments/view.phtml">
|
| 454 |
+
<action method="setParentType"><type>creditmemo</type></action>
|
| 455 |
+
</block>
|
| 456 |
+
|
| 457 |
+
<block type="adminhtml/sales_order_creditmemo_totals" name="creditmemo_totals" template="sales/order/totals.phtml">
|
| 458 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 459 |
+
<!--<block type="adminhtml/sales_order_totals_item" name="footer" template="sales/order/totals/footer.phtml">
|
| 460 |
+
<block type="adminhtml/sales_order_totals_item" name="grand" template="sales/order/totals/grand.phtml" />
|
| 461 |
+
<block type="adminhtml/sales_order_totals_item" name="paid" template="sales/order/totals/paid.phtml" />
|
| 462 |
+
<block type="adminhtml/sales_order_totals_item" name="refunded" template="sales/order/totals/refunded.phtml" />
|
| 463 |
+
<block type="adminhtml/sales_order_totals_item" name="due" template="sales/order/totals/due.phtml" />
|
| 464 |
+
</block>
|
| 465 |
+
<block type="adminhtml/sales_order_totals_item" name="sales.order.view.totals.main" as="main" template="sales/order/totals/main.phtml">
|
| 466 |
+
<block type="adminhtml/sales_order_totals_subtotal" name="subtotal" template="sales/order/totals/subtotal.phtml" />
|
| 467 |
+
<block type="adminhtml/sales_order_totals_tax" name="tax" template="sales/order/totals/tax.phtml" />
|
| 468 |
+
<block type="adminhtml/sales_order_totals_item" name="shipping" template="sales/order/totals/shipping.phtml" />
|
| 469 |
+
<block type="adminhtml/sales_order_totals_item" name="discount" template="sales/order/totals/discount.phtml" />
|
| 470 |
+
<block type="adminhtml/sales_order_totals_item" name="giftcert" template="sales/order/totals/item.phtml">
|
| 471 |
+
<action method="setSourceField"><value>giftcert_amount</value></action>
|
| 472 |
+
<action method="setLabel"><value>Gift Certificate</value></action>
|
| 473 |
+
</block>
|
| 474 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_positive" template="sales/order/totals/item.phtml">
|
| 475 |
+
<action method="setSourceField"><value>adjustment_positive</value></action>
|
| 476 |
+
<action method="setLabel"><value>Adjustment Refund</value></action>
|
| 477 |
+
</block>
|
| 478 |
+
<block type="adminhtml/sales_order_totals_item" name="adjustment_negative" template="sales/order/totals/item.phtml">
|
| 479 |
+
<action method="setSourceField"><value>adjustment_negative</value></action>
|
| 480 |
+
<action method="setLabel"><value>Adjustment Fee</value></action>
|
| 481 |
+
</block>
|
| 482 |
+
</block>-->
|
| 483 |
+
</block>
|
| 484 |
+
</block>
|
| 485 |
+
</block>
|
| 486 |
+
</reference>
|
| 487 |
+
</adminhtml_sales_order_creditmemo_view>
|
| 488 |
+
|
| 489 |
+
<adminhtml_sales_transactions_index>
|
| 490 |
+
<reference name="content">
|
| 491 |
+
<block type="adminhtml/sales_transactions" name="sales_transactions.grid.container"></block>
|
| 492 |
+
</reference>
|
| 493 |
+
</adminhtml_sales_transactions_index>
|
| 494 |
+
<adminhtml_sales_transactions_grid>
|
| 495 |
+
<block type="adminhtml/sales_transactions_grid" name="sales_transactions.grid" output="toHtml"></block>
|
| 496 |
+
</adminhtml_sales_transactions_grid>
|
| 497 |
+
<adminhtml_sales_transactions_view>
|
| 498 |
+
<reference name="content">
|
| 499 |
+
<block type="adminhtml/sales_transactions_detail" name="sales_transactions.detail" template="sales/transactions/detail.phtml">
|
| 500 |
+
<block type="adminhtml/sales_transactions_detail_grid" name="sales_transactions.detail.grid" as="detail_grid"/>
|
| 501 |
+
<block type="adminhtml/sales_transactions_child_grid" name="sales_transactions.child.grid" as="child_grid"/>
|
| 502 |
+
</block>
|
| 503 |
+
</reference>
|
| 504 |
+
</adminhtml_sales_transactions_view>
|
| 505 |
+
|
| 506 |
+
<adminhtml_sales_order_create_index>
|
| 507 |
+
<reference name="left">
|
| 508 |
+
<action method="setIsCollapsed"><value>true</value></action>
|
| 509 |
+
</reference>
|
| 510 |
+
<reference name="head">
|
| 511 |
+
<action method="addJs"><file>mage/adminhtml/sales.js</file></action>
|
| 512 |
+
<action method="addJs"><file>mage/adminhtml/giftmessage.js</file></action>
|
| 513 |
+
<action method="addJs"><file>mage/adminhtml/product/composite/configure.js</file></action>
|
| 514 |
+
<action method="addJs"><file>varien/configurable.js</file></action>
|
| 515 |
+
<action method="addJs"><file>mage/adminhtml/giftoptions/tooltip.js</file></action>
|
| 516 |
+
<block type="adminhtml/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
|
| 517 |
+
</reference>
|
| 518 |
+
<reference name="js">
|
| 519 |
+
<block type="adminhtml/template" template="sales/order/create/js.phtml" name="create" />
|
| 520 |
+
</reference>
|
| 521 |
+
<reference name="root">
|
| 522 |
+
<block type="adminhtml/sales_order_create" name="content">
|
| 523 |
+
<block type="adminhtml/sales_order_create_form" template="sales/order/create/form.phtml" name="form">
|
| 524 |
+
<block type="adminhtml/sales_order_create_messages" name="message" />
|
| 525 |
+
<block type="adminhtml/sales_order_create_customer" template="sales/order/create/abstract.phtml" name="customer">
|
| 526 |
+
<block type="adminhtml/sales_order_create_customer_grid" name="grid" />
|
| 527 |
+
</block>
|
| 528 |
+
<block type="adminhtml/sales_order_create_store" template="sales/order/create/abstract.phtml" name="store">
|
| 529 |
+
<block type="adminhtml/sales_order_create_store_select" template="sales/order/create/store/select.phtml" name="select" />
|
| 530 |
+
</block>
|
| 531 |
+
<block type="adminhtml/sales_order_create_data" template="sales/order/create/data.phtml" name="data">
|
| 532 |
+
<block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
|
| 533 |
+
<block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
|
| 534 |
+
<block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
|
| 535 |
+
<block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
|
| 536 |
+
<block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
|
| 537 |
+
<block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
|
| 538 |
+
<block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
|
| 539 |
+
<block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
|
| 540 |
+
</block>
|
| 541 |
+
<block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
|
| 542 |
+
<block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
|
| 543 |
+
<block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
|
| 544 |
+
<block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
|
| 545 |
+
<block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
|
| 546 |
+
</block>
|
| 547 |
+
<block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
|
| 548 |
+
<block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
|
| 549 |
+
</block>
|
| 550 |
+
<block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
|
| 551 |
+
<block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
|
| 552 |
+
</block>
|
| 553 |
+
<block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
|
| 554 |
+
<block type="adminhtml/sales_order_create_search_grid" name="grid" />
|
| 555 |
+
</block>
|
| 556 |
+
<block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
|
| 557 |
+
<block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
|
| 558 |
+
<block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
|
| 559 |
+
<block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
|
| 560 |
+
</block>
|
| 561 |
+
</block>
|
| 562 |
+
</block>
|
| 563 |
+
<block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
|
| 564 |
+
<block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
|
| 565 |
+
<block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
|
| 566 |
+
<block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
|
| 567 |
+
</block>
|
| 568 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 569 |
+
</block>
|
| 570 |
+
</block>
|
| 571 |
+
</block>
|
| 572 |
+
</reference>
|
| 573 |
+
</adminhtml_sales_order_create_index>
|
| 574 |
+
|
| 575 |
+
<adminhtml_sales_order_edit_index>
|
| 576 |
+
<update handle="adminhtml_sales_order_create_index" />
|
| 577 |
+
</adminhtml_sales_order_edit_index>
|
| 578 |
+
|
| 579 |
+
<adminhtml_sales_order_create_load_block_json>
|
| 580 |
+
<reference name="root">
|
| 581 |
+
<block type="adminhtml/sales_order_create_load" name="content" />
|
| 582 |
+
</reference>
|
| 583 |
+
</adminhtml_sales_order_create_load_block_json>
|
| 584 |
+
|
| 585 |
+
<adminhtml_sales_order_create_load_block_plain>
|
| 586 |
+
<reference name="root">
|
| 587 |
+
<block type="core/text_list" name="content" />
|
| 588 |
+
</reference>
|
| 589 |
+
</adminhtml_sales_order_create_load_block_plain>
|
| 590 |
+
|
| 591 |
+
<adminhtml_sales_order_create_load_block_data>
|
| 592 |
+
<reference name="content">
|
| 593 |
+
<block type="adminhtml/sales_order_create_data" template="sales/order/create/data.phtml" name="data">
|
| 594 |
+
<block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
|
| 595 |
+
<block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
|
| 596 |
+
<block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
|
| 597 |
+
<block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
|
| 598 |
+
<block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
|
| 599 |
+
<block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
|
| 600 |
+
<block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
|
| 601 |
+
<block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
|
| 602 |
+
</block>
|
| 603 |
+
<block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
|
| 604 |
+
<block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
|
| 605 |
+
<block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
|
| 606 |
+
<block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
|
| 607 |
+
<block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
|
| 608 |
+
</block>
|
| 609 |
+
<block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
|
| 610 |
+
<block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
|
| 611 |
+
</block>
|
| 612 |
+
<block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
|
| 613 |
+
<block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
|
| 614 |
+
</block>
|
| 615 |
+
<block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
|
| 616 |
+
<block type="adminhtml/sales_order_create_search_grid" name="grid" />
|
| 617 |
+
</block>
|
| 618 |
+
<block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
|
| 619 |
+
<block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
|
| 620 |
+
<block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
|
| 621 |
+
<block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
|
| 622 |
+
</block>
|
| 623 |
+
</block>
|
| 624 |
+
</block>
|
| 625 |
+
<block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
|
| 626 |
+
<block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
|
| 627 |
+
<block type="adminhtml/template" name="gift_options" template="sales/order/giftoptions.phtml">
|
| 628 |
+
<block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
|
| 629 |
+
</block>
|
| 630 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 631 |
+
</block>
|
| 632 |
+
</reference>
|
| 633 |
+
</adminhtml_sales_order_create_load_block_data>
|
| 634 |
+
|
| 635 |
+
<adminhtml_sales_order_create_load_block_header>
|
| 636 |
+
<reference name="content">
|
| 637 |
+
<block type="adminhtml/sales_order_create_header" name="header" />
|
| 638 |
+
</reference>
|
| 639 |
+
</adminhtml_sales_order_create_load_block_header>
|
| 640 |
+
|
| 641 |
+
|
| 642 |
+
<adminhtml_sales_order_create_load_block_sidebar>
|
| 643 |
+
<reference name="content">
|
| 644 |
+
<block type="adminhtml/sales_order_create_sidebar" template="sales/order/create/sidebar.phtml" name="sidebar">
|
| 645 |
+
<block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="cart" />
|
| 646 |
+
<block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="wishlist" />
|
| 647 |
+
<block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="reorder" />
|
| 648 |
+
<block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="viewed" />
|
| 649 |
+
<block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="compared" />
|
| 650 |
+
<block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="pcompared" />
|
| 651 |
+
<block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="pviewed" />
|
| 652 |
+
</block>
|
| 653 |
+
</reference>
|
| 654 |
+
</adminhtml_sales_order_create_load_block_sidebar>
|
| 655 |
+
|
| 656 |
+
<adminhtml_sales_order_create_load_block_form_account>
|
| 657 |
+
<reference name="content">
|
| 658 |
+
<block type="adminhtml/sales_order_create_form_account" template="sales/order/create/form/account.phtml" name="form_account" />
|
| 659 |
+
</reference>
|
| 660 |
+
</adminhtml_sales_order_create_load_block_form_account>
|
| 661 |
+
|
| 662 |
+
<adminhtml_sales_order_create_load_block_shipping_address>
|
| 663 |
+
<reference name="content">
|
| 664 |
+
<block type="adminhtml/sales_order_create_shipping_address" template="sales/order/create/form/address.phtml" name="shipping_address" />
|
| 665 |
+
</reference>
|
| 666 |
+
</adminhtml_sales_order_create_load_block_shipping_address>
|
| 667 |
+
|
| 668 |
+
<adminhtml_sales_order_create_load_block_billing_address>
|
| 669 |
+
<reference name="content">
|
| 670 |
+
<block type="adminhtml/sales_order_create_billing_address" template="sales/order/create/form/address.phtml" name="billing_address" />
|
| 671 |
+
</reference>
|
| 672 |
+
</adminhtml_sales_order_create_load_block_billing_address>
|
| 673 |
+
|
| 674 |
+
<adminhtml_sales_order_create_load_block_shipping_method>
|
| 675 |
+
<reference name="content">
|
| 676 |
+
<block type="adminhtml/sales_order_create_shipping_method" template="sales/order/create/abstract.phtml" name="shipping_method">
|
| 677 |
+
<block type="adminhtml/sales_order_create_shipping_method_form" template="sales/order/create/shipping/method/form.phtml" name="form" />
|
| 678 |
+
</block>
|
| 679 |
+
</reference>
|
| 680 |
+
</adminhtml_sales_order_create_load_block_shipping_method>
|
| 681 |
+
|
| 682 |
+
<adminhtml_sales_order_create_load_block_billing_method>
|
| 683 |
+
<reference name="content">
|
| 684 |
+
<block type="adminhtml/sales_order_create_billing_method" template="sales/order/create/abstract.phtml" name="billing_method">
|
| 685 |
+
<block type="adminhtml/sales_order_create_billing_method_form" template="sales/order/create/billing/method/form.phtml" name="form" />
|
| 686 |
+
</block>
|
| 687 |
+
</reference>
|
| 688 |
+
</adminhtml_sales_order_create_load_block_billing_method>
|
| 689 |
+
|
| 690 |
+
<adminhtml_sales_order_create_load_block_newsletter>
|
| 691 |
+
<reference name="content">
|
| 692 |
+
<block type="adminhtml/sales_order_create_newsletter" template="sales/order/create/abstract.phtml" name="newsletter">
|
| 693 |
+
<block type="adminhtml/sales_order_create_newsletter_form" template="sales/order/create/newsletter/form.phtml" name="form" />
|
| 694 |
+
</block>
|
| 695 |
+
</reference>
|
| 696 |
+
</adminhtml_sales_order_create_load_block_newsletter>
|
| 697 |
+
|
| 698 |
+
<adminhtml_sales_order_create_load_block_search>
|
| 699 |
+
<reference name="content">
|
| 700 |
+
<block type="adminhtml/sales_order_create_search" template="sales/order/create/abstract.phtml" name="search">
|
| 701 |
+
<block type="adminhtml/sales_order_create_search_grid" name="grid" />
|
| 702 |
+
</block>
|
| 703 |
+
</reference>
|
| 704 |
+
</adminhtml_sales_order_create_load_block_search>
|
| 705 |
+
|
| 706 |
+
<adminhtml_sales_order_create_load_block_search_grid>
|
| 707 |
+
<reference name="content">
|
| 708 |
+
<block type="adminhtml/sales_order_create_search_grid" name="grid" />
|
| 709 |
+
</reference>
|
| 710 |
+
</adminhtml_sales_order_create_load_block_search_grid>
|
| 711 |
+
|
| 712 |
+
<adminhtml_sales_order_create_load_block_items>
|
| 713 |
+
<reference name="content">
|
| 714 |
+
<block type="adminhtml/sales_order_create_items" template="sales/order/create/items.phtml" name="items">
|
| 715 |
+
<block type="adminhtml/sales_order_create_items_grid" template="sales/order/create/items/grid.phtml" name="items_grid">
|
| 716 |
+
<block type="adminhtml/sales_order_create_coupons" template="sales/order/create/coupons/form.phtml" name="coupons">
|
| 717 |
+
<block type="adminhtml/sales_order_create_coupons_form" template="sales/order/create/coupons/form.phtml" name="form" />
|
| 718 |
+
</block>
|
| 719 |
+
</block>
|
| 720 |
+
</block>
|
| 721 |
+
<block type="core/text_list" name="order_item_extra_info"></block>
|
| 722 |
+
</reference>
|
| 723 |
+
</adminhtml_sales_order_create_load_block_items>
|
| 724 |
+
|
| 725 |
+
<adminhtml_sales_order_create_load_block_comment>
|
| 726 |
+
<reference name="content">
|
| 727 |
+
<block type="adminhtml/sales_order_create_comment" template="sales/order/create/comment.phtml" name="comment" />
|
| 728 |
+
</reference>
|
| 729 |
+
</adminhtml_sales_order_create_load_block_comment>
|
| 730 |
+
|
| 731 |
+
<adminhtml_sales_order_create_load_block_totals>
|
| 732 |
+
<reference name="content">
|
| 733 |
+
<block type="adminhtml/sales_order_create_totals" template="sales/order/create/totals.phtml" name="totals" />
|
| 734 |
+
</reference>
|
| 735 |
+
</adminhtml_sales_order_create_load_block_totals>
|
| 736 |
+
|
| 737 |
+
<adminhtml_sales_order_create_load_block_giftmessage>
|
| 738 |
+
<reference name="content">
|
| 739 |
+
<block type="adminhtml/sales_order_create_giftmessage" template="sales/order/create/giftmessage.phtml" name="giftmessage" />
|
| 740 |
+
</reference>
|
| 741 |
+
</adminhtml_sales_order_create_load_block_giftmessage>
|
| 742 |
+
|
| 743 |
+
<adminhtml_sales_order_create_load_block_message>
|
| 744 |
+
<reference name="content">
|
| 745 |
+
<block type="adminhtml/sales_order_create_messages" name="message" />
|
| 746 |
+
</reference>
|
| 747 |
+
</adminhtml_sales_order_create_load_block_message>
|
| 748 |
+
|
| 749 |
+
<adminhtml_sales_order_create_load_block_customer_grid>
|
| 750 |
+
<reference name="content">
|
| 751 |
+
<block type="adminhtml/sales_order_create_customer_grid" name="grid" />
|
| 752 |
+
</reference>
|
| 753 |
+
</adminhtml_sales_order_create_load_block_customer_grid>
|
| 754 |
+
|
| 755 |
+
<adminhtml_sales_order_create_load_block_sidebar_cart>
|
| 756 |
+
<reference name="content">
|
| 757 |
+
<block type="adminhtml/sales_order_create_sidebar_cart" template="sales/order/create/sidebar/items.phtml" name="sidebar_cart" />
|
| 758 |
+
</reference>
|
| 759 |
+
</adminhtml_sales_order_create_load_block_sidebar_cart>
|
| 760 |
+
|
| 761 |
+
<adminhtml_sales_order_create_load_block_sidebar_wishlist>
|
| 762 |
+
<reference name="content">
|
| 763 |
+
<block type="adminhtml/sales_order_create_sidebar_wishlist" template="sales/order/create/sidebar/items.phtml" name="sidebar_wishlist" />
|
| 764 |
+
</reference>
|
| 765 |
+
</adminhtml_sales_order_create_load_block_sidebar_wishlist>
|
| 766 |
+
|
| 767 |
+
<adminhtml_sales_order_create_load_block_sidebar_reorder>
|
| 768 |
+
<reference name="content">
|
| 769 |
+
<block type="adminhtml/sales_order_create_sidebar_reorder" template="sales/order/create/sidebar/items.phtml" name="sidebar_reorder" />
|
| 770 |
+
</reference>
|
| 771 |
+
</adminhtml_sales_order_create_load_block_sidebar_reorder>
|
| 772 |
+
|
| 773 |
+
<adminhtml_sales_order_create_load_block_sidebar_viewed>
|
| 774 |
+
<reference name="content">
|
| 775 |
+
<block type="adminhtml/sales_order_create_sidebar_viewed" template="sales/order/create/sidebar/items.phtml" name="sidebar_viewed" />
|
| 776 |
+
</reference>
|
| 777 |
+
</adminhtml_sales_order_create_load_block_sidebar_viewed>
|
| 778 |
+
|
| 779 |
+
<adminhtml_sales_order_create_load_block_sidebar_compared>
|
| 780 |
+
<reference name="content">
|
| 781 |
+
<block type="adminhtml/sales_order_create_sidebar_compared" template="sales/order/create/sidebar/items.phtml" name="sidebar_compared" />
|
| 782 |
+
</reference>
|
| 783 |
+
</adminhtml_sales_order_create_load_block_sidebar_compared>
|
| 784 |
+
|
| 785 |
+
<adminhtml_sales_order_create_load_block_sidebar_pviewed>
|
| 786 |
+
<reference name="content">
|
| 787 |
+
<block type="adminhtml/sales_order_create_sidebar_pviewed" template="sales/order/create/sidebar/items.phtml" name="sidebar_pviewed" />
|
| 788 |
+
</reference>
|
| 789 |
+
</adminhtml_sales_order_create_load_block_sidebar_pviewed>
|
| 790 |
+
|
| 791 |
+
<adminhtml_sales_order_create_load_block_sidebar_pcompared>
|
| 792 |
+
<reference name="content">
|
| 793 |
+
<block type="adminhtml/sales_order_create_sidebar_pcompared" template="sales/order/create/sidebar/items.phtml" name="sidebar_pcompared" />
|
| 794 |
+
</reference>
|
| 795 |
+
</adminhtml_sales_order_create_load_block_sidebar_pcompared>
|
| 796 |
+
|
| 797 |
+
<report_sales>
|
| 798 |
+
<reference name="messages">
|
| 799 |
+
<action method="addNotice" translate="message">
|
| 800 |
+
<message>This report depends on timezone configuration. Once timezone is changed, the lifetime statistics need to be refreshed.</message>
|
| 801 |
+
</action>
|
| 802 |
+
</reference>
|
| 803 |
+
</report_sales>
|
| 804 |
+
|
| 805 |
+
<adminhtml_report_sales_sales>
|
| 806 |
+
<update handle="report_sales"/>
|
| 807 |
+
<reference name="content">
|
| 808 |
+
<block type="adminhtml/report_sales_sales" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 809 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 810 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 811 |
+
</block>
|
| 812 |
+
<block type="sales/adminhtml_report_filter_form_order" name="grid.filter.form">
|
| 813 |
+
<action method="addReportTypeOption" translate="value">
|
| 814 |
+
<key>created_at_order</key>
|
| 815 |
+
<value>Order Created Date</value>
|
| 816 |
+
</action>
|
| 817 |
+
<action method="addReportTypeOption" translate="value">
|
| 818 |
+
<key>updated_at_order</key>
|
| 819 |
+
<value>Order Updated Date</value>
|
| 820 |
+
</action>
|
| 821 |
+
<action method="setFieldOption" translate="value">
|
| 822 |
+
<field>report_type</field>
|
| 823 |
+
<option>note</option>
|
| 824 |
+
<value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
|
| 825 |
+
</action>
|
| 826 |
+
</block>
|
| 827 |
+
</block>
|
| 828 |
+
</reference>
|
| 829 |
+
</adminhtml_report_sales_sales>
|
| 830 |
+
|
| 831 |
+
<adminhtml_report_sales_tax>
|
| 832 |
+
<update handle="report_sales"/>
|
| 833 |
+
<reference name="content">
|
| 834 |
+
<block type="adminhtml/report_sales_tax" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 835 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 836 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 837 |
+
</block>
|
| 838 |
+
<block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
|
| 839 |
+
<action method="addReportTypeOption" translate="value">
|
| 840 |
+
<key>created_at_order</key>
|
| 841 |
+
<value>Order Created Date</value>
|
| 842 |
+
</action>
|
| 843 |
+
<action method="addReportTypeOption" translate="value">
|
| 844 |
+
<key>updated_at_order</key>
|
| 845 |
+
<value>Order Updated Date</value>
|
| 846 |
+
</action>
|
| 847 |
+
<action method="setFieldOption" translate="value">
|
| 848 |
+
<field>report_type</field>
|
| 849 |
+
<option>note</option>
|
| 850 |
+
<value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
|
| 851 |
+
</action>
|
| 852 |
+
</block>
|
| 853 |
+
</block>
|
| 854 |
+
</reference>
|
| 855 |
+
</adminhtml_report_sales_tax>
|
| 856 |
+
|
| 857 |
+
<adminhtml_report_sales_shipping>
|
| 858 |
+
<update handle="report_sales"/>
|
| 859 |
+
<reference name="content">
|
| 860 |
+
<block type="adminhtml/report_sales_shipping" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 861 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 862 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 863 |
+
</block>
|
| 864 |
+
<block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
|
| 865 |
+
<action method="addReportTypeOption" translate="value">
|
| 866 |
+
<key>created_at_order</key>
|
| 867 |
+
<value>Order Created Date</value>
|
| 868 |
+
</action>
|
| 869 |
+
<action method="addReportTypeOption" translate="value">
|
| 870 |
+
<key>created_at_shipment</key>
|
| 871 |
+
<value>First Invoice Created Date</value>
|
| 872 |
+
</action>
|
| 873 |
+
</block>
|
| 874 |
+
</block>
|
| 875 |
+
</reference>
|
| 876 |
+
</adminhtml_report_sales_shipping>
|
| 877 |
+
|
| 878 |
+
<adminhtml_report_sales_invoiced>
|
| 879 |
+
<update handle="report_sales"/>
|
| 880 |
+
<reference name="content">
|
| 881 |
+
<block type="adminhtml/report_sales_invoiced" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 882 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 883 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 884 |
+
</block>
|
| 885 |
+
<block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
|
| 886 |
+
<action method="addReportTypeOption" translate="value">
|
| 887 |
+
<key>created_at_order</key>
|
| 888 |
+
<value>Order Created Date</value>
|
| 889 |
+
</action>
|
| 890 |
+
<action method="addReportTypeOption" translate="value">
|
| 891 |
+
<key>created_at_invoice</key>
|
| 892 |
+
<value>Last Invoice Created Date</value>
|
| 893 |
+
</action>
|
| 894 |
+
</block>
|
| 895 |
+
</block>
|
| 896 |
+
</reference>
|
| 897 |
+
</adminhtml_report_sales_invoiced>
|
| 898 |
+
|
| 899 |
+
<adminhtml_report_sales_refunded>
|
| 900 |
+
<update handle="report_sales"/>
|
| 901 |
+
<reference name="content">
|
| 902 |
+
<block type="adminhtml/report_sales_refunded" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 903 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 904 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 905 |
+
</block>
|
| 906 |
+
<block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
|
| 907 |
+
<action method="addReportTypeOption" translate="value">
|
| 908 |
+
<key>created_at_order</key>
|
| 909 |
+
<value>Order Created Date</value>
|
| 910 |
+
</action>
|
| 911 |
+
<action method="addReportTypeOption" translate="value">
|
| 912 |
+
<key>created_at_refunded</key>
|
| 913 |
+
<value>Last Credit Memo Created Date</value>
|
| 914 |
+
</action>
|
| 915 |
+
</block>
|
| 916 |
+
</block>
|
| 917 |
+
</reference>
|
| 918 |
+
</adminhtml_report_sales_refunded>
|
| 919 |
+
|
| 920 |
+
<adminhtml_report_sales_coupons>
|
| 921 |
+
<update handle="report_sales"/>
|
| 922 |
+
<reference name="content">
|
| 923 |
+
<block type="adminhtml/report_sales_coupons" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 924 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 925 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 926 |
+
</block>
|
| 927 |
+
<block type="sales/adminhtml_report_filter_form_coupon" name="grid.filter.form">
|
| 928 |
+
<action method="addReportTypeOption" translate="value">
|
| 929 |
+
<key>created_at_order</key>
|
| 930 |
+
<value>Order Created Date</value>
|
| 931 |
+
</action>
|
| 932 |
+
<action method="addReportTypeOption" translate="value">
|
| 933 |
+
<key>updated_at_order</key>
|
| 934 |
+
<value>Order Updated Date</value>
|
| 935 |
+
</action>
|
| 936 |
+
<action method="setFieldOption" translate="value">
|
| 937 |
+
<field>report_type</field>
|
| 938 |
+
<option>note</option>
|
| 939 |
+
<value>Order Updated Date report is real-time, does not need statistics refreshing.</value>
|
| 940 |
+
</action>
|
| 941 |
+
</block>
|
| 942 |
+
</block>
|
| 943 |
+
</reference>
|
| 944 |
+
</adminhtml_report_sales_coupons>
|
| 945 |
+
|
| 946 |
+
<adminhtml_report_sales_bestsellers>
|
| 947 |
+
<update handle="report_sales"/>
|
| 948 |
+
<reference name="content">
|
| 949 |
+
<block type="adminhtml/report_sales_bestsellers" template="report/grid/container.phtml" name="sales.report.grid.container">
|
| 950 |
+
<block type="adminhtml/store_switcher" template="report/store/switcher/enhanced.phtml" name="store.switcher">
|
| 951 |
+
<action method="setStoreVarName"><var_name>store_ids</var_name></action>
|
| 952 |
+
</block>
|
| 953 |
+
<block type="sales/adminhtml_report_filter_form" name="grid.filter.form">
|
| 954 |
+
<action method="setFieldVisibility">
|
| 955 |
+
<field>report_type</field>
|
| 956 |
+
<visibility>0</visibility>
|
| 957 |
+
</action>
|
| 958 |
+
<action method="setFieldVisibility">
|
| 959 |
+
<field>show_order_statuses</field>
|
| 960 |
+
<visibility>0</visibility>
|
| 961 |
+
</action>
|
| 962 |
+
<action method="setFieldVisibility">
|
| 963 |
+
<field>order_statuses</field>
|
| 964 |
+
<visibility>0</visibility>
|
| 965 |
+
</action>
|
| 966 |
+
</block>
|
| 967 |
+
</block>
|
| 968 |
+
</reference>
|
| 969 |
+
</adminhtml_report_sales_bestsellers>
|
| 970 |
+
|
| 971 |
+
<adminhtml_sales_recurring_profile_index>
|
| 972 |
+
<reference name="content">
|
| 973 |
+
<block type="sales/adminhtml_recurring_profile" name="sales.recurring.profile.grid.container"/>
|
| 974 |
+
</reference>
|
| 975 |
+
</adminhtml_sales_recurring_profile_index>
|
| 976 |
+
|
| 977 |
+
<adminhtml_sales_recurring_profile_grid>
|
| 978 |
+
<remove name="root"/>
|
| 979 |
+
<block type="sales/adminhtml_recurring_profile_grid" name="sales.recurring.profile.grid" output="toHtml"/>
|
| 980 |
+
</adminhtml_sales_recurring_profile_grid>
|
| 981 |
+
|
| 982 |
+
<adminhtml_sales_recurring_profile_customergrid>
|
| 983 |
+
<block type="sales/adminhtml_customer_edit_tab_recurring_profile" name="customer.recurring.profile.grid" output="toHtml"></block>
|
| 984 |
+
</adminhtml_sales_recurring_profile_customergrid>
|
| 985 |
+
|
| 986 |
+
<adminhtml_sales_recurring_profile_view>
|
| 987 |
+
<reference name="content">
|
| 988 |
+
<block type="sales/adminhtml_recurring_profile_view" name="sales.recurring.profile.view" template="widget/view/container.phtml">
|
| 989 |
+
<action method="setDestElementId"><value>sales_recurring_profile_view</value></action>
|
| 990 |
+
</block>
|
| 991 |
+
</reference>
|
| 992 |
+
<reference name="left">
|
| 993 |
+
<block type="adminhtml/widget_tabs" name="sales.recurring.profile.view.tabs">
|
| 994 |
+
<action method="setDestElementId"><value>sales_recurring_profile_view</value></action>
|
| 995 |
+
<action method="setTitle" translate="value"><value>Recurring Profile View</value></action>
|
| 996 |
+
<action method="setId"><value>sales_recurring_profile_view_tabs</value></action>
|
| 997 |
+
<block type="sales/adminhtml_recurring_profile_view_tab_info" as="info_tab" name="sales.recurring.profile.tab.info" template="sales/recurring/profile/view.phtml">
|
| 998 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.general" as="general" template="sales/recurring/profile/view/info.phtml">
|
| 999 |
+
<action method="prepareReferenceInfo"/>
|
| 1000 |
+
<action method="addToParentGroup"><value>info_blocks_row_1</value></action>
|
| 1001 |
+
<action method="setViewColumn"><value>1</value></action>
|
| 1002 |
+
<action method="setViewLabel" translate="value"><value>Reference</value></action>
|
| 1003 |
+
</block>
|
| 1004 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.item" as="item" template="sales/recurring/profile/view/info.phtml">
|
| 1005 |
+
<action method="prepareItemInfo"/>
|
| 1006 |
+
<action method="addToParentGroup"><value>info_blocks_row_1</value></action>
|
| 1007 |
+
<action method="setViewColumn"><value>2</value></action>
|
| 1008 |
+
<action method="setViewLabel" translate="value"><value>Purchased Item</value></action>
|
| 1009 |
+
</block>
|
| 1010 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.schedule" as="profile" template="sales/recurring/profile/view/info.phtml">
|
| 1011 |
+
<action method="prepareScheduleInfo"/>
|
| 1012 |
+
<action method="addToParentGroup"><value>info_blocks_row_2</value></action>
|
| 1013 |
+
<action method="setViewColumn"><value>1</value></action>
|
| 1014 |
+
<action method="setViewLabel" translate="value"><value>Profile Schedule</value></action>
|
| 1015 |
+
</block>
|
| 1016 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.fees" as="fees" template="sales/recurring/profile/view/info.phtml">
|
| 1017 |
+
<action method="prepareFeesInfo"/>
|
| 1018 |
+
<action method="addToParentGroup"><value>info_blocks_row_2</value></action>
|
| 1019 |
+
<action method="setViewColumn"><value>2</value></action>
|
| 1020 |
+
<action method="setViewLabel" translate="value"><value>Profile Payments</value></action>
|
| 1021 |
+
</block>
|
| 1022 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.billing" as="billing_address" template="sales/recurring/profile/view/info.phtml">
|
| 1023 |
+
<action method="prepareAddressInfo"/>
|
| 1024 |
+
<action method="addToParentGroup"><value>info_blocks_row_3</value></action>
|
| 1025 |
+
<action method="setViewColumn"><value>1</value></action>
|
| 1026 |
+
<action method="setViewLabel" translate="value"><value>Billing Address</value></action>
|
| 1027 |
+
</block>
|
| 1028 |
+
<block type="sales/recurring_profile_view" name="sales.recurring.profile.view.shipping" as="shipping_address" template="sales/recurring/profile/view/info.phtml">
|
| 1029 |
+
<action method="setAddressType"><value>shipping</value></action>
|
| 1030 |
+
<action method="prepareAddressInfo"/>
|
| 1031 |
+
<action method="addToParentGroup"><value>info_blocks_row_3</value></action>
|
| 1032 |
+
<action method="setViewColumn"><value>2</value></action>
|
| 1033 |
+
<action method="setViewLabel" translate="value"><value>Shipping Address</value></action>
|
| 1034 |
+
</block>
|
| 1035 |
+
</block>
|
| 1036 |
+
<block type="sales/adminhtml_recurring_profile_view_tab_orders" as="orders_tab" name="sales.recurring.profile.tab.orders"/>
|
| 1037 |
+
<action method="addTab"><name>recurring_profile_info</name><block>info_tab</block></action>
|
| 1038 |
+
<action method="addTab"><name>recurring_profile_orders</name><block>orders_tab</block></action>
|
| 1039 |
+
</block>
|
| 1040 |
+
</reference>
|
| 1041 |
+
</adminhtml_sales_recurring_profile_view>
|
| 1042 |
+
|
| 1043 |
+
<adminhtml_sales_recurring_profile_orders>
|
| 1044 |
+
<remove name="root"/>
|
| 1045 |
+
<block type="sales/adminhtml_recurring_profile_view_tab_orders" name="sales.recurring.profile.tab.orders" output="toHtml"/>
|
| 1046 |
+
</adminhtml_sales_recurring_profile_orders>
|
| 1047 |
+
|
| 1048 |
+
<adminhtml_customer_edit>
|
| 1049 |
+
<reference name="customer_edit_tabs">
|
| 1050 |
+
<action method="addTab"><name>customer_edit_tab_agreements</name><block>sales/adminhtml_customer_edit_tab_agreement</block></action>
|
| 1051 |
+
<action method="addTab"><name>customer_edit_tab_recurring_profile</name><block>sales/adminhtml_customer_edit_tab_recurring_profile</block></action>
|
| 1052 |
+
</reference>
|
| 1053 |
+
</adminhtml_customer_edit>
|
| 1054 |
+
|
| 1055 |
+
<adminhtml_sales_order_status_index>
|
| 1056 |
+
<reference name="content">
|
| 1057 |
+
<block type="adminhtml/sales_order_status" name="sales_order_status.grid.container"></block>
|
| 1058 |
+
</reference>
|
| 1059 |
+
</adminhtml_sales_order_status_index>
|
| 1060 |
+
<adminhtml_sales_order_status_new>
|
| 1061 |
+
<reference name="content">
|
| 1062 |
+
<block type="adminhtml/sales_order_status_new" name="sales_order_status.new.container"></block>
|
| 1063 |
+
</reference>
|
| 1064 |
+
</adminhtml_sales_order_status_new>
|
| 1065 |
+
<adminhtml_sales_order_status_edit>
|
| 1066 |
+
<reference name="content">
|
| 1067 |
+
<block type="adminhtml/sales_order_status_edit" name="sales_order_status.edit.container"></block>
|
| 1068 |
+
</reference>
|
| 1069 |
+
</adminhtml_sales_order_status_edit>
|
| 1070 |
+
<adminhtml_sales_order_status_assign>
|
| 1071 |
+
<reference name="content">
|
| 1072 |
+
<block type="adminhtml/sales_order_status_assign" name="sales_order_status.assign.container"></block>
|
| 1073 |
+
</reference>
|
| 1074 |
+
</adminhtml_sales_order_status_assign>
|
| 1075 |
+
<adminhtml_sales_order_address>
|
| 1076 |
+
<reference name="content">
|
| 1077 |
+
<block type="adminhtml/sales_order_address" name="sales_order_address.form.container"></block>
|
| 1078 |
+
</reference>
|
| 1079 |
+
</adminhtml_sales_order_address>
|
| 1080 |
+
</layout>
|
app/design/adminhtml/default/default/layout/search.xml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_catalog_search_edit>
|
| 31 |
+
<reference name="content">
|
| 32 |
+
<block type="adminhtml/catalog_search_edit" name="catalog_search_edit" />
|
| 33 |
+
</reference>
|
| 34 |
+
</adminhtml_catalog_search_edit>
|
| 35 |
+
</layout>
|
app/design/adminhtml/default/default/layout/tag.xml
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<adminhtml_tag_edit>
|
| 30 |
+
<reference name="content">
|
| 31 |
+
<block type="adminhtml/tag_edit" name="tag_edit" template="tag/edit/container.phtml"></block>
|
| 32 |
+
</reference>
|
| 33 |
+
</adminhtml_tag_edit>
|
| 34 |
+
<adminhtml_tag_assigned>
|
| 35 |
+
<remove name="root" />
|
| 36 |
+
<block type="adminhtml/tag_assigned_grid" name="tag_assigned_grid" output="toHtml" />
|
| 37 |
+
<block type="adminhtml/widget_grid_serializer" name="tag_grid_serializer" output="toHtml">
|
| 38 |
+
<reference name="tag_grid_serializer">
|
| 39 |
+
<action method="initSerializerBlock">
|
| 40 |
+
<grid_block_name>tag_assigned_grid</grid_block_name>
|
| 41 |
+
<data_callback>getRelatedProducts</data_callback>
|
| 42 |
+
<hidden_input_name>tag_assigned_products</hidden_input_name>
|
| 43 |
+
<reload_param_name>assigned_products</reload_param_name>
|
| 44 |
+
</action>
|
| 45 |
+
</reference>
|
| 46 |
+
</block>
|
| 47 |
+
</adminhtml_tag_assigned>
|
| 48 |
+
<adminhtml_tag_assignedgridonly>
|
| 49 |
+
<remove name="root" />
|
| 50 |
+
<block type="adminhtml/tag_assigned_grid" name="assigned_grid" output="toHtml" />
|
| 51 |
+
</adminhtml_tag_assignedgridonly>
|
| 52 |
+
|
| 53 |
+
<adminhtml_tag_index>
|
| 54 |
+
<reference name="content">
|
| 55 |
+
<block type="adminhtml/tag_tag" name="adminhtml.tag.tag"/>
|
| 56 |
+
</reference>
|
| 57 |
+
</adminhtml_tag_index>
|
| 58 |
+
|
| 59 |
+
<adminhtml_tag_pending>
|
| 60 |
+
<reference name="content">
|
| 61 |
+
<block type="adminhtml/tag_pending" name="adminhtml.tag.pending"/>
|
| 62 |
+
</reference>
|
| 63 |
+
</adminhtml_tag_pending>
|
| 64 |
+
|
| 65 |
+
<adminhtml_tag_ajaxgrid>
|
| 66 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 67 |
+
<block type="adminhtml/tag_tag_grid" name="adminhtml.tag.tag.grid"/>
|
| 68 |
+
</block>
|
| 69 |
+
</adminhtml_tag_ajaxgrid>
|
| 70 |
+
|
| 71 |
+
<adminhtml_tag_ajaxpendinggrid>
|
| 72 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 73 |
+
<block type="adminhtml/tag_grid_pending" name="adminhtml.tag.grid.pending"/>
|
| 74 |
+
</block>
|
| 75 |
+
</adminhtml_tag_ajaxpendinggrid>
|
| 76 |
+
|
| 77 |
+
<adminhtml_tag_product>
|
| 78 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 79 |
+
<block type="adminhtml/tag_product_grid" name="adminhtml.tag.product.grid"/>
|
| 80 |
+
</block>
|
| 81 |
+
</adminhtml_tag_product>
|
| 82 |
+
|
| 83 |
+
<adminhtml_tag_customer>
|
| 84 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 85 |
+
<block type="adminhtml/tag_customer_grid" name="adminhtml.tag.customer.grid"/>
|
| 86 |
+
</block>
|
| 87 |
+
</adminhtml_tag_customer>
|
| 88 |
+
</layout>
|
app/design/adminhtml/default/default/layout/tax.xml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
<layout>
|
| 29 |
+
<default>
|
| 30 |
+
<reference name="notifications">
|
| 31 |
+
<block type="tax/adminhtml_notifications" name="tax_notifications" template="tax/notifications.phtml"></block>
|
| 32 |
+
</reference>
|
| 33 |
+
</default>
|
| 34 |
+
</layout>
|
app/design/adminhtml/default/default/layout/widget.xml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<adminhtml_widget_index>
|
| 31 |
+
<block name="wysiwyg_widget" type="widget/adminhtml_widget" output="toHtml" />
|
| 32 |
+
</adminhtml_widget_index>
|
| 33 |
+
|
| 34 |
+
<adminhtml_widget_loadoptions>
|
| 35 |
+
<block name="wysiwyg_widget.options" type="widget/adminhtml_widget_options" output="toHtml" />
|
| 36 |
+
</adminhtml_widget_loadoptions>
|
| 37 |
+
|
| 38 |
+
<adminhtml_widget_instance_index>
|
| 39 |
+
<reference name="content">
|
| 40 |
+
<block type="widget/adminhtml_widget_instance" name="widget_instance" />
|
| 41 |
+
</reference>
|
| 42 |
+
</adminhtml_widget_instance_index>
|
| 43 |
+
|
| 44 |
+
<adminhtml_widget_instance_edit>
|
| 45 |
+
<reference name="head">
|
| 46 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 47 |
+
<action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
|
| 48 |
+
<action method="addItem"><type>js</type><name>prototype/window.js</name></action>
|
| 49 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
| 50 |
+
<action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
|
| 51 |
+
</reference>
|
| 52 |
+
<reference name="content">
|
| 53 |
+
<block type="widget/adminhtml_widget_instance_edit" name="widget_instance_edit" />
|
| 54 |
+
</reference>
|
| 55 |
+
<reference name="left">
|
| 56 |
+
<block type="widget/adminhtml_widget_instance_edit_tabs" name="widget_instance_edit_tabs">
|
| 57 |
+
<block type="widget/adminhtml_widget_instance_edit_tab_settings" name="widget_instance_edit_tab_settings" />
|
| 58 |
+
<block type="widget/adminhtml_widget_instance_edit_tab_main" name="widget_instance_edit_tab_main" />
|
| 59 |
+
<block type="widget/adminhtml_widget_instance_edit_tab_properties" name="widget_instance_edit_tab_properties" />
|
| 60 |
+
<action method="addTab"><name>settings_section</name><block>widget_instance_edit_tab_settings</block></action>
|
| 61 |
+
<action method="addTab"><name>main_section</name><block>widget_instance_edit_tab_main</block></action>
|
| 62 |
+
<action method="addTab"><name>properties_section</name><block>widget_instance_edit_tab_properties</block></action>
|
| 63 |
+
</block>
|
| 64 |
+
</reference>
|
| 65 |
+
<reference name="js">
|
| 66 |
+
<block type="adminhtml/template" template="widget/instance/js.phtml" name="widget_instance_js"></block>
|
| 67 |
+
</reference>
|
| 68 |
+
</adminhtml_widget_instance_edit>
|
| 69 |
+
</layout>
|
app/design/adminhtml/default/default/layout/xmlconnect.xml
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<!--
|
| 3 |
+
/**
|
| 4 |
+
* Magento
|
| 5 |
+
*
|
| 6 |
+
* NOTICE OF LICENSE
|
| 7 |
+
*
|
| 8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 10 |
+
* It is also available through the world-wide-web at this URL:
|
| 11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 12 |
+
* If you did not receive a copy of the license and are unable to
|
| 13 |
+
* obtain it through the world-wide-web, please send an email
|
| 14 |
+
* to license@magento.com so we can send you a copy immediately.
|
| 15 |
+
*
|
| 16 |
+
* DISCLAIMER
|
| 17 |
+
*
|
| 18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 19 |
+
* versions in the future. If you wish to customize Magento for your
|
| 20 |
+
* needs please refer to http://www.magento.com for more information.
|
| 21 |
+
*
|
| 22 |
+
* @category design
|
| 23 |
+
* @package default_default
|
| 24 |
+
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
|
| 25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
+
*/
|
| 27 |
+
-->
|
| 28 |
+
|
| 29 |
+
<layout>
|
| 30 |
+
<default>
|
| 31 |
+
<reference name="head">
|
| 32 |
+
<action method="addCss"><name>xmlconnect/boxes.css</name></action>
|
| 33 |
+
<action method="addItem"><type>skin_css</type><name>xmlconnect/iestyles.css</name><params/><if>lte IE 8</if></action>
|
| 34 |
+
</reference>
|
| 35 |
+
</default>
|
| 36 |
+
|
| 37 |
+
<adminhtml_mobile_index>
|
| 38 |
+
<reference name="content">
|
| 39 |
+
<block type="xmlconnect/adminhtml_mobile" name="applications"/>
|
| 40 |
+
</reference>
|
| 41 |
+
</adminhtml_mobile_index>
|
| 42 |
+
|
| 43 |
+
<adminhtml_mobile_history>
|
| 44 |
+
<reference name="content">
|
| 45 |
+
<block type="xmlconnect/adminhtml_history" name="history"/>
|
| 46 |
+
</reference>
|
| 47 |
+
</adminhtml_mobile_history>
|
| 48 |
+
|
| 49 |
+
<adminhtml_mobile_queue>
|
| 50 |
+
<reference name="content">
|
| 51 |
+
<block type="xmlconnect/adminhtml_queue" name="queue"/>
|
| 52 |
+
</reference>
|
| 53 |
+
</adminhtml_mobile_queue>
|
| 54 |
+
|
| 55 |
+
<adminhtml_mobile_template>
|
| 56 |
+
<reference name="content">
|
| 57 |
+
<block type="xmlconnect/adminhtml_template" name="template"/>
|
| 58 |
+
</reference>
|
| 59 |
+
</adminhtml_mobile_template>
|
| 60 |
+
|
| 61 |
+
<adminhtml_mobile_editqueue>
|
| 62 |
+
<reference name="content">
|
| 63 |
+
<block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
|
| 64 |
+
</reference>
|
| 65 |
+
</adminhtml_mobile_editqueue>
|
| 66 |
+
|
| 67 |
+
<adminhtml_mobile_queuemessage>
|
| 68 |
+
<reference name="content">
|
| 69 |
+
<block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
|
| 70 |
+
</reference>
|
| 71 |
+
</adminhtml_mobile_queuemessage>
|
| 72 |
+
|
| 73 |
+
<adminhtml_mobile_edittemplate>
|
| 74 |
+
<reference name="head">
|
| 75 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 76 |
+
<action method="addJs"><script>mage/adminhtml/variables.js</script></action>
|
| 77 |
+
<action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
|
| 78 |
+
<action method="addJs"><script>lib/flex.js</script></action>
|
| 79 |
+
<action method="addJs"><script>lib/FABridge.js</script></action>
|
| 80 |
+
<action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
|
| 81 |
+
<action method="addJs"><script>mage/adminhtml/browser.js</script></action>
|
| 82 |
+
<action method="addJs"><script>prototype/window.js</script></action>
|
| 83 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
| 84 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/magento.css</name></action>
|
| 85 |
+
</reference>
|
| 86 |
+
<reference name="content">
|
| 87 |
+
<block type="xmlconnect/adminhtml_template_edit" name="template_edit"/>
|
| 88 |
+
</reference>
|
| 89 |
+
</adminhtml_mobile_edittemplate>
|
| 90 |
+
|
| 91 |
+
<adminhtml_mobile_new>
|
| 92 |
+
<reference name="left">
|
| 93 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs" />
|
| 94 |
+
</reference>
|
| 95 |
+
<reference name="content">
|
| 96 |
+
<block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
|
| 97 |
+
</reference>
|
| 98 |
+
</adminhtml_mobile_new>
|
| 99 |
+
|
| 100 |
+
<adminhtml_mobile_edit>
|
| 101 |
+
<update handle="editor"/>
|
| 102 |
+
<reference name="left">
|
| 103 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs">
|
| 104 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_offlineCatalog" name="mobile_edit_tab_offlineCatalog"/>
|
| 105 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_general" name="mobile_edit_tab_general"/>
|
| 106 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design" name="mobile_edit_tab_design">
|
| 107 |
+
<block type="adminhtml/media_uploader" name="adminhtml_media_uploader" as="media_uploader"/>
|
| 108 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_images" name="mobile_edit_tab_design_images" as="design_images" />
|
| 109 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion" name="mobile_edit_tab_design_accordion" as="design_accordion">
|
| 110 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_themes" name="accordion_themes" />
|
| 111 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_tabs" name="accordion_tabs" />
|
| 112 |
+
|
| 113 |
+
<action method="addAccordionItem"><name>themes</name><block>accordion_themes</block></action>
|
| 114 |
+
<action method="addAccordionItem"><name>tabs</name><block>accordion_tabs</block></action>
|
| 115 |
+
</block>
|
| 116 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
|
| 117 |
+
</block>
|
| 118 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_content" name="mobile_edit_tab_content"/>
|
| 119 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_payment" name="mobile_edit_tab_payment"/>
|
| 120 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_flurryanalytics" name="mobile_edit_tab_flurryanalytics"/>
|
| 121 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="mobile_edit_tab_submission_history_grid"/>
|
| 122 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_cache" name="mobile_edit_tab_cache"/>
|
| 123 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_social" name="mobile_edit_tab_social" />
|
| 124 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_notification" name="mobile_edit_tab_notification">
|
| 125 |
+
<block type="core/template" name="mobile_edit_tab_notification_helper" as="app_notification_helper" template="xmlconnect/mobile/notification_helper.phtml" />
|
| 126 |
+
</block>
|
| 127 |
+
|
| 128 |
+
<action method="addTab"><id>general_section</id><block>mobile_edit_tab_general</block></action>
|
| 129 |
+
<action method="addTab"><id>design_section</id><block>mobile_edit_tab_design</block></action>
|
| 130 |
+
<action method="addTab"><id>content_section</id><block>mobile_edit_tab_content</block></action>
|
| 131 |
+
<action method="addTab"><id>payment_methods</id><block>mobile_edit_tab_payment</block></action>
|
| 132 |
+
<action method="addTab"><id>flurryanalytics_section</id><block>mobile_edit_tab_flurryanalytics</block></action>
|
| 133 |
+
<action method="addTab"><id>history_grid</id><block>mobile_edit_tab_submission_history_grid</block></action>
|
| 134 |
+
<action method="addTab"><id>cache_section</id><block>mobile_edit_tab_cache</block></action>
|
| 135 |
+
<action method="addTab"><id>social_section</id><block>mobile_edit_tab_social</block></action>
|
| 136 |
+
<action method="addTab"><id>notification_section</id><block>mobile_edit_tab_notification</block></action>
|
| 137 |
+
<!--<action method="addTab"><id>offline_catalog</id><block>mobile_edit_tab_offlineCatalog</block></action>-->
|
| 138 |
+
</block>
|
| 139 |
+
</reference>
|
| 140 |
+
<reference name="content">
|
| 141 |
+
<block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
|
| 142 |
+
</reference>
|
| 143 |
+
<reference name="before_body_end">
|
| 144 |
+
<block type="core/template" name="image_action_block" template="xmlconnect/edit/tab/design/image_edit.phtml"/>
|
| 145 |
+
</reference>
|
| 146 |
+
<reference name="head">
|
| 147 |
+
<action method="addCss"><name>xmlconnect/dropdown.css</name></action>
|
| 148 |
+
<action method="addCss"><name>xmlconnect/styles.css</name></action>
|
| 149 |
+
</reference>
|
| 150 |
+
</adminhtml_mobile_edit>
|
| 151 |
+
|
| 152 |
+
<adminhtml_mobile_submissionhistorygrid>
|
| 153 |
+
<remove name="root"/>
|
| 154 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="submission_history_grid" output="toHtml"/>
|
| 155 |
+
</adminhtml_mobile_submissionhistorygrid>
|
| 156 |
+
|
| 157 |
+
<adminhtml_mobile_submission>
|
| 158 |
+
<reference name="left">
|
| 159 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tabs" name="mobile_submission_tabs">
|
| 160 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tab_container" name="mobile_submission_tab_container">
|
| 161 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tab_container_submission" name="mobile_submission_tab_container_submission" as="edit_form"/>
|
| 162 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
|
| 163 |
+
</block>
|
| 164 |
+
<action method="addTab"><id>submission_section</id><block>mobile_submission_tab_container</block></action>
|
| 165 |
+
</block>
|
| 166 |
+
</reference>
|
| 167 |
+
<reference name="content">
|
| 168 |
+
<block type="xmlconnect/adminhtml_mobile_submission" name="mobile_submission_content"/>
|
| 169 |
+
</reference>
|
| 170 |
+
<reference name="head">
|
| 171 |
+
<action method="addCss"><name>xmlconnect/styles.css</name></action>
|
| 172 |
+
</reference>
|
| 173 |
+
</adminhtml_mobile_submission>
|
| 174 |
+
|
| 175 |
+
<adminhtml_mobile_grid>
|
| 176 |
+
<block type="xmlconnect/adminhtml_mobile_grid" name="mobile_grid" output="toHtml"/>
|
| 177 |
+
</adminhtml_mobile_grid>
|
| 178 |
+
|
| 179 |
+
<adminhtml_mobile_history_grid>
|
| 180 |
+
<block type="xmlconnect/adminhtml_history_grid" name="history_grid" output="toHtml"/>
|
| 181 |
+
</adminhtml_mobile_history_grid>
|
| 182 |
+
|
| 183 |
+
<adminhtml_mobile_template_preview>
|
| 184 |
+
<block type="core/template" name="root" output="toHtml" template="xmlconnect/template/preview.phtml">
|
| 185 |
+
<block type="xmlconnect/adminhtml_template_preview" name="content" as="content"></block>
|
| 186 |
+
</block>
|
| 187 |
+
</adminhtml_mobile_template_preview>
|
| 188 |
+
|
| 189 |
+
<adminhtml_mobile_previewhome>
|
| 190 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 191 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_content">
|
| 192 |
+
<action method="setTemplate"><templateType>home</templateType></action>
|
| 193 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
| 194 |
+
<action method="setActiveTab"><tab>home</tab></action>
|
| 195 |
+
</block>
|
| 196 |
+
</block>
|
| 197 |
+
<block type="core/template" template="xmlconnect/edit/tab/design/preview/banner_rotator.phtml"/>
|
| 198 |
+
</block>
|
| 199 |
+
</adminhtml_mobile_previewhome>
|
| 200 |
+
|
| 201 |
+
<adminhtml_mobile_previewhomehor>
|
| 202 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 203 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_hor_content">
|
| 204 |
+
<action method="setTemplate"><templateType>home_hor</templateType></action>
|
| 205 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
| 206 |
+
<action method="setActiveTab"><tab>home</tab></action>
|
| 207 |
+
</block>
|
| 208 |
+
</block>
|
| 209 |
+
<block type="core/template" template="xmlconnect/edit/tab/design/preview/banner_rotator.phtml"/>
|
| 210 |
+
</block>
|
| 211 |
+
</adminhtml_mobile_previewhomehor>
|
| 212 |
+
|
| 213 |
+
<adminhtml_mobile_previewcataloghor>
|
| 214 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 215 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_hor_content">
|
| 216 |
+
<action method="setTemplate"><templateType>catalog_hor</templateType></action>
|
| 217 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
| 218 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
| 219 |
+
</block>
|
| 220 |
+
</block>
|
| 221 |
+
</block>
|
| 222 |
+
</adminhtml_mobile_previewcataloghor>
|
| 223 |
+
|
| 224 |
+
<adminhtml_mobile_previewcatalog>
|
| 225 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 226 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_content">
|
| 227 |
+
<action method="setTemplate"><templateType>catalog</templateType></action>
|
| 228 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
| 229 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
| 230 |
+
</block>
|
| 231 |
+
</block>
|
| 232 |
+
</block>
|
| 233 |
+
</adminhtml_mobile_previewcatalog>
|
| 234 |
+
|
| 235 |
+
<adminhtml_mobile_previewproductinfo>
|
| 236 |
+
<block type="core/text_list" name="root" output="toHtml">
|
| 237 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_productinfo_content">
|
| 238 |
+
<action method="setTemplate"><templateType>productinfo</templateType></action>
|
| 239 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
| 240 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
| 241 |
+
</block>
|
| 242 |
+
</block>
|
| 243 |
+
</block>
|
| 244 |
+
</adminhtml_mobile_previewproductinfo>
|
| 245 |
+
|
| 246 |
+
<!-- Admin application actions -->
|
| 247 |
+
<adminhtml_admin_application_index>
|
| 248 |
+
<reference name="left">
|
| 249 |
+
<block type="xmlconnect/adminhtml_admin_application_edit_tabs" name="admin_app_settings_tabs"/>
|
| 250 |
+
</reference>
|
| 251 |
+
<reference name="content">
|
| 252 |
+
<block type="xmlconnect/adminhtml_admin_application_edit" name="admin_app_settings"/>
|
| 253 |
+
</reference>
|
| 254 |
+
</adminhtml_admin_application_index>
|
| 255 |
+
|
| 256 |
+
<adminhtml_connect_config_index>
|
| 257 |
+
<block type="xmlconnect/adminhtml_connect_config" name="admin.connect.config" output="toHtml"/>
|
| 258 |
+
</adminhtml_connect_config_index>
|
| 259 |
+
|
| 260 |
+
<adminhtml_connect_config_localization>
|
| 261 |
+
<block type="xmlconnect/localization" name="xmlconnect.localization" output="toHtml"/>
|
| 262 |
+
</adminhtml_connect_config_localization>
|
| 263 |
+
|
| 264 |
+
<adminhtml_connect_dashboard_index>
|
| 265 |
+
<block type="xmlconnect/adminhtml_connect_dashboard" name="admin.connect.dashboard" output="toHtml">
|
| 266 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_storeSwitcher" name="admin.connect.store.switcher" as="store_switcher"/>
|
| 267 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_salesInfo" name="dashboard.sales.info" as="sales_info"/>
|
| 268 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_graphInfo" name="dashboard.graph.info" as="graph_info">
|
| 269 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_graphOrderData" name="dashboard.graph.order.data" as="graph_order_data"/>
|
| 270 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_graphAmountsData" name="dashboard.graph.amounts.data" as="graph_amounts_data"/>
|
| 271 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_graphTotalsData" name="dashboard.graph.totals.data" as="graph_totals_data"/>
|
| 272 |
+
</block>
|
| 273 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_lastOrders" name="dashboard.last.orders" as="last_orders"/>
|
| 274 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_lastSearchTerms" name="dashboard.last.search.terms" as="last_search_terms"/>
|
| 275 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_newCustomers" name="dashboard.new.customers" as="new_customers"/>
|
| 276 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_topSearchTerms" name="dashboard.top.search.terms" as="top_search_terms"/>
|
| 277 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_mostViewedProducts" name="dashboard.most.viewed.products" as="most_viewed"/>
|
| 278 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_bestSellers" name="dashboard.best.sellers" as="best_sellers"/>
|
| 279 |
+
<block type="xmlconnect/adminhtml_connect_dashboard_customers" name="dashboard.customers" as="customers"/>
|
| 280 |
+
</block>
|
| 281 |
+
</adminhtml_connect_dashboard_index>
|
| 282 |
+
</layout>
|
app/design/adminhtml/default/default/locale/en_US/translate.csv
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"Credit Card Type","Credit Card Type"
|
| 2 |
+
"Add New User","Add New User"
|
| 3 |
+
"Items that you don","Items that you don"
|
| 4 |
+
"State/Province","State/Province"
|
| 5 |
+
"Magento Commerce - Administrative Panel","Magento Commerce - Administrative Panel"
|
| 6 |
+
"3 stars","3 stars"
|
| 7 |
+
"Credit Memo Date","Credit Memo Date"
|
| 8 |
+
"Double click on a group to rename it","Double click on a group to rename it"
|
| 9 |
+
"Rating Not Available","Rating Not Available"
|
| 10 |
+
"Gift Certificate","Gift Certificate"
|
| 11 |
+
"Assigned Answers","Assigned Answers"
|
| 12 |
+
"Fax","Fax"
|
| 13 |
+
"Magento Admin","Magento Admin"
|
| 14 |
+
"Newsletter Message Preview","Newsletter Message Preview"
|
| 15 |
+
"4 stars","4 stars"
|
| 16 |
+
"Company","Company"
|
| 17 |
+
"Invoice Date","Invoice Date"
|
| 18 |
+
"Qty Returned","Qty Returned"
|
| 19 |
+
"Add New Customer Group","Add New Customer Group"
|
| 20 |
+
"Visitors","Visitors"
|
| 21 |
+
"Shipping Method","Shipping Method"
|
| 22 |
+
"Subtotal","Subtotal"
|
| 23 |
+
"5 stars","5 stars"
|
| 24 |
+
"Choose Store","Choose Store"
|
| 25 |
+
"Import Tax Rates","Import Tax Rates"
|
| 26 |
+
"Roles","Roles"
|
| 27 |
+
"If you do not specify an option value for a store then the default value will be used.","If you do not specify an option value for a store then the default value will be used."
|
| 28 |
+
"Shipping","Shipping"
|
| 29 |
+
"Select from existing customer addresses:","Select from existing customer addresses:"
|
| 30 |
+
"Products","Products"
|
| 31 |
+
"Edit User ","Edit User "
|
| 32 |
+
"Item Status","Item Status"
|
| 33 |
+
"Set as default billing address","Set as default billing address"
|
| 34 |
+
"Position","Position"
|
| 35 |
+
"Items Ordered","Items Ordered"
|
| 36 |
+
"Fixed","Fixed"
|
| 37 |
+
"%s","%s"
|
| 38 |
+
"Same as Billing Address","Same as Billing Address"
|
| 39 |
+
"Product In Stores","Product In Stores"
|
| 40 |
+
"Working...","Working..."
|
| 41 |
+
"Apply coupon code","Apply coupon code"
|
| 42 |
+
"per page","per page"
|
| 43 |
+
"Tax","Tax"
|
| 44 |
+
"Telephone","Telephone"
|
| 45 |
+
"Wishlist","Wishlist"
|
| 46 |
+
"Magento","Magento"
|
| 47 |
+
"Expiration Date","Expiration Date"
|
| 48 |
+
"Add New Class","Add New Class"
|
| 49 |
+
"Super product attributes configuration","Super product attributes configuration"
|
| 50 |
+
"Previus page","Previus page"
|
| 51 |
+
"Something went wrong...","Something went wrong..."
|
| 52 |
+
"Lifetime Sales","Lifetime Sales"
|
| 53 |
+
"SKU","SKU"
|
| 54 |
+
"Log Out","Log Out"
|
| 55 |
+
"Failed","Failed"
|
| 56 |
+
"Billing Address","Billing Address"
|
| 57 |
+
"Log into Magento Admin Page","Log into Magento Admin Page"
|
| 58 |
+
"Invoice Status","Invoice Status"
|
| 59 |
+
"CC Type","CC Type"
|
| 60 |
+
"Percentage","Percentage"
|
| 61 |
+
"Are you sure?","Are you sure?"
|
| 62 |
+
"Email","Email"
|
| 63 |
+
"Customer Group:","Customer Group:"
|
| 64 |
+
"Option","Option"
|
| 65 |
+
"Primary Billing Address","Primary Billing Address"
|
| 66 |
+
"Create Backup","Create Backup"
|
| 67 |
+
"Manage Options (values for your attribute)","Manage Options (values for your attribute)"
|
| 68 |
+
"Total Due","Total Due"
|
| 69 |
+
"Copyright 2007","Copyright 2007"
|
| 70 |
+
"Newsletter Subscribers","Newsletter Subscribers"
|
| 71 |
+
"CC Number","CC Number"
|
| 72 |
+
"Add New Tax Rate","Add New Tax Rate"
|
| 73 |
+
"Product Name","Product Name"
|
| 74 |
+
"Country","Country"
|
| 75 |
+
"Purchase order number","Purchase order number"
|
| 76 |
+
"Date and Time","Date and Time"
|
| 77 |
+
"Categories","Categories"
|
| 78 |
+
"Qty Cancelled","Qty Cancelled"
|
| 79 |
+
"Card Verification Number","Card Verification Number"
|
| 80 |
+
"Order Date","Order Date"
|
| 81 |
+
"This tab contains invalid data. Please correct before saving.","This tab contains invalid data. Please correct before saving."
|
| 82 |
+
"Customer Balance","Customer Balance"
|
| 83 |
+
"Update Qty","Update Qty"
|
| 84 |
+
"Customer Groups","Customer Groups"
|
| 85 |
+
"Export to","Export to"
|
| 86 |
+
"configuration","configuration"
|
| 87 |
+
"Sorry, no quotes are available for this order at this time.","Sorry, no quotes are available for this order at this time."
|
| 88 |
+
"Options","Options"
|
| 89 |
+
"Attribute Name","Attribute Name"
|
| 90 |
+
"Total <strong>%d</strong> records found","Total <strong>%d</strong> records found"
|
| 91 |
+
"Comment","Comment"
|
| 92 |
+
"Set as default shipping address","Set as default shipping address"
|
| 93 |
+
"Last Name","Last Name"
|
| 94 |
+
"of","of"
|
| 95 |
+
"Newsletter Problem Reports","Newsletter Problem Reports"
|
| 96 |
+
"Sales Statistics","Sales Statistics"
|
| 97 |
+
"Qty To Return","Qty To Return"
|
| 98 |
+
"New Customer Address","New Customer Address"
|
| 99 |
+
"Roles Resources","Roles Resources"
|
| 100 |
+
"Zip/Post Code","Zip/Post Code"
|
| 101 |
+
"Order Status","Order Status"
|
| 102 |
+
"Store","Store"
|
| 103 |
+
"Product Categories","Product Categories"
|
| 104 |
+
"Online Customers","Online Customers"
|
| 105 |
+
"Next page","Next page"
|
| 106 |
+
"Items Shipped","Items Shipped"
|
| 107 |
+
"Unassigned Attributes","Unassigned Attributes"
|
| 108 |
+
"Not Charged Yet","Not Charged Yet"
|
| 109 |
+
"This group contains system attributes.\nPlease, move system attributes to another group and try again.","This group contains system attributes.\nPlease, move system attributes to another group and try again."
|
| 110 |
+
"copy data from","copy data from"
|
| 111 |
+
"Add","Add"
|
| 112 |
+
"Total Payed","Total Payed"
|
| 113 |
+
"Shopping Cart","Shopping Cart"
|
| 114 |
+
"Order History","Order History"
|
| 115 |
+
"Empty","Empty"
|
| 116 |
+
"Unable to complete request. Please, try again later.","Unable to complete request. Please, try again later."
|
| 117 |
+
"Customers","Customers"
|
| 118 |
+
"Customer does not have any addresses","Customer does not have any addresses"
|
| 119 |
+
"Add New Role","Add New Role"
|
| 120 |
+
"Street Address","Street Address"
|
| 121 |
+
"Are You Sure?","Are You Sure?"
|
| 122 |
+
"Shipping Address","Shipping Address"
|
| 123 |
+
"Paid","Paid"
|
| 124 |
+
"Page","Page"
|
| 125 |
+
"Discount","Discount"
|
| 126 |
+
"Set root category for this store in","Set root category for this store in"
|
| 127 |
+
"Groups","Groups"
|
| 128 |
+
"View","View"
|
| 129 |
+
"Qty Ordered","Qty Ordered"
|
| 130 |
+
"Global Record Search","Global Record Search"
|
| 131 |
+
"Card Number","Card Number"
|
| 132 |
+
"PO Number","PO Number"
|
| 133 |
+
"Grand Total","Grand Total"
|
| 134 |
+
"Please select one or more attributes.","Please select one or more attributes."
|
| 135 |
+
"Dashboard","Dashboard"
|
| 136 |
+
"Are you sure you want to do this?","Are you sure you want to do this?"
|
| 137 |
+
"Please add one or more options","Please add one or more options"
|
| 138 |
+
"Role Users","Role Users"
|
| 139 |
+
"Add New Tax Rule","Add New Tax Rule"
|
| 140 |
+
"Subscribe to newsletter","Subscribe to newsletter"
|
| 141 |
+
"Dashboard Control","Dashboard Control"
|
| 142 |
+
"Default Shipping","Default Shipping"
|
| 143 |
+
"Qty","Qty"
|
| 144 |
+
"Add to Queue","Add to Queue"
|
| 145 |
+
"Average Sale","Average Sale"
|
| 146 |
+
"Cancel","Cancel"
|
| 147 |
+
"All stores","All stores"
|
| 148 |
+
"Personal Information","Personal Information"
|
| 149 |
+
"City","City"
|
| 150 |
+
"Export Tax Rates","Export Tax Rates"
|
| 151 |
+
"1 star","1 star"
|
| 152 |
+
"Current Configuration Scope","Current Configuration Scope"
|
| 153 |
+
"Add New Template","Add New Template"
|
| 154 |
+
"Move to:","Move to:"
|
| 155 |
+
"First Name","First Name"
|
| 156 |
+
"Change Order Status","Change Order Status"
|
| 157 |
+
"Are you sure you want to delete this address?","Are you sure you want to delete this address?"
|
| 158 |
+
"Are you sure you want to do it?","Are you sure you want to do it?"
|
| 159 |
+
"Add to Order","Add to Order"
|
| 160 |
+
"Product ID","Product ID"
|
| 161 |
+
"Payment Method","Payment Method"
|
| 162 |
+
"What is this?","What is this?"
|
| 163 |
+
"Users","Users"
|
| 164 |
+
"Customer Addresses","Customer Addresses"
|
| 165 |
+
"Qty Backordered","Qty Backordered"
|
| 166 |
+
"You can not remove system attribute from this set.","You can not remove system attribute from this set."
|
| 167 |
+
"Price","Price"
|
| 168 |
+
"Who","Who"
|
| 169 |
+
"Rating Not Alvailable","Rating Not Alvailable"
|
| 170 |
+
"Order Comment","Order Comment"
|
| 171 |
+
"Edit Role","Edit Role"
|
| 172 |
+
"Tax Rates Import / Export","Tax Rates Import / Export"
|
| 173 |
+
"Magento Logo","Magento Logo"
|
| 174 |
+
"A name is required","A name is required"
|
| 175 |
+
"Assigned options","Assigned options"
|
| 176 |
+
"Please Enter New Group Name","Please Enter New Group Name"
|
| 177 |
+
"Name","Name"
|
| 178 |
+
"Email Preview","Email Preview"
|
| 179 |
+
"Newsletter Queue","Newsletter Queue"
|
| 180 |
+
"Remove","Remove"
|
| 181 |
+
"Last Log In:","Last Log In:"
|
| 182 |
+
"Logged in as <strong>%s</strong>","Logged in as <strong>%s</strong>"
|
| 183 |
+
"Name on Card","Name on Card"
|
| 184 |
+
"All Stores","All Stores"
|
| 185 |
+
"Send comment to customer","Send comment to customer"
|
| 186 |
+
"Account Created on:","Account Created on:"
|
| 187 |
+
"Backups Control","Backups Control"
|
| 188 |
+
"Add New Address","Add New Address"
|
| 189 |
+
"Account Created in:","Account Created in:"
|
| 190 |
+
"Default Billing","Default Billing"
|
| 191 |
+
"Manage Titles (Size, Color, etc.)","Manage Titles (Size, Color, etc.)"
|
| 192 |
+
"Please confirm site switching. All data not saved will be lost.","Please confirm site switching. All data not saved will be lost."
|
| 193 |
+
"Please select from each ratings above","Please select from each ratings above"
|
| 194 |
+
"Qty Shipped","Qty Shipped"
|
| 195 |
+
"Are you sure you want to cancel add this address?","Are you sure you want to cancel add this address?"
|
| 196 |
+
"The information in this tab has been changed.","The information in this tab has been changed."
|
| 197 |
+
"2 stars","2 stars"
|
| 198 |
+
"Apply","Apply"
|
| 199 |
+
"Total","Total"
|
| 200 |
+
"User roles","User roles"
|
| 201 |
+
"Wishlist Report","Wishlist Report"
|
app/design/adminhtml/default/default/template/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/template/access_denied.phtml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Adminhtml_Block_Denied
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<h1 class="page-heading"><?php echo $this->helper('adminhtml')->__('Access denied') ?></h1>
|
| 33 |
+
<?php if (!$this->hasAvailaleResources()): ?>
|
| 34 |
+
<p>
|
| 35 |
+
<?php echo $this->helper('adminhtml')->__('Please try to logout and sign in again.') ?><br/>
|
| 36 |
+
<?php echo $this->helper('adminhtml')->__('If this message persists, please contact the store owner.') ?>
|
| 37 |
+
</p>
|
| 38 |
+
<?php else: ?>
|
| 39 |
+
<p><?php echo $this->helper('adminhtml')->__('Access denied.') ?></p>
|
| 40 |
+
<?php endif?>
|
app/design/adminhtml/default/default/template/api/role_users_grid_js.phtml
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
<!--
|
| 29 |
+
<?php $myBlock = $this->getLayout()->getBlock('roleUsersGrid'); ?>
|
| 30 |
+
<?php if( is_object($myBlock) && $myBlock->getJsObjectName() ): ?>
|
| 31 |
+
var checkBoxes = $H({});
|
| 32 |
+
var warning = false;
|
| 33 |
+
var inRoleUsers = $H(<?php echo $myBlock->_getUsers(true) ?>);
|
| 34 |
+
if (inRoleUsers.size() > 0) warning = true;
|
| 35 |
+
$('in_role_user').value = inRoleUsers.toQueryString();
|
| 36 |
+
|
| 37 |
+
function registerUserRole(grid, element, checked){
|
| 38 |
+
if(checked){
|
| 39 |
+
inRoleUsers.set(element.value, 0);
|
| 40 |
+
} else {
|
| 41 |
+
inRoleUsers.unset(element.value);
|
| 42 |
+
}
|
| 43 |
+
$('in_role_user').value = inRoleUsers.toQueryString();
|
| 44 |
+
grid.reloadParams = {'in_role_user[]':inRoleUsers.keys()};
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
function roleUsersRowClick(grid, event){
|
| 48 |
+
var trElement = Event.findElement(event, 'tr');
|
| 49 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 50 |
+
if(trElement){
|
| 51 |
+
var checkbox = Element.getElementsBySelector(trElement, 'input');
|
| 52 |
+
if(checkbox[0]){
|
| 53 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 54 |
+
if (warning && checkBoxes.size() > 0) {
|
| 55 |
+
if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
|
| 56 |
+
checkbox[0].checked = false;
|
| 57 |
+
checkBoxes.each(function(elem) {
|
| 58 |
+
if (elem.value.status == 1) {
|
| 59 |
+
elem.value.object.checked = true;
|
| 60 |
+
}
|
| 61 |
+
});
|
| 62 |
+
return false;
|
| 63 |
+
}
|
| 64 |
+
warning = false;
|
| 65 |
+
}
|
| 66 |
+
<?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(checkbox[0], checked);
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
function roleUsersRowInit(grid, row){
|
| 72 |
+
var checkbox = $(row).getElementsByClassName('checkbox')[0];
|
| 73 |
+
if (checkbox) {
|
| 74 |
+
checkBoxes.set(checkbox.value, {'status' : ((checkbox.checked) ? 1 : 0), 'object' : checkbox});
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
function myhandler(obj)
|
| 79 |
+
{
|
| 80 |
+
if (checkBoxes.size() > 0) {
|
| 81 |
+
if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove those users from already assigned roles\r\nAre you sure?')) ?>") ) {
|
| 82 |
+
obj.checked = false;
|
| 83 |
+
checkBoxes.each(function(elem) {
|
| 84 |
+
if (elem.value.status == 1) {
|
| 85 |
+
elem.value.object.checked = true;
|
| 86 |
+
}
|
| 87 |
+
});
|
| 88 |
+
return false;
|
| 89 |
+
}
|
| 90 |
+
warning = false;
|
| 91 |
+
}
|
| 92 |
+
checkBoxes.each(function(elem) {
|
| 93 |
+
<?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(elem.value.object, obj.checked);
|
| 94 |
+
});
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
<?php echo $myBlock->getJsObjectName() ?>.rowClickCallback = roleUsersRowClick;
|
| 98 |
+
<?php echo $myBlock->getJsObjectName() ?>.initRowCallback = roleUsersRowInit;
|
| 99 |
+
<?php echo $myBlock->getJsObjectName() ?>.checkboxCheckCallback = registerUserRole;
|
| 100 |
+
<?php echo $myBlock->getJsObjectName() ?>.checkCheckboxes = myhandler;
|
| 101 |
+
<?php echo $myBlock->getJsObjectName() ?>.rows.each(function(row){roleUsersRowInit(<?php echo $myBlock->getJsObjectName() ?>, row)});
|
| 102 |
+
$('in_role_user_old').value = $('in_role_user').value;
|
| 103 |
+
<?php endif; ?>
|
| 104 |
+
//-->
|
| 105 |
+
</script>
|
app/design/adminhtml/default/default/template/api/roleinfo.phtml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
/** @var $this Mage_Adminhtml_Block_Api_Tab_Roleinfo */
|
| 27 |
+
|
| 28 |
+
?>
|
| 29 |
+
<div class="content-header">
|
| 30 |
+
<table cellspacing="0">
|
| 31 |
+
<tr>
|
| 32 |
+
<td style="width:50%;"><h3 class="icon-head head-permissions-role"><?php echo ($this->getRoleId() > 0 ) ? ($this->__('Edit Role') . " '{$this->escapeHtml($this->getRoleInfo()->getRoleName())}'") : $this->__('Add New Role') ?></h3></td>
|
| 33 |
+
<td class="form-buttons">
|
| 34 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 35 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 36 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 37 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 38 |
+
</td>
|
| 39 |
+
</tr>
|
| 40 |
+
</table>
|
| 41 |
+
</div>
|
| 42 |
+
<form action="<?php echo $this->getUrl('*/*/saverole') ?>" method="post" id="role_edit_form">
|
| 43 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 44 |
+
</form>
|
| 45 |
+
<script type="text/javascript">
|
| 46 |
+
var roleForm = new varienForm('role_edit_form');
|
| 47 |
+
</script>
|
app/design/adminhtml/default/default/template/api/roles.phtml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-permissions-role"><?php echo $this->__('Roles') ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<button class="scalable add" onclick="window.location='<?php echo $this->getAddNewUrl() ?>'"><span><span><span><?php echo $this->__('Add New Role') ?></span></span></span></button>
|
| 33 |
+
</td>
|
| 34 |
+
</tr>
|
| 35 |
+
</table>
|
| 36 |
+
</div>
|
| 37 |
+
<?php echo $this->getGridHtml() ?>
|
app/design/adminhtml/default/default/template/api/rolesedit.phtml
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Roles Resources') ?></h4>
|
| 30 |
+
</div>
|
| 31 |
+
<input type="hidden" name="resource" id="role_resources" value="">
|
| 32 |
+
<fieldset id="role_resources">
|
| 33 |
+
|
| 34 |
+
<span class="field-row">
|
| 35 |
+
<label for="all"><?php echo $this->__('Resource Access') ?></label>
|
| 36 |
+
<select id="all" name="all" onchange="$('resources_container').toggle()" class="select">
|
| 37 |
+
<option value="0" <?php echo ($this->getEverythingAllowed()?'':'selected="selected"'); ?>><?php echo $this->__('Custom') ?></option>
|
| 38 |
+
<option value="1" <?php echo ($this->getEverythingAllowed()?'selected="selected"':''); ?>><?php echo $this->__('All') ?></option>
|
| 39 |
+
</select>
|
| 40 |
+
</span>
|
| 41 |
+
|
| 42 |
+
<span class="field-row" id="resources_container">
|
| 43 |
+
<label><?php echo $this->__('Resources') ?></label>
|
| 44 |
+
<div class="f-left">
|
| 45 |
+
<div class="tree x-tree" id="resource-tree"></div>
|
| 46 |
+
</div>
|
| 47 |
+
</span>
|
| 48 |
+
|
| 49 |
+
</fieldset>
|
| 50 |
+
</div>
|
| 51 |
+
<!-- Draw Resources Tree -->
|
| 52 |
+
<script type="text/javascript">
|
| 53 |
+
<?php if($this->getEverythingAllowed()): ?>
|
| 54 |
+
$('resources_container').hide();
|
| 55 |
+
<?php endif; ?>
|
| 56 |
+
Ext.EventManager.onDocumentReady(function() {
|
| 57 |
+
var tree = new Ext.tree.TreePanel('resource-tree', {
|
| 58 |
+
animate:false,
|
| 59 |
+
loader: false,
|
| 60 |
+
enableDD:false,
|
| 61 |
+
containerScroll: true,
|
| 62 |
+
rootUIProvider: Ext.tree.CheckboxNodeUI,
|
| 63 |
+
selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 64 |
+
rootVisible: false
|
| 65 |
+
});
|
| 66 |
+
|
| 67 |
+
tree.on('check', checkHandler, tree);
|
| 68 |
+
|
| 69 |
+
// set the root node
|
| 70 |
+
var root = new Ext.tree.TreeNode({
|
| 71 |
+
text: 'root',
|
| 72 |
+
draggable:false,
|
| 73 |
+
checked:'false',
|
| 74 |
+
id:'__root__',
|
| 75 |
+
uiProvider: Ext.tree.CheckboxNodeUI
|
| 76 |
+
});
|
| 77 |
+
|
| 78 |
+
tree.setRootNode(root);
|
| 79 |
+
bildResourcesTree(root, <?php echo $this->getResTreeJson() ?>);
|
| 80 |
+
tree.addListener('click', resourceClick.createDelegate(this));
|
| 81 |
+
|
| 82 |
+
// render the tree
|
| 83 |
+
tree.render();
|
| 84 |
+
// root.expand();
|
| 85 |
+
tree.expandAll();
|
| 86 |
+
|
| 87 |
+
$('role_resources').value = tree.getChecked().join(',');
|
| 88 |
+
});
|
| 89 |
+
|
| 90 |
+
function resourceClick(node, e){
|
| 91 |
+
node.getUI().check(!node.getUI().checked());
|
| 92 |
+
varienElementMethods.setHasChanges(Event.element(e), e);
|
| 93 |
+
};
|
| 94 |
+
|
| 95 |
+
function bildResourcesTree(parent, config){
|
| 96 |
+
if (!config) return null;
|
| 97 |
+
|
| 98 |
+
if (parent && config && config.length){
|
| 99 |
+
for (var i = 0; i < config.length; i++){
|
| 100 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 101 |
+
var node = new Ext.tree.TreeNode(config[i]);
|
| 102 |
+
parent.appendChild(node);
|
| 103 |
+
if(config[i].children){
|
| 104 |
+
bildResourcesTree(node, config[i].children);
|
| 105 |
+
}
|
| 106 |
+
}
|
| 107 |
+
}
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
function checkHandler(node)
|
| 111 |
+
{
|
| 112 |
+
if ( node.attributes.checked && node.parentNode ) {
|
| 113 |
+
var n = node.parentNode;
|
| 114 |
+
this.removeListener('check', checkHandler);
|
| 115 |
+
do {
|
| 116 |
+
if (!n || n.attributes.id == 'admin' || n.attributes.id == '__root__') {
|
| 117 |
+
break;
|
| 118 |
+
} else {
|
| 119 |
+
n.ui.check(true);
|
| 120 |
+
}
|
| 121 |
+
} while (n = n.parentNode );
|
| 122 |
+
this.on('check', checkHandler);
|
| 123 |
+
}
|
| 124 |
+
if ( !node.isLeaf() && node.hasChildNodes() ) {
|
| 125 |
+
this.removeListener('check', checkHandler);
|
| 126 |
+
processChildren(node, node.attributes.checked);
|
| 127 |
+
this.on('check', checkHandler);
|
| 128 |
+
}
|
| 129 |
+
$('role_resources').value = this.getChecked().join(',');
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
function processChildren(node, state)
|
| 133 |
+
{
|
| 134 |
+
if ( !node.hasChildNodes() ) return false;
|
| 135 |
+
for(var i = 0; i < node.childNodes.length; i++ ) {
|
| 136 |
+
node.childNodes[i].ui.check(state);
|
| 137 |
+
if ( node.childNodes[i].hasChildNodes() ) {
|
| 138 |
+
processChildren(node.childNodes[i], state);
|
| 139 |
+
}
|
| 140 |
+
}
|
| 141 |
+
return true;
|
| 142 |
+
}
|
| 143 |
+
</script>
|
app/design/adminhtml/default/default/template/api/rolesusers.phtml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('Role Users') ?></h4>
|
| 28 |
+
<?php echo $this->_getGridHtml() ?>
|
app/design/adminhtml/default/default/template/api/user_roles_grid_js.phtml
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
<!--
|
| 29 |
+
<?php $myBlock = $this->getLayout()->getBlock('user.roles.grid'); ?>
|
| 30 |
+
<?php if( is_object($myBlock) && $myBlock->getJsObjectName()): ?>
|
| 31 |
+
var radioBoxes = $H({});
|
| 32 |
+
var warning = false;
|
| 33 |
+
var userRoles = $H(<?php echo $myBlock->_getSelectedRoles(true) ?>);
|
| 34 |
+
if (userRoles.size() > 0) warning = true;
|
| 35 |
+
$('user_user_roles').value = userRoles.toQueryString();
|
| 36 |
+
|
| 37 |
+
function registerUserRole(grid, element, checked){
|
| 38 |
+
if(checked){
|
| 39 |
+
userRoles.each(function(o){userRoles.remove(o[0]);});
|
| 40 |
+
userRoles[element.value] = 0;
|
| 41 |
+
} else {
|
| 42 |
+
userRoles.remove(element.value);
|
| 43 |
+
}
|
| 44 |
+
$('user_user_roles').value = userRoles.toQueryString();
|
| 45 |
+
grid.reloadParams = {'user_roles[]':userRoles.keys()};
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
function roleRowClick(grid, event){
|
| 49 |
+
var trElement = Event.findElement(event, 'tr');
|
| 50 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 51 |
+
if(trElement){
|
| 52 |
+
var checkbox = Element.getElementsBySelector(trElement, 'input');
|
| 53 |
+
if(checkbox[0] && !checkbox[0].checked){
|
| 54 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 55 |
+
if (checked && warning && radioBoxes.size() > 0) {
|
| 56 |
+
if ( !confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
|
| 57 |
+
checkbox[0].checked = false;
|
| 58 |
+
for(i in radioBoxes) {
|
| 59 |
+
if( radioBoxes[i].status == 1) {
|
| 60 |
+
radioBoxes[i].object.checked = true;
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
return false;
|
| 64 |
+
}
|
| 65 |
+
warning = false;
|
| 66 |
+
}
|
| 67 |
+
<?php echo $myBlock->getJsObjectName() ?>.setCheckboxChecked(checkbox[0], checked);
|
| 68 |
+
}
|
| 69 |
+
}
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
function rolesRowInit(grid, row){
|
| 73 |
+
var checkbox = $(row).getElementsByClassName('radio')[0];
|
| 74 |
+
if (checkbox) {
|
| 75 |
+
radioBoxes[checkbox.value] = {'status' : ((checkbox.checked) ? 1 : 0), 'object' : checkbox};
|
| 76 |
+
}
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
<?php echo $myBlock->getJsObjectName() ?>.rowClickCallback = roleRowClick;
|
| 80 |
+
<?php echo $myBlock->getJsObjectName() ?>.initRowCallback = rolesRowInit;
|
| 81 |
+
<?php echo $myBlock->getJsObjectName() ?>.checkboxCheckCallback = registerUserRole;
|
| 82 |
+
<?php echo $myBlock->getJsObjectName() ?>.rows.each(function(row){rolesRowInit(<?php echo $myBlock->getJsObjectName() ?>, row)});
|
| 83 |
+
<?php endif; ?>
|
| 84 |
+
//-->
|
| 85 |
+
</script>
|
app/design/adminhtml/default/default/template/api/userinfo.phtml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;">
|
| 31 |
+
<h3>
|
| 32 |
+
<?php if($this->getUser()->getUserId()): ?>
|
| 33 |
+
<?php $_userName = $this->getUser()->getFirstname() . ' ' . $this->getUser()->getLastname() ?>
|
| 34 |
+
<?php echo $this->__("Edit User '%s'", $_userName) ?>
|
| 35 |
+
<?php else: ?>
|
| 36 |
+
<?php echo $this->__('Add New User') ?>
|
| 37 |
+
<?php endif; ?>
|
| 38 |
+
</h3>
|
| 39 |
+
</td>
|
| 40 |
+
<td class="form-buttons">
|
| 41 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 42 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 43 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 44 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 45 |
+
</table>
|
| 46 |
+
</div>
|
| 47 |
+
<form action="<?php echo $this->getUrl('*/*/saveuser') ?>" method="post" id="user_edit_form">
|
| 48 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 49 |
+
</form>
|
| 50 |
+
<script type="text/javascript">
|
| 51 |
+
var userForm = new varienForm('user_edit_form');
|
| 52 |
+
</script>
|
app/design/adminhtml/default/default/template/api/usernroles.phtml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div id="roles">
|
| 28 |
+
<li class="add"><a href="<?php echo $this->getUrl('*/*/edituser') ?>"><?php echo $this->__('Add New User') ?></a></li>
|
| 29 |
+
<li class="add"><a href="<?php echo $this->getUrl('*/*/editroles') ?>"><?php echo $this->__('Add New Role') ?></a></li>
|
| 30 |
+
</div>
|
| 31 |
+
<div class="clear"></div>
|
app/design/adminhtml/default/default/template/api/userroles.phtml
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('User Roles') ?></h4>
|
| 30 |
+
</div>
|
| 31 |
+
<fieldset id="user_roles">
|
| 32 |
+
<?php foreach ($roles as $role): ?>
|
| 33 |
+
<?php
|
| 34 |
+
$checked = false;
|
| 35 |
+
foreach( $user_roles->getItems() as $user_role )
|
| 36 |
+
{
|
| 37 |
+
if( $user_role->getParentId() == $role->getRoleId() ) {
|
| 38 |
+
$checked = true;
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
?>
|
| 42 |
+
<input type="checkbox" value="<?php echo $role->getRoleId(); ?>" <?php echo ($checked ? "checked" : ""); ?> name="roles[]" id="_<?php echo $role->getRoleId(); ?>" /> <label for="_<?php echo $role->getRoleId(); ?>" class="normal"><?php echo $role->getRoleName(); ?></label><br />
|
| 43 |
+
<?php endforeach; ?>
|
| 44 |
+
</fieldset>
|
| 45 |
+
</div>
|
app/design/adminhtml/default/default/template/api/users.phtml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3><?php echo $this->__('Users') ?></h3></td>
|
| 31 |
+
<td class="a-right">
|
| 32 |
+
<button class="scalable add" onclick="window.location='<?php echo $this->getAddNewUrl() ?>'"><span><span><span><?php echo $this->__('Add New User') ?></span></span></span></button>
|
| 33 |
+
</td>
|
| 34 |
+
</tr>
|
| 35 |
+
</table>
|
| 36 |
+
</div>
|
| 37 |
+
<div>
|
| 38 |
+
<?php echo $this->getGridHtml() ?>
|
| 39 |
+
</div>
|
| 40 |
+
|
app/design/adminhtml/default/default/template/api2/attribute/buttons.phtml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
/** @var $this Mage_Api2_Block_Adminhtml_Attribute_Buttons */
|
| 27 |
+
|
| 28 |
+
?>
|
| 29 |
+
<div class="content-header">
|
| 30 |
+
<table cellspacing="0">
|
| 31 |
+
<tr>
|
| 32 |
+
<td style="width:50%;">
|
| 33 |
+
<h3 class="icon-head head-permissions-role">
|
| 34 |
+
<?php echo $this->getCaption() ?>
|
| 35 |
+
</h3>
|
| 36 |
+
</td>
|
| 37 |
+
<td class="form-buttons">
|
| 38 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 39 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 40 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 41 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 42 |
+
</td>
|
| 43 |
+
</tr>
|
| 44 |
+
</table>
|
| 45 |
+
</div>
|
| 46 |
+
<form action="<?php echo $this->getUrl('*/*/save') ?>" method="post" id="role_edit_form">
|
| 47 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 48 |
+
</form>
|
| 49 |
+
<script type="text/javascript">
|
| 50 |
+
//<![CDATA[
|
| 51 |
+
var roleForm = new varienForm('role_edit_form');
|
| 52 |
+
//]]>
|
| 53 |
+
</script>
|
app/design/adminhtml/default/default/template/api2/attribute/resource.phtml
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
/**
|
| 30 |
+
* @see Mage_Api2_Block_Adminhtml_Attribute_Tab_Resource
|
| 31 |
+
*/
|
| 32 |
+
?>
|
| 33 |
+
|
| 34 |
+
<?php echo $this->getChildHtml(); ?>
|
| 35 |
+
|
| 36 |
+
<div class="entry-edit">
|
| 37 |
+
<div class="entry-edit-head">
|
| 38 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('User Type Resources') ?></h4>
|
| 39 |
+
</div>
|
| 40 |
+
<input type="hidden" name="resource" id="role_resources" value="" />
|
| 41 |
+
<fieldset id="role_resources">
|
| 42 |
+
|
| 43 |
+
<span class="field-row">
|
| 44 |
+
<label for="all"><?php echo $this->__('Resource Access') ?></label>
|
| 45 |
+
<select id="all" name="all" onchange="$('resources_container').toggle()" class="select">
|
| 46 |
+
<option value="0" <?php echo ($this->getEverythingAllowed()?'':'selected'); ?>><?php echo $this->__('Custom') ?></option>
|
| 47 |
+
<option value="1" <?php echo ($this->getEverythingAllowed()?'selected':''); ?>><?php echo $this->__('All') ?></option>
|
| 48 |
+
</select>
|
| 49 |
+
</span>
|
| 50 |
+
|
| 51 |
+
<span class="field-row" id="resources_container">
|
| 52 |
+
<label><?php echo $this->__('Resources') ?></label>
|
| 53 |
+
<div class="f-left">
|
| 54 |
+
<div class="tree x-tree" id="resource-tree"></div>
|
| 55 |
+
</div>
|
| 56 |
+
<?php if ($this->hasEntityOnlyAttributes()): ?>
|
| 57 |
+
<div class="clear"></div>
|
| 58 |
+
<span>* This attribute data will be returned for a single resource only.</span>
|
| 59 |
+
<?php endif; ?>
|
| 60 |
+
</span>
|
| 61 |
+
|
| 62 |
+
</fieldset>
|
| 63 |
+
</div>
|
| 64 |
+
<!-- Draw Resources Tree -->
|
| 65 |
+
<script type="text/javascript">
|
| 66 |
+
//<![CDATA[
|
| 67 |
+
<?php if($this->getEverythingAllowed()): ?>
|
| 68 |
+
$('resources_container').hide();
|
| 69 |
+
<?php endif; ?>
|
| 70 |
+
Ext.EventManager.onDocumentReady(function() {
|
| 71 |
+
var tree = new Ext.tree.TreePanel('resource-tree', {
|
| 72 |
+
animate:false,
|
| 73 |
+
loader: false,
|
| 74 |
+
enableDD:false,
|
| 75 |
+
containerScroll: true,
|
| 76 |
+
rootUIProvider: Ext.tree.CheckboxNodeUI,
|
| 77 |
+
selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 78 |
+
rootVisible: false
|
| 79 |
+
});
|
| 80 |
+
|
| 81 |
+
tree.on('check', checkHandler, tree);
|
| 82 |
+
|
| 83 |
+
// set the root node
|
| 84 |
+
var root = new Ext.tree.TreeNode({
|
| 85 |
+
text: 'root',
|
| 86 |
+
draggable:false,
|
| 87 |
+
checked:'false',
|
| 88 |
+
id:'__root__',
|
| 89 |
+
uiProvider: Ext.tree.CheckboxNodeUI
|
| 90 |
+
});
|
| 91 |
+
|
| 92 |
+
tree.setRootNode(root);
|
| 93 |
+
bildResourcesTree(root, <?php echo $this->getResTreeJson() ?>);
|
| 94 |
+
tree.addListener('click', resourceClick.createDelegate(this));
|
| 95 |
+
|
| 96 |
+
// render the tree
|
| 97 |
+
tree.render();
|
| 98 |
+
// root.expand();
|
| 99 |
+
tree.expandAll();
|
| 100 |
+
|
| 101 |
+
$('role_resources').value = tree.getChecked().join(',');
|
| 102 |
+
});
|
| 103 |
+
|
| 104 |
+
function resourceClick(node, e){
|
| 105 |
+
node.getUI().check(!node.getUI().checked());
|
| 106 |
+
varienElementMethods.setHasChanges(Event.element(e), e);
|
| 107 |
+
};
|
| 108 |
+
|
| 109 |
+
function bildResourcesTree(parent, config){
|
| 110 |
+
if (!config) return null;
|
| 111 |
+
|
| 112 |
+
if (parent && config && config.length){
|
| 113 |
+
for (var i = 0; i < config.length; i++){
|
| 114 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 115 |
+
var node = new Ext.tree.TreeNode(config[i]);
|
| 116 |
+
parent.appendChild(node);
|
| 117 |
+
if(config[i].children){
|
| 118 |
+
bildResourcesTree(node, config[i].children);
|
| 119 |
+
}
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
function checkHandler(node)
|
| 125 |
+
{
|
| 126 |
+
if ( node.attributes.checked && node.parentNode ) {
|
| 127 |
+
var n = node.parentNode;
|
| 128 |
+
this.removeListener('check', checkHandler);
|
| 129 |
+
do {
|
| 130 |
+
if (!n || n.attributes.id == 'admin' || n.attributes.id == '__root__') {
|
| 131 |
+
break;
|
| 132 |
+
} else {
|
| 133 |
+
n.ui.check(true);
|
| 134 |
+
}
|
| 135 |
+
} while (n = n.parentNode );
|
| 136 |
+
this.on('check', checkHandler);
|
| 137 |
+
}
|
| 138 |
+
if ( !node.isLeaf() && node.hasChildNodes() ) {
|
| 139 |
+
this.removeListener('check', checkHandler);
|
| 140 |
+
processChildren(node, node.attributes.checked);
|
| 141 |
+
this.on('check', checkHandler);
|
| 142 |
+
}
|
| 143 |
+
$('role_resources').value = this.getChecked().join(',');
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
function processChildren(node, state)
|
| 147 |
+
{
|
| 148 |
+
if ( !node.hasChildNodes() ) return false;
|
| 149 |
+
for(var i = 0; i < node.childNodes.length; i++ ) {
|
| 150 |
+
node.childNodes[i].ui.check(state);
|
| 151 |
+
if ( node.childNodes[i].hasChildNodes() ) {
|
| 152 |
+
processChildren(node.childNodes[i], state);
|
| 153 |
+
}
|
| 154 |
+
}
|
| 155 |
+
return true;
|
| 156 |
+
}
|
| 157 |
+
//]]>
|
| 158 |
+
</script>
|
app/design/adminhtml/default/default/template/api2/permissions/user/edit/tab/roles/js.phtml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 29 |
+
//<![CDATA[
|
| 30 |
+
var activeRestRole = getActiveRestRole();
|
| 31 |
+
|
| 32 |
+
/* Retrieve current active rest role */
|
| 33 |
+
function getActiveRestRole() {
|
| 34 |
+
var role;
|
| 35 |
+
api2_roles_sectionJsObject.rows.each(function(row) {
|
| 36 |
+
var radiobox = $(row).getElementsByClassName('radio')[0];
|
| 37 |
+
if ('undefined' != typeof radiobox && radiobox.checked) {
|
| 38 |
+
role = radiobox;
|
| 39 |
+
}
|
| 40 |
+
});
|
| 41 |
+
return role;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
/* Callback function for rest role row click */
|
| 45 |
+
function restRolesRowClick(grid, event) {
|
| 46 |
+
var newRestRole = getActiveRestRole();
|
| 47 |
+
if (newRestRole.value !== activeRestRole.value) {
|
| 48 |
+
if (!confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>")) {
|
| 49 |
+
newRestRole.checked = !newRestRole.checked;
|
| 50 |
+
activeRestRole.checked = true;
|
| 51 |
+
} else {
|
| 52 |
+
activeRestRole = newRestRole;
|
| 53 |
+
}
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
api2_roles_sectionJsObject.rowClickCallback = restRolesRowClick;
|
| 58 |
+
//]]>
|
| 59 |
+
</script>
|
app/design/adminhtml/default/default/template/api2/role/buttons.phtml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /** @var $this Mage_Adminhtml_Block_Api_Tab_Roleinfo */ ?>
|
| 28 |
+
<div class="content-header">
|
| 29 |
+
<table cellspacing="0">
|
| 30 |
+
<tr>
|
| 31 |
+
<td style="width:50%;">
|
| 32 |
+
<h3 class="icon-head head-permissions-role">
|
| 33 |
+
<?php echo $this->getCaption() ?>
|
| 34 |
+
</h3>
|
| 35 |
+
</td>
|
| 36 |
+
<td class="form-buttons">
|
| 37 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 38 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 39 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 40 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 41 |
+
</td>
|
| 42 |
+
</tr>
|
| 43 |
+
</table>
|
| 44 |
+
</div>
|
| 45 |
+
<form action="<?php echo $this->getUrl('*/*/save') ?>" method="post" id="role_edit_form">
|
| 46 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 47 |
+
</form>
|
| 48 |
+
<script type="text/javascript">
|
| 49 |
+
//<![CDATA[
|
| 50 |
+
var roleForm = new varienForm('role_edit_form');
|
| 51 |
+
//]]>
|
| 52 |
+
</script>
|
app/design/adminhtml/default/default/template/api2/role/users_grid_js.phtml
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 29 |
+
//<![CDATA[
|
| 30 |
+
<?php
|
| 31 |
+
/** @var $myBlock Mage_Api2_Block_Adminhtml_Roles_Tab_Users */
|
| 32 |
+
$myBlock = $this->getLayout()->getBlock('adminhtml.role.edit.tab.users');
|
| 33 |
+
$name = $myBlock->getJsObjectName();
|
| 34 |
+
?>
|
| 35 |
+
<?php if (is_object($myBlock) && $name && !$myBlock->isHidden()): ?>
|
| 36 |
+
var checkBoxes = $H(<?php echo $myBlock->getUsers(true) ?>);
|
| 37 |
+
var warning = false;
|
| 38 |
+
if (checkBoxes.size() > 0) {
|
| 39 |
+
warning = true;
|
| 40 |
+
}
|
| 41 |
+
$('in_role_users').value = checkBoxes.toQueryString();
|
| 42 |
+
|
| 43 |
+
function registerUserRole(grid, element, checked)
|
| 44 |
+
{
|
| 45 |
+
if (checked) {
|
| 46 |
+
checkBoxes.set(element.value, 0);
|
| 47 |
+
} else {
|
| 48 |
+
checkBoxes.unset(element.value);
|
| 49 |
+
}
|
| 50 |
+
$('in_role_users').value = checkBoxes.toQueryString();
|
| 51 |
+
grid.reloadParams = {'in_role_users[]':checkBoxes.keys()};
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
function roleUsersRowClick(grid, event)
|
| 55 |
+
{
|
| 56 |
+
var trElement = Event.findElement(event, 'tr');
|
| 57 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 58 |
+
if (trElement) {
|
| 59 |
+
var checkbox = Element.getElementsBySelector(trElement, 'input');
|
| 60 |
+
if(checkbox[0]){
|
| 61 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 62 |
+
if (checked) {
|
| 63 |
+
checkbox[0].checked = true;
|
| 64 |
+
if ( confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove this user from already assigned role\r\nAre you sure?')) ?>") ) {
|
| 65 |
+
checkBoxes.set(checkbox[0].value, checked);
|
| 66 |
+
varienElementMethods.setHasChanges(checkbox[0]);
|
| 67 |
+
} else {
|
| 68 |
+
checkbox[0].checked = false;
|
| 69 |
+
}
|
| 70 |
+
warning = false;
|
| 71 |
+
} else {
|
| 72 |
+
checkBoxes.unset(checkbox[0].value);
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
$('in_role_users').value = checkBoxes.toQueryString();
|
| 76 |
+
grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
|
| 77 |
+
}
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
function roleUsersRowInit(grid, row)
|
| 82 |
+
{
|
| 83 |
+
var checkbox = $(row).getElementsByClassName('checkbox')[0];
|
| 84 |
+
if (checkbox) {
|
| 85 |
+
if (checkbox.checked) {
|
| 86 |
+
checkBoxes.set(checkbox.value, checkbox.checked);
|
| 87 |
+
} else {
|
| 88 |
+
checkBoxes.unset(checkbox.value);
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
$('in_role_users').value = checkBoxes.toQueryString();
|
| 92 |
+
grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
function myhandler(o)
|
| 97 |
+
{
|
| 98 |
+
if (checkBoxes.size() > 0) {
|
| 99 |
+
if (!confirm("<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Warning!\r\nThis action will remove those users from already assigned roles\r\nAre you sure?')) ?>") ) {
|
| 100 |
+
o.checked = !o.checked;
|
| 101 |
+
} else {
|
| 102 |
+
checkBoxes.each(function(el){
|
| 103 |
+
el.checked = o.checked;
|
| 104 |
+
});
|
| 105 |
+
return false;
|
| 106 |
+
}
|
| 107 |
+
warning = false;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
$('in_role_users').value = checkBoxes.toQueryString();
|
| 111 |
+
//grid.reloadParams = {'in_role_user[]':checkBoxes.keys()};
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
<?php echo $name ?>.rowClickCallback = roleUsersRowClick;
|
| 115 |
+
<?php echo $name ?>.initRowCallback = roleUsersRowInit;
|
| 116 |
+
<?php echo $name ?>.checkboxCheckCallback = registerUserRole;
|
| 117 |
+
<?php echo $name ?>.checkCheckboxes = myhandler;
|
| 118 |
+
<?php echo $name ?>.rows.each(function(row){roleUsersRowInit(<?php echo $name ?>, row)});
|
| 119 |
+
$('in_role_users_old').value = $('in_role_users').value;
|
| 120 |
+
<?php endif; ?>
|
| 121 |
+
//]]>
|
| 122 |
+
</script>
|
app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
* @var $this Mage_Authorizenet_Block_Directpost_Iframe
|
| 29 |
+
*/
|
| 30 |
+
?>
|
| 31 |
+
<?php
|
| 32 |
+
$_params = $this->getParams();
|
| 33 |
+
/* @var $_helper Mage_Authorizenet_Helper_Data */
|
| 34 |
+
$_helper = $this->helper('authorizenet');
|
| 35 |
+
?>
|
| 36 |
+
<html>
|
| 37 |
+
<head>
|
| 38 |
+
<script type="text/javascript">
|
| 39 |
+
//<![CDATA[
|
| 40 |
+
<?php if (isset($_params['redirect'])): ?>
|
| 41 |
+
window.location="<?php echo $this->escapeUrl($_params['redirect']) ?>";
|
| 42 |
+
<?php endif; ?>
|
| 43 |
+
<?php if (isset($_params['redirect_parent'])): ?>
|
| 44 |
+
window.top.location="<?php echo $this->escapeUrl($_params['redirect_parent']) ?>";
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
<?php if (isset($_params['error_msg'])): ?>
|
| 47 |
+
window.top.directPostModel.showError(<?php echo $this->helper('core')->jsonEncode($_params['error_msg']) ?>);
|
| 48 |
+
<?php if (isset($_params['x_invoice_num'])): ?>
|
| 49 |
+
window.top.directPostModel.successUrl="<?php echo $_helper->getSuccessOrderUrl($_params) ?>";
|
| 50 |
+
<?php endif; ?>
|
| 51 |
+
<?php endif; ?>
|
| 52 |
+
//]]>
|
| 53 |
+
</script>
|
| 54 |
+
</head>
|
| 55 |
+
<body></body>
|
| 56 |
+
</html>
|
app/design/adminhtml/default/default/template/authorizenet/directpost/info.phtml
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
* @see Mage_Authorizenet_Block_Directpost_Form
|
| 29 |
+
*/
|
| 30 |
+
?>
|
| 31 |
+
<?php
|
| 32 |
+
$_form = $this;
|
| 33 |
+
$_code = $_form->getMethodCode();
|
| 34 |
+
$_method = $_form->getMethod();
|
| 35 |
+
$_controller = $this->helper('authorizenet')->getControllerName();
|
| 36 |
+
$_orderUrl = $this->helper('authorizenet')->getPlaceOrderAdminUrl();
|
| 37 |
+
?>
|
| 38 |
+
<!-- IFRAME for request to our server -->
|
| 39 |
+
<iframe id="order-directpost-iframe" allowtransparency="true" frameborder="0" name="iframeSubmitOrder" style="display:none;width:100%;background-color:transparent" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
|
| 40 |
+
<!-- IFRAME for request to Authorize.net -->
|
| 41 |
+
<iframe id="directpost-iframe" allowtransparency="true" frameborder="0" name="iframeDirectPost" style="display:none;width:100%;background-color:transparent" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
|
| 42 |
+
<ul id="payment_form_<?php echo $_code ?>" style="display:none;">
|
| 43 |
+
<li>
|
| 44 |
+
<div class="input-box">
|
| 45 |
+
<label for="<?php echo $_code ?>_cc_type"><?php echo Mage::helper('payment')->__('Credit Card Type') ?> <span class="required">*</span></label><br/>
|
| 46 |
+
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
|
| 47 |
+
<?php $_ccType = $_form->getInfoData('cc_type') ?>
|
| 48 |
+
<option value=""></option>
|
| 49 |
+
<?php foreach ($_form->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
| 50 |
+
<option value="<?php echo $_typeCode ?>" <?php if($_typeCode==$_ccType): ?>selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
| 51 |
+
<?php endforeach ?>
|
| 52 |
+
</select>
|
| 53 |
+
</div>
|
| 54 |
+
</li>
|
| 55 |
+
<li>
|
| 56 |
+
<div class="input-box">
|
| 57 |
+
<label for="<?php echo $_code ?>_cc_number"><?php echo Mage::helper('payment')->__('Credit Card Number') ?> <span class="required">*</span></label><br/>
|
| 58 |
+
<input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('payment')->__('Credit Card Number')) ?>" class="input-text validate-cc-number" value="<?php echo $this->getInfoData('cc_number')?>" />
|
| 59 |
+
</div>
|
| 60 |
+
</li>
|
| 61 |
+
<li>
|
| 62 |
+
<div class="input-box">
|
| 63 |
+
<label for="<?php echo $_code ?>_expiration"><?php echo Mage::helper('payment')->__('Expiration Date') ?> <span class="required">*</span></label><br/>
|
| 64 |
+
<select id="<?php echo $_code ?>_expiration" style="width:140px;" name="payment[cc_exp_month]" class="validate-cc-exp required-entry">
|
| 65 |
+
<?php $_ccExpMonth = $_form->getInfoData('cc_exp_month') ?>
|
| 66 |
+
<?php foreach ($_form->getCcMonths() as $k=>$v): ?>
|
| 67 |
+
<option value="<?php echo $k ?>" <?php if($k==$_ccExpMonth): ?>selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 68 |
+
<?php endforeach ?>
|
| 69 |
+
</select>
|
| 70 |
+
<?php $_ccExpYear = $_form->getInfoData('cc_exp_year') ?>
|
| 71 |
+
<select id="<?php echo $_code ?>_expiration_yr" style="width:103px;" name="payment[cc_exp_year]" class="required-entry">
|
| 72 |
+
<?php foreach ($_form->getCcYears() as $k=>$v): ?>
|
| 73 |
+
<option value="<?php echo $k ? $k : '' ?>" <?php if($k==$_ccExpYear): ?>selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 74 |
+
<?php endforeach ?>
|
| 75 |
+
</select>
|
| 76 |
+
</div>
|
| 77 |
+
</li>
|
| 78 |
+
<?php if($_form->hasVerification()): ?>
|
| 79 |
+
<li>
|
| 80 |
+
<div class="input-box">
|
| 81 |
+
<label for="<?php echo $_code ?>_cc_cid"><?php echo Mage::helper('payment')->__('Card Verification Number') ?> <span class="required">*</span></label><br/>
|
| 82 |
+
<input type="text" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('payment')->__('Card Verification Number')) ?>" class="required-entry input-text validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" style="width:3em;" value="<?php echo $this->getInfoData('cc_cid')?>" />
|
| 83 |
+
</div>
|
| 84 |
+
</li>
|
| 85 |
+
<?php endif; ?>
|
| 86 |
+
</ul>
|
| 87 |
+
<script type="text/javascript">
|
| 88 |
+
//<![CDATA[
|
| 89 |
+
/**
|
| 90 |
+
* Disable cart server validation in admin
|
| 91 |
+
*/
|
| 92 |
+
AdminOrder.prototype.prepareParams = function(params) {
|
| 93 |
+
if (!params) {
|
| 94 |
+
params = {};
|
| 95 |
+
}
|
| 96 |
+
if (!params.customer_id) {
|
| 97 |
+
params.customer_id = this.customerId;
|
| 98 |
+
}
|
| 99 |
+
if (!params.store_id) {
|
| 100 |
+
params.store_id = this.storeId;
|
| 101 |
+
}
|
| 102 |
+
if (!params.currency_id) {
|
| 103 |
+
params.currency_id = this.currencyId;
|
| 104 |
+
}
|
| 105 |
+
if (!params.form_key) {
|
| 106 |
+
params.form_key = FORM_KEY;
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
if (this.paymentMethod != '<?php echo $_code ?>') {
|
| 110 |
+
var data = this.serializeData('order-billing_method');
|
| 111 |
+
if (data) {
|
| 112 |
+
data.each(function(value) {
|
| 113 |
+
params[value[0]] = value[1];
|
| 114 |
+
});
|
| 115 |
+
}
|
| 116 |
+
} else {
|
| 117 |
+
params['payment[method]'] = '<?php echo $_code ?>';
|
| 118 |
+
}
|
| 119 |
+
return params;
|
| 120 |
+
};
|
| 121 |
+
AdminOrder.prototype.getPaymentData = function(currentMethod) {
|
| 122 |
+
if (typeof (currentMethod) == 'undefined') {
|
| 123 |
+
if (this.paymentMethod) {
|
| 124 |
+
currentMethod = this.paymentMethod;
|
| 125 |
+
} else {
|
| 126 |
+
return false;
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
if (currentMethod == '<?php echo $_code ?>') {
|
| 130 |
+
return false;
|
| 131 |
+
}
|
| 132 |
+
var data = {};
|
| 133 |
+
var fields = $('payment_form_' + currentMethod).select('input', 'select');
|
| 134 |
+
for ( var i = 0; i < fields.length; i++) {
|
| 135 |
+
data[fields[i].name] = fields[i].getValue();
|
| 136 |
+
}
|
| 137 |
+
if ((typeof data['payment[cc_type]']) != 'undefined'
|
| 138 |
+
&& (!data['payment[cc_type]'] || !data['payment[cc_number]'])) {
|
| 139 |
+
return false;
|
| 140 |
+
}
|
| 141 |
+
return data;
|
| 142 |
+
};
|
| 143 |
+
<?php if (!$this->isAjaxRequest()): ?>
|
| 144 |
+
document.observe('dom:loaded', function(){
|
| 145 |
+
<?php endif; ?>
|
| 146 |
+
directPostModel = new directPost(
|
| 147 |
+
'<?php echo $_code ?>',
|
| 148 |
+
'directpost-iframe',
|
| 149 |
+
'<?php echo $_controller ?>',
|
| 150 |
+
'<?php echo $_orderUrl ?>',
|
| 151 |
+
'<?php echo $_method->getCgiUrl() ?>',
|
| 152 |
+
'<?php echo $this->getUrl('*/*/save', array('_secure' => $this->getRequest()->isSecure())) ?>');
|
| 153 |
+
<?php if (!$this->isAjaxRequest()): ?>
|
| 154 |
+
});
|
| 155 |
+
<?php endif; ?>
|
| 156 |
+
//]]>
|
| 157 |
+
</script>
|
app/design/adminhtml/default/default/template/backup/dialogs.phtml
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="backup-dialog" style="display: none;" id="rollback-warning">
|
| 28 |
+
<div class="entry-edit">
|
| 29 |
+
<div class="entry-edit-head">
|
| 30 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
|
| 31 |
+
</div>
|
| 32 |
+
<div class="content">
|
| 33 |
+
<div><?php echo $this->__('Any data created since the backup was made will be lost including admin users, customers and orders.')?></div>
|
| 34 |
+
<div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
|
| 35 |
+
</div>
|
| 36 |
+
<div class="buttons-set">
|
| 37 |
+
<div class="f-right">
|
| 38 |
+
<button type="button" class="scalable " onclick="backup.requestPassword()"><span><?php echo $this->__('OK')?></span></button>
|
| 39 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
| 40 |
+
</div>
|
| 41 |
+
</div>
|
| 42 |
+
</div>
|
| 43 |
+
</div>
|
| 44 |
+
|
| 45 |
+
<div class="backup-dialog" style="display: none;" id="backup-warning">
|
| 46 |
+
<div class="entry-edit">
|
| 47 |
+
<div class="entry-edit-head">
|
| 48 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
|
| 49 |
+
</div>
|
| 50 |
+
<div class="content">
|
| 51 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
| 52 |
+
<div><?php echo $this->__("The backup's creation process will take time.")?></div>
|
| 53 |
+
<div><?php echo $this->__('You will need to wait when the action ends.')?></div>
|
| 54 |
+
<div><?php echo $this->__('Do you really want to proceed?')?></div>
|
| 55 |
+
</div>
|
| 56 |
+
<div class="buttons-set">
|
| 57 |
+
<div class="f-right">
|
| 58 |
+
<button type="button" class="scalable " onclick="backup.requestBackupOptions()"><span><?php echo $this->__('OK')?></span></button>
|
| 59 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
| 60 |
+
</div>
|
| 61 |
+
</div>
|
| 62 |
+
</div>
|
| 63 |
+
</div>
|
| 64 |
+
|
| 65 |
+
<div class="backup-dialog" style="display: none;" id="backup-options">
|
| 66 |
+
<div class="entry-edit">
|
| 67 |
+
<div class="entry-edit-head">
|
| 68 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Backup options') ?></h4>
|
| 69 |
+
</div>
|
| 70 |
+
<div class="content">
|
| 71 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
| 72 |
+
<div><?php echo $this->__('Please specify backup creation options')?></div>
|
| 73 |
+
<form action="" method="post" id="backup-form" onsubmit="return backup.submitBackup();">
|
| 74 |
+
<table class="form-list question" cellspacing="0">
|
| 75 |
+
<tr>
|
| 76 |
+
<td style="padding-right: 8px;"><label for="backup_name" class="nobr"><?php echo $this->__('Backup Name')?></label></td>
|
| 77 |
+
<td>
|
| 78 |
+
<input type="text" name="backup_name" id="backup_name" class="validate-alphanum-with-spaces validate-length maximum-length-50" style="width: 343px" maxlength="50" />
|
| 79 |
+
<p class="note"><span><?php echo $this->__('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?></span></p>
|
| 80 |
+
</td>
|
| 81 |
+
</tr>
|
| 82 |
+
<tr>
|
| 83 |
+
<td> </td>
|
| 84 |
+
<td class="maintenance-checkbox-container">
|
| 85 |
+
<input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/>
|
| 86 |
+
<label for="backup_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while backup creation')?></label>
|
| 87 |
+
</td>
|
| 88 |
+
</tr>
|
| 89 |
+
<tr id="exclude-media-checkbox-container" style="display: none;">
|
| 90 |
+
<td> </td>
|
| 91 |
+
<td>
|
| 92 |
+
<input type="checkbox" name="exclude_media" value="1" id="exclude_media"/>
|
| 93 |
+
<label for="exclude_media"><?php echo $this->__('Exclude media folder from backup')?></label>
|
| 94 |
+
</td>
|
| 95 |
+
</tr>
|
| 96 |
+
</table>
|
| 97 |
+
</form>
|
| 98 |
+
</div>
|
| 99 |
+
<div class="buttons-set">
|
| 100 |
+
<div class="f-right">
|
| 101 |
+
<button type="button" class="scalable " onclick="backup.submitBackup()"><span><?php echo $this->__('OK')?></span></button>
|
| 102 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
| 103 |
+
</div>
|
| 104 |
+
</div>
|
| 105 |
+
</div>
|
| 106 |
+
</div>
|
| 107 |
+
|
| 108 |
+
<div class="backup-dialog" style="display: none;" id="rollback-request-password">
|
| 109 |
+
<div class="entry-edit">
|
| 110 |
+
<div class="entry-edit-head">
|
| 111 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Please enter password') ?></h4>
|
| 112 |
+
</div>
|
| 113 |
+
<div class="content">
|
| 114 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
| 115 |
+
<div><?php echo $this->__('Please enter password to confirm rollback.')?></div>
|
| 116 |
+
<div><?php echo $this->__('This action cannot be undone.')?></div>
|
| 117 |
+
<div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
|
| 118 |
+
<form action="" method="post" id="rollback-form" onsubmit="return backup.submitRollback();">
|
| 119 |
+
<div class="password-box-container">
|
| 120 |
+
<table class="form-list" cellspacing="0">
|
| 121 |
+
<tr>
|
| 122 |
+
<td style="padding-right: 8px;"><label for="password" class="nobr"><?php echo $this->__('User Password')?> <span class="required">*</span></label></td>
|
| 123 |
+
<td><input type="password" name="password" id="password" class="required-entry"></td>
|
| 124 |
+
</tr>
|
| 125 |
+
<tr>
|
| 126 |
+
<td> </td>
|
| 127 |
+
<td class="maintenance-checkbox-container">
|
| 128 |
+
<input type="checkbox" name="maintenance_mode" value="1" id="rollback_maintenance_mode"/>
|
| 129 |
+
<label for="rollback_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while rollback processing')?></label>
|
| 130 |
+
</td>
|
| 131 |
+
</tr>
|
| 132 |
+
<tr id="use-ftp-checkbox-row" style="display: none;">
|
| 133 |
+
<td> </td>
|
| 134 |
+
<td><input type="checkbox" name="use_ftp" value="1" id="use_ftp" onClick="backup.toggleFtpCredentialsForm();"/> <label for="use_ftp"><?php echo $this->__('Use FTP Connection')?></label></td>
|
| 135 |
+
</tr>
|
| 136 |
+
</table>
|
| 137 |
+
</div>
|
| 138 |
+
<div class="entry-edit" id="ftp-credentials-container" style="display: none;">
|
| 139 |
+
<div class="entry-edit-head">
|
| 140 |
+
<h4 class=""><?php echo $this->__('FTP credentials')?></h4>
|
| 141 |
+
</div>
|
| 142 |
+
<fieldset>
|
| 143 |
+
<table class="form-list" cellspacing="0">
|
| 144 |
+
<tr>
|
| 145 |
+
<td class="label"><label for="ftp_host"><?php echo $this->__('FTP Host')?> <span class="required">*</span></label></td>
|
| 146 |
+
<td class="value"><input type="text" name="ftp_host" id="ftp_host"></td>
|
| 147 |
+
</tr>
|
| 148 |
+
<tr>
|
| 149 |
+
<td class="label"><label for="ftp_user"><?php echo $this->__('FTP Login')?> <span class="required">*</span></label></td>
|
| 150 |
+
<td class="value"><input type="text" name="ftp_user" id="ftp_user"></td>
|
| 151 |
+
</tr>
|
| 152 |
+
<tr>
|
| 153 |
+
<td class="label"><label for="ftp_pass"><?php echo $this->__('FTP Password')?> <span class="required">*</span></label></td>
|
| 154 |
+
<td class="value"><input type="password" name="ftp_pass" id="ftp_pass"></td>
|
| 155 |
+
</tr>
|
| 156 |
+
<tr>
|
| 157 |
+
<td class="label"><label for="ftp_path"><?php echo $this->__('Magento root directory')?></label></td>
|
| 158 |
+
<td class="value"><input type="text" name="ftp_path" id="ftp_path"></td>
|
| 159 |
+
</tr>
|
| 160 |
+
</table>
|
| 161 |
+
</fieldset>
|
| 162 |
+
</div>
|
| 163 |
+
</form>
|
| 164 |
+
</div>
|
| 165 |
+
<div class="buttons-set">
|
| 166 |
+
<div class="f-right">
|
| 167 |
+
<button type="button" class="scalable " onclick="backup.submitRollback()"><span><?php echo $this->__('OK')?></span></button>
|
| 168 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
| 169 |
+
</div>
|
| 170 |
+
</div>
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
|
| 174 |
+
<div id="popup-window-mask" style="display: none;"></div>
|
| 175 |
+
|
| 176 |
+
<?php
|
| 177 |
+
$helper = Mage::helper('backup');
|
| 178 |
+
$rollbackUrl = $this->getUrl('*/*/rollback');
|
| 179 |
+
$backupUrl = $this->getUrl('*/*/create');
|
| 180 |
+
?>
|
| 181 |
+
|
| 182 |
+
<script type="text/javascript">
|
| 183 |
+
//<![CDATA[
|
| 184 |
+
document.observe('dom:loaded', function () {
|
| 185 |
+
backup = new AdminBackup();
|
| 186 |
+
backup.rollbackUrl = '<?php echo $helper->jsQuoteEscape($rollbackUrl);?>';
|
| 187 |
+
backup.backupUrl = '<?php echo $helper->jsQuoteEscape($backupUrl);?>';
|
| 188 |
+
});
|
| 189 |
+
//]]>
|
| 190 |
+
</script>
|
app/design/adminhtml/default/default/template/backup/left.phtml
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<h3><?php echo Mage::helper('backup')->__('Create Backup') ?></h3>
|
app/design/adminhtml/default/default/template/backup/list.phtml
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-backups-control"><?php echo Mage::helper('backup')->__('Backups') ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php echo $this->getCreateSnapshotButtonHtml(); ?>
|
| 33 |
+
<?php echo $this->getCreateMediaBackupButtonHtml(); ?>
|
| 34 |
+
<?php echo $this->getCreateButtonHtml(); ?>
|
| 35 |
+
</td>
|
| 36 |
+
</tr>
|
| 37 |
+
</table>
|
| 38 |
+
</div>
|
| 39 |
+
<?php echo $this->getGridHtml() ?>
|
| 40 |
+
<?php echo $this->getDialogsHtml() ?>
|
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/bundle.phtml
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Bundle */ ?>
|
| 29 |
+
<?php $options = Mage::helper('core')->decorateArray($this->getOptions()); ?>
|
| 30 |
+
<?php if (count($options)): ?>
|
| 31 |
+
<div id="catalog_product_composite_configure_fields_bundle" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
| 32 |
+
<h4><?php echo Mage::helper('catalog')->__('Bundle Items') ?></h4>
|
| 33 |
+
<div class="product-options">
|
| 34 |
+
<dl>
|
| 35 |
+
<?php foreach ($options as $option) : ?>
|
| 36 |
+
<?php if ($option->getSelections()) : ?>
|
| 37 |
+
<?php echo $this->getOptionHtml($option); ?>
|
| 38 |
+
<?php endif; ?>
|
| 39 |
+
<?php endforeach; ?>
|
| 40 |
+
</dl>
|
| 41 |
+
</div>
|
| 42 |
+
</div>
|
| 43 |
+
|
| 44 |
+
<script>
|
| 45 |
+
var BundleControl = Class.create();
|
| 46 |
+
BundleControl.prototype = {
|
| 47 |
+
initialize: function (config) {
|
| 48 |
+
this.config = config;
|
| 49 |
+
},
|
| 50 |
+
|
| 51 |
+
changeSelection: function (selection) {
|
| 52 |
+
if (selection.multiple) {
|
| 53 |
+
return;
|
| 54 |
+
}
|
| 55 |
+
var parts = selection.id.split('-'), optionId = parts[2],
|
| 56 |
+
showQtyInput = selection.value && selection.value != 'none',
|
| 57 |
+
options = this.config.options[optionId],
|
| 58 |
+
selectionOptions = options && options.selections && options.selections[selection.value] || {};
|
| 59 |
+
|
| 60 |
+
selectionOptions.can_change_qty = Number(selectionOptions.can_change_qty) && showQtyInput;
|
| 61 |
+
this.updateQtyInput(optionId, selectionOptions);
|
| 62 |
+
},
|
| 63 |
+
|
| 64 |
+
updateQtyInput: function(optionId, selectionOptions) {
|
| 65 |
+
var elem = $('bundle-option-' + optionId + '-qty-input'),
|
| 66 |
+
default_qty = Number(selectionOptions.default_qty);
|
| 67 |
+
if (!elem) {
|
| 68 |
+
return;
|
| 69 |
+
}
|
| 70 |
+
if (selectionOptions.can_change_qty) {
|
| 71 |
+
elem.removeClassName('qty-disabled');
|
| 72 |
+
elem.disabled = false;
|
| 73 |
+
if (elem.value == '0') {
|
| 74 |
+
elem.value = default_qty || 1;
|
| 75 |
+
}
|
| 76 |
+
} else {
|
| 77 |
+
elem.addClassName('qty-disabled');
|
| 78 |
+
elem.disabled = true;
|
| 79 |
+
elem.value = default_qty || 0;
|
| 80 |
+
}
|
| 81 |
+
},
|
| 82 |
+
|
| 83 |
+
updateForDefaults: function () {
|
| 84 |
+
for (var optionId in this.config.options) {
|
| 85 |
+
var selection = $('bundle-option-' + optionId);
|
| 86 |
+
if (selection) {
|
| 87 |
+
this.changeSelection(selection);
|
| 88 |
+
}
|
| 89 |
+
}
|
| 90 |
+
}
|
| 91 |
+
}
|
| 92 |
+
ProductConfigure.bundleControl = new BundleControl(<?php echo $this->getJsonConfig() ?>);
|
| 93 |
+
</script>
|
| 94 |
+
|
| 95 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/checkbox.phtml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Checkbox */ ?>
|
| 29 |
+
<?php $_option = $this->getOption(); ?>
|
| 30 |
+
<?php $_selections = $_option->getSelections(); ?>
|
| 31 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 32 |
+
<dt><label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
|
| 33 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 34 |
+
<div class="input-box">
|
| 35 |
+
<?php if (count($_selections) == 1 && $_option->getRequired()): ?>
|
| 36 |
+
<?php echo $this->getSelectionQtyTitlePrice($_selections[0]) ?>
|
| 37 |
+
<input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"'/>
|
| 38 |
+
<?php else:?>
|
| 39 |
+
<ul class="options-list">
|
| 40 |
+
<?php foreach($_selections as $_selection): ?>
|
| 41 |
+
<li><input class="change-container-classname checkbox bundle-option-<?php echo $_option->getId() ?> <?php if ($_option->getRequired()) echo 'validate-one-required-by-name' ?>" id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>" type="checkbox" name="bundle_option[<?php echo $_option->getId() ?>][]"<?php if ($this->_isSelected($_selection)) echo ' checked="checked"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> value="<?php echo $_selection->getSelectionId() ?>" onclick="ProductConfigure.bundleControl.changeSelection(this)" price="<?php echo $this->getSelectionPrice($_selection) ?>"/>
|
| 42 |
+
<span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>"><?php echo $this->getSelectionQtyTitlePrice($_selection) ?></label></span>
|
| 43 |
+
<?php if($_option->getRequired()): ?>
|
| 44 |
+
<?php echo $this->setValidationContainer('bundle-option-'.$_option->getId().'-'.$_selection->getSelectionId(), 'bundle-option-'.$_option->getId().'-container') ?>
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
</li>
|
| 47 |
+
<?php endforeach; ?>
|
| 48 |
+
</ul>
|
| 49 |
+
<div id="bundle-option-<?php echo $_option->getId() ?>-container"></div>
|
| 50 |
+
<?php endif; ?>
|
| 51 |
+
</div>
|
| 52 |
+
</dd>
|
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/multi.phtml
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Multi */ ?>
|
| 29 |
+
<?php $_option = $this->getOption(); ?>
|
| 30 |
+
<?php $_selections = $_option->getSelections(); ?>
|
| 31 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 32 |
+
<dt><label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
|
| 33 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 34 |
+
<div class="input-box">
|
| 35 |
+
<?php if (count($_selections) == 1 && $_option->getRequired()): ?>
|
| 36 |
+
<?php echo $this->getSelectionQtyTitlePrice($_selections[0]) ?>
|
| 37 |
+
<input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"/>
|
| 38 |
+
<?php else: ?>
|
| 39 |
+
<select multiple="multiple" size="5" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>][]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select multiselect change-container-classname" onchange="ProductConfigure.bundleControl.changeSelection(this)">
|
| 40 |
+
<?php if(!$_option->getRequired()): ?>
|
| 41 |
+
<option value=""><?php echo $this->__('None') ?></option>
|
| 42 |
+
<?php endif; ?>
|
| 43 |
+
<?php foreach ($_selections as $_selection): ?>
|
| 44 |
+
<option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> price="<?php echo $this->getSelectionPrice($_selection) ?>"><?php echo $this->getSelectionQtyTitlePrice($_selection, false) ?></option>
|
| 45 |
+
<?php endforeach; ?>
|
| 46 |
+
</select>
|
| 47 |
+
<?php endif; ?>
|
| 48 |
+
</div>
|
| 49 |
+
</dd>
|
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/radio.phtml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Radio */ ?>
|
| 29 |
+
<?php $_option = $this->getOption(); ?>
|
| 30 |
+
<?php $_selections = $_option->getSelections(); ?>
|
| 31 |
+
<?php $_default = $_option->getDefaultSelection(); ?>
|
| 32 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 33 |
+
<?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>
|
| 34 |
+
|
| 35 |
+
<dt>
|
| 36 |
+
<span class="qty-holder">
|
| 37 |
+
<label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?> </label><input <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>"/>
|
| 38 |
+
</span>
|
| 39 |
+
<label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
|
| 40 |
+
</dt>
|
| 41 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 42 |
+
<div class="input-box">
|
| 43 |
+
<?php if ($this->_showSingle()): ?>
|
| 44 |
+
<?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
|
| 45 |
+
<input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>" />
|
| 46 |
+
<?php else:?>
|
| 47 |
+
<ul class="options-list">
|
| 48 |
+
<?php if (!$_option->getRequired()): ?>
|
| 49 |
+
<li><input type="radio" class="radio" id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]"<?php echo ($_default && $_default->isSalable())?'':' checked="checked" ' ?> value="" onclick="ProductConfigure.bundleControl.changeSelection(this)"/>
|
| 50 |
+
<span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>"><?php echo $this->__('None') ?></label></span>
|
| 51 |
+
</li>
|
| 52 |
+
<?php endif; ?>
|
| 53 |
+
<?php foreach ($_selections as $_selection): ?>
|
| 54 |
+
<li><input type="radio" class="radio<?php echo $_option->getRequired()?' validate-one-required-by-name':'' ?> change-container-classname" id="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]"<?php if ($this->_isSelected($_selection)) echo ' checked="checked"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?>value="<?php echo $_selection->getSelectionId() ?>" onclick="ProductConfigure.bundleControl.changeSelection(this)" price="<?php echo $this->getSelectionPrice($_selection) ?>" qtyId="bundle-option-<?php echo $_option->getId() ?>-qty-input"/>
|
| 55 |
+
<span class="label"><label for="bundle-option-<?php echo $_option->getId() ?>-<?php echo $_selection->getSelectionId() ?>"><?php echo $this->getSelectionTitlePrice($_selection) ?></label></span>
|
| 56 |
+
<?php if ($_option->getRequired()): ?>
|
| 57 |
+
<?php echo $this->setValidationContainer('bundle-option-'.$_option->getId().'-'.$_selection->getSelectionId(), 'bundle-option-'.$_option->getId().'-container') ?>
|
| 58 |
+
<?php endif; ?>
|
| 59 |
+
</li>
|
| 60 |
+
<?php endforeach; ?>
|
| 61 |
+
</ul>
|
| 62 |
+
<div id="bundle-option-<?php echo $_option->getId() ?>-container"></div>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
</div>
|
| 65 |
+
</dd>
|
app/design/adminhtml/default/default/template/bundle/product/composite/fieldset/options/type/select.phtml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Options_Type_Select */ ?>
|
| 29 |
+
<?php $_option = $this->getOption(); ?>
|
| 30 |
+
<?php $_selections = $_option->getSelections(); ?>
|
| 31 |
+
<?php $_default = $_option->getDefaultSelection(); ?>
|
| 32 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 33 |
+
<?php list($_defaultQty, $_canChangeQty) = $this->_getDefaultValues(); ?>
|
| 34 |
+
|
| 35 |
+
<dt>
|
| 36 |
+
<span class="qty-holder">
|
| 37 |
+
<label for="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->__('Qty:') ?> </label><input <?php if (!$_canChangeQty) echo ' disabled="disabled"' ?> id="bundle-option-<?php echo $_option->getId() ?>-qty-input" class="input-text qty<?php if (!$_canChangeQty) echo ' qty-disabled' ?>" type="text" name="bundle_option_qty[<?php echo $_option->getId() ?>]" value="<?php echo $_defaultQty ?>"/>
|
| 38 |
+
</span>
|
| 39 |
+
<label<?php if ($_option->getRequired()) echo ' class="required"' ?>><?php if ($_option->getRequired()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
|
| 40 |
+
</dt>
|
| 41 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 42 |
+
<div class="input-box">
|
| 43 |
+
<?php if ($this->_showSingle()): ?>
|
| 44 |
+
<?php echo $this->getSelectionTitlePrice($_selections[0]) ?>
|
| 45 |
+
<input type="hidden" name="bundle_option[<?php echo $_option->getId() ?>]" value="<?php echo $_selections[0]->getSelectionId() ?>" price="<?php echo $this->getSelectionPrice($_selections[0]) ?>"/>
|
| 46 |
+
<?php else:?>
|
| 47 |
+
<select id="bundle-option-<?php echo $_option->getId() ?>" name="bundle_option[<?php echo $_option->getId() ?>]" class="bundle-option-<?php echo $_option->getId() ?><?php if ($_option->getRequired()) echo ' required-entry' ?> bundle-option-select change-container-classname" onchange="ProductConfigure.bundleControl.changeSelection(this)">
|
| 48 |
+
<option value=""><?php echo $this->__('Choose a selection...') ?></option>
|
| 49 |
+
<?php foreach ($_selections as $_selection): ?>
|
| 50 |
+
<option value="<?php echo $_selection->getSelectionId() ?>"<?php if ($this->_isSelected($_selection)) echo ' selected="selected"' ?><?php if (!$_selection->isSaleable() && !$_skipSaleableCheck) echo ' disabled="disabled"' ?> price="<?php echo $this->getSelectionPrice($_selection) ?>" qtyId="bundle-option-<?php echo $_option->getId() ?>-qty-input"><?php echo $this->getSelectionTitlePrice($_selection, false) ?></option>
|
| 51 |
+
<?php endforeach; ?>
|
| 52 |
+
</select>
|
| 53 |
+
<?php endif; ?>
|
| 54 |
+
</div>
|
| 55 |
+
</dd>
|
app/design/adminhtml/default/default/template/bundle/product/edit/bundle.phtml
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
if(typeof Bundle=='undefined') {
|
| 29 |
+
Bundle = {};
|
| 30 |
+
}
|
| 31 |
+
</script>
|
| 32 |
+
|
| 33 |
+
<div class="entry-edit">
|
| 34 |
+
<div class="entry-edit-head">
|
| 35 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('bundle')->__('Shipment') ?></h4>
|
| 36 |
+
</div>
|
| 37 |
+
<fieldset>
|
| 38 |
+
<table cellspacing="0" class="form-list">
|
| 39 |
+
<tr>
|
| 40 |
+
<td class="label"><label for="shipment_type"><?php echo Mage::helper('bundle')->__('Ship Bundle Items') ?></label></td>
|
| 41 |
+
<td class="value"><select <?php if ($this->isReadonly()): ?>disabled="disabled" <?php endif;?>id="shipment_type" name="<?php echo $this->getFieldSuffix() ?>[shipment_type]" class="select">
|
| 42 |
+
<option value="1"><?php echo Mage::helper('bundle')->__('Separately') ?></option>
|
| 43 |
+
<option value="0"<?php if ($this->getProduct()->getShipmentType() == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('bundle')->__('Together') ?></option>
|
| 44 |
+
</select>
|
| 45 |
+
</td>
|
| 46 |
+
</tr>
|
| 47 |
+
</table>
|
| 48 |
+
</fieldset>
|
| 49 |
+
</div>
|
| 50 |
+
|
| 51 |
+
<div class="entry-edit custom-options bundle" id="product_bundle_container">
|
| 52 |
+
<div class="entry-edit-head">
|
| 53 |
+
<h4><?php echo $this->__('Bundle Items') ?></h4>
|
| 54 |
+
<div class="right"><?php echo $this->getAddButtonHtml() ?></div>
|
| 55 |
+
</div>
|
| 56 |
+
|
| 57 |
+
<div id="product_options_container" class="box">
|
| 58 |
+
<div id="product_bundle_container_top"></div>
|
| 59 |
+
<?php echo $this->getOptionsBoxHtml() ?>
|
| 60 |
+
</div>
|
| 61 |
+
</div>
|
| 62 |
+
|
| 63 |
+
<script type="text/javascript">
|
| 64 |
+
// re-bind form elements onchange
|
| 65 |
+
varienWindowOnload(true);
|
| 66 |
+
<?php if ($this->isReadonly()):?>
|
| 67 |
+
$('product_bundle_container').select('input', 'select', 'textarea', 'button').each(function(input){
|
| 68 |
+
input.disabled = true;
|
| 69 |
+
if (input.tagName.toLowerCase() == 'button') {
|
| 70 |
+
input.addClassName('disabled');
|
| 71 |
+
}
|
| 72 |
+
});
|
| 73 |
+
<?php endif; ?>
|
| 74 |
+
Validation.add('validate-greater-zero-based-on-option', '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Please enter a number greater 0 in this field.')) ?>', function(v, el) {
|
| 75 |
+
var optionType = $(el).up('div.grid').previous('table.option-header').select('select.select-product-option-type')[0],
|
| 76 |
+
v = Number(v) || 0;
|
| 77 |
+
|
| 78 |
+
if (optionType && (optionType.value == 'checkbox' || optionType.value == 'multi') && v <= 0) {
|
| 79 |
+
return false;
|
| 80 |
+
}
|
| 81 |
+
return true;
|
| 82 |
+
});
|
| 83 |
+
</script>
|
| 84 |
+
|
| 85 |
+
<div><input type="hidden" name="affect_bundle_product_selections" value="1" /></div>
|
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
optionTemplate = '<div id="<?php echo $this->getFieldId() ?>_{{index}}" class="option-box"> ' +
|
| 29 |
+
'<div class="option-title"> ' +
|
| 30 |
+
'<label for="<?php echo $this->getFieldName() ?>[{{index}}][title]"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default Title')) ?> <span class="required">*</span></label>' +
|
| 31 |
+
<?php if ($this->isDefaultStore()): ?>
|
| 32 |
+
'<input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_title" value="{{title}}">' +
|
| 33 |
+
<?php else: ?>
|
| 34 |
+
'<input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][default_title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_default_title" value="{{default_title}}">' +
|
| 35 |
+
<?php endif; ?>
|
| 36 |
+
'<?php echo $this->jsQuoteEscape($this->getOptionDeleteButtonHtml()) ?>' +
|
| 37 |
+
'</div>' +
|
| 38 |
+
'<table class="option-header" cellpadding="0" cellspacing="0">' +
|
| 39 |
+
'<thead>' +
|
| 40 |
+
'<tr>' +
|
| 41 |
+
<?php if (!$this->isDefaultStore()): ?>
|
| 42 |
+
'<th class="opt-title"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Store View Title')) ?> <span class="required">*</span></th>' +
|
| 43 |
+
<?php endif; ?>
|
| 44 |
+
'<th class="opt-type"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Input Type')) ?></th>' +
|
| 45 |
+
'<th class="opt-req"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Is Required')) ?></th>' +
|
| 46 |
+
'<th class="opt-order"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Position')) ?></th>' +
|
| 47 |
+
'<th> </th>' +
|
| 48 |
+
'</tr>' +
|
| 49 |
+
'</thead>' +
|
| 50 |
+
'<tbody>' +
|
| 51 |
+
'<tr>' +
|
| 52 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_id_{{index}}" name="<?php echo $this->getFieldName() ?>[{{index}}][option_id]" value="{{option_id}}">' +
|
| 53 |
+
'<input type="hidden" name="<?php echo $this->getFieldName() ?>[{{index}}][delete]" value="" class="delete">' +
|
| 54 |
+
<?php if (!$this->isDefaultStore()): ?>
|
| 55 |
+
'<td><input class="input-text required-entry" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][title]" id="id_<?php echo $this->getFieldName() ?>_{{index}}_title_store" value="{{title}}"></td>' +
|
| 56 |
+
<?php endif; ?>
|
| 57 |
+
'<td><?php echo $this->getTypeSelectHtml() ?></td>' +
|
| 58 |
+
'<td><?php echo $this->getRequireSelectHtml() ?></td>' +
|
| 59 |
+
'<td><input class="input-text validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{index}}][position]" value="{{position}}"></td>' +
|
| 60 |
+
'<td> <?php echo $this->jsQuoteEscape($this->getAddSelectionButtonHtml()) ?></td>' +
|
| 61 |
+
'</tr>' +
|
| 62 |
+
'</tbody>' +
|
| 63 |
+
'</table>' +
|
| 64 |
+
'<div id="<?php echo $this->getFieldId() ?>_search_{{index}}">' +
|
| 65 |
+
'</div>' +
|
| 66 |
+
'</div>';
|
| 67 |
+
</script>
|
| 68 |
+
|
| 69 |
+
<?php echo $this->getSelectionHtml() ?>
|
| 70 |
+
|
| 71 |
+
<script type="text/javascript">
|
| 72 |
+
|
| 73 |
+
function changeInputType(oldObject, oType) {
|
| 74 |
+
var newObject = document.createElement('input');
|
| 75 |
+
newObject.type = oType;
|
| 76 |
+
if(oldObject.size) newObject.size = oldObject.size;
|
| 77 |
+
if(oldObject.value) newObject.value = oldObject.value;
|
| 78 |
+
if(oldObject.name) newObject.name = oldObject.name;
|
| 79 |
+
if(oldObject.id) newObject.id = oldObject.id;
|
| 80 |
+
if(oldObject.onclick) newObject.onclick = oldObject.onclick;
|
| 81 |
+
if(oldObject.className) newObject.className = oldObject.className;
|
| 82 |
+
oldObject.parentNode.replaceChild(newObject,oldObject);
|
| 83 |
+
return newObject;
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
Bundle.Option = Class.create();
|
| 87 |
+
Bundle.Option.prototype = {
|
| 88 |
+
idLabel : '<?php echo $this->getFieldId() ?>',
|
| 89 |
+
top : '',
|
| 90 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 91 |
+
templateText : '',
|
| 92 |
+
itemsCount : 0,
|
| 93 |
+
initialize : function(template) {
|
| 94 |
+
this.templateText = template;
|
| 95 |
+
this.top = $('product_bundle_container_top');
|
| 96 |
+
},
|
| 97 |
+
|
| 98 |
+
add : function(data) {
|
| 99 |
+
if(!data){
|
| 100 |
+
data = {};
|
| 101 |
+
this.top = $('product_bundle_container_top');
|
| 102 |
+
} else {
|
| 103 |
+
data.title = data.title.replace('"', """);
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
data.index = this.itemsCount++;
|
| 107 |
+
|
| 108 |
+
this.template = new Template(this.templateText, this.templateSyntax);
|
| 109 |
+
|
| 110 |
+
Element.insert(this.top, {'after':this.template.evaluate(data)});
|
| 111 |
+
|
| 112 |
+
this.top = $(this.idLabel + '_' + data.index);
|
| 113 |
+
|
| 114 |
+
//set selected type
|
| 115 |
+
if (data.type) {
|
| 116 |
+
$A($(this.idLabel + '_'+data.index+'_type').options).each(function(option){
|
| 117 |
+
if (option.value==data.type) option.selected = true;
|
| 118 |
+
});
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
//set selected is_require
|
| 122 |
+
if (data.required) {
|
| 123 |
+
$A($(this.idLabel + '_'+data.index+'_required').options).each(function(option){
|
| 124 |
+
if (option.value==data.required) option.selected = true;
|
| 125 |
+
});
|
| 126 |
+
}
|
| 127 |
+
// rebind change notifications
|
| 128 |
+
varienWindowOnload(true);
|
| 129 |
+
|
| 130 |
+
return data.index;
|
| 131 |
+
},
|
| 132 |
+
|
| 133 |
+
remove : function(event){
|
| 134 |
+
var element = $(Event.findElement(event, 'div')).parentNode;
|
| 135 |
+
if(element){
|
| 136 |
+
Element.select(element, '.delete').each(function(elem){elem.value='1'});
|
| 137 |
+
Element.select(element, ['input', 'select']).each(function(elem){elem.hide(); elem.className = '';});
|
| 138 |
+
Element.hide(element);
|
| 139 |
+
}
|
| 140 |
+
},
|
| 141 |
+
|
| 142 |
+
changeType : function(event) {
|
| 143 |
+
var element = Event.element(event);
|
| 144 |
+
parts = element.id.split('_');
|
| 145 |
+
i = parts[2];
|
| 146 |
+
if (element.value == 'multi' || element.value == 'checkbox') {
|
| 147 |
+
inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' tr.selection input.default'));
|
| 148 |
+
inputs.each(
|
| 149 |
+
function(elem){
|
| 150 |
+
//elem.type = "checkbox";
|
| 151 |
+
changeInputType(elem, 'checkbox');
|
| 152 |
+
}
|
| 153 |
+
);
|
| 154 |
+
/**
|
| 155 |
+
* Hide not needed elements (user defined qty select box)
|
| 156 |
+
*/
|
| 157 |
+
inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' .qty-box'));
|
| 158 |
+
inputs.each(
|
| 159 |
+
function(elem){
|
| 160 |
+
elem.hide();
|
| 161 |
+
}
|
| 162 |
+
);
|
| 163 |
+
|
| 164 |
+
} else {
|
| 165 |
+
inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' tr.selection input.default'));
|
| 166 |
+
have = false;
|
| 167 |
+
for (j=0; j< inputs.length; j++) {
|
| 168 |
+
//inputs[j].type = "radio";
|
| 169 |
+
changeInputType(inputs[j], 'radio');
|
| 170 |
+
if (inputs[j].checked && have) {
|
| 171 |
+
inputs[j].checked = false;
|
| 172 |
+
} else {
|
| 173 |
+
have = true;
|
| 174 |
+
}
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
/**
|
| 178 |
+
* Show user defined select box
|
| 179 |
+
*/
|
| 180 |
+
inputs = $A($$('#' + bSelection.idLabel + '_box_' + i + ' .qty-box'));
|
| 181 |
+
inputs.each(
|
| 182 |
+
function(elem){
|
| 183 |
+
elem.show();
|
| 184 |
+
}
|
| 185 |
+
);
|
| 186 |
+
}
|
| 187 |
+
},
|
| 188 |
+
|
| 189 |
+
priceTypeFixed : function() {
|
| 190 |
+
inputs = $A($$('.price-type-box'));
|
| 191 |
+
inputs.each(
|
| 192 |
+
function(elem){
|
| 193 |
+
elem.show();
|
| 194 |
+
}
|
| 195 |
+
);
|
| 196 |
+
},
|
| 197 |
+
|
| 198 |
+
priceTypeDynamic : function() {
|
| 199 |
+
inputs = $A($$('.price-type-box'));
|
| 200 |
+
inputs.each(
|
| 201 |
+
function(elem){
|
| 202 |
+
elem.hide();
|
| 203 |
+
}
|
| 204 |
+
);
|
| 205 |
+
}
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
var optionIndex = 0;
|
| 209 |
+
bOption = new Bundle.Option(optionTemplate);
|
| 210 |
+
//adding data to templates
|
| 211 |
+
<?php foreach ($this->getOptions() as $_option): ?>
|
| 212 |
+
optionIndex = bOption.add(<?php echo $_option->toJson() ?>);
|
| 213 |
+
<?php if ($_option->getSelections()):?>
|
| 214 |
+
<?php foreach ($_option->getSelections() as $_selection): ?>
|
| 215 |
+
<?php $_selection->setName($this->escapeHtml($_selection->getName())); ?>
|
| 216 |
+
bSelection.addRow(optionIndex, <?php echo $_selection->toJson() ?>);
|
| 217 |
+
<?php endforeach; ?>
|
| 218 |
+
<?php endif; ?>
|
| 219 |
+
<?php endforeach; ?>
|
| 220 |
+
/**
|
| 221 |
+
* Adding event on price type select box of product to hide or show prices for selections
|
| 222 |
+
*/
|
| 223 |
+
function togglePriceType() {
|
| 224 |
+
if ($('price_type').value == '1') {
|
| 225 |
+
bOption.priceTypeFixed();
|
| 226 |
+
} else {
|
| 227 |
+
bOption.priceTypeDynamic();
|
| 228 |
+
}
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
togglePriceType();
|
| 232 |
+
|
| 233 |
+
Event.observe('price_type', 'change', togglePriceType);
|
| 234 |
+
|
| 235 |
+
</script>
|
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/search.phtml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<div style="float: right;"><?php echo $this->getButtonsHtml() ?></div>
|
| 30 |
+
<h4 class="fieldset-legend <?php echo ($this->getHeaderCssClass()) ? $this->getHeaderCssClass().' icon-head' : '' ?>"><?php echo $this->getHeaderText() ?></h4>
|
| 31 |
+
</div>
|
| 32 |
+
<fieldset>
|
| 33 |
+
<?php echo $this->getChildHtml() ?>
|
| 34 |
+
</fieldset>
|
| 35 |
+
</div>
|
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option/selection.phtml
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
|
| 30 |
+
var bundleTemplateBox = '<table class="border" cellpadding="0" cellspacing="0">' +
|
| 31 |
+
' <thead>' +
|
| 32 |
+
' <tr class="headings">' +
|
| 33 |
+
' <th><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Name')) ?></th>' +
|
| 34 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 35 |
+
' <th class="type-price price-type-box"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
|
| 36 |
+
' <th class="type-type price-type-box"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Price Type')) ?></th>' +
|
| 37 |
+
<?php endif; ?>
|
| 38 |
+
' <th class="type-price"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default Qty')) ?></th>' +
|
| 39 |
+
' <th class="type-uqty qty-box"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('User Defined Qty')) ?></th>' +
|
| 40 |
+
' <th class="type-order"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Position')) ?></th>' +
|
| 41 |
+
' <th style="width:1px"><?php echo $this->jsQuoteEscape(Mage::helper('bundle')->__('Default')) ?></th>' +
|
| 42 |
+
' <th class="last"> </th>' +
|
| 43 |
+
' </tr>' +
|
| 44 |
+
' </thead> ' +
|
| 45 |
+
' <tbody>' +
|
| 46 |
+
' </tbody>' +
|
| 47 |
+
'</table>';
|
| 48 |
+
|
| 49 |
+
var bundleTemplateRow ='<td>' +
|
| 50 |
+
' <input type="hidden" id="<?php echo $this->getFieldId() ?>_id_{{index}}" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_id]" value="{{selection_id}}">' +
|
| 51 |
+
' <input type="hidden" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][option_id]" value="{{option_id}}">' +
|
| 52 |
+
' <input type="hidden" class="product" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][product_id]" value="{{product_id}}">' +
|
| 53 |
+
' <input type="hidden" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][delete]" value="" class="delete">' +
|
| 54 |
+
' {{name}}<br />' +
|
| 55 |
+
' <div class="nobr">' +
|
| 56 |
+
' <strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong> {{sku}}' +
|
| 57 |
+
' </div>' +
|
| 58 |
+
'</td>' +
|
| 59 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 60 |
+
'<td class="price-type-box"><input id="<?php echo $this->getFieldId() ?>_{{index}}_price_value" class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_price_value]" value="{{selection_price_value}}"<?php if($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
|
| 61 |
+
'<td class="price-type-box"><?php echo $this->getPriceTypeSelectHtml() ?><div><?php echo $this->getCheckboxScopeHtml() ?></div></td>' +
|
| 62 |
+
<?php else : ?>
|
| 63 |
+
'<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_value" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][selection_price_value]" value="0" />' +
|
| 64 |
+
'<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_type" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][selection_price_type]" value="0" />' +
|
| 65 |
+
<?php if ($this->isUsedWebsitePrice()): ?>
|
| 66 |
+
'<input type="hidden" id="<?php echo $this->getFieldId(); ?>_{{index}}_price_scope" name="<?php echo $this->getFieldName(); ?>[{{parentIndex}}][{{index}}][default_price_scope]" value="1" />' +
|
| 67 |
+
<?php endif; ?>
|
| 68 |
+
<?php endif; ?>
|
| 69 |
+
'<td><input class="input-text required-entry validate-greater-zero-based-on-option validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][selection_qty]" value="{{selection_qty}}"></td>' +
|
| 70 |
+
'<td class="qty-box"><?php echo $this->getQtyTypeSelectHtml() ?></td>' +
|
| 71 |
+
'<td><input class="input-text required-entry validate-zero-or-greater" type="text" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][position]" value="{{position}}"></td>' +
|
| 72 |
+
'<td class="a-center"><input onclick="bSelection.checkGroup(event)" type="{{option_type}}" class="default" name="<?php echo $this->getFieldName() ?>[{{parentIndex}}][{{index}}][is_default]" value="1" {{checked}}></td>' +
|
| 73 |
+
'<td class="last"><span title="Delete Row"><?php echo $this->getSelectionDeleteButtonHtml() ?></span></td>';
|
| 74 |
+
|
| 75 |
+
Bundle.Selection = Class.create();
|
| 76 |
+
Bundle.Selection.prototype = {
|
| 77 |
+
idLabel : '<?php echo $this->getFieldId() ?>',
|
| 78 |
+
scopePrice : <?php echo (int)$this->isUsedWebsitePrice() ?>,
|
| 79 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 80 |
+
templateBox : '',
|
| 81 |
+
templateRow : '',
|
| 82 |
+
itemsCount : 0,
|
| 83 |
+
row : null,
|
| 84 |
+
gridSelection : new Hash(),
|
| 85 |
+
|
| 86 |
+
initialize : function() {
|
| 87 |
+
this.templateBox = '<div class="grid tier form-list" id="' + this.idLabel + '_box_{{parentIndex}}">' + bundleTemplateBox + '</div>';
|
| 88 |
+
|
| 89 |
+
this.templateRow = '<tr class="selection" id="' + this.idLabel + '_row_{{index}}">' + bundleTemplateRow + '</tr>';
|
| 90 |
+
},
|
| 91 |
+
|
| 92 |
+
showSearch : function(event) {
|
| 93 |
+
var element = Event.findElement(event, 'div');
|
| 94 |
+
var parts = element.id.split('_');
|
| 95 |
+
|
| 96 |
+
var products = new Array();
|
| 97 |
+
|
| 98 |
+
var inputs = $A($$('#' + element.id + ' tr.selection input.product'));
|
| 99 |
+
for (i=0; i<inputs.length; i++) {
|
| 100 |
+
products.push(inputs[i].value);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
this.gridSelection.set(parts[2], $H({}));
|
| 104 |
+
|
| 105 |
+
new Ajax.Updater(bOption.idLabel + '_search_' + parts[2], '<?php echo $this->getSelectionSearchUrl() ?>', {
|
| 106 |
+
method: 'post',
|
| 107 |
+
parameters : {'index' : parts[2], 'products[]' : products, 'form_key': FORM_KEY},
|
| 108 |
+
evalScripts : true
|
| 109 |
+
});
|
| 110 |
+
|
| 111 |
+
if (Event.element(event).tagName.toLowerCase() != 'button') {
|
| 112 |
+
var button = Event.element(event).up('button');
|
| 113 |
+
} else {
|
| 114 |
+
var button = Event.element(event);
|
| 115 |
+
}
|
| 116 |
+
button.hide();
|
| 117 |
+
},
|
| 118 |
+
|
| 119 |
+
addRow : function (parentIndex, data) {
|
| 120 |
+
var box = null;
|
| 121 |
+
if (!(box = $(this.idLabel + '_box_' + parentIndex))) {
|
| 122 |
+
this.addBox(parentIndex);
|
| 123 |
+
box = $(this.idLabel + '_box_' + parentIndex);
|
| 124 |
+
} else {
|
| 125 |
+
box.show();
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
var option_type = $(bOption.idLabel + '_' + parentIndex + '_type');
|
| 129 |
+
|
| 130 |
+
if(!data){
|
| 131 |
+
var data = {};
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
if (data.can_read_price != undefined && !data.can_read_price) {
|
| 135 |
+
data.selection_price_value = '';
|
| 136 |
+
} else {
|
| 137 |
+
data.selection_price_value = Number(data.selection_price_value).toFixed(2);
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
data.index = this.itemsCount++;
|
| 141 |
+
data.parentIndex = parentIndex;
|
| 142 |
+
|
| 143 |
+
if (option_type.value == 'multi' || option_type.value == 'checkbox') {
|
| 144 |
+
data.option_type = 'checkbox';
|
| 145 |
+
} else {
|
| 146 |
+
data.option_type = 'radio';
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
if (data.is_default == 1) {
|
| 150 |
+
data.checked = 'checked="checked"';
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
this.template = new Template(this.templateRow, this.templateSyntax);
|
| 154 |
+
var tbody = $$('#' + this.idLabel + '_box_' + parentIndex + ' tbody');
|
| 155 |
+
|
| 156 |
+
Element.insert(tbody[0], {'bottom':this.template.evaluate(data)});
|
| 157 |
+
|
| 158 |
+
if (data.selection_price_type) {
|
| 159 |
+
$A($(this.idLabel + '_'+data.index+'_price_type').options).each(function(option){
|
| 160 |
+
if (option.value==data.selection_price_type) option.selected = true;
|
| 161 |
+
});
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
if (data.selection_price_type) {
|
| 165 |
+
$A($(this.idLabel + '_'+data.index+'_can_change_qty').options).each(function(option){
|
| 166 |
+
if (option.value==data.selection_can_change_qty) option.selected = true;
|
| 167 |
+
});
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
var checkbox = $(this.idLabel + '_'+data.index+'_price_scope');
|
| 171 |
+
if (checkbox && this.scopePrice) {
|
| 172 |
+
if (data.price_scope === undefined) {
|
| 173 |
+
checkbox.up().hide();
|
| 174 |
+
} else if(!data.price_scope) {
|
| 175 |
+
checkbox.checked = true;
|
| 176 |
+
this.addScope(null, checkbox);
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
this.bindScopeCheckbox();
|
| 181 |
+
|
| 182 |
+
if (option_type.value == 'multi' || option_type.value == 'checkbox') {
|
| 183 |
+
/**
|
| 184 |
+
* Hide not needed elements (user defined qty select box)
|
| 185 |
+
*/
|
| 186 |
+
inputs = $A($$('#' + this.idLabel + '_box_' + data.parentIndex + ' .qty-box'));
|
| 187 |
+
inputs.each(
|
| 188 |
+
function(elem){
|
| 189 |
+
elem.hide();
|
| 190 |
+
}
|
| 191 |
+
);
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
if (!$('price_type') || $('price_type').value != '1') {
|
| 195 |
+
/**
|
| 196 |
+
* Hide not needed elements (price type select and price input)
|
| 197 |
+
*/
|
| 198 |
+
inputs = $A($$('#' + this.idLabel + '_box_' + data.parentIndex + ' .price-type-box'));
|
| 199 |
+
inputs.each(
|
| 200 |
+
function(elem){
|
| 201 |
+
elem.hide();
|
| 202 |
+
}
|
| 203 |
+
);
|
| 204 |
+
}
|
| 205 |
+
},
|
| 206 |
+
|
| 207 |
+
bindScopeCheckbox : function(){
|
| 208 |
+
var checkboxes = $$('.bundle-option-price-scope-checkbox');
|
| 209 |
+
for (var i=0;i<checkboxes.length;i++) {
|
| 210 |
+
if (!$(checkboxes[i]).binded) {
|
| 211 |
+
$(checkboxes[i]).binded = true;
|
| 212 |
+
Event.observe(checkboxes[i], 'click', this.addScope.bind(this));
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
},
|
| 216 |
+
|
| 217 |
+
addScope : function(event, element){
|
| 218 |
+
if (element == undefined) {
|
| 219 |
+
element = $(Event.element(event));
|
| 220 |
+
}
|
| 221 |
+
var priceValue = $(element.id.sub('scope', 'value'));
|
| 222 |
+
var priceType = $(element.id.sub('scope', 'type'));
|
| 223 |
+
|
| 224 |
+
if (element.checked) {
|
| 225 |
+
priceValue.disable();
|
| 226 |
+
priceType.disable();
|
| 227 |
+
} else {
|
| 228 |
+
priceValue.enable();
|
| 229 |
+
priceType.enable();
|
| 230 |
+
}
|
| 231 |
+
},
|
| 232 |
+
|
| 233 |
+
addBox : function (parentIndex) {
|
| 234 |
+
var div = $(bOption.idLabel + '_' + parentIndex)
|
| 235 |
+
this.template = new Template(this.templateBox, this.templateSyntax);
|
| 236 |
+
var data = {'parentIndex' : parentIndex};
|
| 237 |
+
Element.insert(div, {'bottom':this.template.evaluate(data)});
|
| 238 |
+
},
|
| 239 |
+
|
| 240 |
+
remove : function(event) {
|
| 241 |
+
var element = Event.findElement(event, 'tr');
|
| 242 |
+
var container = Event.findElement(event, 'div');
|
| 243 |
+
|
| 244 |
+
if (element) {
|
| 245 |
+
Element.select(element, '.delete').each(function(elem){elem.value='1'});
|
| 246 |
+
Element.select(element, ['input', 'select']).each(function(elem){elem.hide()});
|
| 247 |
+
Element.removeClassName(element, 'selection');
|
| 248 |
+
Element.hide(element);
|
| 249 |
+
|
| 250 |
+
if (container) {
|
| 251 |
+
if ($$('#' + container.id + ' tr.selection')) {
|
| 252 |
+
if (!$$('#' + container.id + ' tr.selection').length) {
|
| 253 |
+
container.hide();
|
| 254 |
+
}
|
| 255 |
+
}
|
| 256 |
+
}
|
| 257 |
+
}
|
| 258 |
+
},
|
| 259 |
+
|
| 260 |
+
checkGroup : function(event) {
|
| 261 |
+
var element = Event.element(event);
|
| 262 |
+
if (element.type == 'radio') {
|
| 263 |
+
var box = element.up('div');
|
| 264 |
+
|
| 265 |
+
var inputs = $$('div#' + box.id + ' input.default');
|
| 266 |
+
if (inputs) {
|
| 267 |
+
for (i=0; i< inputs.length; i++) {
|
| 268 |
+
if (inputs[i].name != element.name) {
|
| 269 |
+
inputs[i].checked = false;
|
| 270 |
+
}
|
| 271 |
+
}
|
| 272 |
+
}
|
| 273 |
+
}
|
| 274 |
+
},
|
| 275 |
+
|
| 276 |
+
productGridAddSelected : function(event) {
|
| 277 |
+
var element = Event.findElement(event, 'button');
|
| 278 |
+
var parts = element.id.split('_');
|
| 279 |
+
|
| 280 |
+
$(bOption.idLabel + '_search_' + parts[2]).innerHTML = '';
|
| 281 |
+
$(bOption.idLabel + '_' + parts[2] + '_add_button').show();
|
| 282 |
+
|
| 283 |
+
this.gridSelection.get(parts[2]).each(
|
| 284 |
+
function(pair) {
|
| 285 |
+
var qty = pair.value.get('qty');
|
| 286 |
+
var data = {
|
| 287 |
+
'name' : pair.value.get('name'),
|
| 288 |
+
'selection_price_value' : 0,
|
| 289 |
+
'selection_qty' : (qty == '' ? 1 : qty),
|
| 290 |
+
'sku' : pair.value.get('sku'),
|
| 291 |
+
'position' : 0,
|
| 292 |
+
'product_id' : pair.key,
|
| 293 |
+
'option_id' : $(bOption.idLabel + '_id_' + parts[2]).value
|
| 294 |
+
};
|
| 295 |
+
bSelection.addRow(parts[2], data);
|
| 296 |
+
}
|
| 297 |
+
);
|
| 298 |
+
},
|
| 299 |
+
|
| 300 |
+
productGridRowInit : function(grid, row){
|
| 301 |
+
var checkbox = $(row).getElementsByClassName('checkbox')[0];
|
| 302 |
+
var inputs = $(row).getElementsByClassName('input-text');
|
| 303 |
+
for (var i = 0; i < inputs.length; i++) {
|
| 304 |
+
inputs[i].checkbox = checkbox;
|
| 305 |
+
Event.observe(inputs[i], 'keyup', this.productGridRowInputChange.bind(this));
|
| 306 |
+
Event.observe(inputs[i], 'change', this.productGridRowInputChange.bind(this));
|
| 307 |
+
}
|
| 308 |
+
},
|
| 309 |
+
|
| 310 |
+
productGridCheckboxCheck : function(grid, element, checked) {
|
| 311 |
+
var id = element.up('table').id.split('_')[4];
|
| 312 |
+
if (element.value > 0) {
|
| 313 |
+
if (element.checked) {
|
| 314 |
+
var tr = element.parentNode.parentNode;
|
| 315 |
+
if (!this.gridSelection.get(id)) {
|
| 316 |
+
this.gridSelection.set(id, new Hash());
|
| 317 |
+
}
|
| 318 |
+
this.gridSelection.get(id).set(element.value, $H({}));
|
| 319 |
+
this.gridSelection.get(id).get(element.value).set('name', tr.select('td.name')[0].innerHTML);
|
| 320 |
+
this.gridSelection.get(id).get(element.value).set('qty', tr.select('input.qty')[0].value);
|
| 321 |
+
this.gridSelection.get(id).get(element.value).set('sku', tr.select('td.sku')[0].innerHTML);
|
| 322 |
+
} else {
|
| 323 |
+
this.gridSelection.get(id).unset(element.value);
|
| 324 |
+
}
|
| 325 |
+
}
|
| 326 |
+
},
|
| 327 |
+
|
| 328 |
+
productGridRowClick : function(grid, event) {
|
| 329 |
+
var trElement = Event.findElement(event, 'tr');
|
| 330 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 331 |
+
if (trElement) {
|
| 332 |
+
var checkbox = Element.select(trElement, 'input');
|
| 333 |
+
if (checkbox[0]) {
|
| 334 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 335 |
+
grid.setCheckboxChecked(checkbox[0], checked);
|
| 336 |
+
}
|
| 337 |
+
}
|
| 338 |
+
},
|
| 339 |
+
|
| 340 |
+
productGridRowInputChange : function(event) {
|
| 341 |
+
var element = Event.element(event);
|
| 342 |
+
if (!element.checkbox.checked) {
|
| 343 |
+
return;
|
| 344 |
+
}
|
| 345 |
+
var id = element.up('table').id.split('_')[4];
|
| 346 |
+
this.gridSelection.get(id).get(element.checkbox.value).set('qty', element.value);
|
| 347 |
+
}
|
| 348 |
+
}
|
| 349 |
+
|
| 350 |
+
bSelection = new Bundle.Selection();
|
| 351 |
+
//]]>
|
| 352 |
+
</script>
|
app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml
ADDED
|
@@ -0,0 +1,411 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = $this->getChilds($_item); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 49 |
+
<?php if ($_item->getOrderItem()->getParentItem()): ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td> </td>
|
| 55 |
+
<td> </td>
|
| 56 |
+
<td> </td>
|
| 57 |
+
<td> </td>
|
| 58 |
+
<td> </td>
|
| 59 |
+
<td> </td>
|
| 60 |
+
<td class="last"> </td>
|
| 61 |
+
</tr>
|
| 62 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
<?php endif; ?>
|
| 65 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 66 |
+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
|
| 67 |
+
<td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 68 |
+
<div>
|
| 69 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 70 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 71 |
+
</div>
|
| 72 |
+
</td>
|
| 73 |
+
<?php else: ?>
|
| 74 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 75 |
+
<?php endif; ?>
|
| 76 |
+
<td class="a-right">
|
| 77 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 78 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 79 |
+
<span class="price-excl-tax">
|
| 80 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 81 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 82 |
+
<?php endif; ?>
|
| 83 |
+
|
| 84 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 85 |
+
<?php
|
| 86 |
+
echo $this->displayPrices(
|
| 87 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 88 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 89 |
+
);
|
| 90 |
+
?>
|
| 91 |
+
<?php else: ?>
|
| 92 |
+
<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
|
| 93 |
+
<?php endif; ?>
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 97 |
+
<br />
|
| 98 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 99 |
+
<small>
|
| 100 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 101 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 102 |
+
<?php endforeach; ?>
|
| 103 |
+
</small>
|
| 104 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 105 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 106 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
|
| 107 |
+
<?php endforeach; ?>
|
| 108 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 109 |
+
<small>
|
| 110 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 111 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 112 |
+
<?php endforeach; ?>
|
| 113 |
+
</small>
|
| 114 |
+
<?php endif; ?>
|
| 115 |
+
|
| 116 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 117 |
+
<br />
|
| 118 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 119 |
+
<?php
|
| 120 |
+
echo $this->displayPrices(
|
| 121 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 122 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 123 |
+
);
|
| 124 |
+
?>
|
| 125 |
+
</span>
|
| 126 |
+
<?php endif; ?>
|
| 127 |
+
<?php endif; ?>
|
| 128 |
+
</span>
|
| 129 |
+
<br />
|
| 130 |
+
<?php endif; ?>
|
| 131 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 132 |
+
<span class="price-incl-tax">
|
| 133 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 134 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 135 |
+
<?php endif; ?>
|
| 136 |
+
<?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
|
| 137 |
+
<?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
|
| 138 |
+
|
| 139 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 140 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
|
| 141 |
+
<?php else: ?>
|
| 142 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
|
| 143 |
+
<?php endif; ?>
|
| 144 |
+
|
| 145 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 146 |
+
<br />
|
| 147 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 148 |
+
<small>
|
| 149 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 150 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 151 |
+
<?php endforeach; ?>
|
| 152 |
+
</small>
|
| 153 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 154 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 155 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
|
| 156 |
+
<?php endforeach; ?>
|
| 157 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 158 |
+
<small>
|
| 159 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 160 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 161 |
+
<?php endforeach; ?>
|
| 162 |
+
</small>
|
| 163 |
+
<?php endif; ?>
|
| 164 |
+
|
| 165 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 166 |
+
<br />
|
| 167 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
|
| 168 |
+
<?php endif; ?>
|
| 169 |
+
<?php endif; ?>
|
| 170 |
+
</span>
|
| 171 |
+
<?php endif; ?>
|
| 172 |
+
<?php else: ?>
|
| 173 |
+
|
| 174 |
+
<?php endif; ?>
|
| 175 |
+
</td>
|
| 176 |
+
<td>
|
| 177 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 178 |
+
<table cellspacing="0" class="qty-table">
|
| 179 |
+
<tr>
|
| 180 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 181 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
|
| 182 |
+
</tr>
|
| 183 |
+
<?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
|
| 184 |
+
<tr>
|
| 185 |
+
<td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
|
| 186 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
|
| 187 |
+
</tr>
|
| 188 |
+
<?php endif; ?>
|
| 189 |
+
<?php if ((float) $_item->getOrderItem()->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
|
| 190 |
+
<tr>
|
| 191 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 192 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
|
| 193 |
+
</tr>
|
| 194 |
+
<?php endif; ?>
|
| 195 |
+
<?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
|
| 196 |
+
<tr>
|
| 197 |
+
<td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
|
| 198 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
|
| 199 |
+
</tr>
|
| 200 |
+
<?php endif; ?>
|
| 201 |
+
<?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
|
| 202 |
+
<tr>
|
| 203 |
+
<td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
|
| 204 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
|
| 205 |
+
</tr>
|
| 206 |
+
<?php endif; ?>
|
| 207 |
+
</table>
|
| 208 |
+
<?php elseif ($this->isShipmentSeparately($_item)): ?>
|
| 209 |
+
<table cellspacing="0" class="qty-table">
|
| 210 |
+
<tr>
|
| 211 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 212 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
|
| 213 |
+
</tr>
|
| 214 |
+
<?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
|
| 215 |
+
<tr>
|
| 216 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 217 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
|
| 218 |
+
</tr>
|
| 219 |
+
<?php endif; ?>
|
| 220 |
+
</table>
|
| 221 |
+
<?php else: ?>
|
| 222 |
+
|
| 223 |
+
<?php endif; ?>
|
| 224 |
+
</td>
|
| 225 |
+
<?php if ($this->canParentReturnToStock($_item)) : ?>
|
| 226 |
+
<td class="a-center">
|
| 227 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 228 |
+
<?php if ($this->canReturnItemToStock($_item)) : ?>
|
| 229 |
+
<input type="checkbox" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]" value="1"<?php if ($_item->getBackToStock()):?> checked="checked"<?php endif;?> />
|
| 230 |
+
<?php endif; ?>
|
| 231 |
+
<?php else: ?>
|
| 232 |
+
|
| 233 |
+
<?php endif; ?>
|
| 234 |
+
</td>
|
| 235 |
+
<?php endif; ?>
|
| 236 |
+
<td class="a-center">
|
| 237 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 238 |
+
<?php if ($this->canEditQty()) : ?>
|
| 239 |
+
<input type="text" class="input-text qty-input" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]" value="<?php echo $_item->getQty()*1 ?>" />
|
| 240 |
+
<?php else: ?>
|
| 241 |
+
<?php echo $_item->getQty()*1 ?>
|
| 242 |
+
<?php endif; ?>
|
| 243 |
+
<?php else: ?>
|
| 244 |
+
|
| 245 |
+
<?php endif; ?>
|
| 246 |
+
</td>
|
| 247 |
+
<td class="a-right">
|
| 248 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 249 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 250 |
+
<span class="price-excl-tax">
|
| 251 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 252 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 253 |
+
<?php endif; ?>
|
| 254 |
+
|
| 255 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 256 |
+
<?php
|
| 257 |
+
echo $this->displayPrices(
|
| 258 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 259 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 260 |
+
);
|
| 261 |
+
?>
|
| 262 |
+
<?php else: ?>
|
| 263 |
+
<?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
|
| 264 |
+
<?php endif; ?>
|
| 265 |
+
|
| 266 |
+
|
| 267 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 268 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 269 |
+
<small>
|
| 270 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 271 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 272 |
+
<?php endforeach; ?>
|
| 273 |
+
</small>
|
| 274 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 275 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 276 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
|
| 277 |
+
<?php endforeach; ?>
|
| 278 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 279 |
+
<small>
|
| 280 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 281 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 282 |
+
<?php endforeach; ?>
|
| 283 |
+
</small>
|
| 284 |
+
<?php endif; ?>
|
| 285 |
+
|
| 286 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 287 |
+
<br />
|
| 288 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 289 |
+
<?php
|
| 290 |
+
echo $this->displayPrices(
|
| 291 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 292 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 293 |
+
);
|
| 294 |
+
?>
|
| 295 |
+
</span>
|
| 296 |
+
<?php endif; ?>
|
| 297 |
+
<?php endif; ?>
|
| 298 |
+
</span>
|
| 299 |
+
<br />
|
| 300 |
+
<?php endif; ?>
|
| 301 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 302 |
+
<span class="price-incl-tax">
|
| 303 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 304 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 305 |
+
<?php endif; ?>
|
| 306 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
| 307 |
+
<?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
|
| 308 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 309 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
|
| 310 |
+
<?php else: ?>
|
| 311 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
|
| 312 |
+
<?php endif; ?>
|
| 313 |
+
|
| 314 |
+
|
| 315 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 316 |
+
|
| 317 |
+
<br />
|
| 318 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 319 |
+
<small>
|
| 320 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 321 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 322 |
+
<?php endforeach; ?>
|
| 323 |
+
</small>
|
| 324 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 325 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 326 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
|
| 327 |
+
<?php endforeach; ?>
|
| 328 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 329 |
+
<small>
|
| 330 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 331 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 332 |
+
<?php endforeach; ?>
|
| 333 |
+
</small>
|
| 334 |
+
<?php endif; ?>
|
| 335 |
+
|
| 336 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 337 |
+
<br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
|
| 338 |
+
<?php endif; ?>
|
| 339 |
+
<?php endif; ?>
|
| 340 |
+
</span>
|
| 341 |
+
<?php endif; ?>
|
| 342 |
+
</span>
|
| 343 |
+
<?php else: ?>
|
| 344 |
+
|
| 345 |
+
<?php endif; ?>
|
| 346 |
+
</td>
|
| 347 |
+
<td class="a-right">
|
| 348 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 349 |
+
<?php echo $this->displayPriceAttribute('tax_amount') ?>
|
| 350 |
+
<?php else: ?>
|
| 351 |
+
|
| 352 |
+
<?php endif; ?>
|
| 353 |
+
</td>
|
| 354 |
+
<td class="a-right">
|
| 355 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 356 |
+
<?php echo $this->displayPriceAttribute('discount_amount') ?>
|
| 357 |
+
<?php else: ?>
|
| 358 |
+
|
| 359 |
+
<?php endif; ?>
|
| 360 |
+
</td>
|
| 361 |
+
<td class="a-right last">
|
| 362 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 363 |
+
<?php echo $this->displayPrices(
|
| 364 |
+
$_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
|
| 365 |
+
$_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
|
| 366 |
+
) ?>
|
| 367 |
+
<?php else: ?>
|
| 368 |
+
|
| 369 |
+
<?php endif; ?>
|
| 370 |
+
</td>
|
| 371 |
+
</tr>
|
| 372 |
+
<?php endforeach; ?>
|
| 373 |
+
<?php if($_showlastRow): ?>
|
| 374 |
+
<tr class="border">
|
| 375 |
+
<td>
|
| 376 |
+
<?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
|
| 377 |
+
<dl class="item-options">
|
| 378 |
+
<?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
|
| 379 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 380 |
+
<dd>
|
| 381 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 382 |
+
<?php echo $option['value'];?>
|
| 383 |
+
<?php else: ?>
|
| 384 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 385 |
+
<?php if ($_remainder):?>
|
| 386 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 387 |
+
<script type="text/javascript">
|
| 388 |
+
$('<?php echo $_id ?>').hide();
|
| 389 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 390 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 391 |
+
</script>
|
| 392 |
+
<?php endif;?>
|
| 393 |
+
<?php endif;?>
|
| 394 |
+
</dd>
|
| 395 |
+
<?php endforeach; ?>
|
| 396 |
+
</dl>
|
| 397 |
+
<?php else: ?>
|
| 398 |
+
|
| 399 |
+
<?php endif; ?>
|
| 400 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
| 401 |
+
</td>
|
| 402 |
+
<td> </td>
|
| 403 |
+
<td> </td>
|
| 404 |
+
<td> </td>
|
| 405 |
+
<td> </td>
|
| 406 |
+
<td> </td>
|
| 407 |
+
<td> </td>
|
| 408 |
+
<td> </td>
|
| 409 |
+
<td class="last"> </td>
|
| 410 |
+
</tr>
|
| 411 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = $this->getChilds($_item); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 49 |
+
<?php if ($_item->getOrderItem()->getParentItem()): ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td> </td>
|
| 55 |
+
<td> </td>
|
| 56 |
+
<td> </td>
|
| 57 |
+
<td> </td>
|
| 58 |
+
<td class="last"> </td>
|
| 59 |
+
</tr>
|
| 60 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 61 |
+
<?php endif; ?>
|
| 62 |
+
<?php endif; ?>
|
| 63 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 64 |
+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
|
| 65 |
+
<td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 66 |
+
<div>
|
| 67 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 68 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 69 |
+
</div>
|
| 70 |
+
</td>
|
| 71 |
+
<?php else: ?>
|
| 72 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 73 |
+
<?php endif; ?>
|
| 74 |
+
<td class="a-right">
|
| 75 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 76 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 77 |
+
<span class="price-excl-tax">
|
| 78 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 79 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 80 |
+
<?php endif; ?>
|
| 81 |
+
|
| 82 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 83 |
+
<?php
|
| 84 |
+
echo $this->displayPrices(
|
| 85 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 86 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 87 |
+
);
|
| 88 |
+
?>
|
| 89 |
+
<?php else: ?>
|
| 90 |
+
<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
|
| 91 |
+
<?php endif; ?>
|
| 92 |
+
|
| 93 |
+
|
| 94 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 95 |
+
<br />
|
| 96 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 97 |
+
<small>
|
| 98 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 99 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 100 |
+
<?php endforeach; ?>
|
| 101 |
+
</small>
|
| 102 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 103 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 104 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
|
| 105 |
+
<?php endforeach; ?>
|
| 106 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 107 |
+
<small>
|
| 108 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 109 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 110 |
+
<?php endforeach; ?>
|
| 111 |
+
</small>
|
| 112 |
+
<?php endif; ?>
|
| 113 |
+
|
| 114 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 115 |
+
<br />
|
| 116 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 117 |
+
<?php
|
| 118 |
+
echo $this->displayPrices(
|
| 119 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 120 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 121 |
+
);
|
| 122 |
+
?>
|
| 123 |
+
</span>
|
| 124 |
+
<?php endif; ?>
|
| 125 |
+
<?php endif; ?>
|
| 126 |
+
</span>
|
| 127 |
+
<br />
|
| 128 |
+
<?php endif; ?>
|
| 129 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 130 |
+
<span class="price-incl-tax">
|
| 131 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 132 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 133 |
+
<?php endif; ?>
|
| 134 |
+
<?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
|
| 135 |
+
<?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
|
| 136 |
+
|
| 137 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 138 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
|
| 139 |
+
<?php else: ?>
|
| 140 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
|
| 141 |
+
<?php endif; ?>
|
| 142 |
+
|
| 143 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 144 |
+
<br />
|
| 145 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 146 |
+
<small>
|
| 147 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 148 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 149 |
+
<?php endforeach; ?>
|
| 150 |
+
</small>
|
| 151 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 152 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 153 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
|
| 154 |
+
<?php endforeach; ?>
|
| 155 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 156 |
+
<small>
|
| 157 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 158 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 159 |
+
<?php endforeach; ?>
|
| 160 |
+
</small>
|
| 161 |
+
<?php endif; ?>
|
| 162 |
+
|
| 163 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 164 |
+
<br />
|
| 165 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
|
| 166 |
+
<?php endif; ?>
|
| 167 |
+
<?php endif; ?>
|
| 168 |
+
</span>
|
| 169 |
+
<?php endif; ?>
|
| 170 |
+
<?php else: ?>
|
| 171 |
+
|
| 172 |
+
<?php endif; ?>
|
| 173 |
+
</td>
|
| 174 |
+
<td class="a-center">
|
| 175 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 176 |
+
<?php echo $_item->getQty()*1 ?>
|
| 177 |
+
<?php else: ?>
|
| 178 |
+
|
| 179 |
+
<?php endif; ?>
|
| 180 |
+
</td>
|
| 181 |
+
<td class="a-right">
|
| 182 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 183 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 184 |
+
<span class="price-excl-tax">
|
| 185 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 186 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 187 |
+
<?php endif; ?>
|
| 188 |
+
|
| 189 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 190 |
+
<?php
|
| 191 |
+
echo $this->displayPrices(
|
| 192 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 193 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 194 |
+
);
|
| 195 |
+
?>
|
| 196 |
+
<?php else: ?>
|
| 197 |
+
<?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
|
| 198 |
+
<?php endif; ?>
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 202 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 203 |
+
<small>
|
| 204 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 205 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 206 |
+
<?php endforeach; ?>
|
| 207 |
+
</small>
|
| 208 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 209 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 210 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
|
| 211 |
+
<?php endforeach; ?>
|
| 212 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 213 |
+
<small>
|
| 214 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 215 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 216 |
+
<?php endforeach; ?>
|
| 217 |
+
</small>
|
| 218 |
+
<?php endif; ?>
|
| 219 |
+
|
| 220 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 221 |
+
<br />
|
| 222 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 223 |
+
<?php
|
| 224 |
+
echo $this->displayPrices(
|
| 225 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 226 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 227 |
+
);
|
| 228 |
+
?>
|
| 229 |
+
</span>
|
| 230 |
+
<?php endif; ?>
|
| 231 |
+
<?php endif; ?>
|
| 232 |
+
</span>
|
| 233 |
+
<br />
|
| 234 |
+
<?php endif; ?>
|
| 235 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 236 |
+
<span class="price-incl-tax">
|
| 237 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 238 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 239 |
+
<?php endif; ?>
|
| 240 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
| 241 |
+
<?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
|
| 242 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 243 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
|
| 244 |
+
<?php else: ?>
|
| 245 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
|
| 246 |
+
<?php endif; ?>
|
| 247 |
+
|
| 248 |
+
|
| 249 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 250 |
+
|
| 251 |
+
<br />
|
| 252 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 253 |
+
<small>
|
| 254 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 255 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 256 |
+
<?php endforeach; ?>
|
| 257 |
+
</small>
|
| 258 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 259 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 260 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
|
| 261 |
+
<?php endforeach; ?>
|
| 262 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 263 |
+
<small>
|
| 264 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 265 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 266 |
+
<?php endforeach; ?>
|
| 267 |
+
</small>
|
| 268 |
+
<?php endif; ?>
|
| 269 |
+
|
| 270 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 271 |
+
<br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
|
| 272 |
+
<?php endif; ?>
|
| 273 |
+
<?php endif; ?>
|
| 274 |
+
</span>
|
| 275 |
+
<?php endif; ?>
|
| 276 |
+
</span>
|
| 277 |
+
<?php else: ?>
|
| 278 |
+
|
| 279 |
+
<?php endif; ?>
|
| 280 |
+
</td>
|
| 281 |
+
<td class="a-right">
|
| 282 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 283 |
+
<?php echo $this->displayPriceAttribute('tax_amount') ?>
|
| 284 |
+
<?php else: ?>
|
| 285 |
+
|
| 286 |
+
<?php endif; ?>
|
| 287 |
+
</td>
|
| 288 |
+
<td class="a-right">
|
| 289 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 290 |
+
<?php echo $this->displayPriceAttribute('discount_amount') ?>
|
| 291 |
+
<?php else: ?>
|
| 292 |
+
|
| 293 |
+
<?php endif; ?>
|
| 294 |
+
</td>
|
| 295 |
+
<td class="a-right last">
|
| 296 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 297 |
+
<?php echo $this->displayPrices(
|
| 298 |
+
$_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
|
| 299 |
+
$_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
|
| 300 |
+
) ?>
|
| 301 |
+
<?php else: ?>
|
| 302 |
+
|
| 303 |
+
<?php endif; ?>
|
| 304 |
+
</td>
|
| 305 |
+
</tr>
|
| 306 |
+
<?php endforeach; ?>
|
| 307 |
+
<?php if($_showlastRow): ?>
|
| 308 |
+
<tr class="border">
|
| 309 |
+
<td>
|
| 310 |
+
<?php if ($this->getOrderOptions()): ?>
|
| 311 |
+
<dl class="item-options">
|
| 312 |
+
<?php foreach ($this->getOrderOptions() as $option): ?>
|
| 313 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 314 |
+
<dd>
|
| 315 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 316 |
+
<?php echo $option['value'];?>
|
| 317 |
+
<?php else: ?>
|
| 318 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 319 |
+
<?php if ($_remainder):?>
|
| 320 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 321 |
+
<script type="text/javascript">
|
| 322 |
+
$('<?php echo $_id ?>').hide();
|
| 323 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 324 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 325 |
+
</script>
|
| 326 |
+
<?php endif;?>
|
| 327 |
+
<?php endif;?>
|
| 328 |
+
</dd>
|
| 329 |
+
<?php endforeach; ?>
|
| 330 |
+
</dl>
|
| 331 |
+
<?php endif; ?>
|
| 332 |
+
<?php echo $this->escapeHtml($this->getItem()->getDescription()) ?>
|
| 333 |
+
</td>
|
| 334 |
+
<td> </td>
|
| 335 |
+
<td> </td>
|
| 336 |
+
<td> </td>
|
| 337 |
+
<td> </td>
|
| 338 |
+
<td> </td>
|
| 339 |
+
<td class="last"> </td>
|
| 340 |
+
</tr>
|
| 341 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml
ADDED
|
@@ -0,0 +1,398 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = $this->getChilds($_item); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php if ($_item->getOrderItem()->getParentItem()): ?>
|
| 49 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td> </td>
|
| 55 |
+
<td> </td>
|
| 56 |
+
<td> </td>
|
| 57 |
+
<td> </td>
|
| 58 |
+
<td> </td>
|
| 59 |
+
<td class="last"> </td>
|
| 60 |
+
</tr>
|
| 61 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 62 |
+
<?php endif; ?>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 65 |
+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
|
| 66 |
+
<td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 67 |
+
<div>
|
| 68 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 69 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 70 |
+
</div>
|
| 71 |
+
</td>
|
| 72 |
+
<?php else: ?>
|
| 73 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 74 |
+
<?php endif; ?>
|
| 75 |
+
<td class="a-right">
|
| 76 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 77 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 78 |
+
<span class="price-excl-tax">
|
| 79 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 80 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 81 |
+
<?php endif; ?>
|
| 82 |
+
|
| 83 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 84 |
+
<?php
|
| 85 |
+
echo $this->displayPrices(
|
| 86 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 87 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 88 |
+
);
|
| 89 |
+
?>
|
| 90 |
+
<?php else: ?>
|
| 91 |
+
<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
|
| 92 |
+
<?php endif; ?>
|
| 93 |
+
|
| 94 |
+
|
| 95 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 96 |
+
<br />
|
| 97 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 98 |
+
<small>
|
| 99 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 100 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 101 |
+
<?php endforeach; ?>
|
| 102 |
+
</small>
|
| 103 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 104 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 105 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
|
| 106 |
+
<?php endforeach; ?>
|
| 107 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 108 |
+
<small>
|
| 109 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 110 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 111 |
+
<?php endforeach; ?>
|
| 112 |
+
</small>
|
| 113 |
+
<?php endif; ?>
|
| 114 |
+
|
| 115 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 116 |
+
<br />
|
| 117 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 118 |
+
<?php
|
| 119 |
+
echo $this->displayPrices(
|
| 120 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 121 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 122 |
+
);
|
| 123 |
+
?>
|
| 124 |
+
</span>
|
| 125 |
+
<?php endif; ?>
|
| 126 |
+
<?php endif; ?>
|
| 127 |
+
</span>
|
| 128 |
+
<br />
|
| 129 |
+
<?php endif; ?>
|
| 130 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 131 |
+
<span class="price-incl-tax">
|
| 132 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 133 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 134 |
+
<?php endif; ?>
|
| 135 |
+
<?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
|
| 136 |
+
<?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
|
| 137 |
+
|
| 138 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 139 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
|
| 140 |
+
<?php else: ?>
|
| 141 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
|
| 142 |
+
<?php endif; ?>
|
| 143 |
+
|
| 144 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 145 |
+
<br />
|
| 146 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 147 |
+
<small>
|
| 148 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 149 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 150 |
+
<?php endforeach; ?>
|
| 151 |
+
</small>
|
| 152 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 153 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 154 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
|
| 155 |
+
<?php endforeach; ?>
|
| 156 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 157 |
+
<small>
|
| 158 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 159 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 160 |
+
<?php endforeach; ?>
|
| 161 |
+
</small>
|
| 162 |
+
<?php endif; ?>
|
| 163 |
+
|
| 164 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 165 |
+
<br />
|
| 166 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
|
| 167 |
+
<?php endif; ?>
|
| 168 |
+
<?php endif; ?>
|
| 169 |
+
</span>
|
| 170 |
+
<?php endif; ?>
|
| 171 |
+
<?php else: ?>
|
| 172 |
+
|
| 173 |
+
<?php endif; ?>
|
| 174 |
+
</td>
|
| 175 |
+
<td>
|
| 176 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 177 |
+
<table cellspacing="0" class="qty-table">
|
| 178 |
+
<tr>
|
| 179 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 180 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
|
| 181 |
+
</tr>
|
| 182 |
+
<?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
|
| 183 |
+
<tr>
|
| 184 |
+
<td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
|
| 185 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
|
| 186 |
+
</tr>
|
| 187 |
+
<?php endif; ?>
|
| 188 |
+
<?php if ((float) $_item->getOrderItem()->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
|
| 189 |
+
<tr>
|
| 190 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 191 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
|
| 192 |
+
</tr>
|
| 193 |
+
<?php endif; ?>
|
| 194 |
+
<?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
|
| 195 |
+
<tr>
|
| 196 |
+
<td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
|
| 197 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
|
| 198 |
+
</tr>
|
| 199 |
+
<?php endif; ?>
|
| 200 |
+
<?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
|
| 201 |
+
<tr>
|
| 202 |
+
<td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
|
| 203 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
|
| 204 |
+
</tr>
|
| 205 |
+
<?php endif; ?>
|
| 206 |
+
</table>
|
| 207 |
+
<?php elseif ($this->isShipmentSeparately($_item)): ?>
|
| 208 |
+
<table cellspacing="0" class="qty-table">
|
| 209 |
+
<tr>
|
| 210 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 211 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
|
| 212 |
+
</tr>
|
| 213 |
+
<?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
|
| 214 |
+
<tr>
|
| 215 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 216 |
+
<td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
|
| 217 |
+
</tr>
|
| 218 |
+
<?php endif; ?>
|
| 219 |
+
</table>
|
| 220 |
+
<?php else: ?>
|
| 221 |
+
|
| 222 |
+
<?php endif; ?>
|
| 223 |
+
</td>
|
| 224 |
+
<td class="a-center">
|
| 225 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 226 |
+
<?php if ($this->canEditQty()) : ?>
|
| 227 |
+
<input type="text" class="input-text qty-input" name="invoice[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
|
| 228 |
+
<?php else : ?>
|
| 229 |
+
<?php echo $_item->getQty()*1 ?>
|
| 230 |
+
<?php endif; ?>
|
| 231 |
+
<?php else: ?>
|
| 232 |
+
|
| 233 |
+
<?php endif; ?>
|
| 234 |
+
</td>
|
| 235 |
+
<td class="a-right">
|
| 236 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 237 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 238 |
+
<span class="price-excl-tax">
|
| 239 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 240 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 241 |
+
<?php endif; ?>
|
| 242 |
+
|
| 243 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 244 |
+
<?php
|
| 245 |
+
echo $this->displayPrices(
|
| 246 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 247 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 248 |
+
);
|
| 249 |
+
?>
|
| 250 |
+
<?php else: ?>
|
| 251 |
+
<?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
|
| 252 |
+
<?php endif; ?>
|
| 253 |
+
|
| 254 |
+
|
| 255 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 256 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 257 |
+
<small>
|
| 258 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 259 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 260 |
+
<?php endforeach; ?>
|
| 261 |
+
</small>
|
| 262 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 263 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 264 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
|
| 265 |
+
<?php endforeach; ?>
|
| 266 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 267 |
+
<small>
|
| 268 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 269 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 270 |
+
<?php endforeach; ?>
|
| 271 |
+
</small>
|
| 272 |
+
<?php endif; ?>
|
| 273 |
+
|
| 274 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 275 |
+
<br />
|
| 276 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 277 |
+
<?php
|
| 278 |
+
echo $this->displayPrices(
|
| 279 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 280 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 281 |
+
);
|
| 282 |
+
?>
|
| 283 |
+
</span>
|
| 284 |
+
<?php endif; ?>
|
| 285 |
+
<?php endif; ?>
|
| 286 |
+
</span>
|
| 287 |
+
<br />
|
| 288 |
+
<?php endif; ?>
|
| 289 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 290 |
+
<span class="price-incl-tax">
|
| 291 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 292 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 293 |
+
<?php endif; ?>
|
| 294 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
| 295 |
+
<?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
|
| 296 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 297 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
|
| 298 |
+
<?php else: ?>
|
| 299 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
|
| 300 |
+
<?php endif; ?>
|
| 301 |
+
|
| 302 |
+
|
| 303 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 304 |
+
|
| 305 |
+
<br />
|
| 306 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 307 |
+
<small>
|
| 308 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 309 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 310 |
+
<?php endforeach; ?>
|
| 311 |
+
</small>
|
| 312 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 313 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 314 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
|
| 315 |
+
<?php endforeach; ?>
|
| 316 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 317 |
+
<small>
|
| 318 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 319 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 320 |
+
<?php endforeach; ?>
|
| 321 |
+
</small>
|
| 322 |
+
<?php endif; ?>
|
| 323 |
+
|
| 324 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 325 |
+
<br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item),$_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
|
| 326 |
+
<?php endif; ?>
|
| 327 |
+
<?php endif; ?>
|
| 328 |
+
</span>
|
| 329 |
+
<?php endif; ?>
|
| 330 |
+
</span>
|
| 331 |
+
<?php else: ?>
|
| 332 |
+
|
| 333 |
+
<?php endif; ?>
|
| 334 |
+
</td>
|
| 335 |
+
<td class="a-right">
|
| 336 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 337 |
+
<?php echo $this->displayPriceAttribute('tax_amount') ?>
|
| 338 |
+
<?php else: ?>
|
| 339 |
+
|
| 340 |
+
<?php endif; ?>
|
| 341 |
+
</td>
|
| 342 |
+
<td class="a-right">
|
| 343 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 344 |
+
<?php echo $this->displayPriceAttribute('discount_amount') ?>
|
| 345 |
+
<?php else: ?>
|
| 346 |
+
|
| 347 |
+
<?php endif; ?>
|
| 348 |
+
</td>
|
| 349 |
+
<td class="a-right last">
|
| 350 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 351 |
+
<?php echo $this->displayPrices(
|
| 352 |
+
$_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
|
| 353 |
+
$_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
|
| 354 |
+
) ?>
|
| 355 |
+
<?php else: ?>
|
| 356 |
+
|
| 357 |
+
<?php endif; ?>
|
| 358 |
+
</td>
|
| 359 |
+
</tr>
|
| 360 |
+
<?php endforeach; ?>
|
| 361 |
+
<?php if($_showlastRow): ?>
|
| 362 |
+
<tr class="border">
|
| 363 |
+
<td>
|
| 364 |
+
<?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
|
| 365 |
+
<dl class="item-options">
|
| 366 |
+
<?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
|
| 367 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 368 |
+
<dd>
|
| 369 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 370 |
+
<?php echo $option['value'];?>
|
| 371 |
+
<?php else: ?>
|
| 372 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 373 |
+
<?php if ($_remainder):?>
|
| 374 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 375 |
+
<script type="text/javascript">
|
| 376 |
+
$('<?php echo $_id ?>').hide();
|
| 377 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 378 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 379 |
+
</script>
|
| 380 |
+
<?php endif;?>
|
| 381 |
+
<?php endif;?>
|
| 382 |
+
</dd>
|
| 383 |
+
<?php endforeach; ?>
|
| 384 |
+
</dl>
|
| 385 |
+
<?php else: ?>
|
| 386 |
+
|
| 387 |
+
<?php endif; ?>
|
| 388 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
| 389 |
+
</td>
|
| 390 |
+
<td> </td>
|
| 391 |
+
<td> </td>
|
| 392 |
+
<td> </td>
|
| 393 |
+
<td> </td>
|
| 394 |
+
<td> </td>
|
| 395 |
+
<td> </td>
|
| 396 |
+
<td class="last"> </td>
|
| 397 |
+
</tr>
|
| 398 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = $this->getChilds($_item); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php if ($_item->getOrderItem()->getParentItem()): ?>
|
| 49 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td> </td>
|
| 55 |
+
<td> </td>
|
| 56 |
+
<td> </td>
|
| 57 |
+
<td> </td>
|
| 58 |
+
<td class="last"> </td>
|
| 59 |
+
</tr>
|
| 60 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 61 |
+
<?php endif; ?>
|
| 62 |
+
<?php endif; ?>
|
| 63 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 64 |
+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
|
| 65 |
+
<td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 66 |
+
<div>
|
| 67 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 68 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 69 |
+
</div>
|
| 70 |
+
<?php else: ?>
|
| 71 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 72 |
+
<?php endif; ?>
|
| 73 |
+
<td class="a-right">
|
| 74 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 75 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 76 |
+
<span class="price-excl-tax">
|
| 77 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 78 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 79 |
+
<?php endif; ?>
|
| 80 |
+
|
| 81 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 82 |
+
<?php
|
| 83 |
+
echo $this->displayPrices(
|
| 84 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 85 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 86 |
+
);
|
| 87 |
+
?>
|
| 88 |
+
<?php else: ?>
|
| 89 |
+
<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
|
| 90 |
+
<?php endif; ?>
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 94 |
+
<br />
|
| 95 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 96 |
+
<small>
|
| 97 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 98 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 99 |
+
<?php endforeach; ?>
|
| 100 |
+
</small>
|
| 101 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 102 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 103 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
|
| 104 |
+
<?php endforeach; ?>
|
| 105 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 106 |
+
<small>
|
| 107 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 108 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 109 |
+
<?php endforeach; ?>
|
| 110 |
+
</small>
|
| 111 |
+
<?php endif; ?>
|
| 112 |
+
|
| 113 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 114 |
+
<br />
|
| 115 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 116 |
+
<?php
|
| 117 |
+
echo $this->displayPrices(
|
| 118 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 119 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 120 |
+
);
|
| 121 |
+
?>
|
| 122 |
+
</span>
|
| 123 |
+
<?php endif; ?>
|
| 124 |
+
<?php endif; ?>
|
| 125 |
+
</span>
|
| 126 |
+
<br />
|
| 127 |
+
<?php endif; ?>
|
| 128 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 129 |
+
<span class="price-incl-tax">
|
| 130 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 131 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 132 |
+
<?php endif; ?>
|
| 133 |
+
<?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
|
| 134 |
+
<?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
|
| 135 |
+
|
| 136 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 137 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
|
| 138 |
+
<?php else: ?>
|
| 139 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
|
| 140 |
+
<?php endif; ?>
|
| 141 |
+
|
| 142 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 143 |
+
<br />
|
| 144 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 145 |
+
<small>
|
| 146 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 147 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 148 |
+
<?php endforeach; ?>
|
| 149 |
+
</small>
|
| 150 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 151 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 152 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
|
| 153 |
+
<?php endforeach; ?>
|
| 154 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 155 |
+
<small>
|
| 156 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 157 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 158 |
+
<?php endforeach; ?>
|
| 159 |
+
</small>
|
| 160 |
+
<?php endif; ?>
|
| 161 |
+
|
| 162 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 163 |
+
<br />
|
| 164 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
|
| 165 |
+
<?php endif; ?>
|
| 166 |
+
<?php endif; ?>
|
| 167 |
+
</span>
|
| 168 |
+
<?php endif; ?>
|
| 169 |
+
<?php else: ?>
|
| 170 |
+
|
| 171 |
+
<?php endif; ?>
|
| 172 |
+
</td>
|
| 173 |
+
<td class="a-center">
|
| 174 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 175 |
+
<?php echo $_item->getQty()*1 ?>
|
| 176 |
+
<?php else: ?>
|
| 177 |
+
|
| 178 |
+
<?php endif; ?>
|
| 179 |
+
</td>
|
| 180 |
+
<td class="a-right">
|
| 181 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 182 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 183 |
+
<span class="price-excl-tax">
|
| 184 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 185 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 186 |
+
<?php endif; ?>
|
| 187 |
+
|
| 188 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 189 |
+
<?php
|
| 190 |
+
echo $this->displayPrices(
|
| 191 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 192 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 193 |
+
);
|
| 194 |
+
?>
|
| 195 |
+
<?php else: ?>
|
| 196 |
+
<?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
|
| 197 |
+
<?php endif; ?>
|
| 198 |
+
|
| 199 |
+
|
| 200 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 201 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 202 |
+
<small>
|
| 203 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 204 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 205 |
+
<?php endforeach; ?>
|
| 206 |
+
</small>
|
| 207 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 208 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 209 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
|
| 210 |
+
<?php endforeach; ?>
|
| 211 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 212 |
+
<small>
|
| 213 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 214 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 215 |
+
<?php endforeach; ?>
|
| 216 |
+
</small>
|
| 217 |
+
<?php endif; ?>
|
| 218 |
+
|
| 219 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 220 |
+
<br />
|
| 221 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 222 |
+
<?php
|
| 223 |
+
echo $this->displayPrices(
|
| 224 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 225 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 226 |
+
);
|
| 227 |
+
?>
|
| 228 |
+
</span>
|
| 229 |
+
<?php endif; ?>
|
| 230 |
+
<?php endif; ?>
|
| 231 |
+
</span>
|
| 232 |
+
<br />
|
| 233 |
+
<?php endif; ?>
|
| 234 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 235 |
+
<span class="price-incl-tax">
|
| 236 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 237 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 238 |
+
<?php endif; ?>
|
| 239 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
| 240 |
+
<?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
|
| 241 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 242 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
|
| 243 |
+
<?php else: ?>
|
| 244 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
|
| 245 |
+
<?php endif; ?>
|
| 246 |
+
|
| 247 |
+
|
| 248 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 249 |
+
|
| 250 |
+
<br />
|
| 251 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 252 |
+
<small>
|
| 253 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 254 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 255 |
+
<?php endforeach; ?>
|
| 256 |
+
</small>
|
| 257 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 258 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 259 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
|
| 260 |
+
<?php endforeach; ?>
|
| 261 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 262 |
+
<small>
|
| 263 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 264 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 265 |
+
<?php endforeach; ?>
|
| 266 |
+
</small>
|
| 267 |
+
<?php endif; ?>
|
| 268 |
+
|
| 269 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 270 |
+
<br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
|
| 271 |
+
<?php endif; ?>
|
| 272 |
+
<?php endif; ?>
|
| 273 |
+
</span>
|
| 274 |
+
<?php endif; ?>
|
| 275 |
+
</span>
|
| 276 |
+
<?php else: ?>
|
| 277 |
+
|
| 278 |
+
<?php endif; ?>
|
| 279 |
+
</td>
|
| 280 |
+
<td class="a-right">
|
| 281 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 282 |
+
<?php echo $this->displayPriceAttribute('tax_amount') ?>
|
| 283 |
+
<?php else: ?>
|
| 284 |
+
|
| 285 |
+
<?php endif; ?>
|
| 286 |
+
</td>
|
| 287 |
+
<td class="a-right">
|
| 288 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 289 |
+
<?php echo $this->displayPriceAttribute('discount_amount') ?>
|
| 290 |
+
<?php else: ?>
|
| 291 |
+
|
| 292 |
+
<?php endif; ?>
|
| 293 |
+
</td>
|
| 294 |
+
<td class="a-right last">
|
| 295 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 296 |
+
<?php echo $this->displayPrices(
|
| 297 |
+
$_item->getBaseRowTotal() + $_item->getBaseTaxAmount() - $_item->getBaseDiscountAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount(),
|
| 298 |
+
$_item->getRowTotal() + $_item->getTaxAmount() - $_item->getDiscountAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount()
|
| 299 |
+
) ?>
|
| 300 |
+
<?php else: ?>
|
| 301 |
+
|
| 302 |
+
<?php endif; ?>
|
| 303 |
+
</td>
|
| 304 |
+
</tr>
|
| 305 |
+
<?php endforeach; ?>
|
| 306 |
+
<?php if($_showlastRow): ?>
|
| 307 |
+
<tr class="border">
|
| 308 |
+
<td>
|
| 309 |
+
<?php if ($this->getOrderOptions()): ?>
|
| 310 |
+
<dl class="item-options">
|
| 311 |
+
<?php foreach ($this->getOrderOptions() as $option): ?>
|
| 312 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 313 |
+
<dd>
|
| 314 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 315 |
+
<?php echo $option['value'];?>
|
| 316 |
+
<?php else: ?>
|
| 317 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 318 |
+
<?php if ($_remainder):?>
|
| 319 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 320 |
+
<script type="text/javascript">
|
| 321 |
+
$('<?php echo $_id ?>').hide();
|
| 322 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 323 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 324 |
+
</script>
|
| 325 |
+
<?php endif;?>
|
| 326 |
+
<?php endif;?>
|
| 327 |
+
</dd>
|
| 328 |
+
<?php endforeach; ?>
|
| 329 |
+
</dl>
|
| 330 |
+
<?php endif; ?>
|
| 331 |
+
<?php echo $this->escapeHtml($this->getItem()->getDescription()) ?>
|
| 332 |
+
</td>
|
| 333 |
+
<td> </td>
|
| 334 |
+
<td> </td>
|
| 335 |
+
<td> </td>
|
| 336 |
+
<td> </td>
|
| 337 |
+
<td> </td>
|
| 338 |
+
<td class="last"> </td>
|
| 339 |
+
</tr>
|
| 340 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml
ADDED
|
@@ -0,0 +1,415 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_View_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = array_merge(array($_item), $_item->getChildrenItems()); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription() || $this->canDisplayGiftmessage()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 49 |
+
<?php if ($_item->getParentItem()): ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td> </td>
|
| 55 |
+
<td> </td>
|
| 56 |
+
<td> </td>
|
| 57 |
+
<td> </td>
|
| 58 |
+
<td> </td>
|
| 59 |
+
<td> </td>
|
| 60 |
+
<td> </td>
|
| 61 |
+
<td class="last"> </td>
|
| 62 |
+
</tr>
|
| 63 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 64 |
+
<?php endif; ?>
|
| 65 |
+
<?php endif; ?>
|
| 66 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 67 |
+
<?php if (!$_item->getParentItem()): ?>
|
| 68 |
+
<td>
|
| 69 |
+
<h5 class="title">
|
| 70 |
+
<span id="order_item_<?php echo $_item->getId() ?>_title"><?php echo $this->escapeHtml($_item->getName()) ?></span>
|
| 71 |
+
</h5>
|
| 72 |
+
<div>
|
| 73 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 74 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 75 |
+
</div>
|
| 76 |
+
</td>
|
| 77 |
+
<?php else: ?>
|
| 78 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 79 |
+
<?php endif; ?>
|
| 80 |
+
<td class="a-center">
|
| 81 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 82 |
+
<?php echo $_item->getStatus() ?>
|
| 83 |
+
<?php else: ?>
|
| 84 |
+
|
| 85 |
+
<?php endif; ?>
|
| 86 |
+
</td>
|
| 87 |
+
<td class="a-right">
|
| 88 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 89 |
+
<?php echo $this->displayPriceAttribute('original_price') ?>
|
| 90 |
+
<?php else: ?>
|
| 91 |
+
|
| 92 |
+
<?php endif; ?>
|
| 93 |
+
</td>
|
| 94 |
+
<td class="a-right">
|
| 95 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 96 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 97 |
+
<span class="price-excl-tax">
|
| 98 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 99 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 100 |
+
<?php endif; ?>
|
| 101 |
+
|
| 102 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 103 |
+
<?php
|
| 104 |
+
echo $this->displayPrices(
|
| 105 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 106 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 107 |
+
);
|
| 108 |
+
?>
|
| 109 |
+
<?php else: ?>
|
| 110 |
+
<?php echo $this->displayPrices($_item->getBasePrice(), $_item->getPrice()) ?>
|
| 111 |
+
<?php endif; ?>
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 115 |
+
<br />
|
| 116 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 117 |
+
<small>
|
| 118 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 119 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 120 |
+
<?php endforeach; ?>
|
| 121 |
+
</small>
|
| 122 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 123 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 124 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></small></span>
|
| 125 |
+
<?php endforeach; ?>
|
| 126 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 127 |
+
<small>
|
| 128 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 129 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount'], $tax['amount']); ?></span>
|
| 130 |
+
<?php endforeach; ?>
|
| 131 |
+
</small>
|
| 132 |
+
<?php endif; ?>
|
| 133 |
+
|
| 134 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 135 |
+
<br />
|
| 136 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 137 |
+
<?php
|
| 138 |
+
echo $this->displayPrices(
|
| 139 |
+
$_item->getBasePrice()+$_item->getBaseWeeeTaxAppliedAmount()+$_item->getBaseWeeeTaxDisposition(),
|
| 140 |
+
$_item->getPrice()+$_item->getWeeeTaxAppliedAmount()+$_item->getWeeeTaxDisposition()
|
| 141 |
+
);
|
| 142 |
+
?>
|
| 143 |
+
</span>
|
| 144 |
+
<?php endif; ?>
|
| 145 |
+
<?php endif; ?>
|
| 146 |
+
</span>
|
| 147 |
+
<br />
|
| 148 |
+
<?php endif; ?>
|
| 149 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 150 |
+
<span class="price-incl-tax">
|
| 151 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 152 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 153 |
+
<?php endif; ?>
|
| 154 |
+
<?php $_incl = $this->helper('checkout')->getPriceInclTax($_item); ?>
|
| 155 |
+
<?php $_baseIncl = $this->helper('checkout')->getBasePriceInclTax($_item); ?>
|
| 156 |
+
|
| 157 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 158 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?>
|
| 159 |
+
<?php else: ?>
|
| 160 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxDisposition(), $_incl-$_item->getWeeeTaxDisposition()) ?>
|
| 161 |
+
<?php endif; ?>
|
| 162 |
+
|
| 163 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 164 |
+
<br />
|
| 165 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 166 |
+
<small>
|
| 167 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 168 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 169 |
+
<?php endforeach; ?>
|
| 170 |
+
</small>
|
| 171 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 172 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 173 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></small></span>
|
| 174 |
+
<?php endforeach; ?>
|
| 175 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 176 |
+
<small>
|
| 177 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 178 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_amount_incl_tax'], $tax['amount_incl_tax']); ?></span>
|
| 179 |
+
<?php endforeach; ?>
|
| 180 |
+
</small>
|
| 181 |
+
<?php endif; ?>
|
| 182 |
+
|
| 183 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 184 |
+
<br />
|
| 185 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getWeeeTaxInclTax($_item)); ?></span>
|
| 186 |
+
<?php endif; ?>
|
| 187 |
+
<?php endif; ?>
|
| 188 |
+
</span>
|
| 189 |
+
<?php endif; ?>
|
| 190 |
+
<?php else: ?>
|
| 191 |
+
|
| 192 |
+
<?php endif; ?>
|
| 193 |
+
</td>
|
| 194 |
+
<td>
|
| 195 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 196 |
+
<table cellspacing="0" class="qty-table">
|
| 197 |
+
<tr>
|
| 198 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 199 |
+
<td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
|
| 200 |
+
</tr>
|
| 201 |
+
<?php if ((float) $_item->getQtyInvoiced()): ?>
|
| 202 |
+
<tr>
|
| 203 |
+
<td><?php echo Mage::helper('sales')->__('Invoiced') ?></td>
|
| 204 |
+
<td><strong><?php echo $_item->getQtyInvoiced()*1 ?></strong></td>
|
| 205 |
+
</tr>
|
| 206 |
+
<?php endif; ?>
|
| 207 |
+
<?php if ((float) $_item->getQtyShipped() && $this->isShipmentSeparately($_item)): ?>
|
| 208 |
+
<tr>
|
| 209 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 210 |
+
<td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
|
| 211 |
+
</tr>
|
| 212 |
+
<?php endif; ?>
|
| 213 |
+
<?php if ((float) $_item->getQtyRefunded()): ?>
|
| 214 |
+
<tr>
|
| 215 |
+
<td><?php echo Mage::helper('sales')->__('Refunded') ?></td>
|
| 216 |
+
<td><strong><?php echo $_item->getQtyRefunded()*1 ?></strong></td>
|
| 217 |
+
</tr>
|
| 218 |
+
<?php endif; ?>
|
| 219 |
+
<?php if ((float) $_item->getQtyCanceled()): ?>
|
| 220 |
+
<tr>
|
| 221 |
+
<td><?php echo Mage::helper('sales')->__('Canceled') ?></td>
|
| 222 |
+
<td><strong><?php echo $_item->getQtyCanceled()*1 ?></strong></td>
|
| 223 |
+
</tr>
|
| 224 |
+
<?php endif; ?>
|
| 225 |
+
</table>
|
| 226 |
+
<?php elseif ($this->isShipmentSeparately($_item)): ?>
|
| 227 |
+
<table cellspacing="0" class="qty-table">
|
| 228 |
+
<tr>
|
| 229 |
+
<td><?php echo Mage::helper('sales')->__('Ordered') ?></td>
|
| 230 |
+
<td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
|
| 231 |
+
</tr>
|
| 232 |
+
<?php if ((float) $_item->getQtyShipped()): ?>
|
| 233 |
+
<tr>
|
| 234 |
+
<td><?php echo Mage::helper('sales')->__('Shipped') ?></td>
|
| 235 |
+
<td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
|
| 236 |
+
</tr>
|
| 237 |
+
<?php endif; ?>
|
| 238 |
+
</table>
|
| 239 |
+
<?php else: ?>
|
| 240 |
+
|
| 241 |
+
<?php endif; ?>
|
| 242 |
+
</td>
|
| 243 |
+
<td class="a-right">
|
| 244 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 245 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceExclTax()): ?>
|
| 246 |
+
<span class="price-excl-tax">
|
| 247 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 248 |
+
<span class="label"><?php echo $this->__('Excl. Tax'); ?>:</span>
|
| 249 |
+
<?php endif; ?>
|
| 250 |
+
|
| 251 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 252 |
+
<?php
|
| 253 |
+
echo $this->displayPrices(
|
| 254 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 255 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 256 |
+
);
|
| 257 |
+
?>
|
| 258 |
+
<?php else: ?>
|
| 259 |
+
<?php echo $this->displayPrices($_item->getBaseRowTotal(), $_item->getRowTotal()) ?>
|
| 260 |
+
<?php endif; ?>
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 264 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 265 |
+
<small>
|
| 266 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 267 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 268 |
+
<?php endforeach; ?>
|
| 269 |
+
</small>
|
| 270 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 271 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 272 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></small></span>
|
| 273 |
+
<?php endforeach; ?>
|
| 274 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 275 |
+
<small>
|
| 276 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 277 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount'], $tax['row_amount']); ?></span>
|
| 278 |
+
<?php endforeach; ?>
|
| 279 |
+
</small>
|
| 280 |
+
<?php endif; ?>
|
| 281 |
+
|
| 282 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 283 |
+
<br />
|
| 284 |
+
<span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br />
|
| 285 |
+
<?php
|
| 286 |
+
echo $this->displayPrices(
|
| 287 |
+
$_item->getBaseRowTotal()+$_item->getBaseWeeeTaxAppliedRowAmount()+$_item->getBaseWeeeTaxRowDisposition(),
|
| 288 |
+
$_item->getRowTotal()+$_item->getWeeeTaxAppliedRowAmount()+$_item->getWeeeTaxRowDisposition()
|
| 289 |
+
);
|
| 290 |
+
?>
|
| 291 |
+
</span>
|
| 292 |
+
<?php endif; ?>
|
| 293 |
+
<?php endif; ?>
|
| 294 |
+
</span>
|
| 295 |
+
<br />
|
| 296 |
+
<?php endif; ?>
|
| 297 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices() || $this->helper('tax')->displaySalesPriceInclTax()): ?>
|
| 298 |
+
<span class="price-incl-tax">
|
| 299 |
+
<?php if ($this->helper('tax')->displaySalesBothPrices()): ?>
|
| 300 |
+
<span class="label"><?php echo $this->__('Incl. Tax'); ?>:</span>
|
| 301 |
+
<?php endif; ?>
|
| 302 |
+
<?php $_incl = $this->helper('checkout')->getSubtotalInclTax($_item); ?>
|
| 303 |
+
<?php $_baseIncl = $this->helper('checkout')->getBaseSubtotalInclTax($_item); ?>
|
| 304 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, array(0, 1, 4), 'sales')): ?>
|
| 305 |
+
<?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?>
|
| 306 |
+
<?php else: ?>
|
| 307 |
+
<?php echo $this->displayPrices($_baseIncl-$_item->getBaseWeeeTaxRowDisposition(), $_incl-$_item->getWeeeTaxRowDisposition()) ?>
|
| 308 |
+
<?php endif; ?>
|
| 309 |
+
|
| 310 |
+
|
| 311 |
+
<?php if (Mage::helper('weee')->getApplied($_item)): ?>
|
| 312 |
+
|
| 313 |
+
<br />
|
| 314 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 1, 'sales')): ?>
|
| 315 |
+
<small>
|
| 316 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 317 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 318 |
+
<?php endforeach; ?>
|
| 319 |
+
</small>
|
| 320 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 321 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 322 |
+
<span class="nobr"><small><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></small></span>
|
| 323 |
+
<?php endforeach; ?>
|
| 324 |
+
<?php elseif (Mage::helper('weee')->typeOfDisplay($_item, 4, 'sales')): ?>
|
| 325 |
+
<small>
|
| 326 |
+
<?php foreach (Mage::helper('weee')->getApplied($_item) as $tax): ?>
|
| 327 |
+
<span class="nobr"><?php echo $tax['title']; ?>: <?php echo $this->displayPrices($tax['base_row_amount_incl_tax'], $tax['row_amount_incl_tax']); ?></span>
|
| 328 |
+
<?php endforeach; ?>
|
| 329 |
+
</small>
|
| 330 |
+
<?php endif; ?>
|
| 331 |
+
|
| 332 |
+
<?php if (Mage::helper('weee')->typeOfDisplay($_item, 2, 'sales')): ?>
|
| 333 |
+
<br /><span class="nobr"><?php echo Mage::helper('weee')->__('Total'); ?>:<br /> <?php echo $this->displayPrices($_baseIncl + Mage::helper('weee')->getBaseRowWeeeTaxInclTax($_item), $_incl + Mage::helper('weee')->getRowWeeeTaxInclTax($_item)); ?></span>
|
| 334 |
+
<?php endif; ?>
|
| 335 |
+
<?php endif; ?>
|
| 336 |
+
</span>
|
| 337 |
+
<?php endif; ?>
|
| 338 |
+
<?php else: ?>
|
| 339 |
+
|
| 340 |
+
<?php endif; ?>
|
| 341 |
+
</td>
|
| 342 |
+
<td class="a-right">
|
| 343 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 344 |
+
<?php echo $this->displayPriceAttribute('tax_amount') ?>
|
| 345 |
+
<?php else: ?>
|
| 346 |
+
|
| 347 |
+
<?php endif; ?>
|
| 348 |
+
</td>
|
| 349 |
+
|
| 350 |
+
<td class="a-right">
|
| 351 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 352 |
+
<?php echo $this->displayTaxPercent($_item) ?>
|
| 353 |
+
<?php else: ?>
|
| 354 |
+
|
| 355 |
+
<?php endif; ?>
|
| 356 |
+
</td>
|
| 357 |
+
<td class="a-right">
|
| 358 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 359 |
+
<?php echo $this->displayPriceAttribute('discount_amount') ?>
|
| 360 |
+
<?php else: ?>
|
| 361 |
+
|
| 362 |
+
<?php endif; ?>
|
| 363 |
+
</td>
|
| 364 |
+
<td class="a-right last">
|
| 365 |
+
<?php if ($this->canShowPriceInfo($_item)): ?>
|
| 366 |
+
<?php echo $this->displayPrices(
|
| 367 |
+
max(0, $_item->getBaseRowTotal() - $_item->getBaseDiscountAmount() + $_item->getBaseTaxAmount() + $_item->getBaseHiddenTaxAmount() + $_item->getBaseWeeeTaxAppliedRowAmount()),
|
| 368 |
+
max(0, $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_item->getHiddenTaxAmount() + $_item->getWeeeTaxAppliedRowAmount())
|
| 369 |
+
); ?>
|
| 370 |
+
<?php else: ?>
|
| 371 |
+
|
| 372 |
+
<?php endif; ?>
|
| 373 |
+
</td>
|
| 374 |
+
</tr>
|
| 375 |
+
<?php endforeach; ?>
|
| 376 |
+
<?php if($_showlastRow): ?>
|
| 377 |
+
<tr<?php if (!$this->canDisplayGiftmessage()) echo ' class="border"' ?>>
|
| 378 |
+
<td>
|
| 379 |
+
<?php if ($this->getOrderOptions()): ?>
|
| 380 |
+
<dl class="item-options">
|
| 381 |
+
<?php foreach ($this->getOrderOptions() as $option): ?>
|
| 382 |
+
<dt><?php echo $option['label'] ?>:</dt>
|
| 383 |
+
<dd>
|
| 384 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 385 |
+
<?php echo $option['value'];?>
|
| 386 |
+
<?php else: ?>
|
| 387 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 388 |
+
<?php if ($_remainder):?>
|
| 389 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 390 |
+
<script type="text/javascript">
|
| 391 |
+
$('<?php echo $_id ?>').hide();
|
| 392 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 393 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 394 |
+
</script>
|
| 395 |
+
<?php endif;?>
|
| 396 |
+
<?php endif;?>
|
| 397 |
+
</dd>
|
| 398 |
+
<?php endforeach; ?>
|
| 399 |
+
</dl>
|
| 400 |
+
<?php else: ?>
|
| 401 |
+
|
| 402 |
+
<?php endif; ?>
|
| 403 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
| 404 |
+
</td>
|
| 405 |
+
<td> </td>
|
| 406 |
+
<td> </td>
|
| 407 |
+
<td> </td>
|
| 408 |
+
<td> </td>
|
| 409 |
+
<td> </td>
|
| 410 |
+
<td> </td>
|
| 411 |
+
<td> </td>
|
| 412 |
+
<td> </td>
|
| 413 |
+
<td class="last"> </td>
|
| 414 |
+
</tr>
|
| 415 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = $this->getChilds($_item); ?>
|
| 35 |
+
<?php $_count = count ($items) ?>
|
| 36 |
+
<?php $_index = 0 ?>
|
| 37 |
+
|
| 38 |
+
<?php $_prevOptionId = '' ?>
|
| 39 |
+
|
| 40 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 41 |
+
<?php $_showlastRow = true ?>
|
| 42 |
+
<?php else: ?>
|
| 43 |
+
<?php $_showlastRow = false ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
|
| 46 |
+
<?php foreach ($items as $_item): ?>
|
| 47 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 48 |
+
<?php if ($_item->getOrderItem()->getParentItem()): ?>
|
| 49 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 50 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 51 |
+
<tr>
|
| 52 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 53 |
+
<td> </td>
|
| 54 |
+
<td class="last"> </td>
|
| 55 |
+
</tr>
|
| 56 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 57 |
+
<?php endif; ?>
|
| 58 |
+
<?php endif; ?>
|
| 59 |
+
<tr class="<?php echo (++$_index==$_count && !$_showlastRow)?'border':'' ?>">
|
| 60 |
+
<?php if (!$_item->getOrderItem()->getParentItem()): ?>
|
| 61 |
+
<td><h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 62 |
+
<div>
|
| 63 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 64 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 65 |
+
</div>
|
| 66 |
+
</td>
|
| 67 |
+
<?php else: ?>
|
| 68 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 69 |
+
<?php endif; ?>
|
| 70 |
+
<td>
|
| 71 |
+
<?php if ($this->isShipmentSeparately($_item)): ?>
|
| 72 |
+
<?php echo $this->getColumnHtml($_item, 'qty') ?>
|
| 73 |
+
<?php else: ?>
|
| 74 |
+
|
| 75 |
+
<?php endif; ?>
|
| 76 |
+
</td>
|
| 77 |
+
<td class="last">
|
| 78 |
+
<?php if ($this->isShipmentSeparately($_item)): ?>
|
| 79 |
+
<input type="text" class="input-text" name="shipment[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
|
| 80 |
+
<?php else: ?>
|
| 81 |
+
|
| 82 |
+
<?php endif; ?>
|
| 83 |
+
</td>
|
| 84 |
+
</tr>
|
| 85 |
+
<?php endforeach; ?>
|
| 86 |
+
<?php if($_showlastRow): ?>
|
| 87 |
+
<tr class="border">
|
| 88 |
+
<td>
|
| 89 |
+
<?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
|
| 90 |
+
<dl class="item-options">
|
| 91 |
+
<?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
|
| 92 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 93 |
+
<dd>
|
| 94 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 95 |
+
<?php echo $option['value'];?>
|
| 96 |
+
<?php else: ?>
|
| 97 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 98 |
+
<?php if ($_remainder):?>
|
| 99 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 100 |
+
<script type="text/javascript">
|
| 101 |
+
$('<?php echo $_id ?>').hide();
|
| 102 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 103 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 104 |
+
</script>
|
| 105 |
+
<?php endif;?>
|
| 106 |
+
<?php endif;?>
|
| 107 |
+
</dd>
|
| 108 |
+
<?php endforeach; ?>
|
| 109 |
+
</dl>
|
| 110 |
+
<?php else: ?>
|
| 111 |
+
|
| 112 |
+
<?php endif; ?>
|
| 113 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
| 114 |
+
</td>
|
| 115 |
+
<td> </td>
|
| 116 |
+
<td class="last"> </td>
|
| 117 |
+
</tr>
|
| 118 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Bundle_Block_Adminhtml_Sales_Order_Items_Renderer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php $_item = $this->getItem() ?>
|
| 34 |
+
<?php $items = array_merge(array($_item->getOrderItem()), $_item->getOrderItem()->getChildrenItems()) ?>
|
| 35 |
+
<?php $shipItems = $this->getChilds($_item) ?>
|
| 36 |
+
<?php $_count = count ($items) ?>
|
| 37 |
+
<?php $_index = 0 ?>
|
| 38 |
+
|
| 39 |
+
<?php $_prevOptionId = '' ?>
|
| 40 |
+
|
| 41 |
+
<?php if($this->getOrderOptions() || $_item->getDescription()): ?>
|
| 42 |
+
<?php $_showlastRow = true ?>
|
| 43 |
+
<?php else: ?>
|
| 44 |
+
<?php $_showlastRow = false ?>
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
|
| 47 |
+
<?php foreach ($items as $_item): ?>
|
| 48 |
+
<?php $this->setPriceDataObject($_item) ?>
|
| 49 |
+
<?php if ($_item->getParentItem()): ?>
|
| 50 |
+
<?php $attributes = $this->getSelectionAttributes($_item) ?>
|
| 51 |
+
<?php if ($_prevOptionId != $attributes['option_id']): ?>
|
| 52 |
+
<tr>
|
| 53 |
+
<td><div class="option-label"><?php echo $attributes['option_label'] ?></div></td>
|
| 54 |
+
<td class="last"> </td>
|
| 55 |
+
</tr>
|
| 56 |
+
<?php $_prevOptionId = $attributes['option_id'] ?>
|
| 57 |
+
<?php endif; ?>
|
| 58 |
+
<?php endif; ?>
|
| 59 |
+
<tr<?php echo (++$_index==$_count && !$_showlastRow)?' class="border"':'' ?>>
|
| 60 |
+
<?php if (!$_item->getParentItem()): ?>
|
| 61 |
+
<td>
|
| 62 |
+
<h5 class="title"><?php echo $this->escapeHtml($_item->getName()) ?></h5>
|
| 63 |
+
<div>
|
| 64 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
| 65 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->escapeHtml($_item->getSku()))); ?>
|
| 66 |
+
</div>
|
| 67 |
+
</td>
|
| 68 |
+
<?php else: ?>
|
| 69 |
+
<td><div class="option-value"><?php echo $this->getValueHtml($_item)?></div></td>
|
| 70 |
+
<?php endif; ?>
|
| 71 |
+
<td class="a-center last">
|
| 72 |
+
<?php if (($this->isShipmentSeparately() && $_item->getParentItem()) || (!$this->isShipmentSeparately() && !$_item->getParentItem())): ?>
|
| 73 |
+
<?php if (isset($shipItems[$_item->getId()])): ?>
|
| 74 |
+
<?php echo $shipItems[$_item->getId()]->getQty()*1 ?>
|
| 75 |
+
<?php elseif ($_item->getIsVirtual()): ?>
|
| 76 |
+
<?php echo $this->__('N/A') ?>
|
| 77 |
+
<?php else: ?>
|
| 78 |
+
0
|
| 79 |
+
<?php endif; ?>
|
| 80 |
+
<?php else: ?>
|
| 81 |
+
|
| 82 |
+
<?php endif; ?>
|
| 83 |
+
</td>
|
| 84 |
+
</tr>
|
| 85 |
+
<?php endforeach; ?>
|
| 86 |
+
<?php if($_showlastRow): ?>
|
| 87 |
+
<tr class="border">
|
| 88 |
+
<td>
|
| 89 |
+
<?php if ($this->getOrderOptions($_item->getOrderItem())): ?>
|
| 90 |
+
<dl class="item-options">
|
| 91 |
+
<?php foreach ($this->getOrderOptions($_item->getOrderItem()) as $option): ?>
|
| 92 |
+
<dt><?php echo $option['label'] ?></dt>
|
| 93 |
+
<dd>
|
| 94 |
+
<?php if (isset($option['custom_view']) && $option['custom_view']): ?>
|
| 95 |
+
<?php echo $option['value'];?>
|
| 96 |
+
<?php else: ?>
|
| 97 |
+
<?php echo Mage::helper('core/string')->truncate($option['value'], 55, '', $_remainder);?>
|
| 98 |
+
<?php if ($_remainder):?>
|
| 99 |
+
... <span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_remainder ?></span>
|
| 100 |
+
<script type="text/javascript">
|
| 101 |
+
$('<?php echo $_id ?>').hide();
|
| 102 |
+
$('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
|
| 103 |
+
$('<?php echo $_id ?>').up().observe('mouseout', function(){$('<?php echo $_id ?>').hide();});
|
| 104 |
+
</script>
|
| 105 |
+
<?php endif;?>
|
| 106 |
+
<?php endif;?>
|
| 107 |
+
</dd>
|
| 108 |
+
<?php endforeach; ?>
|
| 109 |
+
</dl>
|
| 110 |
+
<?php endif; ?>
|
| 111 |
+
<?php echo $this->escapeHtml($_item->getDescription()) ?>
|
| 112 |
+
</td>
|
| 113 |
+
<td class="last"> </td>
|
| 114 |
+
</tr>
|
| 115 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/captcha/zend.phtml
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php $captcha = $this->getCaptchaModel() ?>
|
| 28 |
+
<?php /* @var $this Mage_Core_Block_Captcha_Zend */ ?>
|
| 29 |
+
<div class="clear"></div>
|
| 30 |
+
<div class="captcha">
|
| 31 |
+
<div class="captcha-input input-box input-left">
|
| 32 |
+
<label for="captcha"><?php echo $this->__('Please type the letters from the image:') ?></label><br />
|
| 33 |
+
<input type="text" name="<?php echo Mage_Captcha_Helper_Data::INPUT_NAME_FIELD_VALUE ?>[<?php echo $this->getFormId()?>]" id="captcha" class="required-entry input-text validation-failed"/>
|
| 34 |
+
</div>
|
| 35 |
+
<div class="captcha-image input-right">
|
| 36 |
+
<img id="captcha-reload" class="captcha-reload" src="<?php echo $this->getSkinUrl('images/reload.png') ?>" alt="<?php echo $this->__('Reload captcha') ?>"/>
|
| 37 |
+
<img id="<?php echo $this->getFormId() ?>" width="<?php echo $this->getImgWidth() ?>" height="<?php echo $this->getImgHeight() ?>" src="<?php echo $captcha->getImgSrc() ?>" />
|
| 38 |
+
</div>
|
| 39 |
+
</div>
|
| 40 |
+
<?php if ($captcha->isCaseSensitive()) :?>
|
| 41 |
+
<div class="captcha-note">
|
| 42 |
+
<p><?php echo $this->__('<strong>Attention</strong>: Captcha is case sensitive.') ?></p>
|
| 43 |
+
</div>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
<script type="text/javascript">
|
| 46 |
+
//<![CDATA[
|
| 47 |
+
document.observe('dom:loaded', function () {
|
| 48 |
+
var captcha = new Captcha('<?php echo $this->getRefreshUrl() ?>', '<?php echo $this->getFormId() ?>');
|
| 49 |
+
|
| 50 |
+
$('captcha-reload').observe('click', function () {
|
| 51 |
+
captcha.refresh(this);
|
| 52 |
+
});
|
| 53 |
+
|
| 54 |
+
});
|
| 55 |
+
//]]>
|
| 56 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/category/checkboxes/tree.phtml
ADDED
|
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 $_divId = 'tree-div_' . time() ?>
|
| 29 |
+
<div id="<?php echo $_divId ?>" class="tree"></div>
|
| 30 |
+
|
| 31 |
+
<script type="text/javascript">
|
| 32 |
+
//<![CDATA[
|
| 33 |
+
|
| 34 |
+
// TODO: cleanup this script. It was copypasted from catalog/category/tree
|
| 35 |
+
|
| 36 |
+
var tree;
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
* Fix ext compatibility with prototype 1.6
|
| 40 |
+
*/
|
| 41 |
+
Ext.lib.Event.getTarget = function(e) {
|
| 42 |
+
var ee = e.browserEvent || e;
|
| 43 |
+
return ee.target ? Event.element(ee) : null;
|
| 44 |
+
};
|
| 45 |
+
|
| 46 |
+
Ext.tree.TreePanel.Enhanced = function(el, config)
|
| 47 |
+
{
|
| 48 |
+
Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
|
| 49 |
+
};
|
| 50 |
+
|
| 51 |
+
Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
|
| 52 |
+
|
| 53 |
+
loadTree : function(config, firstLoad)
|
| 54 |
+
{
|
| 55 |
+
var parameters = config['parameters'];
|
| 56 |
+
var data = config['data'];
|
| 57 |
+
|
| 58 |
+
if ((typeof parameters['root_visible']) != 'undefined') {
|
| 59 |
+
this.rootVisible = parameters['root_visible']*1;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
var root = new Ext.tree.TreeNode(parameters);
|
| 63 |
+
|
| 64 |
+
this.nodeHash = {};
|
| 65 |
+
this.setRootNode(root);
|
| 66 |
+
|
| 67 |
+
if (firstLoad) {
|
| 68 |
+
this.addListener('click', this.categoryClick.createDelegate(this));
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
this.loader.buildCategoryTree(root, data);
|
| 72 |
+
this.el.dom.innerHTML = '';
|
| 73 |
+
// render the tree
|
| 74 |
+
this.render();
|
| 75 |
+
},
|
| 76 |
+
|
| 77 |
+
categoryClick : function(node, e)
|
| 78 |
+
{
|
| 79 |
+
node.getUI().check(!node.getUI().checked());
|
| 80 |
+
}
|
| 81 |
+
});
|
| 82 |
+
|
| 83 |
+
Ext.onReady(function()
|
| 84 |
+
{
|
| 85 |
+
var categoryLoader = new Ext.tree.TreeLoader({
|
| 86 |
+
dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
|
| 87 |
+
});
|
| 88 |
+
|
| 89 |
+
categoryLoader.createNode = function(config) {
|
| 90 |
+
config.uiProvider = Ext.tree.CheckboxNodeUI;
|
| 91 |
+
var node;
|
| 92 |
+
var _node = Object.clone(config);
|
| 93 |
+
if (config.children && !config.children.length) {
|
| 94 |
+
delete(config.children);
|
| 95 |
+
node = new Ext.tree.AsyncTreeNode(config);
|
| 96 |
+
} else {
|
| 97 |
+
node = new Ext.tree.TreeNode(config);
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
return node;
|
| 101 |
+
};
|
| 102 |
+
|
| 103 |
+
categoryLoader.buildCategoryTree = function(parent, config)
|
| 104 |
+
{
|
| 105 |
+
if (!config) return null;
|
| 106 |
+
|
| 107 |
+
if (parent && config && config.length){
|
| 108 |
+
for (var i = 0; i < config.length; i++) {
|
| 109 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 110 |
+
var node;
|
| 111 |
+
var _node = Object.clone(config[i]);
|
| 112 |
+
if (_node.children && !_node.children.length) {
|
| 113 |
+
delete(_node.children);
|
| 114 |
+
node = new Ext.tree.AsyncTreeNode(_node);
|
| 115 |
+
} else {
|
| 116 |
+
node = new Ext.tree.TreeNode(config[i]);
|
| 117 |
+
}
|
| 118 |
+
parent.appendChild(node);
|
| 119 |
+
node.loader = node.getOwnerTree().loader;
|
| 120 |
+
if (_node.children) {
|
| 121 |
+
this.buildCategoryTree(node, _node.children);
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
}
|
| 125 |
+
};
|
| 126 |
+
|
| 127 |
+
categoryLoader.buildHash = function(node)
|
| 128 |
+
{
|
| 129 |
+
var hash = {};
|
| 130 |
+
|
| 131 |
+
hash = this.toArray(node.attributes);
|
| 132 |
+
|
| 133 |
+
if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
|
| 134 |
+
hash['children'] = new Array;
|
| 135 |
+
|
| 136 |
+
for (var i = 0, len = node.childNodes.length; i < len; i++) {
|
| 137 |
+
if (!hash['children']) {
|
| 138 |
+
hash['children'] = new Array;
|
| 139 |
+
}
|
| 140 |
+
hash['children'].push(this.buildHash(node.childNodes[i]));
|
| 141 |
+
}
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
return hash;
|
| 145 |
+
};
|
| 146 |
+
|
| 147 |
+
categoryLoader.toArray = function(attributes) {
|
| 148 |
+
var data = {};
|
| 149 |
+
for (var key in attributes) {
|
| 150 |
+
var value = attributes[key];
|
| 151 |
+
data[key] = value;
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
return data;
|
| 155 |
+
};
|
| 156 |
+
|
| 157 |
+
categoryLoader.on("beforeload", function(treeLoader, node) {
|
| 158 |
+
treeLoader.baseParams.id = node.attributes.id;
|
| 159 |
+
});
|
| 160 |
+
|
| 161 |
+
categoryLoader.on("load", function(treeLoader, node, config) {
|
| 162 |
+
varienWindowOnload();
|
| 163 |
+
});
|
| 164 |
+
|
| 165 |
+
tree = new Ext.tree.TreePanel.Enhanced('<?php echo $_divId ?>', {
|
| 166 |
+
animate: false,
|
| 167 |
+
loader: categoryLoader,
|
| 168 |
+
enableDD: false,
|
| 169 |
+
containerScroll: true,
|
| 170 |
+
selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 171 |
+
rootVisible: '<?php echo $this->getRoot()->getIsVisible() ?>',
|
| 172 |
+
useAjax: <?php echo $this->getUseAjax() ?>,
|
| 173 |
+
currentNodeId: <?php echo (int) $this->getCategoryId() ?>,
|
| 174 |
+
addNodeTo: false,
|
| 175 |
+
rootUIProvider: Ext.tree.CheckboxNodeUI
|
| 176 |
+
});
|
| 177 |
+
|
| 178 |
+
tree.on('check', function(node, checked) {
|
| 179 |
+
<?php echo $this->getJsFormObject() ?>.updateElement.value = this.getChecked().join(', ');
|
| 180 |
+
varienElementMethods.setHasChanges(node.getUI().checkbox);
|
| 181 |
+
}, tree);
|
| 182 |
+
|
| 183 |
+
// set the root node
|
| 184 |
+
var parameters = {
|
| 185 |
+
text: '<?php echo htmlentities($this->getRoot()->getName()) ?>',
|
| 186 |
+
draggable: false,
|
| 187 |
+
checked:'<?php echo $this->getRoot()->getChecked() ?>',
|
| 188 |
+
uiProvider: Ext.tree.CheckboxNodeUI,
|
| 189 |
+
allowDrop: <?php if ($this->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>,
|
| 190 |
+
id: <?php echo (int) $this->getRoot()->getId() ?>,
|
| 191 |
+
expanded: <?php echo (int) $this->getIsWasExpanded() ?>,
|
| 192 |
+
category_id: <?php echo (int) $this->getCategoryId() ?>
|
| 193 |
+
};
|
| 194 |
+
|
| 195 |
+
tree.loadTree({parameters:parameters, data:<?php echo $this->getTreeJson() ?>},true);
|
| 196 |
+
|
| 197 |
+
});
|
| 198 |
+
//]]>
|
| 199 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/category/edit.phtml
ADDED
|
@@ -0,0 +1,198 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Template for Mage_Adminhtml_Block_Catalog_Category_Cointainer
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<div id="category-edit-container" class="category-content">
|
| 34 |
+
<?php echo $this->getChildHtml('form') ?>
|
| 35 |
+
</div>
|
| 36 |
+
<script type="text/javascript">
|
| 37 |
+
//<![CDATA[
|
| 38 |
+
|
| 39 |
+
function categoryReset(url,useAjax){
|
| 40 |
+
if(useAjax){
|
| 41 |
+
var params = {active_tab_id:false};
|
| 42 |
+
updateContent(url, params);
|
| 43 |
+
}else{
|
| 44 |
+
location.href = url;
|
| 45 |
+
}
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
/**
|
| 49 |
+
* Delete some category
|
| 50 |
+
* This routine get categoryId explicitly, so even if currently selected tree node is out of sync
|
| 51 |
+
* with this form, we surely delete same category in the tree and at backend
|
| 52 |
+
*/
|
| 53 |
+
function categoryDelete(url, useAjax, categoryId) {
|
| 54 |
+
if (confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Are you sure you want to delete this category?')) ?>')){
|
| 55 |
+
if (useAjax){
|
| 56 |
+
tree.nodeForDelete = categoryId;
|
| 57 |
+
updateContent(url, {}, true);
|
| 58 |
+
} else {
|
| 59 |
+
location.href = url;
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
/**
|
| 65 |
+
* Update category content area
|
| 66 |
+
*/
|
| 67 |
+
function updateContent(url, params, refreshTree) {
|
| 68 |
+
if (!params) {
|
| 69 |
+
params = {};
|
| 70 |
+
}
|
| 71 |
+
if (!params.form_key) {
|
| 72 |
+
params.form_key = FORM_KEY;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
toolbarToggle.stop();
|
| 76 |
+
|
| 77 |
+
/*if(params.node_name)
|
| 78 |
+
{
|
| 79 |
+
var currentNode = tree.getNodeById(tree.currentNodeId);
|
| 80 |
+
currentNode.setText(params.node_name);
|
| 81 |
+
}*/
|
| 82 |
+
|
| 83 |
+
var categoryContainer = $('category-edit-container');
|
| 84 |
+
var messagesContainer = $('messages');
|
| 85 |
+
var thisObj = this;
|
| 86 |
+
new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
|
| 87 |
+
parameters: params,
|
| 88 |
+
evalScripts: true,
|
| 89 |
+
onComplete: function () {
|
| 90 |
+
/**
|
| 91 |
+
* This func depends on variables, that came in response, and were eval'ed in onSuccess() callback.
|
| 92 |
+
* Since prototype's Element.update() evals javascripts in 10 msec, we should exec our func after it.
|
| 93 |
+
*/
|
| 94 |
+
setTimeout(function() {
|
| 95 |
+
try {
|
| 96 |
+
if (refreshTree) {
|
| 97 |
+
thisObj.refreshTreeArea();
|
| 98 |
+
}
|
| 99 |
+
toolbarToggle.start();
|
| 100 |
+
} catch (e) {
|
| 101 |
+
alert(e.message);
|
| 102 |
+
};
|
| 103 |
+
}, 25);
|
| 104 |
+
},
|
| 105 |
+
onSuccess: function(transport) {
|
| 106 |
+
try {
|
| 107 |
+
if (transport.responseText.isJSON()) {
|
| 108 |
+
var response = transport.responseText.evalJSON();
|
| 109 |
+
var needUpdate = true;
|
| 110 |
+
if (response.error) {
|
| 111 |
+
alert(response.message);
|
| 112 |
+
needUpdate = false;
|
| 113 |
+
}
|
| 114 |
+
if(response.ajaxExpired && response.ajaxRedirect) {
|
| 115 |
+
setLocation(response.ajaxRedirect);
|
| 116 |
+
needUpdate = false;
|
| 117 |
+
}
|
| 118 |
+
if (needUpdate){
|
| 119 |
+
if (response.content){
|
| 120 |
+
$(categoryContainer).update(response.content);
|
| 121 |
+
}
|
| 122 |
+
if (response.messages){
|
| 123 |
+
$(messagesContainer).update(response.messages);
|
| 124 |
+
}
|
| 125 |
+
}
|
| 126 |
+
} else {
|
| 127 |
+
$(categoryContainer).update(transport.responseText);
|
| 128 |
+
}
|
| 129 |
+
}
|
| 130 |
+
catch (e) {
|
| 131 |
+
$(categoryContainer).update(transport.responseText);
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
});
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
/**
|
| 138 |
+
* Refresh tree nodes after saving or deleting a category
|
| 139 |
+
*/
|
| 140 |
+
function refreshTreeArea(transport)
|
| 141 |
+
{
|
| 142 |
+
if (tree && window.editingCategoryBreadcrumbs) {
|
| 143 |
+
// category deleted - delete its node
|
| 144 |
+
if (tree.nodeForDelete) {
|
| 145 |
+
var node = tree.getNodeById(tree.nodeForDelete);
|
| 146 |
+
tree.nodeForDelete = false;
|
| 147 |
+
|
| 148 |
+
if (node) { // Check maybe tree became somehow not synced with ajax and we're trying to delete unknown node
|
| 149 |
+
node.parentNode.removeChild(node);
|
| 150 |
+
tree.currentNodeId = false;
|
| 151 |
+
}
|
| 152 |
+
}
|
| 153 |
+
// category created - add its node
|
| 154 |
+
else if (tree.addNodeTo) {
|
| 155 |
+
var parent = tree.getNodeById(tree.addNodeTo);
|
| 156 |
+
tree.addNodeTo = false;
|
| 157 |
+
|
| 158 |
+
if (parent) { // Check maybe tree became somehow not synced with ajax and we're trying to add to unknown node
|
| 159 |
+
var node = new Ext.tree.AsyncTreeNode(editingCategoryBreadcrumbs[editingCategoryBreadcrumbs.length - 1]);
|
| 160 |
+
node.loaded = true;
|
| 161 |
+
tree.currentNodeId = node.id;
|
| 162 |
+
parent.appendChild(node);
|
| 163 |
+
|
| 164 |
+
if (parent.expanded) {
|
| 165 |
+
tree.selectCurrentNode();
|
| 166 |
+
} else {
|
| 167 |
+
var timer;
|
| 168 |
+
parent.expand();
|
| 169 |
+
var f = function(){
|
| 170 |
+
if(parent.expanded){ // done expanding
|
| 171 |
+
clearInterval(timer);
|
| 172 |
+
tree.selectCurrentNode();
|
| 173 |
+
}
|
| 174 |
+
};
|
| 175 |
+
timer = setInterval(f, 200);
|
| 176 |
+
}
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
// update all affected categories nodes names
|
| 181 |
+
for (var i = 0; i < editingCategoryBreadcrumbs.length; i++) {
|
| 182 |
+
var node = tree.getNodeById(editingCategoryBreadcrumbs[i].id);
|
| 183 |
+
if (node) {
|
| 184 |
+
node.setText(editingCategoryBreadcrumbs[i].text);
|
| 185 |
+
}
|
| 186 |
+
}
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
function displayLoadingMask()
|
| 191 |
+
{
|
| 192 |
+
var loaderArea = $$('#html-body .wrapper')[0]; // Blocks all page
|
| 193 |
+
Position.clone($(loaderArea), $('loading-mask'), {offsetLeft:-2});
|
| 194 |
+
toggleSelectsUnderBlock($('loading-mask'), false);
|
| 195 |
+
Element.show('loading-mask');
|
| 196 |
+
}
|
| 197 |
+
//]]>
|
| 198 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/category/edit/form.phtml
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 29 |
+
<h3 class="icon-head head-categories"><?php echo $this->escapeHtml($this->getHeader()) . ($this->getCategoryId() ? ' (' . Mage::helper('catalog')->__('ID: %s', $this->getCategoryId()) . ')' : '') ?></h3>
|
| 30 |
+
<p class="content-buttons form-buttons">
|
| 31 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 32 |
+
<?php if($this->getCategoryId()): ?>
|
| 33 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 34 |
+
<?php endif; ?>
|
| 35 |
+
<?php echo $this->getAdditionalButtonsHtml(); ?>
|
| 36 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 37 |
+
</p>
|
| 38 |
+
</div>
|
| 39 |
+
<?php if($this->hasStoreRootCategory()): ?>
|
| 40 |
+
<?php echo $this->getTabsHtml() ?>
|
| 41 |
+
<?php else: ?>
|
| 42 |
+
<div class="messages warning-msg">
|
| 43 |
+
<?php echo Mage::helper('catalog')->__('Set root category for this store in the <a href="%s">configuration</a>', $this->getStoreConfigurationUrl()) ?>
|
| 44 |
+
</div>
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
<iframe name="iframeSave" style="display:none; width:100%;" src="<?php echo $this->getJsUrl() ?>blank.html"></iframe>
|
| 47 |
+
<form target="iframeSave" id="category_edit_form" action="<?php echo $this->getSaveUrl() ?>" method="post" enctype="multipart/form-data">
|
| 48 |
+
<div class="no-display">
|
| 49 |
+
<input type="hidden" name="isIframe" value="1" />
|
| 50 |
+
<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />
|
| 51 |
+
<input type="hidden" name="category_products" id="in_category_products" value="" />
|
| 52 |
+
<input type="hidden" name="active_tab_id" id="active_tab_id" value="" />
|
| 53 |
+
</div>
|
| 54 |
+
<div id="category_tab_content"></div>
|
| 55 |
+
</form>
|
| 56 |
+
<script type="text/javascript">
|
| 57 |
+
//<![CDATA[
|
| 58 |
+
categoryForm = new varienForm('category_edit_form');
|
| 59 |
+
|
| 60 |
+
categoryForm.submit= function (url) {
|
| 61 |
+
this.errorSections = $H({});
|
| 62 |
+
this.canShowError = true;
|
| 63 |
+
this.submitUrl = url;
|
| 64 |
+
if (this.validator && this.validator.validate()) {
|
| 65 |
+
if(this.validationUrl){
|
| 66 |
+
this._validate();
|
| 67 |
+
}
|
| 68 |
+
else{
|
| 69 |
+
if (this.isSubmitted) {
|
| 70 |
+
return false;
|
| 71 |
+
}
|
| 72 |
+
this.isSubmitted = true;
|
| 73 |
+
this._submit();
|
| 74 |
+
}
|
| 75 |
+
displayLoadingMask();
|
| 76 |
+
return true;
|
| 77 |
+
}
|
| 78 |
+
return false;
|
| 79 |
+
};
|
| 80 |
+
|
| 81 |
+
categoryForm.refreshPath = function () {
|
| 82 |
+
|
| 83 |
+
categoryId = this.getCategoryId();
|
| 84 |
+
|
| 85 |
+
if (!categoryId) {
|
| 86 |
+
return false;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
var refreshPathSuccess = function(transport) {
|
| 90 |
+
if (transport.responseText.isJSON()) {
|
| 91 |
+
response = transport.responseText.evalJSON()
|
| 92 |
+
if (response.error) {
|
| 93 |
+
alert(response.message);
|
| 94 |
+
} else {
|
| 95 |
+
if (categoryForm.getCategoryId() == response['id']) {
|
| 96 |
+
categoryForm.setCategoryPath(response['path']);
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
};
|
| 101 |
+
|
| 102 |
+
new Ajax.Request(
|
| 103 |
+
'<?php echo $this->getRefreshPathUrl() ?>',
|
| 104 |
+
{
|
| 105 |
+
method: 'POST',
|
| 106 |
+
evalScripts: true,
|
| 107 |
+
onSuccess: refreshPathSuccess
|
| 108 |
+
}
|
| 109 |
+
);
|
| 110 |
+
|
| 111 |
+
};
|
| 112 |
+
|
| 113 |
+
categoryForm.getCategoryId = function () {
|
| 114 |
+
collection = $(this.formId).getInputs('hidden','general[id]');
|
| 115 |
+
if (collection.size() > 0) {
|
| 116 |
+
return collection.first().value;
|
| 117 |
+
}
|
| 118 |
+
return false;
|
| 119 |
+
};
|
| 120 |
+
|
| 121 |
+
categoryForm.setCategoryPath = function (path) {
|
| 122 |
+
collection = $(this.formId).getInputs('hidden','general[path]');
|
| 123 |
+
if (collection.size() > 0) {
|
| 124 |
+
return collection.first().value = path;
|
| 125 |
+
}
|
| 126 |
+
};
|
| 127 |
+
|
| 128 |
+
/**
|
| 129 |
+
* Create/edit some category
|
| 130 |
+
*/
|
| 131 |
+
function categorySubmit(url, useAjax) {
|
| 132 |
+
var activeTab = $('active_tab_id');
|
| 133 |
+
if (activeTab) {
|
| 134 |
+
if (activeTab.tabsJsObject && activeTab.tabsJsObject.activeTab) {
|
| 135 |
+
activeTab.value = activeTab.tabsJsObject.activeTab.id;
|
| 136 |
+
}
|
| 137 |
+
}
|
| 138 |
+
|
| 139 |
+
var params = {};
|
| 140 |
+
var fields = $('category_edit_form').getElementsBySelector('input', 'select');
|
| 141 |
+
for(var i=0;i<fields.length;i++){
|
| 142 |
+
if (!fields[i].name) {
|
| 143 |
+
continue;
|
| 144 |
+
}
|
| 145 |
+
params[fields[i].name] = fields[i].getValue();
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
// Get info about what we're submitting - to properly update tree nodes
|
| 149 |
+
var categoryId = params['general[id]'] ? params['general[id]'] : 0;
|
| 150 |
+
var isCreating = categoryId == 0; // Separate variable is needed because '0' in javascript converts to TRUE
|
| 151 |
+
var path = params['general[path]'].split('/');
|
| 152 |
+
var parentId = path.pop();
|
| 153 |
+
if (parentId == categoryId) { // Maybe path includes category id itself
|
| 154 |
+
parentId = path.pop();
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
// Make operations with category tree
|
| 158 |
+
if (isCreating) {
|
| 159 |
+
/* Some specific tasks for creating category */
|
| 160 |
+
if (!tree.currentNodeId) {
|
| 161 |
+
// First submit of form - select some node to be current
|
| 162 |
+
tree.currentNodeId = parentId;
|
| 163 |
+
}
|
| 164 |
+
tree.addNodeTo = parentId;
|
| 165 |
+
} else {
|
| 166 |
+
/* Some specific tasks for editing category */
|
| 167 |
+
// Maybe change category enabled/disabled style
|
| 168 |
+
if (tree && tree.storeId==0) {
|
| 169 |
+
var currentNode = tree.getNodeById(categoryId);
|
| 170 |
+
|
| 171 |
+
if (currentNode) {
|
| 172 |
+
if (parseInt(params['general[is_active]'])) {
|
| 173 |
+
var oldClass = 'no-active-category';
|
| 174 |
+
var newClass = 'active-category';
|
| 175 |
+
} else {
|
| 176 |
+
var oldClass = 'active-category';
|
| 177 |
+
var newClass = 'no-active-category';
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
Element.removeClassName(currentNode.ui.wrap.firstChild, oldClass);
|
| 181 |
+
Element.addClassName(currentNode.ui.wrap.firstChild, newClass);
|
| 182 |
+
}
|
| 183 |
+
}
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
// Submit form
|
| 187 |
+
categoryForm.submit();
|
| 188 |
+
}
|
| 189 |
+
|
| 190 |
+
<?php if(($block = $this->getLayout()->getBlock('category.product.grid')) && ($_gridJsObject=$block->getJsObjectName())): ?>
|
| 191 |
+
|
| 192 |
+
var categoryProducts = $H(<?php echo $this->getProductsJson() ?>);
|
| 193 |
+
$('in_category_products').value = categoryProducts.toQueryString();
|
| 194 |
+
|
| 195 |
+
function registerCategoryProduct(grid, element, checked){
|
| 196 |
+
if(checked){
|
| 197 |
+
if(element.positionElement){
|
| 198 |
+
element.positionElement.disabled = false;
|
| 199 |
+
categoryProducts.set(element.value, element.positionElement.value);
|
| 200 |
+
}
|
| 201 |
+
}
|
| 202 |
+
else{
|
| 203 |
+
if(element.positionElement){
|
| 204 |
+
element.positionElement.disabled = true;
|
| 205 |
+
}
|
| 206 |
+
categoryProducts.unset(element.value);
|
| 207 |
+
}
|
| 208 |
+
$('in_category_products').value = categoryProducts.toQueryString();
|
| 209 |
+
grid.reloadParams = {'selected_products[]':categoryProducts.keys()};
|
| 210 |
+
}
|
| 211 |
+
function categoryProductRowClick(grid, event){
|
| 212 |
+
var trElement = Event.findElement(event, 'tr');
|
| 213 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 214 |
+
if(trElement){
|
| 215 |
+
var checkbox = Element.getElementsBySelector(trElement, 'input');
|
| 216 |
+
if(checkbox[0]){
|
| 217 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 218 |
+
<?php echo $_gridJsObject ?>.setCheckboxChecked(checkbox[0], checked);
|
| 219 |
+
}
|
| 220 |
+
}
|
| 221 |
+
}
|
| 222 |
+
function positionChange(event){
|
| 223 |
+
var element = Event.element(event);
|
| 224 |
+
if(element && element.checkboxElement && element.checkboxElement.checked){
|
| 225 |
+
categoryProducts.set(element.checkboxElement.value, element.value);
|
| 226 |
+
$('in_category_products').value = categoryProducts.toQueryString();
|
| 227 |
+
}
|
| 228 |
+
}
|
| 229 |
+
|
| 230 |
+
var tabIndex = 1000;
|
| 231 |
+
function categoryProductRowInit(grid, row){
|
| 232 |
+
var checkbox = $(row).getElementsByClassName('checkbox')[0];
|
| 233 |
+
var position = $(row).getElementsByClassName('input-text')[0];
|
| 234 |
+
if(checkbox && position){
|
| 235 |
+
checkbox.positionElement = position;
|
| 236 |
+
position.checkboxElement = checkbox;
|
| 237 |
+
position.disabled = !checkbox.checked;
|
| 238 |
+
position.tabIndex = tabIndex++;
|
| 239 |
+
Event.observe(position,'keyup',positionChange);
|
| 240 |
+
}
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
|
| 244 |
+
<?php echo $_gridJsObject ?>.rowClickCallback = categoryProductRowClick;
|
| 245 |
+
<?php echo $_gridJsObject ?>.initRowCallback = categoryProductRowInit;
|
| 246 |
+
<?php echo $_gridJsObject ?>.checkboxCheckCallback = registerCategoryProduct;
|
| 247 |
+
<?php echo $_gridJsObject ?>.rows.each(function(row){categoryProductRowInit(<?php echo $_gridJsObject ?>, row)});
|
| 248 |
+
|
| 249 |
+
<?php endif; ?>
|
| 250 |
+
<?php if($this->isAjax() && ($block = $this->getLayout()->getBlock('tabs')) && ($_tabsJsObject=$block->getJsObjectName())): ?>
|
| 251 |
+
<?php echo $_tabsJsObject ?>.moveTabContentInDest();
|
| 252 |
+
if (<?php echo $_tabsJsObject ?>.activeTab) {
|
| 253 |
+
$('active_tab_id').value = <?php echo $_tabsJsObject ?>.activeTab.id;
|
| 254 |
+
}
|
| 255 |
+
$('active_tab_id').tabsJsObject = <?php echo $_tabsJsObject ?>;
|
| 256 |
+
<?php endif; ?>
|
| 257 |
+
//]]>
|
| 258 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/category/tree.phtml
ADDED
|
@@ -0,0 +1,480 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="categories-side-col">
|
| 28 |
+
<div class="content-header">
|
| 29 |
+
<h3 class="icon-head head-categories"><?php echo Mage::helper('catalog')->__('Categories') ?></h3>
|
| 30 |
+
<?php if ($this->getRoot()): ?>
|
| 31 |
+
<?php echo $this->getAddRootButtonHtml() ?><br />
|
| 32 |
+
<?php echo $this->getAddSubButtonHtml() ?>
|
| 33 |
+
<?php endif; ?>
|
| 34 |
+
</div>
|
| 35 |
+
<?php echo $this->getStoreSwitcherHtml();?>
|
| 36 |
+
<div class="tree-actions">
|
| 37 |
+
<?php if($this->getRoot()): ?>
|
| 38 |
+
<?php //echo $this->getCollapseButtonHtml() ?>
|
| 39 |
+
<?php //echo $this->getExpandButtonHtml() ?>
|
| 40 |
+
<a href="#" onclick="tree.collapseTree(); return false;"><?php echo Mage::helper('catalog')->__('Collapse All'); ?></a> <span class="separator">|</span> <a href="#" onclick="tree.expandTree(); return false;"><?php echo Mage::helper('catalog')->__('Expand All'); ?></a>
|
| 41 |
+
<?php endif; ?>
|
| 42 |
+
</div>
|
| 43 |
+
<?php if ($this->getRoot()): ?>
|
| 44 |
+
<div class="tree-holder">
|
| 45 |
+
<div id="tree-div" style="width:100%; overflow:auto;"></div>
|
| 46 |
+
</div>
|
| 47 |
+
</div>
|
| 48 |
+
<script type="text/javascript">
|
| 49 |
+
//<![CDATA[
|
| 50 |
+
var tree;
|
| 51 |
+
|
| 52 |
+
/**
|
| 53 |
+
* Fix ext compatibility with prototype 1.6
|
| 54 |
+
*/
|
| 55 |
+
Ext.lib.Event.getTarget = function(e) {
|
| 56 |
+
var ee = e.browserEvent || e;
|
| 57 |
+
return ee.target ? Event.element(ee) : null;
|
| 58 |
+
};
|
| 59 |
+
|
| 60 |
+
Ext.tree.TreePanel.Enhanced = function(el, config)
|
| 61 |
+
{
|
| 62 |
+
Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
|
| 63 |
+
};
|
| 64 |
+
|
| 65 |
+
Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
|
| 66 |
+
|
| 67 |
+
loadTree : function(config, firstLoad)
|
| 68 |
+
{
|
| 69 |
+
var parameters = config['parameters'];
|
| 70 |
+
var data = config['data'];
|
| 71 |
+
|
| 72 |
+
this.storeId = parameters['store_id'];
|
| 73 |
+
|
| 74 |
+
if ( this.storeId != 0 && $('add_root_category_button')) {
|
| 75 |
+
$('add_root_category_button').hide();
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
if ((typeof parameters['root_visible']) != 'undefined') {
|
| 79 |
+
this.rootVisible = parameters['root_visible']*1;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
var root = new Ext.tree.TreeNode(parameters);
|
| 83 |
+
|
| 84 |
+
this.nodeHash = {};
|
| 85 |
+
this.setRootNode(root);
|
| 86 |
+
|
| 87 |
+
if (firstLoad) {
|
| 88 |
+
this.addListener('click', this.categoryClick);
|
| 89 |
+
this.addListener('beforenodedrop', categoryMove.createDelegate(this));
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
this.loader.buildCategoryTree(root, data);
|
| 93 |
+
this.el.dom.innerHTML = '';
|
| 94 |
+
// render the tree
|
| 95 |
+
this.render();
|
| 96 |
+
if (parameters['expanded']) {
|
| 97 |
+
this.expandAll();
|
| 98 |
+
} else {
|
| 99 |
+
root.expand();
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
var selectedNode = this.getNodeById(parameters['category_id']);
|
| 103 |
+
if (selectedNode) {
|
| 104 |
+
this.currentNodeId = parameters['category_id'];
|
| 105 |
+
}
|
| 106 |
+
this.selectCurrentNode();
|
| 107 |
+
},
|
| 108 |
+
|
| 109 |
+
request : function(url, params)
|
| 110 |
+
{
|
| 111 |
+
if (!params) {
|
| 112 |
+
if (category_info_tabsJsTabs.activeTab) {
|
| 113 |
+
var params = {active_tab_id:category_info_tabsJsTabs.activeTab.id};
|
| 114 |
+
}
|
| 115 |
+
else {
|
| 116 |
+
var params = {};
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
if (!params.form_key) {
|
| 120 |
+
params.form_key = FORM_KEY;
|
| 121 |
+
}
|
| 122 |
+
var result = new Ajax.Request(
|
| 123 |
+
url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ),
|
| 124 |
+
{
|
| 125 |
+
parameters: params,
|
| 126 |
+
method: 'post'
|
| 127 |
+
}
|
| 128 |
+
);
|
| 129 |
+
|
| 130 |
+
return result;
|
| 131 |
+
},
|
| 132 |
+
|
| 133 |
+
selectCurrentNode : function()
|
| 134 |
+
{
|
| 135 |
+
if (this.currentNodeId) {
|
| 136 |
+
var selectedNode = this.getNodeById(this.currentNodeId);
|
| 137 |
+
if ((typeof selectedNode.attributes.path)!='undefined') {
|
| 138 |
+
var path = selectedNode.attributes.path;
|
| 139 |
+
if (!this.storeId) {
|
| 140 |
+
path = '0/'+path;
|
| 141 |
+
}
|
| 142 |
+
this.selectPath(path);
|
| 143 |
+
} else {
|
| 144 |
+
this.getSelectionModel().select(selectedNode);
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
},
|
| 148 |
+
|
| 149 |
+
collapseTree : function()
|
| 150 |
+
{
|
| 151 |
+
this.collapseAll();
|
| 152 |
+
|
| 153 |
+
this.selectCurrentNode();
|
| 154 |
+
|
| 155 |
+
if (!this.collapsed) {
|
| 156 |
+
this.collapsed = true;
|
| 157 |
+
this.loader.dataUrl = '<?php echo $this->getLoadTreeUrl(false) ?>';
|
| 158 |
+
this.request(this.loader.dataUrl, false);
|
| 159 |
+
}
|
| 160 |
+
},
|
| 161 |
+
|
| 162 |
+
expandTree : function()
|
| 163 |
+
{
|
| 164 |
+
this.expandAll();
|
| 165 |
+
if (this.collapsed) {
|
| 166 |
+
this.collapsed = false;
|
| 167 |
+
this.loader.dataUrl = '<?php echo $this->getLoadTreeUrl(true) ?>';
|
| 168 |
+
this.request(this.loader.dataUrl, false);
|
| 169 |
+
}
|
| 170 |
+
},
|
| 171 |
+
|
| 172 |
+
categoryClick : function(node, e)
|
| 173 |
+
{
|
| 174 |
+
var baseUrl = '<?php echo $this->getEditUrl() ?>';
|
| 175 |
+
var urlExt = (this.storeId?'store/'+this.storeId+'/':'')+'id/'+node.id+'/';
|
| 176 |
+
var url = parseSidUrl(baseUrl, urlExt);
|
| 177 |
+
|
| 178 |
+
this.currentNodeId = node.id;
|
| 179 |
+
if (!this.useAjax) {
|
| 180 |
+
setLocation(url);
|
| 181 |
+
return;
|
| 182 |
+
}
|
| 183 |
+
if (category_info_tabsJsTabs.activeTab) {
|
| 184 |
+
var params = {active_tab_id:category_info_tabsJsTabs.activeTab.id};
|
| 185 |
+
}
|
| 186 |
+
updateContent(url, params);
|
| 187 |
+
}
|
| 188 |
+
});
|
| 189 |
+
|
| 190 |
+
function reRenderTree(event, switcher)
|
| 191 |
+
{
|
| 192 |
+
// re-render tree by store switcher
|
| 193 |
+
if (tree && event) {
|
| 194 |
+
var obj = event.target;
|
| 195 |
+
var newStoreId = obj.value * 1;
|
| 196 |
+
var storeParam = newStoreId ? 'store/'+newStoreId + '/' : '';
|
| 197 |
+
|
| 198 |
+
if (obj.switchParams) {
|
| 199 |
+
storeParam += obj.switchParams;
|
| 200 |
+
}
|
| 201 |
+
if (switcher.useConfirm) {
|
| 202 |
+
if (!confirm('<?php echo Mage::helper('core')->jsQuoteEscape($this->__('Please confirm site switching. All data that hasn\'t been saved will be lost.')) ?>')){
|
| 203 |
+
obj.value = '<?php echo (int) $this->getStoreId() ?>';
|
| 204 |
+
return false;
|
| 205 |
+
}
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
if ($('add_root_category_button')) {
|
| 209 |
+
if (newStoreId == 0) {
|
| 210 |
+
$('add_root_category_button').show();
|
| 211 |
+
}
|
| 212 |
+
else {
|
| 213 |
+
$('add_root_category_button').hide();
|
| 214 |
+
}
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
// retain current selected category id
|
| 218 |
+
storeParam = storeParam + 'id/' + tree.currentNodeId + '/';
|
| 219 |
+
var url = tree.switchTreeUrl + storeParam;
|
| 220 |
+
|
| 221 |
+
// load from cache
|
| 222 |
+
// load from ajax
|
| 223 |
+
new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
|
| 224 |
+
parameters : {store: newStoreId, form_key: FORM_KEY},
|
| 225 |
+
method : 'post',
|
| 226 |
+
onComplete : function(transport) {
|
| 227 |
+
var response = eval('(' + transport.responseText + ')');
|
| 228 |
+
if (!response['parameters']) {
|
| 229 |
+
return false;
|
| 230 |
+
}
|
| 231 |
+
|
| 232 |
+
_renderNewTree(response, storeParam);
|
| 233 |
+
}
|
| 234 |
+
});
|
| 235 |
+
}
|
| 236 |
+
// render default tree
|
| 237 |
+
else {
|
| 238 |
+
_renderNewTree();
|
| 239 |
+
}
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
function _renderNewTree(config, storeParam)
|
| 243 |
+
{
|
| 244 |
+
if (!config) {
|
| 245 |
+
var config = defaultLoadTreeParams;
|
| 246 |
+
}
|
| 247 |
+
if (tree) {
|
| 248 |
+
tree.purgeListeners();
|
| 249 |
+
tree.el.dom.innerHTML = '';
|
| 250 |
+
}
|
| 251 |
+
tree = new Ext.tree.TreePanel.Enhanced('tree-div', newTreeParams);
|
| 252 |
+
tree.loadTree(config, true);
|
| 253 |
+
|
| 254 |
+
// try to select current category
|
| 255 |
+
var selectedNode = tree.getNodeById(config.parameters.category_id);
|
| 256 |
+
if (selectedNode) {
|
| 257 |
+
tree.currentNodeId = config.parameters.category_id;
|
| 258 |
+
}
|
| 259 |
+
tree.selectCurrentNode();
|
| 260 |
+
|
| 261 |
+
// update content area
|
| 262 |
+
var url = tree.editUrl;
|
| 263 |
+
if (storeParam) {
|
| 264 |
+
url = url + storeParam;
|
| 265 |
+
}
|
| 266 |
+
<?php if ($this->isClearEdit()):?>
|
| 267 |
+
if (selectedNode) {
|
| 268 |
+
url = url + 'id/' + config.parameters.category_id;
|
| 269 |
+
}
|
| 270 |
+
<?php endif;?>
|
| 271 |
+
updateContent(url);
|
| 272 |
+
}
|
| 273 |
+
|
| 274 |
+
Ext.onReady(function()
|
| 275 |
+
{
|
| 276 |
+
categoryLoader = new Ext.tree.TreeLoader({
|
| 277 |
+
dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
|
| 278 |
+
});
|
| 279 |
+
|
| 280 |
+
categoryLoader.createNode = function(config) {
|
| 281 |
+
var node;
|
| 282 |
+
var _node = Object.clone(config);
|
| 283 |
+
if (config.children && !config.children.length) {
|
| 284 |
+
delete(config.children);
|
| 285 |
+
node = new Ext.tree.AsyncTreeNode(config);
|
| 286 |
+
} else {
|
| 287 |
+
node = new Ext.tree.TreeNode(config);
|
| 288 |
+
}
|
| 289 |
+
|
| 290 |
+
return node;
|
| 291 |
+
};
|
| 292 |
+
|
| 293 |
+
categoryLoader.buildCategoryTree = function(parent, config)
|
| 294 |
+
{
|
| 295 |
+
if (!config) return null;
|
| 296 |
+
|
| 297 |
+
if (parent && config && config.length){
|
| 298 |
+
for (var i = 0; i < config.length; i++) {
|
| 299 |
+
var node;
|
| 300 |
+
var _node = Object.clone(config[i]);
|
| 301 |
+
if (_node.children && !_node.children.length) {
|
| 302 |
+
delete(_node.children);
|
| 303 |
+
node = new Ext.tree.AsyncTreeNode(_node);
|
| 304 |
+
} else {
|
| 305 |
+
node = new Ext.tree.TreeNode(config[i]);
|
| 306 |
+
}
|
| 307 |
+
parent.appendChild(node);
|
| 308 |
+
node.loader = node.getOwnerTree().loader;
|
| 309 |
+
if (_node.children) {
|
| 310 |
+
this.buildCategoryTree(node, _node.children);
|
| 311 |
+
}
|
| 312 |
+
}
|
| 313 |
+
}
|
| 314 |
+
};
|
| 315 |
+
|
| 316 |
+
categoryLoader.buildHash = function(node)
|
| 317 |
+
{
|
| 318 |
+
var hash = {};
|
| 319 |
+
|
| 320 |
+
hash = this.toArray(node.attributes);
|
| 321 |
+
|
| 322 |
+
if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
|
| 323 |
+
hash['children'] = new Array;
|
| 324 |
+
|
| 325 |
+
for (var i = 0, len = node.childNodes.length; i < len; i++) {
|
| 326 |
+
if (!hash['children']) {
|
| 327 |
+
hash['children'] = new Array;
|
| 328 |
+
}
|
| 329 |
+
hash['children'].push(this.buildHash(node.childNodes[i]));
|
| 330 |
+
}
|
| 331 |
+
}
|
| 332 |
+
|
| 333 |
+
return hash;
|
| 334 |
+
};
|
| 335 |
+
|
| 336 |
+
categoryLoader.toArray = function(attributes) {
|
| 337 |
+
var data = {form_key: FORM_KEY};
|
| 338 |
+
for (var key in attributes) {
|
| 339 |
+
var value = attributes[key];
|
| 340 |
+
data[key] = value;
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
return data;
|
| 344 |
+
};
|
| 345 |
+
|
| 346 |
+
categoryLoader.on("beforeload", function(treeLoader, node) {
|
| 347 |
+
treeLoader.baseParams.id = node.attributes.id;
|
| 348 |
+
treeLoader.baseParams.store = node.attributes.store;
|
| 349 |
+
treeLoader.baseParams.form_key = FORM_KEY;
|
| 350 |
+
});
|
| 351 |
+
|
| 352 |
+
categoryLoader.on("load", function(treeLoader, node, config) {
|
| 353 |
+
varienWindowOnload();
|
| 354 |
+
});
|
| 355 |
+
|
| 356 |
+
if ((typeof varienStoreSwitcher)!='undefined') {
|
| 357 |
+
varienStoreSwitcher.storeSelectorClickCallback = reRenderTree;
|
| 358 |
+
}
|
| 359 |
+
|
| 360 |
+
newTreeParams = {
|
| 361 |
+
animate : false,
|
| 362 |
+
loader : categoryLoader,
|
| 363 |
+
enableDD : true,
|
| 364 |
+
containerScroll : true,
|
| 365 |
+
selModel : new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 366 |
+
rootVisible : '<?php echo $this->getRoot()->getIsVisible() ?>',
|
| 367 |
+
useAjax : <?php echo $this->getUseAjax() ?>,
|
| 368 |
+
switchTreeUrl : '<?php echo $this->getSwitchTreeUrl() ?>',
|
| 369 |
+
editUrl : '<?php echo $this->getEditUrl() ?>',
|
| 370 |
+
currentNodeId : <?php echo (int) $this->getCategoryId() ?>
|
| 371 |
+
};
|
| 372 |
+
|
| 373 |
+
defaultLoadTreeParams = {
|
| 374 |
+
parameters : {
|
| 375 |
+
text : '<?php echo Mage::helper('core')->jsQuoteEscape(htmlentities($this->getRoot()->getName())) ?>',
|
| 376 |
+
draggable : false,
|
| 377 |
+
allowDrop : <?php if ($this->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>,
|
| 378 |
+
id : <?php echo (int) $this->getRoot()->getId() ?>,
|
| 379 |
+
expanded : <?php echo (int) $this->getIsWasExpanded() ?>,
|
| 380 |
+
store_id : <?php echo (int) $this->getStore()->getId() ?>,
|
| 381 |
+
category_id : <?php echo (int) $this->getCategoryId() ?>
|
| 382 |
+
},
|
| 383 |
+
data : <?php echo $this->getTreeJson() ?>
|
| 384 |
+
};
|
| 385 |
+
|
| 386 |
+
reRenderTree();
|
| 387 |
+
});
|
| 388 |
+
|
| 389 |
+
function addNew(url, isRoot)
|
| 390 |
+
{
|
| 391 |
+
if (isRoot) {
|
| 392 |
+
tree.currentNodeId = tree.root.id;
|
| 393 |
+
}
|
| 394 |
+
|
| 395 |
+
if (/store\/\d+/.test(url)) {
|
| 396 |
+
url = url.replace(/store\/\d+/, "store/" + tree.storeId);
|
| 397 |
+
}
|
| 398 |
+
else {
|
| 399 |
+
url+= "store/" + tree.storeId + "/";
|
| 400 |
+
}
|
| 401 |
+
|
| 402 |
+
url+= 'parent/'+tree.currentNodeId;
|
| 403 |
+
updateContent(url);
|
| 404 |
+
}
|
| 405 |
+
|
| 406 |
+
function categoryMove(obj)
|
| 407 |
+
{
|
| 408 |
+
var data = {id: obj.dropNode.id, form_key: FORM_KEY};
|
| 409 |
+
|
| 410 |
+
data.point = obj.point;
|
| 411 |
+
switch (obj.point) {
|
| 412 |
+
case 'above' :
|
| 413 |
+
data.pid = obj.target.parentNode.id;
|
| 414 |
+
data.paid = obj.dropNode.parentNode.id;
|
| 415 |
+
if (obj.target.previousSibling) {
|
| 416 |
+
data.aid = obj.target.previousSibling.id;
|
| 417 |
+
} else {
|
| 418 |
+
data.aid = 0;
|
| 419 |
+
}
|
| 420 |
+
break;
|
| 421 |
+
case 'below' :
|
| 422 |
+
data.pid = obj.target.parentNode.id;
|
| 423 |
+
data.aid = obj.target.id;
|
| 424 |
+
break;
|
| 425 |
+
case 'append' :
|
| 426 |
+
data.pid = obj.target.id;
|
| 427 |
+
data.paid = obj.dropNode.parentNode.id;
|
| 428 |
+
if (obj.target.lastChild) {
|
| 429 |
+
data.aid = obj.target.lastChild.id;
|
| 430 |
+
} else {
|
| 431 |
+
data.aid = 0;
|
| 432 |
+
}
|
| 433 |
+
break;
|
| 434 |
+
default :
|
| 435 |
+
obj.cancel = true;
|
| 436 |
+
return obj;
|
| 437 |
+
}
|
| 438 |
+
|
| 439 |
+
var success = function(o) {
|
| 440 |
+
try {
|
| 441 |
+
if(o.responseText){
|
| 442 |
+
if(o.responseText==='SUCCESS'){
|
| 443 |
+
categoryForm.refreshPath();
|
| 444 |
+
} else {
|
| 445 |
+
alert(o.responseText);
|
| 446 |
+
location.reload();
|
| 447 |
+
}
|
| 448 |
+
}
|
| 449 |
+
}
|
| 450 |
+
catch(e) {
|
| 451 |
+
}
|
| 452 |
+
};
|
| 453 |
+
|
| 454 |
+
var failure = function(o) {
|
| 455 |
+
try {
|
| 456 |
+
console.log(o.statusText);
|
| 457 |
+
} catch (e2) {
|
| 458 |
+
alert(o.statusText);
|
| 459 |
+
}
|
| 460 |
+
location.reload();
|
| 461 |
+
};
|
| 462 |
+
|
| 463 |
+
var pd = [];
|
| 464 |
+
for(var key in data) {
|
| 465 |
+
pd.push(encodeURIComponent(key), "=", encodeURIComponent(data[key]), "&");
|
| 466 |
+
}
|
| 467 |
+
pd.splice(pd.length-1,1);
|
| 468 |
+
new Ajax.Request(
|
| 469 |
+
'<?php echo $this->getMoveUrl() ?>',
|
| 470 |
+
{
|
| 471 |
+
method: 'POST',
|
| 472 |
+
parameters: pd.join(""),
|
| 473 |
+
onSuccess : success,
|
| 474 |
+
onFailure : failure
|
| 475 |
+
}
|
| 476 |
+
);
|
| 477 |
+
}
|
| 478 |
+
//]]>
|
| 479 |
+
</script>
|
| 480 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/catalog/category/widget/tree.phtml
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 $_divId = 'tree' . $this->getId() ?>
|
| 29 |
+
<div id="<?php echo $_divId ?>" class="tree"></div>
|
| 30 |
+
|
| 31 |
+
<script type="text/javascript">
|
| 32 |
+
//<![CDATA[
|
| 33 |
+
|
| 34 |
+
var tree<?php echo $this->getId() ?>;
|
| 35 |
+
|
| 36 |
+
var useMassaction = <?php echo $this->getUseMassaction()?1:0; ?>;
|
| 37 |
+
|
| 38 |
+
var isAnchorOnly = <?php echo $this->getIsAnchorOnly()?1:0; ?>;
|
| 39 |
+
|
| 40 |
+
Ext.tree.TreePanel.Enhanced = function(el, config)
|
| 41 |
+
{
|
| 42 |
+
Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config);
|
| 43 |
+
};
|
| 44 |
+
|
| 45 |
+
Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, {
|
| 46 |
+
|
| 47 |
+
loadTree : function(config, firstLoad)
|
| 48 |
+
{
|
| 49 |
+
var parameters = config['parameters'];
|
| 50 |
+
var data = config['data'];
|
| 51 |
+
|
| 52 |
+
if ((typeof parameters['root_visible']) != 'undefined') {
|
| 53 |
+
this.rootVisible = parameters['root_visible']*1;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
var root = new Ext.tree.TreeNode(parameters);
|
| 57 |
+
|
| 58 |
+
this.nodeHash = {};
|
| 59 |
+
this.setRootNode(root);
|
| 60 |
+
|
| 61 |
+
if (firstLoad) {
|
| 62 |
+
<?php if ($this->getNodeClickListener()): ?>
|
| 63 |
+
this.addListener('click', <?php echo $this->getNodeClickListener() ?>.createDelegate(this));
|
| 64 |
+
<?php endif; ?>
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
this.loader.buildCategoryTree(root, data);
|
| 68 |
+
this.el.dom.innerHTML = '';
|
| 69 |
+
// render the tree
|
| 70 |
+
this.render();
|
| 71 |
+
}
|
| 72 |
+
});
|
| 73 |
+
|
| 74 |
+
Ext.onReady(function()
|
| 75 |
+
{
|
| 76 |
+
var emptyNodeAdded = <?php echo ($this->getWithEmptyNode() ? 'false' : 'true') ?>;
|
| 77 |
+
|
| 78 |
+
var categoryLoader = new Ext.tree.TreeLoader({
|
| 79 |
+
dataUrl: '<?php echo $this->getLoadTreeUrl() ?>'
|
| 80 |
+
});
|
| 81 |
+
|
| 82 |
+
categoryLoader.buildCategoryTree = function(parent, config)
|
| 83 |
+
{
|
| 84 |
+
if (!config) return null;
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
if (parent && config && config.length){
|
| 88 |
+
for (var i = 0; i < config.length; i++) {
|
| 89 |
+
var node;
|
| 90 |
+
if (useMassaction && config[i].is_anchor == isAnchorOnly) {
|
| 91 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 92 |
+
}
|
| 93 |
+
var _node = Object.clone(config[i]);
|
| 94 |
+
|
| 95 |
+
// Add empty node to reset category filter
|
| 96 |
+
if(!emptyNodeAdded) {
|
| 97 |
+
var empty = Object.clone(_node);
|
| 98 |
+
empty.text = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('None')) ?>';
|
| 99 |
+
empty.children = [];
|
| 100 |
+
empty.id = 'none';
|
| 101 |
+
empty.path = '1/none';
|
| 102 |
+
empty.cls = 'leaf';
|
| 103 |
+
parent.appendChild(new Ext.tree.TreeNode(empty));
|
| 104 |
+
emptyNodeAdded = true;
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
if (_node.children && !_node.children.length) {
|
| 108 |
+
delete(_node.children);
|
| 109 |
+
node = new Ext.tree.AsyncTreeNode(_node);
|
| 110 |
+
} else {
|
| 111 |
+
node = new Ext.tree.TreeNode(config[i]);
|
| 112 |
+
}
|
| 113 |
+
parent.appendChild(node);
|
| 114 |
+
node.loader = node.getOwnerTree().loader;
|
| 115 |
+
node.loader = node.getOwnerTree().loader;
|
| 116 |
+
if (_node.children) {
|
| 117 |
+
this.buildCategoryTree(node, _node.children);
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
}
|
| 121 |
+
};
|
| 122 |
+
|
| 123 |
+
categoryLoader.createNode = function(config) {
|
| 124 |
+
var node;
|
| 125 |
+
if (useMassaction && config.is_anchor == isAnchorOnly) {
|
| 126 |
+
config.uiProvider = Ext.tree.CheckboxNodeUI;
|
| 127 |
+
}
|
| 128 |
+
var _node = Object.clone(config);
|
| 129 |
+
if (config.children && !config.children.length) {
|
| 130 |
+
delete(config.children);
|
| 131 |
+
node = new Ext.tree.AsyncTreeNode(config);
|
| 132 |
+
} else {
|
| 133 |
+
node = new Ext.tree.TreeNode(config);
|
| 134 |
+
}
|
| 135 |
+
return node;
|
| 136 |
+
};
|
| 137 |
+
|
| 138 |
+
categoryLoader.buildHash = function(node)
|
| 139 |
+
{
|
| 140 |
+
var hash = {};
|
| 141 |
+
|
| 142 |
+
hash = this.toArray(node.attributes);
|
| 143 |
+
|
| 144 |
+
if (node.childNodes.length>0 || (node.loaded==false && node.loading==false)) {
|
| 145 |
+
hash['children'] = new Array;
|
| 146 |
+
|
| 147 |
+
for (var i = 0, len = node.childNodes.length; i < len; i++) {
|
| 148 |
+
if (!hash['children']) {
|
| 149 |
+
hash['children'] = new Array;
|
| 150 |
+
}
|
| 151 |
+
hash['children'].push(this.buildHash(node.childNodes[i]));
|
| 152 |
+
}
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
return hash;
|
| 156 |
+
};
|
| 157 |
+
|
| 158 |
+
categoryLoader.toArray = function(attributes) {
|
| 159 |
+
var data = {};
|
| 160 |
+
for (var key in attributes) {
|
| 161 |
+
var value = attributes[key];
|
| 162 |
+
data[key] = value;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
return data;
|
| 166 |
+
};
|
| 167 |
+
|
| 168 |
+
categoryLoader.on("beforeload", function(treeLoader, node) {
|
| 169 |
+
treeLoader.baseParams.id = node.attributes.id;
|
| 170 |
+
});
|
| 171 |
+
|
| 172 |
+
tree<?php echo $this->getId() ?> = new Ext.tree.TreePanel.Enhanced('<?php echo $_divId ?>', {
|
| 173 |
+
animate: false,
|
| 174 |
+
loader: categoryLoader,
|
| 175 |
+
enableDD: false,
|
| 176 |
+
containerScroll: true,
|
| 177 |
+
rootVisible: '<?php echo $this->getRoot()->getIsVisible() ?>',
|
| 178 |
+
useAjax: true,
|
| 179 |
+
currentNodeId: <?php echo (int) $this->getCategoryId() ?>,
|
| 180 |
+
addNodeTo: false
|
| 181 |
+
});
|
| 182 |
+
|
| 183 |
+
if (useMassaction) {
|
| 184 |
+
tree<?php echo $this->getId() ?>.on('check', function(node) {
|
| 185 |
+
$('<?php echo $_divId; ?>').fire('node:changed', {node:node});
|
| 186 |
+
}, tree<?php echo $this->getId() ?>);
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
// set the root node
|
| 190 |
+
var parameters = {
|
| 191 |
+
text: 'Psw',
|
| 192 |
+
draggable: false,
|
| 193 |
+
id: <?php echo (int) $this->getRoot()->getId() ?>,
|
| 194 |
+
expanded: <?php echo (int) $this->getIsWasExpanded() ?>,
|
| 195 |
+
category_id: <?php echo (int) $this->getCategoryId() ?>
|
| 196 |
+
};
|
| 197 |
+
|
| 198 |
+
tree<?php echo $this->getId() ?>.loadTree({parameters:parameters, data:<?php echo $this->getTreeJson() ?>},true);
|
| 199 |
+
|
| 200 |
+
});
|
| 201 |
+
//]]>
|
| 202 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/form/renderer/fieldset/element.phtml
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<?php $_element = $this->getElement() ?>
|
| 33 |
+
<?php $this->checkFieldDisable() ?>
|
| 34 |
+
<?php
|
| 35 |
+
$elementToggleCode = $_element->getToggleCode() ? $_element->getToggleCode()
|
| 36 |
+
: 'toggleValueElements(this, this.parentNode.parentNode)';
|
| 37 |
+
?>
|
| 38 |
+
|
| 39 |
+
<?php if ($_element->getType()=='hidden'): ?>
|
| 40 |
+
<tr>
|
| 41 |
+
<td class="hidden" colspan="100"><?php echo trim($_element->getElementHtml()) ?></td>
|
| 42 |
+
</tr>
|
| 43 |
+
<?php else: ?>
|
| 44 |
+
<tr>
|
| 45 |
+
<td class="label"><?php echo trim($this->getElementLabelHtml()) ?></td>
|
| 46 |
+
<td class="value">
|
| 47 |
+
<?php echo trim($this->getElementHtml()) ?>
|
| 48 |
+
<?php if ($_element->getNote()) : ?>
|
| 49 |
+
<p class="note"><?php echo $_element->getNote() ?></p>
|
| 50 |
+
<?php endif; ?>
|
| 51 |
+
</td>
|
| 52 |
+
<td class="scope-label"><span class="nobr"><?php echo $this->getScopeLabel() ?></span></td>
|
| 53 |
+
<?php if ($this->canDisplayUseDefault()): ?>
|
| 54 |
+
<td class="value use-default">
|
| 55 |
+
<input <?php if($_element->getReadonly()):?> disabled="disabled"<?php endif; ?> type="checkbox" name="use_default[]" id="<?php echo $_element->getHtmlId() ?>_default"<?php if ($this->usedDefault()): ?> checked="checked"<?php endif; ?> onclick="<?php echo $elementToggleCode; ?>" value="<?php echo $this->getAttributeCode() ?>"/>
|
| 56 |
+
<label for="<?php echo $_element->getHtmlId() ?>_default" class="normal"><?php echo $this->__('Use Default Value') ?></label>
|
| 57 |
+
</td>
|
| 58 |
+
<?php endif; ?>
|
| 59 |
+
</tr>
|
| 60 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/catalog/product.phtml
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Adminhtml_Block_Catalog_Product
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<div class="content-header">
|
| 33 |
+
<table cellspacing="0">
|
| 34 |
+
<tr>
|
| 35 |
+
<td style="width:50%;"><h3 class="icon-head head-products"><?php echo Mage::helper('catalog')->__('Manage Products') ?></h3></td>
|
| 36 |
+
<td class="a-right">
|
| 37 |
+
<?php echo $this->getButtonsHtml() ?>
|
| 38 |
+
</td>
|
| 39 |
+
</tr>
|
| 40 |
+
</table>
|
| 41 |
+
</div>
|
| 42 |
+
<?php if( !$this->isSingleStoreMode() ): ?>
|
| 43 |
+
<?php echo $this->getChildHtml('store_switcher');?>
|
| 44 |
+
<?php endif;?>
|
| 45 |
+
<div>
|
| 46 |
+
<?php echo $this->getGridHtml() ?>
|
| 47 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/js.phtml
ADDED
|
@@ -0,0 +1,338 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
function saveAndContinueEdit(){
|
| 30 |
+
disableElements('save');
|
| 31 |
+
var activeTab = product_attribute_tabsJsTabs.activeTab.id;
|
| 32 |
+
if (editForm.submit($('edit_form').action+'back/edit/tab/' + activeTab) == false) {
|
| 33 |
+
enableElements('save');
|
| 34 |
+
}
|
| 35 |
+
varienGlobalEvents.attachEventHandler('formValidateAjaxComplete', function (){
|
| 36 |
+
enableElements('save');
|
| 37 |
+
});
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
function saveAttribute(){
|
| 41 |
+
disableElements('save');
|
| 42 |
+
if (editForm.submit() == false){
|
| 43 |
+
enableElements('save');
|
| 44 |
+
}
|
| 45 |
+
varienGlobalEvents.attachEventHandler('formValidateAjaxComplete', function (){
|
| 46 |
+
enableElements('save');
|
| 47 |
+
});
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
function toggleApplyVisibility(select) {
|
| 51 |
+
if ($(select).value == 1) {
|
| 52 |
+
$(select).next('select').removeClassName('no-display');
|
| 53 |
+
$(select).next('select').removeClassName('ignore-validate');
|
| 54 |
+
|
| 55 |
+
} else {
|
| 56 |
+
$(select).next('select').addClassName('no-display');
|
| 57 |
+
$(select).next('select').addClassName('ignore-validate');
|
| 58 |
+
var options = $(select).next('select').options;
|
| 59 |
+
for( var i=0; i < options.length; i++) {
|
| 60 |
+
options[i].selected = false;
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
function checkOptionsPanelVisibility(){
|
| 66 |
+
if($('matage-options-panel')){
|
| 67 |
+
var panel = $('matage-options-panel');
|
| 68 |
+
if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect')){
|
| 69 |
+
panel.show();
|
| 70 |
+
}
|
| 71 |
+
else {
|
| 72 |
+
panel.hide();
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
function bindAttributeInputType()
|
| 78 |
+
{
|
| 79 |
+
checkOptionsPanelVisibility();
|
| 80 |
+
switchDefaultValueField();
|
| 81 |
+
checkIsConfigurableVisibility();
|
| 82 |
+
if($('frontend_input') && ($('frontend_input').value=='select' || $('frontend_input').value=='multiselect' || $('frontend_input').value=='price')){
|
| 83 |
+
if($('is_filterable') && !$('is_filterable').getAttribute('readonly')){
|
| 84 |
+
$('is_filterable').disabled = false;
|
| 85 |
+
}
|
| 86 |
+
if($('is_filterable_in_search') && !$('is_filterable_in_search').getAttribute('readonly')){
|
| 87 |
+
$('is_filterable_in_search').disabled = false;
|
| 88 |
+
}
|
| 89 |
+
if($('backend_type') && $('backend_type').options){
|
| 90 |
+
for(var i=0;i<$('backend_type').options.length;i++){
|
| 91 |
+
if($('backend_type').options[i].value=='int') $('backend_type').selectedIndex = i;
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
else {
|
| 96 |
+
if($('is_filterable')){
|
| 97 |
+
$('is_filterable').selectedIndex=0;
|
| 98 |
+
$('is_filterable').disabled = true;
|
| 99 |
+
}
|
| 100 |
+
if($('is_filterable_in_search')){
|
| 101 |
+
$('is_filterable_in_search').disabled = true;
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
if ($('frontend_input') && ($('frontend_input').value=='multiselect'
|
| 106 |
+
|| $('frontend_input').value=='gallery'
|
| 107 |
+
|| $('frontend_input').value=='textarea')) {
|
| 108 |
+
if ($('used_for_sort_by')) {
|
| 109 |
+
$('used_for_sort_by').disabled = true;
|
| 110 |
+
}
|
| 111 |
+
}
|
| 112 |
+
else {
|
| 113 |
+
if ($('used_for_sort_by') && !$('used_for_sort_by').getAttribute('readonly')) {
|
| 114 |
+
$('used_for_sort_by').disabled = false;
|
| 115 |
+
}
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
setRowVisibility('is_wysiwyg_enabled', false);
|
| 119 |
+
setRowVisibility('is_html_allowed_on_front', false);
|
| 120 |
+
|
| 121 |
+
switch ($('frontend_input').value) {
|
| 122 |
+
case 'textarea':
|
| 123 |
+
setRowVisibility('is_wysiwyg_enabled', true);
|
| 124 |
+
if($('is_wysiwyg_enabled').value == '0'){
|
| 125 |
+
setRowVisibility('is_html_allowed_on_front', true);
|
| 126 |
+
$('is_html_allowed_on_front').disabled = false;
|
| 127 |
+
}
|
| 128 |
+
$('frontend_class').value = '';
|
| 129 |
+
$('frontend_class').disabled = true;
|
| 130 |
+
break;
|
| 131 |
+
case 'text':
|
| 132 |
+
setRowVisibility('is_html_allowed_on_front', true);
|
| 133 |
+
$('is_html_allowed_on_front').disabled = false;
|
| 134 |
+
|
| 135 |
+
if (!$('frontend_class').getAttribute('readonly')) {
|
| 136 |
+
$('frontend_class').disabled = false;
|
| 137 |
+
}
|
| 138 |
+
break;
|
| 139 |
+
case 'select':
|
| 140 |
+
case 'multiselect':
|
| 141 |
+
setRowVisibility('is_html_allowed_on_front', true);
|
| 142 |
+
$('is_html_allowed_on_front').disabled = false;
|
| 143 |
+
break;
|
| 144 |
+
default:
|
| 145 |
+
$('frontend_class').value = '';
|
| 146 |
+
$('frontend_class').disabled = true;
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
switchIsFilterable();
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
function switchIsFilterable()
|
| 153 |
+
{
|
| 154 |
+
if ($('is_filterable')) {
|
| 155 |
+
if ($('is_filterable').selectedIndex == 0) {
|
| 156 |
+
$('position').disabled = true;
|
| 157 |
+
} else {
|
| 158 |
+
if (!$('position').getAttribute('readonly')){
|
| 159 |
+
$('position').disabled = false;
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
}
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
function disableApplyToValue(value)
|
| 166 |
+
{
|
| 167 |
+
var applyToSelect = $('apply_to');
|
| 168 |
+
for (i=0;i<applyToSelect.options.length;i++) {
|
| 169 |
+
if (value == applyToSelect.options[i].value) {
|
| 170 |
+
applyToSelect.options[i].disabled = true;
|
| 171 |
+
applyToSelect.options[i].selected = false;
|
| 172 |
+
}
|
| 173 |
+
}
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
function switchDefaultValueField()
|
| 177 |
+
{
|
| 178 |
+
if (!$('frontend_input')) {
|
| 179 |
+
return;
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
var currentValue = $('frontend_input').value;
|
| 183 |
+
|
| 184 |
+
var defaultValueTextVisibility = false;
|
| 185 |
+
var defaultValueTextareaVisibility = false;
|
| 186 |
+
var defaultValueDateVisibility = false;
|
| 187 |
+
var defaultValueYesnoVisibility = false;
|
| 188 |
+
var scopeVisibility = true;
|
| 189 |
+
|
| 190 |
+
switch (currentValue) {
|
| 191 |
+
case 'select':
|
| 192 |
+
optionDefaultInputType = 'radio';
|
| 193 |
+
break;
|
| 194 |
+
|
| 195 |
+
case 'multiselect':
|
| 196 |
+
optionDefaultInputType = 'checkbox';
|
| 197 |
+
break;
|
| 198 |
+
|
| 199 |
+
case 'date':
|
| 200 |
+
defaultValueDateVisibility = true;
|
| 201 |
+
break;
|
| 202 |
+
|
| 203 |
+
case 'boolean':
|
| 204 |
+
defaultValueYesnoVisibility = true;
|
| 205 |
+
break;
|
| 206 |
+
|
| 207 |
+
case 'textarea':
|
| 208 |
+
defaultValueTextareaVisibility = true;
|
| 209 |
+
break;
|
| 210 |
+
|
| 211 |
+
case 'media_image':
|
| 212 |
+
defaultValueTextVisibility = false;
|
| 213 |
+
break;
|
| 214 |
+
case 'price':
|
| 215 |
+
scopeVisibility = false;
|
| 216 |
+
default:
|
| 217 |
+
defaultValueTextVisibility = true;
|
| 218 |
+
break;
|
| 219 |
+
}
|
| 220 |
+
|
| 221 |
+
var applyToSelect = $('apply_to');
|
| 222 |
+
switch (currentValue) {
|
| 223 |
+
<?php foreach (Mage::helper('catalog')->getAttributeDisabledTypes() as $type=>$disabled): ?>
|
| 224 |
+
case '<?php echo $type; ?>':
|
| 225 |
+
<?php foreach ($disabled as $one): ?>
|
| 226 |
+
disableApplyToValue('<?php echo $one; ?>');
|
| 227 |
+
<?php endforeach; ?>
|
| 228 |
+
break;
|
| 229 |
+
<?php endforeach; ?>
|
| 230 |
+
default:
|
| 231 |
+
for (i=0;i<applyToSelect.options.length;i++) {
|
| 232 |
+
applyToSelect.options[i].disabled = false;
|
| 233 |
+
}
|
| 234 |
+
break;
|
| 235 |
+
}
|
| 236 |
+
|
| 237 |
+
switch (currentValue) {
|
| 238 |
+
case 'media_image':
|
| 239 |
+
$('front_fieldset').previous().hide();
|
| 240 |
+
$('front_fieldset').hide();
|
| 241 |
+
|
| 242 |
+
setRowVisibility('is_required', false);
|
| 243 |
+
setRowVisibility('is_unique', false);
|
| 244 |
+
setRowVisibility('frontend_class', false);
|
| 245 |
+
break;
|
| 246 |
+
|
| 247 |
+
<?php foreach (Mage::helper('catalog')->getAttributeHiddenFields() as $type=>$fields): ?>
|
| 248 |
+
case '<?php echo $type; ?>':
|
| 249 |
+
<?php foreach ($fields as $one): ?>
|
| 250 |
+
<?php if ($one == '_front_fieldset'): ?>
|
| 251 |
+
$('front_fieldset').previous().hide();
|
| 252 |
+
$('front_fieldset').hide();
|
| 253 |
+
<?php elseif ($one == '_default_value'): ?>
|
| 254 |
+
defaultValueTextVisibility =
|
| 255 |
+
defaultValueTextareaVisibility =
|
| 256 |
+
defaultValueDateVisibility =
|
| 257 |
+
defaultValueYesnoVisibility = false;
|
| 258 |
+
<?php elseif ($one == '_scope'): ?>
|
| 259 |
+
scopeVisibility = false;
|
| 260 |
+
<?php else: ?>
|
| 261 |
+
setRowVisibility('<?php echo $one; ?>', false);
|
| 262 |
+
<?php endif; ?>
|
| 263 |
+
<?php endforeach; ?>
|
| 264 |
+
break;
|
| 265 |
+
<?php endforeach; ?>
|
| 266 |
+
|
| 267 |
+
default:
|
| 268 |
+
$('front_fieldset').previous().show();
|
| 269 |
+
$('front_fieldset').show();
|
| 270 |
+
setRowVisibility('is_required', true);
|
| 271 |
+
setRowVisibility('is_unique', true);
|
| 272 |
+
setRowVisibility('frontend_class', true);
|
| 273 |
+
setRowVisibility('is_configurable', true);
|
| 274 |
+
break;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
setRowVisibility('default_value_text', defaultValueTextVisibility);
|
| 278 |
+
setRowVisibility('default_value_textarea', defaultValueTextareaVisibility);
|
| 279 |
+
setRowVisibility('default_value_date', defaultValueDateVisibility);
|
| 280 |
+
setRowVisibility('default_value_yesno', defaultValueYesnoVisibility);
|
| 281 |
+
setRowVisibility('is_global', scopeVisibility);
|
| 282 |
+
|
| 283 |
+
var elems = document.getElementsByName('default[]');
|
| 284 |
+
for (var i = 0; i < elems.length; i++) {
|
| 285 |
+
elems[i].type = optionDefaultInputType;
|
| 286 |
+
}
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
function setRowVisibility(id, isVisible)
|
| 290 |
+
{
|
| 291 |
+
if ($(id)) {
|
| 292 |
+
var td = $(id).parentNode;
|
| 293 |
+
var tr = $(td.parentNode);
|
| 294 |
+
|
| 295 |
+
if (isVisible) {
|
| 296 |
+
tr.show();
|
| 297 |
+
} else {
|
| 298 |
+
tr.blur();
|
| 299 |
+
tr.hide();
|
| 300 |
+
}
|
| 301 |
+
}
|
| 302 |
+
}
|
| 303 |
+
|
| 304 |
+
function checkIsConfigurableVisibility()
|
| 305 |
+
{
|
| 306 |
+
if (!$('is_configurable') || !$('is_global') || !$('frontend_input')) return;
|
| 307 |
+
if ($F('is_global')==1 && $F('frontend_input')=='select') {
|
| 308 |
+
setRowVisibility('is_configurable', true);
|
| 309 |
+
} else {
|
| 310 |
+
setRowVisibility('is_configurable', false);
|
| 311 |
+
}
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
+
function updateRequriedOptions()
|
| 315 |
+
{
|
| 316 |
+
if ($F('frontend_input')=='select' && $F('is_required')==1) {
|
| 317 |
+
$('option-count-check').addClassName('required-options-count');
|
| 318 |
+
} else {
|
| 319 |
+
$('option-count-check').removeClassName('required-options-count');
|
| 320 |
+
}
|
| 321 |
+
}
|
| 322 |
+
|
| 323 |
+
if($('frontend_input')){
|
| 324 |
+
Event.observe($('frontend_input'), 'change', updateRequriedOptions);
|
| 325 |
+
Event.observe($('frontend_input'), 'change', bindAttributeInputType);
|
| 326 |
+
Event.observe($('is_global'), 'change', checkIsConfigurableVisibility);
|
| 327 |
+
}
|
| 328 |
+
|
| 329 |
+
if ($('is_filterable')) {
|
| 330 |
+
Event.observe($('is_filterable'), 'change', switchIsFilterable);
|
| 331 |
+
}
|
| 332 |
+
|
| 333 |
+
if ($('is_required')) {
|
| 334 |
+
Event.observe($('is_required'), 'change', updateRequriedOptions);
|
| 335 |
+
}
|
| 336 |
+
bindAttributeInputType();
|
| 337 |
+
//]]>
|
| 338 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/new/created.phtml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
var added = false;
|
| 29 |
+
function addAttribute(closeAfter) {
|
| 30 |
+
if(window.opener!=null && !added) {
|
| 31 |
+
window.opener.Product.AttributesBridge.addAttributeRow(<?php echo $this->getAttributesBlockJson() ?>);
|
| 32 |
+
added = true;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
if(closeAfter)
|
| 36 |
+
{
|
| 37 |
+
closeWindow();
|
| 38 |
+
}
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
function closeWindow()
|
| 42 |
+
{
|
| 43 |
+
if (window.opener) {
|
| 44 |
+
window.opener.focus();
|
| 45 |
+
}
|
| 46 |
+
window.close();
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
addAttribute(false);
|
| 50 |
+
setTimeout(closeWindow, 3000);
|
| 51 |
+
</script>
|
| 52 |
+
<div class="a-center">
|
| 53 |
+
<?php echo $this->getCloseButtonHtml() ?>
|
| 54 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/options.phtml
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Attribute options control
|
| 30 |
+
*
|
| 31 |
+
* @deprecated after 1.7.0.2 The file is moved
|
| 32 |
+
* @see Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
|
| 33 |
+
*/
|
| 34 |
+
?>
|
| 35 |
+
<div>
|
| 36 |
+
<ul class="messages">
|
| 37 |
+
<li class="notice-msg">
|
| 38 |
+
<ul>
|
| 39 |
+
<li><?php echo Mage::helper('catalog')->__('If you do not specify an option value for a specific store view then the default (Admin) value will be used.') ?></li>
|
| 40 |
+
</ul>
|
| 41 |
+
</li>
|
| 42 |
+
</ul>
|
| 43 |
+
</div>
|
| 44 |
+
|
| 45 |
+
<div class="entity-edit">
|
| 46 |
+
<div class="entry-edit-head">
|
| 47 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Titles (Size, Color, etc.)') ?></h4>
|
| 48 |
+
</div>
|
| 49 |
+
<div class="box">
|
| 50 |
+
<div class="hor-scroll">
|
| 51 |
+
<table class="dynamic-grid" cellspacing="0" id="attribute-labels-table">
|
| 52 |
+
<tr>
|
| 53 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
| 54 |
+
<th><?php echo $_store->getName() ?></th>
|
| 55 |
+
<?php endforeach; ?>
|
| 56 |
+
</tr>
|
| 57 |
+
<tr>
|
| 58 |
+
<?php $_labels = $this->getLabelValues() ?>
|
| 59 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
| 60 |
+
<td>
|
| 61 |
+
<input class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" name="frontend_label[<?php echo $_store->getId() ?>]" value="<?php echo $this->escapeHtml($_labels[$_store->getId()]) ?>"<?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/>
|
| 62 |
+
</td>
|
| 63 |
+
<?php endforeach; ?>
|
| 64 |
+
</tr>
|
| 65 |
+
</table>
|
| 66 |
+
</div>
|
| 67 |
+
</div>
|
| 68 |
+
</div>
|
| 69 |
+
<br/>
|
| 70 |
+
<div class="entity-edit" id="matage-options-panel">
|
| 71 |
+
<div class="entry-edit-head">
|
| 72 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Options (values of your attribute)') ?></h4>
|
| 73 |
+
</div>
|
| 74 |
+
<div class="box">
|
| 75 |
+
<div class="hor-scroll">
|
| 76 |
+
<table class="dynamic-grid" cellspacing="0" cellpadding="0">
|
| 77 |
+
<tr id="attribute-options-table">
|
| 78 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
| 79 |
+
<th><?php echo $_store->getName() ?></th>
|
| 80 |
+
<?php endforeach; ?>
|
| 81 |
+
<th><?php echo Mage::helper('catalog')->__('Position') ?></th>
|
| 82 |
+
<th class="nobr a-center"><?php echo Mage::helper('catalog')->__('Is Default') ?></th>
|
| 83 |
+
<th>
|
| 84 |
+
<?php if (!$this->getReadOnly()):?>
|
| 85 |
+
<?php echo $this->getAddNewButtonHtml() ?>
|
| 86 |
+
<?php endif;?>
|
| 87 |
+
</th>
|
| 88 |
+
</tr>
|
| 89 |
+
<tr class="no-display template" id="row-template">
|
| 90 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
| 91 |
+
<td><input name="option[value][{{id}}][<?php echo $_store->getId() ?>]" value="{{store<?php echo $_store->getId() ?>}}" class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
|
| 92 |
+
<?php endforeach; ?>
|
| 93 |
+
<td class="a-center"><input class="input-text" type="text" name="option[order][{{id}}]" value="{{sort_order}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
|
| 94 |
+
<td><input class="input-radio" type="radio" name="default[]" value="{{id}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
|
| 95 |
+
<td class="a-left">
|
| 96 |
+
<input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />
|
| 97 |
+
<?php if (!$this->getReadOnly()):?>
|
| 98 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 99 |
+
<?php endif;?>
|
| 100 |
+
</td>
|
| 101 |
+
</tr>
|
| 102 |
+
</table>
|
| 103 |
+
</div>
|
| 104 |
+
<input type="hidden" id="option-count-check" value="" />
|
| 105 |
+
</div>
|
| 106 |
+
</div>
|
| 107 |
+
<script type="text/javascript">
|
| 108 |
+
//<![CDATA[
|
| 109 |
+
var optionDefaultInputType = 'radio';
|
| 110 |
+
|
| 111 |
+
// IE removes quotes from element.innerHTML whenever it thinks they're not needed, which breaks html.
|
| 112 |
+
var templateText =
|
| 113 |
+
'<tr class="option-row">'+
|
| 114 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
| 115 |
+
'<td><input name="option[value][{{id}}][<?php echo $_store->getId() ?>]" value="{{store<?php echo $_store->getId() ?>}}" class="input-text<?php if($_store->getId()==0): ?> required-option<?php endif; ?>" type="text" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
|
| 116 |
+
<?php endforeach; ?>
|
| 117 |
+
'<td><input class="input-text" type="text" name="option[order][{{id}}]" value="{{sort_order}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
|
| 118 |
+
'<td class="a-center"><input class="input-radio" type="{{intype}}" name="default[]" value="{{id}}" {{checked}} <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
|
| 119 |
+
'<td class="a-left" id="delete_button_container_{{id}}">'+
|
| 120 |
+
'<input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />'+
|
| 121 |
+
<?php if (!$this->getReadOnly()):?>
|
| 122 |
+
'<?php echo Mage::helper('core')->jsQuoteEscape($this->getDeleteButtonHtml()) ?>'+
|
| 123 |
+
<?php endif;?>
|
| 124 |
+
'<\/td>'+
|
| 125 |
+
'<\/tr>';
|
| 126 |
+
|
| 127 |
+
var attributeOption = {
|
| 128 |
+
table : $('attribute-options-table'),
|
| 129 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 130 |
+
templateText : templateText,
|
| 131 |
+
itemCount : 0,
|
| 132 |
+
totalItems : 0,
|
| 133 |
+
isReadOnly: <?php echo (int)$this->getReadOnly(); ?>,
|
| 134 |
+
add : function(data) {
|
| 135 |
+
this.template = new Template(this.templateText, this.templateSyntax);
|
| 136 |
+
var isNewOption = false;
|
| 137 |
+
if(!data.id){
|
| 138 |
+
data = {};
|
| 139 |
+
data.id = 'option_'+this.itemCount;
|
| 140 |
+
isNewOption = true;
|
| 141 |
+
}
|
| 142 |
+
if (!data.intype)
|
| 143 |
+
data.intype = optionDefaultInputType;
|
| 144 |
+
Element.insert(this.table, {after: this.template.evaluate(data)});
|
| 145 |
+
if (isNewOption && !this.isReadOnly) {
|
| 146 |
+
this.enableNewOptionDeleteButton(data.id);
|
| 147 |
+
}
|
| 148 |
+
this.bindRemoveButtons();
|
| 149 |
+
this.itemCount++;
|
| 150 |
+
this.totalItems++;
|
| 151 |
+
this.updateItemsCountField();
|
| 152 |
+
},
|
| 153 |
+
remove : function(event){
|
| 154 |
+
var element = $(Event.findElement(event, 'tr')); // !!! Button already
|
| 155 |
+
// have table parent in safari
|
| 156 |
+
// Safari workaround
|
| 157 |
+
element.ancestors().each(function(parentItem){
|
| 158 |
+
if (parentItem.hasClassName('option-row')) {
|
| 159 |
+
element = parentItem;
|
| 160 |
+
throw $break;
|
| 161 |
+
} else if (parentItem.hasClassName('box')) {
|
| 162 |
+
throw $break;
|
| 163 |
+
}
|
| 164 |
+
});
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
if(element){
|
| 168 |
+
var elementFlags = element.getElementsByClassName('delete-flag');
|
| 169 |
+
if(elementFlags[0]){
|
| 170 |
+
elementFlags[0].value=1;
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
element.addClassName('no-display');
|
| 174 |
+
element.addClassName('template');
|
| 175 |
+
element.hide();
|
| 176 |
+
this.totalItems--;
|
| 177 |
+
this.updateItemsCountField();
|
| 178 |
+
}
|
| 179 |
+
},
|
| 180 |
+
updateItemsCountField: function() {
|
| 181 |
+
if (this.totalItems > 0) {
|
| 182 |
+
$('option-count-check').value = '1';
|
| 183 |
+
} else {
|
| 184 |
+
$('option-count-check').value = '';
|
| 185 |
+
}
|
| 186 |
+
},
|
| 187 |
+
enableNewOptionDeleteButton: function(id) {
|
| 188 |
+
$$('#delete_button_container_' + id + ' button').each(function(button) {
|
| 189 |
+
button.enable();
|
| 190 |
+
button.removeClassName('disabled');
|
| 191 |
+
});
|
| 192 |
+
},
|
| 193 |
+
bindRemoveButtons : function(){
|
| 194 |
+
var buttons = $$('.delete-option');
|
| 195 |
+
for(var i=0;i<buttons.length;i++){
|
| 196 |
+
if(!$(buttons[i]).binded){
|
| 197 |
+
$(buttons[i]).binded = true;
|
| 198 |
+
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
| 199 |
+
}
|
| 200 |
+
}
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
}
|
| 204 |
+
if($('row-template')){
|
| 205 |
+
$('row-template').remove();
|
| 206 |
+
}
|
| 207 |
+
attributeOption.bindRemoveButtons();
|
| 208 |
+
|
| 209 |
+
if($('add_new_option_button')){
|
| 210 |
+
Event.observe('add_new_option_button', 'click', attributeOption.add.bind(attributeOption));
|
| 211 |
+
}
|
| 212 |
+
Validation.addAllThese([
|
| 213 |
+
['required-option', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Failed')) ?>', function(v) {
|
| 214 |
+
return !Validation.get('IsEmpty').test(v);
|
| 215 |
+
}]]);
|
| 216 |
+
Validation.addAllThese([
|
| 217 |
+
['required-options-count', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Options is required')) ?>', function(v) {
|
| 218 |
+
return !Validation.get('IsEmpty').test(v);
|
| 219 |
+
}]]);
|
| 220 |
+
<?php foreach ($this->getOptionValues() as $_value): ?>
|
| 221 |
+
attributeOption.add(<?php echo $_value->toJson() ?>);
|
| 222 |
+
<?php endforeach; ?>
|
| 223 |
+
//]]>
|
| 224 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml
ADDED
|
@@ -0,0 +1,461 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->escapeHtml($this->_getHeader()) ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 33 |
+
<?php echo $this->getResetButtonHtml() ?>
|
| 34 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 35 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 36 |
+
</td>
|
| 37 |
+
</tr>
|
| 38 |
+
</table>
|
| 39 |
+
</div>
|
| 40 |
+
<table cellspacing="0" width="100%">
|
| 41 |
+
<tr>
|
| 42 |
+
<td width="360" style="border-right:1px solid #ddd; padding:0 23px 23px 0;" class="edit-attribute-set">
|
| 43 |
+
<?php echo $this->getSetFormHtml() ?>
|
| 44 |
+
</td>
|
| 45 |
+
<td width="320" style="border-right:1px solid #ddd; padding:0 23px 23px 23px;">
|
| 46 |
+
<div class="content-header skip-header">
|
| 47 |
+
<table cellspacing="0">
|
| 48 |
+
<tbody>
|
| 49 |
+
<tr>
|
| 50 |
+
<td><h3><?php echo Mage::helper('catalog')->__('Groups') ?></h3></td>
|
| 51 |
+
</tr>
|
| 52 |
+
</tbody>
|
| 53 |
+
</table>
|
| 54 |
+
</div>
|
| 55 |
+
|
| 56 |
+
<?php if (!$this->getIsReadOnly()): ?>
|
| 57 |
+
<p><?php echo $this->getAddGroupButton() ?> <?php echo $this->getDeleteGroupButton() ?></p>
|
| 58 |
+
<p class="note-block"><?php echo Mage::helper('catalog')->__('Double click on a group to rename it') ?></p>
|
| 59 |
+
<?php endif; ?>
|
| 60 |
+
|
| 61 |
+
<?php echo $this->getSetsFilterHtml() ?>
|
| 62 |
+
<?php echo $this->getGroupTreeHtml() ?>
|
| 63 |
+
</td>
|
| 64 |
+
<td style="padding:0 0 23px 23px;">
|
| 65 |
+
<div class="content-header skip-header">
|
| 66 |
+
<table cellspacing="0">
|
| 67 |
+
<tbody>
|
| 68 |
+
<tr>
|
| 69 |
+
<td><h3><?php echo Mage::helper('catalog')->__('Unassigned Attributes') ?></h3></td>
|
| 70 |
+
</tr>
|
| 71 |
+
</tbody>
|
| 72 |
+
</table>
|
| 73 |
+
</div>
|
| 74 |
+
<div id="tree-div2" style="height:400px; margin-top:5px;overflow:auto"></div>
|
| 75 |
+
<script type="text/javascript">
|
| 76 |
+
//<![CDATA[
|
| 77 |
+
var allowDragAndDrop = <?php echo ($this->getIsReadOnly() ? 'false' : 'true'); ?>;
|
| 78 |
+
var canEditGroups = <?php echo ($this->getIsReadOnly() ? 'false' : 'true'); ?>;
|
| 79 |
+
|
| 80 |
+
var TreePanels = function() {
|
| 81 |
+
// shorthand
|
| 82 |
+
var Tree = Ext.tree;
|
| 83 |
+
|
| 84 |
+
return {
|
| 85 |
+
init : function(){
|
| 86 |
+
// yui-ext tree
|
| 87 |
+
|
| 88 |
+
var tree = new Ext.tree.TreePanel('tree-div1', {
|
| 89 |
+
animate:false,
|
| 90 |
+
loader: false,
|
| 91 |
+
enableDD:allowDragAndDrop,
|
| 92 |
+
containerScroll: true,
|
| 93 |
+
rootVisible: false
|
| 94 |
+
});
|
| 95 |
+
|
| 96 |
+
// set the root node
|
| 97 |
+
this.root = new Ext.tree.TreeNode({
|
| 98 |
+
text: 'ROOT',
|
| 99 |
+
allowDrug:false,
|
| 100 |
+
allowDrop:true,
|
| 101 |
+
id:'1'
|
| 102 |
+
});
|
| 103 |
+
|
| 104 |
+
tree.setRootNode(this.root);
|
| 105 |
+
buildCategoryTree(this.root, <?php echo $this->getGroupTreeJson() ?>);
|
| 106 |
+
// render the tree
|
| 107 |
+
tree.render();
|
| 108 |
+
this.root.expand(false, false);
|
| 109 |
+
tree.expandAll();
|
| 110 |
+
|
| 111 |
+
this.ge = new Ext.tree.TreeEditor(tree, {
|
| 112 |
+
allowBlank:false,
|
| 113 |
+
blankText:'<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('A name is required')) ?>',
|
| 114 |
+
selectOnFocus:true,
|
| 115 |
+
cls:'folder'
|
| 116 |
+
});
|
| 117 |
+
|
| 118 |
+
this.root.addListener('beforeinsert', editSet.leftBeforeInsert);
|
| 119 |
+
this.root.addListener('beforeappend', editSet.leftBeforeInsert);
|
| 120 |
+
|
| 121 |
+
//this.ge.addListener('beforerender', editSet.editGroup);
|
| 122 |
+
this.ge.addListener('beforeshow', editSet.editGroup);
|
| 123 |
+
this.ge.addListener('beforecomplete', editSet.beforeRenameGroup);
|
| 124 |
+
//this.ge.addListener('startedit', editSet.editGroup);
|
| 125 |
+
|
| 126 |
+
//-------------------------------------------------------------
|
| 127 |
+
|
| 128 |
+
var tree2 = new Ext.tree.TreePanel('tree-div2', {
|
| 129 |
+
animate:false,
|
| 130 |
+
loader: false,
|
| 131 |
+
enableDD:allowDragAndDrop,
|
| 132 |
+
containerScroll: true,
|
| 133 |
+
rootVisible: false,
|
| 134 |
+
lines:false
|
| 135 |
+
});
|
| 136 |
+
|
| 137 |
+
// set the root node
|
| 138 |
+
this.root2 = new Ext.tree.TreeNode({
|
| 139 |
+
text: 'ROOT',
|
| 140 |
+
draggable:false,
|
| 141 |
+
id:'free'
|
| 142 |
+
});
|
| 143 |
+
tree2.setRootNode(this.root2);
|
| 144 |
+
buildCategoryTree(this.root2, <?php echo $this->getAttributeTreeJson() ?>);
|
| 145 |
+
|
| 146 |
+
this.root2.addListener('beforeinsert', editSet.rightBeforeInsert);
|
| 147 |
+
this.root2.addListener('beforeappend', editSet.rightBeforeAppend);
|
| 148 |
+
|
| 149 |
+
this.root2.addListener('append', editSet.rightAppend);
|
| 150 |
+
this.root2.addListener('remove', editSet.rightRemove);
|
| 151 |
+
// render the tree
|
| 152 |
+
tree2.render();
|
| 153 |
+
this.root2.expand(false, false);
|
| 154 |
+
tree2.expandAll();
|
| 155 |
+
},
|
| 156 |
+
|
| 157 |
+
rebuildTrees : function(){
|
| 158 |
+
editSet.req.attributes = new Array();
|
| 159 |
+
rootNode = TreePanels.root;
|
| 160 |
+
var gIterator = 0;
|
| 161 |
+
for( i in rootNode.childNodes ) {
|
| 162 |
+
if(rootNode.childNodes[i].id) {
|
| 163 |
+
var group = rootNode.childNodes[i];
|
| 164 |
+
editSet.req.groups[gIterator] = new Array(group.id, group.attributes.text.strip(), (gIterator+1));
|
| 165 |
+
var iterator = 0
|
| 166 |
+
for( j in group.childNodes ) {
|
| 167 |
+
iterator ++;
|
| 168 |
+
if( group.childNodes[j].id > 0 ) {
|
| 169 |
+
editSet.req.attributes[group.childNodes[j].id] = new Array(group.childNodes[j].id, group.id, iterator, group.childNodes[j].attributes.entity_id);
|
| 170 |
+
}
|
| 171 |
+
}
|
| 172 |
+
iterator = 0;
|
| 173 |
+
}
|
| 174 |
+
gIterator ++;
|
| 175 |
+
}
|
| 176 |
+
|
| 177 |
+
editSet.req.not_attributes = new Array();
|
| 178 |
+
rootNode = TreePanels.root2;
|
| 179 |
+
|
| 180 |
+
var iterator = 0;
|
| 181 |
+
for( i in rootNode.childNodes ) {
|
| 182 |
+
if(rootNode.childNodes[i].id) {
|
| 183 |
+
if( rootNode.childNodes[i].id > 0 ) {
|
| 184 |
+
editSet.req.not_attributes[iterator] = rootNode.childNodes[i].attributes.entity_id;
|
| 185 |
+
}
|
| 186 |
+
iterator ++;
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
}
|
| 190 |
+
};
|
| 191 |
+
}();
|
| 192 |
+
|
| 193 |
+
function buildCategoryTree(parent, config){
|
| 194 |
+
if (!config) return null;
|
| 195 |
+
if (parent && config && config.length){
|
| 196 |
+
for (var i = 0; i < config.length; i++) {
|
| 197 |
+
var node = new Ext.tree.TreeNode(config[i]);
|
| 198 |
+
parent.appendChild(node);
|
| 199 |
+
node.addListener('click', editSet.register);
|
| 200 |
+
node.addListener('beforemove', editSet.groupBeforeMove);
|
| 201 |
+
node.addListener('beforeinsert', editSet.groupBeforeInsert);
|
| 202 |
+
node.addListener('beforeappend', editSet.groupBeforeInsert);
|
| 203 |
+
if( config[i].children ) {
|
| 204 |
+
for( j in config[i].children ) {
|
| 205 |
+
if(config[i].children[j].id) {
|
| 206 |
+
newNode = new Ext.tree.TreeNode(config[i].children[j]);
|
| 207 |
+
node.appendChild(newNode);
|
| 208 |
+
newNode.addListener('click', editSet.unregister);
|
| 209 |
+
}
|
| 210 |
+
}
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
}
|
| 214 |
+
}
|
| 215 |
+
|
| 216 |
+
var editSet = function() {
|
| 217 |
+
return {
|
| 218 |
+
register : function(node) {
|
| 219 |
+
editSet.currentNode = node;
|
| 220 |
+
},
|
| 221 |
+
|
| 222 |
+
unregister : function() {
|
| 223 |
+
editSet.currentNode = false;
|
| 224 |
+
},
|
| 225 |
+
|
| 226 |
+
submit : function() {
|
| 227 |
+
if( TreePanels.root.firstChild == TreePanels.root.lastChild ) {
|
| 228 |
+
return;
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
if( editSet.SystemNodesExists(editSet.currentNode) ) {
|
| 232 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This group contains system attributes. Please move system attributes to another group and try again.')) ?>');
|
| 233 |
+
return;
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
if (editSet.ConfigurableNodeExists(editSet.currentNode)) {
|
| 237 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This group contains attributes, used in configurable products. Please move these attributes to another group and try again.')) ?>');
|
| 238 |
+
return;
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
if( editSet.currentNode && editSet.currentNode.attributes.cls == 'folder' ) {
|
| 242 |
+
TreePanels.root.removeChild(editSet.currentNode);
|
| 243 |
+
for( i in editSet.currentNode.childNodes ) {
|
| 244 |
+
if( editSet.currentNode.childNodes[i].id ) {
|
| 245 |
+
child = editSet.currentNode.childNodes[i];
|
| 246 |
+
newNode = new Ext.tree.TreeNode(child.attributes);
|
| 247 |
+
|
| 248 |
+
if( child.attributes.is_user_defined == 1 ) {
|
| 249 |
+
TreePanels.root2.appendChild(newNode);
|
| 250 |
+
}
|
| 251 |
+
}
|
| 252 |
+
}
|
| 253 |
+
editSet.req.removeGroups[editSet.currentNode.id] = editSet.currentNode.id;
|
| 254 |
+
editSet.currentNode = false;
|
| 255 |
+
}
|
| 256 |
+
},
|
| 257 |
+
|
| 258 |
+
SystemNodesExists : function(currentNode) {
|
| 259 |
+
for( i in currentNode.childNodes ) {
|
| 260 |
+
if( currentNode.childNodes[i].id ) {
|
| 261 |
+
child = editSet.currentNode.childNodes[i];
|
| 262 |
+
if( child.attributes.is_user_defined != 1 ) {
|
| 263 |
+
return true;
|
| 264 |
+
}
|
| 265 |
+
}
|
| 266 |
+
}
|
| 267 |
+
},
|
| 268 |
+
|
| 269 |
+
ConfigurableNodeExists : function(currentNode) {
|
| 270 |
+
for (var i in currentNode.childNodes ) {
|
| 271 |
+
if (currentNode.childNodes[i].id) {
|
| 272 |
+
child = editSet.currentNode.childNodes[i];
|
| 273 |
+
if (child.attributes.is_configurable) {
|
| 274 |
+
return true;
|
| 275 |
+
}
|
| 276 |
+
}
|
| 277 |
+
}
|
| 278 |
+
return false;
|
| 279 |
+
},
|
| 280 |
+
|
| 281 |
+
rightAppend : function(node) {
|
| 282 |
+
return;
|
| 283 |
+
},
|
| 284 |
+
|
| 285 |
+
addGroup : function() {
|
| 286 |
+
var group_name = prompt("<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Please enter a new group name')) ?>","");
|
| 287 |
+
group_name = group_name.strip();
|
| 288 |
+
if( group_name == '' ) {
|
| 289 |
+
this.addGroup();
|
| 290 |
+
} else if( group_name != false && group_name != null && group_name != '' ) {
|
| 291 |
+
|
| 292 |
+
if (!editSet.validateGroupName(group_name, 0)) {
|
| 293 |
+
return;
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
var newNode = new Ext.tree.TreeNode({
|
| 297 |
+
text : group_name.escapeHTML(),
|
| 298 |
+
cls : 'folder',
|
| 299 |
+
allowDrop : true,
|
| 300 |
+
allowDrag : true
|
| 301 |
+
});
|
| 302 |
+
TreePanels.root.appendChild(newNode);
|
| 303 |
+
newNode.addListener('beforemove', editSet.groupBeforeMove);
|
| 304 |
+
newNode.addListener('beforeinsert', editSet.groupBeforeInsert);
|
| 305 |
+
newNode.addListener('beforeappend', editSet.groupBeforeInsert);
|
| 306 |
+
newNode.addListener('click', editSet.register);
|
| 307 |
+
}
|
| 308 |
+
},
|
| 309 |
+
|
| 310 |
+
editGroup : function(obj) {
|
| 311 |
+
if( obj.editNode.attributes.cls != 'folder' || !canEditGroups) {
|
| 312 |
+
TreePanels.ge.cancelEdit();
|
| 313 |
+
return false;
|
| 314 |
+
}
|
| 315 |
+
},
|
| 316 |
+
|
| 317 |
+
beforeRenameGroup : function(obj, after, before) {
|
| 318 |
+
return editSet.validateGroupName(after, obj.editNode.id);
|
| 319 |
+
},
|
| 320 |
+
|
| 321 |
+
validateGroupName : function(name, exceptNodeId) {
|
| 322 |
+
name = name.strip();
|
| 323 |
+
if (name === '') {
|
| 324 |
+
return false;
|
| 325 |
+
}
|
| 326 |
+
for (var i=0; i < TreePanels.root.childNodes.length; i++) {
|
| 327 |
+
if (TreePanels.root.childNodes[i].text.toLowerCase() == name.toLowerCase() && TreePanels.root.childNodes[i].id != exceptNodeId) {
|
| 328 |
+
errorText = "<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Attribute group with the \"/name/\" name already exists')) ?>";
|
| 329 |
+
alert(errorText.replace("/name/",name));
|
| 330 |
+
return false;
|
| 331 |
+
}
|
| 332 |
+
}
|
| 333 |
+
return true;
|
| 334 |
+
},
|
| 335 |
+
|
| 336 |
+
save : function() {
|
| 337 |
+
$('messages').update();
|
| 338 |
+
TreePanels.rebuildTrees();
|
| 339 |
+
var _validator = new Validation('set_prop_form', {onSubmit:false});
|
| 340 |
+
if( !_validator.validate() ) {
|
| 341 |
+
return;
|
| 342 |
+
}
|
| 343 |
+
editSet.req.attribute_set_name = $('attribute_set_name').value;
|
| 344 |
+
if (!editSet.req.form_key) {
|
| 345 |
+
editSet.req.form_key = FORM_KEY;
|
| 346 |
+
}
|
| 347 |
+
var req = {data : Ext.util.JSON.encode(editSet.req)};
|
| 348 |
+
var con = new Ext.lib.Ajax.request('POST', '<?php echo $this->getMoveUrl() ?>', {success:editSet.success,failure:editSet.failure}, req);
|
| 349 |
+
},
|
| 350 |
+
|
| 351 |
+
success : function(o) {
|
| 352 |
+
var response = Ext.util.JSON.decode(o.responseText);
|
| 353 |
+
if( response.error ) {
|
| 354 |
+
$('messages').update(response.message);
|
| 355 |
+
} else if( response.ajaxExpired && response.ajaxRedirect ){
|
| 356 |
+
setLocation(response.ajaxRedirect);
|
| 357 |
+
} else if( response.url ){
|
| 358 |
+
setLocation(response.url);
|
| 359 |
+
} else if( response.message ) {
|
| 360 |
+
$('messages').update(response.message);
|
| 361 |
+
}
|
| 362 |
+
},
|
| 363 |
+
|
| 364 |
+
failure : function(o) {
|
| 365 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Unable to complete this request.')) ?>');
|
| 366 |
+
},
|
| 367 |
+
|
| 368 |
+
groupBeforeMove : function(tree, nodeThis, oldParent, newParent) {
|
| 369 |
+
if( newParent.attributes.cls == 'folder' && nodeThis.attributes.cls == 'folder' ) {
|
| 370 |
+
return false;
|
| 371 |
+
}
|
| 372 |
+
|
| 373 |
+
if( newParent == TreePanels.root && nodeThis.attributes.cls != 'folder' ) {
|
| 374 |
+
return false;
|
| 375 |
+
}
|
| 376 |
+
},
|
| 377 |
+
|
| 378 |
+
rightBeforeAppend : function(tree, nodeThis, node, newParent) {
|
| 379 |
+
if (node.attributes.is_user_defined == 0) {
|
| 380 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('You cannot remove system attribute from this set.')) ?>');
|
| 381 |
+
return false;
|
| 382 |
+
}
|
| 383 |
+
else if (node.attributes.is_configurable == 1) {
|
| 384 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This attribute is used in configurable products. You cannot remove it from the attribute set.')) ?>');
|
| 385 |
+
return false;
|
| 386 |
+
}
|
| 387 |
+
else {
|
| 388 |
+
return true;
|
| 389 |
+
}
|
| 390 |
+
},
|
| 391 |
+
|
| 392 |
+
rightBeforeInsert : function(tree, nodeThis, node, newParent) {
|
| 393 |
+
var empty = TreePanels.root2.findChild('id', 'empty');
|
| 394 |
+
if( empty ) {
|
| 395 |
+
return false;
|
| 396 |
+
}
|
| 397 |
+
|
| 398 |
+
if (node.attributes.is_user_defined == 0) {
|
| 399 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('You cannot remove system attribute from this set.')) ?>');
|
| 400 |
+
return false;
|
| 401 |
+
}
|
| 402 |
+
else if (node.attributes.is_configurable == 1) {
|
| 403 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('This attribute is used in configurable products. You cannot remove it from the attribute set.')) ?>');
|
| 404 |
+
return false;
|
| 405 |
+
}
|
| 406 |
+
else {
|
| 407 |
+
return true;
|
| 408 |
+
}
|
| 409 |
+
},
|
| 410 |
+
|
| 411 |
+
groupBeforeInsert : function(tree, nodeThis, node, newParent) {
|
| 412 |
+
if( node.allowChildren ) {
|
| 413 |
+
return false;
|
| 414 |
+
}
|
| 415 |
+
},
|
| 416 |
+
|
| 417 |
+
rightAppend : function(tree, nodeThis, node) {
|
| 418 |
+
var empty = TreePanels.root2.findChild('id', 'empty');
|
| 419 |
+
if( empty && node.id != 'empty' ) {
|
| 420 |
+
TreePanels.root2.removeChild(empty);
|
| 421 |
+
}
|
| 422 |
+
},
|
| 423 |
+
|
| 424 |
+
rightRemove : function(tree, nodeThis, node) {
|
| 425 |
+
if( nodeThis.firstChild == null && node.id != 'empty' ) {
|
| 426 |
+
var newNode = new Ext.tree.TreeNode({
|
| 427 |
+
text : '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Empty')) ?>',
|
| 428 |
+
id : 'empty',
|
| 429 |
+
cls : 'folder',
|
| 430 |
+
is_user_defined : 1,
|
| 431 |
+
allowDrop : false,
|
| 432 |
+
allowDrag : false
|
| 433 |
+
});
|
| 434 |
+
TreePanels.root2.appendChild(newNode);
|
| 435 |
+
}
|
| 436 |
+
},
|
| 437 |
+
|
| 438 |
+
leftBeforeInsert : function(tree, nodeThis, node, newParent) {
|
| 439 |
+
if( node.allowChildren == false ) {
|
| 440 |
+
return false;
|
| 441 |
+
}
|
| 442 |
+
}
|
| 443 |
+
}
|
| 444 |
+
}();
|
| 445 |
+
|
| 446 |
+
function initVars() {
|
| 447 |
+
editSet.req = {};
|
| 448 |
+
editSet.req.attributes = false;
|
| 449 |
+
editSet.req.groups = new Array();
|
| 450 |
+
editSet.req.not_attributes = false;
|
| 451 |
+
editSet.req.attribute_set_name = false;
|
| 452 |
+
editSet.req.removeGroups = new Array();
|
| 453 |
+
}
|
| 454 |
+
|
| 455 |
+
initVars();
|
| 456 |
+
Ext.EventManager.onDocumentReady(TreePanels.init, TreePanels, true);
|
| 457 |
+
//]]>
|
| 458 |
+
</script>
|
| 459 |
+
</td>
|
| 460 |
+
</tr>
|
| 461 |
+
</table>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/attribute.phtml
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
?>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main/tree/group.phtml
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div id="tree-div1" style="width:320px;height:400px;margin-top:5px;overflow:auto"></div>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/add.phtml
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->_getHeader() ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 33 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 34 |
+
</td>
|
| 35 |
+
</tr>
|
| 36 |
+
</table>
|
| 37 |
+
</div>
|
| 38 |
+
<?php echo $this->getFormHtml() ?>
|
| 39 |
+
<script type="text/javascript">
|
| 40 |
+
var addSet = new varienForm('<?php echo $this->getFormId() ?>');
|
| 41 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/attribute/set/toolbar/main.phtml
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-product-attribute-sets"><?php echo $this->_getHeader() ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php echo $this->getNewButtonHtml() ?>
|
| 33 |
+
</td>
|
| 34 |
+
</tr>
|
| 35 |
+
</table>
|
| 36 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/composite/configure.phtml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div id="popup-window-mask" style="display:none;"></div>
|
| 28 |
+
<div id="product_composite_configure" class="product-configure-popup" style="display:none;">
|
| 29 |
+
<iframe name="product_composite_configure_iframe" id="product_composite_configure_iframe" src="#" style="width:0; height:0; border:0px solid #fff; position:absolute; top:-1000px; left:-1000px" onload="window.productConfigure && productConfigure.onLoadIFrame()"></iframe>
|
| 30 |
+
<form action="" method="post" id="product_composite_configure_form" enctype="multipart/form-data" onsubmit="productConfigure.onConfirmBtn(); return false;" target="product_composite_configure_iframe">
|
| 31 |
+
<div class="entry-edit">
|
| 32 |
+
<div class="entry-edit-head">
|
| 33 |
+
<h4 class="icon-head fieldset-legend"><?php echo Mage::helper('catalog')->__('Configure Product') ?></h4>
|
| 34 |
+
</div>
|
| 35 |
+
<div id="product_composite_configure_messages" style="display: none;" >
|
| 36 |
+
<ul class="messages"><li class="error-msg"></li></ul>
|
| 37 |
+
</div>
|
| 38 |
+
<div id="product_composite_configure_form_fields" class="content"></div>
|
| 39 |
+
<div id="product_composite_configure_form_additional" style="display:none;"></div>
|
| 40 |
+
<div id="product_composite_configure_form_confirmed" style="display:none;"></div>
|
| 41 |
+
<div class="buttons-set a-right">
|
| 42 |
+
<button type="button" class="scalable" onclick="productConfigure.onCancelBtn()" id="product_composite_configure_form_cancel"><span><span><span><?php echo Mage::helper('catalog')->__('Cancel') ?></span></span></span></button>
|
| 43 |
+
<button type="submit" class="scalable"><span><span><span><?php echo Mage::helper('catalog')->__('OK') ?></span></span></span></button>
|
| 44 |
+
</div>
|
| 45 |
+
</div>
|
| 46 |
+
<input type="hidden" name="as_js_varname" value="iFrameResponse" />
|
| 47 |
+
<input type="hidden" name="form_key" value="<?php echo $this->getFormKey() ?>" />
|
| 48 |
+
</form>
|
| 49 |
+
<div id="product_composite_configure_confirmed" style="display:none;"></div>
|
| 50 |
+
|
| 51 |
+
<script type="text/javascript">
|
| 52 |
+
var productCompositeConfigureForm = new varienForm('product_composite_configure_form');
|
| 53 |
+
</script>
|
| 54 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/configurable.phtml
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Configurable */ ?>
|
| 29 |
+
<?php $_product = $this->getProduct(); ?>
|
| 30 |
+
<?php $_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes()); ?>
|
| 31 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 32 |
+
<?php if (($_product->isSaleable() || $_skipSaleableCheck) && count($_attributes)):?>
|
| 33 |
+
<div id="catalog_product_composite_configure_fields_configurable" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
| 34 |
+
<h4><?php echo Mage::helper('catalog')->__('Associated Products') ?></h4>
|
| 35 |
+
<div class="product-options">
|
| 36 |
+
<dl>
|
| 37 |
+
<?php foreach($_attributes as $_attribute): ?>
|
| 38 |
+
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
|
| 39 |
+
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
|
| 40 |
+
<div class="input-box">
|
| 41 |
+
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
|
| 42 |
+
<option><?php echo Mage::helper('catalog')->__('Choose an Option...') ?></option>
|
| 43 |
+
</select>
|
| 44 |
+
</div>
|
| 45 |
+
</dd>
|
| 46 |
+
<?php endforeach; ?>
|
| 47 |
+
</dl>
|
| 48 |
+
</div>
|
| 49 |
+
</div>
|
| 50 |
+
<script type="text/javascript">
|
| 51 |
+
var config = <?php echo $this->getJsonConfig() ?>;
|
| 52 |
+
if (window.productConfigure) {
|
| 53 |
+
config.containerId = window.productConfigure.blockFormFields.id;
|
| 54 |
+
if (window.productConfigure.restorePhase) {
|
| 55 |
+
config.inputsInitialized = true;
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
ProductConfigure.spConfig = new Product.Config(config);
|
| 59 |
+
</script>
|
| 60 |
+
<?php endif;?>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/grouped.phtml
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Grouped */ ?>
|
| 29 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
| 30 |
+
<div id="catalog_product_composite_configure_fields_grouped" class="grid <?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
| 31 |
+
<h4><?php echo Mage::helper('catalog')->__('Associated Products') ?></h4>
|
| 32 |
+
<div class="product-options">
|
| 33 |
+
<?php $_product = $this->getProduct(); ?>
|
| 34 |
+
<?php $this->setPreconfiguredValue(); ?>
|
| 35 |
+
<?php $_associatedProducts = $this->getAssociatedProducts(); ?>
|
| 36 |
+
<?php $_hasAssociatedProducts = count($_associatedProducts) > 0; ?>
|
| 37 |
+
<?php if ((!$_product->isAvailable() && !$_skipSaleableCheck) || !$_hasAssociatedProducts): ?>
|
| 38 |
+
<p class="availability out-of-stock"><?php echo Mage::helper('catalog')->__('Availability:') ?> <span><?php echo Mage::helper('catalog')->__('Out of stock') ?></span></p>
|
| 39 |
+
<?php endif; ?>
|
| 40 |
+
<table class="data-table grouped-items-table" id="super-product-table">
|
| 41 |
+
<col />
|
| 42 |
+
<col />
|
| 43 |
+
<col />
|
| 44 |
+
<col />
|
| 45 |
+
<col width="1" />
|
| 46 |
+
<thead>
|
| 47 |
+
<tr "class="headings">
|
| 48 |
+
<th><?php echo Mage::helper('catalog')->__('ID') ?></th>
|
| 49 |
+
<th><?php echo Mage::helper('catalog')->__('SKU') ?></th>
|
| 50 |
+
<th><?php echo Mage::helper('catalog')->__('Product Name') ?></th>
|
| 51 |
+
<?php if ($this->getCanShowProductPrice($_product)): ?>
|
| 52 |
+
<th class="a-right"><?php echo Mage::helper('catalog')->__('Price') ?></th>
|
| 53 |
+
<?php endif; ?>
|
| 54 |
+
<?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>
|
| 55 |
+
<th class="a-center"><?php echo Mage::helper('catalog')->__('Qty') ?></th>
|
| 56 |
+
<?php endif; ?>
|
| 57 |
+
</tr>
|
| 58 |
+
</thead>
|
| 59 |
+
<tbody>
|
| 60 |
+
<?php if ($_hasAssociatedProducts): ?>
|
| 61 |
+
<?php $i = 0 ?>
|
| 62 |
+
<?php foreach ($_associatedProducts as $_item): ?>
|
| 63 |
+
<?php $_finalPriceInclTax = $this->helper('tax')->getPrice($_item, $_item->getFinalPrice(), true) ?>
|
| 64 |
+
<tr class="<?php echo (++$i % 2) ? 'even' : 'odd' ?>">
|
| 65 |
+
<td><?php echo $_item->getId() ?></td>
|
| 66 |
+
<td><?php echo $this->escapeHtml($_item->getSku()) ?></td>
|
| 67 |
+
<td><?php echo $this->escapeHtml($_item->getName()) ?></td>
|
| 68 |
+
<?php if ($this->getCanShowProductPrice($_product)): ?>
|
| 69 |
+
<td class="a-right">
|
| 70 |
+
<?php if ($this->getCanShowProductPrice($_item)): ?>
|
| 71 |
+
<?php echo $this->getPriceHtml($_item, true) ?>
|
| 72 |
+
<?php endif; ?>
|
| 73 |
+
</td>
|
| 74 |
+
<?php endif; ?>
|
| 75 |
+
<?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>
|
| 76 |
+
<td class="a-center">
|
| 77 |
+
<?php if ($_item->isSaleable() || $_skipSaleableCheck) : ?>
|
| 78 |
+
<input type="text" name="super_group[<?php echo $_item->getId() ?>]" id="super_group[<?php echo $_item->getId() ?>]" maxlength="12" value="<?php echo $_item->getQty()*1 ?>" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('catalog')->__('Qty')) ?>" class="input-text qty" />
|
| 79 |
+
<input type="hidden" value="1" price="<?php echo $this->getCurrencyPrice($_item->getPrice()) ?>" qtyId="super_group[<?php echo $_item->getId() ?>]" />
|
| 80 |
+
<?php else: ?>
|
| 81 |
+
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
|
| 82 |
+
<?php endif; ?>
|
| 83 |
+
</td>
|
| 84 |
+
<?php endif; ?>
|
| 85 |
+
</tr>
|
| 86 |
+
<?php endforeach; ?>
|
| 87 |
+
<?php else: ?>
|
| 88 |
+
<tr>
|
| 89 |
+
<td colspan="<?php if ($_product->isSaleable() || $_skipSaleableCheck): ?>4<?php else : ?>3<?php endif; ?>"><?php echo Mage::helper('catalog')->__('No options of this product are available.') ?></td>
|
| 90 |
+
</tr>
|
| 91 |
+
<?php endif; ?>
|
| 92 |
+
</tbody>
|
| 93 |
+
</table>
|
| 94 |
+
</div>
|
| 95 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options.phtml
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Options */ ?>
|
| 29 |
+
<?php $options = Mage::helper('core')->decorateArray($this->getOptions()); ?>
|
| 30 |
+
<?php if (count($options)): ?>
|
| 31 |
+
|
| 32 |
+
<?php echo $this->getChildHtml('options_js') ?>
|
| 33 |
+
|
| 34 |
+
<div id="product_composite_configure_fields_options" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
| 35 |
+
<h4><?php echo Mage::helper('catalog')->__('Custom Options') ?></h4>
|
| 36 |
+
<div class="product-options">
|
| 37 |
+
<dl>
|
| 38 |
+
<?php foreach($options as $option): ?>
|
| 39 |
+
<?php echo $this->getOptionHtml($option); ?>
|
| 40 |
+
<?php endforeach;?>
|
| 41 |
+
</dl>
|
| 42 |
+
</div>
|
| 43 |
+
</div>
|
| 44 |
+
|
| 45 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/js.phtml
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 29 |
+
//<![CDATA[
|
| 30 |
+
validateOptionsCallback = function (elmId, result){
|
| 31 |
+
var container = $(elmId).up('ul.options-list');
|
| 32 |
+
if (!container) {
|
| 33 |
+
return;
|
| 34 |
+
}
|
| 35 |
+
if (result == 'failed') {
|
| 36 |
+
container.removeClassName('validation-passed');
|
| 37 |
+
container.addClassName('validation-failed');
|
| 38 |
+
} else {
|
| 39 |
+
container.removeClassName('validation-failed');
|
| 40 |
+
container.addClassName('validation-passed');
|
| 41 |
+
}
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
productConfigure.opConfig = {};
|
| 45 |
+
|
| 46 |
+
var DateOption = Class.create({
|
| 47 |
+
|
| 48 |
+
getDaysInMonth: function(month, year)
|
| 49 |
+
{
|
| 50 |
+
var curDate = new Date();
|
| 51 |
+
if (!month) {
|
| 52 |
+
month = curDate.getMonth();
|
| 53 |
+
}
|
| 54 |
+
if (2 == month && !year) { // leap year assumption for unknown year
|
| 55 |
+
return 29;
|
| 56 |
+
}
|
| 57 |
+
if (!year) {
|
| 58 |
+
year = curDate.getFullYear();
|
| 59 |
+
}
|
| 60 |
+
return 32 - new Date(year, month - 1, 32).getDate();
|
| 61 |
+
},
|
| 62 |
+
|
| 63 |
+
reloadMonth: function(event)
|
| 64 |
+
{
|
| 65 |
+
var selectEl = event.findElement();
|
| 66 |
+
var idParts = selectEl.id.split("_");
|
| 67 |
+
if (idParts.length != 3) {
|
| 68 |
+
return false;
|
| 69 |
+
}
|
| 70 |
+
var optionIdPrefix = idParts[0] + "_" + idParts[1];
|
| 71 |
+
var month = parseInt($(optionIdPrefix + "_month").value);
|
| 72 |
+
var year = parseInt($(optionIdPrefix + "_year").value);
|
| 73 |
+
var dayEl = $(optionIdPrefix + "_day");
|
| 74 |
+
|
| 75 |
+
var days = this.getDaysInMonth(month, year);
|
| 76 |
+
|
| 77 |
+
//remove days
|
| 78 |
+
for (var i = dayEl.options.length - 1; i >= 0; i--) {
|
| 79 |
+
if (dayEl.options[i].value > days) {
|
| 80 |
+
dayEl.remove(dayEl.options[i].index);
|
| 81 |
+
}
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
// add days
|
| 85 |
+
var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);
|
| 86 |
+
for (i = lastDay + 1; i <= days; i++) {
|
| 87 |
+
this.addOption(dayEl, i, i);
|
| 88 |
+
}
|
| 89 |
+
},
|
| 90 |
+
|
| 91 |
+
addOption: function(select, text, value)
|
| 92 |
+
{
|
| 93 |
+
var option = document.createElement('OPTION');
|
| 94 |
+
option.value = value;
|
| 95 |
+
option.text = text;
|
| 96 |
+
|
| 97 |
+
if (select.options.add) {
|
| 98 |
+
select.options.add(option);
|
| 99 |
+
} else {
|
| 100 |
+
select.appendChild(option);
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
});
|
| 104 |
+
productConfigure.opConfig.dateOption = new DateOption();
|
| 105 |
+
//]]>
|
| 106 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/date.phtml
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Date */ ?>
|
| 28 |
+
<?php $_option = $this->getOption(); ?>
|
| 29 |
+
<?php $_optionId = $_option->getId(); ?>
|
| 30 |
+
<dt class="label"><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
|
| 31 |
+
<?php echo $this->getFormatedPrice() ?></dt>
|
| 32 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 33 |
+
|
| 34 |
+
<?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE_TIME
|
| 35 |
+
|| $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE): ?>
|
| 36 |
+
|
| 37 |
+
<?php echo $this->getDateHtml() ?>
|
| 38 |
+
|
| 39 |
+
<?php if (!$this->useCalendar()): ?>
|
| 40 |
+
<script type="text/javascript">
|
| 41 |
+
//<![CDATA[
|
| 42 |
+
var dateOption = productConfigure.opConfig.dateOption;
|
| 43 |
+
Event.observe('options_<?php echo $_optionId ?>_month', 'change', dateOption.reloadMonth.bind(dateOption));
|
| 44 |
+
Event.observe('options_<?php echo $_optionId ?>_year', 'change', dateOption.reloadMonth.bind(dateOption));
|
| 45 |
+
//]]>
|
| 46 |
+
</script>
|
| 47 |
+
<?php endif; ?>
|
| 48 |
+
|
| 49 |
+
<?php endif; ?>
|
| 50 |
+
|
| 51 |
+
<?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_DATE_TIME
|
| 52 |
+
|| $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_TIME): ?>
|
| 53 |
+
<span class="time-picker"><?php echo $this->getTimeHtml() ?></span>
|
| 54 |
+
<?php endif; ?>
|
| 55 |
+
|
| 56 |
+
<input type="hidden" name="validate_datetime_<?php echo $_optionId ?>" class="validate-datetime-<?php echo $_optionId ?>" value="" />
|
| 57 |
+
<script type="text/javascript">
|
| 58 |
+
//<![CDATA[
|
| 59 |
+
<?php if ($_option->getIsRequire()): ?>
|
| 60 |
+
Validation.addAllThese(
|
| 61 |
+
[
|
| 62 |
+
['validate-datetime-<?php echo $_optionId ?>', '<?php echo $this->jsQuoteEscape( Mage::helper('catalog')->__('This is a required option') )?>', function(v) {
|
| 63 |
+
var dateTimeParts = $$('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
|
| 64 |
+
for (var i=0; i < dateTimeParts.length; i++) {
|
| 65 |
+
if (dateTimeParts[i].value == "") return false;
|
| 66 |
+
}
|
| 67 |
+
return true;
|
| 68 |
+
}]
|
| 69 |
+
]
|
| 70 |
+
);
|
| 71 |
+
<?php else: ?>
|
| 72 |
+
Validation.add(
|
| 73 |
+
'validate-datetime-<?php echo $_optionId ?>',
|
| 74 |
+
'<?php echo $this->jsQuoteEscape( Mage::helper('catalog')->__('Field is not complete') )?>',
|
| 75 |
+
function(v) {
|
| 76 |
+
var dateTimeParts = $$('.datetime-picker[id^="options_<?php echo $_optionId ?>"]');
|
| 77 |
+
var hasWithValue = false, hasWithNoValue = false;
|
| 78 |
+
var pattern = /day_part$/i;
|
| 79 |
+
for (var i=0; i < dateTimeParts.length; i++) {
|
| 80 |
+
if (! pattern.test(dateTimeParts[i].id)) {
|
| 81 |
+
if (dateTimeParts[i].value === "") {
|
| 82 |
+
hasWithValue = true;
|
| 83 |
+
} else {
|
| 84 |
+
hasWithNoValue = true;
|
| 85 |
+
}
|
| 86 |
+
}
|
| 87 |
+
}
|
| 88 |
+
return hasWithValue ^ hasWithNoValue;
|
| 89 |
+
}
|
| 90 |
+
);
|
| 91 |
+
<?php endif; ?>
|
| 92 |
+
//]]>
|
| 93 |
+
</script>
|
| 94 |
+
</dd>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/default.phtml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Options */ ?>
|
| 28 |
+
<?php $option = $this->getOption(); ?>
|
| 29 |
+
<dt>
|
| 30 |
+
<label><?php echo $this->escapeHtml($option->getTitle()) ?></label>
|
| 31 |
+
</dt>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php $_option = $this->getOption(); ?>
|
| 28 |
+
<?php $_fileInfo = $this->getFileInfo(); ?>
|
| 29 |
+
<?php $_fileExists = $_fileInfo->hasData() ? true : false; ?>
|
| 30 |
+
<?php $_fileName = 'options_' . $_option->getId() . '_file'; ?>
|
| 31 |
+
<?php $_fieldNameAction = $_fileName . '_action'; ?>
|
| 32 |
+
<?php $_fieldValueAction = $_fileExists ? 'save_old' : 'save_new'; ?>
|
| 33 |
+
<?php $_fileNamed = $_fileName . '_name'; ?>
|
| 34 |
+
<?php $_rand = rand(); ?>
|
| 35 |
+
|
| 36 |
+
<script type="text/javascript">
|
| 37 |
+
//<![CDATA[
|
| 38 |
+
opFile<?php echo $_rand; ?> = {
|
| 39 |
+
initializeFile: function(inputBox) {
|
| 40 |
+
this.inputFile = inputBox.select('input[name="<?php echo $_fileName; ?>"]')[0];
|
| 41 |
+
this.inputFileAction = inputBox.select('input[name="<?php echo $_fieldNameAction; ?>"]')[0];
|
| 42 |
+
this.fileNameBox = inputBox.up('dd').select('.<?php echo $_fileNamed ?>')[0];
|
| 43 |
+
},
|
| 44 |
+
|
| 45 |
+
toggleFileChange: function(inputBox) {
|
| 46 |
+
this.initializeFile(inputBox);
|
| 47 |
+
inputBox.toggle();
|
| 48 |
+
this.fileChangeFlag = this.fileChangeFlag ? false : true;
|
| 49 |
+
if (!this.fileDeleteFlag) {
|
| 50 |
+
if (this.fileChangeFlag) {
|
| 51 |
+
this.inputFileAction.value = 'save_new';
|
| 52 |
+
this.inputFile.disabled = false;
|
| 53 |
+
} else {
|
| 54 |
+
this.inputFileAction.value = 'save_old';
|
| 55 |
+
this.inputFile.disabled = true;
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
},
|
| 59 |
+
|
| 60 |
+
toggleFileDelete: function(fileDeleteFlag, inputBox) {
|
| 61 |
+
this.initializeFile(inputBox);
|
| 62 |
+
this.fileDeleteFlag = fileDeleteFlag.checked ? true : false;
|
| 63 |
+
if (this.fileDeleteFlag) {
|
| 64 |
+
this.inputFileAction.value = '';
|
| 65 |
+
this.inputFile.disabled = true;
|
| 66 |
+
this.fileNameBox.setStyle({'text-decoration': 'line-through'});
|
| 67 |
+
} else {
|
| 68 |
+
this.inputFileAction.value = this.fileChangeFlag ? 'save_new' : 'save_old';
|
| 69 |
+
this.inputFile.disabled = (this.fileChangeFlag == 'save_old');
|
| 70 |
+
this.fileNameBox.setStyle({'text-decoration': 'none'});
|
| 71 |
+
}
|
| 72 |
+
}
|
| 73 |
+
};
|
| 74 |
+
//]]>
|
| 75 |
+
</script>
|
| 76 |
+
|
| 77 |
+
<dt><label <?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
|
| 78 |
+
<?php echo $this->getFormatedPrice() ?></dt>
|
| 79 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 80 |
+
<?php if ($_fileExists): ?>
|
| 81 |
+
<span class="<?php echo $_fileNamed ?>"><?php echo $_fileInfo->getTitle(); ?></span>
|
| 82 |
+
<a href="javascript:void(0)" class="label" onclick="opFile<?php echo $_rand; ?>.toggleFileChange($(this).next('.input-box'))">
|
| 83 |
+
<?php echo Mage::helper('catalog')->__('Change') ?>
|
| 84 |
+
</a>
|
| 85 |
+
<?php if (!$_option->getIsRequire()): ?>
|
| 86 |
+
<input type="checkbox" onclick="opFile<?php echo $_rand; ?>.toggleFileDelete($(this), $(this).next('.input-box'))" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>"/>
|
| 87 |
+
<span class="label"><?php echo Mage::helper('catalog')->__('Delete') ?></span>
|
| 88 |
+
<?php endif; ?>
|
| 89 |
+
<?php endif; ?>
|
| 90 |
+
<div class="input-box" <?php echo $_fileExists ? 'style="display:none"' : '' ?>>
|
| 91 |
+
<input type="file" name="<?php echo $_fileName; ?>" class="product-custom-option<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?>" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>" <?php echo $_fileExists ? 'disabled="disabled"' : '' ?>/>
|
| 92 |
+
<input type="hidden" name="<?php echo $_fieldNameAction; ?>" value="<?php echo $_fieldValueAction; ?>" />
|
| 93 |
+
<?php if ($_option->getFileExtension()): ?>
|
| 94 |
+
<p class="no-margin"><?php echo Mage::helper('catalog')->__('Allowed file extensions to upload')?>: <strong><?php echo $_option->getFileExtension() ?></strong></p>
|
| 95 |
+
<?php endif; ?>
|
| 96 |
+
<?php if ($_option->getImageSizeX() > 0): ?>
|
| 97 |
+
<p class="no-margin"><?php echo Mage::helper('catalog')->__('Maximum image width')?>: <strong><?php echo $_option->getImageSizeX() ?> <?php echo Mage::helper('catalog')->__('px.')?></strong></p>
|
| 98 |
+
<?php endif; ?>
|
| 99 |
+
<?php if ($_option->getImageSizeY() > 0): ?>
|
| 100 |
+
<p class="no-margin"><?php echo Mage::helper('catalog')->__('Maximum image height')?>: <strong><?php echo $_option->getImageSizeY() ?> <?php echo Mage::helper('catalog')->__('px.')?></strong></p>
|
| 101 |
+
<?php endif; ?>
|
| 102 |
+
</div>
|
| 103 |
+
</dd>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/select.phtml
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Select */ ?>
|
| 28 |
+
<?php $_option = $this->getOption(); ?>
|
| 29 |
+
<dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label></dt>
|
| 30 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 31 |
+
<div class="input-box">
|
| 32 |
+
<?php echo $this->getValuesHtml() ?>
|
| 33 |
+
<?php if ($_option->getIsRequire()): ?>
|
| 34 |
+
<?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_RADIO || $_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_CHECKBOX): ?>
|
| 35 |
+
<span id="options-<?php echo $_option->getId() ?>-container"></span>
|
| 36 |
+
<?php endif; ?>
|
| 37 |
+
<?php endif;?>
|
| 38 |
+
</div>
|
| 39 |
+
</dd>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/text.phtml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Catalog_Block_Product_View_Options_Type_Text */ ?>
|
| 28 |
+
<?php $_option = $this->getOption(); ?>
|
| 29 |
+
<dt><label<?php if ($_option->getIsRequire()) echo ' class="required"' ?>><?php if ($_option->getIsRequire()) echo '<em>*</em>' ?><?php echo $this->escapeHtml($_option->getTitle()) ?></label>
|
| 30 |
+
<?php echo $this->getFormatedPrice() ?></dt>
|
| 31 |
+
<dd<?php if ($_option->decoratedIsLast){?> class="last"<?php }?>>
|
| 32 |
+
<div class="input-box">
|
| 33 |
+
<?php if ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_FIELD): ?>
|
| 34 |
+
<input type="text" id="options_<?php echo $_option->getId() ?>_text" class="input-text<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?> <?php echo $_option->getMaxCharacters() ? ' validate-length maximum-length-' . $_option->getMaxCharacters() : '' ?> product-custom-option" name="options[<?php echo $_option->getId() ?>]" value="<?php echo $this->escapeHtml($this->getDefaultValue()) ?>" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>" />
|
| 35 |
+
<?php elseif ($_option->getType() == Mage_Catalog_Model_Product_Option::OPTION_TYPE_AREA): ?>
|
| 36 |
+
<textarea id="options_<?php echo $_option->getId() ?>_text" class="<?php echo $_option->getIsRequire() ? ' required-entry' : '' ?> <?php echo $_option->getMaxCharacters() ? ' validate-length maximum-length-' . $_option->getMaxCharacters() : '' ?> product-custom-option" name="options[<?php echo $_option->getId() ?>]" rows="5" cols="25" price="<?php echo $this->getCurrencyPrice($_option->getPrice(true)) ?>"><?php echo $this->escapeHtml($this->getDefaultValue()) ?></textarea>
|
| 37 |
+
<?php endif; ?>
|
| 38 |
+
<?php if ($_option->getMaxCharacters()): ?>
|
| 39 |
+
<p class="note"><?php echo Mage::helper('catalog')->__('Maximum number of characters:')?> <strong><?php echo $_option->getMaxCharacters() ?></strong></p>
|
| 40 |
+
<?php endif; ?>
|
| 41 |
+
</div>
|
| 42 |
+
</dd>
|
app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/qty.phtml
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 /* @var $this Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Qty */ ?>
|
| 29 |
+
|
| 30 |
+
<div id="product_composite_configure_fields_qty" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
| 31 |
+
<div class="product-options">
|
| 32 |
+
<dl>
|
| 33 |
+
<dt><label><?php echo Mage::helper('catalog')->__('Quantity') ?></label> <input id="product_composite_configure_input_qty" class="input-text" type="text" name="qty" value="<?php echo $this->getQtyValue() * 1 ?>"></dt>
|
| 34 |
+
</dl>
|
| 35 |
+
</div>
|
| 36 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/created.phtml
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
var added = false;
|
| 29 |
+
function addProduct(closeAfter) {
|
| 30 |
+
if(window.opener!=null && !added) {
|
| 31 |
+
<?php if($this->isEdit()): ?>
|
| 32 |
+
window.opener.superProduct.updateProduct(<?php echo $this->getProductId() ?>, <?php echo $this->getAttributesJson(); ?>);
|
| 33 |
+
<?php else: ?>
|
| 34 |
+
window.opener.superProduct.addNewProduct(<?php echo $this->getProductId() ?>, <?php echo $this->getAttributesJson(); ?>);
|
| 35 |
+
window.opener.superProduct.showNoticeMessage();
|
| 36 |
+
<?php endif; ?>
|
| 37 |
+
added = true;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
if(closeAfter)
|
| 41 |
+
{
|
| 42 |
+
closeWindow();
|
| 43 |
+
}
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
function closeWindow()
|
| 47 |
+
{
|
| 48 |
+
if (window.opener) {
|
| 49 |
+
window.opener.focus();
|
| 50 |
+
}
|
| 51 |
+
window.close();
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
addProduct(false);
|
| 55 |
+
setTimeout(closeWindow, 3000);
|
| 56 |
+
</script>
|
| 57 |
+
<div class="a-center">
|
| 58 |
+
<?php echo $this->getCloseButtonHtml() ?>
|
| 59 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/edit.phtml
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Template for Mage_Adminhtml_Block_Catalog_Product_Edit
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
<div class="content-header">
|
| 36 |
+
<h3 class="icon-head head-products"><?php echo $this->getHeader() ?></h3>
|
| 37 |
+
<p class="content-buttons form-buttons"><?php echo $this->getBackButtonHtml() ?>
|
| 38 |
+
<?php echo $this->getCancelButtonHtml() ?>
|
| 39 |
+
<?php if($this->getProductId()): ?>
|
| 40 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
| 41 |
+
<?php if($this->getProductSetId() && $this->getIsConfigured()): ?>
|
| 42 |
+
<?php echo $this->getDuplicateButtonHtml() ?>
|
| 43 |
+
<?php endif; ?>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
<?php if($this->getProductSetId() && $this->getIsConfigured()): ?>
|
| 46 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 47 |
+
<?php echo $this->getSaveAndEditButtonHtml() ?>
|
| 48 |
+
<?php endif; ?>
|
| 49 |
+
</p>
|
| 50 |
+
</div>
|
| 51 |
+
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="product_edit_form" enctype="multipart/form-data">
|
| 52 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 53 |
+
<div style="display:none"></div>
|
| 54 |
+
</form>
|
| 55 |
+
<script type="text/javascript">
|
| 56 |
+
//<![CDATA[
|
| 57 |
+
var productTemplateSyntax = /(^|.|\r|\n)({{(\w+)}})/;
|
| 58 |
+
var productForm = new varienForm('product_edit_form', '<?php echo $this->getValidationUrl() ?>');
|
| 59 |
+
productForm._processValidationResult = function(transport) {
|
| 60 |
+
var response = transport.responseText.evalJSON();
|
| 61 |
+
if (response.error){
|
| 62 |
+
if (response.attribute && $(response.attribute)) {
|
| 63 |
+
$(response.attribute).setHasError(true, productForm);
|
| 64 |
+
Validation.ajaxError($(response.attribute), response.message);
|
| 65 |
+
if (!Prototype.Browser.IE){
|
| 66 |
+
$(response.attribute).focus();
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
else if ($('messages')) {
|
| 70 |
+
$('messages').innerHTML = '<ul class="messages"><li class="error-msg"><ul><li>' + response.message + '</li></ul></li></ul>';
|
| 71 |
+
}
|
| 72 |
+
}
|
| 73 |
+
else{
|
| 74 |
+
productForm._submit();
|
| 75 |
+
}
|
| 76 |
+
};
|
| 77 |
+
function saveAndContinueEdit(urlTemplate) {
|
| 78 |
+
var template = new Template(urlTemplate, productTemplateSyntax);
|
| 79 |
+
var url = template.evaluate({tab_id:product_info_tabsJsTabs.activeTab.id});
|
| 80 |
+
productForm.submit(url);
|
| 81 |
+
}
|
| 82 |
+
function setSettings(urlTemplate, setElement, typeElement) {
|
| 83 |
+
var template = new Template(urlTemplate, productTemplateSyntax);
|
| 84 |
+
setLocation(template.evaluate({attribute_set:$F(setElement),type:$F(typeElement)}));
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
function setSuperSettings(urlTemplate, attributesClass, validateField) {
|
| 88 |
+
var attributesFields = $$('.' + attributesClass);
|
| 89 |
+
var attributes = Form.serializeElements(attributesFields, true).attribute;
|
| 90 |
+
if(typeof attributes == 'string') {
|
| 91 |
+
attributes = [attributes];
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
if(!attributes) {
|
| 95 |
+
$(validateField).value = 'no-attributes';
|
| 96 |
+
} else {
|
| 97 |
+
$(validateField).value = 'has-attributes';
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
if (productForm.validator.validate()) {
|
| 101 |
+
var template = new Template(urlTemplate, productTemplateSyntax);
|
| 102 |
+
var url = template.evaluate({
|
| 103 |
+
attributes: encode_base64(attributes.join(',')).replace(new RegExp('/','g'),'%2F').replace(new RegExp('=','g'),'%3D')
|
| 104 |
+
});
|
| 105 |
+
setLocation(url);
|
| 106 |
+
}
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
function checkMaxLength(Object, MaxLen)
|
| 110 |
+
{
|
| 111 |
+
if (Object.value.length > MaxLen-1) {
|
| 112 |
+
Object.value = Object.value.substr(0, MaxLen);
|
| 113 |
+
}
|
| 114 |
+
return 1;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
Event.observe(window, 'load', function() {
|
| 118 |
+
var objName = '<?php echo $this->getSelectedTabId() ?>';
|
| 119 |
+
if (objName) {
|
| 120 |
+
obj = $(objName);
|
| 121 |
+
//IE fix (bubbling event model)
|
| 122 |
+
product_info_tabsJsTabs.setSkipDisplayFirstTab();
|
| 123 |
+
product_info_tabsJsTabs.showTabContent(obj);
|
| 124 |
+
}
|
| 125 |
+
Product.AttributesBridge.setTabsObject(product_info_tabsJsTabs);
|
| 126 |
+
});
|
| 127 |
+
|
| 128 |
+
Validation.addAllThese([
|
| 129 |
+
['validate-super-product-attributes', '<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Please select one or more attributes.')) ?>', function(v) {
|
| 130 |
+
return (v != "no-attributes");
|
| 131 |
+
}]]);
|
| 132 |
+
//]]>
|
| 133 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/action/attribute.phtml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td><h3><?php echo Mage::helper('catalog')->__('Update attributes') ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php echo $this->getBackButtonHtml() ?>
|
| 33 |
+
<?php echo $this->getCancelButtonHtml() ?>
|
| 34 |
+
<?php echo $this->getSaveButtonHtml() ?>
|
| 35 |
+
</td>
|
| 36 |
+
</tr>
|
| 37 |
+
</table>
|
| 38 |
+
</div>
|
| 39 |
+
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="attributes_edit_form" enctype="multipart/form-data">
|
| 40 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 41 |
+
</form>
|
| 42 |
+
<script type="text/javascript">
|
| 43 |
+
var attributesForm = new varienForm('attributes_edit_form', '<?php echo $this->getValidationUrl() ?>');
|
| 44 |
+
attributesForm._processValidationResult = function(transport) {
|
| 45 |
+
var response = transport.responseText.evalJSON();
|
| 46 |
+
|
| 47 |
+
if (response.error){
|
| 48 |
+
if (response.attribute && $(response.attribute)) {
|
| 49 |
+
$(response.attribute).setHasError(true, attributesForm);
|
| 50 |
+
Validation.ajaxError($(response.attribute), response.message);
|
| 51 |
+
if (!Prototype.Browser.IE){
|
| 52 |
+
$(response.attribute).focus();
|
| 53 |
+
}
|
| 54 |
+
} else if ($('messages')) {
|
| 55 |
+
$('messages').innerHTML = '<ul class="messages"><li class="error-msg"><ul><li>' + response.message + '</li></ul></li></ul>';
|
| 56 |
+
}
|
| 57 |
+
} else {
|
| 58 |
+
attributesForm._submit();
|
| 59 |
+
}
|
| 60 |
+
};
|
| 61 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/action/inventory.phtml
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
function toggleValueElementsWithCheckbox(checkbox) {
|
| 30 |
+
var td = $(checkbox.parentNode);
|
| 31 |
+
var checkboxes = td.getElementsBySelector('input[type="checkbox"]');
|
| 32 |
+
var inputs = td.getElementsBySelector('input[type!="checkbox"]', 'select', 'textarea');
|
| 33 |
+
if (checkboxes.size()>1) {
|
| 34 |
+
inputs.each(function(input){
|
| 35 |
+
input.disabled = (!checkbox.checked || checkboxes[0].checked);
|
| 36 |
+
checkboxes[0].disabled = !checkbox.checked;
|
| 37 |
+
});
|
| 38 |
+
} else {
|
| 39 |
+
inputs.each(function(input){
|
| 40 |
+
input.disabled = !checkbox.checked;
|
| 41 |
+
});
|
| 42 |
+
}
|
| 43 |
+
}
|
| 44 |
+
//]]>
|
| 45 |
+
</script>
|
| 46 |
+
|
| 47 |
+
<div class="entry-edit">
|
| 48 |
+
<div class="entry-edit-head">
|
| 49 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Inventory') ?></h4>
|
| 50 |
+
</div>
|
| 51 |
+
<fieldset>
|
| 52 |
+
<legend><?php echo Mage::helper('catalog')->__('Inventory') ?></legend>
|
| 53 |
+
<table cellspacing="0" class="form-list" id="table_cataloginventory">
|
| 54 |
+
<tr>
|
| 55 |
+
<td class="label"><label for="inventory_manage_stock"><?php echo Mage::helper('catalog')->__('Manage Stock') ?></label></td>
|
| 56 |
+
<td class="value"><select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[manage_stock]" class="select" disabled="disabled">
|
| 57 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 58 |
+
<option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 59 |
+
</select>
|
| 60 |
+
<input name="<?php echo $this->getFieldSuffix() ?>[use_config_manage_stock]" type="checkbox" id="inventory_use_config_manage_stock" onclick="toggleValueElements(this, this.parentNode, $('inventory_manage_stock_checkbox'));" value="1" checked="checked" disabled="disabled" />
|
| 61 |
+
<label for="inventory_use_config_manage_stock" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 62 |
+
<input type="checkbox" id="inventory_manage_stock_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 63 |
+
<label for="inventory_manage_stock_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 64 |
+
</td>
|
| 65 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 66 |
+
</tr>
|
| 67 |
+
<tr>
|
| 68 |
+
<td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
|
| 69 |
+
<td class="value">
|
| 70 |
+
<input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[qty]" value="<?php echo $this->getDefaultConfigValue('qty')*1 ?>" disabled="disabled" />
|
| 71 |
+
<input type="checkbox" id="inventory_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 72 |
+
<label for="inventory_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 73 |
+
</td>
|
| 74 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 75 |
+
</tr>
|
| 76 |
+
<tr>
|
| 77 |
+
<td class="label"><label for="inventory_min_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty for Item\'s Status to be Out of Stock') ?></label></td>
|
| 78 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[min_qty]" value="<?php echo $this->getDefaultConfigValue('min_qty')*1 ?>" disabled="disabled" />
|
| 79 |
+
<input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_qty_checkbox'));" checked="checked" disabled="disabled" />
|
| 80 |
+
<label for="inventory_use_config_min_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 81 |
+
<input type="checkbox" id="inventory_min_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 82 |
+
<label for="inventory_min_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 83 |
+
</td>
|
| 84 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 85 |
+
</tr>
|
| 86 |
+
<tr>
|
| 87 |
+
<td class="label"><label for="inventory_min_sale_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty Allowed in Shopping Cart') ?></label></td>
|
| 88 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[min_sale_qty]" value="<?php echo $this->getDefaultConfigValue('min_sale_qty')*1 ?>" disabled="disabled" />
|
| 89 |
+
<input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_min_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_min_sale_qty_checkbox'));" checked="checked" disabled="disabled" />
|
| 90 |
+
<label for="inventory_use_config_min_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 91 |
+
<input type="checkbox" id="inventory_min_sale_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 92 |
+
<label for="inventory_min_sale_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 93 |
+
</td>
|
| 94 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 95 |
+
</tr>
|
| 96 |
+
<tr>
|
| 97 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Maximum Qty Allowed in Shopping Cart') ?></label></td>
|
| 98 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[max_sale_qty]" value="<?php echo $this->getDefaultConfigValue('max_sale_qty')*1 ?>" disabled="disabled" />
|
| 99 |
+
<input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_max_sale_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_max_sale_checkbox'));" checked="checked" disabled="disabled" />
|
| 100 |
+
<label for="inventory_use_config_max_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 101 |
+
<input type="checkbox" id="inventory_max_sale_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 102 |
+
<label for="inventory_max_sale_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 103 |
+
</td>
|
| 104 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 105 |
+
</tr>
|
| 106 |
+
<tr>
|
| 107 |
+
<td class="label"><label for="inventory_is_qty_decimal"><?php echo Mage::helper('catalog')->__('Qty Uses Decimals') ?></label></td>
|
| 108 |
+
<td class="value"><select id="inventory_is_qty_decimal" name="<?php echo $this->getFieldSuffix() ?>[is_qty_decimal]" class="select" disabled="disabled">
|
| 109 |
+
<option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 110 |
+
<option value="1"<?php if ($this->getDefaultConfigValue('is_qty_decimal')==1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 111 |
+
</select>
|
| 112 |
+
<input type="checkbox" id="inventory_is_qty_decimal_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 113 |
+
<label for="inventory_is_qty_decimal_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 114 |
+
</td>
|
| 115 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 116 |
+
</tr>
|
| 117 |
+
<tr>
|
| 118 |
+
<td class="label"><label for="inventory_backorders"><?php echo Mage::helper('catalog')->__('Backorders') ?></label></td>
|
| 119 |
+
<td class="value"><select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[backorders]" class="select" disabled="disabled">
|
| 120 |
+
<?php foreach ($this->getBackordersOption() as $option): ?>
|
| 121 |
+
<?php $_selected = ($option['value'] == $this->getDefaultConfigValue('backorders')) ? ' selected="selected"' : '' ?>
|
| 122 |
+
<option value="<?php echo $option['value'] ?>"<?php echo $_selected ?>><?php echo $option['label'] ?></option>
|
| 123 |
+
<?php endforeach; ?>
|
| 124 |
+
</select>
|
| 125 |
+
<input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[use_config_backorders]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_backorders_checkbox'));" checked="checked" disabled="disabled" />
|
| 126 |
+
<label for="inventory_use_config_backorders" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 127 |
+
<input type="checkbox" id="inventory_backorders_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 128 |
+
<label for="inventory_backorders_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 129 |
+
</td>
|
| 130 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 131 |
+
</tr>
|
| 132 |
+
<tr>
|
| 133 |
+
<td class="label"><label for="inventory_notify_stock_qty"><?php echo Mage::helper('catalog')->__('Notify for Quantity Below') ?></label></td>
|
| 134 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[notify_stock_qty]" value="<?php echo $this->getDefaultConfigValue('notify_stock_qty')*1 ?>" disabled="disabled" />
|
| 135 |
+
<input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[use_config_notify_stock_qty]" value="1" onclick="toggleValueElements(this, this.parentNode, $('inventory_notify_stock_qty_checkbox'));" checked="checked" disabled="disabled" />
|
| 136 |
+
<label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 137 |
+
<input type="checkbox" id="inventory_notify_stock_qty_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 138 |
+
<label for="inventory_notify_stock_qty_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 139 |
+
</td>
|
| 140 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 141 |
+
</tr>
|
| 142 |
+
|
| 143 |
+
<tr>
|
| 144 |
+
<td class="label"><label for="inventory_enable_qty_increments"><?php echo Mage::helper('catalog')->__('Enable Qty Increments') ?></label></td>
|
| 145 |
+
<td class="value"><select id="inventory_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[enable_qty_increments]" class="select" disabled="disabled">
|
| 146 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 147 |
+
<option value="0"<?php if ($this->getDefaultConfigValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 148 |
+
</select>
|
| 149 |
+
<input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_enable_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_enable_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
|
| 150 |
+
<label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 151 |
+
<input type="checkbox" id="inventory_enable_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 152 |
+
<label for="inventory_enable_qty_increments_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 153 |
+
</td>
|
| 154 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 155 |
+
</tr>
|
| 156 |
+
<tr>
|
| 157 |
+
<td class="label"><label for="inventory_qty_increments"><?php echo Mage::helper('catalog')->__('Qty Increments') ?></label></td>
|
| 158 |
+
<td class="value">
|
| 159 |
+
<input type="text" class="input-text validate-number" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[qty_increments]" value="<?php echo $this->getDefaultConfigValue('qty_increments')*1 ?>" disabled="disabled" />
|
| 160 |
+
<input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[use_config_qty_increments]" value="1" onclick="toggleValueElements(this, this.parentNode, [$('inventory_qty_increments_checkbox')]);" checked="checked" disabled="disabled" />
|
| 161 |
+
<label for="inventory_use_config_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 162 |
+
<input type="checkbox" id="inventory_qty_increments_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 163 |
+
<label for="inventory_qty_increments_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 164 |
+
</td>
|
| 165 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 166 |
+
</tr>
|
| 167 |
+
|
| 168 |
+
<tr>
|
| 169 |
+
<td class="label"><label for="inventory_stock_availability"><?php echo Mage::helper('catalog')->__('Stock Availability') ?></label></td>
|
| 170 |
+
<td class="value"><select id="inventory_stock_availability" name="<?php echo $this->getFieldSuffix() ?>[is_in_stock]" class="select" disabled="disabled">
|
| 171 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('In Stock') ?></option>
|
| 172 |
+
<option value="0"<?php if ($this->getDefaultConfigValue('is_in_stock')==0): ?> selected<?php endif; ?>><?php echo Mage::helper('catalog')->__('Out of Stock') ?></option>
|
| 173 |
+
</select>
|
| 174 |
+
<input type="checkbox" id="inventory_stock_availability_checkbox" onclick="toggleValueElementsWithCheckbox(this)" />
|
| 175 |
+
<label for="inventory_stock_availability_checkbox" class="normal"><?php echo Mage::helper('catalog')->__('Change') ?></label>
|
| 176 |
+
</td>
|
| 177 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 178 |
+
</tr>
|
| 179 |
+
</table>
|
| 180 |
+
</fieldset>
|
| 181 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/edit/action/websites.phtml
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Add Product To Websites') ?></h4>
|
| 30 |
+
</div>
|
| 31 |
+
<fieldset id="grop_fields">
|
| 32 |
+
<?php foreach ($this->getWebsiteCollection() as $_website): ?>
|
| 33 |
+
<div>
|
| 34 |
+
<div class="website-name">
|
| 35 |
+
<input name="add_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="add_product_website_<?php echo $_website->getId() ?>" type="checkbox" />
|
| 36 |
+
<big><strong><label for="add_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
|
| 37 |
+
</div>
|
| 38 |
+
<div class="webiste-groups" id="add_product_website_<?php echo $_website->getId() ?>_data">
|
| 39 |
+
<?php foreach ($this->getGroupCollection($_website) as $_group): ?>
|
| 40 |
+
<h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
|
| 41 |
+
<div class="group-stores">
|
| 42 |
+
<table>
|
| 43 |
+
<?php foreach ($this->getStoreCollection($_group) as $_store): ?>
|
| 44 |
+
<tr>
|
| 45 |
+
<td><?php echo $this->escapeHtml($_store->getName()) ?></td>
|
| 46 |
+
<td> </td>
|
| 47 |
+
</tr>
|
| 48 |
+
<?php endforeach; ?>
|
| 49 |
+
</table>
|
| 50 |
+
</div>
|
| 51 |
+
<?php endforeach; ?>
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
<?php endforeach; ?>
|
| 55 |
+
</fieldset>
|
| 56 |
+
</div>
|
| 57 |
+
|
| 58 |
+
<div class="entry-edit">
|
| 59 |
+
<div class="entry-edit-head">
|
| 60 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Remove Product From Websites') ?></h4>
|
| 61 |
+
</div>
|
| 62 |
+
<fieldset id="grop_fields">
|
| 63 |
+
<ul class="messages">
|
| 64 |
+
<li class="notice-msg">
|
| 65 |
+
<ul>
|
| 66 |
+
<li><?php echo Mage::helper('catalog')->__("Items that you do not want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></li>
|
| 67 |
+
</ul>
|
| 68 |
+
</li>
|
| 69 |
+
</ul>
|
| 70 |
+
<?php foreach ($this->getWebsiteCollection() as $_website): ?>
|
| 71 |
+
<div>
|
| 72 |
+
<div class="website-name">
|
| 73 |
+
<input name="remove_website_ids[]" value="<?php echo $_website->getId() ?>" <?php if($this->getWebsitesReadonly()): ?>disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="remove_product_website_<?php echo $_website->getId() ?>" type="checkbox"/>
|
| 74 |
+
<big><strong><label for="remove_product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
|
| 75 |
+
</div>
|
| 76 |
+
<div class="webiste-groups" id="remove_product_website_<?php echo $_website->getId() ?>_data">
|
| 77 |
+
<?php foreach ($this->getGroupCollection($_website) as $_group): ?>
|
| 78 |
+
<h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
|
| 79 |
+
<div class="group-stores">
|
| 80 |
+
<table>
|
| 81 |
+
<?php foreach ($this->getStoreCollection($_group) as $_store): ?>
|
| 82 |
+
<tr>
|
| 83 |
+
<td><?php echo $this->escapeHtml($_store->getName()) ?></td>
|
| 84 |
+
<td> </td>
|
| 85 |
+
</tr>
|
| 86 |
+
<?php endforeach; ?>
|
| 87 |
+
</table>
|
| 88 |
+
</div>
|
| 89 |
+
<?php endforeach; ?>
|
| 90 |
+
</div>
|
| 91 |
+
</div>
|
| 92 |
+
<?php endforeach; ?>
|
| 93 |
+
</fieldset>
|
| 94 |
+
</div>
|
| 95 |
+
<script type="text/javascript">
|
| 96 |
+
//<![CDATA[
|
| 97 |
+
var productWebsiteCheckboxes = $$('.website-checkbox');
|
| 98 |
+
|
| 99 |
+
for(var i=0;i<productWebsiteCheckboxes.length;i++){
|
| 100 |
+
Event.observe(productWebsiteCheckboxes[i], 'click', toggleStoreFromChoosers);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
function toggleStoreFromChoosers(event){
|
| 104 |
+
var element = Event.element(event);
|
| 105 |
+
var selects = $(element.id+'_data').getElementsBySelector('select');
|
| 106 |
+
var selectBlocks = $(element.id+'_data').getElementsByClassName('website-'+element.value+'-select');
|
| 107 |
+
for (var i=0; i<selects.length; i++) {
|
| 108 |
+
selects[i].disabled=!element.checked;
|
| 109 |
+
}
|
| 110 |
+
for (var i=0; i<selectBlocks.length; i++) {
|
| 111 |
+
if (element.checked) {
|
| 112 |
+
selectBlocks[i].show();
|
| 113 |
+
}
|
| 114 |
+
else {
|
| 115 |
+
selectBlocks[i].hide();
|
| 116 |
+
}
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
//]]>
|
| 120 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/categories.phtml
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Product Categories') ?></h4>
|
| 30 |
+
</div>
|
| 31 |
+
<fieldset id="grop_fields">
|
| 32 |
+
<input type="hidden" name="category_ids" id="product_categories" value="<?php echo $this->getIdsString() ?>">
|
| 33 |
+
<div id="product-categories" class="tree"></div>
|
| 34 |
+
</fieldset>
|
| 35 |
+
</div>
|
| 36 |
+
<?php if($this->getRootNode() && $this->getRootNode()->hasChildren()): ?>
|
| 37 |
+
<script type="text/javascript">
|
| 38 |
+
Ext.EventManager.onDocumentReady(function() {
|
| 39 |
+
var categoryLoader = new Ext.tree.TreeLoader({
|
| 40 |
+
dataUrl: '<?php echo $this->getLoadTreeUrl()?>'
|
| 41 |
+
});
|
| 42 |
+
|
| 43 |
+
categoryLoader.createNode = function(config) {
|
| 44 |
+
config.uiProvider = Ext.tree.CheckboxNodeUI;
|
| 45 |
+
var node;
|
| 46 |
+
if (config.children && !config.children.length) {
|
| 47 |
+
delete(config.children);
|
| 48 |
+
node = new Ext.tree.AsyncTreeNode(config);
|
| 49 |
+
|
| 50 |
+
} else {
|
| 51 |
+
node = new Ext.tree.TreeNode(config);
|
| 52 |
+
}
|
| 53 |
+
return node;
|
| 54 |
+
};
|
| 55 |
+
|
| 56 |
+
categoryLoader.on("beforeload", function(treeLoader, node) {
|
| 57 |
+
treeLoader.baseParams.category = node.attributes.id;
|
| 58 |
+
});
|
| 59 |
+
|
| 60 |
+
categoryLoader.on("load", function(treeLoader, node, config) {
|
| 61 |
+
varienWindowOnload();
|
| 62 |
+
});
|
| 63 |
+
|
| 64 |
+
var tree = new Ext.tree.TreePanel('product-categories', {
|
| 65 |
+
animate:true,
|
| 66 |
+
loader: categoryLoader,
|
| 67 |
+
enableDD:false,
|
| 68 |
+
containerScroll: true,
|
| 69 |
+
rootUIProvider: Ext.tree.CheckboxNodeUI,
|
| 70 |
+
selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 71 |
+
rootVisible: '<?php echo $this->getRootNode()->getIsVisible() ?>'
|
| 72 |
+
});
|
| 73 |
+
|
| 74 |
+
tree.on('check', function(node) {
|
| 75 |
+
if(node.attributes.checked) {
|
| 76 |
+
categoryAdd(node.id);
|
| 77 |
+
} else {
|
| 78 |
+
categoryRemove(node.id);
|
| 79 |
+
}
|
| 80 |
+
varienElementMethods.setHasChanges(node.getUI().checkbox);
|
| 81 |
+
}, tree);
|
| 82 |
+
|
| 83 |
+
// set the root node
|
| 84 |
+
var root = new Ext.tree.TreeNode({
|
| 85 |
+
text: '<?php echo $this->jsQuoteEscape($this->getRootNode()->getName()) ?>',
|
| 86 |
+
draggable:false,
|
| 87 |
+
checked:'<?php echo $this->getRootNode()->getChecked() ?>',
|
| 88 |
+
id:'<?php echo $this->getRootNode()->getId() ?>',
|
| 89 |
+
disabled: <?php echo ($this->getRootNode()->getDisabled() ? 'true' : 'false') ?>,
|
| 90 |
+
uiProvider: Ext.tree.CheckboxNodeUI
|
| 91 |
+
});
|
| 92 |
+
|
| 93 |
+
tree.setRootNode(root);
|
| 94 |
+
bildCategoryTree(root, <?php echo $this->getTreeJson() ?>);
|
| 95 |
+
tree.addListener('click', categoryClick.createDelegate(this));
|
| 96 |
+
|
| 97 |
+
// render the tree
|
| 98 |
+
tree.render();
|
| 99 |
+
root.expand();
|
| 100 |
+
//tree.expandAll();
|
| 101 |
+
});
|
| 102 |
+
|
| 103 |
+
function bildCategoryTree(parent, config){
|
| 104 |
+
if (!config) return null;
|
| 105 |
+
|
| 106 |
+
if (parent && config && config.length){
|
| 107 |
+
for (var i = 0; i < config.length; i++){
|
| 108 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 109 |
+
var node;
|
| 110 |
+
var _node = Object.clone(config[i]);
|
| 111 |
+
if (_node.children && !_node.children.length) {
|
| 112 |
+
delete(_node.children);
|
| 113 |
+
node = new Ext.tree.AsyncTreeNode(_node);
|
| 114 |
+
|
| 115 |
+
} else {
|
| 116 |
+
node = new Ext.tree.TreeNode(config[i]);
|
| 117 |
+
}
|
| 118 |
+
parent.appendChild(node);
|
| 119 |
+
node.loader = node.getOwnerTree().loader;
|
| 120 |
+
if(config[i].children){
|
| 121 |
+
bildCategoryTree(node, config[i].children);
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
}
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
function categoryClick(node, e){
|
| 128 |
+
if (node.disabled) {
|
| 129 |
+
return;
|
| 130 |
+
}
|
| 131 |
+
node.getUI().check(!node.getUI().checked());
|
| 132 |
+
varienElementMethods.setHasChanges(Event.element(e), e);
|
| 133 |
+
};
|
| 134 |
+
function categoryAdd(id) {
|
| 135 |
+
var ids = $('product_categories').value.split(',');
|
| 136 |
+
ids.push(id);
|
| 137 |
+
$('product_categories').value = ids.join(',');
|
| 138 |
+
}
|
| 139 |
+
function categoryRemove(id) {
|
| 140 |
+
var ids = $('product_categories').value.split(',');
|
| 141 |
+
// bug #7654 fixed
|
| 142 |
+
while (-1 != ids.indexOf(id)) {
|
| 143 |
+
ids.splice(ids.indexOf(id), 1);
|
| 144 |
+
}
|
| 145 |
+
$('product_categories').value = ids.join(',');
|
| 146 |
+
}
|
| 147 |
+
</script>
|
| 148 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options.phtml
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit custom-options product-custom-options">
|
| 28 |
+
<div id="dynamic-price-warrning" style="display:none">
|
| 29 |
+
<ul class="messages">
|
| 30 |
+
<li class="error-msg">
|
| 31 |
+
<ul>
|
| 32 |
+
<li><?php echo $this->__('Bundle with dynamic pricing cannot include custom defined options. Options will not be saved.') ?></li>
|
| 33 |
+
</ul>
|
| 34 |
+
</li>
|
| 35 |
+
</ul>
|
| 36 |
+
</div>
|
| 37 |
+
<div class="entry-edit-head">
|
| 38 |
+
<h4><?php echo Mage::helper('catalog')->__('Custom Options') ?></h4>
|
| 39 |
+
<div class="right"><?php echo $this->getAddButtonHtml() ?></div>
|
| 40 |
+
</div>
|
| 41 |
+
|
| 42 |
+
<div id="product_options_container" class="box">
|
| 43 |
+
<div id="product_options_container_top"></div>
|
| 44 |
+
<?php echo $this->getOptionsBoxHtml() ?>
|
| 45 |
+
</div>
|
| 46 |
+
</div>
|
| 47 |
+
|
| 48 |
+
<script type="text/javascript">
|
| 49 |
+
// re-bind form elements onchange
|
| 50 |
+
varienWindowOnload(true);
|
| 51 |
+
//show error message
|
| 52 |
+
if ($('price_type')) {
|
| 53 |
+
if ($('price_type').value == '0' && $('dynamic-price-warrning')) {
|
| 54 |
+
$('dynamic-price-warrning').show();
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php echo $this->getTemplatesHtml() ?>
|
| 28 |
+
|
| 29 |
+
<script type="text/javascript">
|
| 30 |
+
//<![CDATA[
|
| 31 |
+
var firstStepTemplate = '<div class="option-box" id="option_{{id}}">'+
|
| 32 |
+
'<table id="<?php echo $this->getFieldId() ?>_{{id}}" class="option-header" cellpadding="0" cellspacing="0">'+
|
| 33 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_is_delete" name="<?php echo $this->getFieldName() ?>[{{id}}][is_delete]" value="" />'+
|
| 34 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_previous_type" name="<?php echo $this->getFieldName() ?>[{{id}}][previous_type]" value="{{type}}" />'+
|
| 35 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_previous_group" name="<?php echo $this->getFieldName() ?>[{{id}}][previous_group]" value="" />'+
|
| 36 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_id" name="<?php echo $this->getFieldName() ?>[{{id}}][id]" value="{{id}}" />'+
|
| 37 |
+
'<input type="hidden" id="<?php echo $this->getFieldId() ?>_{{id}}_option_id" name="<?php echo $this->getFieldName() ?>[{{id}}][option_id]" value="{{option_id}}" />'+
|
| 38 |
+
'<thead>'+
|
| 39 |
+
'<tr>'+
|
| 40 |
+
'<th class="opt-title"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Title')) ?> <span class="required">*</span></th>'+
|
| 41 |
+
'<th class="opt-type"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Input Type')) ?> <span class="required">*</span></th>'+
|
| 42 |
+
'<th class="opt-req"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Is Required')) ?></th>'+
|
| 43 |
+
'<th class="opt-order"><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Sort Order')) ?></th>'+
|
| 44 |
+
'<th class="a-right"><?php echo $this->jsQuoteEscape($this->jsQuoteEscape($this->getDeleteButtonHtml())) ?></th>'+
|
| 45 |
+
'</tr>'+
|
| 46 |
+
'</thead>'+
|
| 47 |
+
'<tr>'+
|
| 48 |
+
'<td><input type="text" class="required-entry input-text" id="<?php echo $this->getFieldId() ?>_{{id}}_title" name="<?php echo $this->getFieldName() ?>[{{id}}][title]" value="{{title}}">{{checkboxScopeTitle}}</td>'+
|
| 49 |
+
'<td><?php echo $this->getTypeSelectHtml() ?></td>'+
|
| 50 |
+
'<td class="opt-req"><?php echo $this->getRequireSelectHtml() ?></td>'+
|
| 51 |
+
'<td><input type="text" class="validate-zero-or-greater input-text" name="<?php echo $this->getFieldName() ?>[{{id}}][sort_order]" value="{{sort_order}}"></td>'+
|
| 52 |
+
'<td> </td>'+
|
| 53 |
+
'</tr></table></div>';
|
| 54 |
+
|
| 55 |
+
var productOption = {
|
| 56 |
+
div : $('product_options_container_top'),
|
| 57 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 58 |
+
templateText : firstStepTemplate,
|
| 59 |
+
itemCount : 1,
|
| 60 |
+
add : function(data) {
|
| 61 |
+
this.template = new Template(this.templateText, this.templateSyntax);
|
| 62 |
+
|
| 63 |
+
if(!data.id){
|
| 64 |
+
data = {};
|
| 65 |
+
data.id = this.itemCount;
|
| 66 |
+
data.type = '';
|
| 67 |
+
data.option_id = 0;
|
| 68 |
+
} else {
|
| 69 |
+
this.itemCount = data.item_count;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
Element.insert(this.div, {'after':this.template.evaluate(data)});
|
| 73 |
+
|
| 74 |
+
//set selected type
|
| 75 |
+
if (data.type) {
|
| 76 |
+
$A($('<?php echo $this->getFieldId() ?>_'+data.id+'_type').options).each(function(option){
|
| 77 |
+
if (option.value==data.type) option.selected = true;
|
| 78 |
+
});
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
//set selected is_require
|
| 82 |
+
if (data.is_require) {
|
| 83 |
+
$A($('<?php echo $this->getFieldId() ?>_'+data.id+'_is_require').options).each(function(option){
|
| 84 |
+
if (option.value==data.is_require) option.selected = true;
|
| 85 |
+
});
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
if (data.checkboxScopeTitle) {
|
| 89 |
+
//set disabled
|
| 90 |
+
if ($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_title') && data.scopeTitleDisabled) {
|
| 91 |
+
$('<?php echo $this->getFieldId() ?>_'+data.option_id+'_title').disable();
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
this.itemCount++;
|
| 96 |
+
this.bindRemoveButtons();
|
| 97 |
+
productOptionType.bindSelectInputType();
|
| 98 |
+
},
|
| 99 |
+
remove : function(event){
|
| 100 |
+
var element = $(Event.findElement(event, 'div'));
|
| 101 |
+
if(element){
|
| 102 |
+
$('product_'+element.readAttribute('id')+'_'+'is_delete').value = '1';
|
| 103 |
+
element.addClassName('no-display');
|
| 104 |
+
element.addClassName('ignore-validate');
|
| 105 |
+
element.hide();
|
| 106 |
+
}
|
| 107 |
+
},
|
| 108 |
+
bindRemoveButtons : function(){
|
| 109 |
+
var buttons = $$('div.product-custom-options .delete-product-option');
|
| 110 |
+
for(var i=0;i<buttons.length;i++){
|
| 111 |
+
if(!$(buttons[i]).binded){
|
| 112 |
+
$(buttons[i]).binded = true;
|
| 113 |
+
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
var inputs = $$('div.product-custom-options button', 'div.product-custom-options input', 'div.product-custom-options select', 'div.product-custom-options textarea');
|
| 117 |
+
<?php if ($this->isReadonly()):?>
|
| 118 |
+
for (var i=0, l = inputs.length; i < l; i ++) {
|
| 119 |
+
inputs[i].disabled = true;
|
| 120 |
+
if (inputs[i].tagName.toLowerCase()=='button') {
|
| 121 |
+
inputs[i].addClassName('disabled');
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
<?php else: ?>
|
| 125 |
+
inputs.each(function(el) { Event.observe(el, 'change', el.setHasChanges.bind(el)); } )
|
| 126 |
+
<?php endif;?>
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
var productOptionType = {
|
| 132 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 133 |
+
loadStepTwo : function(event){
|
| 134 |
+
var element = $(Event.findElement(event, 'select'));
|
| 135 |
+
|
| 136 |
+
var group = '';
|
| 137 |
+
var previousGroupElm = $(element.readAttribute('id').sub('_type', '_previous_group'));
|
| 138 |
+
|
| 139 |
+
switch(element.getValue()){
|
| 140 |
+
case 'field':
|
| 141 |
+
case 'area':
|
| 142 |
+
template = OptionTemplateText;
|
| 143 |
+
group = 'text';
|
| 144 |
+
break;
|
| 145 |
+
case 'file':
|
| 146 |
+
template = OptionTemplateFile;
|
| 147 |
+
group = 'file';
|
| 148 |
+
break;
|
| 149 |
+
case 'drop_down':
|
| 150 |
+
case 'radio':
|
| 151 |
+
case 'checkbox':
|
| 152 |
+
case 'multiple':
|
| 153 |
+
template = OptionTemplateSelect;
|
| 154 |
+
group = 'select';
|
| 155 |
+
break;
|
| 156 |
+
case 'date':
|
| 157 |
+
case 'date_time':
|
| 158 |
+
case 'time':
|
| 159 |
+
template = OptionTemplateDate;
|
| 160 |
+
group = 'date';
|
| 161 |
+
break;
|
| 162 |
+
default:
|
| 163 |
+
template = '';
|
| 164 |
+
group = 'unknown';
|
| 165 |
+
break;
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
if (previousGroupElm.getValue() != group) {
|
| 169 |
+
if ($(element.readAttribute('id')+'_'+previousGroupElm.getValue())) {
|
| 170 |
+
formElm = $(element.readAttribute('id')+'_'+previousGroupElm.getValue()).descendants();
|
| 171 |
+
formElm.each(function(elm){
|
| 172 |
+
if (elm.tagName == 'input' || elm.tagName == 'select') {
|
| 173 |
+
elm.name = '__delete__'+elm.readAttribute('name');
|
| 174 |
+
}
|
| 175 |
+
});
|
| 176 |
+
|
| 177 |
+
$(element.readAttribute('id')+'_'+previousGroupElm.getValue()).addClassName('no-display');
|
| 178 |
+
$(element.readAttribute('id')+'_'+previousGroupElm.getValue()).addClassName('ignore-validate');
|
| 179 |
+
$(element.readAttribute('id')+'_'+previousGroupElm.getValue()).hide();
|
| 180 |
+
}
|
| 181 |
+
|
| 182 |
+
previousGroupElm.value = group;
|
| 183 |
+
|
| 184 |
+
if ($(element.readAttribute('id')+'_'+group)) {
|
| 185 |
+
formElm = $(element.readAttribute('id')+'_'+group).descendants();
|
| 186 |
+
formElm.each(function(elm){
|
| 187 |
+
if (elm.match('input') || elm.match('select')) {
|
| 188 |
+
elm.name = elm.readAttribute('name').sub('__delete__', '');
|
| 189 |
+
}
|
| 190 |
+
});
|
| 191 |
+
$(element.readAttribute('id')+'_'+group).removeClassName('no-display');
|
| 192 |
+
$(element.readAttribute('id')+'_'+group).removeClassName('ignore-validate');
|
| 193 |
+
$(element.readAttribute('id')+'_'+group).show();
|
| 194 |
+
|
| 195 |
+
} else {
|
| 196 |
+
template = '<div id="'+element.readAttribute('id')+'_'+group+'" class="grid tier form-list">'+template+'</div><div id="'+element.readAttribute('id')+'_'+group+'_advice"></div';
|
| 197 |
+
this.secondTemplate = new Template(template, this.templateSyntax);
|
| 198 |
+
|
| 199 |
+
data = {};
|
| 200 |
+
if (!data.option_id) {
|
| 201 |
+
data = {};
|
| 202 |
+
data.option_id = $(element.readAttribute('id').sub('_type', '_id')).getValue();
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
Element.insert(element.readAttribute('id').sub('_type', ''), {'after':this.secondTemplate.evaluate(data)});
|
| 206 |
+
|
| 207 |
+
switch(element.getValue()){
|
| 208 |
+
case 'drop_down':
|
| 209 |
+
case 'radio':
|
| 210 |
+
case 'checkbox':
|
| 211 |
+
case 'multiple':
|
| 212 |
+
selectOptionType.bindAddButton();
|
| 213 |
+
break;
|
| 214 |
+
}
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
},
|
| 218 |
+
addDataToValues : function(data){
|
| 219 |
+
|
| 220 |
+
switch(data.type){
|
| 221 |
+
case 'field':
|
| 222 |
+
case 'area':
|
| 223 |
+
template = OptionTemplateText;
|
| 224 |
+
group = 'text';
|
| 225 |
+
break;
|
| 226 |
+
case 'file':
|
| 227 |
+
template = OptionTemplateFile;
|
| 228 |
+
group = 'file';
|
| 229 |
+
break;
|
| 230 |
+
case 'drop_down':
|
| 231 |
+
case 'radio':
|
| 232 |
+
case 'checkbox':
|
| 233 |
+
case 'multiple':
|
| 234 |
+
template = OptionTemplateSelect;
|
| 235 |
+
group = 'select';
|
| 236 |
+
break;
|
| 237 |
+
case 'date':
|
| 238 |
+
case 'date_time':
|
| 239 |
+
case 'time':
|
| 240 |
+
template = OptionTemplateDate;
|
| 241 |
+
group = 'date';
|
| 242 |
+
break;
|
| 243 |
+
}
|
| 244 |
+
|
| 245 |
+
$('<?php echo $this->getFieldId() ?>_'+data.id+'_previous_group').value = group;
|
| 246 |
+
|
| 247 |
+
template = '<div id="<?php echo $this->getFieldId() ?>_{{id}}_type_'+group+'" class="grid tier form-list">'+template+'</div><div id="<?php echo $this->getFieldId() ?>_{{id}}_type_'+group+'_advice"></div>';
|
| 248 |
+
|
| 249 |
+
this.secondTemplate = new Template(template, this.templateSyntax);
|
| 250 |
+
|
| 251 |
+
Element.insert($('<?php echo $this->getFieldId() ?>_'+data.option_id), {'after':this.secondTemplate.evaluate(data)});
|
| 252 |
+
|
| 253 |
+
if (data.checkboxScopePrice) {
|
| 254 |
+
//set disabled
|
| 255 |
+
if ($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price') && data.scopePriceDisabled) {
|
| 256 |
+
$('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price').disable();
|
| 257 |
+
$('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price_type').disable();
|
| 258 |
+
}
|
| 259 |
+
}
|
| 260 |
+
|
| 261 |
+
switch(data.type){
|
| 262 |
+
case 'drop_down':
|
| 263 |
+
case 'radio':
|
| 264 |
+
case 'checkbox':
|
| 265 |
+
case 'multiple':
|
| 266 |
+
data.optionValues.each(function(value) {
|
| 267 |
+
selectOptionType.add(value);
|
| 268 |
+
});
|
| 269 |
+
selectOptionType.bindAddButton();
|
| 270 |
+
break;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
if (data.price_type) {
|
| 274 |
+
$A($('<?php echo $this->getFieldId() ?>_'+data.option_id+'_price_type').options).each(function(option){
|
| 275 |
+
if (option.value==data.price_type) option.selected = true;
|
| 276 |
+
});
|
| 277 |
+
}
|
| 278 |
+
|
| 279 |
+
},
|
| 280 |
+
bindSelectInputType : function(){
|
| 281 |
+
var types = $$('.select-product-option-type');
|
| 282 |
+
for(var i=0;i<types.length;i++){
|
| 283 |
+
if(!$(types[i]).binded){
|
| 284 |
+
$(types[i]).binded = true;
|
| 285 |
+
Event.observe(types[i], 'change', function(event){
|
| 286 |
+
productOptionType.loadStepTwo(event);
|
| 287 |
+
});
|
| 288 |
+
}
|
| 289 |
+
}
|
| 290 |
+
}
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
var productOptionScope = {
|
| 294 |
+
addScope : function(event){
|
| 295 |
+
var element = $(Event.element(event));
|
| 296 |
+
fieldToDisable = $(element.readAttribute('id').sub('_use_default', ''));
|
| 297 |
+
|
| 298 |
+
if (fieldToDisable.disabled) {
|
| 299 |
+
if (fieldToDisable.hasClassName('product-option-price')) {//need change to cheking value of element
|
| 300 |
+
$(fieldToDisable.readAttribute('id')+'_type').enable();
|
| 301 |
+
}
|
| 302 |
+
fieldToDisable.enable();
|
| 303 |
+
} else {
|
| 304 |
+
if (fieldToDisable.hasClassName('product-option-price')) {//need change to cheking value of element
|
| 305 |
+
$(fieldToDisable.readAttribute('id')+'_type').disable();
|
| 306 |
+
}
|
| 307 |
+
fieldToDisable.disable();
|
| 308 |
+
}
|
| 309 |
+
},
|
| 310 |
+
bindScopeCheckbox : function(){
|
| 311 |
+
var checkboxes = $$('.product-option-scope-checkbox');
|
| 312 |
+
for (var i=0;i<checkboxes.length;i++) {
|
| 313 |
+
if (!$(checkboxes[i]).binded) {
|
| 314 |
+
$(checkboxes[i]).binded = true;
|
| 315 |
+
Event.observe(checkboxes[i], 'click', this.addScope.bind(this));
|
| 316 |
+
}
|
| 317 |
+
}
|
| 318 |
+
}
|
| 319 |
+
}
|
| 320 |
+
|
| 321 |
+
if($('option_panel')){
|
| 322 |
+
$('option_panel').remove();
|
| 323 |
+
}
|
| 324 |
+
|
| 325 |
+
productOption.bindRemoveButtons();
|
| 326 |
+
|
| 327 |
+
if($('<?php echo $this->getAddButtonId() ?>')){
|
| 328 |
+
Event.observe('<?php echo $this->getAddButtonId() ?>', 'click', productOption.add.bind(productOption));
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
//validation for selected input type
|
| 332 |
+
Validation.addAllThese([
|
| 333 |
+
['required-option-select', <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Select type of option')) ?>, function(v, elm) {
|
| 334 |
+
if (elm.getValue() == '') {
|
| 335 |
+
return false;
|
| 336 |
+
}
|
| 337 |
+
return true;
|
| 338 |
+
}]]);
|
| 339 |
+
|
| 340 |
+
//adding data to templates
|
| 341 |
+
<?php foreach ($this->getOptionValues() as $_value): ?>
|
| 342 |
+
productOption.add(<?php echo $_value->toJson() ?>);
|
| 343 |
+
productOptionType.addDataToValues(<?php echo $_value->toJson() ?>);
|
| 344 |
+
<?php endforeach; ?>
|
| 345 |
+
|
| 346 |
+
//bind scope checkboxes
|
| 347 |
+
productOptionScope.bindScopeCheckbox();
|
| 348 |
+
//]]>
|
| 349 |
+
</script>
|
| 350 |
+
|
| 351 |
+
<div><?php if (!$this->isReadonly()):?><input type="hidden" name="affect_product_custom_options" value="1" /><?php endif;?></div>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/date.phtml
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
|
| 29 |
+
OptionTemplateDate = '<table class="border" cellpadding="0" cellspacing="0">'+
|
| 30 |
+
'<tr class="headings">'+
|
| 31 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 32 |
+
'<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
|
| 33 |
+
'<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
|
| 34 |
+
<?php endif; ?>
|
| 35 |
+
'<th class="last"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
|
| 36 |
+
'</tr>'+
|
| 37 |
+
'<tr>'+
|
| 38 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 39 |
+
'<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
|
| 40 |
+
'<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
|
| 41 |
+
<?php else : ?>
|
| 42 |
+
'<input type="hidden" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]">' +
|
| 43 |
+
'<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
'<td class="last"><input type="text" class="input-text type-sku" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>'+
|
| 46 |
+
'</tr>'+
|
| 47 |
+
'</table>';
|
| 48 |
+
|
| 49 |
+
if ($('option_panel_type_date')) {
|
| 50 |
+
$('option_panel_type_date').remove();
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
|
| 29 |
+
OptionTemplateFile = '<table class="border" cellpadding="0" cellspacing="0">'+
|
| 30 |
+
'<tr class="headings">'+
|
| 31 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 32 |
+
'<th class="type-price">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Price')); ?> + '</th>' +
|
| 33 |
+
'<th class="type-type">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Price Type')); ?> + '</th>' +
|
| 34 |
+
<?php endif; ?>
|
| 35 |
+
'<th class="type-sku">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('SKU')); ?> + '</th>' +
|
| 36 |
+
'<th class="type-title">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Allowed File Extensions')); ?> + '</th>'+
|
| 37 |
+
'<th class="last">' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Maximum Image Size')); ?> + '</th>' +
|
| 38 |
+
'</tr>' +
|
| 39 |
+
'<tr>' +
|
| 40 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 41 |
+
'<td><input class="input-text validate-zero-or-greater" type="text" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
|
| 42 |
+
'<td>' + <?php echo $this->helper('core')->jsonEncode($this->getPriceTypeSelectHtml()) ?> + '</td>' +
|
| 43 |
+
<?php else : ?>
|
| 44 |
+
'<input type="hidden" name="product[options][{{option_id}}][price]">' +
|
| 45 |
+
'<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
|
| 46 |
+
<?php endif; ?>
|
| 47 |
+
'<td><input type="text" class="input-text" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>' +
|
| 48 |
+
'<td><input class="input-text" type="text" name="product[options][{{option_id}}][file_extension]" value="{{file_extension}}"></td>' +
|
| 49 |
+
'<td class="type-last last" nowrap><input class="input-text" type="text" name="product[options][{{option_id}}][image_size_x]" value="{{image_size_x}}">' +
|
| 50 |
+
<?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('x')) ?> +
|
| 51 |
+
'<input class="input-text" type="text" name="product[options][{{option_id}}][image_size_y]" value="{{image_size_y}}">' +
|
| 52 |
+
<?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('px.')) ?> +
|
| 53 |
+
'<br/>' + <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('leave blank if its not an image')) ?> + '</td>' +
|
| 54 |
+
'</tr>'+
|
| 55 |
+
'</table>';
|
| 56 |
+
|
| 57 |
+
if ($('option_panel_type_file')) {
|
| 58 |
+
$('option_panel_type_file').remove();
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/select.phtml
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 29 |
+
//<![CDATA[
|
| 30 |
+
OptionTemplateSelect = '<table class="border" cellpadding="0" cellspacing="0">'+
|
| 31 |
+
'<input type="hidden" class="required-option-select-type-rows" name="validation_{{option_id}}_result" value="" >'+
|
| 32 |
+
'<thead>'+
|
| 33 |
+
'<tr class="headings">'+
|
| 34 |
+
'<th class="type-title"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Title')) ?> <span class="required">*</span></th>'+
|
| 35 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 36 |
+
'<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
|
| 37 |
+
'<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
|
| 38 |
+
<?php endif; ?>
|
| 39 |
+
'<th class="type-sku"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
|
| 40 |
+
'<th class="type-order"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Sort Order')) ?></th>'+
|
| 41 |
+
'<th class="type-butt last"> </th>'+
|
| 42 |
+
'</tr>'+
|
| 43 |
+
'</thead>'+
|
| 44 |
+
'<tbody id="select_option_type_row_{{option_id}}">'+
|
| 45 |
+
'</tbody>'+
|
| 46 |
+
'<tfoot>'+
|
| 47 |
+
'<tr>'+
|
| 48 |
+
'<td colspan="100" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>'+
|
| 49 |
+
'</tr>'+
|
| 50 |
+
'</tfoot>'+
|
| 51 |
+
'</table>';
|
| 52 |
+
|
| 53 |
+
OptionTemplateSelectRow = '<tr id="product_option_{{id}}_select_{{select_id}}">'+
|
| 54 |
+
'<td>'+
|
| 55 |
+
'<input type="hidden" name="product[options][{{id}}][values][{{select_id}}][option_type_id]" value="{{option_type_id}}">'+
|
| 56 |
+
'<input type="hidden" id="product_option_{{id}}_select_{{select_id}}_is_delete" name="product[options][{{id}}][values][{{select_id}}][is_delete]" value="">'+
|
| 57 |
+
'<input type="text" class="required-entry input-text select-type-title" id="product_option_{{id}}_select_{{select_id}}_title" name="product[options][{{id}}][values][{{select_id}}][title]" value="{{title}}">{{checkboxScopeTitle}}</td>'+
|
| 58 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 59 |
+
'<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{id}}_select_{{select_id}}_price" name="product[options][{{id}}][values][{{select_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
|
| 60 |
+
'<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
|
| 61 |
+
<?php else : ?>
|
| 62 |
+
'<input type="hidden" id="product_option_{{id}}_select_{{select_id}}_price" name="product[options][{{id}}][values][{{select_id}}][price]">' +
|
| 63 |
+
'<input type="hidden" name="product[options][{{id}}][values][{{select_id}}][price_type]" id="product_option_{{id}}_select_{{select_id}}_price_type">' +
|
| 64 |
+
<?php endif; ?>
|
| 65 |
+
'<td><input type="text" class="input-text" name="product[options][{{id}}][values][{{select_id}}][sku]" value="{{sku}}"></td>'+
|
| 66 |
+
'<td><input type="text" class="validate-zero-or-greater input-text" name="product[options][{{id}}][values][{{select_id}}][sort_order]" value="{{sort_order}}"></td>'+
|
| 67 |
+
'<td class="last"><span title="Delete row"><?php echo $this->getDeleteButtonHtml() ?></span></td>'+
|
| 68 |
+
'</tr>';
|
| 69 |
+
|
| 70 |
+
selectOptionType = {
|
| 71 |
+
div : 'select_option_type_row',
|
| 72 |
+
itemCount : 0,
|
| 73 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
| 74 |
+
templateText : OptionTemplateSelectRow,
|
| 75 |
+
add : function(data) {
|
| 76 |
+
|
| 77 |
+
this.template = new Template(this.templateText, this.templateSyntax);
|
| 78 |
+
|
| 79 |
+
if (data.target || data.srcElement) {//data is Event (work in IE and Firefox)
|
| 80 |
+
element = $(Event.findElement(data, 'button'));
|
| 81 |
+
optionId = element.readAttribute('id').sub('add_select_row_button_', '');
|
| 82 |
+
data = {};
|
| 83 |
+
data.option_type_id = '-1';
|
| 84 |
+
data.select_id = this.itemCount;
|
| 85 |
+
} else {
|
| 86 |
+
optionId = data.option_id;
|
| 87 |
+
data.select_id = data.option_type_id;
|
| 88 |
+
this.itemCount = data.item_count;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
data.id = optionId;
|
| 92 |
+
|
| 93 |
+
Element.insert($(this.div+'_'+data.id), {'bottom':this.template.evaluate(data)});
|
| 94 |
+
|
| 95 |
+
if (data.checkboxScopeTitle) {
|
| 96 |
+
//set disabled
|
| 97 |
+
if ($('product_option_'+data.id+'_select_'+data.select_id+'_title') && data.scopeTitleDisabled) {
|
| 98 |
+
$('product_option_'+data.id+'_select_'+data.select_id+'_title').disable();
|
| 99 |
+
}
|
| 100 |
+
}
|
| 101 |
+
if (data.checkboxScopePrice) {
|
| 102 |
+
//set disabled
|
| 103 |
+
if ($('product_option_'+data.id+'_select_'+data.select_id+'_price') && data.scopePriceDisabled) {
|
| 104 |
+
$('product_option_'+data.id+'_select_'+data.select_id+'_price').disable();
|
| 105 |
+
$('product_option_'+data.id+'_select_'+data.select_id+'_price_type').disable();
|
| 106 |
+
}
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
if (data.price_type) {
|
| 110 |
+
$A($('product_option_'+data.id+'_select_'+data.select_id+'_price_type').options).each(function(option){
|
| 111 |
+
if (option.value==data.price_type) option.selected = true;
|
| 112 |
+
});
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
this.itemCount++;
|
| 116 |
+
this.bindRemoveButtons();
|
| 117 |
+
},
|
| 118 |
+
remove : function(event){
|
| 119 |
+
var element = $(Event.findElement(event, 'tr'));
|
| 120 |
+
|
| 121 |
+
if(element){
|
| 122 |
+
$(element.readAttribute('id')+'_is_delete').value = '1';
|
| 123 |
+
element.addClassName('no-display');
|
| 124 |
+
element.addClassName('ignore-validate');
|
| 125 |
+
element.hide();
|
| 126 |
+
}
|
| 127 |
+
},
|
| 128 |
+
bindRemoveButtons : function(){
|
| 129 |
+
var buttons = $$('.delete-select-row');
|
| 130 |
+
for(var i=0;i<buttons.length;i++){
|
| 131 |
+
if(!$(buttons[i]).binded){
|
| 132 |
+
$(buttons[i]).binded = true;
|
| 133 |
+
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
bindAddButton : function()
|
| 138 |
+
{
|
| 139 |
+
var buttons = $$('.add-select-row');
|
| 140 |
+
for(var i=0;i<buttons.length;i++){
|
| 141 |
+
if(!$(buttons[i]).binded){
|
| 142 |
+
$(buttons[i]).binded = true;
|
| 143 |
+
Event.observe(buttons[i], 'click', this.add.bind(this));
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
if ($('option_panel_type_select')) {
|
| 150 |
+
$('option_panel_type_select').remove();
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
selectOptionType.bindRemoveButtons();
|
| 154 |
+
|
| 155 |
+
Validation.addAllThese([
|
| 156 |
+
['required-option-select-type-rows', <?php echo $this->helper('core')->jsonEncode(Mage::helper('catalog')->__('Please add rows to option.')); ?>, function(v, elm) {
|
| 157 |
+
var optionContainerElm = elm.up('div.grid');
|
| 158 |
+
var selectTypesFlag = false;
|
| 159 |
+
selectTypeElements = $$('#'+optionContainerElm.id+' .select-type-title');
|
| 160 |
+
selectTypeElements.each(function(elm){
|
| 161 |
+
if (elm.id && elm.up('tr').visible()) {
|
| 162 |
+
selectTypesFlag = true;
|
| 163 |
+
}
|
| 164 |
+
});
|
| 165 |
+
elm.advaiceContainer = optionContainerElm.id+'_advice';
|
| 166 |
+
return selectTypesFlag;
|
| 167 |
+
}]]);
|
| 168 |
+
|
| 169 |
+
if($('add_select_row_button')){
|
| 170 |
+
Event.observe('add_select_row_button', 'click', selectOptionType.add.bind(selectOptionType));
|
| 171 |
+
}
|
| 172 |
+
//]]>
|
| 173 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/text.phtml
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
OptionTemplateText = '<table class="border" cellpadding="0" cellspacing="0">'+
|
| 30 |
+
'<tr class="headings">'+
|
| 31 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 32 |
+
'<th class="type-price"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price')) ?></th>' +
|
| 33 |
+
'<th class="type-type"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Price Type')) ?></th>' +
|
| 34 |
+
<?php endif; ?>
|
| 35 |
+
'<th class="type-sku"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('SKU')) ?></th>'+
|
| 36 |
+
'<th class="type-last last"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('Max Characters')) ?> </th>'+
|
| 37 |
+
'</tr>'+
|
| 38 |
+
'<tr>'+
|
| 39 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 40 |
+
'<td><input type="text" class="input-text validate-number product-option-price" id="product_option_{{option_id}}_price" name="product[options][{{option_id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?>></td>' +
|
| 41 |
+
'<td><?php echo $this->getPriceTypeSelectHtml() ?>{{checkboxScopePrice}}</td>' +
|
| 42 |
+
<?php else : ?>
|
| 43 |
+
'<input type="hidden" name="product[options][{{option_id}}][price]">' +
|
| 44 |
+
'<input type="hidden" name="product[options][{{option_id}}][price_type]" id="product_option_{{option_id}}_price_type">' +
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
'<td><input type="text" class="input-text" name="product[options][{{option_id}}][sku]" value="{{sku}}"></td>'+
|
| 47 |
+
'<td class="type-last last"><input type="text" class="input-text validate-zero-or-greater" name="product[options][{{option_id}}][max_characters]" value="{{max_characters}}"></td>'+
|
| 48 |
+
'</tr>'+
|
| 49 |
+
'</table>';
|
| 50 |
+
|
| 51 |
+
if ($('option_panel_type_text')) {
|
| 52 |
+
$('option_panel_type_text').remove();
|
| 53 |
+
}
|
| 54 |
+
//]]>
|
| 55 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/price/group.phtml
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/** @var $this Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Group */
|
| 29 |
+
$_htmlId = $this->getElement()->getHtmlId();
|
| 30 |
+
$_htmlClass = $this->getElement()->getClass();
|
| 31 |
+
$_htmlName = $this->getElement()->getName();
|
| 32 |
+
$_readonly = $this->getElement()->getReadonly();
|
| 33 |
+
$_priceValueValidation = $this->getPriceValidation('validate-zero-or-greater');
|
| 34 |
+
|
| 35 |
+
$_showWebsite= $this->isMultiWebsites();
|
| 36 |
+
?>
|
| 37 |
+
<tr>
|
| 38 |
+
<td class="label"><?php echo $this->getElement()->getLabel(); ?></td>
|
| 39 |
+
<td colspan="10" class="grid tier">
|
| 40 |
+
<table cellspacing="0" class="data border" id="group_prices_table">
|
| 41 |
+
<?php if ($_showWebsite) : ?>
|
| 42 |
+
<col width="135" />
|
| 43 |
+
<?php endif; ?>
|
| 44 |
+
<col width="120" />
|
| 45 |
+
<col />
|
| 46 |
+
<col width="1" />
|
| 47 |
+
<thead>
|
| 48 |
+
<tr class="headings">
|
| 49 |
+
<th <?php if (!$_showWebsite): ?>style="display: none;"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Website'); ?></th>
|
| 50 |
+
<th><?php echo Mage::helper('catalog')->__('Customer Group'); ?></th>
|
| 51 |
+
<th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')); ?></th>
|
| 52 |
+
<th class="last"><?php echo Mage::helper('catalog')->__('Action'); ?></th>
|
| 53 |
+
</tr>
|
| 54 |
+
</thead>
|
| 55 |
+
<tbody id="<?php echo $_htmlId; ?>_container"></tbody>
|
| 56 |
+
<tfoot>
|
| 57 |
+
<tr>
|
| 58 |
+
<td <?php if (!$_showWebsite): ?>style="display: none;"<?php endif; ?>></td>
|
| 59 |
+
<td colspan="4" class="a-right"><?php echo $this->getAddButtonHtml(); ?></td>
|
| 60 |
+
</tr>
|
| 61 |
+
</tfoot>
|
| 62 |
+
</table>
|
| 63 |
+
|
| 64 |
+
<script type="text/javascript">
|
| 65 |
+
//<![CDATA[
|
| 66 |
+
var groupPriceRowTemplate = '<tr>'
|
| 67 |
+
+ '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
|
| 68 |
+
+ '<select class="<?php echo $_htmlClass; ?> required-entry" name="<?php echo $_htmlName; ?>[{{index}}][website_id]" id="group_price_row_{{index}}_website">'
|
| 69 |
+
<?php foreach ($this->getWebsites() as $_websiteId => $_info) : ?>
|
| 70 |
+
+ '<option value="<?php echo $_websiteId; ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_info['name'])); ?><?php if (!empty($_info['currency'])) : ?> [<?php echo $this->escapeHtml($_info['currency']); ?>]<?php endif; ?></option>'
|
| 71 |
+
<?php endforeach; ?>
|
| 72 |
+
+ '</select></td>'
|
| 73 |
+
+ '<td><select class="<?php echo $_htmlClass; ?> custgroup required-entry" name="<?php echo $_htmlName; ?>[{{index}}][cust_group]" id="group_price_row_{{index}}_cust_group">'
|
| 74 |
+
<?php foreach ($this->getCustomerGroups() as $_groupId => $_groupName): ?>
|
| 75 |
+
+ '<option value="<?php echo $_groupId; ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_groupName)); ?></option>'
|
| 76 |
+
<?php endforeach; ?>
|
| 77 |
+
+ '</select></td>'
|
| 78 |
+
+ '<td><input class="<?php echo $_htmlClass; ?> required-entry <?php echo $_priceValueValidation; ?>" type="text" name="<?php echo $_htmlName; ?>[{{index}}][price]" value="{{price}}" id="group_price_row_{{index}}_price" /></td>'
|
| 79 |
+
+ '<td class="last"><input type="hidden" name="<?php echo $_htmlName; ?>[{{index}}][delete]" class="delete" value="" id="group_price_row_{{index}}_delete" />'
|
| 80 |
+
+ '<button title="<?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Delete Group Price')); ?>" type="button" class="scalable delete icon-btn delete-product-option" id="group_price_row_{{index}}_delete_button" onclick="return groupPriceControl.deleteItem(event);">'
|
| 81 |
+
+ '<span><?php echo $this->jsQuoteEscape(Mage::helper('catalog')->__('Delete')); ?></span></button></td>'
|
| 82 |
+
+ '</tr>';
|
| 83 |
+
|
| 84 |
+
var groupPriceControl = {
|
| 85 |
+
template: new Template(groupPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', '')),
|
| 86 |
+
itemsCount: 0,
|
| 87 |
+
addItem : function () {
|
| 88 |
+
<?php if ($_readonly): ?>
|
| 89 |
+
if (arguments.length < 3) {
|
| 90 |
+
return;
|
| 91 |
+
}
|
| 92 |
+
<?php endif; ?>
|
| 93 |
+
var data = {
|
| 94 |
+
website_id: '<?php echo $this->getDefaultWebsite(); ?>',
|
| 95 |
+
group: '<?php echo $this->getDefaultCustomerGroup(); ?>',
|
| 96 |
+
price: '',
|
| 97 |
+
readOnly: false,
|
| 98 |
+
index: this.itemsCount++
|
| 99 |
+
};
|
| 100 |
+
|
| 101 |
+
if(arguments.length >= 3) {
|
| 102 |
+
data.website_id = arguments[0];
|
| 103 |
+
data.group = arguments[1];
|
| 104 |
+
data.price = arguments[2];
|
| 105 |
+
}
|
| 106 |
+
if (arguments.length == 4) {
|
| 107 |
+
data.readOnly = arguments[3];
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
Element.insert($('<?php echo $_htmlId; ?>_container'), {
|
| 111 |
+
bottom : this.template.evaluate(data)
|
| 112 |
+
});
|
| 113 |
+
|
| 114 |
+
$('group_price_row_' + data.index + '_cust_group').value = data.group;
|
| 115 |
+
$('group_price_row_' + data.index + '_website').value = data.website_id;
|
| 116 |
+
|
| 117 |
+
<?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()): ?>
|
| 118 |
+
var websiteElement = $('group_price_row_' + data.index + '_website');
|
| 119 |
+
var websiteCaption = websiteElement.options[websiteElement.selectedIndex].text;
|
| 120 |
+
|
| 121 |
+
websiteElement.insert({after:'<span class="website-name">' + websiteCaption + '</span>'});
|
| 122 |
+
websiteElement.hide();
|
| 123 |
+
<?php endif;?>
|
| 124 |
+
|
| 125 |
+
if (data.readOnly == '1') {
|
| 126 |
+
['website', 'cust_group', 'price', 'delete'].each(function(element_suffix) {
|
| 127 |
+
$('group_price_row_' + data.index + '_' + element_suffix).disabled = true;
|
| 128 |
+
});
|
| 129 |
+
$('group_price_row_' + data.index + '_delete_button').hide();
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
<?php if ($_readonly): ?>
|
| 133 |
+
$('<?php echo $_htmlId; ?>_container').select('input', 'select').each(this.disableElement);
|
| 134 |
+
$('<?php echo $_htmlId; ?>_container').up('table').select('button').each(this.disableElement);
|
| 135 |
+
<?php else: ?>
|
| 136 |
+
$('<?php echo $_htmlId; ?>_container').select('input', 'select').each(function(element) {
|
| 137 |
+
Event.observe(element, 'change', element.setHasChanges.bind(element));
|
| 138 |
+
});
|
| 139 |
+
<?php endif; ?>
|
| 140 |
+
},
|
| 141 |
+
disableElement: function(element) {
|
| 142 |
+
element.disabled = true;
|
| 143 |
+
element.addClassName('disabled');
|
| 144 |
+
},
|
| 145 |
+
deleteItem: function(event) {
|
| 146 |
+
var tr = Event.findElement(event, 'tr');
|
| 147 |
+
if (tr) {
|
| 148 |
+
Element.select(tr, '.delete').each(function(element) {
|
| 149 |
+
element.value='1';
|
| 150 |
+
});
|
| 151 |
+
Element.select(tr, ['input', 'select']).each(function(element) {
|
| 152 |
+
element.hide();
|
| 153 |
+
});
|
| 154 |
+
Element.hide(tr);
|
| 155 |
+
Element.addClassName(tr, 'no-display template');
|
| 156 |
+
}
|
| 157 |
+
return false;
|
| 158 |
+
}
|
| 159 |
+
};
|
| 160 |
+
<?php foreach ($this->getValues() as $_item) : ?>
|
| 161 |
+
groupPriceControl.addItem('<?php echo $_item['website_id']; ?>', '<?php echo $_item['cust_group']; ?>', '<?php echo sprintf('%.2f', $_item['price']); ?>', <?php echo (int)!empty($_item['readonly']); ?>);
|
| 162 |
+
<?php endforeach; ?>
|
| 163 |
+
<?php if ($_readonly) : ?>
|
| 164 |
+
$('<?php echo $_htmlId; ?>_container').up('table').select('button')
|
| 165 |
+
.each(groupPriceControl.disableElement);
|
| 166 |
+
<?php endif; ?>
|
| 167 |
+
//]]>
|
| 168 |
+
</script>
|
| 169 |
+
</td></tr>
|
app/design/adminhtml/default/default/template/catalog/product/edit/price/tier.phtml
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
/* @var $this Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Tier */
|
| 27 |
+
?>
|
| 28 |
+
<?php $_htmlId = $this->getElement()->getHtmlId() ?>
|
| 29 |
+
<?php $_htmlClass = $this->getElement()->getClass() ?>
|
| 30 |
+
<?php $_htmlName = $this->getElement()->getName() ?>
|
| 31 |
+
<?php $_readonly = $this->getElement()->getReadonly() ?>
|
| 32 |
+
<?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
|
| 33 |
+
<?php $_editWebsite = $this->isAllowChangeWebsite(); ?>
|
| 34 |
+
<?php $_priceValueValidation = $this->getPriceValidation('validate-greater-than-zero'); ?>
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
<?php $_showWebsite = $this->isShowWebsiteColumn(); ?>
|
| 38 |
+
<?php $_showWebsite= $this->isMultiWebsites(); ?>
|
| 39 |
+
<tr>
|
| 40 |
+
<td class="label"><?php echo $this->getElement()->getLabel() ?></td>
|
| 41 |
+
<td colspan="10" class="grid tier">
|
| 42 |
+
<table cellspacing="0" class="data border" id="tiers_table">
|
| 43 |
+
<?php if ($_showWebsite): ?>
|
| 44 |
+
<col width="135" />
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
<col width="120" />
|
| 47 |
+
<col width="95" />
|
| 48 |
+
<col />
|
| 49 |
+
<col width="1" />
|
| 50 |
+
<thead>
|
| 51 |
+
<tr class="headings">
|
| 52 |
+
<th <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>><?php echo Mage::helper('sales')->__('Website') ?></th>
|
| 53 |
+
<th><?php echo Mage::helper('catalog')->__('Customer Group') ?></th>
|
| 54 |
+
<th><?php echo Mage::helper('catalog')->__('Qty') ?></th>
|
| 55 |
+
<th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')) ?></th>
|
| 56 |
+
<th class="last"><?php echo Mage::helper('catalog')->__('Action') ?></th>
|
| 57 |
+
</tr>
|
| 58 |
+
</thead>
|
| 59 |
+
<tbody id="<?php echo $_htmlId ?>_container"></tbody>
|
| 60 |
+
<tfoot>
|
| 61 |
+
<tr>
|
| 62 |
+
<td <?php if (!$_showWebsite): ?>style="display:none"<?php endif; ?>></td>
|
| 63 |
+
<td colspan="4" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>
|
| 64 |
+
</tr>
|
| 65 |
+
</tfoot>
|
| 66 |
+
</table>
|
| 67 |
+
|
| 68 |
+
<script type="text/javascript">
|
| 69 |
+
//<![CDATA[
|
| 70 |
+
var tierPriceRowTemplate = '<tr>'
|
| 71 |
+
+ '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
|
| 72 |
+
+ '<select class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[{{index}}][website_id]" id="tier_price_row_{{index}}_website">'
|
| 73 |
+
<?php foreach ($this->getWebsites() as $_websiteId => $_info): ?>
|
| 74 |
+
+ '<option value="<?php echo $_websiteId ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_info['name'])) ?><?php if (!empty($_info['currency'])): ?> [<?php echo $this->escapeHtml($_info['currency']) ?>]<?php endif; ?></option>'
|
| 75 |
+
<?php endforeach ?>
|
| 76 |
+
+ '</select></td>'
|
| 77 |
+
+ '<td><select class="<?php echo $_htmlClass ?> custgroup required-entry" name="<?php echo $_htmlName ?>[{{index}}][cust_group]" id="tier_price_row_{{index}}_cust_group">'
|
| 78 |
+
<?php foreach ($this->getCustomerGroups() as $_groupId=>$_groupName): ?>
|
| 79 |
+
+ '<option value="<?php echo $_groupId ?>"><?php echo $this->jsQuoteEscape($this->escapeHtml($_groupName)) ?></option>'
|
| 80 |
+
<?php endforeach ?>
|
| 81 |
+
+ '</select></td>'
|
| 82 |
+
+ '<td class="nobr"><input class="<?php echo $_htmlClass ?> qty required-entry validate-greater-than-zero" type="text" name="<?php echo $_htmlName ?>[{{index}}][price_qty]" value="{{qty}}" id="tier_price_row_{{index}}_qty" />'
|
| 83 |
+
+ ' <small class="nobr"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__('and above')) ?></small></td>'
|
| 84 |
+
+ '<td><input class="<?php echo $_htmlClass ?> required-entry <?php echo $_priceValueValidation ?>" type="text" name="<?php echo $_htmlName ?>[{{index}}][price]" value="{{price}}" id="tier_price_row_{{index}}_price" /></td>'
|
| 85 |
+
+ '<td class="last"><input type="hidden" name="<?php echo $_htmlName ?>[{{index}}][delete]" class="delete" value="" id="tier_price_row_{{index}}_delete" />'
|
| 86 |
+
+ '<button title="<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__("Delete Tier")) ?>" type="button" class="scalable delete icon-btn delete-product-option" id="tier_price_row_{{index}}_delete_button" onclick="return tierPriceControl.deleteItem(event);">'
|
| 87 |
+
+ '<span><span><span><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('catalog')->__("Delete")) ?></span></span></span></button></td>'
|
| 88 |
+
+ '</tr>';
|
| 89 |
+
|
| 90 |
+
var tierPriceControl = {
|
| 91 |
+
template: new Template(tierPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', "")),
|
| 92 |
+
itemsCount: 0,
|
| 93 |
+
addItem : function () {
|
| 94 |
+
<?php if ($_readonly): ?>
|
| 95 |
+
if (arguments.length < 4) {
|
| 96 |
+
return;
|
| 97 |
+
}
|
| 98 |
+
<?php endif; ?>
|
| 99 |
+
var data = {
|
| 100 |
+
website_id: '<?php echo $this->getDefaultWebsite() ?>',
|
| 101 |
+
group: '<?php echo $this->getDefaultCustomerGroup() ?>',
|
| 102 |
+
qty: '',
|
| 103 |
+
price: '',
|
| 104 |
+
readOnly: false,
|
| 105 |
+
index: this.itemsCount++
|
| 106 |
+
};
|
| 107 |
+
|
| 108 |
+
if(arguments.length >= 4) {
|
| 109 |
+
data.website_id = arguments[0];
|
| 110 |
+
data.group = arguments[1];
|
| 111 |
+
data.qty = arguments[2];
|
| 112 |
+
data.price = arguments[3];
|
| 113 |
+
}
|
| 114 |
+
if (arguments.length == 5) {
|
| 115 |
+
data.readOnly = arguments[4];
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
Element.insert($('<?php echo $_htmlId ?>_container'), {
|
| 119 |
+
bottom : this.template.evaluate(data)
|
| 120 |
+
});
|
| 121 |
+
|
| 122 |
+
$('tier_price_row_' + data.index + '_cust_group').value = data.group;
|
| 123 |
+
$('tier_price_row_' + data.index + '_website').value = data.website_id;
|
| 124 |
+
|
| 125 |
+
<?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()):?>
|
| 126 |
+
var wss = $('tier_price_row_' + data.index + '_website');
|
| 127 |
+
var txt = wss.options[wss.selectedIndex].text;
|
| 128 |
+
|
| 129 |
+
wss.insert({after:'<span class="website-name">' + txt + '</span>'});
|
| 130 |
+
wss.hide();
|
| 131 |
+
<?php endif;?>
|
| 132 |
+
|
| 133 |
+
if (data.readOnly == '1') {
|
| 134 |
+
['website', 'cust_group', 'qty', 'price', 'delete'].each(function(idx){
|
| 135 |
+
$('tier_price_row_'+data.index+'_'+idx).disabled = true;
|
| 136 |
+
});
|
| 137 |
+
$('tier_price_row_'+data.index+'_delete_button').hide();
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
<?php if ($_readonly): ?>
|
| 141 |
+
$('<?php echo $_htmlId ?>_container').select('input', 'select').each(this.disableElement);
|
| 142 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button').each(this.disableElement);
|
| 143 |
+
<?php else: ?>
|
| 144 |
+
$('<?php echo $_htmlId ?>_container').select('input', 'select').each(function(el){ Event.observe(el, 'change', el.setHasChanges.bind(el)); });
|
| 145 |
+
<?php endif; ?>
|
| 146 |
+
},
|
| 147 |
+
disableElement: function(el) {
|
| 148 |
+
el.disabled = true;
|
| 149 |
+
el.addClassName('disabled');
|
| 150 |
+
},
|
| 151 |
+
deleteItem: function(event) {
|
| 152 |
+
var tr = Event.findElement(event, 'tr');
|
| 153 |
+
if (tr) {
|
| 154 |
+
Element.select(tr, '.delete').each(function(elem){elem.value='1'});
|
| 155 |
+
Element.select(tr, ['input', 'select']).each(function(elem){elem.hide()});
|
| 156 |
+
Element.hide(tr);
|
| 157 |
+
Element.addClassName(tr, 'no-display template');
|
| 158 |
+
}
|
| 159 |
+
return false;
|
| 160 |
+
}
|
| 161 |
+
};
|
| 162 |
+
<?php foreach ($this->getValues() as $_item): ?>
|
| 163 |
+
tierPriceControl.addItem('<?php echo $_item['website_id'] ?>', '<?php echo $_item['cust_group'] ?>', '<?php echo $_item['price_qty']*1 ?>', '<?php echo sprintf('%.2f', $_item['price']) ?>', <?php echo (int)!empty($_item['readonly'])?>);
|
| 164 |
+
<?php endforeach; ?>
|
| 165 |
+
<?php if ($_readonly): ?>
|
| 166 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button')
|
| 167 |
+
.each(tierPriceControl.disableElement);
|
| 168 |
+
<?php endif; ?>
|
| 169 |
+
//]]>
|
| 170 |
+
</script>
|
| 171 |
+
</td></tr>
|
app/design/adminhtml/default/default/template/catalog/product/edit/serializer.phtml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 $_id = 'id_' . md5(microtime()) ?>
|
| 29 |
+
<input type="hidden" name="<?php echo $this->getInputElementName()?>" value="" id="<?php echo $_id?>" />
|
| 30 |
+
<script type="text/javascript">
|
| 31 |
+
// create serializer controller, that will syncronize grid checkboxes with hidden input
|
| 32 |
+
new productLinksController('<?php echo $_id?>', <?php echo $this->getProductsJSON() ?>, <?php echo $this->getGridBlock()->getJsObjectName() ?>);
|
| 33 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php if (!$this->isReadonly()):?>
|
| 28 |
+
<div class="entry-edit">
|
| 29 |
+
<div id="assign_product_warrning" style="display: none;">
|
| 30 |
+
<ul class="messages">
|
| 31 |
+
<li class="error-msg">
|
| 32 |
+
<ul>
|
| 33 |
+
<li><?php echo $this->__('Links with associated products will retain only after saving current product.') ?></li>
|
| 34 |
+
</ul>
|
| 35 |
+
</li>
|
| 36 |
+
</ul>
|
| 37 |
+
</div>
|
| 38 |
+
<div class="entry-edit-head">
|
| 39 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Create Simple Associated Product') ?></h4>
|
| 40 |
+
</div>
|
| 41 |
+
<fieldset class="a-right">
|
| 42 |
+
<?php echo $this->getChildHtml('create_empty') ?> <?php echo $this->getChildHtml('create_from_configurable') ?>
|
| 43 |
+
</fieldset>
|
| 44 |
+
</div>
|
| 45 |
+
|
| 46 |
+
<div id="<?php echo $this->getHtmlId() ?>_simple_form" class="ignore-validate configurable-simple-product">
|
| 47 |
+
<?php echo $this->getChildHtml('simple'); ?>
|
| 48 |
+
</div>
|
| 49 |
+
<?php endif;?>
|
| 50 |
+
<div class="entry-edit">
|
| 51 |
+
<div class="entry-edit-head">
|
| 52 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Super product attributes configuration') ?></h4>
|
| 53 |
+
</div>
|
| 54 |
+
<fieldset id="<?php echo $this->getHtmlId() ?>">
|
| 55 |
+
<legend><?php echo Mage::helper('catalog')->__('Super product attributes configuration') ?></legend>
|
| 56 |
+
<input type="hidden" id="<?php echo $this->getHtmlId() ?>_save_links" name="configurable_products_data" value=""/>
|
| 57 |
+
<input type="hidden" id="<?php echo $this->getHtmlId() ?>_save_attributes" name="configurable_attributes_data" />
|
| 58 |
+
|
| 59 |
+
<ul class="messages">
|
| 60 |
+
<li class="notice-msg">
|
| 61 |
+
<ul><li><?php echo Mage::helper('catalog')->__('Price values for options should be specified in system base currency.')?></li></ul>
|
| 62 |
+
<ul><li><?php echo Mage::helper('catalog')->__('Attrribute names can be specified per store.')?></li></ul>
|
| 63 |
+
</li>
|
| 64 |
+
</ul>
|
| 65 |
+
<ul id="<?php echo $this->getHtmlId() ?>_attributes" class="super-attributes">
|
| 66 |
+
</ul>
|
| 67 |
+
</fieldset>
|
| 68 |
+
</div>
|
| 69 |
+
<div class="no-display" id="<?php echo $this->getHtmlId() ?>_attribute_template">
|
| 70 |
+
<div class="<?php if (!$this->isReadonly()):?>attribute-name-container <?php endif;?>left">
|
| 71 |
+
'{{frontend_label}}'
|
| 72 |
+
</div>
|
| 73 |
+
<div class="values-container right">
|
| 74 |
+
<label for="__id___label" class="bold"><?php echo Mage::helper('catalog')->__('Attribute Name:') ?></label>
|
| 75 |
+
<input id="__id___label" type="text" <?php if ($this->isAttributesConfigurationReadonly()): ?> disabled="disabled" <?php endif;?> class="input-text attribute-label required-entry template no-display" value="'{{label}}'" readonly="label" />
|
| 76 |
+
<input id="__id___label_use_default" type="checkbox" value="1" " checked="use_default" class="attribute-use-default-label">
|
| 77 |
+
<label for="__id___label_use_default"><?php echo Mage::helper('catalog')->__('Use default')?> ('{{store_label}}')</label>
|
| 78 |
+
<ul class="attribute-values">
|
| 79 |
+
</ul>
|
| 80 |
+
</div>
|
| 81 |
+
</div>
|
| 82 |
+
<div class="no-display" id="<?php echo $this->getHtmlId() ?>_value_template">
|
| 83 |
+
<div class="attribute-value-label-container left">
|
| 84 |
+
<?php echo Mage::helper('catalog')->__('Option:') ?> <strong>'{{label}}'</strong>
|
| 85 |
+
</div>
|
| 86 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 87 |
+
<div class="attribute-values-container-main">
|
| 88 |
+
<div class="attribute-values-container left">
|
| 89 |
+
<?php echo Mage::helper('catalog')->__('Price:') ?>
|
| 90 |
+
<input id="__id___pricing" type="text" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?> class="input-text attribute-price validate-number template no-display" value="'{{pricing_value}}'"/>
|
| 91 |
+
</div>
|
| 92 |
+
<div class="attribute-values-container left">
|
| 93 |
+
<select class="attribute-price-type" id="__id___price_type" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?>>
|
| 94 |
+
<option value="0"><?php echo Mage::helper('catalog')->__('Fixed') ?></option>
|
| 95 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Percentage') ?></option>
|
| 96 |
+
</select>
|
| 97 |
+
</div>
|
| 98 |
+
<?php if ($this->getShowUseDefaultPrice()):?>
|
| 99 |
+
<div class="attribute-values-container">
|
| 100 |
+
<input id="__id___default" type="checkbox" <?php if ($this->isAttributesPricesReadonly() || $this->getCanEditPrice() === false): ?> disabled="disabled" <?php endif;?> class="attribute-use-default-value"> <label for="__id___default" class="normal"><?php echo Mage::helper('catalog')->__('Use Default Value') ?></label>
|
| 101 |
+
</div>
|
| 102 |
+
<?php endif;?>
|
| 103 |
+
<?php else : ?>
|
| 104 |
+
<div class="attribute-values-container-main">
|
| 105 |
+
<div class="attribute-values-container left">
|
| 106 |
+
<input id="__id___pricing" type="hidden" class="attribute-price template no-display" value="0" />
|
| 107 |
+
</div>
|
| 108 |
+
<div class="attribute-values-container left">
|
| 109 |
+
<input type="hidden" class="attribute-price-type" id="__id___price_type" value="0" />
|
| 110 |
+
</div>
|
| 111 |
+
<?php if ($this->getShowUseDefaultPrice()) : ?>
|
| 112 |
+
<div class="attribute-values-container no-display">
|
| 113 |
+
<input id="__id___default" type="checkbox" <?php if ($this->isReadonly() || $this->getCanEditPrice() === false):?> disabled="disabled" <?php endif;?> class="attribute-use-default-value">
|
| 114 |
+
</div>
|
| 115 |
+
<?php endif; ?>
|
| 116 |
+
<?php endif; ?>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
<div class="template no-display" id="<?php echo $this->getHtmlId() ?>_simple_pricing">
|
| 120 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
| 121 |
+
<div class="attribute-values-container left v-middle">
|
| 122 |
+
<?php echo Mage::helper('catalog')->__('Price:') ?>
|
| 123 |
+
<input type="text" class="input-text attribute-price validate-number"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled" <?php endif; ?>/>
|
| 124 |
+
</div>
|
| 125 |
+
<div class="attribute-values-container left v-middle">
|
| 126 |
+
<select class="attribute-price-type"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled" <?php endif; ?>>
|
| 127 |
+
<option value="0"><?php echo Mage::helper('catalog')->__('Fixed') ?></option>
|
| 128 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Percentage') ?></option>
|
| 129 |
+
</select>
|
| 130 |
+
</div>
|
| 131 |
+
<?php else : ?>
|
| 132 |
+
<input type="hidden" class="attribute-price" />
|
| 133 |
+
<input type="hidden" class="attribute-price-type" />
|
| 134 |
+
<?php endif; ?>
|
| 135 |
+
</div>
|
| 136 |
+
<div class="template no-display" id="<?php echo $this->getHtmlId() ?>_simple_pricing_view">
|
| 137 |
+
<?php echo Mage::helper('catalog')->__('Price') ?> <strong>'{{value}}'</strong>
|
| 138 |
+
</div>
|
| 139 |
+
<?php echo $this->getGridHtml() ?>
|
| 140 |
+
<script type="text/javascript">
|
| 141 |
+
var superProduct = new Product.Configurable(<?php echo $this->getAttributesJson() ?>,<?php echo $this->getLinksJson() ?>,'<?php echo $this->getHtmlId() ?>_',<?php echo $this->getGridJsObject() ?>, <?php echo ( $this->isReadonly() ? 'true' : 'false'); ?>);
|
| 142 |
+
superProduct.createEmptyUrl = '<?php echo $this->getNewEmptyProductUrl() ?>';
|
| 143 |
+
superProduct.createNormalUrl = '<?php echo $this->getNewProductUrl() ?>';
|
| 144 |
+
superProduct.createQuickUrl = '<?php echo $this->getQuickCreationUrl() ?>';
|
| 145 |
+
|
| 146 |
+
Validation.add(
|
| 147 |
+
'validate-configurable',
|
| 148 |
+
'<?php echo $this->escapeJs(Mage::helper('catalog')->__('Product with this combination of attributes already associated to configurable.')) ?>',
|
| 149 |
+
superProduct.checkCreationUniqueAttributes.bind(superProduct)
|
| 150 |
+
)
|
| 151 |
+
</script>
|
| 152 |
+
|
| 153 |
+
<div><input type="hidden" name="affect_configurable_product_attributes" value="1" /></div>
|
app/design/adminhtml/default/default/template/catalog/product/edit/websites.phtml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head">
|
| 29 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Product In Websites') ?></h4>
|
| 30 |
+
</div>
|
| 31 |
+
<fieldset id="grop_fields">
|
| 32 |
+
<?php if($this->getProductId()): ?>
|
| 33 |
+
<ul class="messages">
|
| 34 |
+
<li class="notice-msg">
|
| 35 |
+
<ul>
|
| 36 |
+
<li><?php echo Mage::helper('catalog')->__("Items that you don't want to show in the catalog or search results should have status 'Disabled' in the desired store.") ?></li>
|
| 37 |
+
</ul>
|
| 38 |
+
</li>
|
| 39 |
+
</ul>
|
| 40 |
+
<?php endif; ?>
|
| 41 |
+
<div class="store-scope">
|
| 42 |
+
<?php echo $this->getHintHtml() ?>
|
| 43 |
+
<div class="tree-store-scope">
|
| 44 |
+
<?php foreach ($this->getWebsiteCollection() as $_website): ?>
|
| 45 |
+
<div class="website-name">
|
| 46 |
+
<input name="product[website_ids][]" value="<?php echo $_website->getId() ?>" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> class="checkbox website-checkbox" id="product_website_<?php echo $_website->getId() ?>" type="checkbox"<?php if($this->hasWebsite($_website->getId())): ?> checked="checked"<?php endif; ?> />
|
| 47 |
+
<big><strong><label for="product_website_<?php echo $_website->getId() ?>"><?php echo $this->escapeHtml($_website->getName()) ?></label></strong></big>
|
| 48 |
+
</div>
|
| 49 |
+
<div class="webiste-groups" id="product_website_<?php echo $_website->getId() ?>_data">
|
| 50 |
+
<?php foreach ($this->getGroupCollection($_website) as $_group): ?>
|
| 51 |
+
<h4><?php echo $this->escapeHtml($_group->getName()) ?></h4>
|
| 52 |
+
<div class="group-stores">
|
| 53 |
+
<table>
|
| 54 |
+
<?php foreach ($this->getStoreCollection($_group) as $_store): ?>
|
| 55 |
+
<tr>
|
| 56 |
+
<td><?php echo $this->escapeHtml($_store->getName()) ?></td>
|
| 57 |
+
<td>
|
| 58 |
+
<?php if($this->getWebsites() && !$this->hasWebsite($_website->getId())): ?>
|
| 59 |
+
<span class="website-<?php echo $_website->getId() ?>-select" style="display:none">
|
| 60 |
+
<?php echo Mage::helper('catalog')->__('(Copy data from: %s)', $this->getChooseFromStoreHtml($_store)) ?>
|
| 61 |
+
</span>
|
| 62 |
+
<?php endif; ?>
|
| 63 |
+
</td>
|
| 64 |
+
</tr>
|
| 65 |
+
<?php endforeach; ?>
|
| 66 |
+
</table>
|
| 67 |
+
</div>
|
| 68 |
+
<?php endforeach; ?>
|
| 69 |
+
</div>
|
| 70 |
+
<?php endforeach; ?>
|
| 71 |
+
</div>
|
| 72 |
+
</div>
|
| 73 |
+
</fieldset>
|
| 74 |
+
</div>
|
| 75 |
+
<script type="text/javascript">
|
| 76 |
+
//<![CDATA[
|
| 77 |
+
var productWebsiteCheckboxes = $$('.website-checkbox');
|
| 78 |
+
|
| 79 |
+
for(var i=0;i<productWebsiteCheckboxes.length;i++){
|
| 80 |
+
Event.observe(productWebsiteCheckboxes[i], 'click', toggleStoreFromChoosers);
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
function toggleStoreFromChoosers(event){
|
| 84 |
+
var element = Event.element(event);
|
| 85 |
+
var selects = $('product_website_'+element.value+'_data').getElementsBySelector('select');
|
| 86 |
+
var selectBlocks = $('product_website_'+element.value+'_data').getElementsByClassName('website-'+element.value+'-select');
|
| 87 |
+
for (var i=0; i<selects.length; i++) {
|
| 88 |
+
selects[i].disabled=!element.checked;
|
| 89 |
+
}
|
| 90 |
+
for (var i=0; i<selectBlocks.length; i++) {
|
| 91 |
+
if (element.checked) {
|
| 92 |
+
selectBlocks[i].show();
|
| 93 |
+
}
|
| 94 |
+
else {
|
| 95 |
+
selectBlocks[i].hide();
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
//]]>
|
| 100 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/helper/gallery.phtml
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Template for block Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<?php
|
| 33 |
+
$_block = $this;
|
| 34 |
+
/* @var $_block Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content */
|
| 35 |
+
?>
|
| 36 |
+
<div id="<?php echo $_block->getHtmlId() ?>" >
|
| 37 |
+
<ul class="messages">
|
| 38 |
+
<li class="notice-msg">
|
| 39 |
+
<ul>
|
| 40 |
+
<li>
|
| 41 |
+
<?php echo Mage::helper('catalog')->__('Image type and information need to be specified for each store view.'); ?>
|
| 42 |
+
</li>
|
| 43 |
+
</ul>
|
| 44 |
+
</li>
|
| 45 |
+
</ul>
|
| 46 |
+
<div class="grid">
|
| 47 |
+
<table cellspacing="0" class="data border" id="<?php echo $_block->getHtmlId() ?>_grid" width="100%">
|
| 48 |
+
<col width="1" />
|
| 49 |
+
<col />
|
| 50 |
+
<col width="70" />
|
| 51 |
+
<?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
|
| 52 |
+
<col />
|
| 53 |
+
<?php endforeach; ?>
|
| 54 |
+
<col width="70" />
|
| 55 |
+
<col width="70" />
|
| 56 |
+
<thead>
|
| 57 |
+
<tr class="headings">
|
| 58 |
+
<th><?php echo Mage::helper('catalog')->__('Image') ?></th>
|
| 59 |
+
<th><?php echo Mage::helper('catalog')->__('Label') ?></th>
|
| 60 |
+
<th><?php echo Mage::helper('catalog')->__('Sort Order') ?></th>
|
| 61 |
+
<?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
|
| 62 |
+
<th><?php echo $type['label'] ?></th>
|
| 63 |
+
<?php endforeach; ?>
|
| 64 |
+
<th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
|
| 65 |
+
<th class="last"><?php echo Mage::helper('catalog')->__('Remove') ?></th>
|
| 66 |
+
</tr>
|
| 67 |
+
</thead>
|
| 68 |
+
<tbody id="<?php echo $_block->getHtmlId() ?>_list">
|
| 69 |
+
<tr id="<?php echo $_block->getHtmlId() ?>_template" class="template no-display">
|
| 70 |
+
<td class="cell-image"><div class="place-holder" onmouseover="<?php echo $_block->getJsObjectName(); ?>.loadImage('__file__')"><span><?php echo Mage::helper('catalog')->__('Roll Over for preview') ?></span></div><img src="<?php echo $this->getSkinUrl('images/spacer.gif')?>" width="100" style="display:none;" alt="" /></td>
|
| 71 |
+
<td class="cell-label"><input type="text" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> class="input-text" onkeyup="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" onchange="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
|
| 72 |
+
<td class="cell-position"><input type="text" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> class="input-text validate-number" onkeyup="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" onchange="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
|
| 73 |
+
<?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
|
| 74 |
+
<td class="cell-<?php echo $typeId ?> a-center"><input <?php if($_block->getElement()->getAttributeReadonly($typeId)) :?> disabled="disabled" <?php endif;?> type="radio" name="<?php echo $type['field'] ?>" onclick="<?php echo $_block->getJsObjectName(); ?>.setProductImages('__file__')" value="__file__" /></td>
|
| 75 |
+
<?php endforeach; ?>
|
| 76 |
+
<td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
|
| 77 |
+
<td class="cell-remove a-center last"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
|
| 78 |
+
</tr>
|
| 79 |
+
<?php if($_block->hasUseDefault()): ?>
|
| 80 |
+
<tr id="<?php echo $_block->getHtmlId() ?>_default">
|
| 81 |
+
<td><?php echo Mage::helper('catalog')->__('Use Default Value') ?></td>
|
| 82 |
+
<td> </td>
|
| 83 |
+
<td> </td>
|
| 84 |
+
<?php foreach ($_block->getMediaAttributes() as $_attribute): ?>
|
| 85 |
+
<td class="a-center">
|
| 86 |
+
<?php if($_block->getElement()->canDisplayUseDefault($_attribute)): ?>
|
| 87 |
+
<input class="default-checkbox" name="use_default[]" type="checkbox" <?php if($_block->getElement()->getAttributeReadonly($_attribute->getAttributeCode())):?> disabled="disabled" <?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateUseDefault()"
|
| 88 |
+
<?php if($_block->getElement()->usedDefault($_attribute)): ?>checked<?php endif; ?> value="<?php echo $_attribute->getAttributeCode() ?>" />
|
| 89 |
+
<?php endif ?>
|
| 90 |
+
</td>
|
| 91 |
+
<?php endforeach; ?>
|
| 92 |
+
<td> </td>
|
| 93 |
+
<td class="last"> </td>
|
| 94 |
+
</tr>
|
| 95 |
+
<?php endif ?>
|
| 96 |
+
<tr id="<?php echo $_block->getHtmlId() ?>-image-0">
|
| 97 |
+
<td class="cell-image"><?php echo Mage::helper('catalog')->__('No image') ?></td>
|
| 98 |
+
<td class="cell-label"><input type="hidden" /> </td>
|
| 99 |
+
<td class="cell-position"><input type="hidden" /> </td>
|
| 100 |
+
<?php foreach ($_block->getImageTypes() as $typeId=>$type): ?>
|
| 101 |
+
<td class="cell-<?php echo $typeId ?> a-center"><input type="radio" <?php if($_block->getElement()->getAttributeReadonly($typeId)) :?> disabled="disabled" <?php endif;?> name="<?php echo $type['field'] ?>" onclick="<?php echo $_block->getJsObjectName(); ?>.setProductImages('no_selection')" value="no_selection" /></td>
|
| 102 |
+
<?php endforeach; ?>
|
| 103 |
+
<td class="cell-disable"><input type="hidden" /> </td>
|
| 104 |
+
<td class="cell-remove last"><input type="hidden" /> </td>
|
| 105 |
+
</tr>
|
| 106 |
+
</tbody>
|
| 107 |
+
<?php if (!$_block->getElement()->getReadonly()):?>
|
| 108 |
+
<tfoot>
|
| 109 |
+
<tr>
|
| 110 |
+
<td colspan="100" class="last" style="padding:8px">
|
| 111 |
+
<?php echo $_block->getUploaderHtml() ?>
|
| 112 |
+
</td>
|
| 113 |
+
</tr>
|
| 114 |
+
</tfoot>
|
| 115 |
+
<?php endif;?>
|
| 116 |
+
</table>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
<input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save" name="<?php echo $_block->getElement()->getName() ?>[images]" value="<?php echo $_block->escapeHtml($_block->getImagesJson()) ?>" />
|
| 120 |
+
<input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save_image" name="<?php echo $_block->getElement()->getName() ?>[values]" value="<?php echo $_block->escapeHtml($_block->getImagesValuesJson()) ?>" />
|
| 121 |
+
<script type="text/javascript">
|
| 122 |
+
//<![CDATA[
|
| 123 |
+
var <?php echo $_block->getJsObjectName(); ?> = new Product.Gallery('<?php echo $_block->getHtmlId() ?>', <?php if ($_block->getElement()->getReadonly()):?>null<?php else:?><?php echo $_block->getUploader()->getJsObjectName() ?><?php endif;?>, <?php echo $_block->getImageTypesJson() ?>);
|
| 124 |
+
//]]>
|
| 125 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/js.phtml
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
Event.observe(window, 'load', recalculateTax);
|
| 30 |
+
Event.observe(window, 'load', registerTaxRecalcs);
|
| 31 |
+
|
| 32 |
+
function registerTaxRecalcs()
|
| 33 |
+
{
|
| 34 |
+
if (typeof dynamicTaxes == 'undefined') {
|
| 35 |
+
return;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
for (var i=0; i<dynamicTaxes.length; i++) {
|
| 39 |
+
Event.observe($(dynamicTaxes[i]), 'change', recalculateTax);
|
| 40 |
+
}
|
| 41 |
+
Event.observe($('tax_class_id'), 'change', recalculateTax);
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
var priceFormat = <?php echo $this->helper('tax')->getPriceFormat($this->getStore()); ?>;
|
| 45 |
+
var taxRates = <?php echo $this->helper('tax')->getAllRatesByProductClass($this->getStore()); ?>;
|
| 46 |
+
|
| 47 |
+
function recalculateTax()
|
| 48 |
+
{
|
| 49 |
+
if (typeof dynamicTaxes == 'undefined') {
|
| 50 |
+
return;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
for (var i=0; i<dynamicTaxes.length; i++) {
|
| 54 |
+
var code = dynamicTaxes[i];
|
| 55 |
+
var span = $('dynamic-tax-' + code);
|
| 56 |
+
var input = $(code);
|
| 57 |
+
|
| 58 |
+
if (!input.value) {
|
| 59 |
+
span.innerHTML = '';
|
| 60 |
+
continue;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
var rate = 0;
|
| 64 |
+
var taxClass = $('tax_class_id').options[$('tax_class_id').selectedIndex].value;
|
| 65 |
+
eval('var value = taxRates.value_' + taxClass);
|
| 66 |
+
|
| 67 |
+
if (value != undefined) {
|
| 68 |
+
rate = value;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
var spanValue = '';
|
| 72 |
+
if (rate != 0) {
|
| 73 |
+
spanValue = ' ' + formatCurrency(input.value/(100+rate)*rate, priceFormat);
|
| 74 |
+
}
|
| 75 |
+
span.innerHTML = spanValue;
|
| 76 |
+
}
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
// Bind tab changes
|
| 80 |
+
function bindActiveProductTab(event) {
|
| 81 |
+
if(event.tab && event.tab.name && $('store_switcher')){
|
| 82 |
+
$('store_switcher').switchParams = 'active_tab/'+event.tab.name+'/';
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
varienGlobalEvents.attachEventHandler('showTab', bindActiveProductTab);
|
| 86 |
+
|
| 87 |
+
// bind active tab
|
| 88 |
+
<?php if($tabsBlock = $this->getLayout()->getBlock('product_tabs')): ?>
|
| 89 |
+
if(<?php echo $tabsBlock->getJsObjectName() ?> && <?php echo $tabsBlock->getJsObjectName() ?>.activeTab && $('store_switcher')){
|
| 90 |
+
$('store_switcher').switchParams = 'active_tab/'+<?php echo $tabsBlock->getJsObjectName() ?>.activeTab.name+'/';
|
| 91 |
+
}
|
| 92 |
+
<?php endif; ?>
|
| 93 |
+
//]]>
|
| 94 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/price.phtml
ADDED
|
@@ -0,0 +1,383 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
/**
|
| 30 |
+
* Template for displaying product price in different places (products grid, product view page etc)
|
| 31 |
+
*
|
| 32 |
+
* @see Mage_Adminhtml_Block_Catalog_Product_Price
|
| 33 |
+
*/
|
| 34 |
+
?>
|
| 35 |
+
<?php
|
| 36 |
+
/** @var $_coreHelper Mage_Core_Helper_Data */
|
| 37 |
+
$_coreHelper = $this->helper('core');
|
| 38 |
+
/** @var $_weeeHelper Mage_Weee_Helper_Data */
|
| 39 |
+
$_weeeHelper = $this->helper('weee');
|
| 40 |
+
/** @var $_taxHelper Mage_Tax_Helper_Data */
|
| 41 |
+
$_taxHelper = $this->helper('tax');
|
| 42 |
+
|
| 43 |
+
$_product = $this->getProduct();
|
| 44 |
+
$_id = $_product->getId();
|
| 45 |
+
$_storeId = $_product->getStoreId();
|
| 46 |
+
$_website = Mage::app()->getStore($_storeId)->getWebsite();
|
| 47 |
+
|
| 48 |
+
$_weeeSeparator = '';
|
| 49 |
+
$_simplePricesTax = ($_taxHelper->displayPriceIncludingTax() || $_taxHelper->displayBothPrices());
|
| 50 |
+
$_minimalPriceValue = $_product->getMinimalPrice();
|
| 51 |
+
$_minimalPrice = $_taxHelper->getPrice($_product, $_minimalPriceValue, $_simplePricesTax);
|
| 52 |
+
?>
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
<?php
|
| 56 |
+
$_exclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, $includingTax = null);
|
| 57 |
+
$_inclTax = $_taxHelper->getPrice($_product, $_minimalPriceValue, $includingTax = true);
|
| 58 |
+
?>
|
| 59 |
+
<?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product, null, null, $_website); ?>
|
| 60 |
+
<?php if ($_weeeHelper->typeOfDisplay($_product, array(1,2,4))): ?>
|
| 61 |
+
<?php $_weeeTaxAmount = $_weeeHelper->getAmount($_product, null, null, $_website); ?>
|
| 62 |
+
<?php $_weeeTaxAttributes = $_weeeHelper->getProductWeeeAttributesForRenderer($_product, null, null, $_website); ?>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
|
| 65 |
+
<div class="price-box">
|
| 66 |
+
<?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?>
|
| 67 |
+
<?php $_regularPrice = $_taxHelper->getPrice($_product, $_product->getPrice(), $_simplePricesTax) ?>
|
| 68 |
+
<?php $_finalPrice = $_taxHelper->getPrice($_product, $_product->getFinalPrice()) ?>
|
| 69 |
+
<?php $_finalPriceInclTax = $_taxHelper->getPrice($_product, $_product->getFinalPrice(), true) ?>
|
| 70 |
+
<?php $_weeeDisplayType = $_weeeHelper->getPriceDisplayType(); ?>
|
| 71 |
+
<?php if ($_finalPrice == $_price): ?>
|
| 72 |
+
<?php if ($_taxHelper->displayBothPrices()): ?>
|
| 73 |
+
<?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
|
| 74 |
+
<span class="price-excluding-tax">
|
| 75 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 76 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 77 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 78 |
+
</span>
|
| 79 |
+
</span>
|
| 80 |
+
<span class="price-including-tax">
|
| 81 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 82 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 83 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount,true,false) ?>
|
| 84 |
+
</span>
|
| 85 |
+
</span>
|
| 86 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
|
| 87 |
+
<span class="price-excluding-tax">
|
| 88 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 89 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 90 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 91 |
+
</span>
|
| 92 |
+
</span>
|
| 93 |
+
<span class="price-including-tax">
|
| 94 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 95 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 96 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 97 |
+
</span>
|
| 98 |
+
<span class="weee">(
|
| 99 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 100 |
+
<?php echo $_weeeSeparator; ?>
|
| 101 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 102 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 103 |
+
<?php endforeach; ?>
|
| 104 |
+
)</span>
|
| 105 |
+
</span>
|
| 106 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
|
| 107 |
+
<span class="price-excluding-tax">
|
| 108 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 109 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 110 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 111 |
+
</span>
|
| 112 |
+
</span>
|
| 113 |
+
<span class="price-including-tax">
|
| 114 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 115 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 116 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 117 |
+
</span>
|
| 118 |
+
<span class="weee">(
|
| 119 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 120 |
+
<?php echo $_weeeSeparator; ?>
|
| 121 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
|
| 122 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 123 |
+
<?php endforeach; ?>
|
| 124 |
+
)</span>
|
| 125 |
+
</span>
|
| 126 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
|
| 127 |
+
<span class="price-excluding-tax">
|
| 128 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 129 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 130 |
+
<?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, false) ?>
|
| 131 |
+
</span>
|
| 132 |
+
</span>
|
| 133 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 134 |
+
<span class="weee">
|
| 135 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 136 |
+
</span>
|
| 137 |
+
<?php endforeach; ?>
|
| 138 |
+
<span class="price-including-tax">
|
| 139 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 140 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 141 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 142 |
+
</span>
|
| 143 |
+
</span>
|
| 144 |
+
<?php else: ?>
|
| 145 |
+
<span class="price-excluding-tax">
|
| 146 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 147 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 148 |
+
<?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, false) ?>
|
| 149 |
+
</span>
|
| 150 |
+
</span>
|
| 151 |
+
<span class="price-including-tax">
|
| 152 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 153 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 154 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax, $_storeId, true, false) ?>
|
| 155 |
+
</span>
|
| 156 |
+
</span>
|
| 157 |
+
<?php endif; ?>
|
| 158 |
+
<?php else: ?>
|
| 159 |
+
<?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
|
| 160 |
+
<span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 161 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
|
| 162 |
+
</span>
|
| 163 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
|
| 164 |
+
<span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 165 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
|
| 166 |
+
</span>
|
| 167 |
+
<span class="weee">(
|
| 168 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 169 |
+
<?php echo $_weeeSeparator; ?>
|
| 170 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 171 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 172 |
+
<?php endforeach; ?>
|
| 173 |
+
)</span>
|
| 174 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
|
| 175 |
+
<span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 176 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
|
| 177 |
+
</span>
|
| 178 |
+
<span class="weee">(
|
| 179 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 180 |
+
<?php echo $_weeeSeparator; ?>
|
| 181 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
|
| 182 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 183 |
+
<?php endforeach; ?>
|
| 184 |
+
)</span>
|
| 185 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
|
| 186 |
+
<span class="regular-price"><?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, true) ?></span><br />
|
| 187 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 188 |
+
<span class="weee">
|
| 189 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 190 |
+
</span>
|
| 191 |
+
<?php endforeach; ?>
|
| 192 |
+
<span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 193 |
+
<?php echo $_coreHelper->currencyByStore($_price+$_weeeTaxAmount, $_storeId, true, true) ?>
|
| 194 |
+
</span>
|
| 195 |
+
<?php else: ?>
|
| 196 |
+
<span class="regular-price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 197 |
+
<?php echo $_coreHelper->currencyByStore($_price, $_storeId, true, true) ?>
|
| 198 |
+
</span>
|
| 199 |
+
<?php endif; ?>
|
| 200 |
+
<?php endif; ?>
|
| 201 |
+
<?php else: /* if ($_finalPrice == $_price): */ ?>
|
| 202 |
+
<?php $_originalWeeeTaxAmount = $_weeeHelper->getOriginalAmount($_product); ?>
|
| 203 |
+
|
| 204 |
+
<?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 0)): // including ?>
|
| 205 |
+
<p class="old-price">
|
| 206 |
+
<span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
|
| 207 |
+
<span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 208 |
+
<?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
|
| 209 |
+
</span>
|
| 210 |
+
</p>
|
| 211 |
+
|
| 212 |
+
<?php if ($_taxHelper->displayBothPrices()): ?>
|
| 213 |
+
<p class="special-price">
|
| 214 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 215 |
+
<span class="price-excluding-tax">
|
| 216 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 217 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 218 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 219 |
+
</span>
|
| 220 |
+
</span>
|
| 221 |
+
<span class="price-including-tax">
|
| 222 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 223 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 224 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 225 |
+
</span>
|
| 226 |
+
</span>
|
| 227 |
+
</p>
|
| 228 |
+
<?php else: ?>
|
| 229 |
+
<p class="special-price">
|
| 230 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 231 |
+
<span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 232 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 233 |
+
</span>
|
| 234 |
+
</p>
|
| 235 |
+
<?php endif; ?>
|
| 236 |
+
|
| 237 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 1)): // incl. + weee ?>
|
| 238 |
+
<p class="old-price">
|
| 239 |
+
<span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
|
| 240 |
+
<span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 241 |
+
<?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
|
| 242 |
+
</span>
|
| 243 |
+
</p>
|
| 244 |
+
|
| 245 |
+
<p class="special-price">
|
| 246 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 247 |
+
<span class="price-excluding-tax">
|
| 248 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 249 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 250 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 251 |
+
</span>
|
| 252 |
+
</span>
|
| 253 |
+
<span class="weee">(
|
| 254 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 255 |
+
<?php echo $_weeeSeparator; ?>
|
| 256 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 257 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 258 |
+
<?php endforeach; ?>
|
| 259 |
+
)</span>
|
| 260 |
+
<span class="price-including-tax">
|
| 261 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 262 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 263 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 264 |
+
</span>
|
| 265 |
+
</span>
|
| 266 |
+
</p>
|
| 267 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 4)): // incl. + weee ?>
|
| 268 |
+
<p class="old-price">
|
| 269 |
+
<span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
|
| 270 |
+
<span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 271 |
+
<?php echo $_coreHelper->currencyByStore($_regularPrice+$_originalWeeeTaxAmount, $_storeId, true, false) ?>
|
| 272 |
+
</span>
|
| 273 |
+
</p>
|
| 274 |
+
|
| 275 |
+
<p class="special-price">
|
| 276 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 277 |
+
<span class="price-excluding-tax">
|
| 278 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 279 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 280 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 281 |
+
</span>
|
| 282 |
+
</span>
|
| 283 |
+
<span class="weee">(
|
| 284 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 285 |
+
<?php echo $_weeeSeparator; ?>
|
| 286 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount()+$_weeeTaxAttribute->getTaxAmount(), $_storeId, true, true); ?>
|
| 287 |
+
<?php $_weeeSeparator = ' + '; ?>
|
| 288 |
+
<?php endforeach; ?>
|
| 289 |
+
)</span>
|
| 290 |
+
<span class="price-including-tax">
|
| 291 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 292 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 293 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 294 |
+
</span>
|
| 295 |
+
</span>
|
| 296 |
+
</p>
|
| 297 |
+
<?php elseif ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, 2)): // excl. + weee + final ?>
|
| 298 |
+
<p class="old-price">
|
| 299 |
+
<span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
|
| 300 |
+
<span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 301 |
+
<?php echo $_coreHelper->currencyByStore($_regularPrice, $_storeId, true, false) ?>
|
| 302 |
+
</span>
|
| 303 |
+
</p>
|
| 304 |
+
|
| 305 |
+
<p class="special-price">
|
| 306 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 307 |
+
<span class="price-excluding-tax">
|
| 308 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 309 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 310 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
|
| 311 |
+
</span>
|
| 312 |
+
</span>
|
| 313 |
+
<?php foreach ($_weeeTaxAttributes as $_weeeTaxAttribute): ?>
|
| 314 |
+
<span class="weee">
|
| 315 |
+
<?php echo $_weeeTaxAttribute->getName(); ?>: <?php echo $_coreHelper->currencyByStore($_weeeTaxAttribute->getAmount(), $_storeId, true, true); ?>
|
| 316 |
+
</span>
|
| 317 |
+
<?php endforeach; ?>
|
| 318 |
+
<span class="price-including-tax">
|
| 319 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 320 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 321 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax+$_weeeTaxAmount, $_storeId, true, false) ?>
|
| 322 |
+
</span>
|
| 323 |
+
</span>
|
| 324 |
+
</p>
|
| 325 |
+
<?php else: // excl. ?>
|
| 326 |
+
<p class="old-price">
|
| 327 |
+
<span class="price-label"><?php echo $this->__('Regular Price:') ?></span>
|
| 328 |
+
<span class="price" id="old-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 329 |
+
<?php echo $_coreHelper->currencyByStore($_regularPrice, $_storeId, true, false) ?>
|
| 330 |
+
</span>
|
| 331 |
+
</p>
|
| 332 |
+
|
| 333 |
+
<?php if ($_taxHelper->displayBothPrices()): ?>
|
| 334 |
+
<p class="special-price">
|
| 335 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 336 |
+
<span class="price-excluding-tax">
|
| 337 |
+
<span class="label"><?php echo $this->helper('tax')->__('Excl. Tax:') ?></span>
|
| 338 |
+
<span class="price" id="price-excluding-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 339 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
|
| 340 |
+
</span>
|
| 341 |
+
</span>
|
| 342 |
+
<span class="price-including-tax">
|
| 343 |
+
<span class="label"><?php echo $this->helper('tax')->__('Incl. Tax:') ?></span>
|
| 344 |
+
<span class="price" id="price-including-tax-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 345 |
+
<?php echo $_coreHelper->currencyByStore($_finalPriceInclTax, $_storeId, true, false) ?>
|
| 346 |
+
</span>
|
| 347 |
+
</span>
|
| 348 |
+
</p>
|
| 349 |
+
<?php else: ?>
|
| 350 |
+
<p class="special-price">
|
| 351 |
+
<span class="price-label"><?php echo $this->__('Special Price:') ?></span>
|
| 352 |
+
<span class="price" id="product-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 353 |
+
<?php echo $_coreHelper->currencyByStore($_finalPrice, $_storeId, true, false) ?>
|
| 354 |
+
</span>
|
| 355 |
+
</p>
|
| 356 |
+
<?php endif; ?>
|
| 357 |
+
<?php endif; ?>
|
| 358 |
+
|
| 359 |
+
<?php endif; /* if ($_finalPrice == $_price): */ ?>
|
| 360 |
+
|
| 361 |
+
<?php if ($this->getDisplayMinimalPrice() && $_minimalPriceValue && $_minimalPriceValue < $_product->getFinalPrice()): ?>
|
| 362 |
+
|
| 363 |
+
<?php $_minimalPriceDisplayValue = $_minimalPrice; ?>
|
| 364 |
+
<?php if ($_weeeTaxAmount && $_weeeHelper->typeOfDisplay($_product, array(0, 1, 4))): ?>
|
| 365 |
+
<?php $_minimalPriceDisplayValue = $_minimalPrice+$_weeeTaxAmount; ?>
|
| 366 |
+
<?php endif; ?>
|
| 367 |
+
|
| 368 |
+
<?php if ($this->getUseLinkForAsLowAs()):?>
|
| 369 |
+
<a href="<?php echo $_product->getProductUrl(); ?>" class="minimal-price-link">
|
| 370 |
+
<?php else:?>
|
| 371 |
+
<span class="minimal-price-link">
|
| 372 |
+
<?php endif?>
|
| 373 |
+
<span class="label"><?php echo $this->__('As low as:') ?></span>
|
| 374 |
+
<span class="price" id="product-minimal-price-<?php echo $_id ?><?php echo $this->getIdSuffix() ?>">
|
| 375 |
+
<?php echo $_coreHelper->currencyByStore($_minimalPriceDisplayValue, $_storeId, true, false) ?>
|
| 376 |
+
</span>
|
| 377 |
+
<?php if ($this->getUseLinkForAsLowAs()):?>
|
| 378 |
+
</a>
|
| 379 |
+
<?php else:?>
|
| 380 |
+
</span>
|
| 381 |
+
<?php endif?>
|
| 382 |
+
<?php endif; /* if ($this->getDisplayMinimalPrice() && $_minimalPrice && $_minimalPrice < $_finalPrice): */ ?>
|
| 383 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/product/tab/alert.phtml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Template for block Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Alerts
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<div id="alert_messages_block"><?php echo $this->getMessageHtml() ?></div>
|
| 33 |
+
<div>
|
| 34 |
+
<h4 class="icon-head head-edit-form"><?php echo Mage::helper('productalert')->__('Product Alerts') ?></h4>
|
| 35 |
+
</div>
|
| 36 |
+
<div class="clear"></div>
|
| 37 |
+
<?php echo $this->getAccordionHtml() ?>
|
app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php if ($this->isReadonly()):?>
|
| 28 |
+
<?php $_readonly = ' disabled="disabled" ';?>
|
| 29 |
+
<?php else: ?>
|
| 30 |
+
<?php $_readonly = '';?>
|
| 31 |
+
<?php endif; ?>
|
| 32 |
+
<div class="entry-edit">
|
| 33 |
+
<div class="entry-edit-head">
|
| 34 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Inventory') ?></h4>
|
| 35 |
+
</div>
|
| 36 |
+
<fieldset>
|
| 37 |
+
|
| 38 |
+
<legend><?php echo Mage::helper('catalog')->__('Inventory') ?></legend>
|
| 39 |
+
<table cellspacing="0" class="form-list" id="table_cataloginventory">
|
| 40 |
+
<tr>
|
| 41 |
+
<td class="label"><label for="inventory_manage_stock"><?php echo Mage::helper('catalog')->__('Manage Stock') ?></label></td>
|
| 42 |
+
<td class="value"><select id="inventory_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][manage_stock]" class="select" <?php echo $_readonly;?>>
|
| 43 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 44 |
+
<option value="0"<?php if ($this->getConfigFieldValue('manage_stock') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 45 |
+
</select>
|
| 46 |
+
<input type="hidden" id="inventory_manage_stock_default" value="<?php echo $this->getDefaultConfigValue('manage_stock'); ?>" />
|
| 47 |
+
|
| 48 |
+
<?php $_checked = ($this->getFieldValue('use_config_manage_stock') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 49 |
+
<input type="checkbox" id="inventory_use_config_manage_stock" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_manage_stock]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
|
| 50 |
+
<label for="inventory_use_config_manage_stock" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 51 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_manage_stock'), $('inventory_use_config_manage_stock').parentNode);</script><?php endif; ?></td>
|
| 52 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 53 |
+
</tr>
|
| 54 |
+
|
| 55 |
+
<?php if(!$this->getProduct()->isComposite()): ?>
|
| 56 |
+
<tr>
|
| 57 |
+
<td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
|
| 58 |
+
<td class="value">
|
| 59 |
+
<?php if (!$_readonly):?>
|
| 60 |
+
<input type="hidden" id="original_inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][original_inventory_qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>"/>
|
| 61 |
+
<?php endif;?>
|
| 62 |
+
<input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>" <?php echo $_readonly;?>/>
|
| 63 |
+
</td>
|
| 64 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 65 |
+
</tr>
|
| 66 |
+
|
| 67 |
+
<tr>
|
| 68 |
+
<td class="label"><label for="inventory_min_qty"><?php echo Mage::helper('catalog')->__('Qty for Item\'s Status to Become Out of Stock') ?></label></td>
|
| 69 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_min_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][min_qty]" value="<?php echo $this->getFieldValue('min_qty')*1 ?>" <?php echo $_readonly;?>/>
|
| 70 |
+
|
| 71 |
+
<?php $_checked = ($this->getFieldValue('use_config_min_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 72 |
+
<input type="checkbox" id="inventory_use_config_min_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_min_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" <?php echo $_readonly;?> />
|
| 73 |
+
<label for="inventory_use_config_min_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 74 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_min_qty'), $('inventory_use_config_min_qty').parentNode);</script><?php endif; ?></td>
|
| 75 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 76 |
+
</tr>
|
| 77 |
+
|
| 78 |
+
<tr>
|
| 79 |
+
<td class="label"><label for="inventory_min_sale_qty"><?php echo Mage::helper('catalog')->__('Minimum Qty Allowed in Shopping Cart') ?></label></td>
|
| 80 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][min_sale_qty]" value="<?php echo $this->getFieldValue('min_sale_qty')*1 ?>" <?php echo $_readonly;?>/>
|
| 81 |
+
|
| 82 |
+
<?php $_checked = ($this->getFieldValue('use_config_min_sale_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 83 |
+
<input type="checkbox" id="inventory_use_config_min_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_min_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
|
| 84 |
+
<label for="inventory_use_config_min_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 85 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_min_sale_qty'), $('inventory_use_config_min_sale_qty').parentNode);</script><?php endif; ?></td>
|
| 86 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 87 |
+
</tr>
|
| 88 |
+
|
| 89 |
+
<tr>
|
| 90 |
+
<td class="label"><label for="inventory_max_sale_qty"><?php echo Mage::helper('catalog')->__('Maximum Qty Allowed in Shopping Cart') ?></label></td>
|
| 91 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][max_sale_qty]" value="<?php echo $this->getFieldValue('max_sale_qty')*1 ?>" <?php echo $_readonly;?> />
|
| 92 |
+
|
| 93 |
+
<?php $_checked = ($this->getFieldValue('use_config_max_sale_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 94 |
+
<input type="checkbox" id="inventory_use_config_max_sale_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_max_sale_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
|
| 95 |
+
<label for="inventory_use_config_max_sale_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 96 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_max_sale_qty'), $('inventory_use_config_max_sale_qty').parentNode);</script><?php endif; ?></td>
|
| 97 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 98 |
+
</tr>
|
| 99 |
+
|
| 100 |
+
<?php if($this->canUseQtyDecimals()): ?>
|
| 101 |
+
<tr>
|
| 102 |
+
<td class="label"><label for="inventory_is_qty_decimal"><?php echo Mage::helper('catalog')->__('Qty Uses Decimals') ?></label></td>
|
| 103 |
+
<td class="value"><select id="inventory_is_qty_decimal" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_qty_decimal]" class="select" <?php echo $_readonly;?>>
|
| 104 |
+
<option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 105 |
+
<option value="1"<?php if($this->getFieldValue('is_qty_decimal')==1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 106 |
+
</select>
|
| 107 |
+
</td>
|
| 108 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 109 |
+
</tr>
|
| 110 |
+
|
| 111 |
+
<?php if (!$this->isVirtual()) : ?>
|
| 112 |
+
<tr>
|
| 113 |
+
<td class="label"><label for="inventory_is_decimal_divided"><?php echo Mage::helper('catalog')->__('Can be Divided into Multiple Boxes for Shipping') ?></label></td>
|
| 114 |
+
<td class="value"><select id="inventory_is_decimal_divided" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_decimal_divided]" class="select" <?php echo $_readonly;?>>
|
| 115 |
+
<option value="0"><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 116 |
+
<option value="1"<?php if($this->getFieldValue('is_decimal_divided') == 1): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 117 |
+
</select>
|
| 118 |
+
</td>
|
| 119 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 120 |
+
</tr>
|
| 121 |
+
<?php endif; ?>
|
| 122 |
+
|
| 123 |
+
<?php endif; ?>
|
| 124 |
+
|
| 125 |
+
<tr>
|
| 126 |
+
<td class="label"><label for="inventory_backorders"><?php echo Mage::helper('catalog')->__('Backorders') ?></label></td>
|
| 127 |
+
<td class="value"><select id="inventory_backorders" name="<?php echo $this->getFieldSuffix() ?>[stock_data][backorders]" class="select" <?php echo $_readonly;?>>
|
| 128 |
+
<?php foreach ($this->getBackordersOption() as $option): ?>
|
| 129 |
+
<?php $_selected = ($option['value'] == $this->getFieldValue('backorders')) ? 'selected="selected"' : '' ?>
|
| 130 |
+
<option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
|
| 131 |
+
<?php endforeach; ?>
|
| 132 |
+
</select>
|
| 133 |
+
|
| 134 |
+
<?php $_checked = ($this->getFieldValue('use_config_backorders') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 135 |
+
<input type="checkbox" id="inventory_use_config_backorders" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_backorders]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?> />
|
| 136 |
+
<label for="inventory_use_config_backorders" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 137 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_backorders'), $('inventory_use_config_backorders').parentNode);</script><?php endif; ?></td>
|
| 138 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 139 |
+
</tr>
|
| 140 |
+
<tr>
|
| 141 |
+
<td class="label"><label for="inventory_notify_stock_qty"><?php echo Mage::helper('catalog')->__('Notify for Quantity Below') ?></label></td>
|
| 142 |
+
<td class="value"><input type="text" class="input-text validate-number" id="inventory_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][notify_stock_qty]" value="<?php echo $this->getFieldValue('notify_stock_qty')*1 ?>" <?php echo $_readonly;?>/>
|
| 143 |
+
|
| 144 |
+
<?php $_checked = ($this->getFieldValue('use_config_notify_stock_qty') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 145 |
+
<input type="checkbox" id="inventory_use_config_notify_stock_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_notify_stock_qty]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
|
| 146 |
+
<label for="inventory_use_config_notify_stock_qty" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 147 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_notify_stock_qty'), $('inventory_use_config_notify_stock_qty').parentNode);</script><?php endif; ?></td>
|
| 148 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 149 |
+
</tr>
|
| 150 |
+
<?php endif; ?>
|
| 151 |
+
<tr>
|
| 152 |
+
<td class="label"><label for="inventory_enable_qty_increments"><?php echo Mage::helper('catalog')->__('Enable Qty Increments') ?></label></td>
|
| 153 |
+
<td class="value"><select id="inventory_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][enable_qty_increments]" class="select" <?php echo $_readonly;?>>
|
| 154 |
+
<option value="1"><?php echo Mage::helper('catalog')->__('Yes') ?></option>
|
| 155 |
+
<option value="0"<?php if ($this->getConfigFieldValue('enable_qty_increments') == 0): ?> selected="selected"<?php endif; ?>><?php echo Mage::helper('catalog')->__('No') ?></option>
|
| 156 |
+
</select>
|
| 157 |
+
<input type="hidden" id="inventory_enable_qty_increments_default" value="<?php echo $this->getDefaultConfigValue('enable_qty_increments'); ?>" />
|
| 158 |
+
|
| 159 |
+
<?php $_checked = ($this->getFieldValue('use_config_enable_qty_increments') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 160 |
+
<input type="checkbox" id="inventory_use_config_enable_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_enable_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
|
| 161 |
+
<label for="inventory_use_config_enable_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 162 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_enable_qty_increments'), $('inventory_use_config_enable_qty_increments').parentNode);</script><?php endif; ?></td>
|
| 163 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 164 |
+
</tr>
|
| 165 |
+
<tr>
|
| 166 |
+
<td class="label"><label for="inventory_qty_increments"><?php echo Mage::helper('catalog')->__('Qty Increments') ?></label></td>
|
| 167 |
+
<td class="value">
|
| 168 |
+
<input type="text" class="input-text validate-digits" id="inventory_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty_increments]" value="<?php echo $this->getFieldValue('qty_increments')*1 ?>" <?php echo $_readonly;?>/>
|
| 169 |
+
<?php $_checked = ($this->getFieldValue('use_config_qty_increments') || $this->IsNew()) ? 'checked="checked"' : '' ?>
|
| 170 |
+
<input type="checkbox" id="inventory_use_config_qty_increments" name="<?php echo $this->getFieldSuffix() ?>[stock_data][use_config_qty_increments]" value="1" <?php echo $_checked ?> onclick="toggleValueElements(this, this.parentNode);" class="checkbox" <?php echo $_readonly;?>/>
|
| 171 |
+
<label for="inventory_use_config_qty_increments" class="normal"><?php echo Mage::helper('catalog')->__('Use Config Settings') ?></label>
|
| 172 |
+
<?php if (!$this->isReadonly()):?><script type="text/javascript">toggleValueElements($('inventory_use_config_qty_increments'), $('inventory_use_config_qty_increments').parentNode);</script><?php endif; ?></td>
|
| 173 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 174 |
+
</tr>
|
| 175 |
+
<tr>
|
| 176 |
+
<td class="label"><label for="inventory_stock_availability"><?php echo Mage::helper('catalog')->__('Stock Availability') ?></label></td>
|
| 177 |
+
<td class="value"><select id="inventory_stock_availability" name="<?php echo $this->getFieldSuffix() ?>[stock_data][is_in_stock]" class="select" <?php echo $_readonly;?>>
|
| 178 |
+
<?php foreach ($this->getStockOption() as $option): ?>
|
| 179 |
+
<?php $_selected = ($option['value'] == $this->getFieldValue('is_in_stock')) ? 'selected="selected"' : '' ?>
|
| 180 |
+
<option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
|
| 181 |
+
<?php endforeach; ?>
|
| 182 |
+
</select>
|
| 183 |
+
</td>
|
| 184 |
+
<td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
|
| 185 |
+
</tr>
|
| 186 |
+
</table>
|
| 187 |
+
</fieldset>
|
| 188 |
+
</div>
|
| 189 |
+
<script type="text/javascript">
|
| 190 |
+
//<![CDATA[
|
| 191 |
+
function changeManageStockOption()
|
| 192 |
+
{
|
| 193 |
+
var manageStock = $('inventory_use_config_manage_stock').checked
|
| 194 |
+
? $('inventory_manage_stock_default').value
|
| 195 |
+
: $('inventory_manage_stock').value;
|
| 196 |
+
var catalogInventoryNotManageStockFields = {
|
| 197 |
+
inventory_min_sale_qty: true,
|
| 198 |
+
inventory_max_sale_qty: true,
|
| 199 |
+
inventory_enable_qty_increments : true,
|
| 200 |
+
inventory_qty_increments: true
|
| 201 |
+
};
|
| 202 |
+
|
| 203 |
+
$$('#table_cataloginventory tr').each(function(el) {
|
| 204 |
+
if (el == $('inventory_manage_stock').up(1)) {
|
| 205 |
+
return;
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
for (field in catalogInventoryNotManageStockFields) {
|
| 209 |
+
if ($(field) && ($(field).up(1) == el)) {
|
| 210 |
+
return;
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
el[manageStock == 1 ? 'show' : 'hide']();
|
| 215 |
+
});
|
| 216 |
+
|
| 217 |
+
return true;
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
function applyEnableQtyIncrements() {
|
| 221 |
+
var enableQtyIncrements = $('inventory_use_config_enable_qty_increments').checked
|
| 222 |
+
? $('inventory_enable_qty_increments_default').value
|
| 223 |
+
: $('inventory_enable_qty_increments').value;
|
| 224 |
+
|
| 225 |
+
$('inventory_qty_increments').up('tr')[enableQtyIncrements == 1 ? 'show' : 'hide']();
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
function applyEnableDecimalDivided() {
|
| 229 |
+
<?php if (!$this->isVirtual()) : ?>
|
| 230 |
+
$('inventory_is_decimal_divided').up('tr').hide();
|
| 231 |
+
<?php endif; ?>
|
| 232 |
+
$('inventory_qty_increments').removeClassName('validate-digits').removeClassName('validate-number');
|
| 233 |
+
$('inventory_min_sale_qty').removeClassName('validate-digits').removeClassName('validate-number');
|
| 234 |
+
if ($('inventory_is_qty_decimal').value == 1) {
|
| 235 |
+
<?php if (!$this->isVirtual()) : ?>
|
| 236 |
+
$('inventory_is_decimal_divided').up('tr').show();
|
| 237 |
+
<?php endif; ?>
|
| 238 |
+
$('inventory_qty_increments').addClassName('validate-number');
|
| 239 |
+
$('inventory_min_sale_qty').addClassName('validate-number');
|
| 240 |
+
} else {
|
| 241 |
+
$('inventory_qty_increments').addClassName('validate-digits');
|
| 242 |
+
$('inventory_min_sale_qty').addClassName('validate-digits');
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
Event.observe(window, 'load', function() {
|
| 247 |
+
if ($('inventory_manage_stock') && $('inventory_use_config_manage_stock')) {
|
| 248 |
+
Event.observe($('inventory_manage_stock'), 'change', changeManageStockOption);
|
| 249 |
+
Event.observe($('inventory_use_config_manage_stock'), 'change', changeManageStockOption);
|
| 250 |
+
changeManageStockOption();
|
| 251 |
+
}
|
| 252 |
+
if ($('inventory_enable_qty_increments') && $('inventory_use_config_enable_qty_increments')) {
|
| 253 |
+
Event.observe($('inventory_enable_qty_increments'), 'change', applyEnableQtyIncrements);
|
| 254 |
+
Event.observe($('inventory_use_config_enable_qty_increments'), 'change', applyEnableQtyIncrements);
|
| 255 |
+
applyEnableQtyIncrements();
|
| 256 |
+
}
|
| 257 |
+
if ($('inventory_is_qty_decimal') && $('inventory_qty_increments') && $('inventory_min_sale_qty')) {
|
| 258 |
+
Event.observe($('inventory_is_qty_decimal'), 'change', applyEnableDecimalDivided);
|
| 259 |
+
applyEnableDecimalDivided();
|
| 260 |
+
}
|
| 261 |
+
});
|
| 262 |
+
//]]>
|
| 263 |
+
</script>
|
app/design/adminhtml/default/default/template/catalog/product/widget/chooser/container.phtml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Container for product link widget chooser
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Catalog_Product_Widget_Chooser_Container
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<div class="columns">
|
| 35 |
+
<div class="side-col"><?php echo $this->getTreeHtml() ?></div>
|
| 36 |
+
<div class="main-col"><?php echo $this->getGridHtml() ?></div>
|
| 37 |
+
</div>
|
app/design/adminhtml/default/default/template/catalog/wysiwyg/js.phtml
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
//<![CDATA[
|
| 29 |
+
|
| 30 |
+
Window.keepMultiModalWindow = true;
|
| 31 |
+
var catalogWysiwygEditor = {
|
| 32 |
+
overlayShowEffectOptions : null,
|
| 33 |
+
overlayHideEffectOptions : null,
|
| 34 |
+
open : function(editorUrl, elementId) {
|
| 35 |
+
if (editorUrl && elementId) {
|
| 36 |
+
new Ajax.Request(editorUrl, {
|
| 37 |
+
parameters: {
|
| 38 |
+
element_id: elementId+'_editor',
|
| 39 |
+
store_id: '<?php echo $this->getStoreId() ?>'
|
| 40 |
+
},
|
| 41 |
+
onSuccess: function(transport) {
|
| 42 |
+
try {
|
| 43 |
+
this.openDialogWindow(transport.responseText, elementId);
|
| 44 |
+
} catch(e) {
|
| 45 |
+
alert(e.message);
|
| 46 |
+
}
|
| 47 |
+
}.bind(this)
|
| 48 |
+
});
|
| 49 |
+
}
|
| 50 |
+
},
|
| 51 |
+
openDialogWindow : function(content, elementId) {
|
| 52 |
+
this.overlayShowEffectOptions = Windows.overlayShowEffectOptions;
|
| 53 |
+
this.overlayHideEffectOptions = Windows.overlayHideEffectOptions;
|
| 54 |
+
Windows.overlayShowEffectOptions = {duration:0};
|
| 55 |
+
Windows.overlayHideEffectOptions = {duration:0};
|
| 56 |
+
|
| 57 |
+
Dialog.confirm(content, {
|
| 58 |
+
draggable:true,
|
| 59 |
+
resizable:true,
|
| 60 |
+
closable:true,
|
| 61 |
+
className:"magento",
|
| 62 |
+
windowClassName:"popup-window",
|
| 63 |
+
title:'WYSIWYG Editor',
|
| 64 |
+
width:950,
|
| 65 |
+
height:555,
|
| 66 |
+
zIndex:1000,
|
| 67 |
+
recenterAuto:false,
|
| 68 |
+
hideEffect:Element.hide,
|
| 69 |
+
showEffect:Element.show,
|
| 70 |
+
id:"catalog-wysiwyg-editor",
|
| 71 |
+
buttonClass:"form-button",
|
| 72 |
+
okLabel:"Submit",
|
| 73 |
+
ok: this.okDialogWindow.bind(this),
|
| 74 |
+
cancel: this.closeDialogWindow.bind(this),
|
| 75 |
+
onClose: this.closeDialogWindow.bind(this),
|
| 76 |
+
firedElementId: elementId
|
| 77 |
+
});
|
| 78 |
+
|
| 79 |
+
content.evalScripts.bind(content).defer();
|
| 80 |
+
|
| 81 |
+
$(elementId+'_editor').value = $(elementId).value;
|
| 82 |
+
},
|
| 83 |
+
okDialogWindow : function(dialogWindow) {
|
| 84 |
+
if (dialogWindow.options.firedElementId) {
|
| 85 |
+
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
|
| 86 |
+
wysiwygObj.turnOff();
|
| 87 |
+
if (tinyMCE.get(wysiwygObj.id)) {
|
| 88 |
+
$(dialogWindow.options.firedElementId).value = tinyMCE.get(wysiwygObj.id).getContent();
|
| 89 |
+
} else {
|
| 90 |
+
if ($(dialogWindow.options.firedElementId+'_editor')) {
|
| 91 |
+
$(dialogWindow.options.firedElementId).value = $(dialogWindow.options.firedElementId+'_editor').value;
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
this.closeDialogWindow(dialogWindow);
|
| 96 |
+
},
|
| 97 |
+
closeDialogWindow : function(dialogWindow) {
|
| 98 |
+
// remove form validation event after closing editor to prevent errors during save main form
|
| 99 |
+
if (typeof varienGlobalEvents != undefined && editorFormValidationHandler) {
|
| 100 |
+
varienGlobalEvents.removeEventHandler('formSubmit', editorFormValidationHandler);
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
//IE fix - blocked form fields after closing
|
| 104 |
+
$(dialogWindow.options.firedElementId).focus();
|
| 105 |
+
|
| 106 |
+
//destroy the instance of editor
|
| 107 |
+
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
|
| 108 |
+
if (tinyMCE.get(wysiwygObj.id)) {
|
| 109 |
+
tinyMCE.execCommand('mceRemoveControl', true, wysiwygObj.id);
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
dialogWindow.close();
|
| 113 |
+
Windows.overlayShowEffectOptions = this.overlayShowEffectOptions;
|
| 114 |
+
Windows.overlayHideEffectOptions = this.overlayHideEffectOptions;
|
| 115 |
+
}
|
| 116 |
+
};
|
| 117 |
+
|
| 118 |
+
//]]>
|
| 119 |
+
</script>
|
app/design/adminhtml/default/default/template/centinel/authentication/complete.phtml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php if ($this->getIsProcessed()):?>
|
| 28 |
+
<?php if ($this->getIsSuccess()):?>
|
| 29 |
+
<h1><?php echo $this->__('Verification Successful');?></h1>
|
| 30 |
+
<p><?php echo $this->__('Please continue with placing order.')?></p>
|
| 31 |
+
<?php else:?>
|
| 32 |
+
<h4><?php echo $this->__('Verification Failed');?></h4>
|
| 33 |
+
<p><?php echo $this->__('The card has failed verification with the issuer bank.')?> <strong><?php echo $this->__('Order cannot be placed.')?></strong></p>
|
| 34 |
+
<?php endif;?>
|
| 35 |
+
<?php else:?>
|
| 36 |
+
<h4><?php echo $this->__('Verification cannot be processed');?></h4>
|
| 37 |
+
<p><?php echo $this->__('There has been wrong payment information submitted or time limit has expired. Please, try again.')?> <strong><?php echo $this->__('Order cannot be placed.')?></strong></p>
|
| 38 |
+
<?php endif;?>
|
app/design/adminhtml/default/default/template/centinel/authentication/start.phtml
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<form name="validation_form" id="validation_form" action="<?php echo $this->getAcsUrl();?>" method="post">
|
| 28 |
+
<input type="hidden" name="PaReq" value="<?php echo $this->getPaReq()?>" />
|
| 29 |
+
<input type="hidden" name="TermUrl" value="<?php echo $this->getTermUrl()?>" />
|
| 30 |
+
<input type="hidden" name="MD" value="<?php echo $this->getMd()?>" />
|
| 31 |
+
</form>
|
| 32 |
+
<script type="text/javascript">
|
| 33 |
+
//<![CDATA[
|
| 34 |
+
window.onload = function(){
|
| 35 |
+
document.getElementById('validation_form').submit();
|
| 36 |
+
};
|
| 37 |
+
//]]>
|
| 38 |
+
</script>
|
app/design/adminhtml/default/default/template/centinel/validation/form.phtml
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="centinel">
|
| 28 |
+
<div class="authentication">
|
| 29 |
+
<iframe frameborder="0" border="0" id="<?php echo $this->getContainerId() ?>" src="" style="display:none;"></iframe>
|
| 30 |
+
</div>
|
| 31 |
+
</div>
|
| 32 |
+
<button onclick="cardValidator.validate()" class="scalable" type="button"><span><span><span><?php echo $this->__('Start/Reset Validation...')?></span></span></span></button>
|
| 33 |
+
<script type="text/javascript">
|
| 34 |
+
//<![CDATA[
|
| 35 |
+
cardValidator = new centinelValidator('<?php echo $this->getMethodCode() ?>', '<?php echo $this->getFrameUrl() ?>', '<?php echo $this->getContainerId() ?>');
|
| 36 |
+
//]]>
|
| 37 |
+
</script>
|
app/design/adminhtml/default/default/template/cms/browser/content.phtml
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Wysiwyg Images content template
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<?php echo $this->getChildHtml('wysiwyg_images.js') ?>
|
| 35 |
+
|
| 36 |
+
<div class="content-header skip-header" id="content_header">
|
| 37 |
+
<table cellspacing="0">
|
| 38 |
+
<tr>
|
| 39 |
+
<td><h3 id="content_header_text"><?php echo $this->getHeaderText() ?></h3></td>
|
| 40 |
+
<td class="form-buttons">
|
| 41 |
+
<?php echo $this->getButtonsHtml() ?>
|
| 42 |
+
</td>
|
| 43 |
+
</tr>
|
| 44 |
+
</table>
|
| 45 |
+
</div>
|
| 46 |
+
|
| 47 |
+
<div id="contents-uploader"><?php echo $this->getChildHtml('wysiwyg_images.uploader') ?></div>
|
| 48 |
+
<div id="contents"></div>
|
| 49 |
+
<div id="contents-newfolder" class="no-display"><?php echo $this->getChildHtml('wysiwyg_images.newfolder') ?></div>
|
app/design/adminhtml/default/default/template/cms/browser/content/files.phtml
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Directory contents template for Wysiwyg Images
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Files
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<?php
|
| 35 |
+
$_width = $this->getImagesWidth();
|
| 36 |
+
$_height = $this->getImagesHeight();
|
| 37 |
+
?>
|
| 38 |
+
<?php if ($this->getFilesCount() > 0): ?>
|
| 39 |
+
<?php foreach ($this->getFiles() as $file): ?>
|
| 40 |
+
<div class="filecnt" id="<?php echo $this->getFileId($file) ?>">
|
| 41 |
+
<p class="nm" style="height:<?php echo $_height ?>px;width:<?php echo $_width ?>px;">
|
| 42 |
+
<?php if($this->getFileThumbUrl($file)):?>
|
| 43 |
+
<img src="<?php echo $this->getFileThumbUrl($file) ?>" alt="<?php echo $this->getFileName($file) ?>"/>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
</p>
|
| 46 |
+
<?php if($this->getFileWidth($file)): ?>
|
| 47 |
+
<small><?php echo $this->getFileWidth($file) ?>x<?php echo $this->getFileHeight($file) ?> <?php echo $this->helper('cms')->__('px.') ?></small><br/>
|
| 48 |
+
<?php endif; ?>
|
| 49 |
+
<small><?php echo $this->getFileShortName($file); ?></small>
|
| 50 |
+
</div>
|
| 51 |
+
<?php endforeach; ?>
|
| 52 |
+
<?php else: ?>
|
| 53 |
+
<?php echo $this->helper('cms')->__('No files found') ?>
|
| 54 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/cms/browser/content/newfolder.phtml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* New directory template for Wysiwyg Images
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Newfolder
|
| 32 |
+
*/
|
| 33 |
+
?>
|
app/design/adminhtml/default/default/template/cms/browser/content/uploader.phtml
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Uploader template for Wysiwyg Images
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Uploader
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<div id="<?php echo $this->getHtmlId() ?>" class="uploader">
|
| 35 |
+
<div class="buttons">
|
| 36 |
+
<div id="<?php echo $this->getHtmlId() ?>-install-flash" style="display:none">
|
| 37 |
+
<?php echo Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/') ?>
|
| 38 |
+
</div>
|
| 39 |
+
</div>
|
| 40 |
+
<div class="clear"></div>
|
| 41 |
+
<div class="no-display" id="<?php echo $this->getHtmlId() ?>-template">
|
| 42 |
+
<div id="{{id}}" class="file-row">
|
| 43 |
+
<span class="file-info">{{name}} ({{size}})</span>
|
| 44 |
+
<span class="delete-button"><?php echo $this->getDeleteButtonHtml() ?></span>
|
| 45 |
+
<span class="progress-text"></span>
|
| 46 |
+
<div class="clear"></div>
|
| 47 |
+
</div>
|
| 48 |
+
</div>
|
| 49 |
+
<div class="no-display" id="<?php echo $this->getHtmlId() ?>-template-progress">
|
| 50 |
+
{{percent}}% {{uploaded}} / {{total}}
|
| 51 |
+
</div>
|
| 52 |
+
</div>
|
| 53 |
+
|
| 54 |
+
<script type="text/javascript">
|
| 55 |
+
//<![CDATA[
|
| 56 |
+
maxUploadFileSizeInBytes = <?php echo $this->getDataMaxSizeInBytes() ?>;
|
| 57 |
+
maxUploadFileSize = '<?php echo $this->getDataMaxSize() ?>';
|
| 58 |
+
|
| 59 |
+
<?php echo $this->getJsObjectName() ?> = new Flex.Uploader('<?php echo $this->getHtmlId() ?>', '<?php echo $this->getUploaderUrl('media/uploader.swf') ?>', <?php echo $this->getConfigJson() ?>);
|
| 60 |
+
<?php echo $this->getJsObjectName() ?>.onFilesComplete = function(completedFiles){
|
| 61 |
+
completedFiles.each(function(file){
|
| 62 |
+
<?php echo $this->getJsObjectName() ?>.removeFile(file.id);
|
| 63 |
+
});
|
| 64 |
+
MediabrowserInstance.handleUploadComplete();
|
| 65 |
+
}
|
| 66 |
+
// hide flash buttons
|
| 67 |
+
if ($('<?php echo $this->getHtmlId() ?>-flash') != undefined) {
|
| 68 |
+
$('<?php echo $this->getHtmlId() ?>-flash').setStyle({float:'left'});
|
| 69 |
+
}
|
| 70 |
+
//]]>
|
| 71 |
+
</script>
|
app/design/adminhtml/default/default/template/cms/browser/js.phtml
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Directories tree template
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<script type="text/javascript">
|
| 35 |
+
//<![CDATA[
|
| 36 |
+
MediabrowserInstance = new Mediabrowser(<?php echo $this->getFilebrowserSetupObject() ?>);
|
| 37 |
+
MediabrowserInstance.storeId = '<?php echo $this->getStoreId() ?>';
|
| 38 |
+
//]]>
|
| 39 |
+
</script>
|
app/design/adminhtml/default/default/template/cms/browser/tree.phtml
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Directories tree template
|
| 30 |
+
*
|
| 31 |
+
* @see Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Tree
|
| 32 |
+
*/
|
| 33 |
+
?>
|
| 34 |
+
<div class="categories-side-col">
|
| 35 |
+
<div class="tree-actions">
|
| 36 |
+
<a href="#" id="tree_action_collapse"><?php echo $this->helper('cms')->__('Collapse All'); ?></a>
|
| 37 |
+
<span class="separator">|</span>
|
| 38 |
+
<a href="#" id="tree_action_expand"><?php echo $this->helper('cms')->__('Expand All'); ?></a>
|
| 39 |
+
</div>
|
| 40 |
+
</div>
|
| 41 |
+
|
| 42 |
+
<div id="tree" style="width:100%; overflow:auto;"></div>
|
| 43 |
+
|
| 44 |
+
<script type="text/javascript">
|
| 45 |
+
Ext.onReady(function(){
|
| 46 |
+
var Tree = Ext.tree;
|
| 47 |
+
var tree = new Tree.TreePanel('tree', {
|
| 48 |
+
animate:true,
|
| 49 |
+
loader: new Tree.TreeLoader({
|
| 50 |
+
dataUrl:'<?php echo $this->getTreeLoaderUrl() ?>'
|
| 51 |
+
}),
|
| 52 |
+
enableDD:false,
|
| 53 |
+
containerScroll: true
|
| 54 |
+
});
|
| 55 |
+
|
| 56 |
+
// set the root node
|
| 57 |
+
var root = new Tree.AsyncTreeNode({
|
| 58 |
+
text: '<?php echo Mage::helper('core')->jsQuoteEscape($this->getRootNodeName()) ?>',
|
| 59 |
+
draggable:false,
|
| 60 |
+
id:'root'
|
| 61 |
+
});
|
| 62 |
+
tree.setRootNode(root);
|
| 63 |
+
|
| 64 |
+
// render the tree
|
| 65 |
+
tree.render();
|
| 66 |
+
root.expand();
|
| 67 |
+
|
| 68 |
+
Event.observe($('tree_action_collapse'), 'click', function(){
|
| 69 |
+
tree.collapseAll();
|
| 70 |
+
});
|
| 71 |
+
|
| 72 |
+
Event.observe($('tree_action_expand'), 'click', function(){
|
| 73 |
+
tree.expandAll();
|
| 74 |
+
});
|
| 75 |
+
|
| 76 |
+
MediabrowserInstance.setTree(tree);
|
| 77 |
+
tree.addListener('click', MediabrowserInstance.selectFolder.bind(MediabrowserInstance));
|
| 78 |
+
tree.expandPath('<?php echo $this->getTreeCurrentPath() ?>','', function(success, node) {
|
| 79 |
+
MediabrowserInstance.selectFolder(node);
|
| 80 |
+
});
|
| 81 |
+
});
|
| 82 |
+
</script>
|
app/design/adminhtml/default/default/template/cms/page/edit/form/renderer/content.phtml
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php $_element = $this->getElement() ?>
|
| 28 |
+
<?php if (!$_element->getNoDisplay()): ?>
|
| 29 |
+
<tr>
|
| 30 |
+
<td colspan="3" class="value"><?php echo trim($_element->getElementHtml()) ?></td>
|
| 31 |
+
</tr>
|
| 32 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/coming.phtml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<h3><?php echo Mage::helper('adminhtml')->__('Sorry, this feature is coming soon...') ?></h3>
|
| 29 |
+
</div>
|
| 30 |
+
<p><?php echo Mage::helper('adminhtml')->__('We\'re in our typing table, coding away more features for Magento. Thank you for your patience.') ?></p>
|
app/design/adminhtml/default/default/template/compiler/process.phtml
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td style="width:50%;"><h3 class="icon-head head-compilation"><?php echo $this->getHeader() ?></h3></td>
|
| 31 |
+
<td class="form-buttons">
|
| 32 |
+
<?php if ($this->canRunCompilation()): ?>
|
| 33 |
+
<?php echo $this->getChangeStatusButtonHtml() ?>
|
| 34 |
+
<?php echo $this->getRunButtonHtml() ?>
|
| 35 |
+
<?php endif;?>
|
| 36 |
+
</td>
|
| 37 |
+
</tr>
|
| 38 |
+
</table>
|
| 39 |
+
</div>
|
| 40 |
+
<div class="entry-edit">
|
| 41 |
+
<form name="compilation_form" id="compilation_form" method="post" action="<?php echo $this->getRunFormAction(); ?>">
|
| 42 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 43 |
+
<?php if (!$this->canRunCompilation()): ?>
|
| 44 |
+
<div id="messages"><?php echo $this->getMessagesBlock()->toHtml() ?></div>
|
| 45 |
+
<?php endif;?>
|
| 46 |
+
|
| 47 |
+
<div class="entry-edit-head">
|
| 48 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('compiler')->__('Compilation State') ?></h4>
|
| 49 |
+
</div>
|
| 50 |
+
<fieldset>
|
| 51 |
+
<legend><?php echo Mage::helper('compiler')->__('Compilation State') ?></legend>
|
| 52 |
+
<table cellspacing="0" class="form-list" style="width:100%">
|
| 53 |
+
<tr>
|
| 54 |
+
<td class="label"><label ><?php echo Mage::helper('compiler')->__('Compiler Status')?></label></td>
|
| 55 |
+
<td class="value">
|
| 56 |
+
<strong><?php echo $this->getCompilerStatus()?></strong>
|
| 57 |
+
</td>
|
| 58 |
+
</tr>
|
| 59 |
+
<tr>
|
| 60 |
+
<td class="label"><label ><?php echo Mage::helper('compiler')->__('Compilation State')?></label></td>
|
| 61 |
+
<td class="value">
|
| 62 |
+
<strong><?php echo $this->getCompilerState()?></strong>
|
| 63 |
+
</td>
|
| 64 |
+
</tr>
|
| 65 |
+
<tr>
|
| 66 |
+
<td class="label"><label ><?php echo Mage::helper('compiler')->__('Collected Files Count')?></label></td>
|
| 67 |
+
<td class="value">
|
| 68 |
+
<strong><?php echo $this->getCollectedFilesCount() ?></strong>
|
| 69 |
+
</td>
|
| 70 |
+
</tr>
|
| 71 |
+
<tr>
|
| 72 |
+
<td class="label"><label ><?php echo Mage::helper('compiler')->__('Compiled Scopes Count')?></label></td>
|
| 73 |
+
<td class="value">
|
| 74 |
+
<strong><?php echo $this->getCompiledFilesCount() ?></strong>
|
| 75 |
+
</td>
|
| 76 |
+
</tr>
|
| 77 |
+
<tr>
|
| 78 |
+
<td class="label"><label ><?php echo Mage::helper('compiler')->__('Scopes Compilation Settings')?></label></td>
|
| 79 |
+
<td class="value">
|
| 80 |
+
<?php foreach($this->getCompilationList() as $_frontName => $_classNames) : ?>
|
| 81 |
+
<p>
|
| 82 |
+
<label><strong><?php echo $_frontName ?></strong></label><br />
|
| 83 |
+
<textarea style="width:70%" readonly="readonly" cols="5" rows="3"><?php echo $this->arrToSting($_classNames)?></textarea>
|
| 84 |
+
</p>
|
| 85 |
+
<?php endforeach; ?>
|
| 86 |
+
</td>
|
| 87 |
+
</tr>
|
| 88 |
+
</table>
|
| 89 |
+
</fieldset>
|
| 90 |
+
</form>
|
| 91 |
+
</div>
|
| 92 |
+
<script type="text/javascript">
|
| 93 |
+
compilationForm = new varienForm('compilation_form');
|
| 94 |
+
</script>
|
app/design/adminhtml/default/default/template/connect/extension/custom/authors.phtml
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
var id = 0;
|
| 29 |
+
var authorTemplate =
|
| 30 |
+
'<tr>'+
|
| 31 |
+
'<td style="margin-bottom:5px;">'+
|
| 32 |
+
'<input class="input-text required-entry" style="width:160px;" name="authors[name][]" id="authors_name_{{id}}" value="{{name}}"/>'+
|
| 33 |
+
'</td>'+
|
| 34 |
+
'<td style="margin-bottom:5px;">'+
|
| 35 |
+
'<input class="input-text required-entry" style="width:140px;" name="authors[user][]" id="authors_user_{{id}}" value="{{user}}"/>'+
|
| 36 |
+
'</td>'+
|
| 37 |
+
'<td style="margin-bottom:5px;">'+
|
| 38 |
+
'<input class="input-text required-entry validate-email" style="width:160px;" name="authors[email][]" id="authors_email_{{id}}" value="{{email}}"/>'+
|
| 39 |
+
'</td>'+
|
| 40 |
+
'<td style="margin-bottom:5px;">'+
|
| 41 |
+
'<?php echo $this->jsQuoteEscape($this->getRemoveRowButtonHtml('tr')) ?>'+
|
| 42 |
+
'</td>'+
|
| 43 |
+
'</tr>';
|
| 44 |
+
|
| 45 |
+
function addAuthor(data)
|
| 46 |
+
{
|
| 47 |
+
if (data == undefined) {
|
| 48 |
+
data = {};
|
| 49 |
+
}
|
| 50 |
+
data.id = id++;
|
| 51 |
+
|
| 52 |
+
var template = new Template(authorTemplate, /(^|.|\r|\n)({{(\w+)}})/);
|
| 53 |
+
Element.insert($('authors_container'), {bottom: template.evaluate(data)});
|
| 54 |
+
}
|
| 55 |
+
</script>
|
| 56 |
+
|
| 57 |
+
<div class="entry-edit">
|
| 58 |
+
<?php echo $this->getFormHtml() ?>
|
| 59 |
+
<div class="entry-edit-head">
|
| 60 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Authors") ?></h4>
|
| 61 |
+
</div>
|
| 62 |
+
<fieldset id="authors_fieldset" class="grid">
|
| 63 |
+
<legend><?php echo $this->__("Authors") ?></legend>
|
| 64 |
+
<table class="data" cellspacing="0">
|
| 65 |
+
<thead>
|
| 66 |
+
<tr class="headings">
|
| 67 |
+
<th><?php echo $this->__("Name") ?> <span class="required">*</span></th>
|
| 68 |
+
<th><?php echo $this->__("User") ?> <span class="required">*</span></th>
|
| 69 |
+
<th><?php echo $this->__("Email") ?> <span class="required">*</span></th>
|
| 70 |
+
<th><?php echo $this->__("Remove") ?></th>
|
| 71 |
+
</tr>
|
| 72 |
+
</thead>
|
| 73 |
+
<tbody id="authors_container">
|
| 74 |
+
<script type="text/javascript">
|
| 75 |
+
<?php if (count($this->getAuthors())): ?>
|
| 76 |
+
<?php foreach ($this->getAuthors() as $author): ?>
|
| 77 |
+
addAuthor(<?php echo $author ?>);
|
| 78 |
+
<?php endforeach ?>
|
| 79 |
+
<?php else: ?>
|
| 80 |
+
addAuthor();
|
| 81 |
+
<?php endif;?>
|
| 82 |
+
</script>
|
| 83 |
+
</tbody>
|
| 84 |
+
<tfoot>
|
| 85 |
+
<tr>
|
| 86 |
+
<td class="a-right" colspan="4"><?php echo $this->getAddAuthorButtonHtml() ?></td>
|
| 87 |
+
</tr>
|
| 88 |
+
</tfoot>
|
| 89 |
+
</table>
|
| 90 |
+
</fieldset>
|
| 91 |
+
</div>
|
app/design/adminhtml/default/default/template/connect/extension/custom/contents.phtml
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 29 |
+
<?php echo $this->getFormHtml() ?>
|
| 30 |
+
|
| 31 |
+
<div class="entry-edit-head">
|
| 32 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Contents") ?></h4>
|
| 33 |
+
</div>
|
| 34 |
+
<fieldset id="contents_fieldset" class="grid">
|
| 35 |
+
<legend><?php echo $this->__("Contents") ?></legend>
|
| 36 |
+
<table class="data" cellspacing="0">
|
| 37 |
+
<thead>
|
| 38 |
+
<tr class="headings">
|
| 39 |
+
<th><?php echo $this->__("Target") ?></th>
|
| 40 |
+
<th><?php echo $this->__("Path") ?></th>
|
| 41 |
+
<th><?php echo $this->__("Type") ?></th>
|
| 42 |
+
<th><?php echo $this->__("Include") ?></th>
|
| 43 |
+
<th><?php echo $this->__("Ignore") ?></th>
|
| 44 |
+
<th><?php echo $this->__("Action") ?></th>
|
| 45 |
+
</tr>
|
| 46 |
+
<tr id="contents_template" style="display:none">
|
| 47 |
+
<?php function showContentsTemplate($self, $_i=0) { ?>
|
| 48 |
+
<td style="margin-bottom:5px;">
|
| 49 |
+
<select name="contents[target][]" style="width:170px">
|
| 50 |
+
<optgroup label="Magento">
|
| 51 |
+
<?php foreach ($self->getMageTargets() as $_value=>$_label): ?>
|
| 52 |
+
<option value="<?php echo $_value ?>" <?php echo $self->getSelected('contents/target/'.$_i, $_value) ?>><?php echo $_label ?></option>
|
| 53 |
+
<?php endforeach ?>
|
| 54 |
+
</optgroup>
|
| 55 |
+
</select>
|
| 56 |
+
</td><td style="margin-bottom:5px;">
|
| 57 |
+
<input class="input-text" style="width:150px" name="contents[path][]" value="<?php echo $self->getValue('contents/path/'.$_i) ?>"/>
|
| 58 |
+
</td><td style="margin-bottom:5px;">
|
| 59 |
+
<select name="contents[type][]" style="width:100px">
|
| 60 |
+
<option value="file" <?php echo $self->getSelected('contents/type/'.$_i, 'file') ?>><?php echo Mage::helper('adminhtml')->__("File") ?></option>
|
| 61 |
+
<option value="dir" <?php echo $self->getSelected('contents/type/'.$_i, 'dir') ?>><?php echo Mage::helper('adminhtml')->__("Recursive Dir") ?></option>
|
| 62 |
+
</select>
|
| 63 |
+
</td><td style="margin-bottom:5px;">
|
| 64 |
+
<input class="input-text" style="width:100px" name="contents[include][]" value="<?php echo $self->getValue('contents/include/'.$_i) ?>"/>
|
| 65 |
+
</td><td style="margin-bottom:5px;">
|
| 66 |
+
<input class="input-text" style="width:100px" name="contents[ignore][]" value="<?php echo $self->getValue('contents/ignore/'.$_i) ?>"/>
|
| 67 |
+
</td><td style="margin-bottom:5px;">
|
| 68 |
+
<?php echo $self->getRemoveRowButtonHtml('tr') ?>
|
| 69 |
+
</td>
|
| 70 |
+
<?php } ?>
|
| 71 |
+
<?php showContentsTemplate($this) ?>
|
| 72 |
+
</tr>
|
| 73 |
+
</thead>
|
| 74 |
+
<tbody id="contents_container">
|
| 75 |
+
<?php if ($this->getData('contents/target')): ?>
|
| 76 |
+
<?php foreach ($this->getData('contents/target') as $_i=>$_dbField): ?>
|
| 77 |
+
<?php if (0===$_i) continue; ?>
|
| 78 |
+
<tr>
|
| 79 |
+
<?php showContentsTemplate($this, $_i) ?>
|
| 80 |
+
</tr>
|
| 81 |
+
<?php endforeach ?>
|
| 82 |
+
<?php endif ?>
|
| 83 |
+
</tbody>
|
| 84 |
+
<tfoot>
|
| 85 |
+
<tr>
|
| 86 |
+
<td class="a-right" colspan="6"><?php echo $this->getAddRowButtonHtml('contents_container', 'contents_template', $this->__('Add Contents Path')) ?></td>
|
| 87 |
+
</tr>
|
| 88 |
+
</tfoot>
|
| 89 |
+
</table>
|
| 90 |
+
</fieldset>
|
| 91 |
+
</div>
|
app/design/adminhtml/default/default/template/connect/extension/custom/depends.phtml
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<?php echo $this->getFormHtml() ?>
|
| 29 |
+
|
| 30 |
+
<div class="entry-edit-head">
|
| 31 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Packages") ?></h4>
|
| 32 |
+
</div>
|
| 33 |
+
<fieldset id="depends_packages_fieldset" class="grid">
|
| 34 |
+
<legend><?php echo $this->__("Packages") ?></legend>
|
| 35 |
+
<table class="data" cellspacing="0">
|
| 36 |
+
<thead>
|
| 37 |
+
<tr class="headings">
|
| 38 |
+
<th><?php echo $this->__("Package") ?></th>
|
| 39 |
+
<th><?php echo $this->__("Channel") ?></th>
|
| 40 |
+
<th><?php echo $this->__("Min") ?></th>
|
| 41 |
+
<th><?php echo $this->__("Max") ?></th>
|
| 42 |
+
<th><?php echo $this->__("Files") ?></th>
|
| 43 |
+
<th><?php echo $this->__("Action") ?></th>
|
| 44 |
+
</tr>
|
| 45 |
+
<tr id="depends_packages_template" style="display:none">
|
| 46 |
+
<?php function showDependsPackageTemplate($self, $_i=0) {
|
| 47 |
+
$filesClass = "files";
|
| 48 |
+
?>
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
<td style="margin-bottom:5px;">
|
| 52 |
+
<input class="input-text" style="width:200px;" name="depends[package][name][]" value="<?php echo $self->getValue('depends/package/name/'.$_i) ?>"/>
|
| 53 |
+
</td><td style="margin-bottom:5px;">
|
| 54 |
+
<input class="input-text" style="width:200px;" name="depends[package][channel][]" value="<?php echo $self->getValue('depends/package/channel/'.$_i) ?>"/>
|
| 55 |
+
</td><td style="margin-bottom:5px;">
|
| 56 |
+
<input class="input-text" style="width:50px;" name="depends[package][min][]" value="<?php echo $self->getValue('depends/package/min/'.$_i) ?>"/>
|
| 57 |
+
</td><td style="margin-bottom:5px;">
|
| 58 |
+
<input class="input-text" style="width:50px;" name="depends[package][max][]" value="<?php echo $self->getValue('depends/package/max/'.$_i) ?>"/>
|
| 59 |
+
</td><td style="margin-bottom:5px;">
|
| 60 |
+
<textarea class="<?php echo $filesClass ?>" style="width:300px;display:none" name="depends[package][files][]"><?php echo $self->getValue('depends/package/files/'.$_i)?> </textarea>
|
| 61 |
+
<?php echo $self->getAddFileDepsRowButtonHtml("tr", $filesClass) ?>
|
| 62 |
+
</td><td style="margin-bottom:5px;">
|
| 63 |
+
<?php echo $self->getRemoveRowButtonHtml('tr') ?>
|
| 64 |
+
</td>
|
| 65 |
+
<?php } ?>
|
| 66 |
+
<?php showDependsPackageTemplate($this) ?>
|
| 67 |
+
</tr>
|
| 68 |
+
</thead>
|
| 69 |
+
<tbody id="depends_packages_container">
|
| 70 |
+
<?php if ($this->getData('depends/package/name')): ?>
|
| 71 |
+
<?php foreach ($this->getData('depends/package/name') as $_i=>$_dbField): ?>
|
| 72 |
+
<?php if (0===$_i) continue; ?>
|
| 73 |
+
<tr>
|
| 74 |
+
<?php showDependsPackageTemplate($this, $_i) ?>
|
| 75 |
+
</tr>
|
| 76 |
+
<?php endforeach ?>
|
| 77 |
+
<?php endif ?>
|
| 78 |
+
</tbody>
|
| 79 |
+
<tfoot>
|
| 80 |
+
<tr>
|
| 81 |
+
<td class="a-right" colspan="8"><?php echo $this->getAddRowButtonHtml('depends_packages_container', 'depends_packages_template', $this->__('Add Package dependency')) ?></td>
|
| 82 |
+
</tr>
|
| 83 |
+
</tfoot>
|
| 84 |
+
</table>
|
| 85 |
+
</fieldset>
|
| 86 |
+
|
| 87 |
+
<div class="entry-edit-head">
|
| 88 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__("Extensions") ?></h4>
|
| 89 |
+
</div>
|
| 90 |
+
<fieldset id="depends_extensions_fieldset" class="grid">
|
| 91 |
+
<legend><?php echo $this->__("Extensions") ?></legend>
|
| 92 |
+
<table class="data" cellspacing="0">
|
| 93 |
+
<thead>
|
| 94 |
+
<tr class="headings">
|
| 95 |
+
<th><?php echo $this->__("Extension") ?></th>
|
| 96 |
+
<th><?php echo $this->__("Min") ?></th>
|
| 97 |
+
<th><?php echo $this->__("Max") ?></th>
|
| 98 |
+
<th><?php echo $this->__("Action") ?></th>
|
| 99 |
+
</tr>
|
| 100 |
+
<tr id="depends_extensions_template" style="display:none">
|
| 101 |
+
<?php function showDependsExtensionsTemplate($self, $_i=0) { ?>
|
| 102 |
+
<td style="margin-bottom:5px;">
|
| 103 |
+
<select name="depends[extension][name][]" style="width:100px">
|
| 104 |
+
<?php foreach ($self->getExtensions() as $_value=>$_label): ?>
|
| 105 |
+
<option value="<?php echo $_value ?>" <?php echo $self->getSelected('depends/extension/name/'.$_i, $_value) ?>><?php echo $_label ?></option>
|
| 106 |
+
<?php endforeach ?>
|
| 107 |
+
</select>
|
| 108 |
+
</td><td style="margin-bottom:5px;">
|
| 109 |
+
<input class="input-text" style="width:50px;" name="depends[extension][min][]" value="<?php echo $self->getValue('depends/extension/min/'.$_i) ?>"/>
|
| 110 |
+
</td><td style="margin-bottom:5px;">
|
| 111 |
+
<input class="input-text" style="width:50px;" name="depends[extension][max][]" value="<?php echo $self->getValue('depends/extension/max/'.$_i) ?>"/>
|
| 112 |
+
</td><td style="margin-bottom:5px;">
|
| 113 |
+
<?php echo $self->getRemoveRowButtonHtml('tr') ?>
|
| 114 |
+
</td>
|
| 115 |
+
<?php } ?>
|
| 116 |
+
<?php showDependsExtensionsTemplate($this) ?>
|
| 117 |
+
</tr>
|
| 118 |
+
</thead>
|
| 119 |
+
<tbody id="depends_extensions_container">
|
| 120 |
+
<?php if ($this->getData('depends/extension/name')): ?>
|
| 121 |
+
<?php foreach ($this->getData('depends/extension/name') as $_i=>$_dbField): ?>
|
| 122 |
+
<?php if (0===$_i) continue; ?>
|
| 123 |
+
<tr>
|
| 124 |
+
<?php showDependsExtensionsTemplate($this, $_i) ?>
|
| 125 |
+
</tr>
|
| 126 |
+
<?php endforeach ?>
|
| 127 |
+
<?php endif ?>
|
| 128 |
+
</tbody>
|
| 129 |
+
<tfoot>
|
| 130 |
+
<tr>
|
| 131 |
+
<td class="a-right" colspan="7"><?php echo $this->getAddRowButtonHtml('depends_extensions_container', 'depends_extensions_template', $this->__('Add PHP Extension dependency')) ?></td>
|
| 132 |
+
</tr>
|
| 133 |
+
</tfoot>
|
| 134 |
+
</table>
|
| 135 |
+
</fieldset>
|
| 136 |
+
|
| 137 |
+
</div>
|
app/design/adminhtml/default/default/template/connect/extension/custom/load.phtml
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<ul class="messages">
|
| 29 |
+
<li class="notice-msg">
|
| 30 |
+
<ul>
|
| 31 |
+
<li><?php echo Mage::helper('catalog')->__("Please be careful as once you click on the row it will load package data form the selected file and all unsaved form data will be lost.") ?></li>
|
| 32 |
+
</ul>
|
| 33 |
+
</li>
|
| 34 |
+
</ul>
|
| 35 |
+
<?php echo $this->getPackageGridHtml() ?>
|
app/design/adminhtml/default/default/template/connect/extension/custom/package.phtml
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 29 |
+
function addRow(container, template)
|
| 30 |
+
{
|
| 31 |
+
Element.insert($(container), {bottom: '<tr>' + $(template).innerHTML + '</tr>'});
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
function removeRow(button, selector)
|
| 35 |
+
{
|
| 36 |
+
Element.remove($(button).up(selector));
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
function showHideFiles(button, selector, filesClass)
|
| 40 |
+
{
|
| 41 |
+
$(button).up(selector).select('[class="'+filesClass+'"]').map(Element.toggle);
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
function loadPackage()
|
| 46 |
+
{
|
| 47 |
+
var package = prompt('Please enter package name');
|
| 48 |
+
if (!package) return false;
|
| 49 |
+
var url = '<?php echo $this->getUrl('*/*/load') ?>';
|
| 50 |
+
location.href = url+(url.indexOf('?')==-1 ? '?':'&')+'id='+package;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
function saveAsPackage()
|
| 54 |
+
{
|
| 55 |
+
_defaultPackageName = '';
|
| 56 |
+
if ($('_packagefile_name')) {
|
| 57 |
+
_defaultPackageName = $('_packagefile_name').getValue();
|
| 58 |
+
} else if ($('_packagename')) {
|
| 59 |
+
_defaultPackageName = $('_packagename').getValue();
|
| 60 |
+
}
|
| 61 |
+
var package = prompt('Please enter package file name', _defaultPackageName);
|
| 62 |
+
if (!package) return false;
|
| 63 |
+
if ($('_packagefile_name')) {
|
| 64 |
+
$('_packagefile_name').value = package;
|
| 65 |
+
}
|
| 66 |
+
return editForm.submit();
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
function createPackage()
|
| 70 |
+
{
|
| 71 |
+
$('_create').value = 1;
|
| 72 |
+
editForm.submit();
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
function resetPackage()
|
| 76 |
+
{
|
| 77 |
+
location.href = '<?php echo $this->getUrl('*/*/reset') ?>';
|
| 78 |
+
}
|
| 79 |
+
</script>
|
| 80 |
+
|
| 81 |
+
<style type="text/css">
|
| 82 |
+
.table-editable { border:solid 1px #CCC; background:#FAFAFA; padding:5px; margin-bottom:5px; }
|
| 83 |
+
.table-editable th { border-bottom:solid 1px #CCC; text-align:center; }
|
| 84 |
+
.table-editable th, .table-editable td { padding:1px 3px; vertical-align:middle; }
|
| 85 |
+
.table-editable select { height:19px; }
|
| 86 |
+
</style>
|
| 87 |
+
|
| 88 |
+
<div class="entry-edit">
|
| 89 |
+
<input type="hidden" id="_create" name="_create" />
|
| 90 |
+
<?php echo $this->getFormHtml() ?>
|
| 91 |
+
</div>
|
app/design/adminhtml/default/default/template/connect/extension/custom/release.phtml
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<?php echo $this->getFormHtml() ?>
|
| 29 |
+
</div>
|
app/design/adminhtml/default/default/template/currencysymbol/grid.phtml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @var $this Mage_Currencysymbol_Block_Adminhtml_System_Currencysymbol
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<div class="content-header">
|
| 33 |
+
<table cellspacing="0">
|
| 34 |
+
<tr>
|
| 35 |
+
<td style="width:50%;"><h3 class="icon-head head-system-currency"><?php echo $this->getHeader() ?></h3></td>
|
| 36 |
+
<td class="form-buttons">
|
| 37 |
+
<?php
|
| 38 |
+
echo $this->getSaveButtonHtml();
|
| 39 |
+
?>
|
| 40 |
+
</td>
|
| 41 |
+
</tr>
|
| 42 |
+
</table>
|
| 43 |
+
</div>
|
| 44 |
+
|
| 45 |
+
<?php $this->getCurrencySymbolsData();?>
|
| 46 |
+
|
| 47 |
+
<form id="currency_symbols_form" action="<?php echo $this->getFormActionUrl() ?>" method="post">
|
| 48 |
+
<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />
|
| 49 |
+
|
| 50 |
+
<div class="entry-edit">
|
| 51 |
+
<div class="fieldset fieldset-wide">
|
| 52 |
+
<div class="grid">
|
| 53 |
+
<div class="hor-scroll">
|
| 54 |
+
<table cellspacing="0" class="data table-cat-img-sizes">
|
| 55 |
+
<colgroup>
|
| 56 |
+
<col width="15%"/>
|
| 57 |
+
<col />
|
| 58 |
+
</colgroup>
|
| 59 |
+
<thead>
|
| 60 |
+
<tr class="headings">
|
| 61 |
+
<th><span class="nobr"><span class="not-sort"><?php echo $this->__('Currency'); ?></span></span></th>
|
| 62 |
+
<th><span class="nobr"><span class="not-sort"><?php echo $this->__('Symbol'); ?><span class="required"><em>*</em></span></span></span></th>
|
| 63 |
+
</tr>
|
| 64 |
+
</thead>
|
| 65 |
+
<tbody>
|
| 66 |
+
<?php foreach($this->getCurrencySymbolsData() as $code => $data): ?>
|
| 67 |
+
<tr>
|
| 68 |
+
<td class="label">
|
| 69 |
+
<label for="custom_currency_symbol<?php echo $code; ?>"><?php echo $code; ?> (<?php echo $data['displayName']; ?>)</label>
|
| 70 |
+
</td>
|
| 71 |
+
<td class="value">
|
| 72 |
+
<input id="custom_currency_symbol<?php echo $code; ?>" class=" required-entry input-text" type="text" value="<?php echo Mage::helper('core')->quoteEscape($data['displaySymbol']); ?>"<?php echo $data['inherited'] ? ' disabled="disabled"' : '';?> name="custom_currency_symbol[<?php echo $code; ?>]">
|
| 73 |
+
<input id="custom_currency_symbol_inherit<?php echo $code; ?>" class="checkbox config-inherit" type="checkbox" onclick="toggleUseDefault(<?php echo '\'' . $code . '\',\'' . Mage::helper('core')->quoteEscape($data['parentSymbol'], true) . '\''; ?>)"<?php echo $data['inherited'] ? ' checked="checked"' : ''; ?> value="1" name="inherit_custom_currency_symbol[<?php echo $code; ?>]">
|
| 74 |
+
<label class="inherit" title="" for="custom_currency_symbol_inherit<?php echo $code; ?>"><?php echo $this->getInheritText(); ?></label>
|
| 75 |
+
</td>
|
| 76 |
+
</tr>
|
| 77 |
+
<?php endforeach; ?>
|
| 78 |
+
</tbody>
|
| 79 |
+
</table>
|
| 80 |
+
</div>
|
| 81 |
+
</div>
|
| 82 |
+
</div>
|
| 83 |
+
</div>
|
| 84 |
+
</form>
|
| 85 |
+
<script type="text/javascript">
|
| 86 |
+
var currencySymbolsForm = new varienForm('currency_symbols_form');
|
| 87 |
+
|
| 88 |
+
function toggleUseDefault(code, value)
|
| 89 |
+
{
|
| 90 |
+
checkbox = $('custom_currency_symbol_inherit'+code);
|
| 91 |
+
input = $('custom_currency_symbol'+code);
|
| 92 |
+
if (checkbox.checked) {
|
| 93 |
+
input.value = value;
|
| 94 |
+
input.disabled = true;
|
| 95 |
+
} else {
|
| 96 |
+
input.disabled = false;
|
| 97 |
+
}
|
| 98 |
+
}
|
| 99 |
+
</script>
|
| 100 |
+
|
app/design/adminhtml/default/default/template/customer/edit/js.phtml
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<script type="text/javascript">
|
| 28 |
+
function saveAndContinueEdit(urlTemplate) {
|
| 29 |
+
var template = new Template(urlTemplate, /(^|.|\r|\n)({{(\w+)}})/);
|
| 30 |
+
var url = template.evaluate({tab_id:customer_info_tabsJsTabs.activeTab.id});
|
| 31 |
+
editForm.submit(url);
|
| 32 |
+
}
|
| 33 |
+
</script>
|
app/design/adminhtml/default/default/template/customer/edit/tab/account/form/renderer/group.phtml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
$_element = $this->getElement();
|
| 29 |
+
$_note = $_element->getNote();
|
| 30 |
+
$_trId = $_element->getHtmlContainerId();
|
| 31 |
+
$_class = $_element->getFieldsetHtmlClass();
|
| 32 |
+
?>
|
| 33 |
+
<?php if (!$_element->getNoDisplay()): ?>
|
| 34 |
+
<tr<?php if ($_trId): ?> id="<?php echo $_trId; ?>"<?php endif; ?>>
|
| 35 |
+
<?php if ($_element->getType() == 'hidden'): ?>
|
| 36 |
+
<td colspan="2" class="hidden"><?php echo trim($_element->getElementHtml()); ?></td>
|
| 37 |
+
<?php else: ?>
|
| 38 |
+
<td class="label<?php echo $_class ? " {$_class}-label" : ''; ?>"><?php echo trim($_element->getLabelHtml()); ?></td>
|
| 39 |
+
<td class="<?php echo $_element->hasValueClass() ? $_element->getValueClass() : 'value'; ?><?php echo $_class ? " {$_class}-value" : ''; ?>">
|
| 40 |
+
<?php echo trim($_element->getElementHtml()); ?>
|
| 41 |
+
<?php if ($this->getDisableAutoGroupChangeAttribute()): ?>
|
| 42 |
+
<br/>
|
| 43 |
+
<input id="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementId()); ?>" name="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementName()); ?>" type="checkbox"<?php if ($this->getDisableAutoGroupChangeCheckboxState() == 'checked') :?> checked="checked"<?php endif; ?> value="1"/>
|
| 44 |
+
<label for="<?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxElementId()); ?>"><?php echo $this->escapeHtml($this->getDisableAutoGroupChangeCheckboxLabel()); ?></label>
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
<?php if ($_note): ?>
|
| 47 |
+
<p class="note<?php echo $_class ? " {$_class}-note" : ''; ?>" id="note_<?php echo $_element->getId(); ?>"><span><?php echo $_note; ?></span></p>
|
| 48 |
+
<?php endif ?>
|
| 49 |
+
</td>
|
| 50 |
+
<?php endif; ?>
|
| 51 |
+
</tr>
|
| 52 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/customer/edit/tab/view/grid/item.phtml
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Adminhtml_Block_Customer_Edit_Tab_View_Grid_Renderer_Item */ ?>
|
| 28 |
+
<?php
|
| 29 |
+
$product = $this->getProduct();
|
| 30 |
+
$options = $this->getOptionList();
|
| 31 |
+
?>
|
| 32 |
+
|
| 33 |
+
<?php if (!$options): ?>
|
| 34 |
+
<?php echo $this->escapeHtml($product->getName())?>
|
| 35 |
+
<?php else: ?>
|
| 36 |
+
<div class="bundle-product-options">
|
| 37 |
+
<strong><?php echo $this->escapeHtml($product->getName())?></strong>
|
| 38 |
+
<dl>
|
| 39 |
+
<?php foreach ($options as $option) : ?>
|
| 40 |
+
<dt><?php echo $this->escapeHtml($option['label']) ?></dt>
|
| 41 |
+
<?php $formatedOptionValue = $this->getFormattedOptionValue($option) ?>
|
| 42 |
+
<dd><?php echo $formatedOptionValue['value'] ?></dd>
|
| 43 |
+
<?php endforeach; ?>
|
| 44 |
+
</dl>
|
| 45 |
+
</div>
|
| 46 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/customer/online.phtml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="content-header">
|
| 28 |
+
<table cellspacing="0">
|
| 29 |
+
<tr>
|
| 30 |
+
<td><h3 class="icon-head head-online-visitors"><?php echo Mage::helper('customer')->__('Online Customers') ?></h3></td>
|
| 31 |
+
</tr>
|
| 32 |
+
</table>
|
| 33 |
+
</div>
|
| 34 |
+
<?php echo $this->getChildHtml('grid') ?>
|
app/design/adminhtml/default/default/template/customer/sales/order/create/address/form/renderer/vat.phtml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
$_element = $this->getElement();
|
| 29 |
+
$_note = $_element->getNote();
|
| 30 |
+
$_trId = $_element->getHtmlContainerId();
|
| 31 |
+
$_class = $_element->getFieldsetHtmlClass();
|
| 32 |
+
$_validateButton = $this->getValidateButton();
|
| 33 |
+
?>
|
| 34 |
+
<?php if (!$_element->getNoDisplay()): ?>
|
| 35 |
+
<tr<?php if($_trId): ?> id="<?php echo $_trId; ?>"<?php endif; ?>>
|
| 36 |
+
<?php if ($_element->getType()=='hidden'): ?>
|
| 37 |
+
<td colspan="2" class="hidden"><?php echo trim($_element->getElementHtml()); ?></td>
|
| 38 |
+
<?php else: ?>
|
| 39 |
+
<td class="label<?php echo $_class ? " {$_class}-label" : ''?>"><?php echo trim($_element->getLabelHtml()); ?></td>
|
| 40 |
+
<td class="<?php echo $_element->hasValueClass() ? $_element->getValueClass() : 'value'; ?><?php echo $_class ? " {$_class}-value" : ''; ?>">
|
| 41 |
+
<?php echo trim($_element->getElementHtml()); ?>
|
| 42 |
+
<?php if ($_note): ?>
|
| 43 |
+
<p class="note<?php echo $_class ? " {$_class}-note" : ''; ?>" id="note_<?php echo $_element->getId(); ?>"><span><?php echo $_note; ?></span></p>
|
| 44 |
+
<?php endif; ?>
|
| 45 |
+
<div class="validate-vat">
|
| 46 |
+
<?php echo $_validateButton->toHtml(); ?>
|
| 47 |
+
</div>
|
| 48 |
+
</td>
|
| 49 |
+
<?php endif; ?>
|
| 50 |
+
|
| 51 |
+
</tr>
|
| 52 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/customer/system/config/validatevat.phtml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* @see Mage_Adminhtml_Block_Customer_System_Config_Validatevat
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<script type="text/javascript">
|
| 33 |
+
//<![CDATA[
|
| 34 |
+
function validateVat() {
|
| 35 |
+
var elem = $('<?php echo $this->getHtmlId() ?>');
|
| 36 |
+
|
| 37 |
+
params = {
|
| 38 |
+
country: $('general_store_information_merchant_country').value,
|
| 39 |
+
vat: $('general_store_information_merchant_vat_number').value
|
| 40 |
+
};
|
| 41 |
+
|
| 42 |
+
new Ajax.Request('<?php echo $this->getAjaxUrl() ?>', {
|
| 43 |
+
parameters: params,
|
| 44 |
+
onSuccess: function(response) {
|
| 45 |
+
result = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('VAT Number is Invalid')) ?>';
|
| 46 |
+
try {
|
| 47 |
+
response = response.responseText;
|
| 48 |
+
if (response == 1) {
|
| 49 |
+
result = '<?php echo Mage::helper('core')->jsQuoteEscape($this->__('VAT Number is Valid')) ?>';
|
| 50 |
+
elem.removeClassName('fail').addClassName('success')
|
| 51 |
+
} else {
|
| 52 |
+
elem.removeClassName('success').addClassName('fail')
|
| 53 |
+
}
|
| 54 |
+
} catch (e) {
|
| 55 |
+
elem.removeClassName('success').addClassName('fail')
|
| 56 |
+
}
|
| 57 |
+
$('validation_result').update(result);
|
| 58 |
+
}
|
| 59 |
+
});
|
| 60 |
+
}
|
| 61 |
+
//]]>
|
| 62 |
+
</script>
|
| 63 |
+
<button onclick="javascript:validateVat(); return false;" class="scalable" type="button" id="<?php echo $this->getHtmlId() ?>">
|
| 64 |
+
<span id="validation_result"><?php echo $this->escapeHtml($this->getButtonLabel()) ?></span>
|
| 65 |
+
</button>
|
app/design/adminhtml/default/default/template/customer/tab/addresses.phtml
ADDED
|
@@ -0,0 +1,640 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<!-- Addresses list -->
|
| 28 |
+
<table cellspacing="0" class="form-edit">
|
| 29 |
+
<tr>
|
| 30 |
+
<td class="address-list">
|
| 31 |
+
<div class="entry-edit-head">
|
| 32 |
+
<h4 class="icon-head head-customer-address-list"><?php echo Mage::helper('customer')->__('Customer Addresses') ?></h4>
|
| 33 |
+
</div>
|
| 34 |
+
<div class="sub-btn-set"><?php echo $this->getAddNewButtonHtml() ?></div>
|
| 35 |
+
<ul id="address_list">
|
| 36 |
+
<?php $_iterator = 0; ?>
|
| 37 |
+
<?php if(count($addressCollection)): ?>
|
| 38 |
+
<?php foreach ($addressCollection as $_address): ?>
|
| 39 |
+
<li id="address_item_<?php echo $_address->getId() ?>">
|
| 40 |
+
<?php if (!$this->isReadonly()): ?>
|
| 41 |
+
<a href="#" class="btn-remove-address">
|
| 42 |
+
<img src="<?php echo $this->getSkinUrl('images/cancel_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Remove address')) ?>" id="delete_button<?php echo ++$_iterator ?>" />
|
| 43 |
+
</a>
|
| 44 |
+
<a href="#" id="select_button_<?php echo $_address->getId() ?>" class="select_button btn-edit-address">
|
| 45 |
+
<img src="<?php echo $this->getSkinUrl('images/edit_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Edit address')) ?>"/>
|
| 46 |
+
</a>
|
| 47 |
+
<?php endif;?>
|
| 48 |
+
<address>
|
| 49 |
+
<?php echo $_address->format('html') ?>
|
| 50 |
+
</address>
|
| 51 |
+
<div class="address-type">
|
| 52 |
+
<span class="address-type-line">
|
| 53 |
+
<input type="radio" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> value="<?php echo $_address->getId() ?>" id="address_item_billing<?php echo $_address->getId() ?>" name="account[default_billing]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Billing Address')) ?>"<?php if($_address->getId()==$customer->getDefaultBilling()): ?> checked="checked"<?php endif; ?>/>
|
| 54 |
+
<label for="address_item_billing<?php echo $_address->getId() ?>"><?php echo Mage::helper('customer')->__('Default Billing Address') ?></label>
|
| 55 |
+
</span>
|
| 56 |
+
<span class="address-type-line">
|
| 57 |
+
<input type="radio" <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> value="<?php echo $_address->getId() ?>" id="address_item_shipping<?php echo $_address->getId() ?>" name="account[default_shipping]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Shipping Address')) ?>"<?php if($_address->getId()==$customer->getDefaultShipping()): ?> checked="checked"<?php endif; ?>/>
|
| 58 |
+
<label for="address_item_shipping<?php echo $_address->getId() ?>"><?php echo Mage::helper('customer')->__('Default Shipping Address') ?></label>
|
| 59 |
+
</span>
|
| 60 |
+
</div>
|
| 61 |
+
</li>
|
| 62 |
+
<?php endforeach; ?>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
</ul>
|
| 65 |
+
</td>
|
| 66 |
+
<td>
|
| 67 |
+
<!-- Template for adding address item to list -->
|
| 68 |
+
<?php $_templatePrefix = $this->getTemplatePrefix() ?>
|
| 69 |
+
<div id="address_item_template" class="no-display template">
|
| 70 |
+
<?php if (!$this->isReadonly()): ?>
|
| 71 |
+
<a href="#" class="btn-remove-address">
|
| 72 |
+
<img src="<?php echo $this->getSkinUrl('images/cancel_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Remove address')) ?>" id="delete_button<?php echo ++$_iterator ?>" />
|
| 73 |
+
</a>
|
| 74 |
+
<a href="#" id="select_button_" class="select_button btn-edit-address">
|
| 75 |
+
<img src="<?php echo $this->getSkinUrl('images/edit_icon.gif') ?>" alt="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Edit address')) ?>"/>
|
| 76 |
+
</a>
|
| 77 |
+
<?php endif;?>
|
| 78 |
+
<address><?php echo Mage::helper('customer')->__('New Customer Address') ?></address>
|
| 79 |
+
<div class="address-type">
|
| 80 |
+
<span class="address-type-line">
|
| 81 |
+
<input <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> type="radio" value="<?php echo $_templatePrefix ?>" id="address_item_billing<?php echo $_templatePrefix ?>" name="account[default_billing]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Billing Address')) ?>"/>
|
| 82 |
+
<label for="address_item_billing<?php echo $_templatePrefix ?>"><?php echo Mage::helper('customer')->__('Default Billing Address') ?></label>
|
| 83 |
+
</span>
|
| 84 |
+
<span class="address-type-line">
|
| 85 |
+
<input <?php if ($this->isReadonly()):?> disabled="disabled"<?php endif;?> type="radio" value="<?php echo $_templatePrefix ?>" id="address_item_shipping<?php echo $_templatePrefix ?>" name="account[default_shipping]" title="<?php echo Mage::helper('core')->quoteEscape(Mage::helper('customer')->__('Set as Default Shipping Address')) ?>"/>
|
| 86 |
+
<label for="address_item_shipping<?php echo $_templatePrefix ?>"><?php echo Mage::helper('customer')->__('Default Shipping Address') ?></label>
|
| 87 |
+
</span>
|
| 88 |
+
</div>
|
| 89 |
+
</div>
|
| 90 |
+
|
| 91 |
+
<!-- Address form template -->
|
| 92 |
+
<div id="address_form_template" class="no-display template">
|
| 93 |
+
<?php
|
| 94 |
+
// Set form template elements prefix
|
| 95 |
+
$this->getForm()->setHtmlIdPrefix($_templatePrefix)
|
| 96 |
+
->setFieldNameSuffix('address['.$_templatePrefix.']');
|
| 97 |
+
?>
|
| 98 |
+
<?php echo $this->getForm()->getHtml() ?>
|
| 99 |
+
<?php echo $this->getCancelButtonHtml() ?>
|
| 100 |
+
</div>
|
| 101 |
+
<!-- -->
|
| 102 |
+
|
| 103 |
+
<!-- Addresses forms -->
|
| 104 |
+
<div class="entry-edit" id="address_form_container">
|
| 105 |
+
<?php if(count($addressCollection)): ?>
|
| 106 |
+
<?php foreach ($addressCollection as $_address): ?>
|
| 107 |
+
<div id="form_address_item_<?php echo $_address->getId() ?>" style="display:none">
|
| 108 |
+
<?php
|
| 109 |
+
$this->getForm()->addValues($_address->getData())
|
| 110 |
+
->setHtmlIdPrefix("_item{$_address->getId()}")
|
| 111 |
+
->setFieldNameSuffix('address['.$_address->getId().']');
|
| 112 |
+
$this->addValuesToNamePrefixElement($_address->getPrefix())
|
| 113 |
+
->addValuesToNameSuffixElement($_address->getSuffix());
|
| 114 |
+
?>
|
| 115 |
+
<?php echo $this->getForm()->getHtml() ?>
|
| 116 |
+
<input type="hidden" name="address[<?php echo $_address->getId() ?>][_deleted]" id="deleted_address_item_<?php echo $_address->getId() ?>" />
|
| 117 |
+
</div>
|
| 118 |
+
<?php endforeach; ?>
|
| 119 |
+
<?php else: ?>
|
| 120 |
+
<div id="no_address_message"><?php echo Mage::helper('customer')->__('This customer has no saved addresses.') ?></div>
|
| 121 |
+
<?php endif; ?>
|
| 122 |
+
</div>
|
| 123 |
+
|
| 124 |
+
<script type="text/javascript">
|
| 125 |
+
//<![CDATA[
|
| 126 |
+
var deleteButtonId = <?php echo $_iterator ?>;
|
| 127 |
+
|
| 128 |
+
var addressesModel = Class.create();
|
| 129 |
+
addressesModel.prototype = {
|
| 130 |
+
initialize : function() {
|
| 131 |
+
this.activeItem = null;
|
| 132 |
+
this.itemTemplate = $('address_item_template');
|
| 133 |
+
this.formTemplate = $('address_form_template');
|
| 134 |
+
this.itemContainer= $('address_list');
|
| 135 |
+
this.formContainer= $('address_form_container');
|
| 136 |
+
this.baseItemId = 'new_item';
|
| 137 |
+
|
| 138 |
+
this.defaultCountries = <?php echo $this->getDefaultCountriesJson(); ?>;
|
| 139 |
+
this.itemContentTemplate = new Template('<?php echo $this->helper('customer/address')->getFormat('js_template')?>');
|
| 140 |
+
|
| 141 |
+
this.onNewAddressClick = this.addNewAddress.bindAsEventListener(this);
|
| 142 |
+
this.onItemMouseOver = this.itemMouseOver.bindAsEventListener(this);
|
| 143 |
+
this.onItemMouseOut = this.itemMouseOut.bindAsEventListener(this);
|
| 144 |
+
this.onItemMouseClick = this.itemMouseClick.bindAsEventListener(this);
|
| 145 |
+
this.onItemFormFieldChange = this.syncFormData.bindAsEventListener(this);
|
| 146 |
+
|
| 147 |
+
this.loader = new varienLoader(true);
|
| 148 |
+
this.regionsUrl = '<?php echo $this->getRegionsUrl() ?>';
|
| 149 |
+
this.requiredStateForCountries = <?php echo $this->helper('directory')->getCountriesWithStatesRequired(true) ?>;
|
| 150 |
+
this.showAllRegions = <?php echo (string)$this->helper('directory')->getShowNonRequiredState() ? 1 : 0; ?>;
|
| 151 |
+
|
| 152 |
+
this.reloadItemList(1);
|
| 153 |
+
|
| 154 |
+
for(var i=0,n=this.itemList.length; i<n; i++){
|
| 155 |
+
if(this.itemList[i].id){
|
| 156 |
+
this.addItemObservers(this.itemList[i]);
|
| 157 |
+
this.initItem(this.itemList[i]);
|
| 158 |
+
}
|
| 159 |
+
}
|
| 160 |
+
if($('add_new_address_button')){
|
| 161 |
+
Event.observe('add_new_address_button', 'click', this.onNewAddressClick)
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
this.setActiveItem(this.itemList[0]);
|
| 165 |
+
this.setAddressAsDefault();
|
| 166 |
+
this.bindCountryRegionRelation();
|
| 167 |
+
},
|
| 168 |
+
|
| 169 |
+
reloadItemList : function(initial){
|
| 170 |
+
this.itemList = $$('#address_list li');
|
| 171 |
+
if( initial ) {
|
| 172 |
+
this.itemCount = this.itemList.length;
|
| 173 |
+
}
|
| 174 |
+
if(!this.itemList.length){
|
| 175 |
+
if($('no_address_message')){
|
| 176 |
+
$('no_address_message').show();
|
| 177 |
+
}
|
| 178 |
+
else {
|
| 179 |
+
this.formContainer.innerHTML+= '<div id="no_address_message"><?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('This customer has no saved addresses.')) ?></div>'
|
| 180 |
+
}
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
|
| 184 |
+
initItem : function(item){
|
| 185 |
+
if(item && $('form_'+item.id)){
|
| 186 |
+
item.formBlock = $('form_'+item.id);
|
| 187 |
+
Element.hide($('form_'+item.id));
|
| 188 |
+
$('form_'+item.id).statusBar = item;
|
| 189 |
+
$('form_'+item.id).addressItem = item;
|
| 190 |
+
|
| 191 |
+
// set Zip optional/required
|
| 192 |
+
var countryElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
|
| 193 |
+
varienGlobalEvents.fireEvent("address_country_changed", countryElement);
|
| 194 |
+
}
|
| 195 |
+
},
|
| 196 |
+
|
| 197 |
+
addItemObservers : function(item){
|
| 198 |
+
if(item.id){
|
| 199 |
+
Event.observe(item, 'mouseover', this.onItemMouseOver);
|
| 200 |
+
Event.observe(item, 'mouseout', this.onItemMouseOut);
|
| 201 |
+
Event.observe(item, 'click', this.onItemMouseClick);
|
| 202 |
+
}
|
| 203 |
+
},
|
| 204 |
+
|
| 205 |
+
addNewAddress : function(event){
|
| 206 |
+
if(this.canCreateNewAddress){
|
| 207 |
+
this.itemCount++;
|
| 208 |
+
if($('no_address_message')){
|
| 209 |
+
$('no_address_message').hide();
|
| 210 |
+
}
|
| 211 |
+
// preventing duplication of ids for fields and blocks
|
| 212 |
+
while ($$("div[id='form_address_item_" + this.itemCount + "']").length) {
|
| 213 |
+
this.itemCount++;
|
| 214 |
+
}
|
| 215 |
+
// create new form elements
|
| 216 |
+
Element.insert(this.formContainer, {bottom:
|
| 217 |
+
'<div id="' + 'form_' + this.baseItemId + this.itemCount + '">'
|
| 218 |
+
+ this.prepareTemplate(this.formTemplate.innerHTML)
|
| 219 |
+
+ '</div>'
|
| 220 |
+
});
|
| 221 |
+
|
| 222 |
+
var newForm = $('form_' + this.baseItemId + this.itemCount);
|
| 223 |
+
|
| 224 |
+
$('_item'+this.itemCount+'firstname').value = $('_accountfirstname').value;
|
| 225 |
+
$('_item'+this.itemCount+'lastname').value = $('_accountlastname').value;
|
| 226 |
+
|
| 227 |
+
if ($('_accountwebsite_id').value !== '' && undefined !== this.defaultCountries[$('_accountwebsite_id').value]) {
|
| 228 |
+
$('_item'+this.itemCount+'country_id').value = this.defaultCountries[$('_accountwebsite_id').value];
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
Element.hide(newForm);
|
| 232 |
+
var template = '<li id="' + this.baseItemId+this.itemCount + '">';
|
| 233 |
+
deleteButtonId ++;
|
| 234 |
+
template += this.prepareTemplate(this.itemTemplate.innerHTML).replace('delete_button', 'delete_button'+ deleteButtonId);
|
| 235 |
+
template += '</li>';
|
| 236 |
+
Element.insert(this.itemContainer, {bottom: template});
|
| 237 |
+
var newItem = $(this.baseItemId+this.itemCount);
|
| 238 |
+
newItem.isNewAddress = true;
|
| 239 |
+
newItem.formBlock = newForm;
|
| 240 |
+
|
| 241 |
+
|
| 242 |
+
newForm.statusBar = newItem;
|
| 243 |
+
newForm.addressItem = newItem;
|
| 244 |
+
|
| 245 |
+
// set Zip optional/required
|
| 246 |
+
var countryElement = $('_item' + newItem.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
|
| 247 |
+
varienGlobalEvents.fireEvent("address_country_changed", countryElement);
|
| 248 |
+
|
| 249 |
+
this.addItemObservers(newItem);
|
| 250 |
+
this.setActiveItem(newItem);
|
| 251 |
+
this.bindCountryRegionRelation(newForm.id);
|
| 252 |
+
|
| 253 |
+
if( $('_item'+this.itemCount+'firstname').value ) this.syncFormData($('_item'+this.itemCount+'firstname'));
|
| 254 |
+
if( $('_item'+this.itemCount+'lastname').value ) this.syncFormData($('_item'+this.itemCount+'lastname'));
|
| 255 |
+
}
|
| 256 |
+
this.reloadItemList();
|
| 257 |
+
//Event.stop(event);
|
| 258 |
+
},
|
| 259 |
+
|
| 260 |
+
prepareTemplate : function(template){
|
| 261 |
+
return template
|
| 262 |
+
.replace(/<?php echo $_templatePrefix ?>/g, '_item'+this.itemCount)
|
| 263 |
+
.replace(/_counted="undefined"/g, '')
|
| 264 |
+
.replace(/"select_button_"/g, 'select_button_' + this.itemCount)
|
| 265 |
+
;
|
| 266 |
+
},
|
| 267 |
+
|
| 268 |
+
canCreateNewAddress : function(){
|
| 269 |
+
return true;
|
| 270 |
+
},
|
| 271 |
+
|
| 272 |
+
itemMouseOver : function(event){
|
| 273 |
+
var element = Event.findElement(event, 'li');
|
| 274 |
+
Element.addClassName(element, 'over');
|
| 275 |
+
},
|
| 276 |
+
|
| 277 |
+
itemMouseOut : function(event){
|
| 278 |
+
var element = Event.findElement(event, 'li');
|
| 279 |
+
Element.removeClassName(element, 'over');
|
| 280 |
+
},
|
| 281 |
+
|
| 282 |
+
itemMouseClick : function(event){
|
| 283 |
+
if (!Event) {
|
| 284 |
+
return;
|
| 285 |
+
}
|
| 286 |
+
var element = Event.findElement(event, 'li'); // find top item
|
| 287 |
+
var elem = Event.element(event); // exact element clicked
|
| 288 |
+
|
| 289 |
+
if ( ((elem.tagName.toUpperCase() == 'A') && elem.id.match(/^delete_button([0-9]*?)$/)) || ((elem.tagName.toUpperCase() == 'IMG') && elem.id.match(/^delete_button([0-9]*?)$/)) ) {
|
| 290 |
+
this.deleteAddress(element);
|
| 291 |
+
Event.stop(event);
|
| 292 |
+
}
|
| 293 |
+
else if(elem.tagName.toUpperCase() == 'INPUT') {
|
| 294 |
+
this.setAddressAsDefault(element);
|
| 295 |
+
}
|
| 296 |
+
else {
|
| 297 |
+
this.setActiveItem(element);
|
| 298 |
+
}
|
| 299 |
+
},
|
| 300 |
+
|
| 301 |
+
setAddressAsDefault : function(){
|
| 302 |
+
for(var i=0; i<this.itemList.length;i++){
|
| 303 |
+
if(this.itemList[i].id){
|
| 304 |
+
var inputs = $(this.itemList[i].id).getElementsBySelector('input');
|
| 305 |
+
var isActive = false;
|
| 306 |
+
for(var j in inputs){
|
| 307 |
+
if(inputs[j].type=='radio' && inputs[j].checked && this.itemList.length > 1){
|
| 308 |
+
isActive = true;
|
| 309 |
+
}
|
| 310 |
+
}
|
| 311 |
+
this.toggleDeleteButton(this.itemList[i], !isActive);
|
| 312 |
+
}
|
| 313 |
+
}
|
| 314 |
+
},
|
| 315 |
+
|
| 316 |
+
toggleDeleteButton : function(item, flag){
|
| 317 |
+
if(flag){
|
| 318 |
+
$(item).select('.btn-remove-address').each(Element.show);
|
| 319 |
+
$(item.formBlock).getElementsBySelector('.delete-address').each(Element.show);
|
| 320 |
+
} else {
|
| 321 |
+
$(item).select('.btn-remove-address').each(Element.hide);
|
| 322 |
+
$(item.formBlock).getElementsBySelector('.delete-address').each(Element.hide);
|
| 323 |
+
}
|
| 324 |
+
},
|
| 325 |
+
|
| 326 |
+
setActiveItem : function(item){
|
| 327 |
+
if(this.activeItem){
|
| 328 |
+
Element.removeClassName(this.activeItem, 'on');
|
| 329 |
+
if($('form_'+this.activeItem.id)){
|
| 330 |
+
Element.hide($('form_'+this.activeItem.id));
|
| 331 |
+
}
|
| 332 |
+
}
|
| 333 |
+
Element.addClassName(item, 'on');
|
| 334 |
+
|
| 335 |
+
if(item && $('form_'+item.id)){
|
| 336 |
+
$('form_'+item.id).changeRelation = item;
|
| 337 |
+
$('form_'+item.id).addressItem = item;
|
| 338 |
+
Element.show($('form_'+item.id));
|
| 339 |
+
//new Effect.Appear($('form_'+item.id), {duration : 0.3 });
|
| 340 |
+
//$('form_'+item.id).focus();
|
| 341 |
+
this.addFieldChangeObserver($('form_'+item.id));
|
| 342 |
+
var regionIdElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'region_id');
|
| 343 |
+
var regionElement = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'region');
|
| 344 |
+
this.countryEl = $('_item' + item.id.replace(/address_item_/, '').replace(new RegExp(this.baseItemId), '') + 'country_id');
|
| 345 |
+
if (regionIdElement && regionElement) {
|
| 346 |
+
var actualId = regionElement.id;
|
| 347 |
+
if (('select' == regionIdElement.tagName.toLowerCase()) && regionIdElement) {
|
| 348 |
+
actualId = regionIdElement.id;
|
| 349 |
+
}
|
| 350 |
+
this._checkRegionRequired([regionIdElement, regionElement], actualId);
|
| 351 |
+
}
|
| 352 |
+
}
|
| 353 |
+
|
| 354 |
+
this.activeItem = item;
|
| 355 |
+
},
|
| 356 |
+
|
| 357 |
+
getFormContainerFields : function(container){
|
| 358 |
+
var fields = $$( '#' + container.id + ' input','#' + container.id + ' select','#' + container.id + ' textarea');
|
| 359 |
+
return fields;
|
| 360 |
+
},
|
| 361 |
+
|
| 362 |
+
addFieldChangeObserver : function(container){
|
| 363 |
+
var fields = this.getFormContainerFields(container);
|
| 364 |
+
for (var i = 0; i < fields.length; i++) {
|
| 365 |
+
Event.observe(fields[i], 'change', this.onItemFormFieldChange);
|
| 366 |
+
}
|
| 367 |
+
|
| 368 |
+
},
|
| 369 |
+
|
| 370 |
+
syncFormData : function(evt){
|
| 371 |
+
var container = false;
|
| 372 |
+
|
| 373 |
+
if(!evt.addClassName) {
|
| 374 |
+
var elm = Event.element(evt);
|
| 375 |
+
} else {
|
| 376 |
+
var elm = evt;
|
| 377 |
+
}
|
| 378 |
+
|
| 379 |
+
elm = $(elm);
|
| 380 |
+
while(elm.tagName.toUpperCase() != 'BODY') {
|
| 381 |
+
if(elm.addressItem){
|
| 382 |
+
container = elm;
|
| 383 |
+
}
|
| 384 |
+
elm = $(elm.parentNode);
|
| 385 |
+
}
|
| 386 |
+
|
| 387 |
+
if(container){
|
| 388 |
+
var data = {};
|
| 389 |
+
var fields = this.getFormContainerFields(container);
|
| 390 |
+
for(var i=0; i < fields.size(); i++){
|
| 391 |
+
if(fields[i].id){
|
| 392 |
+
var id = fields[i].id.replace(/^(_item)?[0-9]+/, '');
|
| 393 |
+
var id = id.replace(/^(id)?[0-9]+/, '');
|
| 394 |
+
var value = fields[i].getValue();
|
| 395 |
+
var tagName = fields[i].tagName.toLowerCase();
|
| 396 |
+
if (tagName == 'select') {
|
| 397 |
+
if (fields[i].multiple) {
|
| 398 |
+
var values = $([]);
|
| 399 |
+
var l = fields[i].options.length;
|
| 400 |
+
for (j=0; j<l; j++) {
|
| 401 |
+
var o = fields[i].options[j];
|
| 402 |
+
if (o.selected === true) {
|
| 403 |
+
values[values.length] = o.text.escapeHTML();
|
| 404 |
+
}
|
| 405 |
+
}
|
| 406 |
+
data[id] = values.join(', ');
|
| 407 |
+
} else {
|
| 408 |
+
var option = fields[i].options[fields[i].selectedIndex],
|
| 409 |
+
text = option.value == '0' || option.value == '' ? '' : option.text;
|
| 410 |
+
data[id] = text.escapeHTML();
|
| 411 |
+
}
|
| 412 |
+
} else if (value !== null) {
|
| 413 |
+
data[id] = value.escapeHTML();
|
| 414 |
+
}
|
| 415 |
+
}
|
| 416 |
+
}
|
| 417 |
+
|
| 418 |
+
// Set name of state to 'region' if list of states are in 'region_id' selectbox
|
| 419 |
+
if (!data['region'] && data['region_id']) {
|
| 420 |
+
data['region'] = data['region_id'];
|
| 421 |
+
delete data['region_id'];
|
| 422 |
+
}
|
| 423 |
+
|
| 424 |
+
// Set data to html
|
| 425 |
+
var itemContainer = container.addressItem.getElementsBySelector('address');
|
| 426 |
+
if(itemContainer[0]){
|
| 427 |
+
var html = this.itemContentTemplate.evaluate(data);
|
| 428 |
+
html = html.replace(new RegExp('(<br\\s*/?>\\s*){2,}','img'),'<br/>');
|
| 429 |
+
html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}\\s*<br\\s*/?>','ig'),'<br/>');
|
| 430 |
+
html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}(.*)<br\\s*/?>','ig'),'<br/>$2<br/>');
|
| 431 |
+
html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){1,}<br\\s*/?>','ig'),'<br/>$1<br/>');
|
| 432 |
+
html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){2,}(.*?)<br\\s*/?>','ig'),'<br/>$1, $3<br/>');
|
| 433 |
+
html = html.replace(new RegExp('t:\\s*<br\\s*/?>','ig'),'');
|
| 434 |
+
html = html.replace(new RegExp('f:\\s*<br\\s*/?>','ig'),'');
|
| 435 |
+
html = html.replace(new RegExp('vat:\\s*$','ig'),'');
|
| 436 |
+
itemContainer[0].innerHTML = html;
|
| 437 |
+
}
|
| 438 |
+
}
|
| 439 |
+
},
|
| 440 |
+
|
| 441 |
+
deleteAddress : function(item){
|
| 442 |
+
if(confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure you want to delete this address?')) ?>')){
|
| 443 |
+
if (!item.isNewAddress && $('deleted_'+item.id)){
|
| 444 |
+
$('deleted_'+item.id).value = 1;
|
| 445 |
+
if (item.formBlock){
|
| 446 |
+
item.formBlock.addClassName('ignore-validation');
|
| 447 |
+
}
|
| 448 |
+
}
|
| 449 |
+
if (this.activeItem == item && item != this.itemList[0]) this.setActiveItem(this.itemList[0]);
|
| 450 |
+
if (item == this.itemList[0] && (this.itemList[1])) this.setActiveItem(this.itemList[1]);
|
| 451 |
+
|
| 452 |
+
this.formContainer.removeChild(item.formBlock);
|
| 453 |
+
this.itemContainer.removeChild(item);
|
| 454 |
+
this.reloadItemList();
|
| 455 |
+
this.setAddressAsDefault();
|
| 456 |
+
}
|
| 457 |
+
},
|
| 458 |
+
|
| 459 |
+
cancelAdd : function(button){
|
| 460 |
+
if(confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure you want to cancel adding of this address?')) ?>')){
|
| 461 |
+
var item = $(this.baseItemId + button.id.replace(new RegExp('[a-z_]*',''), ''));
|
| 462 |
+
|
| 463 |
+
if( item.isNewAddress){
|
| 464 |
+
if ( this.activeItem == item ) this.formContainer.removeChild(item.formBlock);
|
| 465 |
+
}
|
| 466 |
+
if ( this.activeItem == item && item != this.itemList[0] ) this.setActiveItem(this.itemList[0]);
|
| 467 |
+
if ( item == this.itemList[0] && (this.itemList[1]) ) this.setActiveItem(this.itemList[1]);
|
| 468 |
+
|
| 469 |
+
this.itemContainer.removeChild(item);
|
| 470 |
+
|
| 471 |
+
this.reloadItemList();
|
| 472 |
+
this.setAddressAsDefault();
|
| 473 |
+
}
|
| 474 |
+
},
|
| 475 |
+
|
| 476 |
+
bindCountryRegionRelation : function(parentId){
|
| 477 |
+
//alert('OK');
|
| 478 |
+
if(parentId){
|
| 479 |
+
var countryElements = $(parentId).getElementsByClassName('countries');
|
| 480 |
+
}
|
| 481 |
+
else{
|
| 482 |
+
var countryElements = $$('.countries');
|
| 483 |
+
}
|
| 484 |
+
|
| 485 |
+
for(var i=0;i<=countryElements.length;i++){
|
| 486 |
+
if(countryElements[i]){
|
| 487 |
+
if(!countryElements[i].bindRegions || !countryElements[i].parentBindId || countryElements[i].parentBindId!=parentId){
|
| 488 |
+
//if(!countryElements[i].bindRegions || !countryElements[i].parentBindId){
|
| 489 |
+
Event.observe(countryElements[i], 'change', this.reloadRegionField.bind(this));
|
| 490 |
+
|
| 491 |
+
countryElements[i].bindRegions = true;
|
| 492 |
+
countryElements[i].parentBindId = parentId;
|
| 493 |
+
}
|
| 494 |
+
}
|
| 495 |
+
}
|
| 496 |
+
},
|
| 497 |
+
|
| 498 |
+
reloadRegionField : function(event){
|
| 499 |
+
var countryElement = Event.element(event);
|
| 500 |
+
if(countryElement.id){
|
| 501 |
+
var regionElement = $(countryElement.id.replace(/country_id/, 'region'));
|
| 502 |
+
if(regionElement){
|
| 503 |
+
this.regionElement = regionElement;
|
| 504 |
+
this.countryEl = countryElement;
|
| 505 |
+
if (countryElement.value) {
|
| 506 |
+
var url = this.regionsUrl + 'parent/' + countryElement.value;
|
| 507 |
+
this.loader.load(url, {}, this.refreshRegionField.bind(this));
|
| 508 |
+
} else {
|
| 509 |
+
// Set empty text field in region
|
| 510 |
+
this.refreshRegionField('[]');
|
| 511 |
+
}
|
| 512 |
+
}
|
| 513 |
+
// set Zip optional/required
|
| 514 |
+
varienGlobalEvents.fireEvent("address_country_changed", countryElement);
|
| 515 |
+
}
|
| 516 |
+
},
|
| 517 |
+
|
| 518 |
+
// serverResponse is either string with server response, or object to force some paricular data setting
|
| 519 |
+
refreshRegionField : function(serverResponse){
|
| 520 |
+
if (!serverResponse)
|
| 521 |
+
return;
|
| 522 |
+
var data = eval('(' + serverResponse + ')');
|
| 523 |
+
|
| 524 |
+
var row = Element.previous(this.regionElement.parentNode,0);
|
| 525 |
+
var reqLabel = Element.select(row, '.required');
|
| 526 |
+
|
| 527 |
+
// Set regions and refresh controls
|
| 528 |
+
// We use a pair of 'region' and 'region_id' to properly submit data:
|
| 529 |
+
// manually entered text goes in 'region' and selected option id goes in 'region_id'
|
| 530 |
+
var regionHtmlName = this.regionElement.name;
|
| 531 |
+
var regionIdHtmlName = regionHtmlName.replace(/region/, 'region_id');
|
| 532 |
+
var regionHtmlId = this.regionElement.id;
|
| 533 |
+
var regionIdHtmlId = regionHtmlId.replace(/region/, 'region_id');
|
| 534 |
+
var newInputId = null; // id of imput that was added to a page - filled below
|
| 535 |
+
|
| 536 |
+
if (data.length) {
|
| 537 |
+
// Create visible selectbox 'region_id' and hidden 'region'
|
| 538 |
+
var html = '<select name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '" class="required-entry select" title="' + this.regionElement.title + '">';
|
| 539 |
+
for (var i in data){
|
| 540 |
+
if(data[i].label) {
|
| 541 |
+
html+= '<option value="'+data[i].value+'"';
|
| 542 |
+
if(this.regionElement.value && (this.regionElement.value == data[i].value || this.regionElement.value == data[i].label)){
|
| 543 |
+
html+= ' selected="selected"';
|
| 544 |
+
}
|
| 545 |
+
html+='>'+data[i].label+'</option>';
|
| 546 |
+
}
|
| 547 |
+
}
|
| 548 |
+
html += '</select>';
|
| 549 |
+
|
| 550 |
+
html += '<input type="hidden" name="' + regionHtmlName + '" id="' + regionHtmlId + '"/>';
|
| 551 |
+
|
| 552 |
+
if (reqLabel) {
|
| 553 |
+
reqLabel.each(function(item){Element.show(item)});
|
| 554 |
+
}
|
| 555 |
+
|
| 556 |
+
newInputId = regionIdHtmlId;
|
| 557 |
+
} else {
|
| 558 |
+
// Create visible text input 'region' and hidden 'region_id'
|
| 559 |
+
var html = '<input type="text" name="' + regionHtmlName + '" id="' + regionHtmlId + '" class="input-text" title="' + this.regionElement.title + '" />';
|
| 560 |
+
html += '<input type="hidden" name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '"/>';
|
| 561 |
+
|
| 562 |
+
if (reqLabel) {
|
| 563 |
+
reqLabel.each(function(item){Element.hide(item)});
|
| 564 |
+
}
|
| 565 |
+
|
| 566 |
+
newInputId = regionHtmlId;
|
| 567 |
+
}
|
| 568 |
+
|
| 569 |
+
var parentNode = this.regionElement.parentNode;
|
| 570 |
+
parentNode.innerHTML = html;
|
| 571 |
+
this.regionElement = $(regionHtmlId);
|
| 572 |
+
|
| 573 |
+
// Updating in address info
|
| 574 |
+
var newInput = $(newInputId);
|
| 575 |
+
Event.observe(newInput, 'change', this.onItemFormFieldChange); // Restore observing to update address info
|
| 576 |
+
this.syncFormData(newInput); // Update address info now
|
| 577 |
+
var activeElementId = regionHtmlId;
|
| 578 |
+
if (('select' == $(regionIdHtmlId).tagName.toLowerCase()) && regionIdHtmlId) {
|
| 579 |
+
activeElementId = regionIdHtmlId;
|
| 580 |
+
}
|
| 581 |
+
this._checkRegionRequired([$(regionHtmlId), $(regionIdHtmlId)], activeElementId);
|
| 582 |
+
},
|
| 583 |
+
|
| 584 |
+
_checkRegionRequired: function(elements, activeElementId)
|
| 585 |
+
{
|
| 586 |
+
var label, wildCard;
|
| 587 |
+
var that = this;
|
| 588 |
+
var regionRequired = this.requiredStateForCountries.indexOf(this.countryEl.value) >= 0;
|
| 589 |
+
|
| 590 |
+
elements.each(function(currentElement) {
|
| 591 |
+
Validation.reset(currentElement);
|
| 592 |
+
label = $$('label[for="' + currentElement.id + '"]')[0];
|
| 593 |
+
if (label) {
|
| 594 |
+
wildCard = label.down('em') || label.down('span.required');
|
| 595 |
+
if (!that.showAllRegions) {
|
| 596 |
+
if (regionRequired) {
|
| 597 |
+
label.up('tr').show();
|
| 598 |
+
} else {
|
| 599 |
+
label.up('tr').hide();
|
| 600 |
+
}
|
| 601 |
+
}
|
| 602 |
+
}
|
| 603 |
+
|
| 604 |
+
if (label && wildCard) {
|
| 605 |
+
if (!regionRequired) {
|
| 606 |
+
wildCard.hide();
|
| 607 |
+
} else {
|
| 608 |
+
wildCard.show();
|
| 609 |
+
}
|
| 610 |
+
}
|
| 611 |
+
|
| 612 |
+
if (!regionRequired) {
|
| 613 |
+
if (currentElement.hasClassName('required-entry')) {
|
| 614 |
+
currentElement.removeClassName('required-entry');
|
| 615 |
+
}
|
| 616 |
+
if ('select' == currentElement.tagName.toLowerCase() &&
|
| 617 |
+
currentElement.hasClassName('validate-select')
|
| 618 |
+
) {
|
| 619 |
+
currentElement.removeClassName('validate-select');
|
| 620 |
+
}
|
| 621 |
+
} else if (activeElementId == currentElement.id) {
|
| 622 |
+
if (!currentElement.hasClassName('required-entry')) {
|
| 623 |
+
currentElement.addClassName('required-entry');
|
| 624 |
+
}
|
| 625 |
+
if ('select' == currentElement.tagName.toLowerCase() &&
|
| 626 |
+
!currentElement.hasClassName('validate-select')
|
| 627 |
+
) {
|
| 628 |
+
currentElement.addClassName('validate-select');
|
| 629 |
+
}
|
| 630 |
+
}
|
| 631 |
+
});
|
| 632 |
+
}
|
| 633 |
+
}
|
| 634 |
+
|
| 635 |
+
customerAddresses = new addressesModel();
|
| 636 |
+
//]]>
|
| 637 |
+
</script>
|
| 638 |
+
</td>
|
| 639 |
+
</tr>
|
| 640 |
+
</table>
|
app/design/adminhtml/default/default/template/customer/tab/cart.phtml
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php /* @var $this Mage_Adminhtml_Block_Customer_Edit_Tab_Cart */ ?>
|
| 28 |
+
<?php if($this->getCartHeader()): ?>
|
| 29 |
+
<div class="content-header skip-header">
|
| 30 |
+
<table cellspacing="0">
|
| 31 |
+
<tr>
|
| 32 |
+
<td style="width:50%;"><h4><?php echo $this->getCartHeader(); ?></h4></td>
|
| 33 |
+
</tr>
|
| 34 |
+
</table>
|
| 35 |
+
</div>
|
| 36 |
+
<?php endif ?>
|
| 37 |
+
<?php echo $this->getGridParentHtml() ?>
|
| 38 |
+
<?php if ($this->canDisplayContainer()) : ?>
|
| 39 |
+
<?php
|
| 40 |
+
$listType = $this->getJsObjectName();
|
| 41 |
+
?>
|
| 42 |
+
<script type="text/javascript">
|
| 43 |
+
<?php echo $this->getJsObjectName() ?>cartControl = {
|
| 44 |
+
reload: function (params) {
|
| 45 |
+
if (!params) {
|
| 46 |
+
params = {};
|
| 47 |
+
}
|
| 48 |
+
<?php echo $this->getJsObjectName() ?>.reloadParams = params;
|
| 49 |
+
<?php echo $this->getJsObjectName() ?>.reload();
|
| 50 |
+
<?php echo $this->getJsObjectName() ?>.reloadParams = {};
|
| 51 |
+
},
|
| 52 |
+
|
| 53 |
+
configureItem: function (itemId) {
|
| 54 |
+
productConfigure.setOnLoadIFrameCallback('<?php echo $listType ?>', this.cbOnLoadIframe.bind(this));
|
| 55 |
+
productConfigure.showItemConfiguration('<?php echo $listType ?>', itemId);
|
| 56 |
+
return false;
|
| 57 |
+
},
|
| 58 |
+
|
| 59 |
+
cbOnLoadIframe: function (response) {
|
| 60 |
+
if (!response.ok) {
|
| 61 |
+
return;
|
| 62 |
+
}
|
| 63 |
+
this.reload();
|
| 64 |
+
},
|
| 65 |
+
|
| 66 |
+
removeItem: function (itemId) {
|
| 67 |
+
if (!itemId) {
|
| 68 |
+
alert('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('No item specified.')) ?>');
|
| 69 |
+
return false;
|
| 70 |
+
}
|
| 71 |
+
if(!confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure that you want to remove this item?')) ?>')) {
|
| 72 |
+
return false;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
this.reload({'delete':itemId});
|
| 76 |
+
|
| 77 |
+
return false;
|
| 78 |
+
}
|
| 79 |
+
};
|
| 80 |
+
|
| 81 |
+
<?php
|
| 82 |
+
$params = array(
|
| 83 |
+
'customer_id' => $this->getCustomer()->getId(),
|
| 84 |
+
'website_id' => $this->getWebsiteId()
|
| 85 |
+
);
|
| 86 |
+
?>
|
| 87 |
+
productConfigure.addListType(
|
| 88 |
+
'<?php echo $listType ?>',
|
| 89 |
+
{
|
| 90 |
+
urlFetch: '<?php echo $this->getUrl('*/customer_cart_product_composite_cart/configure', $params) ?>',
|
| 91 |
+
urlConfirm: '<?php echo $this->getUrl('*/customer_cart_product_composite_cart/update', $params) ?>'
|
| 92 |
+
}
|
| 93 |
+
);
|
| 94 |
+
</script>
|
| 95 |
+
<?php endif ?>
|
| 96 |
+
<br />
|
app/design/adminhtml/default/default/template/customer/tab/newsletter.phtml
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<?php echo $this->getFormObject()->getHtml() ?>
|
| 29 |
+
</div>
|
| 30 |
+
<?php echo $this->getChildHtml('grid') ?>
|
app/design/adminhtml/default/default/template/customer/tab/view.phtml
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
/**
|
| 29 |
+
* Template for block Mage_Adminhtml_Block_Customer_Edit_Tab_View
|
| 30 |
+
*/
|
| 31 |
+
?>
|
| 32 |
+
<?php
|
| 33 |
+
$lastLoginDateAdmin = $this->getLastLoginDate();
|
| 34 |
+
$lastLoginDateStore = $this->getStoreLastLoginDate();
|
| 35 |
+
|
| 36 |
+
$createDateAdmin = $this->getCreateDate();
|
| 37 |
+
$createDateStore = $this->getStoreCreateDate();
|
| 38 |
+
?>
|
| 39 |
+
<div class="entry-edit">
|
| 40 |
+
<div class="entry-edit-head"><h4 class="icon-head head-customer-view"><?php echo Mage::helper('customer')->__('Personal Information') ?></h4></div>
|
| 41 |
+
<fieldset>
|
| 42 |
+
<table cellspacing="2" class="box-left">
|
| 43 |
+
<tr>
|
| 44 |
+
<td><strong><?php echo $this->__('Last Logged In:') ?></strong></td>
|
| 45 |
+
<td><?php echo $lastLoginDateAdmin ?> (<?php echo $this->getCurrentStatus() ?>)</td>
|
| 46 |
+
</tr>
|
| 47 |
+
<?php if ($lastLoginDateAdmin != $lastLoginDateStore): ?>
|
| 48 |
+
<tr>
|
| 49 |
+
<td><strong><?php echo $this->__('Last Logged In (%s):', $this->getStoreLastLoginDateTimezone()) ?></strong></td>
|
| 50 |
+
<td><?php echo $lastLoginDateStore ?> (<?php echo $this->getCurrentStatus() ?>)</td>
|
| 51 |
+
</tr>
|
| 52 |
+
<?php endif; ?>
|
| 53 |
+
<tr>
|
| 54 |
+
<td><strong><?php echo $this->__('Confirmed email:') ?></strong></td>
|
| 55 |
+
<td><?php echo $this->getIsConfirmedStatus() ?></td>
|
| 56 |
+
</tr>
|
| 57 |
+
<tr>
|
| 58 |
+
<td><strong><?php echo $this->__('Account Created on:') ?></strong></td>
|
| 59 |
+
<td><?php echo $createDateAdmin ?></td>
|
| 60 |
+
</tr>
|
| 61 |
+
<?php if ($createDateAdmin != $createDateStore): ?>
|
| 62 |
+
<tr>
|
| 63 |
+
<td><strong><?php echo $this->__('Account Created on (%s):', $this->getStoreCreateDateTimezone()) ?></strong></td>
|
| 64 |
+
<td><?php echo $createDateStore ?></td>
|
| 65 |
+
</tr>
|
| 66 |
+
<?php endif; ?>
|
| 67 |
+
<tr>
|
| 68 |
+
<td><strong><?php echo $this->__('Account Created in:') ?></strong></td>
|
| 69 |
+
<td><?php echo $this->getCreatedInStore() ?></td>
|
| 70 |
+
</tr>
|
| 71 |
+
<tr>
|
| 72 |
+
<td><strong><?php echo $this->__('Customer Group:') ?></strong></td>
|
| 73 |
+
<td><?php echo $this->getGroupName() ?></td>
|
| 74 |
+
</tr>
|
| 75 |
+
</table>
|
| 76 |
+
<address class="box-right">
|
| 77 |
+
<strong><?php echo $this->__('Default Billing Address') ?></strong><br/>
|
| 78 |
+
<?php echo $this->getBillingAddressHtml() ?>
|
| 79 |
+
</address>
|
| 80 |
+
</fieldset>
|
| 81 |
+
</div>
|
| 82 |
+
<?php echo $this->getChildHtml('', true, true); ?>
|
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="entry-edit">
|
| 28 |
+
<div class="entry-edit-head"><h4 class="icon-head head-customer-sales-statistics"><?php echo Mage::helper('customer')->__('Sales Statistics') ?></h4></div>
|
| 29 |
+
<div class="grid">
|
| 30 |
+
<table cellspacing="0" class="data">
|
| 31 |
+
<thead>
|
| 32 |
+
<tr class="headings">
|
| 33 |
+
<th><?php echo Mage::helper('customer')->__('Website') ?></th>
|
| 34 |
+
<th><?php echo Mage::helper('customer')->__('Store') ?></th>
|
| 35 |
+
<th><?php echo Mage::helper('customer')->__('Store View') ?></th>
|
| 36 |
+
<th><?php echo Mage::helper('customer')->__('Lifetime Sales') ?></th>
|
| 37 |
+
<th><?php echo Mage::helper('customer')->__('Average Sale') ?></th>
|
| 38 |
+
</tr>
|
| 39 |
+
</thead>
|
| 40 |
+
<tfoot>
|
| 41 |
+
<tr>
|
| 42 |
+
<td colspan="3" class="label"><strong><big><?php echo Mage::helper('customer')->__('All Store Views') ?></big></strong></td>
|
| 43 |
+
<td class="emph"><strong><big><?php echo $this->formatCurrency($this->getTotals()->getBaseLifetime()) ?></big></strong></td>
|
| 44 |
+
<td class="emph"><strong><big><?php echo $this->formatCurrency($this->getTotals()->getAvgsale()) ?></big></strong></td>
|
| 45 |
+
</tr>
|
| 46 |
+
</tfoot>
|
| 47 |
+
<?php if ($this->getRows()): ?>
|
| 48 |
+
<tbody>
|
| 49 |
+
<?php $_i = 0; ?>
|
| 50 |
+
<?php foreach ($this->getRows() as $_websiteId => $_groups): ?>
|
| 51 |
+
<?php $_websiteRow = false; ?>
|
| 52 |
+
<?php foreach ($_groups as $_groupId => $_stores): ?>
|
| 53 |
+
<?php $_groupRow = false; ?>
|
| 54 |
+
<?php foreach ($_stores as $_row): ?>
|
| 55 |
+
<?php if ($_row->getStoreId() == 0): ?>
|
| 56 |
+
<td colspan="3" class="label"><?php echo $_row->getStoreName() ?></td>
|
| 57 |
+
<?php else: ?>
|
| 58 |
+
<tr<?php echo ($_i++ % 2 ? ' class="even"' : '') ?>>
|
| 59 |
+
<?php if (!$_websiteRow): ?>
|
| 60 |
+
<td rowspan="<?php echo $this->getWebsiteCount($_websiteId) ?>"><?php echo $_row->getWebsiteName() ?></td>
|
| 61 |
+
<?php $_websiteRow = true; ?>
|
| 62 |
+
<?php endif; ?>
|
| 63 |
+
<?php if (!$_groupRow): ?>
|
| 64 |
+
<td rowspan="<?php echo count($_stores) ?>"><?php echo $_row->getGroupName() ?></td>
|
| 65 |
+
<?php $_groupRow = true; ?>
|
| 66 |
+
<?php endif; ?>
|
| 67 |
+
<td class="label"><?php echo $_row->getStoreName() ?></td>
|
| 68 |
+
<?php endif; ?>
|
| 69 |
+
<td><?php echo $this->formatCurrency($_row->getLifetime(), $_row->getWebsiteId()) ?></td>
|
| 70 |
+
<td><?php echo $this->formatCurrency($_row->getAvgsale(), $_row->getWebsiteId()) ?></td>
|
| 71 |
+
</tr>
|
| 72 |
+
<?php endforeach; ?>
|
| 73 |
+
<?php endforeach; ?>
|
| 74 |
+
<?php endforeach; ?>
|
| 75 |
+
</tbody>
|
| 76 |
+
<?php else: ?>
|
| 77 |
+
<tbody>
|
| 78 |
+
<tr class="no-display"><td colspan="5"></td></tr>
|
| 79 |
+
</tbody>
|
| 80 |
+
<?php endif; ?>
|
| 81 |
+
</table>
|
| 82 |
+
</div>
|
| 83 |
+
</div>
|
| 84 |
+
<div class="clear"></div>
|
| 85 |
+
<br/>
|
app/design/adminhtml/default/default/template/customer/tab/wishlist.phtml
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php echo $this->getGridParentHtml() ?>
|
| 28 |
+
<?php if($this->canDisplayContainer()): ?>
|
| 29 |
+
<script type="text/javascript">
|
| 30 |
+
//<!--
|
| 31 |
+
wishlistControl = {
|
| 32 |
+
reload: function (urlParams) {
|
| 33 |
+
if (!urlParams) {
|
| 34 |
+
urlParams = '';
|
| 35 |
+
}
|
| 36 |
+
var url = <?php echo $this->getJsObjectName() ?>.url + '?ajax=true' + urlParams;
|
| 37 |
+
new Ajax.Updater(
|
| 38 |
+
<?php echo $this->getJsObjectName() ?>.containerId,
|
| 39 |
+
url,
|
| 40 |
+
{
|
| 41 |
+
parameters: {form_key: FORM_KEY},
|
| 42 |
+
onComplete: <?php echo $this->getJsObjectName() ?>.initGrid.bind(<?php echo $this->getJsObjectName() ?>),
|
| 43 |
+
evalScripts:true
|
| 44 |
+
}
|
| 45 |
+
);
|
| 46 |
+
},
|
| 47 |
+
|
| 48 |
+
configureItem: function (itemId) {
|
| 49 |
+
productConfigure.setOnLoadIFrameCallback('wishlist', this.cbOnLoadIframe.bind(this));
|
| 50 |
+
productConfigure.showItemConfiguration('wishlist', itemId);
|
| 51 |
+
return false;
|
| 52 |
+
},
|
| 53 |
+
|
| 54 |
+
cbOnLoadIframe: function (response) {
|
| 55 |
+
if (!response.ok) {
|
| 56 |
+
return;
|
| 57 |
+
}
|
| 58 |
+
this.reload();
|
| 59 |
+
},
|
| 60 |
+
|
| 61 |
+
removeItem: function (itemId) {
|
| 62 |
+
if(!confirm('<?php echo Mage::helper('core')->jsQuoteEscape(Mage::helper('customer')->__('Are you sure that you want to remove this item?')) ?>')) {
|
| 63 |
+
return false;
|
| 64 |
+
}
|
| 65 |
+
this.reload('&delete=' + itemId);
|
| 66 |
+
return false;
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
productConfigure.addListType(
|
| 71 |
+
'wishlist',
|
| 72 |
+
{
|
| 73 |
+
urlFetch: '<?php echo $this->getUrl('*/customer_wishlist_product_composite_wishlist/configure') ?>',
|
| 74 |
+
urlConfirm: '<?php echo $this->getUrl('*/customer_wishlist_product_composite_wishlist/update') ?>'
|
| 75 |
+
}
|
| 76 |
+
);
|
| 77 |
+
//-->
|
| 78 |
+
</script>
|
| 79 |
+
<?php endif ?>
|
app/design/adminhtml/default/default/template/dashboard/graph.phtml
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div style="width:587px;margin:20px;position:relative;margin-left:-294px;left:50%">
|
| 29 |
+
<div style="position:absolute;right:1px;top:0px;left: expression(parentNode.offsetWidth - offsetWidth - 1 + 'px');">
|
| 30 |
+
<div style="padding:5px;height:15px;width:15px;background-color:#F4F4F4" id="dashboard_<?php echo $this->getHtmlId() ?>_cal_div"><img src="<?php echo Mage::getDesign()->getSkinUrl('images/grid-cal.gif') ?>" onclick="toggleCal('<?php echo $this->getHtmlId() ?>')" /></div>
|
| 31 |
+
<div style="padding:5px;display:none;width:200px;" id="dashboard_<?php echo $this->getHtmlId() ?>_range_div" class="switcher">
|
| 32 |
+
<?php echo $this->__('Select Range') ?>:
|
| 33 |
+
<select name="period" id="order_<?php echo $this->getHtmlId() ?>_period" onchange="changePeriod(this)">
|
| 34 |
+
<?php foreach ($this->helper('adminhtml/dashboard_data')->getDatePeriods() as $_value=>$_label): ?>
|
| 35 |
+
<?php if(in_array($_value, array('custom'))) continue; ?>
|
| 36 |
+
<option value="<?php echo $_value ?>" <?php if($this->getRequest()->getParam('period')==$_value): ?> selected<?php endif; ?>><?php echo $_label ?></option>
|
| 37 |
+
<?php endforeach; ?>
|
| 38 |
+
</select>
|
| 39 |
+
<img src="<?php echo Mage::getDesign()->getSkinUrl('images/dashboard-close.gif') ?>" onclick="toggleCal('<?php echo $this->getHtmlId() ?>')" />
|
| 40 |
+
</div>
|
| 41 |
+
</div>
|
| 42 |
+
<?php if($this->getCount()): ?>
|
| 43 |
+
<img src="<?php echo $this->getChartUrl() ?>" />
|
| 44 |
+
<?php else: ?>
|
| 45 |
+
<div align="center" style="width:587px;height:300px;"><?php echo $this->__('No Data Found') ?></div>
|
| 46 |
+
<?php endif; ?>
|
| 47 |
+
</div>
|
| 48 |
+
<?php */ ?>
|
| 49 |
+
<div style="margin:20px;">
|
| 50 |
+
<p class="switcher a-right" style="padding:5px 10px;"><?php echo $this->__('Select Range') ?>:
|
| 51 |
+
<select name="period" id="order_<?php echo $this->getHtmlId() ?>_period" onchange="changeDiagramsPeriod(this);">
|
| 52 |
+
<?php foreach ($this->helper('adminhtml/dashboard_data')->getDatePeriods() as $_value=>$_label): ?>
|
| 53 |
+
<?php if(in_array($_value, array('custom'))) continue; ?>
|
| 54 |
+
<option value="<?php echo $_value ?>" <?php if($this->getRequest()->getParam('period')==$_value): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
|
| 55 |
+
<?php endforeach; ?>
|
| 56 |
+
</select></p><br/>
|
| 57 |
+
<?php
|
| 58 |
+
$_containerStyle = "width:{$this->getWidth()}px;height:{$this->getHeight()}px; margin:0 auto;";
|
| 59 |
+
?>
|
| 60 |
+
<?php if($this->getCount()): ?>
|
| 61 |
+
<p style="<?php echo $_containerStyle?>"><img src="<?php echo $this->getChartUrl(false) ?>" alt="chart" title="chart" /></p>
|
| 62 |
+
<?php else: ?>
|
| 63 |
+
<p class="a-center" style="<?php echo $_containerStyle?>"><?php echo $this->__('No Data Found') ?></p>
|
| 64 |
+
<?php endif; ?>
|
| 65 |
+
</div>
|
app/design/adminhtml/default/default/template/dashboard/graph/disabled.phtml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<div class="box" style="margin:20px;">
|
| 28 |
+
<p class="a-center">
|
| 29 |
+
<?php echo $this->helper('adminhtml')->__('Chart is disabled. If you want to enable chart, click <a href="%s">here</a>.', $this->getConfigUrl())?>
|
| 30 |
+
</p>
|
| 31 |
+
</div>
|
app/design/adminhtml/default/default/template/dashboard/grid.phtml
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 |
+
<?php
|
| 28 |
+
|
| 29 |
+
$numColumns = sizeof($this->getColumns());
|
| 30 |
+
?>
|
| 31 |
+
<?php if($this->getCollection()): ?>
|
| 32 |
+
<div class="grid np">
|
| 33 |
+
<table cellspacing="0" style="border:0;" id="<?php echo $this->getId() ?>_table">
|
| 34 |
+
<?php foreach ($this->getColumns() as $_column): ?>
|
| 35 |
+
<col <?php echo $_column->getHtmlProperty() ?> />
|
| 36 |
+
<?php endforeach; ?>
|
| 37 |
+
<?php if ($this->getHeadersVisibility() || $this->getFilterVisibility()): ?>
|
| 38 |
+
<thead>
|
| 39 |
+
<?php if ($this->getHeadersVisibility()): ?>
|
| 40 |
+
<tr class="headings">
|
| 41 |
+
<?php foreach ($this->getColumns() as $_column): ?>
|
| 42 |
+
<th <?php echo $_column->getHeaderHtmlProperty() ?>><span class="nobr"><?php echo $_column->getHeaderHtml() ?></span></th>
|
| 43 |
+
<?php endforeach; ?>
|
| 44 |
+
</tr>
|
| 45 |
+
<?php endif; ?>
|
| 46 |
+
</thead>
|
| 47 |
+
<?php endif; ?>
|
| 48 |
+
<tbody>
|
| 49 |
+
<?php if (($this->getCollection()->getSize()>0) && (!$this->getIsCollapsed())): ?>
|
| 50 |
+
<?php foreach ($this->getCollection() as $_index=>$_item): ?>
|
| 51 |
+
<tr title="<?php echo $this->getRowId($_item) ?>">
|
| 52 |
+
<?php $i=0;foreach ($this->getColumns() as $_column): ?>
|
| 53 |
+
<td class="<?php echo $_column->getCssProperty() ?> <?php echo ++$i==$numColumns?'last':'' ?>"><?php echo (($_html = $_column->getRowField($_item)) != '' ? $_html : ' ') ?></td>
|
| 54 |
+
<?php endforeach; ?>
|
| 55 |
+
</tr>
|
| 56 |
+
<?php endforeach; ?>
|
| 57 |
+
<?php elseif ($this->getEmptyText()): ?>
|
| 58 |
+
<tr>
|
| 59 |
+
<td class="empty-text <?php echo $this->getEmptyTextClass() ?>" colspan="100"><?php echo $this->getEmptyText() ?></td>
|
| 60 |
+
</tr>
|
| 61 |
+
<?php endif; ?>
|
| 62 |
+
</tbody>
|
| 63 |
+
</table>
|
| 64 |
+
</div>
|
| 65 |
+
<?php if($this->canDisplayContainer()): ?>
|
| 66 |
+
<script type="text/javascript">
|
| 67 |
+
//<![CDATA[
|
| 68 |
+
<?php echo $this->getJsObjectName() ?> = new varienGrid('<?php echo $this->getId() ?>', '<?php echo $this->getGridUrl() ?>', '<?php echo $this->getVarNamePage() ?>', '<?php echo $this->getVarNameSort() ?>', '<?php echo $this->getVarNameDir() ?>', '<?php echo $this->getVarNameFilter() ?>');
|
| 69 |
+
<?php echo $this->getJsObjectName() ?>.useAjax = '<?php echo $this->getUseAjax() ?>';
|
| 70 |
+
<?php if($this->getRowClickCallback()): ?>
|
| 71 |
+
<?php echo $this->getJsObjectName() ?>.rowClickCallback = <?php echo $this->getRowClickCallback() ?>;
|
| 72 |
+
<?php endif; ?>
|
| 73 |
+
<?php if($this->getCheckboxCheckCallback()): ?>
|
| 74 |
+
<?php echo $this->getJsObjectName() ?>.checkboxCheckCallback = <?php echo $this->getCheckboxCheckCallback() ?>;
|
| 75 |
+
<?php endif; ?>
|
| 76 |
+
<?php if($this->getRowInitCallback()): ?>
|
| 77 |
+
<?php echo $this->getJsObjectName() ?>.initRowCallback = <?php echo $this->getRowInitCallback() ?>;
|
| 78 |
+
<?php echo $this->getJsObjectName() ?>.rows.each(function(row){<?php echo $this->getRowInitCallback() ?>(<?php echo $this->getJsObjectName() ?>, row)});
|
| 79 |
+
<?php endif; ?>
|
| 80 |
+
<?php if($this->getMassactionBlock()->isAvailable()): ?>
|
| 81 |
+
<?php echo $this->getMassactionBlock()->getJavaScript() ?>
|
| 82 |
+
<?php endif ?>
|
| 83 |
+
//]]>
|
| 84 |
+
</script>
|
| 85 |
+
<?php endif; ?>
|
| 86 |
+
<?php endif ?>
|
app/design/adminhtml/default/default/template/dashboard/index.phtml
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-2015 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 if (is_array($this->getChild('diagrams')->getTabsIds())) : ?>
|
| 29 |
+
<script type="text/javascript">
|
| 30 |
+
//<