Version Notes
This will add from date and to date to your tier price module
Download this release
Release Info
Developer | Webdesk |
Extension | Channelbrain_TierPriceDates |
Version | 2.0.0 |
Comparing to | |
See all releases |
Version 2.0.0
- app/code/local/Channelbrain/Catalog/Model/Product/Attribute/Backend/Tierprice.php +82 -0
- app/code/local/Channelbrain/Catalog/Model/Product/Type/Price.php +99 -0
- app/code/local/Channelbrain/Catalog/Model/Resource/Eav/Mysql4/Product/Attribute/Backend/Tierprice.php +50 -0
- app/code/local/Channelbrain/Catalog/Model/Resource/Product/Collection.php +2150 -0
- app/code/local/Channelbrain/Catalog/etc/config.xml +32 -0
- app/code/local/Channelbrain/TierPriceDates/etc/config.xml +57 -0
- app/code/local/Channelbrain/TierPriceDates/etc/system.xml +34 -0
- app/code/local/Channelbrain/TierPriceDates/sql/tierpricing_setup/mysql4-install-0.1.0.php +6 -0
- app/design/adminhtml/default/default/layout/admin.xml +82 -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 +33 -0
- app/design/adminhtml/default/default/layout/index.xml +45 -0
- app/design/adminhtml/default/default/layout/main.xml +291 -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/widget.xml +69 -0
- app/design/adminhtml/default/default/layout/xmlconnect.xml +237 -0
- app/design/adminhtml/default/default/locale/en_US/translate.csv +201 -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 +164 -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 +76 -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 +56 -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 +223 -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 +207 -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 +118 -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 +635 -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 +133 -0
- app/design/adminhtml/default/default/template/dashboard/salebar.phtml +36 -0
- app/design/adminhtml/default/default/template/dashboard/searches.phtml +35 -0
- app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml +77 -0
- app/design/adminhtml/default/default/template/dashboard/totalbar.phtml +42 -0
- app/design/adminhtml/default/default/template/directory/js/optional_zip_countries.phtml +66 -0
- app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml +91 -0
- app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml +273 -0
- app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml +87 -0
app/code/local/Channelbrain/Catalog/Model/Product/Attribute/Backend/Tierprice.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Channelbrain_Catalog_Model_Product_Attribute_Backend_Tierprice extends Mage_Catalog_Model_Product_Attribute_Backend_Tierprice
|
3 |
+
{
|
4 |
+
public function afterSave($object)
|
5 |
+
{
|
6 |
+
|
7 |
+
$this->_getResource()->deleteProductPrices($object, $this->getAttribute());
|
8 |
+
$tierPrices = $object->getData($this->getAttribute()->getName());
|
9 |
+
|
10 |
+
if (!is_array($tierPrices)) {
|
11 |
+
return $this;
|
12 |
+
}
|
13 |
+
|
14 |
+
$prices = array();
|
15 |
+
foreach ($tierPrices as $tierPrice) {
|
16 |
+
|
17 |
+
|
18 |
+
if (empty($tierPrice['price_qty']) || !isset($tierPrice['price']) || !empty($tierPrice['delete'])) {
|
19 |
+
continue;
|
20 |
+
}
|
21 |
+
|
22 |
+
$useForAllGroups = $tierPrice['cust_group'] == Mage_Customer_Model_Group::CUST_GROUP_ALL;
|
23 |
+
$customerGroupId = !$useForAllGroups ? $tierPrice['cust_group'] : 0;
|
24 |
+
$priceKey = join('-', array(
|
25 |
+
$tierPrice['website_id'],
|
26 |
+
intval($useForAllGroups),
|
27 |
+
$customerGroupId,
|
28 |
+
$tierPrice['price_qty']
|
29 |
+
));
|
30 |
+
//Add new column "tier_type"
|
31 |
+
$prices[$priceKey] = array(
|
32 |
+
'website_id' => $tierPrice['website_id'],
|
33 |
+
'all_groups' => intval($useForAllGroups),
|
34 |
+
'customer_group_id' => $customerGroupId,
|
35 |
+
'qty' => $tierPrice['price_qty'],
|
36 |
+
'value' => $tierPrice['price'],
|
37 |
+
'from_date' => $tierPrice['from_date'],
|
38 |
+
'to_date' => $tierPrice['to_date'],
|
39 |
+
);
|
40 |
+
}
|
41 |
+
|
42 |
+
if ($this->getAttribute()->getIsGlobal() == Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE) {
|
43 |
+
if ($storeId = $object->getStoreId()) {
|
44 |
+
$websites = array(Mage::app()->getStore($storeId)->getWebsite());
|
45 |
+
}
|
46 |
+
else {
|
47 |
+
$websites = Mage::app()->getWebsites();
|
48 |
+
}
|
49 |
+
|
50 |
+
$baseCurrency = Mage::app()->getBaseCurrencyCode();
|
51 |
+
$rates = $this->_getWebsiteRates();
|
52 |
+
foreach ($websites as $website) {
|
53 |
+
/* @var $website Mage_Core_Model_Website */
|
54 |
+
if (!is_array($object->getWebsiteIds()) || !in_array($website->getId(), $object->getWebsiteIds())) {
|
55 |
+
continue;
|
56 |
+
}
|
57 |
+
if ($rates[$website->getId()]['code'] != $baseCurrency) {
|
58 |
+
foreach ($prices as $data) {
|
59 |
+
$priceKey = join('-', array(
|
60 |
+
$website->getId(),
|
61 |
+
$data['all_groups'],
|
62 |
+
$data['customer_group_id'],
|
63 |
+
$data['qty']
|
64 |
+
));
|
65 |
+
if (!isset($prices[$priceKey])) {
|
66 |
+
$prices[$priceKey] = $data;
|
67 |
+
$prices[$priceKey]['website_id'] = $website->getId();
|
68 |
+
$prices[$priceKey]['value'] = $data['value'] * $rates[$website->getId()]['rate'];
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
foreach ($prices as $data) {
|
76 |
+
$this->_getResource()->insertProductPrice($object, $data);
|
77 |
+
}
|
78 |
+
|
79 |
+
return $this;
|
80 |
+
}
|
81 |
+
}
|
82 |
+
?>
|
app/code/local/Channelbrain/Catalog/Model/Product/Type/Price.php
ADDED
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Channelbrain_Catalog_Model_Product_Type_Price extends Mage_Catalog_Model_Product_Type_Price
|
3 |
+
{
|
4 |
+
public function getTierPrice($qty=null, $product)
|
5 |
+
{
|
6 |
+
$allGroups = Mage_Customer_Model_Group::CUST_GROUP_ALL;
|
7 |
+
$prices = $product->getData('tier_price');
|
8 |
+
$today=date("Y-m-d");
|
9 |
+
if(Mage::getStoreConfig("mypackage/settings/wds_tier_price")){
|
10 |
+
|
11 |
+
|
12 |
+
//print "<pre>";
|
13 |
+
//print_r($prices);die;
|
14 |
+
if (is_null($prices)) {
|
15 |
+
|
16 |
+
if ($attribute = $product->getResource()->getAttribute('tier_price')) {
|
17 |
+
$attribute->getBackend()->afterLoad($product);
|
18 |
+
$prices = $product->getData('tier_price');
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
if (is_null($prices) || !is_array($prices)) {
|
23 |
+
if (!is_null($qty)) {
|
24 |
+
|
25 |
+
return $product->getPrice();
|
26 |
+
}
|
27 |
+
return array(array(
|
28 |
+
'price' => $product->getPrice(),
|
29 |
+
'website_price' => $product->getPrice(),
|
30 |
+
'price_qty' => 1,
|
31 |
+
'cust_group' => $allGroups,
|
32 |
+
));
|
33 |
+
}
|
34 |
+
|
35 |
+
$custGroup = $this->_getCustomerGroupId($product);
|
36 |
+
if ($qty) {
|
37 |
+
|
38 |
+
$prevQty = 1;
|
39 |
+
$prevPrice = $product->getPrice();
|
40 |
+
$prevGroup = $allGroups;
|
41 |
+
foreach ($prices as $price) {
|
42 |
+
if ($price['cust_group']!=$custGroup && $price['cust_group']!=$allGroups) {
|
43 |
+
// tier not for current customer group nor is for all groups
|
44 |
+
continue;
|
45 |
+
}
|
46 |
+
if ($qty < $price['price_qty']) {
|
47 |
+
// tier is higher than product qty
|
48 |
+
continue;
|
49 |
+
}
|
50 |
+
if ($price['price_qty'] < $prevQty) {
|
51 |
+
// higher tier qty already found
|
52 |
+
continue;
|
53 |
+
}
|
54 |
+
if ($price['price_qty'] == $prevQty && $prevGroup != $allGroups && $price['cust_group'] == $allGroups) {
|
55 |
+
// found tier qty is same as current tier qty but current tier group is ALL_GROUPS
|
56 |
+
continue;
|
57 |
+
}
|
58 |
+
|
59 |
+
$prevPrice = $price['website_price'];
|
60 |
+
$prevQty = $price['price_qty'];
|
61 |
+
|
62 |
+
if(isset($price['from_date']) && isset($price['to_date']))
|
63 |
+
{
|
64 |
+
|
65 |
+
if ($today>=$price['from_date'] && $today<=$price['to_date'])
|
66 |
+
{
|
67 |
+
$prevPrice=$price['price'];
|
68 |
+
}
|
69 |
+
else
|
70 |
+
{
|
71 |
+
$prevPrice=$product->getPrice();
|
72 |
+
}
|
73 |
+
}
|
74 |
+
else
|
75 |
+
{
|
76 |
+
$prevPrice=$product->getPrice();
|
77 |
+
}
|
78 |
+
$prevGroup = $price['cust_group'];
|
79 |
+
}
|
80 |
+
//echo $prevPrice;die;
|
81 |
+
return $prevPrice;
|
82 |
+
} else {
|
83 |
+
foreach ($prices as $i=>$price) {
|
84 |
+
if ($price['cust_group']!=$custGroup && $price['cust_group']!=$allGroups) {
|
85 |
+
unset($prices[$i]);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
}
|
89 |
+
if(isset($prices[0]['from_date']) && isset($prices[0]['to_date']))
|
90 |
+
{
|
91 |
+
if ($today>=$prices[0]['from_date'] && $today<=$prices[0]['to_date'])
|
92 |
+
{
|
93 |
+
return ($prices) ? $prices : array();
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
}
|
99 |
+
?>
|
app/code/local/Channelbrain/Catalog/Model/Resource/Eav/Mysql4/Product/Attribute/Backend/Tierprice.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Channelbrain_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice extends Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice
|
3 |
+
|
4 |
+
{
|
5 |
+
public function loadProductPrices($product, $attribute)
|
6 |
+
{
|
7 |
+
echo "rtrtrt";
|
8 |
+
exit;
|
9 |
+
echo "Working";
|
10 |
+
//add new column name to the sql
|
11 |
+
$select = $this->_getReadAdapter()->select()
|
12 |
+
->from($this>getMainTable(), array(
|
13 |
+
'website_id', 'all_groups', 'cust_group' => 'customer_group_id',
|
14 |
+
'price_qty' => 'qty', 'price' => 'value', 'from_date', 'to_date',
|
15 |
+
))
|
16 |
+
->where('entity_id=?', $product->getId())
|
17 |
+
->order('qty');
|
18 |
+
if ($attribute->isScopeGlobal()) {
|
19 |
+
$select->where('website_id=?', 0);
|
20 |
+
}
|
21 |
+
else {
|
22 |
+
if ($storeId = $product->getStoreId()) {
|
23 |
+
$select->where('website_id IN (?)', array(0, Mage::app()->getStore($storeId)->getWebsiteId()));
|
24 |
+
}
|
25 |
+
}
|
26 |
+
return $this->_getReadAdapter()->fetchAll($select);
|
27 |
+
}
|
28 |
+
|
29 |
+
protected function _loadPriceDataColumns($columns){
|
30 |
+
|
31 |
+
$columns = parent::_loadPriceDataColumns($columns);
|
32 |
+
$columns['price_qty'] = 'qty';
|
33 |
+
$columns['from_date'] = 'from_date';
|
34 |
+
$columns['to_date'] = 'to_date';
|
35 |
+
return $columns;
|
36 |
+
}
|
37 |
+
|
38 |
+
public function insertProductPrice($product, $data){
|
39 |
+
$fdate=explode("/",$data['from_date']);
|
40 |
+
$tdate=explode("/",$data['to_date']);
|
41 |
+
|
42 |
+
$data['from_date']=$fdate[2]."-".$fdate[0]."-".$fdate[1];
|
43 |
+
$data['to_date']=$tdate[2]."-".$tdate[0]."-".$tdate[1];
|
44 |
+
|
45 |
+
$priceObject = new Varien_Object($data);
|
46 |
+
$priceObject->setEntityId($product->getId());
|
47 |
+
return $this->savePriceData($priceObject);
|
48 |
+
}
|
49 |
+
}
|
50 |
+
?>
|
app/code/local/Channelbrain/Catalog/Model/Resource/Product/Collection.php
ADDED
@@ -0,0 +1,2150 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Catalog
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Product collection
|
30 |
+
*
|
31 |
+
* @category Mage
|
32 |
+
* @package Mage_Catalog
|
33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
34 |
+
*/
|
35 |
+
class Channelbrain_Catalog_Model_Resource_Product_Collection extends Mage_Catalog_Model_Resource_Collection_Abstract
|
36 |
+
{
|
37 |
+
/**
|
38 |
+
* Alias for index table
|
39 |
+
*/
|
40 |
+
const INDEX_TABLE_ALIAS = 'price_index';
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Alias for main table
|
44 |
+
*/
|
45 |
+
const MAIN_TABLE_ALIAS = 'e';
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Catalog Product Flat is enabled cache per store
|
49 |
+
*
|
50 |
+
* @var array
|
51 |
+
*/
|
52 |
+
protected $_flatEnabled = array();
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Product websites table name
|
56 |
+
*
|
57 |
+
* @var string
|
58 |
+
*/
|
59 |
+
protected $_productWebsiteTable;
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Product categories table name
|
63 |
+
*
|
64 |
+
* @var string
|
65 |
+
*/
|
66 |
+
protected $_productCategoryTable;
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Is add URL rewrites to collection flag
|
70 |
+
*
|
71 |
+
* @var bool
|
72 |
+
*/
|
73 |
+
protected $_addUrlRewrite = false;
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Add URL rewrite for category
|
77 |
+
*
|
78 |
+
* @var int
|
79 |
+
*/
|
80 |
+
protected $_urlRewriteCategory = '';
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Is add minimal price to product collection flag
|
84 |
+
*
|
85 |
+
* @var bool
|
86 |
+
*/
|
87 |
+
protected $_addMinimalPrice = false;
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Is add final price to product collection flag
|
91 |
+
*
|
92 |
+
* @var unknown_type
|
93 |
+
*/
|
94 |
+
protected $_addFinalPrice = false;
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Cache for all ids
|
98 |
+
*
|
99 |
+
* @var array
|
100 |
+
*/
|
101 |
+
protected $_allIdsCache = null;
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Is add tax percents to product collection flag
|
105 |
+
*
|
106 |
+
* @var bool
|
107 |
+
*/
|
108 |
+
protected $_addTaxPercents = false;
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Product limitation filters
|
112 |
+
* Allowed filters
|
113 |
+
* store_id int;
|
114 |
+
* category_id int;
|
115 |
+
* category_is_anchor int;
|
116 |
+
* visibility array|int;
|
117 |
+
* website_ids array|int;
|
118 |
+
* store_table string;
|
119 |
+
* use_price_index bool; join price index table flag
|
120 |
+
* customer_group_id int; required for price; customer group limitation for price
|
121 |
+
* website_id int; required for price; website limitation for price
|
122 |
+
*
|
123 |
+
* @var array
|
124 |
+
*/
|
125 |
+
protected $_productLimitationFilters = array();
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Category product count select
|
129 |
+
*
|
130 |
+
* @var Zend_Db_Select
|
131 |
+
*/
|
132 |
+
protected $_productCountSelect = null;
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Enter description here ...
|
136 |
+
*
|
137 |
+
* @var bool
|
138 |
+
*/
|
139 |
+
protected $_isWebsiteFilter = false;
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Additional field filters, applied in _productLimitationJoinPrice()
|
143 |
+
*
|
144 |
+
* @var array
|
145 |
+
*/
|
146 |
+
protected $_priceDataFieldFilters = array();
|
147 |
+
|
148 |
+
/**
|
149 |
+
* Map of price fields
|
150 |
+
*
|
151 |
+
* @var array
|
152 |
+
*/
|
153 |
+
protected $_map = array('fields' => array(
|
154 |
+
'price' => 'price_index.price',
|
155 |
+
'final_price' => 'price_index.final_price',
|
156 |
+
'min_price' => 'price_index.min_price',
|
157 |
+
'max_price' => 'price_index.max_price',
|
158 |
+
'tier_price' => 'price_index.tier_price',
|
159 |
+
'special_price' => 'price_index.special_price',
|
160 |
+
));
|
161 |
+
|
162 |
+
/**
|
163 |
+
* Price expression sql
|
164 |
+
*
|
165 |
+
* @var string|null
|
166 |
+
*/
|
167 |
+
protected $_priceExpression;
|
168 |
+
|
169 |
+
/**
|
170 |
+
* Additional price expression sql part
|
171 |
+
*
|
172 |
+
* @var string|null
|
173 |
+
*/
|
174 |
+
protected $_additionalPriceExpression;
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Max prise (statistics data)
|
178 |
+
*
|
179 |
+
* @var float
|
180 |
+
*/
|
181 |
+
protected $_maxPrice;
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Min prise (statistics data)
|
185 |
+
*
|
186 |
+
* @var float
|
187 |
+
*/
|
188 |
+
protected $_minPrice;
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Prise standard deviation (statistics data)
|
192 |
+
*
|
193 |
+
* @var float
|
194 |
+
*/
|
195 |
+
protected $_priceStandardDeviation;
|
196 |
+
|
197 |
+
/**
|
198 |
+
* Prises count (statistics data)
|
199 |
+
*
|
200 |
+
* @var int
|
201 |
+
*/
|
202 |
+
protected $_pricesCount = null;
|
203 |
+
|
204 |
+
/**
|
205 |
+
* Cloned Select after dispatching 'catalog_prepare_price_select' event
|
206 |
+
*
|
207 |
+
* @var Varien_Db_Select
|
208 |
+
*/
|
209 |
+
protected $_catalogPreparePriceSelect = null;
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Get cloned Select after dispatching 'catalog_prepare_price_select' event
|
213 |
+
*
|
214 |
+
* @return Varien_Db_Select
|
215 |
+
*/
|
216 |
+
public function getCatalogPreparedSelect()
|
217 |
+
{
|
218 |
+
return $this->_catalogPreparePriceSelect;
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Prepare additional price expression sql part
|
223 |
+
*
|
224 |
+
* @param Varien_Db_Select $select
|
225 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
226 |
+
*/
|
227 |
+
protected function _preparePriceExpressionParameters($select)
|
228 |
+
{
|
229 |
+
// prepare response object for event
|
230 |
+
$response = new Varien_Object();
|
231 |
+
$response->setAdditionalCalculations(array());
|
232 |
+
$tableAliases = array_keys($select->getPart(Zend_Db_Select::FROM));
|
233 |
+
if (in_array(self::INDEX_TABLE_ALIAS, $tableAliases)) {
|
234 |
+
$table = self::INDEX_TABLE_ALIAS;
|
235 |
+
} else {
|
236 |
+
$table = reset($tableAliases);
|
237 |
+
}
|
238 |
+
|
239 |
+
// prepare event arguments
|
240 |
+
$eventArgs = array(
|
241 |
+
'select' => $select,
|
242 |
+
'table' => $table,
|
243 |
+
'store_id' => $this->getStoreId(),
|
244 |
+
'response_object' => $response
|
245 |
+
);
|
246 |
+
|
247 |
+
Mage::dispatchEvent('catalog_prepare_price_select', $eventArgs);
|
248 |
+
|
249 |
+
$additional = join('', $response->getAdditionalCalculations());
|
250 |
+
$this->_priceExpression = $table . '.min_price';
|
251 |
+
$this->_additionalPriceExpression = $additional;
|
252 |
+
$this->_catalogPreparePriceSelect = clone $select;
|
253 |
+
|
254 |
+
return $this;
|
255 |
+
}
|
256 |
+
|
257 |
+
/**
|
258 |
+
* Get price expression sql part
|
259 |
+
*
|
260 |
+
* @param Varien_Db_Select $select
|
261 |
+
* @return string
|
262 |
+
*/
|
263 |
+
public function getPriceExpression($select)
|
264 |
+
{
|
265 |
+
if (is_null($this->_priceExpression)) {
|
266 |
+
$this->_preparePriceExpressionParameters($select);
|
267 |
+
}
|
268 |
+
return $this->_priceExpression;
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* Get additional price expression sql part
|
273 |
+
*
|
274 |
+
* @param Varien_Db_Select $select
|
275 |
+
* @return string
|
276 |
+
*/
|
277 |
+
public function getAdditionalPriceExpression($select)
|
278 |
+
{
|
279 |
+
if (is_null($this->_additionalPriceExpression)) {
|
280 |
+
$this->_preparePriceExpressionParameters($select);
|
281 |
+
}
|
282 |
+
return $this->_additionalPriceExpression;
|
283 |
+
}
|
284 |
+
|
285 |
+
/**
|
286 |
+
* Get currency rate
|
287 |
+
*
|
288 |
+
* @return float
|
289 |
+
*/
|
290 |
+
public function getCurrencyRate()
|
291 |
+
{
|
292 |
+
return Mage::app()->getStore($this->getStoreId())->getCurrentCurrencyRate();
|
293 |
+
}
|
294 |
+
|
295 |
+
/**
|
296 |
+
* Retrieve Catalog Product Flat Helper object
|
297 |
+
*
|
298 |
+
* @return Mage_Catalog_Helper_Product_Flat
|
299 |
+
*/
|
300 |
+
public function getFlatHelper()
|
301 |
+
{
|
302 |
+
return Mage::helper('catalog/product_flat');
|
303 |
+
}
|
304 |
+
|
305 |
+
/**
|
306 |
+
* Retrieve is flat enabled flag
|
307 |
+
* Return alvays false if magento run admin
|
308 |
+
*
|
309 |
+
* @return bool
|
310 |
+
*/
|
311 |
+
public function isEnabledFlat()
|
312 |
+
{
|
313 |
+
if (Mage::app()->getStore()->isAdmin()) {
|
314 |
+
return false;
|
315 |
+
}
|
316 |
+
if (!isset($this->_flatEnabled[$this->getStoreId()])) {
|
317 |
+
$this->_flatEnabled[$this->getStoreId()] = $this->getFlatHelper()
|
318 |
+
->isEnabled($this->getStoreId());
|
319 |
+
}
|
320 |
+
return $this->_flatEnabled[$this->getStoreId()];
|
321 |
+
}
|
322 |
+
|
323 |
+
/**
|
324 |
+
* Initialize resources
|
325 |
+
*
|
326 |
+
*/
|
327 |
+
protected function _construct()
|
328 |
+
{
|
329 |
+
if ($this->isEnabledFlat()) {
|
330 |
+
$this->_init('catalog/product', 'catalog/product_flat');
|
331 |
+
}
|
332 |
+
else {
|
333 |
+
$this->_init('catalog/product');
|
334 |
+
}
|
335 |
+
$this->_initTables();
|
336 |
+
}
|
337 |
+
|
338 |
+
/**
|
339 |
+
* Define product website and category product tables
|
340 |
+
*
|
341 |
+
*/
|
342 |
+
protected function _initTables()
|
343 |
+
{
|
344 |
+
$this->_productWebsiteTable = $this->getResource()->getTable('catalog/product_website');
|
345 |
+
$this->_productCategoryTable= $this->getResource()->getTable('catalog/category_product');
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* Standard resource collection initalization
|
350 |
+
*
|
351 |
+
* @param string $model
|
352 |
+
* @param unknown_type $entityModel
|
353 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
354 |
+
*/
|
355 |
+
protected function _init($model, $entityModel = null)
|
356 |
+
{
|
357 |
+
if ($this->isEnabledFlat()) {
|
358 |
+
$entityModel = 'catalog/product_flat';
|
359 |
+
}
|
360 |
+
|
361 |
+
return parent::_init($model, $entityModel);
|
362 |
+
}
|
363 |
+
|
364 |
+
/**
|
365 |
+
* Prepare static entity fields
|
366 |
+
*
|
367 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
368 |
+
*/
|
369 |
+
protected function _prepareStaticFields()
|
370 |
+
{
|
371 |
+
if ($this->isEnabledFlat()) {
|
372 |
+
return $this;
|
373 |
+
}
|
374 |
+
return parent::_prepareStaticFields();
|
375 |
+
}
|
376 |
+
|
377 |
+
/**
|
378 |
+
* Retrieve collection empty item
|
379 |
+
* Redeclared for specifying id field name without getting resource model inside model
|
380 |
+
*
|
381 |
+
* @return Varien_Object
|
382 |
+
*/
|
383 |
+
public function getNewEmptyItem()
|
384 |
+
{
|
385 |
+
$object = parent::getNewEmptyItem();
|
386 |
+
if ($this->isEnabledFlat()) {
|
387 |
+
$object->setIdFieldName($this->getEntity()->getIdFieldName());
|
388 |
+
}
|
389 |
+
return $object;
|
390 |
+
}
|
391 |
+
|
392 |
+
/**
|
393 |
+
* Set entity to use for attributes
|
394 |
+
*
|
395 |
+
* @param Mage_Eav_Model_Entity_Abstract $entity
|
396 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
397 |
+
*/
|
398 |
+
public function setEntity($entity)
|
399 |
+
{
|
400 |
+
if ($this->isEnabledFlat() && ($entity instanceof Mage_Core_Model_Resource_Db_Abstract)) {
|
401 |
+
$this->_entity = $entity;
|
402 |
+
return $this;
|
403 |
+
}
|
404 |
+
return parent::setEntity($entity);
|
405 |
+
}
|
406 |
+
|
407 |
+
/**
|
408 |
+
* Set Store scope for collection
|
409 |
+
*
|
410 |
+
* @param mixed $store
|
411 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
412 |
+
*/
|
413 |
+
public function setStore($store)
|
414 |
+
{
|
415 |
+
parent::setStore($store);
|
416 |
+
if ($this->isEnabledFlat()) {
|
417 |
+
$this->getEntity()->setStoreId($this->getStoreId());
|
418 |
+
}
|
419 |
+
return $this;
|
420 |
+
}
|
421 |
+
|
422 |
+
/**
|
423 |
+
* Initialize collection select
|
424 |
+
* Redeclared for remove entity_type_id condition
|
425 |
+
* in catalog_product_entity we store just products
|
426 |
+
*
|
427 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
428 |
+
*/
|
429 |
+
protected function _initSelect()
|
430 |
+
{
|
431 |
+
if ($this->isEnabledFlat()) {
|
432 |
+
$this->getSelect()
|
433 |
+
->from(array(self::MAIN_TABLE_ALIAS => $this->getEntity()->getFlatTableName()), null)
|
434 |
+
->columns(array('status' => new Zend_Db_Expr(Mage_Catalog_Model_Product_Status::STATUS_ENABLED)));
|
435 |
+
$this->addAttributeToSelect(array('entity_id', 'type_id', 'attribute_set_id'));
|
436 |
+
if ($this->getFlatHelper()->isAddChildData()) {
|
437 |
+
$this->getSelect()
|
438 |
+
->where('e.is_child=?', 0);
|
439 |
+
$this->addAttributeToSelect(array('child_id', 'is_child'));
|
440 |
+
}
|
441 |
+
} else {
|
442 |
+
$this->getSelect()->from(array(self::MAIN_TABLE_ALIAS => $this->getEntity()->getEntityTable()));
|
443 |
+
}
|
444 |
+
return $this;
|
445 |
+
}
|
446 |
+
|
447 |
+
/**
|
448 |
+
* Load attributes into loaded entities
|
449 |
+
*
|
450 |
+
* @param bool $printQuery
|
451 |
+
* @param bool $logQuery
|
452 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
453 |
+
*/
|
454 |
+
public function _loadAttributes($printQuery = false, $logQuery = false)
|
455 |
+
{
|
456 |
+
if ($this->isEnabledFlat()) {
|
457 |
+
return $this;
|
458 |
+
}
|
459 |
+
return parent::_loadAttributes($printQuery, $logQuery);
|
460 |
+
}
|
461 |
+
|
462 |
+
/**
|
463 |
+
* Add attribute to entities in collection
|
464 |
+
* If $attribute=='*' select all attributes
|
465 |
+
*
|
466 |
+
* @param array|string|integer|Mage_Core_Model_Config_Element $attribute
|
467 |
+
* @param false|string $joinType
|
468 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
469 |
+
*/
|
470 |
+
public function addAttributeToSelect($attribute, $joinType = false)
|
471 |
+
{
|
472 |
+
if ($this->isEnabledFlat()) {
|
473 |
+
if (!is_array($attribute)) {
|
474 |
+
$attribute = array($attribute);
|
475 |
+
}
|
476 |
+
foreach ($attribute as $attributeCode) {
|
477 |
+
if ($attributeCode == '*') {
|
478 |
+
foreach ($this->getEntity()->getAllTableColumns() as $column) {
|
479 |
+
$this->getSelect()->columns('e.' . $column);
|
480 |
+
$this->_selectAttributes[$column] = $column;
|
481 |
+
$this->_staticFields[$column] = $column;
|
482 |
+
}
|
483 |
+
} else {
|
484 |
+
$columns = $this->getEntity()->getAttributeForSelect($attributeCode);
|
485 |
+
if ($columns) {
|
486 |
+
foreach ($columns as $alias => $column) {
|
487 |
+
$this->getSelect()->columns(array($alias => 'e.' . $column));
|
488 |
+
$this->_selectAttributes[$column] = $column;
|
489 |
+
$this->_staticFields[$column] = $column;
|
490 |
+
}
|
491 |
+
}
|
492 |
+
}
|
493 |
+
}
|
494 |
+
return $this;
|
495 |
+
}
|
496 |
+
return parent::addAttributeToSelect($attribute, $joinType);
|
497 |
+
}
|
498 |
+
|
499 |
+
/**
|
500 |
+
* Add tax class id attribute to select and join price rules data if needed
|
501 |
+
*
|
502 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
503 |
+
*/
|
504 |
+
protected function _beforeLoad()
|
505 |
+
{
|
506 |
+
Mage::dispatchEvent('catalog_product_collection_load_before', array('collection' => $this));
|
507 |
+
|
508 |
+
return parent::_beforeLoad();
|
509 |
+
}
|
510 |
+
|
511 |
+
/**
|
512 |
+
* Processing collection items after loading
|
513 |
+
* Adding url rewrites, minimal prices, final prices, tax percents
|
514 |
+
*
|
515 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
516 |
+
*/
|
517 |
+
protected function _afterLoad()
|
518 |
+
{
|
519 |
+
if ($this->_addUrlRewrite) {
|
520 |
+
$this->_addUrlRewrite($this->_urlRewriteCategory);
|
521 |
+
}
|
522 |
+
|
523 |
+
$this->_prepareUrlDataObject();
|
524 |
+
|
525 |
+
if (count($this) > 0) {
|
526 |
+
Mage::dispatchEvent('catalog_product_collection_load_after', array('collection' => $this));
|
527 |
+
}
|
528 |
+
|
529 |
+
foreach ($this as $product) {
|
530 |
+
if ($product->isRecurring() && $profile = $product->getRecurringProfile()) {
|
531 |
+
$product->setRecurringProfile(unserialize($profile));
|
532 |
+
}
|
533 |
+
}
|
534 |
+
|
535 |
+
return $this;
|
536 |
+
}
|
537 |
+
|
538 |
+
/**
|
539 |
+
* Prepare Url Data object
|
540 |
+
*
|
541 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
542 |
+
*/
|
543 |
+
protected function _prepareUrlDataObject()
|
544 |
+
{
|
545 |
+
$objects = array();
|
546 |
+
/** @var $item Mage_Catalog_Model_Product */
|
547 |
+
foreach ($this->_items as $item) {
|
548 |
+
if ($this->getFlag('do_not_use_category_id')) {
|
549 |
+
$item->setDoNotUseCategoryId(true);
|
550 |
+
}
|
551 |
+
if (!$item->isVisibleInSiteVisibility() && $item->getItemStoreId()) {
|
552 |
+
$objects[$item->getEntityId()] = $item->getItemStoreId();
|
553 |
+
}
|
554 |
+
}
|
555 |
+
|
556 |
+
if ($objects && $this->hasFlag('url_data_object')) {
|
557 |
+
$objects = Mage::getResourceSingleton('catalog/url')
|
558 |
+
->getRewriteByProductStore($objects);
|
559 |
+
foreach ($this->_items as $item) {
|
560 |
+
if (isset($objects[$item->getEntityId()])) {
|
561 |
+
$object = new Varien_Object($objects[$item->getEntityId()]);
|
562 |
+
$item->setUrlDataObject($object);
|
563 |
+
}
|
564 |
+
}
|
565 |
+
}
|
566 |
+
|
567 |
+
return $this;
|
568 |
+
}
|
569 |
+
|
570 |
+
/**
|
571 |
+
* Add collection filters by identifiers
|
572 |
+
*
|
573 |
+
* @param mixed $productId
|
574 |
+
* @param boolean $exclude
|
575 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
576 |
+
*/
|
577 |
+
public function addIdFilter($productId, $exclude = false)
|
578 |
+
{
|
579 |
+
if (empty($productId)) {
|
580 |
+
$this->_setIsLoaded(true);
|
581 |
+
return $this;
|
582 |
+
}
|
583 |
+
if (is_array($productId)) {
|
584 |
+
if (!empty($productId)) {
|
585 |
+
if ($exclude) {
|
586 |
+
$condition = array('nin' => $productId);
|
587 |
+
} else {
|
588 |
+
$condition = array('in' => $productId);
|
589 |
+
}
|
590 |
+
} else {
|
591 |
+
$condition = '';
|
592 |
+
}
|
593 |
+
} else {
|
594 |
+
if ($exclude) {
|
595 |
+
$condition = array('neq' => $productId);
|
596 |
+
} else {
|
597 |
+
$condition = $productId;
|
598 |
+
}
|
599 |
+
}
|
600 |
+
$this->addFieldToFilter('entity_id', $condition);
|
601 |
+
return $this;
|
602 |
+
}
|
603 |
+
|
604 |
+
/**
|
605 |
+
* Adding product website names to result collection
|
606 |
+
* Add for each product websites information
|
607 |
+
*
|
608 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
609 |
+
*/
|
610 |
+
public function addWebsiteNamesToResult()
|
611 |
+
{
|
612 |
+
$productWebsites = array();
|
613 |
+
foreach ($this as $product) {
|
614 |
+
$productWebsites[$product->getId()] = array();
|
615 |
+
}
|
616 |
+
|
617 |
+
if (!empty($productWebsites)) {
|
618 |
+
$select = $this->getConnection()->select()
|
619 |
+
->from(array('product_website' => $this->_productWebsiteTable))
|
620 |
+
->join(
|
621 |
+
array('website' => $this->getResource()->getTable('core/website')),
|
622 |
+
'website.website_id = product_website.website_id',
|
623 |
+
array('name'))
|
624 |
+
->where('product_website.product_id IN (?)', array_keys($productWebsites))
|
625 |
+
->where('website.website_id > ?', 0);
|
626 |
+
|
627 |
+
$data = $this->getConnection()->fetchAll($select);
|
628 |
+
foreach ($data as $row) {
|
629 |
+
$productWebsites[$row['product_id']][] = $row['website_id'];
|
630 |
+
}
|
631 |
+
}
|
632 |
+
|
633 |
+
foreach ($this as $product) {
|
634 |
+
if (isset($productWebsites[$product->getId()])) {
|
635 |
+
$product->setData('websites', $productWebsites[$product->getId()]);
|
636 |
+
}
|
637 |
+
}
|
638 |
+
return $this;
|
639 |
+
}
|
640 |
+
|
641 |
+
/**
|
642 |
+
* Add store availability filter. Include availability product
|
643 |
+
* for store website
|
644 |
+
*
|
645 |
+
* @param mixed $store
|
646 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
647 |
+
*/
|
648 |
+
public function addStoreFilter($store = null)
|
649 |
+
{
|
650 |
+
if ($store === null) {
|
651 |
+
$store = $this->getStoreId();
|
652 |
+
}
|
653 |
+
$store = Mage::app()->getStore($store);
|
654 |
+
|
655 |
+
if (!$store->isAdmin()) {
|
656 |
+
$this->setStoreId($store);
|
657 |
+
$this->_productLimitationFilters['store_id'] = $store->getId();
|
658 |
+
$this->_applyProductLimitations();
|
659 |
+
}
|
660 |
+
|
661 |
+
return $this;
|
662 |
+
}
|
663 |
+
|
664 |
+
/**
|
665 |
+
* Add website filter to collection
|
666 |
+
*
|
667 |
+
* @param unknown_type $websites
|
668 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
669 |
+
*/
|
670 |
+
public function addWebsiteFilter($websites = null)
|
671 |
+
{
|
672 |
+
if (!is_array($websites)) {
|
673 |
+
$websites = array(Mage::app()->getWebsite($websites)->getId());
|
674 |
+
}
|
675 |
+
|
676 |
+
$this->_productLimitationFilters['website_ids'] = $websites;
|
677 |
+
$this->_applyProductLimitations();
|
678 |
+
|
679 |
+
return $this;
|
680 |
+
}
|
681 |
+
|
682 |
+
/**
|
683 |
+
* Get filters applied to collection
|
684 |
+
*
|
685 |
+
* @return array
|
686 |
+
*/
|
687 |
+
public function getLimitationFilters()
|
688 |
+
{
|
689 |
+
return $this->_productLimitationFilters;
|
690 |
+
}
|
691 |
+
|
692 |
+
/**
|
693 |
+
* Specify category filter for product collection
|
694 |
+
*
|
695 |
+
* @param Mage_Catalog_Model_Category $category
|
696 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
697 |
+
*/
|
698 |
+
public function addCategoryFilter(Mage_Catalog_Model_Category $category)
|
699 |
+
{
|
700 |
+
$this->_productLimitationFilters['category_id'] = $category->getId();
|
701 |
+
if ($category->getIsAnchor()) {
|
702 |
+
unset($this->_productLimitationFilters['category_is_anchor']);
|
703 |
+
} else {
|
704 |
+
$this->_productLimitationFilters['category_is_anchor'] = 1;
|
705 |
+
}
|
706 |
+
|
707 |
+
if ($this->getStoreId() == Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID) {
|
708 |
+
$this->_applyZeroStoreProductLimitations();
|
709 |
+
} else {
|
710 |
+
$this->_applyProductLimitations();
|
711 |
+
}
|
712 |
+
|
713 |
+
return $this;
|
714 |
+
}
|
715 |
+
|
716 |
+
/**
|
717 |
+
* Join minimal price attribute to result
|
718 |
+
*
|
719 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
720 |
+
*/
|
721 |
+
public function joinMinimalPrice()
|
722 |
+
{
|
723 |
+
$this->addAttributeToSelect('price')
|
724 |
+
->addAttributeToSelect('minimal_price');
|
725 |
+
return $this;
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* Retrieve max value by attribute
|
730 |
+
*
|
731 |
+
* @param string $attribute
|
732 |
+
* @return mixed
|
733 |
+
*/
|
734 |
+
public function getMaxAttributeValue($attribute)
|
735 |
+
{
|
736 |
+
$select = clone $this->getSelect();
|
737 |
+
$attribute = $this->getEntity()->getAttribute($attribute);
|
738 |
+
$attributeCode = $attribute->getAttributeCode();
|
739 |
+
$tableAlias = $attributeCode . '_max_value';
|
740 |
+
$fieldAlias = 'max_' . $attributeCode;
|
741 |
+
$condition = 'e.entity_id = ' . $tableAlias . '.entity_id
|
742 |
+
AND '.$this->_getConditionSql($tableAlias . '.attribute_id', $attribute->getId());
|
743 |
+
|
744 |
+
$select->join(
|
745 |
+
array($tableAlias => $attribute->getBackend()->getTable()),
|
746 |
+
$condition,
|
747 |
+
array($fieldAlias => new Zend_Db_Expr('MAX('.$tableAlias.'.value)'))
|
748 |
+
)
|
749 |
+
->group('e.entity_type_id');
|
750 |
+
|
751 |
+
$data = $this->getConnection()->fetchRow($select);
|
752 |
+
if (isset($data[$fieldAlias])) {
|
753 |
+
return $data[$fieldAlias];
|
754 |
+
}
|
755 |
+
|
756 |
+
return null;
|
757 |
+
}
|
758 |
+
|
759 |
+
/**
|
760 |
+
* Retrieve ranging product count for arrtibute range
|
761 |
+
*
|
762 |
+
* @param string $attribute
|
763 |
+
* @param int $range
|
764 |
+
* @return array
|
765 |
+
*/
|
766 |
+
public function getAttributeValueCountByRange($attribute, $range)
|
767 |
+
{
|
768 |
+
$select = clone $this->getSelect();
|
769 |
+
$attribute = $this->getEntity()->getAttribute($attribute);
|
770 |
+
$attributeCode = $attribute->getAttributeCode();
|
771 |
+
$tableAlias = $attributeCode . '_range_count_value';
|
772 |
+
|
773 |
+
$condition = 'e.entity_id = ' . $tableAlias . '.entity_id
|
774 |
+
AND ' . $this->_getConditionSql($tableAlias . '.attribute_id', $attribute->getId());
|
775 |
+
|
776 |
+
$select->reset(Zend_Db_Select::GROUP);
|
777 |
+
$select->join(
|
778 |
+
array($tableAlias => $attribute->getBackend()->getTable()),
|
779 |
+
$condition,
|
780 |
+
array(
|
781 |
+
'count_' . $attributeCode => new Zend_Db_Expr('COUNT(DISTINCT e.entity_id)'),
|
782 |
+
'range_' . $attributeCode => new Zend_Db_Expr(
|
783 |
+
'CEIL((' . $tableAlias . '.value+0.01)/' . $range . ')')
|
784 |
+
)
|
785 |
+
)
|
786 |
+
->group('range_' . $attributeCode);
|
787 |
+
|
788 |
+
$data = $this->getConnection()->fetchAll($select);
|
789 |
+
$res = array();
|
790 |
+
|
791 |
+
foreach ($data as $row) {
|
792 |
+
$res[$row['range_' . $attributeCode]] = $row['count_' . $attributeCode];
|
793 |
+
}
|
794 |
+
return $res;
|
795 |
+
}
|
796 |
+
|
797 |
+
/**
|
798 |
+
* Retrieve product count by some value of attribute
|
799 |
+
*
|
800 |
+
* @param string $attribute
|
801 |
+
* @return array($value=>$count)
|
802 |
+
*/
|
803 |
+
public function getAttributeValueCount($attribute)
|
804 |
+
{
|
805 |
+
$select = clone $this->getSelect();
|
806 |
+
$attribute = $this->getEntity()->getAttribute($attribute);
|
807 |
+
$attributeCode = $attribute->getAttributeCode();
|
808 |
+
$tableAlias = $attributeCode . '_value_count';
|
809 |
+
|
810 |
+
$select->reset(Zend_Db_Select::GROUP);
|
811 |
+
$condition = 'e.entity_id=' . $tableAlias . '.entity_id
|
812 |
+
AND '.$this->_getConditionSql($tableAlias . '.attribute_id', $attribute->getId());
|
813 |
+
|
814 |
+
$select->join(
|
815 |
+
array($tableAlias => $attribute->getBackend()->getTable()),
|
816 |
+
$condition,
|
817 |
+
array(
|
818 |
+
'count_' . $attributeCode => new Zend_Db_Expr('COUNT(DISTINCT e.entity_id)'),
|
819 |
+
'value_' . $attributeCode => new Zend_Db_Expr($tableAlias . '.value')
|
820 |
+
)
|
821 |
+
)
|
822 |
+
->group('value_' . $attributeCode);
|
823 |
+
|
824 |
+
$data = $this->getConnection()->fetchAll($select);
|
825 |
+
$res = array();
|
826 |
+
|
827 |
+
foreach ($data as $row) {
|
828 |
+
$res[$row['value_' . $attributeCode]] = $row['count_' . $attributeCode];
|
829 |
+
}
|
830 |
+
return $res;
|
831 |
+
}
|
832 |
+
|
833 |
+
/**
|
834 |
+
* Return all attribute values as array in form:
|
835 |
+
* array(
|
836 |
+
* [entity_id_1] => array(
|
837 |
+
* [store_id_1] => store_value_1,
|
838 |
+
* [store_id_2] => store_value_2,
|
839 |
+
* ...
|
840 |
+
* [store_id_n] => store_value_n
|
841 |
+
* ),
|
842 |
+
* ...
|
843 |
+
* )
|
844 |
+
*
|
845 |
+
* @param string $attribute attribute code
|
846 |
+
* @return array
|
847 |
+
*/
|
848 |
+
public function getAllAttributeValues($attribute)
|
849 |
+
{
|
850 |
+
/** @var $select Varien_Db_Select */
|
851 |
+
$select = clone $this->getSelect();
|
852 |
+
$attribute = $this->getEntity()->getAttribute($attribute);
|
853 |
+
|
854 |
+
$select->reset()
|
855 |
+
->from($attribute->getBackend()->getTable(), array('entity_id', 'store_id', 'value'))
|
856 |
+
->where('attribute_id = ?', (int)$attribute->getId());
|
857 |
+
|
858 |
+
$data = $this->getConnection()->fetchAll($select);
|
859 |
+
$res = array();
|
860 |
+
|
861 |
+
foreach ($data as $row) {
|
862 |
+
$res[$row['entity_id']][$row['store_id']] = $row['value'];
|
863 |
+
}
|
864 |
+
|
865 |
+
return $res;
|
866 |
+
}
|
867 |
+
|
868 |
+
/**
|
869 |
+
* Get SQL for get record count without left JOINs
|
870 |
+
*
|
871 |
+
* @return Varien_Db_Select
|
872 |
+
*/
|
873 |
+
public function getSelectCountSql()
|
874 |
+
{
|
875 |
+
return $this->_getSelectCountSql();
|
876 |
+
}
|
877 |
+
|
878 |
+
/**
|
879 |
+
* Get SQL for get record count
|
880 |
+
*
|
881 |
+
* @param bool $resetLeftJoins
|
882 |
+
* @return Varien_Db_Select
|
883 |
+
*/
|
884 |
+
protected function _getSelectCountSql($select = null, $resetLeftJoins = true)
|
885 |
+
{
|
886 |
+
$this->_renderFilters();
|
887 |
+
$countSelect = (is_null($select)) ?
|
888 |
+
$this->_getClearSelect() :
|
889 |
+
$this->_buildClearSelect($select);
|
890 |
+
$countSelect->columns('COUNT(DISTINCT e.entity_id)');
|
891 |
+
if ($resetLeftJoins) {
|
892 |
+
$countSelect->resetJoinLeft();
|
893 |
+
}
|
894 |
+
return $countSelect;
|
895 |
+
}
|
896 |
+
|
897 |
+
/**
|
898 |
+
* Prepare statistics data
|
899 |
+
*
|
900 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
901 |
+
*/
|
902 |
+
protected function _prepareStatisticsData()
|
903 |
+
{
|
904 |
+
$select = clone $this->getSelect();
|
905 |
+
$priceExpression = $this->getPriceExpression($select) . ' ' . $this->getAdditionalPriceExpression($select);
|
906 |
+
$sqlEndPart = ') * ' . $this->getCurrencyRate() . ', 2)';
|
907 |
+
$select = $this->_getSelectCountSql($select, false);
|
908 |
+
$select->columns('ROUND(MAX(' . $priceExpression . $sqlEndPart);
|
909 |
+
$select->columns('ROUND(MIN(' . $priceExpression . $sqlEndPart);
|
910 |
+
$select->columns($this->getConnection()->getStandardDeviationSql('ROUND((' . $priceExpression . $sqlEndPart));
|
911 |
+
$select->where($this->getPriceExpression($select) . ' IS NOT NULL');
|
912 |
+
$row = $this->getConnection()->fetchRow($select, $this->_bindParams, Zend_Db::FETCH_NUM);
|
913 |
+
$this->_pricesCount = (int)$row[0];
|
914 |
+
$this->_maxPrice = (float)$row[1];
|
915 |
+
$this->_minPrice = (float)$row[2];
|
916 |
+
$this->_priceStandardDeviation = (float)$row[3];
|
917 |
+
|
918 |
+
return $this;
|
919 |
+
}
|
920 |
+
|
921 |
+
/**
|
922 |
+
* Retreive clear select
|
923 |
+
*
|
924 |
+
* @return Varien_Db_Select
|
925 |
+
*/
|
926 |
+
protected function _getClearSelect()
|
927 |
+
{
|
928 |
+
return $this->_buildClearSelect();
|
929 |
+
}
|
930 |
+
|
931 |
+
/**
|
932 |
+
* Build clear select
|
933 |
+
*
|
934 |
+
* @param Varien_Db_Select $select
|
935 |
+
* @return Varien_Db_Select
|
936 |
+
*/
|
937 |
+
protected function _buildClearSelect($select = null)
|
938 |
+
{
|
939 |
+
if (is_null($select)) {
|
940 |
+
$select = clone $this->getSelect();
|
941 |
+
}
|
942 |
+
$select->reset(Zend_Db_Select::ORDER);
|
943 |
+
$select->reset(Zend_Db_Select::LIMIT_COUNT);
|
944 |
+
$select->reset(Zend_Db_Select::LIMIT_OFFSET);
|
945 |
+
$select->reset(Zend_Db_Select::COLUMNS);
|
946 |
+
|
947 |
+
return $select;
|
948 |
+
}
|
949 |
+
|
950 |
+
/**
|
951 |
+
* Retrive all ids for collection
|
952 |
+
*
|
953 |
+
* @param unknown_type $limit
|
954 |
+
* @param unknown_type $offset
|
955 |
+
* @return array
|
956 |
+
*/
|
957 |
+
public function getAllIds($limit = null, $offset = null)
|
958 |
+
{
|
959 |
+
$idsSelect = $this->_getClearSelect();
|
960 |
+
$idsSelect->columns('e.' . $this->getEntity()->getIdFieldName());
|
961 |
+
$idsSelect->limit($limit, $offset);
|
962 |
+
$idsSelect->resetJoinLeft();
|
963 |
+
|
964 |
+
return $this->getConnection()->fetchCol($idsSelect, $this->_bindParams);
|
965 |
+
}
|
966 |
+
|
967 |
+
/**
|
968 |
+
* Retreive product count select for categories
|
969 |
+
*
|
970 |
+
* @return Varien_Db_Select
|
971 |
+
*/
|
972 |
+
public function getProductCountSelect()
|
973 |
+
{
|
974 |
+
if ($this->_productCountSelect === null) {
|
975 |
+
$this->_productCountSelect = clone $this->getSelect();
|
976 |
+
$this->_productCountSelect->reset(Zend_Db_Select::COLUMNS)
|
977 |
+
->reset(Zend_Db_Select::GROUP)
|
978 |
+
->reset(Zend_Db_Select::ORDER)
|
979 |
+
->distinct(false)
|
980 |
+
->join(array('count_table' => $this->getTable('catalog/category_product_index')),
|
981 |
+
'count_table.product_id = e.entity_id',
|
982 |
+
array(
|
983 |
+
'count_table.category_id',
|
984 |
+
'product_count' => new Zend_Db_Expr('COUNT(DISTINCT count_table.product_id)')
|
985 |
+
)
|
986 |
+
)
|
987 |
+
->where('count_table.store_id = ?', $this->getStoreId())
|
988 |
+
->group('count_table.category_id');
|
989 |
+
}
|
990 |
+
|
991 |
+
return $this->_productCountSelect;
|
992 |
+
}
|
993 |
+
|
994 |
+
/**
|
995 |
+
* Destruct product count select
|
996 |
+
*
|
997 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
998 |
+
*/
|
999 |
+
public function unsProductCountSelect()
|
1000 |
+
{
|
1001 |
+
$this->_productCountSelect = null;
|
1002 |
+
return $this;
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
/**
|
1006 |
+
* Adding product count to categories collection
|
1007 |
+
*
|
1008 |
+
* @param Mage_Eav_Model_Entity_Collection_Abstract $categoryCollection
|
1009 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1010 |
+
*/
|
1011 |
+
public function addCountToCategories($categoryCollection)
|
1012 |
+
{
|
1013 |
+
$isAnchor = array();
|
1014 |
+
$isNotAnchor = array();
|
1015 |
+
foreach ($categoryCollection as $category) {
|
1016 |
+
if ($category->getIsAnchor()) {
|
1017 |
+
$isAnchor[] = $category->getId();
|
1018 |
+
} else {
|
1019 |
+
$isNotAnchor[] = $category->getId();
|
1020 |
+
}
|
1021 |
+
}
|
1022 |
+
$productCounts = array();
|
1023 |
+
if ($isAnchor || $isNotAnchor) {
|
1024 |
+
$select = $this->getProductCountSelect();
|
1025 |
+
|
1026 |
+
Mage::dispatchEvent(
|
1027 |
+
'catalog_product_collection_before_add_count_to_categories',
|
1028 |
+
array('collection' => $this)
|
1029 |
+
);
|
1030 |
+
|
1031 |
+
if ($isAnchor) {
|
1032 |
+
$anchorStmt = clone $select;
|
1033 |
+
$anchorStmt->limit(); //reset limits
|
1034 |
+
$anchorStmt->where('count_table.category_id IN (?)', $isAnchor);
|
1035 |
+
$productCounts += $this->getConnection()->fetchPairs($anchorStmt);
|
1036 |
+
$anchorStmt = null;
|
1037 |
+
}
|
1038 |
+
if ($isNotAnchor) {
|
1039 |
+
$notAnchorStmt = clone $select;
|
1040 |
+
$notAnchorStmt->limit(); //reset limits
|
1041 |
+
$notAnchorStmt->where('count_table.category_id IN (?)', $isNotAnchor);
|
1042 |
+
$notAnchorStmt->where('count_table.is_parent = 1');
|
1043 |
+
$productCounts += $this->getConnection()->fetchPairs($notAnchorStmt);
|
1044 |
+
$notAnchorStmt = null;
|
1045 |
+
}
|
1046 |
+
$select = null;
|
1047 |
+
$this->unsProductCountSelect();
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
foreach ($categoryCollection as $category) {
|
1051 |
+
$_count = 0;
|
1052 |
+
if (isset($productCounts[$category->getId()])) {
|
1053 |
+
$_count = $productCounts[$category->getId()];
|
1054 |
+
}
|
1055 |
+
$category->setProductCount($_count);
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
return $this;
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
/**
|
1062 |
+
* Retrieve unique attribute set ids in collection
|
1063 |
+
*
|
1064 |
+
* @return array
|
1065 |
+
*/
|
1066 |
+
public function getSetIds()
|
1067 |
+
{
|
1068 |
+
$select = clone $this->getSelect();
|
1069 |
+
/** @var $select Varien_Db_Select */
|
1070 |
+
$select->reset(Zend_Db_Select::COLUMNS);
|
1071 |
+
$select->distinct(true);
|
1072 |
+
$select->columns('attribute_set_id');
|
1073 |
+
return $this->getConnection()->fetchCol($select);
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
/**
|
1077 |
+
* Return array of unique product type ids in collection
|
1078 |
+
*
|
1079 |
+
* @return array
|
1080 |
+
*/
|
1081 |
+
public function getProductTypeIds()
|
1082 |
+
{
|
1083 |
+
$select = clone $this->getSelect();
|
1084 |
+
/** @var $select Varien_Db_Select */
|
1085 |
+
$select->reset(Zend_Db_Select::COLUMNS);
|
1086 |
+
$select->distinct(true);
|
1087 |
+
$select->columns('type_id');
|
1088 |
+
return $this->getConnection()->fetchCol($select);
|
1089 |
+
}
|
1090 |
+
|
1091 |
+
/**
|
1092 |
+
* Joins url rewrite rules to collection
|
1093 |
+
*
|
1094 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1095 |
+
*/
|
1096 |
+
public function joinUrlRewrite()
|
1097 |
+
{
|
1098 |
+
$this->joinTable(
|
1099 |
+
'core/url_rewrite',
|
1100 |
+
'entity_id=entity_id',
|
1101 |
+
array('request_path'),
|
1102 |
+
'{{table}}.type = ' . Mage_Core_Model_Url_Rewrite::TYPE_PRODUCT,
|
1103 |
+
'left'
|
1104 |
+
);
|
1105 |
+
|
1106 |
+
return $this;
|
1107 |
+
}
|
1108 |
+
|
1109 |
+
/**
|
1110 |
+
* Add URL rewrites data to product
|
1111 |
+
* If collection loadded - run processing else set flag
|
1112 |
+
*
|
1113 |
+
* @param int $categoryId
|
1114 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1115 |
+
*/
|
1116 |
+
public function addUrlRewrite($categoryId = '')
|
1117 |
+
{
|
1118 |
+
$this->_addUrlRewrite = true;
|
1119 |
+
if (Mage::getStoreConfig(Mage_Catalog_Helper_Product::XML_PATH_PRODUCT_URL_USE_CATEGORY, $this->getStoreId())) {
|
1120 |
+
$this->_urlRewriteCategory = $categoryId;
|
1121 |
+
} else {
|
1122 |
+
$this->_urlRewriteCategory = 0;
|
1123 |
+
}
|
1124 |
+
|
1125 |
+
if ($this->isLoaded()) {
|
1126 |
+
$this->_addUrlRewrite();
|
1127 |
+
}
|
1128 |
+
|
1129 |
+
return $this;
|
1130 |
+
}
|
1131 |
+
|
1132 |
+
/**
|
1133 |
+
* Add URL rewrites to collection
|
1134 |
+
*
|
1135 |
+
*/
|
1136 |
+
protected function _addUrlRewrite()
|
1137 |
+
{
|
1138 |
+
$urlRewrites = null;
|
1139 |
+
if ($this->_cacheConf) {
|
1140 |
+
if (!($urlRewrites = Mage::app()->loadCache($this->_cacheConf['prefix'] . 'urlrewrite'))) {
|
1141 |
+
$urlRewrites = null;
|
1142 |
+
} else {
|
1143 |
+
$urlRewrites = unserialize($urlRewrites);
|
1144 |
+
}
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
if (!$urlRewrites) {
|
1148 |
+
$productIds = array();
|
1149 |
+
foreach($this->getItems() as $item) {
|
1150 |
+
$productIds[] = $item->getEntityId();
|
1151 |
+
}
|
1152 |
+
if (!count($productIds)) {
|
1153 |
+
return;
|
1154 |
+
}
|
1155 |
+
|
1156 |
+
$select = $this->getConnection()->select()
|
1157 |
+
->from($this->getTable('core/url_rewrite'), array('product_id', 'request_path'))
|
1158 |
+
->where('store_id = ?', Mage::app()->getStore()->getId())
|
1159 |
+
->where('is_system = ?', 1)
|
1160 |
+
->where('category_id = ? OR category_id IS NULL', $this->_urlRewriteCategory)
|
1161 |
+
->where('product_id IN(?)', $productIds)
|
1162 |
+
->order('category_id ' . self::SORT_ORDER_DESC); // more priority is data with category id
|
1163 |
+
$urlRewrites = array();
|
1164 |
+
|
1165 |
+
foreach ($this->getConnection()->fetchAll($select) as $row) {
|
1166 |
+
if (!isset($urlRewrites[$row['product_id']])) {
|
1167 |
+
$urlRewrites[$row['product_id']] = $row['request_path'];
|
1168 |
+
}
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
if ($this->_cacheConf) {
|
1172 |
+
Mage::app()->saveCache(
|
1173 |
+
serialize($urlRewrites),
|
1174 |
+
$this->_cacheConf['prefix'] . 'urlrewrite',
|
1175 |
+
array_merge($this->_cacheConf['tags'], array(Mage_Catalog_Model_Product_Url::CACHE_TAG)),
|
1176 |
+
$this->_cacheLifetime
|
1177 |
+
);
|
1178 |
+
}
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
foreach($this->getItems() as $item) {
|
1182 |
+
if (isset($urlRewrites[$item->getEntityId()])) {
|
1183 |
+
$item->setData('request_path', $urlRewrites[$item->getEntityId()]);
|
1184 |
+
} else {
|
1185 |
+
$item->setData('request_path', false);
|
1186 |
+
}
|
1187 |
+
}
|
1188 |
+
}
|
1189 |
+
|
1190 |
+
/**
|
1191 |
+
* Add minimal price data to result
|
1192 |
+
*
|
1193 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1194 |
+
*/
|
1195 |
+
public function addMinimalPrice()
|
1196 |
+
{
|
1197 |
+
return $this->addPriceData();
|
1198 |
+
}
|
1199 |
+
|
1200 |
+
/**
|
1201 |
+
* Add minimal price to product collection
|
1202 |
+
*
|
1203 |
+
* @deprecated sinse 1.3.2.2
|
1204 |
+
* @see Mage_Catalog_Model_Resource_Product_Collection::addPriceData
|
1205 |
+
*
|
1206 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1207 |
+
*/
|
1208 |
+
protected function _addMinimalPrice()
|
1209 |
+
{
|
1210 |
+
return $this;
|
1211 |
+
}
|
1212 |
+
|
1213 |
+
/**
|
1214 |
+
* Add price data for calculate final price
|
1215 |
+
*
|
1216 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1217 |
+
*/
|
1218 |
+
public function addFinalPrice()
|
1219 |
+
{
|
1220 |
+
return $this->addPriceData();
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
/**
|
1224 |
+
* Join prices from price rules to products collection
|
1225 |
+
*
|
1226 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1227 |
+
*/
|
1228 |
+
protected function _joinPriceRules()
|
1229 |
+
{
|
1230 |
+
if ($this->isEnabledFlat()) {
|
1231 |
+
$customerGroup = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
1232 |
+
$priceColumn = 'e.display_price_group_' . $customerGroup;
|
1233 |
+
$this->getSelect()->columns(array('_rule_price' => $priceColumn));
|
1234 |
+
|
1235 |
+
return $this;
|
1236 |
+
}
|
1237 |
+
if (!Mage::helper('catalog')->isModuleEnabled('Mage_CatalogRule')) {
|
1238 |
+
return $this;
|
1239 |
+
}
|
1240 |
+
$wId = Mage::app()->getWebsite()->getId();
|
1241 |
+
$gId = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
1242 |
+
|
1243 |
+
$storeDate = Mage::app()->getLocale()->storeTimeStamp($this->getStoreId());
|
1244 |
+
$conditions = 'price_rule.product_id = e.entity_id AND ';
|
1245 |
+
$conditions .= "price_rule.rule_date = '".$this->getResource()->formatDate($storeDate, false)."' AND ";
|
1246 |
+
$conditions .= $this->getConnection()->quoteInto('price_rule.website_id = ? AND', $wId);
|
1247 |
+
$conditions .= $this->getConnection()->quoteInto('price_rule.customer_group_id = ?', $gId);
|
1248 |
+
|
1249 |
+
$this->getSelect()->joinLeft(
|
1250 |
+
array('price_rule' => $this->getTable('catalogrule/rule_product_price')),
|
1251 |
+
$conditions,
|
1252 |
+
array('rule_price' => 'rule_price')
|
1253 |
+
);
|
1254 |
+
return $this;
|
1255 |
+
}
|
1256 |
+
|
1257 |
+
/**
|
1258 |
+
* Add final price to the product
|
1259 |
+
*
|
1260 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1261 |
+
*/
|
1262 |
+
protected function _addFinalPrice()
|
1263 |
+
{
|
1264 |
+
foreach ($this->_items as $product) {
|
1265 |
+
$basePrice = $product->getPrice();
|
1266 |
+
$specialPrice = $product->getSpecialPrice();
|
1267 |
+
$specialPriceFrom = $product->getSpecialFromDate();
|
1268 |
+
$specialPriceTo = $product->getSpecialToDate();
|
1269 |
+
if ($this->isEnabledFlat()) {
|
1270 |
+
$rulePrice = null;
|
1271 |
+
if ($product->getData('_rule_price') != $basePrice) {
|
1272 |
+
$rulePrice = $product->getData('_rule_price');
|
1273 |
+
}
|
1274 |
+
} else {
|
1275 |
+
$rulePrice = $product->getData('_rule_price');
|
1276 |
+
}
|
1277 |
+
|
1278 |
+
$finalPrice = $product->getPriceModel()->calculatePrice(
|
1279 |
+
$basePrice,
|
1280 |
+
$specialPrice,
|
1281 |
+
$specialPriceFrom,
|
1282 |
+
$specialPriceTo,
|
1283 |
+
$rulePrice,
|
1284 |
+
null,
|
1285 |
+
null,
|
1286 |
+
$product->getId()
|
1287 |
+
);
|
1288 |
+
|
1289 |
+
$product->setCalculatedFinalPrice($finalPrice);
|
1290 |
+
}
|
1291 |
+
|
1292 |
+
return $this;
|
1293 |
+
}
|
1294 |
+
|
1295 |
+
/**
|
1296 |
+
* Retreive all ids
|
1297 |
+
*
|
1298 |
+
* @param boolean $resetCache
|
1299 |
+
* @return array
|
1300 |
+
*/
|
1301 |
+
public function getAllIdsCache($resetCache = false)
|
1302 |
+
{
|
1303 |
+
$ids = null;
|
1304 |
+
if (!$resetCache) {
|
1305 |
+
$ids = $this->_allIdsCache;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
if (is_null($ids)) {
|
1309 |
+
$ids = $this->getAllIds();
|
1310 |
+
$this->setAllIdsCache($ids);
|
1311 |
+
}
|
1312 |
+
|
1313 |
+
return $ids;
|
1314 |
+
}
|
1315 |
+
|
1316 |
+
/**
|
1317 |
+
* Set all ids
|
1318 |
+
*
|
1319 |
+
* @param array $value
|
1320 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1321 |
+
*/
|
1322 |
+
public function setAllIdsCache($value)
|
1323 |
+
{
|
1324 |
+
$this->_allIdsCache = $value;
|
1325 |
+
return $this;
|
1326 |
+
}
|
1327 |
+
|
1328 |
+
/**
|
1329 |
+
* Add Price Data to result
|
1330 |
+
*
|
1331 |
+
* @param int $customerGroupId
|
1332 |
+
* @param int $websiteId
|
1333 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1334 |
+
*/
|
1335 |
+
public function addPriceData($customerGroupId = null, $websiteId = null)
|
1336 |
+
{
|
1337 |
+
$this->_productLimitationFilters['use_price_index'] = true;
|
1338 |
+
|
1339 |
+
if (!isset($this->_productLimitationFilters['customer_group_id']) && is_null($customerGroupId)) {
|
1340 |
+
$customerGroupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
1341 |
+
}
|
1342 |
+
if (!isset($this->_productLimitationFilters['website_id']) && is_null($websiteId)) {
|
1343 |
+
$websiteId = Mage::app()->getStore($this->getStoreId())->getWebsiteId();
|
1344 |
+
}
|
1345 |
+
|
1346 |
+
if (!is_null($customerGroupId)) {
|
1347 |
+
$this->_productLimitationFilters['customer_group_id'] = $customerGroupId;
|
1348 |
+
}
|
1349 |
+
if (!is_null($websiteId)) {
|
1350 |
+
$this->_productLimitationFilters['website_id'] = $websiteId;
|
1351 |
+
}
|
1352 |
+
|
1353 |
+
$this->_applyProductLimitations();
|
1354 |
+
|
1355 |
+
return $this;
|
1356 |
+
}
|
1357 |
+
|
1358 |
+
/**
|
1359 |
+
* Add attribute to filter
|
1360 |
+
*
|
1361 |
+
* @param Mage_Eav_Model_Entity_Attribute_Abstract|string $attribute
|
1362 |
+
* @param array $condition
|
1363 |
+
* @param string $joinType
|
1364 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1365 |
+
*/
|
1366 |
+
public function addAttributeToFilter($attribute, $condition = null, $joinType = 'inner')
|
1367 |
+
{
|
1368 |
+
if ($this->isEnabledFlat()) {
|
1369 |
+
if ($attribute instanceof Mage_Eav_Model_Entity_Attribute_Abstract) {
|
1370 |
+
$attribute = $attribute->getAttributeCode();
|
1371 |
+
}
|
1372 |
+
|
1373 |
+
if (is_array($attribute)) {
|
1374 |
+
$sqlArr = array();
|
1375 |
+
foreach ($attribute as $condition) {
|
1376 |
+
$sqlArr[] = $this->_getAttributeConditionSql($condition['attribute'], $condition, $joinType);
|
1377 |
+
}
|
1378 |
+
$conditionSql = '('.join(') OR (', $sqlArr).')';
|
1379 |
+
$this->getSelect()->where($conditionSql);
|
1380 |
+
return $this;
|
1381 |
+
}
|
1382 |
+
|
1383 |
+
if (!isset($this->_selectAttributes[$attribute])) {
|
1384 |
+
$this->addAttributeToSelect($attribute);
|
1385 |
+
}
|
1386 |
+
|
1387 |
+
if (isset($this->_selectAttributes[$attribute])) {
|
1388 |
+
$this->getSelect()->where($this->_getConditionSql('e.' . $attribute, $condition));
|
1389 |
+
}
|
1390 |
+
|
1391 |
+
return $this;
|
1392 |
+
}
|
1393 |
+
|
1394 |
+
$this->_allIdsCache = null;
|
1395 |
+
|
1396 |
+
if (is_string($attribute) && $attribute == 'is_saleable') {
|
1397 |
+
$columns = $this->getSelect()->getPart(Zend_Db_Select::COLUMNS);
|
1398 |
+
foreach ($columns as $columnEntry) {
|
1399 |
+
list($correlationName, $column, $alias) = $columnEntry;
|
1400 |
+
if ($alias == 'is_saleable') {
|
1401 |
+
if ($column instanceof Zend_Db_Expr) {
|
1402 |
+
$field = $column;
|
1403 |
+
} else {
|
1404 |
+
$adapter = $this->getSelect()->getAdapter();
|
1405 |
+
if (empty($correlationName)) {
|
1406 |
+
$field = $adapter->quoteColumnAs($column, $alias, true);
|
1407 |
+
} else {
|
1408 |
+
$field = $adapter->quoteColumnAs(array($correlationName, $column), $alias, true);
|
1409 |
+
}
|
1410 |
+
}
|
1411 |
+
$this->getSelect()->where("{$field} = ?", $condition);
|
1412 |
+
break;
|
1413 |
+
}
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
return $this;
|
1417 |
+
} else {
|
1418 |
+
return parent::addAttributeToFilter($attribute, $condition, $joinType);
|
1419 |
+
}
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
/**
|
1423 |
+
* Add requere tax percent flag for product collection
|
1424 |
+
*
|
1425 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1426 |
+
*/
|
1427 |
+
public function addTaxPercents()
|
1428 |
+
{
|
1429 |
+
$this->_addTaxPercents = true;
|
1430 |
+
return $this;
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
/**
|
1434 |
+
* Get require tax percent flag value
|
1435 |
+
*
|
1436 |
+
* @return bool
|
1437 |
+
*/
|
1438 |
+
public function requireTaxPercent()
|
1439 |
+
{
|
1440 |
+
return $this->_addTaxPercents;
|
1441 |
+
}
|
1442 |
+
|
1443 |
+
/**
|
1444 |
+
* Enter description here ...
|
1445 |
+
*
|
1446 |
+
* @deprecated from 1.3.0
|
1447 |
+
*
|
1448 |
+
*/
|
1449 |
+
protected function _addTaxPercents()
|
1450 |
+
{
|
1451 |
+
$classToRate = array();
|
1452 |
+
$request = Mage::getSingleton('tax/calculation')->getRateRequest();
|
1453 |
+
foreach ($this as &$item) {
|
1454 |
+
if (null === $item->getTaxClassId()) {
|
1455 |
+
$item->setTaxClassId($item->getMinimalTaxClassId());
|
1456 |
+
}
|
1457 |
+
if (!isset($classToRate[$item->getTaxClassId()])) {
|
1458 |
+
$request->setProductClassId($item->getTaxClassId());
|
1459 |
+
$classToRate[$item->getTaxClassId()] = Mage::getSingleton('tax/calculation')->getRate($request);
|
1460 |
+
}
|
1461 |
+
$item->setTaxPercent($classToRate[$item->getTaxClassId()]);
|
1462 |
+
}
|
1463 |
+
}
|
1464 |
+
|
1465 |
+
/**
|
1466 |
+
* Adding product custom options to result collection
|
1467 |
+
*
|
1468 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1469 |
+
*/
|
1470 |
+
public function addOptionsToResult()
|
1471 |
+
{
|
1472 |
+
$productIds = array();
|
1473 |
+
foreach ($this as $product) {
|
1474 |
+
$productIds[] = $product->getId();
|
1475 |
+
}
|
1476 |
+
if (!empty($productIds)) {
|
1477 |
+
$options = Mage::getModel('catalog/product_option')
|
1478 |
+
->getCollection()
|
1479 |
+
->addTitleToResult(Mage::app()->getStore()->getId())
|
1480 |
+
->addPriceToResult(Mage::app()->getStore()->getId())
|
1481 |
+
->addProductToFilter($productIds)
|
1482 |
+
->addValuesToResult();
|
1483 |
+
|
1484 |
+
foreach ($options as $option) {
|
1485 |
+
if($this->getItemById($option->getProductId())) {
|
1486 |
+
$this->getItemById($option->getProductId())->addOption($option);
|
1487 |
+
}
|
1488 |
+
}
|
1489 |
+
}
|
1490 |
+
|
1491 |
+
return $this;
|
1492 |
+
}
|
1493 |
+
|
1494 |
+
/**
|
1495 |
+
* Filter products with required options
|
1496 |
+
*
|
1497 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1498 |
+
*/
|
1499 |
+
public function addFilterByRequiredOptions()
|
1500 |
+
{
|
1501 |
+
$this->addAttributeToFilter('required_options', array(array('neq' => '1'), array('null' => true)), 'left');
|
1502 |
+
return $this;
|
1503 |
+
}
|
1504 |
+
|
1505 |
+
/**
|
1506 |
+
* Set product visibility filter for enabled products
|
1507 |
+
*
|
1508 |
+
* @param array $visibility
|
1509 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1510 |
+
*/
|
1511 |
+
public function setVisibility($visibility)
|
1512 |
+
{
|
1513 |
+
$this->_productLimitationFilters['visibility'] = $visibility;
|
1514 |
+
$this->_applyProductLimitations();
|
1515 |
+
|
1516 |
+
return $this;
|
1517 |
+
}
|
1518 |
+
|
1519 |
+
/**
|
1520 |
+
* Add attribute to sort order
|
1521 |
+
*
|
1522 |
+
* @param string $attribute
|
1523 |
+
* @param string $dir
|
1524 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1525 |
+
*/
|
1526 |
+
public function addAttributeToSort($attribute, $dir = self::SORT_ORDER_ASC)
|
1527 |
+
{
|
1528 |
+
if ($attribute == 'position') {
|
1529 |
+
if (isset($this->_joinFields[$attribute])) {
|
1530 |
+
$this->getSelect()->order($this->_getAttributeFieldName($attribute) . ' ' . $dir);
|
1531 |
+
return $this;
|
1532 |
+
}
|
1533 |
+
if ($this->isEnabledFlat()) {
|
1534 |
+
$this->getSelect()->order("cat_index_position {$dir}");
|
1535 |
+
}
|
1536 |
+
// optimize if using cat index
|
1537 |
+
$filters = $this->_productLimitationFilters;
|
1538 |
+
if (isset($filters['category_id']) || isset($filters['visibility'])) {
|
1539 |
+
$this->getSelect()->order('cat_index.position ' . $dir);
|
1540 |
+
} else {
|
1541 |
+
$this->getSelect()->order('e.entity_id ' . $dir);
|
1542 |
+
}
|
1543 |
+
|
1544 |
+
return $this;
|
1545 |
+
} elseif($attribute == 'is_saleable'){
|
1546 |
+
$this->getSelect()->order("is_saleable " . $dir);
|
1547 |
+
return $this;
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
$storeId = $this->getStoreId();
|
1551 |
+
if ($attribute == 'price' && $storeId != 0) {
|
1552 |
+
$this->addPriceData();
|
1553 |
+
$this->getSelect()->order("price_index.min_price {$dir}");
|
1554 |
+
|
1555 |
+
return $this;
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
if ($this->isEnabledFlat()) {
|
1559 |
+
$column = $this->getEntity()->getAttributeSortColumn($attribute);
|
1560 |
+
|
1561 |
+
if ($column) {
|
1562 |
+
$this->getSelect()->order("e.{$column} {$dir}");
|
1563 |
+
}
|
1564 |
+
else if (isset($this->_joinFields[$attribute])) {
|
1565 |
+
$this->getSelect()->order($this->_getAttributeFieldName($attribute) . ' ' . $dir);
|
1566 |
+
}
|
1567 |
+
|
1568 |
+
return $this;
|
1569 |
+
} else {
|
1570 |
+
$attrInstance = $this->getEntity()->getAttribute($attribute);
|
1571 |
+
if ($attrInstance && $attrInstance->usesSource()) {
|
1572 |
+
$attrInstance->getSource()
|
1573 |
+
->addValueSortToCollection($this, $dir);
|
1574 |
+
return $this;
|
1575 |
+
}
|
1576 |
+
}
|
1577 |
+
|
1578 |
+
return parent::addAttributeToSort($attribute, $dir);
|
1579 |
+
}
|
1580 |
+
|
1581 |
+
/**
|
1582 |
+
* Prepare limitation filters
|
1583 |
+
*
|
1584 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1585 |
+
*/
|
1586 |
+
protected function _prepareProductLimitationFilters()
|
1587 |
+
{
|
1588 |
+
if (isset($this->_productLimitationFilters['visibility'])
|
1589 |
+
&& !isset($this->_productLimitationFilters['store_id'])
|
1590 |
+
) {
|
1591 |
+
$this->_productLimitationFilters['store_id'] = $this->getStoreId();
|
1592 |
+
}
|
1593 |
+
if (isset($this->_productLimitationFilters['category_id'])
|
1594 |
+
&& !isset($this->_productLimitationFilters['store_id'])
|
1595 |
+
) {
|
1596 |
+
$this->_productLimitationFilters['store_id'] = $this->getStoreId();
|
1597 |
+
}
|
1598 |
+
if (isset($this->_productLimitationFilters['store_id'])
|
1599 |
+
&& isset($this->_productLimitationFilters['visibility'])
|
1600 |
+
&& !isset($this->_productLimitationFilters['category_id'])
|
1601 |
+
) {
|
1602 |
+
$this->_productLimitationFilters['category_id'] = Mage::app()
|
1603 |
+
->getStore($this->_productLimitationFilters['store_id'])
|
1604 |
+
->getRootCategoryId();
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
return $this;
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
/**
|
1611 |
+
* Join website product limitation
|
1612 |
+
*
|
1613 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1614 |
+
*/
|
1615 |
+
protected function _productLimitationJoinWebsite()
|
1616 |
+
{
|
1617 |
+
$joinWebsite = false;
|
1618 |
+
$filters = $this->_productLimitationFilters;
|
1619 |
+
$conditions = array('product_website.product_id = e.entity_id');
|
1620 |
+
|
1621 |
+
if (isset($filters['website_ids'])) {
|
1622 |
+
$joinWebsite = true;
|
1623 |
+
if (count($filters['website_ids']) > 1) {
|
1624 |
+
$this->getSelect()->distinct(true);
|
1625 |
+
}
|
1626 |
+
$conditions[] = $this->getConnection()
|
1627 |
+
->quoteInto('product_website.website_id IN(?)', $filters['website_ids']);
|
1628 |
+
} elseif (isset($filters['store_id'])
|
1629 |
+
&& (!isset($filters['visibility']) && !isset($filters['category_id']))
|
1630 |
+
&& !$this->isEnabledFlat()
|
1631 |
+
) {
|
1632 |
+
$joinWebsite = true;
|
1633 |
+
$websiteId = Mage::app()->getStore($filters['store_id'])->getWebsiteId();
|
1634 |
+
$conditions[] = $this->getConnection()
|
1635 |
+
->quoteInto('product_website.website_id = ?', $websiteId);
|
1636 |
+
}
|
1637 |
+
|
1638 |
+
$fromPart = $this->getSelect()->getPart(Zend_Db_Select::FROM);
|
1639 |
+
if (isset($fromPart['product_website'])) {
|
1640 |
+
if (!$joinWebsite) {
|
1641 |
+
unset($fromPart['product_website']);
|
1642 |
+
} else {
|
1643 |
+
$fromPart['product_website']['joinCondition'] = join(' AND ', $conditions);
|
1644 |
+
}
|
1645 |
+
$this->getSelect()->setPart(Zend_Db_Select::FROM, $fromPart);
|
1646 |
+
} elseif ($joinWebsite) {
|
1647 |
+
$this->getSelect()->join(
|
1648 |
+
array('product_website' => $this->getTable('catalog/product_website')),
|
1649 |
+
join(' AND ', $conditions),
|
1650 |
+
array()
|
1651 |
+
);
|
1652 |
+
}
|
1653 |
+
|
1654 |
+
return $this;
|
1655 |
+
}
|
1656 |
+
|
1657 |
+
/**
|
1658 |
+
* Join additional (alternative) store visibility filter
|
1659 |
+
*
|
1660 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1661 |
+
*/
|
1662 |
+
protected function _productLimitationJoinStore()
|
1663 |
+
{
|
1664 |
+
$filters = $this->_productLimitationFilters;
|
1665 |
+
if (!isset($filters['store_table'])) {
|
1666 |
+
return $this;
|
1667 |
+
}
|
1668 |
+
|
1669 |
+
$hasColumn = false;
|
1670 |
+
foreach ($this->getSelect()->getPart(Zend_Db_Select::COLUMNS) as $columnEntry) {
|
1671 |
+
list(,,$alias) = $columnEntry;
|
1672 |
+
if ($alias == 'visibility') {
|
1673 |
+
$hasColumn = true;
|
1674 |
+
}
|
1675 |
+
}
|
1676 |
+
if (!$hasColumn) {
|
1677 |
+
$this->getSelect()->columns('visibility', 'cat_index');
|
1678 |
+
}
|
1679 |
+
|
1680 |
+
$fromPart = $this->getSelect()->getPart(Zend_Db_Select::FROM);
|
1681 |
+
if (!isset($fromPart['store_index'])) {
|
1682 |
+
$this->getSelect()->joinLeft(
|
1683 |
+
array('store_index' => $this->getTable('core/store')),
|
1684 |
+
'store_index.store_id = ' . $filters['store_table'] . '.store_id',
|
1685 |
+
array()
|
1686 |
+
);
|
1687 |
+
}
|
1688 |
+
if (!isset($fromPart['store_group_index'])) {
|
1689 |
+
$this->getSelect()->joinLeft(
|
1690 |
+
array('store_group_index' => $this->getTable('core/store_group')),
|
1691 |
+
'store_index.group_id = store_group_index.group_id',
|
1692 |
+
array()
|
1693 |
+
);
|
1694 |
+
}
|
1695 |
+
if (!isset($fromPart['store_cat_index'])) {
|
1696 |
+
$this->getSelect()->joinLeft(
|
1697 |
+
array('store_cat_index' => $this->getTable('catalog/category_product_index')),
|
1698 |
+
join(' AND ', array(
|
1699 |
+
'store_cat_index.product_id = e.entity_id',
|
1700 |
+
'store_cat_index.store_id = ' . $filters['store_table'] . '.store_id',
|
1701 |
+
'store_cat_index.category_id=store_group_index.root_category_id'
|
1702 |
+
)),
|
1703 |
+
array('store_visibility' => 'visibility')
|
1704 |
+
);
|
1705 |
+
}
|
1706 |
+
// Avoid column duplication problems
|
1707 |
+
Mage::getResourceHelper('core')->prepareColumnsList($this->getSelect());
|
1708 |
+
|
1709 |
+
$whereCond = join(' OR ', array(
|
1710 |
+
$this->getConnection()->quoteInto('cat_index.visibility IN(?)', $filters['visibility']),
|
1711 |
+
$this->getConnection()->quoteInto('store_cat_index.visibility IN(?)', $filters['visibility'])
|
1712 |
+
));
|
1713 |
+
|
1714 |
+
$wherePart = $this->getSelect()->getPart(Zend_Db_Select::WHERE);
|
1715 |
+
$hasCond = false;
|
1716 |
+
foreach ($wherePart as $cond) {
|
1717 |
+
if ($cond == '(' . $whereCond . ')') {
|
1718 |
+
$hasCond = true;
|
1719 |
+
}
|
1720 |
+
}
|
1721 |
+
|
1722 |
+
if (!$hasCond) {
|
1723 |
+
$this->getSelect()->where($whereCond);
|
1724 |
+
}
|
1725 |
+
|
1726 |
+
return $this;
|
1727 |
+
}
|
1728 |
+
|
1729 |
+
/**
|
1730 |
+
* Join Product Price Table
|
1731 |
+
*
|
1732 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1733 |
+
*/
|
1734 |
+
protected function _productLimitationJoinPrice()
|
1735 |
+
{
|
1736 |
+
return $this->_productLimitationPrice();
|
1737 |
+
}
|
1738 |
+
|
1739 |
+
/**
|
1740 |
+
* Join Product Price Table with left-join possibility
|
1741 |
+
*
|
1742 |
+
* @see Mage_Catalog_Model_Resource_Product_Collection::_productLimitationJoinPrice()
|
1743 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1744 |
+
*/
|
1745 |
+
protected function _productLimitationPrice($joinLeft = false)
|
1746 |
+
{
|
1747 |
+
$filters = $this->_productLimitationFilters;
|
1748 |
+
if (empty($filters['use_price_index'])) {
|
1749 |
+
return $this;
|
1750 |
+
}
|
1751 |
+
|
1752 |
+
$helper = Mage::getResourceHelper('core');
|
1753 |
+
$connection = $this->getConnection();
|
1754 |
+
$select = $this->getSelect();
|
1755 |
+
$joinCond = join(' AND ', array(
|
1756 |
+
'price_index.entity_id = e.entity_id',
|
1757 |
+
$connection->quoteInto('price_index.website_id = ?', $filters['website_id']),
|
1758 |
+
$connection->quoteInto('price_index.customer_group_id = ?', $filters['customer_group_id'])
|
1759 |
+
));
|
1760 |
+
|
1761 |
+
$fromPart = $select->getPart(Zend_Db_Select::FROM);
|
1762 |
+
if (!isset($fromPart['price_index'])) {
|
1763 |
+
$least = $connection->getLeastSql(array('price_index.min_price', 'price_index.tier_price'));
|
1764 |
+
$minimalExpr = $connection->getCheckSql('price_index.tier_price IS NOT NULL',
|
1765 |
+
$least, 'price_index.min_price');
|
1766 |
+
$colls = array('price', 'tax_class_id', 'final_price',
|
1767 |
+
'minimal_price' => $minimalExpr , 'min_price', 'max_price', 'tier_price');
|
1768 |
+
$tableName = array('price_index' => $this->getTable('catalog/product_index_price'));
|
1769 |
+
if ($joinLeft) {
|
1770 |
+
$select->joinLeft($tableName, $joinCond, $colls);
|
1771 |
+
} else {
|
1772 |
+
$select->join($tableName, $joinCond, $colls);
|
1773 |
+
}
|
1774 |
+
// Set additional field filters
|
1775 |
+
foreach ($this->_priceDataFieldFilters as $filterData) {
|
1776 |
+
$select->where(call_user_func_array('sprintf', $filterData));
|
1777 |
+
}
|
1778 |
+
} else {
|
1779 |
+
$fromPart['price_index']['joinCondition'] = $joinCond;
|
1780 |
+
$select->setPart(Zend_Db_Select::FROM, $fromPart);
|
1781 |
+
}
|
1782 |
+
//Clean duplicated fields
|
1783 |
+
$helper->prepareColumnsList($select);
|
1784 |
+
|
1785 |
+
|
1786 |
+
return $this;
|
1787 |
+
}
|
1788 |
+
|
1789 |
+
/**
|
1790 |
+
* Apply front-end price limitation filters to the collection
|
1791 |
+
*
|
1792 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1793 |
+
*/
|
1794 |
+
public function applyFrontendPriceLimitations()
|
1795 |
+
{
|
1796 |
+
$this->_productLimitationFilters['use_price_index'] = true;
|
1797 |
+
if (!isset($this->_productLimitationFilters['customer_group_id'])) {
|
1798 |
+
$customerGroupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
1799 |
+
$this->_productLimitationFilters['customer_group_id'] = $customerGroupId;
|
1800 |
+
}
|
1801 |
+
if (!isset($this->_productLimitationFilters['website_id'])) {
|
1802 |
+
$websiteId = Mage::app()->getStore($this->getStoreId())->getWebsiteId();
|
1803 |
+
$this->_productLimitationFilters['website_id'] = $websiteId;
|
1804 |
+
}
|
1805 |
+
$this->_applyProductLimitations();
|
1806 |
+
return $this;
|
1807 |
+
}
|
1808 |
+
|
1809 |
+
/**
|
1810 |
+
* Apply limitation filters to collection
|
1811 |
+
* Method allows using one time category product index table (or product website table)
|
1812 |
+
* for different combinations of store_id/category_id/visibility filter states
|
1813 |
+
* Method supports multiple changes in one collection object for this parameters
|
1814 |
+
*
|
1815 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1816 |
+
*/
|
1817 |
+
protected function _applyProductLimitations()
|
1818 |
+
{
|
1819 |
+
$this->_prepareProductLimitationFilters();
|
1820 |
+
$this->_productLimitationJoinWebsite();
|
1821 |
+
$this->_productLimitationJoinPrice();
|
1822 |
+
$filters = $this->_productLimitationFilters;
|
1823 |
+
|
1824 |
+
if (!isset($filters['category_id']) && !isset($filters['visibility'])) {
|
1825 |
+
return $this;
|
1826 |
+
}
|
1827 |
+
|
1828 |
+
$conditions = array(
|
1829 |
+
'cat_index.product_id=e.entity_id',
|
1830 |
+
$this->getConnection()->quoteInto('cat_index.store_id=?', $filters['store_id'])
|
1831 |
+
);
|
1832 |
+
if (isset($filters['visibility']) && !isset($filters['store_table'])) {
|
1833 |
+
$conditions[] = $this->getConnection()
|
1834 |
+
->quoteInto('cat_index.visibility IN(?)', $filters['visibility']);
|
1835 |
+
}
|
1836 |
+
$conditions[] = $this->getConnection()
|
1837 |
+
->quoteInto('cat_index.category_id=?', $filters['category_id']);
|
1838 |
+
if (isset($filters['category_is_anchor'])) {
|
1839 |
+
$conditions[] = $this->getConnection()
|
1840 |
+
->quoteInto('cat_index.is_parent=?', $filters['category_is_anchor']);
|
1841 |
+
}
|
1842 |
+
|
1843 |
+
$joinCond = join(' AND ', $conditions);
|
1844 |
+
$fromPart = $this->getSelect()->getPart(Zend_Db_Select::FROM);
|
1845 |
+
if (isset($fromPart['cat_index'])) {
|
1846 |
+
$fromPart['cat_index']['joinCondition'] = $joinCond;
|
1847 |
+
$this->getSelect()->setPart(Zend_Db_Select::FROM, $fromPart);
|
1848 |
+
}
|
1849 |
+
else {
|
1850 |
+
$this->getSelect()->join(
|
1851 |
+
array('cat_index' => $this->getTable('catalog/category_product_index')),
|
1852 |
+
$joinCond,
|
1853 |
+
array('cat_index_position' => 'position')
|
1854 |
+
);
|
1855 |
+
}
|
1856 |
+
|
1857 |
+
$this->_productLimitationJoinStore();
|
1858 |
+
|
1859 |
+
Mage::dispatchEvent('catalog_product_collection_apply_limitations_after', array(
|
1860 |
+
'collection' => $this
|
1861 |
+
));
|
1862 |
+
|
1863 |
+
return $this;
|
1864 |
+
}
|
1865 |
+
|
1866 |
+
/**
|
1867 |
+
* Apply limitation filters to collection base on API
|
1868 |
+
* Method allows using one time category product table
|
1869 |
+
* for combinations of category_id filter states
|
1870 |
+
*
|
1871 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1872 |
+
*/
|
1873 |
+
protected function _applyZeroStoreProductLimitations()
|
1874 |
+
{
|
1875 |
+
$filters = $this->_productLimitationFilters;
|
1876 |
+
|
1877 |
+
$conditions = array(
|
1878 |
+
'cat_pro.product_id=e.entity_id',
|
1879 |
+
$this->getConnection()->quoteInto('cat_pro.category_id=?', $filters['category_id'])
|
1880 |
+
);
|
1881 |
+
$joinCond = join(' AND ', $conditions);
|
1882 |
+
|
1883 |
+
$fromPart = $this->getSelect()->getPart(Zend_Db_Select::FROM);
|
1884 |
+
if (isset($fromPart['cat_pro'])) {
|
1885 |
+
$fromPart['cat_pro']['joinCondition'] = $joinCond;
|
1886 |
+
$this->getSelect()->setPart(Zend_Db_Select::FROM, $fromPart);
|
1887 |
+
}
|
1888 |
+
else {
|
1889 |
+
$this->getSelect()->join(
|
1890 |
+
array('cat_pro' => $this->getTable('catalog/category_product')),
|
1891 |
+
$joinCond,
|
1892 |
+
array('cat_index_position' => 'position')
|
1893 |
+
);
|
1894 |
+
}
|
1895 |
+
$this->_joinFields['position'] = array(
|
1896 |
+
'table' => 'cat_pro',
|
1897 |
+
'field' => 'position',
|
1898 |
+
);
|
1899 |
+
|
1900 |
+
return $this;
|
1901 |
+
}
|
1902 |
+
|
1903 |
+
/**
|
1904 |
+
* Add category ids to loaded items
|
1905 |
+
*
|
1906 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1907 |
+
*/
|
1908 |
+
public function addCategoryIds()
|
1909 |
+
{
|
1910 |
+
if ($this->getFlag('category_ids_added')) {
|
1911 |
+
return $this;
|
1912 |
+
}
|
1913 |
+
$ids = array_keys($this->_items);
|
1914 |
+
if (empty($ids)) {
|
1915 |
+
return $this;
|
1916 |
+
}
|
1917 |
+
|
1918 |
+
$select = $this->getConnection()->select();
|
1919 |
+
|
1920 |
+
$select->from($this->_productCategoryTable, array('product_id', 'category_id'));
|
1921 |
+
$select->where('product_id IN (?)', $ids);
|
1922 |
+
|
1923 |
+
$data = $this->getConnection()->fetchAll($select);
|
1924 |
+
|
1925 |
+
$categoryIds = array();
|
1926 |
+
foreach ($data as $info) {
|
1927 |
+
if (isset($categoryIds[$info['product_id']])) {
|
1928 |
+
$categoryIds[$info['product_id']][] = $info['category_id'];
|
1929 |
+
} else {
|
1930 |
+
$categoryIds[$info['product_id']] = array($info['category_id']);
|
1931 |
+
}
|
1932 |
+
}
|
1933 |
+
|
1934 |
+
|
1935 |
+
foreach ($this->getItems() as $item) {
|
1936 |
+
$productId = $item->getId();
|
1937 |
+
if (isset($categoryIds[$productId])) {
|
1938 |
+
$item->setCategoryIds($categoryIds[$productId]);
|
1939 |
+
} else {
|
1940 |
+
$item->setCategoryIds(array());
|
1941 |
+
}
|
1942 |
+
}
|
1943 |
+
|
1944 |
+
$this->setFlag('category_ids_added', true);
|
1945 |
+
return $this;
|
1946 |
+
}
|
1947 |
+
|
1948 |
+
/**
|
1949 |
+
* Add tier price data to loaded items
|
1950 |
+
*
|
1951 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
1952 |
+
*/
|
1953 |
+
public function addTierPriceData()
|
1954 |
+
{
|
1955 |
+
if ($this->getFlag('tier_price_added')) {
|
1956 |
+
return $this;
|
1957 |
+
}
|
1958 |
+
|
1959 |
+
$tierPrices = array();
|
1960 |
+
$productIds = array();
|
1961 |
+
foreach ($this->getItems() as $item) {
|
1962 |
+
$productIds[] = $item->getId();
|
1963 |
+
$tierPrices[$item->getId()] = array();
|
1964 |
+
}
|
1965 |
+
if (!$productIds) {
|
1966 |
+
return $this;
|
1967 |
+
}
|
1968 |
+
|
1969 |
+
/** @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */
|
1970 |
+
$attribute = $this->getAttribute('tier_price');
|
1971 |
+
if ($attribute->isScopeGlobal()) {
|
1972 |
+
$websiteId = 0;
|
1973 |
+
} else if ($this->getStoreId()) {
|
1974 |
+
$websiteId = Mage::app()->getStore($this->getStoreId())->getWebsiteId();
|
1975 |
+
}
|
1976 |
+
|
1977 |
+
$adapter = $this->getConnection();
|
1978 |
+
$columns = array(
|
1979 |
+
'price_id' => 'value_id',
|
1980 |
+
'website_id' => 'website_id',
|
1981 |
+
'all_groups' => 'all_groups',
|
1982 |
+
'cust_group' => 'customer_group_id',
|
1983 |
+
'price_qty' => 'qty',
|
1984 |
+
'price' => 'value',
|
1985 |
+
'from_date' => 'from_date',
|
1986 |
+
'to_date' => 'to_date',
|
1987 |
+
'product_id' => 'entity_id'
|
1988 |
+
);
|
1989 |
+
$select = $adapter->select()
|
1990 |
+
->from($this->getTable('catalog/product_attribute_tier_price'), $columns)
|
1991 |
+
->where('entity_id IN(?)', $productIds)
|
1992 |
+
->order(array('entity_id','qty'));
|
1993 |
+
|
1994 |
+
if ($websiteId == '0') {
|
1995 |
+
$select->where('website_id = ?', $websiteId);
|
1996 |
+
} else {
|
1997 |
+
$select->where('website_id IN(?)', array('0', $websiteId));
|
1998 |
+
}
|
1999 |
+
|
2000 |
+
foreach ($adapter->fetchAll($select) as $row) {
|
2001 |
+
$tierPrices[$row['product_id']][] = array(
|
2002 |
+
'website_id' => $row['website_id'],
|
2003 |
+
'cust_group' => $row['all_groups'] ? Mage_Customer_Model_Group::CUST_GROUP_ALL : $row['cust_group'],
|
2004 |
+
'price_qty' => $row['price_qty'],
|
2005 |
+
'price' => $row['price'],
|
2006 |
+
'website_price' => $row['price'],
|
2007 |
+
'from_date' => $row['from_date'],
|
2008 |
+
'to_date' => $row['to_date'],
|
2009 |
+
|
2010 |
+
);
|
2011 |
+
}
|
2012 |
+
|
2013 |
+
/* @var $backend Mage_Catalog_Model_Product_Attribute_Backend_Tierprice */
|
2014 |
+
$backend = $attribute->getBackend();
|
2015 |
+
|
2016 |
+
foreach ($this->getItems() as $item) {
|
2017 |
+
$data = $tierPrices[$item->getId()];
|
2018 |
+
if (!empty($data) && $websiteId) {
|
2019 |
+
$data = $backend->preparePriceData($data, $item->getTypeId(), $websiteId);
|
2020 |
+
}
|
2021 |
+
$item->setData('tier_price', $data);
|
2022 |
+
}
|
2023 |
+
|
2024 |
+
$this->setFlag('tier_price_added', true);
|
2025 |
+
return $this;
|
2026 |
+
}
|
2027 |
+
|
2028 |
+
/**
|
2029 |
+
* Add field comparison expression
|
2030 |
+
*
|
2031 |
+
* @param string $comparisonFormat - expression for sprintf()
|
2032 |
+
* @param array $fields - list of fields
|
2033 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
2034 |
+
* @throws Exception
|
2035 |
+
*/
|
2036 |
+
public function addPriceDataFieldFilter($comparisonFormat, $fields)
|
2037 |
+
{
|
2038 |
+
if (!preg_match('/^%s( (<|>|=|<=|>=|<>) %s)*$/', $comparisonFormat)) {
|
2039 |
+
throw new Exception('Invalid comparison format.');
|
2040 |
+
}
|
2041 |
+
|
2042 |
+
if (!is_array($fields)) {
|
2043 |
+
$fields = array($fields);
|
2044 |
+
}
|
2045 |
+
foreach ($fields as $key => $field) {
|
2046 |
+
$fields[$key] = $this->_getMappedField($field);
|
2047 |
+
}
|
2048 |
+
|
2049 |
+
$this->_priceDataFieldFilters[] = array_merge(array($comparisonFormat), $fields);
|
2050 |
+
return $this;
|
2051 |
+
}
|
2052 |
+
|
2053 |
+
/**
|
2054 |
+
* Clear collection
|
2055 |
+
*
|
2056 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
2057 |
+
*/
|
2058 |
+
public function clear()
|
2059 |
+
{
|
2060 |
+
foreach ($this->_items as $i => $item) {
|
2061 |
+
if ($item->hasStockItem()) {
|
2062 |
+
$item->unsStockItem();
|
2063 |
+
}
|
2064 |
+
$item = $this->_items[$i] = null;
|
2065 |
+
}
|
2066 |
+
|
2067 |
+
foreach ($this->_itemsById as $i => $item) {
|
2068 |
+
$item = $this->_itemsById[$i] = null;
|
2069 |
+
}
|
2070 |
+
|
2071 |
+
unset($this->_items, $this->_data, $this->_itemsById);
|
2072 |
+
$this->_data = array();
|
2073 |
+
$this->_itemsById = array();
|
2074 |
+
return parent::clear();
|
2075 |
+
}
|
2076 |
+
|
2077 |
+
/**
|
2078 |
+
* Set Order field
|
2079 |
+
*
|
2080 |
+
* @param string $attribute
|
2081 |
+
* @param string $dir
|
2082 |
+
* @return Mage_Catalog_Model_Resource_Product_Collection
|
2083 |
+
*/
|
2084 |
+
public function setOrder($attribute, $dir = 'desc')
|
2085 |
+
{
|
2086 |
+
if ($attribute == 'price') {
|
2087 |
+
$this->addAttributeToSort($attribute, $dir);
|
2088 |
+
} else {
|
2089 |
+
parent::setOrder($attribute, $dir);
|
2090 |
+
}
|
2091 |
+
return $this;
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
/**
|
2095 |
+
* Get products max price
|
2096 |
+
*
|
2097 |
+
* @return float
|
2098 |
+
*/
|
2099 |
+
public function getMaxPrice()
|
2100 |
+
{
|
2101 |
+
if (is_null($this->_maxPrice)) {
|
2102 |
+
$this->_prepareStatisticsData();
|
2103 |
+
}
|
2104 |
+
|
2105 |
+
return $this->_maxPrice;
|
2106 |
+
}
|
2107 |
+
|
2108 |
+
/**
|
2109 |
+
* Get products min price
|
2110 |
+
*
|
2111 |
+
* @return float
|
2112 |
+
*/
|
2113 |
+
public function getMinPrice()
|
2114 |
+
{
|
2115 |
+
if (is_null($this->_minPrice)) {
|
2116 |
+
$this->_prepareStatisticsData();
|
2117 |
+
}
|
2118 |
+
|
2119 |
+
return $this->_minPrice;
|
2120 |
+
}
|
2121 |
+
|
2122 |
+
/**
|
2123 |
+
* Get standard deviation of products price
|
2124 |
+
*
|
2125 |
+
* @return float
|
2126 |
+
*/
|
2127 |
+
public function getPriceStandardDeviation()
|
2128 |
+
{
|
2129 |
+
if (is_null($this->_priceStandardDeviation)) {
|
2130 |
+
$this->_prepareStatisticsData();
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
return $this->_priceStandardDeviation;
|
2134 |
+
}
|
2135 |
+
|
2136 |
+
|
2137 |
+
/**
|
2138 |
+
* Get count of product prices
|
2139 |
+
*
|
2140 |
+
* @return int
|
2141 |
+
*/
|
2142 |
+
public function getPricesCount()
|
2143 |
+
{
|
2144 |
+
if (is_null($this->_pricesCount)) {
|
2145 |
+
$this->_prepareStatisticsData();
|
2146 |
+
}
|
2147 |
+
|
2148 |
+
return $this->_pricesCount;
|
2149 |
+
}
|
2150 |
+
}
|
app/code/local/Channelbrain/Catalog/etc/config.xml
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
|
4 |
+
<modules>
|
5 |
+
<Channelbrain_Catalog>
|
6 |
+
<version>0.1.0</version>
|
7 |
+
</Channelbrain_Catalog>
|
8 |
+
</modules>
|
9 |
+
|
10 |
+
|
11 |
+
<global>
|
12 |
+
<models>
|
13 |
+
<catalog>
|
14 |
+
<rewrite>
|
15 |
+
<product_type_price>Channelbrain_Catalog_Model_Product_Type_Price</product_type_price>
|
16 |
+
<product_attribute_backend_tierprice>Channelbrain_Catalog_Model_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
|
17 |
+
</rewrite>
|
18 |
+
</catalog>
|
19 |
+
<catalog_resource>
|
20 |
+
<rewrite>
|
21 |
+
<product_collection>Channelbrain_Catalog_Model_Resource_Product_Collection</product_collection>
|
22 |
+
</rewrite>
|
23 |
+
</catalog_resource>
|
24 |
+
<catalog_resource_eav_mysql4>
|
25 |
+
<rewrite>
|
26 |
+
<product_attribute_backend_tierprice>Channelbrain_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
|
27 |
+
</rewrite>
|
28 |
+
</catalog_resource_eav_mysql4>
|
29 |
+
</models>
|
30 |
+
</global>
|
31 |
+
|
32 |
+
</config>
|
app/code/local/Channelbrain/TierPriceDates/etc/config.xml
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Channelbrain_TierPriceDates>
|
5 |
+
<version>0.1.0</version>
|
6 |
+
</Channelbrain_TierPriceDates>
|
7 |
+
</modules>
|
8 |
+
<global>
|
9 |
+
<resources>
|
10 |
+
<tierpricing_setup>
|
11 |
+
<setup>
|
12 |
+
<module>Channelbrain_TierPriceDates</module>
|
13 |
+
</setup>
|
14 |
+
<connection>
|
15 |
+
<use>core_setup</use>
|
16 |
+
</connection>
|
17 |
+
</tierpricing_setup>
|
18 |
+
<tierpricing_write>
|
19 |
+
<connection>
|
20 |
+
<use>core_write</use>
|
21 |
+
</connection>
|
22 |
+
</tierpricing_write>
|
23 |
+
<tierpricing_read>
|
24 |
+
<connection>
|
25 |
+
<use>core_read</use>
|
26 |
+
</connection>
|
27 |
+
</tierpricing_read>
|
28 |
+
</resources>
|
29 |
+
</global>
|
30 |
+
|
31 |
+
<adminhtml>
|
32 |
+
<acl>
|
33 |
+
<resources>
|
34 |
+
<all>
|
35 |
+
<title>Allow Everything</title>
|
36 |
+
</all>
|
37 |
+
<admin>
|
38 |
+
<children>
|
39 |
+
<system>
|
40 |
+
<children>
|
41 |
+
<config>
|
42 |
+
<children>
|
43 |
+
<mypackage>
|
44 |
+
<title>Inchoo - All</title>
|
45 |
+
</mypackage>
|
46 |
+
</children>
|
47 |
+
</config>
|
48 |
+
</children>
|
49 |
+
</system>
|
50 |
+
</children>
|
51 |
+
</admin>
|
52 |
+
</resources>
|
53 |
+
</acl>
|
54 |
+
</adminhtml>
|
55 |
+
|
56 |
+
</config>
|
57 |
+
|
app/code/local/Channelbrain/TierPriceDates/etc/system.xml
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<config>
|
2 |
+
<sections>
|
3 |
+
<mypackage>
|
4 |
+
<label>Channelbrain Setting</label>
|
5 |
+
<tab>general</tab>
|
6 |
+
<frontend_type>text</frontend_type>
|
7 |
+
<show_in_default>1</show_in_default>
|
8 |
+
<show_in_website>1</show_in_website>
|
9 |
+
<show_in_store>1</show_in_store>
|
10 |
+
<sort_order>10</sort_order>
|
11 |
+
<groups>
|
12 |
+
<settings translate="label">
|
13 |
+
<label>Channelbrain Setting</label>
|
14 |
+
<frontend_type>text</frontend_type>
|
15 |
+
<sort_order>10</sort_order>
|
16 |
+
<show_in_default>1</show_in_default>
|
17 |
+
<show_in_website>1</show_in_website>
|
18 |
+
<show_in_store>1</show_in_store>
|
19 |
+
<fields>
|
20 |
+
<wds_tier_price translate="label">
|
21 |
+
<label>Enable Plugin</label>
|
22 |
+
<frontend_type>select</frontend_type>
|
23 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
24 |
+
<sort_order>20</sort_order>
|
25 |
+
<show_in_default>1</show_in_default>
|
26 |
+
<show_in_website>1</show_in_website>
|
27 |
+
<show_in_store>1</show_in_store>
|
28 |
+
</wds_tier_price>
|
29 |
+
</fields>
|
30 |
+
</settings>
|
31 |
+
</groups>
|
32 |
+
</mypackage>
|
33 |
+
</sections>
|
34 |
+
</config>
|
app/code/local/Channelbrain/TierPriceDates/sql/tierpricing_setup/mysql4-install-0.1.0.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$installer = $this;
|
3 |
+
$installer->startSetup();
|
4 |
+
$installer->run("ALTER TABLE {$this->getTable('catalog_product_entity_tier_price')} ADD from_date DATE NOT NULL AFTER qty, ADD to_date DATE NOT NULL AFTER from_date;");
|
5 |
+
$installer->endSetup();
|
6 |
+
?>
|
app/design/adminhtml/default/default/layout/admin.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
|
43 |
+
<!-- admin acl roles grid page -->
|
44 |
+
<adminhtml_permissions_role_index>
|
45 |
+
<reference name="content">
|
46 |
+
<block type="adminhtml/permissions_roles" name="adminhtml.permission.role.index" template="permissions/roles.phtml">
|
47 |
+
<block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid" as="grid"/>
|
48 |
+
</block>
|
49 |
+
</reference>
|
50 |
+
</adminhtml_permissions_role_index>
|
51 |
+
<adminhtml_permissions_role_rolegrid>
|
52 |
+
<remove name="root"/>
|
53 |
+
<block type="adminhtml/permissions_grid_role" name="adminhtml.permission.role.grid"/>
|
54 |
+
</adminhtml_permissions_role_rolegrid>
|
55 |
+
|
56 |
+
<!-- admin acl roles edit page -->
|
57 |
+
<adminhtml_permissions_role_editrole>
|
58 |
+
<reference name="left">
|
59 |
+
<block type="adminhtml/permissions_editroles" name="adminhtml.permissions.editroles"/>
|
60 |
+
</reference>
|
61 |
+
</adminhtml_permissions_role_editrole>
|
62 |
+
<adminhtml_system_config_edit>
|
63 |
+
<reference name="left">
|
64 |
+
<block type="adminhtml/system_config_switcher" name="adminhtml.system.config.switcher" before="-"/>
|
65 |
+
</reference>
|
66 |
+
</adminhtml_system_config_edit>
|
67 |
+
<adminhtml_dashboard_index>
|
68 |
+
<reference name="content">
|
69 |
+
<block type="adminhtml/dashboard" name="dashboard">
|
70 |
+
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" template="store/switcher.phtml">
|
71 |
+
<action method="setUseConfirm"><params>0</params></action>
|
72 |
+
</block>
|
73 |
+
</block>
|
74 |
+
</reference>
|
75 |
+
</adminhtml_dashboard_index>
|
76 |
+
<adminhtml_cache_index>
|
77 |
+
<reference name="content">
|
78 |
+
<block type="adminhtml/cache" name="cache"></block>
|
79 |
+
<block type="adminhtml/cache_additional" name="cache.additional" template="system/cache/additional.phtml"></block>
|
80 |
+
</reference>
|
81 |
+
</adminhtml_cache_index>
|
82 |
+
</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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<layout>
|
3 |
+
<adminhtml_import_index>
|
4 |
+
<reference name="content">
|
5 |
+
<block type="adminhtml/template" template="importexport/import/form/before.phtml" name="import.form.before" alias="form_before"/>
|
6 |
+
<block type="importexport/adminhtml_import_edit" name="import.form.container"/>
|
7 |
+
<block type="adminhtml/template" template="importexport/import/form/after.phtml" name="import.form.after" alias="form_after"/>
|
8 |
+
</reference>
|
9 |
+
</adminhtml_import_index>
|
10 |
+
<adminhtml_import_validate>
|
11 |
+
<block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
|
12 |
+
</adminhtml_import_validate>
|
13 |
+
<adminhtml_import_start>
|
14 |
+
<block type="importexport/adminhtml_import_frame_result" template="importexport/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
|
15 |
+
</adminhtml_import_start>
|
16 |
+
<adminhtml_import_busy>
|
17 |
+
<reference name="content">
|
18 |
+
<block type="core/template" template="importexport/busy.phtml" name="busy" alias="busy"/>
|
19 |
+
</reference>
|
20 |
+
</adminhtml_import_busy>
|
21 |
+
<adminhtml_export_index>
|
22 |
+
<reference name="content">
|
23 |
+
<block type="adminhtml/template" template="importexport/export/form/before.phtml" name="export.form.before" alias="form_before"/>
|
24 |
+
<block type="importexport/adminhtml_export_edit" name="export.form.container"/>
|
25 |
+
<block type="adminhtml/template" template="importexport/export/form/after.phtml" name="export.form.after" alias="form_after"/>
|
26 |
+
</reference>
|
27 |
+
</adminhtml_export_index>
|
28 |
+
<adminhtml_export_getfilter>
|
29 |
+
<block type="core/text_list" name="root">
|
30 |
+
<block type="importexport/adminhtml_export_filter" name="export.filter"/>
|
31 |
+
</block>
|
32 |
+
</adminhtml_export_getfilter>
|
33 |
+
</layout>
|
app/design/adminhtml/default/default/layout/index.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
</layout>
|
app/design/adminhtml/default/default/layout/main.xml
ADDED
@@ -0,0 +1,291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
</block>
|
137 |
+
<block type="core/profiler" name="profiler" as="profiler"/>
|
138 |
+
<block type="core/text_list" name="before_body_end" as="before_body_end"/>
|
139 |
+
|
140 |
+
</block>
|
141 |
+
</default>
|
142 |
+
|
143 |
+
<!--
|
144 |
+
Layout for pop up windows
|
145 |
+
-->
|
146 |
+
<popup>
|
147 |
+
<update handle="default"/>
|
148 |
+
<remove name="header"/>
|
149 |
+
<remove name="menu"/>
|
150 |
+
<reference name="root">
|
151 |
+
<action method="setTemplate"><template>popup.phtml</template></action>
|
152 |
+
</reference>
|
153 |
+
</popup>
|
154 |
+
|
155 |
+
<!--
|
156 |
+
Layout for overlay pop up windows
|
157 |
+
-->
|
158 |
+
<overlay_popup>
|
159 |
+
<update handle="popup"/>
|
160 |
+
<reference name="root">
|
161 |
+
<action method="setTemplate"><template>overlay_popup.phtml</template></action>
|
162 |
+
</reference>
|
163 |
+
</overlay_popup>
|
164 |
+
|
165 |
+
<!--
|
166 |
+
Layout for editor element
|
167 |
+
-->
|
168 |
+
<editor>
|
169 |
+
<reference name="head">
|
170 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
171 |
+
<action method="addJs"><script>mage/adminhtml/variables.js</script></action>
|
172 |
+
<action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
|
173 |
+
<action method="addJs"><script>lib/flex.js</script></action>
|
174 |
+
<action method="addJs"><script>lib/FABridge.js</script></action>
|
175 |
+
<action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
|
176 |
+
<action method="addJs"><script>mage/adminhtml/browser.js</script></action>
|
177 |
+
<action method="addJs"><script>prototype/window.js</script></action>
|
178 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
179 |
+
<action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
|
180 |
+
</reference>
|
181 |
+
</editor>
|
182 |
+
|
183 |
+
<!--
|
184 |
+
No page found
|
185 |
+
-->
|
186 |
+
|
187 |
+
<adminhtml_noroute>
|
188 |
+
<reference name="content">
|
189 |
+
<block type="core/text" name="content.noRoute">
|
190 |
+
<action method="setText" translate="text" module="adminhtml"><text><![CDATA[<h1 class="page-heading">404 Error</h1><p>Page not found.</p>]]></text></action>
|
191 |
+
</block>
|
192 |
+
</reference>
|
193 |
+
</adminhtml_noroute>
|
194 |
+
|
195 |
+
<!--
|
196 |
+
Access denied
|
197 |
+
-->
|
198 |
+
|
199 |
+
<adminhtml_denied>
|
200 |
+
<reference name="content">
|
201 |
+
<block type="adminhtml/denied" name="content.denied" template="access_denied.phtml"/>
|
202 |
+
</reference>
|
203 |
+
</adminhtml_denied>
|
204 |
+
|
205 |
+
<!--
|
206 |
+
Base preview layout (?)
|
207 |
+
-->
|
208 |
+
|
209 |
+
<preview>
|
210 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
|
211 |
+
<block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
|
212 |
+
</block>
|
213 |
+
</preview>
|
214 |
+
|
215 |
+
<newsletter_template_preview>
|
216 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview.phtml">
|
217 |
+
<block type="adminhtml/newsletter_template_preview" name="content" as="content"></block>
|
218 |
+
</block>
|
219 |
+
</newsletter_template_preview>
|
220 |
+
|
221 |
+
<newsletter_template_preview_switcher>
|
222 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/template/preview/iframeswitcher.phtml">
|
223 |
+
<block type="adminhtml/store_switcher" name="store_switcher" as="store_switcher" />
|
224 |
+
<block type="adminhtml/newsletter_template_preview_form" name="preview_form" />
|
225 |
+
</block>
|
226 |
+
</newsletter_template_preview_switcher>
|
227 |
+
|
228 |
+
<newsletter_queue_preview>
|
229 |
+
<block type="core/template" name="root" output="toHtml" template="newsletter/queue/preview.phtml">
|
230 |
+
<block type="adminhtml/newsletter_queue_preview" name="content" as="content"></block>
|
231 |
+
</block>
|
232 |
+
</newsletter_queue_preview>
|
233 |
+
|
234 |
+
<!--
|
235 |
+
Base customer alerts preview layout (?)
|
236 |
+
-->
|
237 |
+
|
238 |
+
<alert_preview>
|
239 |
+
<block type="core/template" name="root" output="toHtml" template="alert/template/preview.phtml">
|
240 |
+
<block type="adminhtml/alert_template_preview" name="content" as="content"></block>
|
241 |
+
</block>
|
242 |
+
</alert_preview>
|
243 |
+
<!--
|
244 |
+
Base preview layout
|
245 |
+
-->
|
246 |
+
|
247 |
+
<systemPreview>
|
248 |
+
<block type="core/template" name="root" output="toHtml" template="system/email/template/preview.phtml">
|
249 |
+
<block type="adminhtml/system_email_template_preview" name="content" as="content"></block>
|
250 |
+
</block>
|
251 |
+
</systemPreview>
|
252 |
+
|
253 |
+
<adminhtml_dashboard_customersmost>
|
254 |
+
<block type="core/text_list" name="root" output="toHtml">
|
255 |
+
<block type="adminhtml/dashboard_tab_customers_most" name="adminhtml.dashboard.tab.customers.most"/>
|
256 |
+
</block>
|
257 |
+
</adminhtml_dashboard_customersmost>
|
258 |
+
|
259 |
+
<adminhtml_dashboard_customersnewest>
|
260 |
+
<block type="core/text_list" name="root" output="toHtml">
|
261 |
+
<block type="adminhtml/dashboard_tab_customers_newest" name="adminhtml.dashboard.tab.customers.newest"/>
|
262 |
+
</block>
|
263 |
+
</adminhtml_dashboard_customersnewest>
|
264 |
+
|
265 |
+
<adminhtml_dashboard_productsviewed>
|
266 |
+
<block type="core/text_list" name="root" output="toHtml">
|
267 |
+
<block type="adminhtml/dashboard_tab_products_viewed" name="adminhtml.dashboard.tab.products.viewed"/>
|
268 |
+
</block>
|
269 |
+
</adminhtml_dashboard_productsviewed>
|
270 |
+
|
271 |
+
<adminhtml_index_login>
|
272 |
+
<block type="core/text_list" name="root" output="toHtml">
|
273 |
+
<block type="adminhtml/template" name="content" template="login.phtml">
|
274 |
+
<block type="core/text_list" name="form.additional.info" />
|
275 |
+
</block>
|
276 |
+
</block>
|
277 |
+
</adminhtml_index_login>
|
278 |
+
|
279 |
+
<adminhtml_index_forgotpassword>
|
280 |
+
<block type="core/text_list" name="root" output="toHtml">
|
281 |
+
<block type="adminhtml/template" name="content" template="forgotpassword.phtml">
|
282 |
+
<block type="core/text_list" name="form.additional.info" />
|
283 |
+
</block>
|
284 |
+
</block>
|
285 |
+
</adminhtml_index_forgotpassword>
|
286 |
+
<!--
|
287 |
+
Empty hanle for ajax response etc.
|
288 |
+
-->
|
289 |
+
<empty>
|
290 |
+
</empty>
|
291 |
+
</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) 2012 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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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/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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.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.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package default_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
</reference>
|
34 |
+
</default>
|
35 |
+
|
36 |
+
<adminhtml_mobile_index>
|
37 |
+
<reference name="content">
|
38 |
+
<block type="xmlconnect/adminhtml_mobile" name="applications"/>
|
39 |
+
</reference>
|
40 |
+
</adminhtml_mobile_index>
|
41 |
+
|
42 |
+
<adminhtml_mobile_history>
|
43 |
+
<reference name="content">
|
44 |
+
<block type="xmlconnect/adminhtml_history" name="history"/>
|
45 |
+
</reference>
|
46 |
+
</adminhtml_mobile_history>
|
47 |
+
|
48 |
+
<adminhtml_mobile_queue>
|
49 |
+
<reference name="content">
|
50 |
+
<block type="xmlconnect/adminhtml_queue" name="queue"/>
|
51 |
+
</reference>
|
52 |
+
</adminhtml_mobile_queue>
|
53 |
+
|
54 |
+
<adminhtml_mobile_template>
|
55 |
+
<reference name="content">
|
56 |
+
<block type="xmlconnect/adminhtml_template" name="template"/>
|
57 |
+
</reference>
|
58 |
+
</adminhtml_mobile_template>
|
59 |
+
|
60 |
+
<adminhtml_mobile_editqueue>
|
61 |
+
<reference name="content">
|
62 |
+
<block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
|
63 |
+
</reference>
|
64 |
+
</adminhtml_mobile_editqueue>
|
65 |
+
|
66 |
+
<adminhtml_mobile_queuemessage>
|
67 |
+
<reference name="content">
|
68 |
+
<block type="xmlconnect/adminhtml_queue_edit" name="queue_edit"/>
|
69 |
+
</reference>
|
70 |
+
</adminhtml_mobile_queuemessage>
|
71 |
+
|
72 |
+
<adminhtml_mobile_edittemplate>
|
73 |
+
<reference name="head">
|
74 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
75 |
+
<action method="addJs"><script>mage/adminhtml/variables.js</script></action>
|
76 |
+
<action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
|
77 |
+
<action method="addJs"><script>lib/flex.js</script></action>
|
78 |
+
<action method="addJs"><script>lib/FABridge.js</script></action>
|
79 |
+
<action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
|
80 |
+
<action method="addJs"><script>mage/adminhtml/browser.js</script></action>
|
81 |
+
<action method="addJs"><script>prototype/window.js</script></action>
|
82 |
+
<action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
|
83 |
+
<action method="addCss"><name>lib/prototype/windows/themes/magento.css</name></action>
|
84 |
+
</reference>
|
85 |
+
<reference name="content">
|
86 |
+
<block type="xmlconnect/adminhtml_template_edit" name="template_edit"/>
|
87 |
+
</reference>
|
88 |
+
</adminhtml_mobile_edittemplate>
|
89 |
+
|
90 |
+
<adminhtml_mobile_new>
|
91 |
+
<reference name="left">
|
92 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs" />
|
93 |
+
</reference>
|
94 |
+
<reference name="content">
|
95 |
+
<block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
|
96 |
+
</reference>
|
97 |
+
</adminhtml_mobile_new>
|
98 |
+
|
99 |
+
<adminhtml_mobile_edit>
|
100 |
+
<reference name="left">
|
101 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tabs" name="mobile_edit_tabs">
|
102 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_general" name="mobile_edit_tab_general"/>
|
103 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design" name="mobile_edit_tab_design">
|
104 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion" name="mobile_edit_tab_design_accordion" as="design_accordion">
|
105 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_images" name="accordion_images" />
|
106 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_themes" name="accordion_themes" />
|
107 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_accordion_tabs" name="accordion_tabs" />
|
108 |
+
|
109 |
+
<action method="addAccordionItem"><name>images</name><block>accordion_images</block></action>
|
110 |
+
<action method="addAccordionItem"><name>themes</name><block>accordion_themes</block></action>
|
111 |
+
<action method="addAccordionItem"><name>tabs</name><block>accordion_tabs</block></action>
|
112 |
+
|
113 |
+
</block>
|
114 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
|
115 |
+
</block>
|
116 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_content" name="mobile_edit_tab_content"/>
|
117 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_payment" name="mobile_edit_tab_payment"/>
|
118 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_flurryanalytics" name="mobile_edit_tab_flurryanalytics"/>
|
119 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="mobile_edit_tab_submission_history_grid"/>
|
120 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_cache" name="mobile_edit_tab_cache"/>
|
121 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_social" name="mobile_edit_tab_social" />
|
122 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_notification" name="mobile_edit_tab_notification">
|
123 |
+
<block type="core/template" name="mobile_edit_tab_notification_helper" as="app_notification_helper" template="xmlconnect/mobile/notification_helper.phtml" />
|
124 |
+
</block>
|
125 |
+
|
126 |
+
<action method="addTab"><id>general_section</id><block>mobile_edit_tab_general</block></action>
|
127 |
+
<action method="addTab"><id>design_section</id><block>mobile_edit_tab_design</block></action>
|
128 |
+
<action method="addTab"><id>content_section</id><block>mobile_edit_tab_content</block></action>
|
129 |
+
<action method="addTab"><id>payment_methods</id><block>mobile_edit_tab_payment</block></action>
|
130 |
+
<action method="addTab"><id>flurryanalytics_section</id><block>mobile_edit_tab_flurryanalytics</block></action>
|
131 |
+
<action method="addTab"><id>history_grid</id><block>mobile_edit_tab_submission_history_grid</block></action>
|
132 |
+
<action method="addTab"><id>cache_section</id><block>mobile_edit_tab_cache</block></action>
|
133 |
+
<action method="addTab"><id>social_section</id><block>mobile_edit_tab_social</block></action>
|
134 |
+
<action method="addTab"><id>notification_section</id><block>mobile_edit_tab_notification</block></action>
|
135 |
+
</block>
|
136 |
+
</reference>
|
137 |
+
<reference name="content">
|
138 |
+
<block type="xmlconnect/adminhtml_mobile_edit" name="mobile_edit_content"/>
|
139 |
+
</reference>
|
140 |
+
<reference name="head">
|
141 |
+
<action method="addCss"><name>xmlconnect/dropdown.css</name></action>
|
142 |
+
<action method="addCss"><name>xmlconnect/styles.css</name></action>
|
143 |
+
</reference>
|
144 |
+
</adminhtml_mobile_edit>
|
145 |
+
|
146 |
+
<adminhtml_mobile_submissionhistorygrid>
|
147 |
+
<remove name="root"/>
|
148 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_submission_history" name="submission_history_grid" output="toHtml"/>
|
149 |
+
</adminhtml_mobile_submissionhistorygrid>
|
150 |
+
|
151 |
+
<adminhtml_mobile_submission>
|
152 |
+
<reference name="left">
|
153 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tabs" name="mobile_submission_tabs">
|
154 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tab_container" name="mobile_submission_tab_container">
|
155 |
+
<block type="xmlconnect/adminhtml_mobile_submission_tab_container_submission" name="mobile_submission_tab_container_submission" as="edit_form"/>
|
156 |
+
<block type="xmlconnect/adminhtml_mobile_edit_tab_design_preview" name="mobile_edit_tab_design_preview" as="app_preview" />
|
157 |
+
</block>
|
158 |
+
<action method="addTab"><id>submission_section</id><block>mobile_submission_tab_container</block></action>
|
159 |
+
</block>
|
160 |
+
</reference>
|
161 |
+
<reference name="content">
|
162 |
+
<block type="xmlconnect/adminhtml_mobile_submission" name="mobile_submission_content"/>
|
163 |
+
</reference>
|
164 |
+
<reference name="head">
|
165 |
+
<action method="addCss"><name>xmlconnect/styles.css</name></action>
|
166 |
+
</reference>
|
167 |
+
</adminhtml_mobile_submission>
|
168 |
+
|
169 |
+
<adminhtml_mobile_grid>
|
170 |
+
<block type="xmlconnect/adminhtml_mobile_grid" name="mobile_grid" output="toHtml"/>
|
171 |
+
</adminhtml_mobile_grid>
|
172 |
+
|
173 |
+
<adminhtml_mobile_history_grid>
|
174 |
+
<block type="xmlconnect/adminhtml_history_grid" name="history_grid" output="toHtml"/>
|
175 |
+
</adminhtml_mobile_history_grid>
|
176 |
+
|
177 |
+
<adminhtml_mobile_template_preview>
|
178 |
+
<block type="core/template" name="root" output="toHtml" template="xmlconnect/template/preview.phtml">
|
179 |
+
<block type="xmlconnect/adminhtml_template_preview" name="content" as="content"></block>
|
180 |
+
</block>
|
181 |
+
</adminhtml_mobile_template_preview>
|
182 |
+
|
183 |
+
<adminhtml_mobile_previewhome>
|
184 |
+
<block type="core/text_list" name="root" output="toHtml">
|
185 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_content">
|
186 |
+
<action method="setTemplate"><templateType>home</templateType></action>
|
187 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
188 |
+
<action method="setActiveTab"><tab>home</tab></action>
|
189 |
+
</block>
|
190 |
+
</block>
|
191 |
+
</block>
|
192 |
+
</adminhtml_mobile_previewhome>
|
193 |
+
|
194 |
+
<adminhtml_mobile_previewhomehor>
|
195 |
+
<block type="core/text_list" name="root" output="toHtml">
|
196 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_home_hor_content">
|
197 |
+
<action method="setTemplate"><templateType>home_hor</templateType></action>
|
198 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
199 |
+
<action method="setActiveTab"><tab>home</tab></action>
|
200 |
+
</block>
|
201 |
+
</block>
|
202 |
+
</block>
|
203 |
+
</adminhtml_mobile_previewhomehor>
|
204 |
+
|
205 |
+
<adminhtml_mobile_previewcataloghor>
|
206 |
+
<block type="core/text_list" name="root" output="toHtml">
|
207 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_hor_content">
|
208 |
+
<action method="setTemplate"><templateType>catalog_hor</templateType></action>
|
209 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
210 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
211 |
+
</block>
|
212 |
+
</block>
|
213 |
+
</block>
|
214 |
+
</adminhtml_mobile_previewcataloghor>
|
215 |
+
|
216 |
+
<adminhtml_mobile_previewcatalog>
|
217 |
+
<block type="core/text_list" name="root" output="toHtml">
|
218 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_catalog_content">
|
219 |
+
<action method="setTemplate"><templateType>catalog</templateType></action>
|
220 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
221 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
222 |
+
</block>
|
223 |
+
</block>
|
224 |
+
</block>
|
225 |
+
</adminhtml_mobile_previewcatalog>
|
226 |
+
|
227 |
+
<adminhtml_mobile_previewproductinfo>
|
228 |
+
<block type="core/text_list" name="root" output="toHtml">
|
229 |
+
<block type="xmlconnect/adminhtml_mobile_preview_content" name="preview_productinfo_content">
|
230 |
+
<action method="setTemplate"><templateType>productinfo</templateType></action>
|
231 |
+
<block type="xmlconnect/adminhtml_mobile_preview_tabitems" name="preview_tab_items" as="tab_items">
|
232 |
+
<action method="setActiveTab"><tab>shop</tab></action>
|
233 |
+
</block>
|
234 |
+
</block>
|
235 |
+
</block>
|
236 |
+
</adminhtml_mobile_previewproductinfo>
|
237 |
+
</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/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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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 $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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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("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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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 $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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('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('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,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="backup-dialog" style="display: none;" id="rollback-warning">
|
2 |
+
<div class="entry-edit">
|
3 |
+
<div class="entry-edit-head">
|
4 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
|
5 |
+
</div>
|
6 |
+
<div class="content">
|
7 |
+
<div><?php echo $this->__('Any data created since the backup was made will be lost including admin users, customers and orders.')?></div>
|
8 |
+
<div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
|
9 |
+
</div>
|
10 |
+
<div class="buttons-set">
|
11 |
+
<div class="f-right">
|
12 |
+
<button type="button" class="scalable " onclick="backup.requestPassword()"><span><?php echo $this->__('OK')?></span></button>
|
13 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
</div>
|
18 |
+
|
19 |
+
<div class="backup-dialog" style="display: none;" id="backup-warning">
|
20 |
+
<div class="entry-edit">
|
21 |
+
<div class="entry-edit-head">
|
22 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Warning') ?></h4>
|
23 |
+
</div>
|
24 |
+
<div class="content">
|
25 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
26 |
+
<div><?php echo $this->__("The backup's creation process will take time.")?></div>
|
27 |
+
<div><?php echo $this->__('You will need to wait when the action ends.')?></div>
|
28 |
+
<div><?php echo $this->__('Do you really want to proceed?')?></div>
|
29 |
+
</div>
|
30 |
+
<div class="buttons-set">
|
31 |
+
<div class="f-right">
|
32 |
+
<button type="button" class="scalable " onclick="backup.requestBackupOptions()"><span><?php echo $this->__('OK')?></span></button>
|
33 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
34 |
+
</div>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
|
39 |
+
<div class="backup-dialog" style="display: none;" id="backup-options">
|
40 |
+
<div class="entry-edit">
|
41 |
+
<div class="entry-edit-head">
|
42 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Backup options') ?></h4>
|
43 |
+
</div>
|
44 |
+
<div class="content">
|
45 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
46 |
+
<div><?php echo $this->__('Please specify backup creation options')?></div>
|
47 |
+
<form action="" method="post" id="backup-form" onsubmit="return backup.submitBackup();">
|
48 |
+
<table class="form-list question" cellspacing="0">
|
49 |
+
<tr>
|
50 |
+
<td style="padding-right: 8px;"><label for="backup_name" class="nobr"><?php echo $this->__('Backup Name')?></label></td>
|
51 |
+
<td>
|
52 |
+
<input type="text" name="backup_name" id="backup_name" class="validate-alphanum-with-spaces validate-length maximum-length-50" style="width: 343px" maxlength="50" />
|
53 |
+
<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>
|
54 |
+
</td>
|
55 |
+
</tr>
|
56 |
+
<tr>
|
57 |
+
<td> </td>
|
58 |
+
<td class="maintenance-checkbox-container">
|
59 |
+
<input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/>
|
60 |
+
<label for="backup_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while backup creation')?></label>
|
61 |
+
</td>
|
62 |
+
</tr>
|
63 |
+
<tr id="exclude-media-checkbox-container" style="display: none;">
|
64 |
+
<td> </td>
|
65 |
+
<td>
|
66 |
+
<input type="checkbox" name="exclude_media" value="1" id="exclude_media"/>
|
67 |
+
<label for="exclude_media"><?php echo $this->__('Exclude media folder from backup')?></label>
|
68 |
+
</td>
|
69 |
+
</tr>
|
70 |
+
</table>
|
71 |
+
</form>
|
72 |
+
</div>
|
73 |
+
<div class="buttons-set">
|
74 |
+
<div class="f-right">
|
75 |
+
<button type="button" class="scalable " onclick="backup.submitBackup()"><span><?php echo $this->__('OK')?></span></button>
|
76 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
77 |
+
</div>
|
78 |
+
</div>
|
79 |
+
</div>
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div class="backup-dialog" style="display: none;" id="rollback-request-password">
|
83 |
+
<div class="entry-edit">
|
84 |
+
<div class="entry-edit-head">
|
85 |
+
<h4 class="head-edit-form fieldset-legend"><?php echo $this->__('Please enter password') ?></h4>
|
86 |
+
</div>
|
87 |
+
<div class="content">
|
88 |
+
<div class="backup-messages" style="display: none;"><ul class="messages"></ul></div>
|
89 |
+
<div><?php echo $this->__('Please enter password to confirm rollback.')?></div>
|
90 |
+
<div><?php echo $this->__('This action cannot be undone.')?></div>
|
91 |
+
<div class="question"><?php echo $this->__('Are you sure you want to proceed?')?></div>
|
92 |
+
<form action="" method="post" id="rollback-form" onsubmit="return backup.submitRollback();">
|
93 |
+
<div class="password-box-container">
|
94 |
+
<table class="form-list" cellspacing="0">
|
95 |
+
<tr>
|
96 |
+
<td style="padding-right: 8px;"><label for="password" class="nobr"><?php echo $this->__('User Password')?> <span class="required">*</span></label></td>
|
97 |
+
<td><input type="password" name="password" id="password" class="required-entry"></td>
|
98 |
+
</tr>
|
99 |
+
<tr>
|
100 |
+
<td> </td>
|
101 |
+
<td class="maintenance-checkbox-container">
|
102 |
+
<input type="checkbox" name="maintenance_mode" value="1" id="rollback_maintenance_mode"/>
|
103 |
+
<label for="rollback_maintenance_mode"><?php echo $this->__('Put store on the maintenance mode while rollback processing')?></label>
|
104 |
+
</td>
|
105 |
+
</tr>
|
106 |
+
<tr id="use-ftp-checkbox-row" style="display: none;">
|
107 |
+
<td> </td>
|
108 |
+
<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>
|
109 |
+
</tr>
|
110 |
+
</table>
|
111 |
+
</div>
|
112 |
+
<div class="entry-edit" id="ftp-credentials-container" style="display: none;">
|
113 |
+
<div class="entry-edit-head">
|
114 |
+
<h4 class=""><?php echo $this->__('FTP credentials')?></h4>
|
115 |
+
</div>
|
116 |
+
<fieldset>
|
117 |
+
<table class="form-list" cellspacing="0">
|
118 |
+
<tr>
|
119 |
+
<td class="label"><label for="ftp_host"><?php echo $this->__('FTP Host')?> <span class="required">*</span></label></td>
|
120 |
+
<td class="value"><input type="text" name="ftp_host" id="ftp_host"></td>
|
121 |
+
</tr>
|
122 |
+
<tr>
|
123 |
+
<td class="label"><label for="ftp_user"><?php echo $this->__('FTP Login')?> <span class="required">*</span></label></td>
|
124 |
+
<td class="value"><input type="text" name="ftp_user" id="ftp_user"></td>
|
125 |
+
</tr>
|
126 |
+
<tr>
|
127 |
+
<td class="label"><label for="ftp_pass"><?php echo $this->__('FTP Password')?> <span class="required">*</span></label></td>
|
128 |
+
<td class="value"><input type="password" name="ftp_pass" id="ftp_pass"></td>
|
129 |
+
</tr>
|
130 |
+
<tr>
|
131 |
+
<td class="label"><label for="ftp_path"><?php echo $this->__('Magento root directory')?></label></td>
|
132 |
+
<td class="value"><input type="text" name="ftp_path" id="ftp_path"></td>
|
133 |
+
</tr>
|
134 |
+
</table>
|
135 |
+
</fieldset>
|
136 |
+
</div>
|
137 |
+
</form>
|
138 |
+
</div>
|
139 |
+
<div class="buttons-set">
|
140 |
+
<div class="f-right">
|
141 |
+
<button type="button" class="scalable " onclick="backup.submitRollback()"><span><?php echo $this->__('OK')?></span></button>
|
142 |
+
<button type="button" class="scalable " onclick="backup.hidePopups()"><span><?php echo $this->__('Cancel')?></span></button>
|
143 |
+
</div>
|
144 |
+
</div>
|
145 |
+
</div>
|
146 |
+
</div>
|
147 |
+
|
148 |
+
<div id="popup-window-mask" style="display: none;"></div>
|
149 |
+
|
150 |
+
<?php
|
151 |
+
$helper = Mage::helper('backup');
|
152 |
+
$rollbackUrl = $this->getUrl('*/*/rollback');
|
153 |
+
$backupUrl = $this->getUrl('*/*/create');
|
154 |
+
?>
|
155 |
+
|
156 |
+
<script type="text/javascript">
|
157 |
+
//<![CDATA[
|
158 |
+
document.observe('dom:loaded', function () {
|
159 |
+
backup = new AdminBackup();
|
160 |
+
backup.rollbackUrl = '<?php echo $helper->jsQuoteEscape($rollbackUrl);?>';
|
161 |
+
backup.backupUrl = '<?php echo $helper->jsQuoteEscape($backupUrl);?>';
|
162 |
+
});
|
163 |
+
//]]>
|
164 |
+
</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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
</script>
|
75 |
+
|
76 |
+
<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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 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 Mage::helper('bundle')->__('Store View Title') ?> <span class="required">*</span></th>' +
|
43 |
+
<?php endif; ?>
|
44 |
+
'<th class="opt-type"><?php echo 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 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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 Mage::helper('catalog')->__('Name') ?></th>' +
|
34 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
35 |
+
' <th class="type-price price-type-box"><?php echo Mage::helper('catalog')->__('Price') ?></th>' +
|
36 |
+
' <th class="type-type price-type-box"><?php echo Mage::helper('bundle')->__('Price Type') ?></th>' +
|
37 |
+
<?php endif; ?>
|
38 |
+
' <th class="type-price"><?php echo 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 Mage::helper('bundle')->__('Position') ?></th>' +
|
41 |
+
' <th style="width:1px"><?php echo 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-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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
68 |
+
<div>
|
69 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
70 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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_incl_tax'], $tax['amount_incl_tax']); ?></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_incl_tax'], $tax['amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?>
|
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'], $tax['amount']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
|
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'], $tax['row_amount']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></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->getBaseWeeeTaxAppliedRowAmount(),
|
365 |
+
$_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
66 |
+
<div>
|
67 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
68 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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_incl_tax'], $tax['amount_incl_tax']); ?></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_incl_tax'], $tax['amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?>
|
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'], $tax['amount']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
|
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'], $tax['row_amount']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></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->getBaseWeeeTaxAppliedRowAmount(),
|
299 |
+
$_item->getRowTotal()-$_item->getDiscountAmount()+$_item->getTaxAmount()+$_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->htmlEscape($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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
67 |
+
<div>
|
68 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
69 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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_incl_tax'], $tax['amount_incl_tax']); ?></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_incl_tax'], $tax['amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?>
|
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'], $tax['amount']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
|
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'], $tax['row_amount']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></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->getBaseWeeeTaxAppliedRowAmount(),
|
353 |
+
$_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
66 |
+
<div>
|
67 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
68 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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_incl_tax'], $tax['amount_incl_tax']); ?></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_incl_tax'], $tax['amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?>
|
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'], $tax['amount']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
|
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'], $tax['row_amount']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></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->getBaseWeeeTaxAppliedRowAmount(),
|
298 |
+
$_item->getRowTotal()+$_item->getTaxAmount()-$_item->getDiscountAmount()+$_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->htmlEscape($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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_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->htmlEscape($_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_incl_tax'], $tax['amount_incl_tax']); ?></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_incl_tax'], $tax['amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?>
|
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'], $tax['amount']); ?></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+$_item->getBaseWeeeTaxAppliedAmount(), $_incl+$_item->getWeeeTaxAppliedAmount()); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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_incl_tax'], $tax['row_amount_incl_tax']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?>
|
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'], $tax['row_amount']); ?></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+$_item->getBaseWeeeTaxAppliedRowAmount(), $_incl+$_item->getWeeeTaxAppliedRowAmount()); ?></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->getBaseWeeeTaxAppliedRowAmount()),
|
368 |
+
max(0, $_item->getRowTotal() - $_item->getDiscountAmount() + $_item->getTaxAmount() + $_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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
62 |
+
<div>
|
63 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
64 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_item->getName()) ?></h5>
|
63 |
+
<div>
|
64 |
+
<strong><?php echo $this->helper('sales')->__('SKU') ?>:</strong>
|
65 |
+
<?php echo implode('<br />', Mage::helper('catalog')->splitSku($this->htmlEscape($_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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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 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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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,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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
|
35 |
+
<?php if ($_element->getType()=='hidden'): ?>
|
36 |
+
<tr>
|
37 |
+
<td class="hidden" colspan="100"><?php echo trim($_element->getElementHtml()) ?></td>
|
38 |
+
</tr>
|
39 |
+
<?php else: ?>
|
40 |
+
<tr>
|
41 |
+
<td class="label"><?php echo trim($this->getElementLabelHtml()) ?></td>
|
42 |
+
<td class="value">
|
43 |
+
<?php echo trim($this->getElementHtml()) ?>
|
44 |
+
<?php if ($_element->getNote()) : ?>
|
45 |
+
<p class="note"><?php echo $_element->getNote() ?></p>
|
46 |
+
<?php endif; ?>
|
47 |
+
</td>
|
48 |
+
<td class="scope-label"><span class="nobr"><?php echo $this->getScopeLabel() ?></span></td>
|
49 |
+
<?php if ($this->canDisplayUseDefault()): ?>
|
50 |
+
<td class="value use-default">
|
51 |
+
<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="toggleValueElements(this, this.parentNode.parentNode)" value="<?php echo $this->getAttributeCode() ?>"/>
|
52 |
+
<label for="<?php echo $_element->getHtmlId() ?>_default" class="normal"><?php echo $this->__('Use Default Value') ?></label>
|
53 |
+
</td>
|
54 |
+
<?php endif; ?>
|
55 |
+
</tr>
|
56 |
+
<?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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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,223 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
* @see Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
|
32 |
+
*/
|
33 |
+
?>
|
34 |
+
<div>
|
35 |
+
<ul class="messages">
|
36 |
+
<li class="notice-msg">
|
37 |
+
<ul>
|
38 |
+
<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>
|
39 |
+
</ul>
|
40 |
+
</li>
|
41 |
+
</ul>
|
42 |
+
</div>
|
43 |
+
|
44 |
+
<div class="entity-edit">
|
45 |
+
<div class="entry-edit-head">
|
46 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Titles (Size, Color, etc.)') ?></h4>
|
47 |
+
</div>
|
48 |
+
<div class="box">
|
49 |
+
<div class="hor-scroll">
|
50 |
+
<table class="dynamic-grid" cellspacing="0" id="attribute-labels-table">
|
51 |
+
<tr>
|
52 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
53 |
+
<th><?php echo $_store->getName() ?></th>
|
54 |
+
<?php endforeach; ?>
|
55 |
+
</tr>
|
56 |
+
<tr>
|
57 |
+
<?php $_labels = $this->getLabelValues() ?>
|
58 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
59 |
+
<td>
|
60 |
+
<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->htmlEscape($_labels[$_store->getId()]) ?>"<?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/>
|
61 |
+
</td>
|
62 |
+
<?php endforeach; ?>
|
63 |
+
</tr>
|
64 |
+
</table>
|
65 |
+
</div>
|
66 |
+
</div>
|
67 |
+
</div>
|
68 |
+
<br/>
|
69 |
+
<div class="entity-edit" id="matage-options-panel">
|
70 |
+
<div class="entry-edit-head">
|
71 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('catalog')->__('Manage Options (values of your attribute)') ?></h4>
|
72 |
+
</div>
|
73 |
+
<div class="box">
|
74 |
+
<div class="hor-scroll">
|
75 |
+
<table class="dynamic-grid" cellspacing="0" cellpadding="0">
|
76 |
+
<tr id="attribute-options-table">
|
77 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
78 |
+
<th><?php echo $_store->getName() ?></th>
|
79 |
+
<?php endforeach; ?>
|
80 |
+
<th><?php echo Mage::helper('catalog')->__('Position') ?></th>
|
81 |
+
<th class="nobr a-center"><?php echo Mage::helper('catalog')->__('Is Default') ?></th>
|
82 |
+
<th>
|
83 |
+
<?php if (!$this->getReadOnly()):?>
|
84 |
+
<?php echo $this->getAddNewButtonHtml() ?>
|
85 |
+
<?php endif;?>
|
86 |
+
</th>
|
87 |
+
</tr>
|
88 |
+
<tr class="no-display template" id="row-template">
|
89 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
90 |
+
<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>
|
91 |
+
<?php endforeach; ?>
|
92 |
+
<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>
|
93 |
+
<td><input class="input-radio" type="radio" name="default[]" value="{{id}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/></td>
|
94 |
+
<td class="a-left">
|
95 |
+
<input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />
|
96 |
+
<?php if (!$this->getReadOnly()):?>
|
97 |
+
<?php echo $this->getDeleteButtonHtml() ?>
|
98 |
+
<?php endif;?>
|
99 |
+
</td>
|
100 |
+
</tr>
|
101 |
+
</table>
|
102 |
+
</div>
|
103 |
+
<input type="hidden" id="option-count-check" value="" />
|
104 |
+
</div>
|
105 |
+
</div>
|
106 |
+
<script type="text/javascript">
|
107 |
+
//<![CDATA[
|
108 |
+
var optionDefaultInputType = 'radio';
|
109 |
+
|
110 |
+
// IE removes quotes from element.innerHTML whenever it thinks they're not needed, which breaks html.
|
111 |
+
var templateText =
|
112 |
+
'<tr class="option-row">'+
|
113 |
+
<?php foreach ($this->getStores() as $_store): ?>
|
114 |
+
'<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>'+
|
115 |
+
<?php endforeach; ?>
|
116 |
+
'<td><input class="input-text" type="text" name="option[order][{{id}}]" value="{{sort_order}}" <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
|
117 |
+
'<td class="a-center"><input class="input-radio" type="{{intype}}" name="default[]" value="{{id}}" {{checked}} <?php if ($this->getReadOnly()):?> disabled="disabled"<?php endif;?>/><\/td>'+
|
118 |
+
'<td class="a-left" id="delete_button_container_{{id}}">'+
|
119 |
+
'<input type="hidden" class="delete-flag" name="option[delete][{{id}}]" value="" />'+
|
120 |
+
<?php if (!$this->getReadOnly()):?>
|
121 |
+
'<?php echo $this->getDeleteButtonHtml() ?>'+
|
122 |
+
<?php endif;?>
|
123 |
+
'<\/td>'+
|
124 |
+
'<\/tr>';
|
125 |
+
|
126 |
+
var attributeOption = {
|
127 |
+
table : $('attribute-options-table'),
|
128 |
+
templateSyntax : /(^|.|\r|\n)({{(\w+)}})/,
|
129 |
+
templateText : templateText,
|
130 |
+
itemCount : 0,
|
131 |
+
totalItems : 0,
|
132 |
+
isReadOnly: <?php echo (int)$this->getReadOnly(); ?>,
|
133 |
+
add : function(data) {
|
134 |
+
this.template = new Template(this.templateText, this.templateSyntax);
|
135 |
+
var isNewOption = false;
|
136 |
+
if(!data.id){
|
137 |
+
data = {};
|
138 |
+
data.id = 'option_'+this.itemCount;
|
139 |
+
isNewOption = true;
|
140 |
+
}
|
141 |
+
if (!data.intype)
|
142 |
+
data.intype = optionDefaultInputType;
|
143 |
+
Element.insert(this.table, {after: this.template.evaluate(data)});
|
144 |
+
if (isNewOption && !this.isReadOnly) {
|
145 |
+
this.enableNewOptionDeleteButton(data.id);
|
146 |
+
}
|
147 |
+
this.bindRemoveButtons();
|
148 |
+
this.itemCount++;
|
149 |
+
this.totalItems++;
|
150 |
+
this.updateItemsCountField();
|
151 |
+
},
|
152 |
+
remove : function(event){
|
153 |
+
var element = $(Event.findElement(event, 'tr')); // !!! Button already
|
154 |
+
// have table parent in safari
|
155 |
+
// Safari workaround
|
156 |
+
element.ancestors().each(function(parentItem){
|
157 |
+
if (parentItem.hasClassName('option-row')) {
|
158 |
+
element = parentItem;
|
159 |
+
throw $break;
|
160 |
+
} else if (parentItem.hasClassName('box')) {
|
161 |
+
throw $break;
|
162 |
+
}
|
163 |
+
});
|
164 |
+
|
165 |
+
|
166 |
+
if(element){
|
167 |
+
var elementFlags = element.getElementsByClassName('delete-flag');
|
168 |
+
if(elementFlags[0]){
|
169 |
+
elementFlags[0].value=1;
|
170 |
+
}
|
171 |
+
|
172 |
+
element.addClassName('no-display');
|
173 |
+
element.addClassName('template');
|
174 |
+
element.hide();
|
175 |
+
this.totalItems--;
|
176 |
+
this.updateItemsCountField();
|
177 |
+
}
|
178 |
+
},
|
179 |
+
updateItemsCountField: function() {
|
180 |
+
if (this.totalItems > 0) {
|
181 |
+
$('option-count-check').value = '1';
|
182 |
+
} else {
|
183 |
+
$('option-count-check').value = '';
|
184 |
+
}
|
185 |
+
},
|
186 |
+
enableNewOptionDeleteButton: function(id) {
|
187 |
+
$$('#delete_button_container_' + id + ' button').each(function(button) {
|
188 |
+
button.enable();
|
189 |
+
button.removeClassName('disabled');
|
190 |
+
});
|
191 |
+
},
|
192 |
+
bindRemoveButtons : function(){
|
193 |
+
var buttons = $$('.delete-option');
|
194 |
+
for(var i=0;i<buttons.length;i++){
|
195 |
+
if(!$(buttons[i]).binded){
|
196 |
+
$(buttons[i]).binded = true;
|
197 |
+
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
198 |
+
}
|
199 |
+
}
|
200 |
+
}
|
201 |
+
|
202 |
+
}
|
203 |
+
if($('row-template')){
|
204 |
+
$('row-template').remove();
|
205 |
+
}
|
206 |
+
attributeOption.bindRemoveButtons();
|
207 |
+
|
208 |
+
if($('add_new_option_button')){
|
209 |
+
Event.observe('add_new_option_button', 'click', attributeOption.add.bind(attributeOption));
|
210 |
+
}
|
211 |
+
Validation.addAllThese([
|
212 |
+
['required-option', '<?php echo Mage::helper('catalog')->__('Failed') ?>', function(v) {
|
213 |
+
return !Validation.get('IsEmpty').test(v);
|
214 |
+
}]]);
|
215 |
+
Validation.addAllThese([
|
216 |
+
['required-options-count', '<?php echo Mage::helper('catalog')->__('Options is required') ?>', function(v) {
|
217 |
+
return !Validation.get('IsEmpty').test(v);
|
218 |
+
}]]);
|
219 |
+
<?php foreach ($this->getOptionValues() as $_value): ?>
|
220 |
+
attributeOption.add(<?php echo $_value->toJson() ?>);
|
221 |
+
<?php endforeach; ?>
|
222 |
+
//]]>
|
223 |
+
</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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($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('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('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('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('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 Mage::helper('catalog')->__('Title') ?> <span class="required">*</span></th>'+
|
41 |
+
'<th class="opt-type"><?php echo 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 Mage::helper('catalog')->__('Sort Order') ?></th>'+
|
44 |
+
'<th class="a-right"><?php echo $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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('catalog')->__('Price') ?></th>' +
|
33 |
+
'<th class="type-type"><?php echo Mage::helper('catalog')->__('Price Type') ?></th>' +
|
34 |
+
<?php endif; ?>
|
35 |
+
'<th class="last"><?php echo 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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('catalog')->__('Title') ?> <span class="required">*</span></th>'+
|
35 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
36 |
+
'<th class="type-price"><?php echo Mage::helper('catalog')->__('Price') ?></th>' +
|
37 |
+
'<th class="type-type"><?php echo Mage::helper('catalog')->__('Price Type') ?></th>' +
|
38 |
+
<?php endif; ?>
|
39 |
+
'<th class="type-sku"><?php echo Mage::helper('catalog')->__('SKU') ?></th>'+
|
40 |
+
'<th class="type-order"><?php echo 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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('catalog')->__('Price') ?></th>' +
|
33 |
+
'<th class="type-type"><?php echo Mage::helper('catalog')->__('Price Type') ?></th>' +
|
34 |
+
<?php endif; ?>
|
35 |
+
'<th class="type-sku"><?php echo Mage::helper('catalog')->__('SKU') ?></th>'+
|
36 |
+
'<th class="type-last last"><?php echo 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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 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 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,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php $_htmlId = $this->getElement()->getHtmlId() ?>
|
2 |
+
<?php $_htmlClass = $this->getElement()->getClass() ?>
|
3 |
+
<?php $_htmlName = $this->getElement()->getName() ?>
|
4 |
+
<?php $_readonly = $this->getElement()->getReadonly() ?>
|
5 |
+
<?php $_multiWebsite= $this->isMultiWebsites(); ?>
|
6 |
+
<tr>
|
7 |
+
<td class="label"><?php echo $this->getElement()->getLabel() ?></td>
|
8 |
+
</tr>
|
9 |
+
<tr>
|
10 |
+
<td colspan="10" class="grid tier">
|
11 |
+
<table cellspacing="0" class="data border" id="tiers_table">
|
12 |
+
<?php if ($_multiWebsite): ?>
|
13 |
+
<col width="135" />
|
14 |
+
<?php endif; ?>
|
15 |
+
<col width="120" />
|
16 |
+
<col width="60" />
|
17 |
+
<col width="140"/>
|
18 |
+
<col width="60" />
|
19 |
+
<thead>
|
20 |
+
|
21 |
+
<tr class="headings">
|
22 |
+
<th <?php if (!$_multiWebsite): ?>style="display:none"<?php endif; ?>><?php echo Mage::helper('sales')->__('Website') ?></th>
|
23 |
+
<th><?php echo Mage::helper('catalog')->__('Customer Group') ?></th>
|
24 |
+
<th><?php echo Mage::helper('catalog')->__('Qty') ?></th>
|
25 |
+
<!-- Added -->
|
26 |
+
<?php
|
27 |
+
if(Mage::getStoreConfig("mypackage/settings/wds_tier_price"))
|
28 |
+
{
|
29 |
+
?>
|
30 |
+
<th><?php echo Mage::helper('catalog')->__('From Date') ?></th>
|
31 |
+
<th><?php echo Mage::helper('catalog')->__('To Date') ?></th>
|
32 |
+
<?php
|
33 |
+
}
|
34 |
+
?>
|
35 |
+
<!-- -/- -->
|
36 |
+
<th><?php echo $this->getPriceColumnHeader(Mage::helper('catalog')->__('Price')) ?></th>
|
37 |
+
<th class="last"><?php echo Mage::helper('catalog')->__('Action') ?></th>
|
38 |
+
</tr>
|
39 |
+
|
40 |
+
<tr id="<?php echo $_htmlId ?>_add_template" class="template no-display">
|
41 |
+
<!-- Website list -->
|
42 |
+
<td <?php if (!$_multiWebsite): ?>style="display:none"<?php endif; ?>>
|
43 |
+
<select disabled="no-template" class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[__index__][website_id]" id="tier_price_row___index___website">
|
44 |
+
<?php foreach ($this->getWebsites() as $_websiteId => $_info): ?>
|
45 |
+
<option value="<?php echo $_websiteId ?>"><?php echo $_info['name'] ?><?php if (!empty($_info['currency'])): ?> [<?php echo $_info['currency'] ?>]<?php endif; ?></option>
|
46 |
+
<?php endforeach ?>
|
47 |
+
</select>
|
48 |
+
</td>
|
49 |
+
<!-- -/- -->
|
50 |
+
|
51 |
+
<!-- Customer Group -->
|
52 |
+
<td>
|
53 |
+
<select disabled="no-template" class="<?php echo $_htmlClass ?> custgroup required-entry" name="<?php echo $_htmlName ?>[__index__][cust_group]" id="tier_price_row___index___cust_group">
|
54 |
+
<?php foreach ($this->getCustomerGroups() as $_groupId=>$_groupName): ?>
|
55 |
+
<option value="<?php echo $_groupId ?>"><?php echo htmlspecialchars($_groupName) ?></option>
|
56 |
+
<?php endforeach ?>
|
57 |
+
</select>
|
58 |
+
</td>
|
59 |
+
<!-- -/- -->
|
60 |
+
|
61 |
+
<!-- Qty -->
|
62 |
+
<td class="nobr">
|
63 |
+
<input disabled="no-template" class="<?php echo $_htmlClass ?> qty required-entry validate-greater-than-zero" type="text" name="<?php echo $_htmlName ?>[__index__][price_qty]" value="'#{qty}'" /> <small class="nobr"><?php echo Mage::helper('catalog')->__('and above')?></small>
|
64 |
+
</td>
|
65 |
+
<!-- -/- -->
|
66 |
+
|
67 |
+
<!-- Added -->
|
68 |
+
<?php
|
69 |
+
if(Mage::getStoreConfig("mypackage/settings/wds_tier_price"))
|
70 |
+
{
|
71 |
+
?>
|
72 |
+
<td class="nobr">
|
73 |
+
<input type="text" disabled="no-template" class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[__index__][from_date]" id="tier_price_row___index___from_date" style="width:68px">
|
74 |
+
<img src="<?php echo $this->getSkinUrl('images/grid-cal.gif'); ?>" id="tier_price_row___index___from_date_trig" />
|
75 |
+
<script type="text/javascript">
|
76 |
+
Calendar.setup({
|
77 |
+
inputField : 'tier_price_row___index___from_date',
|
78 |
+
//ifFormat : '%Y-%m-%e',
|
79 |
+
ifFormat : '%m/%e/%Y',
|
80 |
+
button : 'tier_price_row___index___from_date_trig',
|
81 |
+
align : 'Bl',
|
82 |
+
singleClick : true
|
83 |
+
});
|
84 |
+
</script>
|
85 |
+
</td>
|
86 |
+
<td class="nobr">
|
87 |
+
<input type="text" disabled="no-template" class="<?php echo $_htmlClass ?> required-entry" name="<?php echo $_htmlName ?>[__index__][to_date]" id="tier_price_row___index___to_date" style="width:68px">
|
88 |
+
<img src="<?php echo $this->getSkinUrl('images/grid-cal.gif'); ?>" id="tier_price_row___index___to_date_trig" />
|
89 |
+
<script type="text/javascript">
|
90 |
+
Calendar.setup({
|
91 |
+
inputField : 'tier_price_row___index___to_date',
|
92 |
+
//ifFormat : '%Y-%m-%e',
|
93 |
+
ifFormat : '%m/%e/%Y',
|
94 |
+
button : 'tier_price_row___index___to_date_trig',
|
95 |
+
align : 'Bl',
|
96 |
+
singleClick : true
|
97 |
+
});
|
98 |
+
</script>
|
99 |
+
</td>
|
100 |
+
<!-- -/- -->
|
101 |
+
<?php
|
102 |
+
}
|
103 |
+
?>
|
104 |
+
<!-- Price -->
|
105 |
+
<td>
|
106 |
+
<input disabled="no-template" class="<?php echo $_htmlClass ?> required-entry validate-greater-than-zero" type="text" name="<?php echo $_htmlName ?>[__index__][price]" value="'#{price}'" />
|
107 |
+
</td>
|
108 |
+
<!-- -/- -->
|
109 |
+
|
110 |
+
<!-- Button -->
|
111 |
+
<td class="last"><input type="hidden" name="<?php echo $_htmlName ?>[__index__][delete]" class="delete" disabled="no-template" value="" /><button title="Delete Tier" class="scalable delete icon-btn delete-product-option" onclick="tierPriceControl.deleteItem(event);return false"><span>Delete</span></button></td>
|
112 |
+
<!-- -/- -->
|
113 |
+
</tr>
|
114 |
+
</thead>
|
115 |
+
<tfoot>
|
116 |
+
<tr>
|
117 |
+
<td <?php if (!$_multiWebsite): ?>style="display:none"<?php endif; ?>></td>
|
118 |
+
<td colspan="7" class="a-right"><?php echo $this->getAddButtonHtml() ?></td>
|
119 |
+
</tr>
|
120 |
+
</tfoot>
|
121 |
+
<tbody id="<?php echo $_htmlId ?>_container">
|
122 |
+
</tbody>
|
123 |
+
</table>
|
124 |
+
|
125 |
+
<script type="text/javascript">
|
126 |
+
|
127 |
+
//<![CDATA[
|
128 |
+
var tierPriceControl = {
|
129 |
+
template : new Template('<tr>' + $('<?php echo $_htmlId ?>_add_template').innerHTML.replace(/__index__/g, '#{index}').replace(/ disabled="?no-template"?/g, '').replace(/ disabled/g, '').replace(/="'([^']*)'"/g, '="$1"') + '</tr>'),
|
130 |
+
itemsCount : 0,
|
131 |
+
deleteButton: false,
|
132 |
+
addItem : function () {
|
133 |
+
<?php if ($_readonly): ?>
|
134 |
+
if (arguments.length < 4) {
|
135 |
+
return;
|
136 |
+
}
|
137 |
+
<?php endif; ?>
|
138 |
+
|
139 |
+
var data = {};
|
140 |
+
data.website_id = 0;
|
141 |
+
data.group = '<?php echo $this->getDefaultCustomerGroup() ?>';
|
142 |
+
data.qty = '';
|
143 |
+
data.price = '';
|
144 |
+
data.index = this.itemsCount++;
|
145 |
+
if(arguments.length == 6) {
|
146 |
+
data.website_id = arguments[0];
|
147 |
+
data.group = arguments[1];
|
148 |
+
data.qty = arguments[2];
|
149 |
+
data.price = arguments[3];
|
150 |
+
data.from_date = arguments[4];
|
151 |
+
data.to_date = arguments[5];
|
152 |
+
}
|
153 |
+
Element.insert($('<?php echo $_htmlId ?>_container'), {'bottom':this.template.evaluate(data)});
|
154 |
+
$('tier_price_row_'+data.index+'_cust_group').value = data.group;
|
155 |
+
$('tier_price_row_'+data.index+'_website').value = data.website_id;
|
156 |
+
|
157 |
+
|
158 |
+
if (typeof(data.from_date) != "undefined")
|
159 |
+
{
|
160 |
+
var fdate=data.from_date.split("-");
|
161 |
+
$('tier_price_row_'+data.index+'_from_date').value = fdate[1]+"/"+fdate[2]+"/"+fdate[0];
|
162 |
+
}
|
163 |
+
else
|
164 |
+
$('tier_price_row_'+data.index+'_from_date').value = '';
|
165 |
+
if (typeof(data.to_date) != "undefined")
|
166 |
+
{
|
167 |
+
var tdate=data.to_date.split("-");
|
168 |
+
$('tier_price_row_'+data.index+'_to_date').value = tdate[1]+"/"+tdate[2]+"/"+tdate[0];
|
169 |
+
}
|
170 |
+
else
|
171 |
+
$('tier_price_row_'+data.index+'_to_date').value = '';
|
172 |
+
<?php if ($_readonly): ?>
|
173 |
+
$('<?php echo $_htmlId ?>_container').select('input', 'select')
|
174 |
+
.each(this.disableElement);
|
175 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button')
|
176 |
+
.each(this.disableElement);
|
177 |
+
<?php endif; ?>
|
178 |
+
},
|
179 |
+
disableElement: function(elem) {
|
180 |
+
elem.disabled = true
|
181 |
+
elem.addClassName('disabled');
|
182 |
+
},
|
183 |
+
deleteItem : function(event) {
|
184 |
+
var tr = Event.findElement(event, 'tr');
|
185 |
+
if (tr) {
|
186 |
+
Element.select(tr, '.delete').each(function(elem){elem.value='1'});
|
187 |
+
Element.select(tr, ['input', 'select']).each(function(elem){elem.hide()});
|
188 |
+
Element.hide(tr);
|
189 |
+
Element.addClassName(tr, 'no-display template');
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
<?php
|
194 |
+
|
195 |
+
|
196 |
+
foreach ($this->getValues() as $_item): ?>
|
197 |
+
|
198 |
+
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 $_item['from_date'] ?>','<?php echo $_item['to_date'] ?>');
|
199 |
+
<?php endforeach; ?>
|
200 |
+
<?php if ($_readonly): ?>
|
201 |
+
$('<?php echo $_htmlId ?>_container').up('table').select('button')
|
202 |
+
.each(tierPriceControl.disableElement);
|
203 |
+
<?php endif; ?>
|
204 |
+
//]]>
|
205 |
+
</script>
|
206 |
+
</td>
|
207 |
+
</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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->htmlEscape($_block->getImagesJson()) ?>" />
|
120 |
+
<input type="hidden" id="<?php echo $_block->getHtmlId() ?>_save_image" name="<?php echo $_block->getElement()->getName() ?>[values]" value="<?php echo $_block->htmlEscape($_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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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,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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 catalogWysiwygEditor = {
|
31 |
+
overlayShowEffectOptions : null,
|
32 |
+
overlayHideEffectOptions : null,
|
33 |
+
open : function(editorUrl, elementId) {
|
34 |
+
if (editorUrl && elementId) {
|
35 |
+
new Ajax.Request(editorUrl, {
|
36 |
+
parameters: {
|
37 |
+
element_id: elementId+'_editor',
|
38 |
+
store_id: '<?php echo $this->getStoreId() ?>'
|
39 |
+
},
|
40 |
+
onSuccess: function(transport) {
|
41 |
+
try {
|
42 |
+
this.openDialogWindow(transport.responseText, elementId);
|
43 |
+
} catch(e) {
|
44 |
+
alert(e.message);
|
45 |
+
}
|
46 |
+
}.bind(this)
|
47 |
+
});
|
48 |
+
}
|
49 |
+
},
|
50 |
+
openDialogWindow : function(content, elementId) {
|
51 |
+
this.overlayShowEffectOptions = Windows.overlayShowEffectOptions;
|
52 |
+
this.overlayHideEffectOptions = Windows.overlayHideEffectOptions;
|
53 |
+
Windows.overlayShowEffectOptions = {duration:0};
|
54 |
+
Windows.overlayHideEffectOptions = {duration:0};
|
55 |
+
|
56 |
+
Dialog.confirm(content, {
|
57 |
+
draggable:true,
|
58 |
+
resizable:true,
|
59 |
+
closable:true,
|
60 |
+
className:"magento",
|
61 |
+
windowClassName:"popup-window",
|
62 |
+
title:'WYSIWYG Editor',
|
63 |
+
width:950,
|
64 |
+
height:555,
|
65 |
+
zIndex:1000,
|
66 |
+
recenterAuto:false,
|
67 |
+
hideEffect:Element.hide,
|
68 |
+
showEffect:Element.show,
|
69 |
+
id:"catalog-wysiwyg-editor",
|
70 |
+
buttonClass:"form-button",
|
71 |
+
okLabel:"Submit",
|
72 |
+
ok: this.okDialogWindow.bind(this),
|
73 |
+
cancel: this.closeDialogWindow.bind(this),
|
74 |
+
onClose: this.closeDialogWindow.bind(this),
|
75 |
+
firedElementId: elementId
|
76 |
+
});
|
77 |
+
|
78 |
+
content.evalScripts.bind(content).defer();
|
79 |
+
|
80 |
+
$(elementId+'_editor').value = $(elementId).value;
|
81 |
+
},
|
82 |
+
okDialogWindow : function(dialogWindow) {
|
83 |
+
if (dialogWindow.options.firedElementId) {
|
84 |
+
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
|
85 |
+
wysiwygObj.turnOff();
|
86 |
+
if (tinyMCE.get(wysiwygObj.id)) {
|
87 |
+
$(dialogWindow.options.firedElementId).value = tinyMCE.get(wysiwygObj.id).getContent();
|
88 |
+
} else {
|
89 |
+
if ($(dialogWindow.options.firedElementId+'_editor')) {
|
90 |
+
$(dialogWindow.options.firedElementId).value = $(dialogWindow.options.firedElementId+'_editor').value;
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
this.closeDialogWindow(dialogWindow);
|
95 |
+
},
|
96 |
+
closeDialogWindow : function(dialogWindow) {
|
97 |
+
// remove form validation event after closing editor to prevent errors during save main form
|
98 |
+
if (typeof varienGlobalEvents != undefined && editorFormValidationHandler) {
|
99 |
+
varienGlobalEvents.removeEventHandler('formSubmit', editorFormValidationHandler);
|
100 |
+
}
|
101 |
+
|
102 |
+
//IE fix - blocked form fields after closing
|
103 |
+
$(dialogWindow.options.firedElementId).focus();
|
104 |
+
|
105 |
+
//destroy the instance of editor
|
106 |
+
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
|
107 |
+
if (tinyMCE.get(wysiwygObj.id)) {
|
108 |
+
tinyMCE.execCommand('mceRemoveControl', true, wysiwygObj.id);
|
109 |
+
}
|
110 |
+
|
111 |
+
dialogWindow.close();
|
112 |
+
Windows.overlayShowEffectOptions = this.overlayShowEffectOptions;
|
113 |
+
Windows.overlayHideEffectOptions = this.overlayHideEffectOptions;
|
114 |
+
}
|
115 |
+
};
|
116 |
+
|
117 |
+
//]]>
|
118 |
+
</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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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->getSkinUrl('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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()->getGroupedHtml() ?></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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 $this->__('VAT Number is Invalid') ?>';
|
46 |
+
try {
|
47 |
+
response = response.responseText;
|
48 |
+
if (response == 1) {
|
49 |
+
result = '<?php echo $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,635 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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="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="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('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('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="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="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('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('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 addslashes(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_/, '') + '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 |
+
this.addItemObservers(newItem);
|
246 |
+
this.setActiveItem(newItem);
|
247 |
+
this.bindCountryRegionRelation(newForm.id);
|
248 |
+
|
249 |
+
if( $('_item'+this.itemCount+'firstname').value ) this.syncFormData($('_item'+this.itemCount+'firstname'));
|
250 |
+
if( $('_item'+this.itemCount+'lastname').value ) this.syncFormData($('_item'+this.itemCount+'lastname'));
|
251 |
+
}
|
252 |
+
this.reloadItemList();
|
253 |
+
//Event.stop(event);
|
254 |
+
},
|
255 |
+
|
256 |
+
prepareTemplate : function(template){
|
257 |
+
return template
|
258 |
+
.replace(/<?php echo $_templatePrefix ?>/g, '_item'+this.itemCount)
|
259 |
+
.replace(/_counted="undefined"/g, '')
|
260 |
+
.replace(/"select_button_"/g, 'select_button_' + this.itemCount)
|
261 |
+
;
|
262 |
+
},
|
263 |
+
|
264 |
+
canCreateNewAddress : function(){
|
265 |
+
return true;
|
266 |
+
},
|
267 |
+
|
268 |
+
itemMouseOver : function(event){
|
269 |
+
var element = Event.findElement(event, 'li');
|
270 |
+
Element.addClassName(element, 'over');
|
271 |
+
},
|
272 |
+
|
273 |
+
itemMouseOut : function(event){
|
274 |
+
var element = Event.findElement(event, 'li');
|
275 |
+
Element.removeClassName(element, 'over');
|
276 |
+
},
|
277 |
+
|
278 |
+
itemMouseClick : function(event){
|
279 |
+
if (!Event) {
|
280 |
+
return;
|
281 |
+
}
|
282 |
+
var element = Event.findElement(event, 'li'); // find top item
|
283 |
+
var elem = Event.element(event); // exact element clicked
|
284 |
+
|
285 |
+
if ( ((elem.tagName.toUpperCase() == 'A') && elem.id.match(/^delete_button([0-9]*?)$/)) || ((elem.tagName.toUpperCase() == 'IMG') && elem.id.match(/^delete_button([0-9]*?)$/)) ) {
|
286 |
+
this.deleteAddress(element);
|
287 |
+
Event.stop(event);
|
288 |
+
}
|
289 |
+
else if(elem.tagName.toUpperCase() == 'INPUT') {
|
290 |
+
this.setAddressAsDefault(element);
|
291 |
+
}
|
292 |
+
else {
|
293 |
+
this.setActiveItem(element);
|
294 |
+
}
|
295 |
+
},
|
296 |
+
|
297 |
+
setAddressAsDefault : function(){
|
298 |
+
for(var i=0; i<this.itemList.length;i++){
|
299 |
+
if(this.itemList[i].id){
|
300 |
+
var inputs = $(this.itemList[i].id).getElementsBySelector('input');
|
301 |
+
var isActive = false;
|
302 |
+
for(var j in inputs){
|
303 |
+
if(inputs[j].type=='radio' && inputs[j].checked && this.itemList.length > 1){
|
304 |
+
isActive = true;
|
305 |
+
}
|
306 |
+
}
|
307 |
+
this.toggleDeleteButton(this.itemList[i], !isActive);
|
308 |
+
}
|
309 |
+
}
|
310 |
+
},
|
311 |
+
|
312 |
+
toggleDeleteButton : function(item, flag){
|
313 |
+
if(flag){
|
314 |
+
$(item).select('.btn-remove-address').each(Element.show);
|
315 |
+
$(item.formBlock).getElementsBySelector('.delete-address').each(Element.show);
|
316 |
+
} else {
|
317 |
+
$(item).select('.btn-remove-address').each(Element.hide);
|
318 |
+
$(item.formBlock).getElementsBySelector('.delete-address').each(Element.hide);
|
319 |
+
}
|
320 |
+
},
|
321 |
+
|
322 |
+
setActiveItem : function(item){
|
323 |
+
if(this.activeItem){
|
324 |
+
Element.removeClassName(this.activeItem, 'on');
|
325 |
+
if($('form_'+this.activeItem.id)){
|
326 |
+
Element.hide($('form_'+this.activeItem.id));
|
327 |
+
}
|
328 |
+
}
|
329 |
+
Element.addClassName(item, 'on');
|
330 |
+
|
331 |
+
if(item && $('form_'+item.id)){
|
332 |
+
$('form_'+item.id).changeRelation = item;
|
333 |
+
$('form_'+item.id).addressItem = item;
|
334 |
+
Element.show($('form_'+item.id));
|
335 |
+
//new Effect.Appear($('form_'+item.id), {duration : 0.3 });
|
336 |
+
//$('form_'+item.id).focus();
|
337 |
+
this.addFieldChangeObserver($('form_'+item.id));
|
338 |
+
var regionIdElement = $('_item' + item.id.replace(/address_item_/, '') + 'region_id');
|
339 |
+
var regionElement = $('_item' + item.id.replace(/address_item_/, '') + 'region');
|
340 |
+
this.countryEl = $('_item' + item.id.replace(/address_item_/, '') + 'country_id');
|
341 |
+
if (regionIdElement && regionElement) {
|
342 |
+
var actualId = regionElement.id;
|
343 |
+
if (('select' == regionIdElement.tagName.toLowerCase()) && regionIdElement) {
|
344 |
+
actualId = regionIdElement.id;
|
345 |
+
}
|
346 |
+
this._checkRegionRequired([regionIdElement, regionElement], actualId);
|
347 |
+
}
|
348 |
+
}
|
349 |
+
|
350 |
+
this.activeItem = item;
|
351 |
+
},
|
352 |
+
|
353 |
+
getFormContainerFields : function(container){
|
354 |
+
var fields = $$( '#' + container.id + ' input','#' + container.id + ' select','#' + container.id + ' textarea');
|
355 |
+
return fields;
|
356 |
+
},
|
357 |
+
|
358 |
+
addFieldChangeObserver : function(container){
|
359 |
+
var fields = this.getFormContainerFields(container);
|
360 |
+
for (var i = 0; i < fields.length; i++) {
|
361 |
+
Event.observe(fields[i], 'change', this.onItemFormFieldChange);
|
362 |
+
}
|
363 |
+
|
364 |
+
},
|
365 |
+
|
366 |
+
syncFormData : function(evt){
|
367 |
+
var container = false;
|
368 |
+
|
369 |
+
if(!evt.addClassName) {
|
370 |
+
var elm = Event.element(evt);
|
371 |
+
} else {
|
372 |
+
var elm = evt;
|
373 |
+
}
|
374 |
+
|
375 |
+
elm = $(elm);
|
376 |
+
while(elm.tagName.toUpperCase() != 'BODY') {
|
377 |
+
if(elm.addressItem){
|
378 |
+
container = elm;
|
379 |
+
}
|
380 |
+
elm = $(elm.parentNode);
|
381 |
+
}
|
382 |
+
|
383 |
+
if(container){
|
384 |
+
var data = {};
|
385 |
+
var fields = this.getFormContainerFields(container);
|
386 |
+
for(var i=0; i < fields.size(); i++){
|
387 |
+
if(fields[i].id){
|
388 |
+
var id = fields[i].id.replace(/^(_item)?[0-9]+/, '');
|
389 |
+
var id = id.replace(/^(id)?[0-9]+/, '');
|
390 |
+
var value = fields[i].getValue();
|
391 |
+
var tagName = fields[i].tagName.toLowerCase();
|
392 |
+
if (tagName == 'select') {
|
393 |
+
if (fields[i].multiple) {
|
394 |
+
var values = $([]);
|
395 |
+
var l = fields[i].options.length;
|
396 |
+
for (j=0; j<l; j++) {
|
397 |
+
var o = fields[i].options[j];
|
398 |
+
if (o.selected === true) {
|
399 |
+
values[values.length] = o.text.escapeHTML();
|
400 |
+
}
|
401 |
+
}
|
402 |
+
data[id] = values.join(', ');
|
403 |
+
} else {
|
404 |
+
data[id] = fields[i].options[fields[i].selectedIndex].text.escapeHTML();
|
405 |
+
}
|
406 |
+
} else if (value !== null) {
|
407 |
+
data[id] = value.escapeHTML();
|
408 |
+
}
|
409 |
+
}
|
410 |
+
}
|
411 |
+
|
412 |
+
// Set name of state to 'region' if list of states are in 'region_id' selectbox
|
413 |
+
if (!data['region'] && data['region_id']) {
|
414 |
+
data['region'] = data['region_id'];
|
415 |
+
delete data['region_id'];
|
416 |
+
}
|
417 |
+
|
418 |
+
// Set data to html
|
419 |
+
var itemContainer = container.addressItem.getElementsBySelector('address');
|
420 |
+
if(itemContainer[0]){
|
421 |
+
var html = this.itemContentTemplate.evaluate(data);
|
422 |
+
html = html.replace(new RegExp('(<br\\s*/?>\\s*){2,}','img'),'<br/>');
|
423 |
+
html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}\\s*<br\\s*/?>','ig'),'<br/>');
|
424 |
+
html = html.replace(new RegExp('<br\\s*/?>(\\s*,){1,}(.*)<br\\s*/?>','ig'),'<br/>$2<br/>');
|
425 |
+
html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){1,}<br\\s*/?>','ig'),'<br/>$1<br/>');
|
426 |
+
html = html.replace(new RegExp('<br\\s*/?>(.*?)(,\\s*){2,}(.*?)<br\\s*/?>','ig'),'<br/>$1, $3<br/>');
|
427 |
+
html = html.replace(new RegExp('t:\\s*<br\\s*/?>','ig'),'');
|
428 |
+
html = html.replace(new RegExp('f:\\s*<br\\s*/?>','ig'),'');
|
429 |
+
html = html.replace(new RegExp('vat:\\s*$','ig'),'');
|
430 |
+
itemContainer[0].innerHTML = html;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
},
|
434 |
+
|
435 |
+
deleteAddress : function(item){
|
436 |
+
if(confirm('<?php echo Mage::helper('customer')->__('Are you sure you want to delete this address?') ?>')){
|
437 |
+
if (!item.isNewAddress && $('deleted_'+item.id)){
|
438 |
+
$('deleted_'+item.id).value = 1;
|
439 |
+
if (item.formBlock){
|
440 |
+
item.formBlock.addClassName('ignore-validation');
|
441 |
+
}
|
442 |
+
}
|
443 |
+
if (this.activeItem == item && item != this.itemList[0]) this.setActiveItem(this.itemList[0]);
|
444 |
+
if (item == this.itemList[0] && (this.itemList[1])) this.setActiveItem(this.itemList[1]);
|
445 |
+
|
446 |
+
this.formContainer.removeChild(item.formBlock);
|
447 |
+
this.itemContainer.removeChild(item);
|
448 |
+
this.reloadItemList();
|
449 |
+
this.setAddressAsDefault();
|
450 |
+
}
|
451 |
+
},
|
452 |
+
|
453 |
+
cancelAdd : function(button){
|
454 |
+
if(confirm('<?php echo addslashes(Mage::helper('customer')->__('Are you sure you want to cancel adding of this address?')) ?>')){
|
455 |
+
var item = $(this.baseItemId + button.id.replace(new RegExp('[a-z_]*',''), ''));
|
456 |
+
|
457 |
+
if( item.isNewAddress){
|
458 |
+
if ( this.activeItem == item ) this.formContainer.removeChild(item.formBlock);
|
459 |
+
}
|
460 |
+
if ( this.activeItem == item && item != this.itemList[0] ) this.setActiveItem(this.itemList[0]);
|
461 |
+
if ( item == this.itemList[0] && (this.itemList[1]) ) this.setActiveItem(this.itemList[1]);
|
462 |
+
|
463 |
+
this.itemContainer.removeChild(item);
|
464 |
+
|
465 |
+
this.reloadItemList();
|
466 |
+
this.setAddressAsDefault();
|
467 |
+
}
|
468 |
+
},
|
469 |
+
|
470 |
+
bindCountryRegionRelation : function(parentId){
|
471 |
+
//alert('OK');
|
472 |
+
if(parentId){
|
473 |
+
var countryElements = $(parentId).getElementsByClassName('countries');
|
474 |
+
}
|
475 |
+
else{
|
476 |
+
var countryElements = $$('.countries');
|
477 |
+
}
|
478 |
+
|
479 |
+
for(var i=0;i<=countryElements.length;i++){
|
480 |
+
if(countryElements[i]){
|
481 |
+
if(!countryElements[i].bindRegions || !countryElements[i].parentBindId || countryElements[i].parentBindId!=parentId){
|
482 |
+
//if(!countryElements[i].bindRegions || !countryElements[i].parentBindId){
|
483 |
+
Event.observe(countryElements[i], 'change', this.reloadRegionField.bind(this));
|
484 |
+
|
485 |
+
countryElements[i].bindRegions = true;
|
486 |
+
countryElements[i].parentBindId = parentId;
|
487 |
+
}
|
488 |
+
}
|
489 |
+
}
|
490 |
+
},
|
491 |
+
|
492 |
+
reloadRegionField : function(event){
|
493 |
+
var countryElement = Event.element(event);
|
494 |
+
if(countryElement.id){
|
495 |
+
var regionElement = $(countryElement.id.replace(/country_id/, 'region'));
|
496 |
+
if(regionElement){
|
497 |
+
this.regionElement = regionElement;
|
498 |
+
this.countryEl = countryElement;
|
499 |
+
if (countryElement.value) {
|
500 |
+
var url = this.regionsUrl + 'parent/' + countryElement.value;
|
501 |
+
this.loader.load(url, {}, this.refreshRegionField.bind(this));
|
502 |
+
} else {
|
503 |
+
// Set empty text field in region
|
504 |
+
this.refreshRegionField('[]');
|
505 |
+
}
|
506 |
+
}
|
507 |
+
// set Zip optional/required
|
508 |
+
varienGlobalEvents.fireEvent("address_country_changed", countryElement);
|
509 |
+
}
|
510 |
+
},
|
511 |
+
|
512 |
+
// serverResponse is either string with server response, or object to force some paricular data setting
|
513 |
+
refreshRegionField : function(serverResponse){
|
514 |
+
if (!serverResponse)
|
515 |
+
return;
|
516 |
+
var data = eval('(' + serverResponse + ')');
|
517 |
+
|
518 |
+
var row = Element.previous(this.regionElement.parentNode,0);
|
519 |
+
var reqLabel = Element.select(row, '.required');
|
520 |
+
|
521 |
+
// Set regions and refresh controls
|
522 |
+
// We use a pair of 'region' and 'region_id' to properly submit data:
|
523 |
+
// manually entered text goes in 'region' and selected option id goes in 'region_id'
|
524 |
+
var regionHtmlName = this.regionElement.name;
|
525 |
+
var regionIdHtmlName = regionHtmlName.replace(/region/, 'region_id');
|
526 |
+
var regionHtmlId = this.regionElement.id;
|
527 |
+
var regionIdHtmlId = regionHtmlId.replace(/region/, 'region_id');
|
528 |
+
var newInputId = null; // id of imput that was added to a page - filled below
|
529 |
+
|
530 |
+
if (data.length) {
|
531 |
+
// Create visible selectbox 'region_id' and hidden 'region'
|
532 |
+
var html = '<select name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '" class="required-entry select" title="' + this.regionElement.title + '">';
|
533 |
+
html+= '<option value=""></option>';
|
534 |
+
for (var i in data){
|
535 |
+
if(data[i].label) {
|
536 |
+
html+= '<option value="'+data[i].value+'"';
|
537 |
+
if(this.regionElement.value && (this.regionElement.value == data[i].value || this.regionElement.value == data[i].label)){
|
538 |
+
html+= ' selected="selected"';
|
539 |
+
}
|
540 |
+
html+='>'+data[i].label+'</option>';
|
541 |
+
}
|
542 |
+
}
|
543 |
+
html += '</select>';
|
544 |
+
|
545 |
+
html += '<input type="hidden" name="' + regionHtmlName + '" id="' + regionHtmlId + '"/>';
|
546 |
+
|
547 |
+
if (reqLabel) {
|
548 |
+
reqLabel.each(function(item){Element.show(item)});
|
549 |
+
}
|
550 |
+
|
551 |
+
newInputId = regionIdHtmlId;
|
552 |
+
} else {
|
553 |
+
// Create visible text input 'region' and hidden 'region_id'
|
554 |
+
var html = '<input type="text" name="' + regionHtmlName + '" id="' + regionHtmlId + '" class="input-text" title="' + this.regionElement.title + '" />';
|
555 |
+
html += '<input type="hidden" name="' + regionIdHtmlName + '" id="' + regionIdHtmlId + '"/>';
|
556 |
+
|
557 |
+
if (reqLabel) {
|
558 |
+
reqLabel.each(function(item){Element.hide(item)});
|
559 |
+
}
|
560 |
+
|
561 |
+
newInputId = regionHtmlId;
|
562 |
+
}
|
563 |
+
|
564 |
+
var parentNode = this.regionElement.parentNode;
|
565 |
+
parentNode.innerHTML = html;
|
566 |
+
this.regionElement = $(regionHtmlId);
|
567 |
+
|
568 |
+
// Updating in address info
|
569 |
+
var newInput = $(newInputId);
|
570 |
+
Event.observe(newInput, 'change', this.onItemFormFieldChange); // Restore observing to update address info
|
571 |
+
this.syncFormData(newInput); // Update address info now
|
572 |
+
var activeElementId = regionHtmlId;
|
573 |
+
if (('select' == $(regionIdHtmlId).tagName.toLowerCase()) && regionIdHtmlId) {
|
574 |
+
activeElementId = regionIdHtmlId;
|
575 |
+
}
|
576 |
+
this._checkRegionRequired([$(regionHtmlId), $(regionIdHtmlId)], activeElementId);
|
577 |
+
},
|
578 |
+
|
579 |
+
_checkRegionRequired: function(elements, activeElementId)
|
580 |
+
{
|
581 |
+
var label, wildCard;
|
582 |
+
var that = this;
|
583 |
+
var regionRequired = this.requiredStateForCountries.indexOf(this.countryEl.value) >= 0;
|
584 |
+
|
585 |
+
elements.each(function(currentElement) {
|
586 |
+
Validation.reset(currentElement);
|
587 |
+
label = $$('label[for="' + currentElement.id + '"]')[0];
|
588 |
+
if (label) {
|
589 |
+
wildCard = label.down('em') || label.down('span.required');
|
590 |
+
if (!that.showAllRegions) {
|
591 |
+
if (regionRequired) {
|
592 |
+
label.up('tr').show();
|
593 |
+
} else {
|
594 |
+
label.up('tr').hide();
|
595 |
+
}
|
596 |
+
}
|
597 |
+
}
|
598 |
+
|
599 |
+
if (label && wildCard) {
|
600 |
+
if (!regionRequired) {
|
601 |
+
wildCard.hide();
|
602 |
+
} else {
|
603 |
+
wildCard.show();
|
604 |
+
}
|
605 |
+
}
|
606 |
+
|
607 |
+
if (!regionRequired) {
|
608 |
+
if (currentElement.hasClassName('required-entry')) {
|
609 |
+
currentElement.removeClassName('required-entry');
|
610 |
+
}
|
611 |
+
if ('select' == currentElement.tagName.toLowerCase() &&
|
612 |
+
currentElement.hasClassName('validate-select')
|
613 |
+
) {
|
614 |
+
currentElement.removeClassName('validate-select');
|
615 |
+
}
|
616 |
+
} else if (activeElementId == currentElement.id) {
|
617 |
+
if (!currentElement.hasClassName('required-entry')) {
|
618 |
+
currentElement.addClassName('required-entry');
|
619 |
+
}
|
620 |
+
if ('select' == currentElement.tagName.toLowerCase() &&
|
621 |
+
!currentElement.hasClassName('validate-select')
|
622 |
+
) {
|
623 |
+
currentElement.addClassName('validate-select');
|
624 |
+
}
|
625 |
+
}
|
626 |
+
});
|
627 |
+
}
|
628 |
+
}
|
629 |
+
|
630 |
+
customerAddresses = new addressesModel();
|
631 |
+
//]]>
|
632 |
+
</script>
|
633 |
+
</td>
|
634 |
+
</tr>
|
635 |
+
</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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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('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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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 |
+
//<![CDATA[
|
31 |
+
function changeDiagramsPeriod(periodObj) {
|
32 |
+
periodParam = periodObj.value ? 'period/' + periodObj.value + '/' : '';
|
33 |
+
<?php foreach ($this->getChild('diagrams')->getTabsIds() as $tabId): ?>
|
34 |
+
ajaxBlockParam = 'block/tab_<?php echo $tabId ?>/';
|
35 |
+
ajaxBlockUrl = '<?php echo $this->getUrl('*/*/ajaxBlock', array('_current' => true, 'block' => '', 'period' => '')) ?>' + ajaxBlockParam + periodParam;
|
36 |
+
new Ajax.Request(ajaxBlockUrl, {
|
37 |
+
parameters: {isAjax: 'true', form_key: FORM_KEY},
|
38 |
+
onSuccess: function(transport) {
|
39 |
+
tabContentElementId = '<?php echo $this->getChild('diagrams')->getId() ?>_<?php echo $tabId ?>_content';
|
40 |
+
try {
|
41 |
+
if (transport.responseText.isJSON()) {
|
42 |
+
var response = transport.responseText.evalJSON()
|
43 |
+
if (response.error) {
|
44 |
+
alert(response.message);
|
45 |
+
}
|
46 |
+
if(response.ajaxExpired && response.ajaxRedirect) {
|
47 |
+
setLocation(response.ajaxRedirect);
|
48 |
+
}
|
49 |
+
} else {
|
50 |
+
$(tabContentElementId).update(transport.responseText);
|
51 |
+
}
|
52 |
+
}
|
53 |
+
catch (e) {
|
54 |
+
$(tabContentElementId).update(transport.responseText);
|
55 |
+
}
|
56 |
+
}
|
57 |
+
});
|
58 |
+
<?php endforeach; ?>
|
59 |
+
ajaxBlockUrl = '<?php echo $this->getUrl('*/*/ajaxBlock', array('_current' => true, 'block' => 'totals', 'period' => '')) ?>' + periodParam;
|
60 |
+
new Ajax.Request(ajaxBlockUrl, {
|
61 |
+
parameters: {isAjax: 'true', form_key: FORM_KEY},
|
62 |
+
onSuccess: function(transport) {
|
63 |
+
tabContentElementId = 'dashboard_diagram_totals';
|
64 |
+
try {
|
65 |
+
if (transport.responseText.isJSON()) {
|
66 |
+
var response = transport.responseText.evalJSON()
|
67 |
+
if (response.error) {
|
68 |
+
alert(response.message);
|
69 |
+
}
|
70 |
+
if(response.ajaxExpired && response.ajaxRedirect) {
|
71 |
+
setLocation(response.ajaxRedirect);
|
72 |
+
}
|
73 |
+
} else {
|
74 |
+
$(tabContentElementId).replace(transport.responseText);
|
75 |
+
}
|
76 |
+
}
|
77 |
+
catch (e) {
|
78 |
+
$(tabContentElementId).replace(transport.responseText);
|
79 |
+
}
|
80 |
+
}
|
81 |
+
});
|
82 |
+
}
|
83 |
+
|
84 |
+
function toggleCal(id) {
|
85 |
+
$('dashboard_'+id+'_cal_div').toggle();
|
86 |
+
$('dashboard_'+id+'_range_div').toggle();
|
87 |
+
}
|
88 |
+
//]]>
|
89 |
+
</script>
|
90 |
+
<?php endif; ?>
|
91 |
+
<div class="content-header">
|
92 |
+
<table cellspacing="0">
|
93 |
+
<tr>
|
94 |
+
<td><h3 class="head-dashboard"><?php echo $this->__('Dashboard') ?></h3></td>
|
95 |
+
</tr>
|
96 |
+
</table>
|
97 |
+
</div>
|
98 |
+
<div class="dashboard-container">
|
99 |
+
<?php echo $this->getChildHtml('store_switcher') ?>
|
100 |
+
<table cellspacing="25" width="100%">
|
101 |
+
<tr>
|
102 |
+
<td><?php echo $this->getChildHtml('sales') ?>
|
103 |
+
<div class="entry-edit">
|
104 |
+
<div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Orders') ?></h4></div>
|
105 |
+
<fieldset class="np"><?php echo $this->getChildHtml('lastOrders'); ?></fieldset>
|
106 |
+
</div>
|
107 |
+
<div class="entry-edit">
|
108 |
+
<div class="entry-edit-head"><h4><?php echo $this->__('Last 5 Search Terms') ?></h4></div>
|
109 |
+
<fieldset class="np"><?php echo $this->getChildHtml('lastSearches'); ?></fieldset>
|
110 |
+
</div>
|
111 |
+
<div class="entry-edit">
|
112 |
+
<div class="entry-edit-head"><h4><?php echo $this->__('Top 5 Search Terms') ?></h4></div>
|
113 |
+
<fieldset class="np"><?php echo $this->getChildHtml('topSearches'); ?></fieldset>
|
114 |
+
</div>
|
115 |
+
</td>
|
116 |
+
<td>
|
117 |
+
<div class="entry-edit" style="border:1px solid #ccc;">
|
118 |
+
<?php echo $this->getChildHtml('diagrams') ?>
|
119 |
+
<?php if (is_array($this->getChild('diagrams')->getTabsIds())) : ?>
|
120 |
+
<div id="diagram_tab_content"></div>
|
121 |
+
<?php endif; ?>
|
122 |
+
<div style="margin:20px;">
|
123 |
+
<?php echo $this->getChildHtml('totals') ?>
|
124 |
+
</div>
|
125 |
+
<div style="margin:20px;">
|
126 |
+
<?php echo $this->getChildHtml('grids') ?>
|
127 |
+
<div id="grid_tab_content"></div>
|
128 |
+
</div>
|
129 |
+
</div>
|
130 |
+
</td>
|
131 |
+
</tr>
|
132 |
+
</table>
|
133 |
+
</div>
|
app/design/adminhtml/default/default/template/dashboard/salebar.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if( sizeof($this->getTotals()) > 0 ): ?>
|
28 |
+
<?php foreach( $this->getTotals() as $_total ): ?>
|
29 |
+
<div class="entry-edit">
|
30 |
+
<div class="entry-edit-head"><h4><?php echo $_total['label'] ?></h4></div>
|
31 |
+
<fieldset class="a-center bold">
|
32 |
+
<span class="nowrap" style="font-size:18px;"><?php echo $_total['value'] ?><span style="font-size:14px; color:#686868;"><?php echo $_total['decimals'] ?></span></span>
|
33 |
+
</fieldset>
|
34 |
+
</div>
|
35 |
+
<?php endforeach; ?>
|
36 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/dashboard/searches.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<div style="padding:5px;">
|
28 |
+
<?php if(count($this->getCollection()->getItems()) > 0): ?>
|
29 |
+
<?php foreach ($this->getCollection()->getItems() as $item): ?>
|
30 |
+
<span><?php echo $item->getQueryText() ?></span><br />
|
31 |
+
<?php endforeach; ?>
|
32 |
+
<?php else: ?>
|
33 |
+
<div class="a-center"><?php echo $this->__('No search keywords.') ?></div>
|
34 |
+
<?php endif; ?>
|
35 |
+
</div>
|
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<p class="switcher"><label for="store_switcher"><?php echo $this->__('View Statistics For:') ?></label>
|
28 |
+
<?php echo $this->getHintHtml() ?>
|
29 |
+
<select name="store_switcher" id="store_switcher" class="left-col-block" onchange="return switchStore(this);">
|
30 |
+
<option value=""><?php echo $this->__('All Websites') ?></option>
|
31 |
+
<?php foreach ($this->getWebsiteCollection() as $_website): ?>
|
32 |
+
<?php $showWebsite=false; ?>
|
33 |
+
<?php foreach ($this->getGroupCollection($_website) as $_group): ?>
|
34 |
+
<?php $showGroup=false; ?>
|
35 |
+
<?php foreach ($this->getStoreCollection($_group) as $_store): ?>
|
36 |
+
<?php if ($showWebsite == false): ?>
|
37 |
+
<?php $showWebsite = true; ?>
|
38 |
+
<option website="true" value="<?php echo $_website->getId() ?>"<?php if($this->getRequest()->getParam('website') == $_website->getId()): ?> selected="selected"<?php endif; ?>><?php echo $_website->getName() ?></option>
|
39 |
+
<?php endif; ?>
|
40 |
+
<?php if ($showGroup == false): ?>
|
41 |
+
<?php $showGroup = true; ?>
|
42 |
+
<!--optgroup label=" <?php echo $_group->getName() ?>"-->
|
43 |
+
<option group="true" value="<?php echo $_group->getId() ?>"<?php if($this->getRequest()->getParam('group') == $_group->getId()): ?> selected="selected"<?php endif; ?>> <?php echo $_group->getName() ?></option>
|
44 |
+
<?php endif; ?>
|
45 |
+
<option value="<?php echo $_store->getId() ?>"<?php if($this->getStoreId() == $_store->getId()): ?> selected="selected"<?php endif; ?>> <?php echo $_store->getName() ?></option>
|
46 |
+
<?php endforeach; ?>
|
47 |
+
<?php if ($showGroup): ?>
|
48 |
+
<!--</optgroup>-->
|
49 |
+
<?php endif; ?>
|
50 |
+
<?php endforeach; ?>
|
51 |
+
<?php endforeach; ?>
|
52 |
+
</select>
|
53 |
+
</p>
|
54 |
+
<script type="text/javascript">
|
55 |
+
//<![CDATA[
|
56 |
+
function switchStore(obj){
|
57 |
+
if (obj.options[obj.selectedIndex].getAttribute('website') == 'true') {
|
58 |
+
var selectionType = 'website';
|
59 |
+
} else if (obj.options[obj.selectedIndex].getAttribute('group') == 'true') {
|
60 |
+
var selectionType = 'group';
|
61 |
+
} else {
|
62 |
+
var selectionType = 'store';
|
63 |
+
}
|
64 |
+
var storeParam = obj.value ? selectionType + '/' + obj.value + '/' : '';
|
65 |
+
if(obj.switchParams){
|
66 |
+
storeParam+= obj.switchParams;
|
67 |
+
}
|
68 |
+
if ($('diagram_tab_orders_content').style.display != 'none') {
|
69 |
+
var select = $('order_orders_period');
|
70 |
+
} else if ($('diagram_tab_amounts_content').style.display != 'none') {
|
71 |
+
var select = $('order_amounts_period');
|
72 |
+
}
|
73 |
+
var periodParam = select.value ? 'period/'+select.value + '/' : '';
|
74 |
+
setLocation('<?php echo $this->getSwitchUrl() ?>'+storeParam+periodParam);
|
75 |
+
}
|
76 |
+
//]]>
|
77 |
+
</script>
|
app/design/adminhtml/default/default/template/dashboard/totalbar.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php if( sizeof($this->getTotals()) > 0 ): ?>
|
28 |
+
<div class="box" id="dashboard_diagram_totals">
|
29 |
+
<div class="entry-edit">
|
30 |
+
<table cellspacing="0" width="100%">
|
31 |
+
<tr>
|
32 |
+
<?php foreach( $this->getTotals() as $_total ): ?>
|
33 |
+
<td class="a-center bold">
|
34 |
+
<span><?php echo $_total['label'] ?></span><br />
|
35 |
+
<span class="nowrap" style="font-size:18px; color:#EA7601;"><?php echo $_total['value'] ?><span style="font-size:14px; color:#DE8946;"><?php echo $_total['decimals'] ?></span></span>
|
36 |
+
</td>
|
37 |
+
<?php endforeach; ?>
|
38 |
+
</tr>
|
39 |
+
</table>
|
40 |
+
</div>
|
41 |
+
</div>
|
42 |
+
<?php endif; ?>
|
app/design/adminhtml/default/default/template/directory/js/optional_zip_countries.phtml
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
<?php
|
29 |
+
/**
|
30 |
+
* JS block for including Countries with Optional Zip
|
31 |
+
*
|
32 |
+
* @see Mage_Adminhtml_Block_Template
|
33 |
+
*/
|
34 |
+
?>
|
35 |
+
<script type="text/javascript">
|
36 |
+
//<![CDATA[
|
37 |
+
optionalZipCountries = <?php echo $this->helper('directory')->getCountriesWithOptionalZip(true) ?>;
|
38 |
+
|
39 |
+
function onAddressCountryChanged (countryElement) {
|
40 |
+
var zipElementId = countryElement.id.replace(/country_id/, 'postcode');
|
41 |
+
|
42 |
+
// Ajax-request and normal content load compatibility
|
43 |
+
if ($(zipElementId) != undefined) {
|
44 |
+
setPostcodeOptional($(zipElementId), countryElement.value);
|
45 |
+
} else {
|
46 |
+
Event.observe(window, "load", function () {
|
47 |
+
setPostcodeOptional($(zipElementId), countryElement.value);
|
48 |
+
});
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
function setPostcodeOptional(zipElement, country) {
|
53 |
+
if (optionalZipCountries.indexOf(country) != -1) {
|
54 |
+
while (zipElement.hasClassName('required-entry')) {
|
55 |
+
zipElement.removeClassName('required-entry');
|
56 |
+
}
|
57 |
+
zipElement.up(1).down('label > span.required').hide();
|
58 |
+
} else {
|
59 |
+
zipElement.addClassName('required-entry');
|
60 |
+
zipElement.up(1).down('label > span.required').show();
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
varienGlobalEvents.attachEventHandler("address_country_changed", onAddressCountryChanged);
|
65 |
+
//]]>
|
66 |
+
</script>
|
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php /* @var $this Mage_Downloadable_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Downloadable */ ?>
|
28 |
+
<?php $_linksPurchasedSeparately = $this->getLinksPurchasedSeparately(); ?>
|
29 |
+
<?php $_skipSaleableCheck = Mage::helper('catalog/product')->getSkipSaleableCheck(); ?>
|
30 |
+
<?php if (($this->getProduct()->isSaleable() || $_skipSaleableCheck) && $this->hasLinks()):?>
|
31 |
+
|
32 |
+
<div id="catalog_product_composite_configure_fields_downloadable" class="<?php echo $this->getIsLastFieldset() ? 'last-fieldset' : '' ?>">
|
33 |
+
<h4><?php echo Mage::helper('catalog')->__('Downloadable Information') ?></h4>
|
34 |
+
<div class="product-options">
|
35 |
+
<dl>
|
36 |
+
<?php $_links = $this->getLinks(); ?>
|
37 |
+
<?php $_isRequired = $this->getLinkSelectionRequired(); ?>
|
38 |
+
<dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo $this->getLinksTitle() ?></label></dt>
|
39 |
+
<dd class="last">
|
40 |
+
<ul id="downloadable-links-list" class="options-list">
|
41 |
+
<?php foreach ($_links as $_link): ?>
|
42 |
+
<li>
|
43 |
+
<?php if ($_linksPurchasedSeparately): ?>
|
44 |
+
<input type="checkbox" class="checkbox<?php if ($_isRequired):?> validate-one-required-by-name<?php endif; ?> product-downloadable-link" name="links[]" id="links_<?php echo $_link->getId() ?>" value="<?php echo $_link->getId(); ?>" <?php echo $this->getLinkCheckedValue($_link); ?> price="<?php echo $this->getCurrencyPrice($_link->getPrice()); ?>"/>
|
45 |
+
<?php endif; ?>
|
46 |
+
<span class="label">
|
47 |
+
<label for="links_<?php echo $_link->getId() ?>">
|
48 |
+
<?php echo $this->escapeHtml($_link->getTitle()) ?>
|
49 |
+
</label>
|
50 |
+
<?php if ($_link->getSampleFile() || $_link->getSampleUrl()): ?>
|
51 |
+
(<a href="<?php echo $this->getLinkSamlpeUrl($_link) ?>" <?php echo $this->getIsOpenInNewWindow()?'onclick="this.target=\'_blank\'"':''; ?>><?php echo Mage::helper('downloadable')->__('sample') ?></a>)
|
52 |
+
<?php endif; ?>
|
53 |
+
<?php if ($_linksPurchasedSeparately): ?>
|
54 |
+
<?php echo $this->getFormattedLinkPrice($_link); ?>
|
55 |
+
<?php endif; ?>
|
56 |
+
</span>
|
57 |
+
<?php if ($_isRequired): ?>
|
58 |
+
<script type="text/javascript">
|
59 |
+
//<![CDATA[
|
60 |
+
$('links_<?php echo $_link->getId() ?>').advaiceContainer = 'links-advice-container';
|
61 |
+
$('links_<?php echo $_link->getId() ?>').callbackFunction = 'validateDownloadableCallback';
|
62 |
+
//]]>
|
63 |
+
</script>
|
64 |
+
<?php endif; ?>
|
65 |
+
</li>
|
66 |
+
<?php endforeach; ?>
|
67 |
+
</ul>
|
68 |
+
|
69 |
+
<?php if ($_isRequired): ?>
|
70 |
+
<span id="links-advice-container"></span>
|
71 |
+
<?php endif;?>
|
72 |
+
</dd>
|
73 |
+
</dl>
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
|
77 |
+
<script type="text/javascript">
|
78 |
+
//<![CDATA[
|
79 |
+
validateDownloadableCallback = function (elmId, result) {
|
80 |
+
var container = $('downloadable-links-list');
|
81 |
+
if (result == 'failed') {
|
82 |
+
container.removeClassName('validation-passed');
|
83 |
+
container.addClassName('validation-failed');
|
84 |
+
} else {
|
85 |
+
container.removeClassName('validation-failed');
|
86 |
+
container.addClassName('validation-passed');
|
87 |
+
}
|
88 |
+
}
|
89 |
+
//]]>
|
90 |
+
</script>
|
91 |
+
<?php endif;?>
|
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable.phtml
ADDED
@@ -0,0 +1,273 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.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_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable
|
31 |
+
*/
|
32 |
+
?>
|
33 |
+
<script type="text/javascript">
|
34 |
+
//<![CDATA[>
|
35 |
+
|
36 |
+
var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' +
|
37 |
+
'<div id="{{id}}" class="file-row file-row-narrow">' +
|
38 |
+
'<span class="file-info">' +
|
39 |
+
'<span class="file-info-name">{{name}}</span>' +
|
40 |
+
' ' +
|
41 |
+
'<span class="file-info-size">({{size}})</span>' +
|
42 |
+
'</span>' +
|
43 |
+
'<span class="progress-text"></span>' +
|
44 |
+
'<div class="clear"></div>' +
|
45 |
+
'</div>' +
|
46 |
+
'</div>' +
|
47 |
+
'<div class="no-display" id="[[idName]]-template-progress">' +
|
48 |
+
'{{percent}}% {{uploaded}} / {{total}}' +
|
49 |
+
'</div>';
|
50 |
+
|
51 |
+
var fileListTemplate = '<span class="file-info">' +
|
52 |
+
'<span class="file-info-name">{{name}}</span>' +
|
53 |
+
' ' +
|
54 |
+
'<span class="file-info-size">({{size}})</span>' +
|
55 |
+
'</span>';
|
56 |
+
|
57 |
+
var Downloadable = {
|
58 |
+
uploaderObj : $H({}),
|
59 |
+
objCount : 0,
|
60 |
+
setUploaderObj : function(type, key, obj){
|
61 |
+
if (!this.uploaderObj.get(type)) {
|
62 |
+
this.uploaderObj.set(type, $H({}));
|
63 |
+
}
|
64 |
+
this.uploaderObj.get(type).set(key, obj);
|
65 |
+
},
|
66 |
+
getUploaderObj : function(type, key){
|
67 |
+
try {
|
68 |
+
return this.uploaderObj.get(type).get(key);
|
69 |
+
} catch (e) {
|
70 |
+
try {
|
71 |
+
console.log(e);
|
72 |
+
} catch (e2) {
|
73 |
+
alert(e.name + '\n' + e.message);
|
74 |
+
}
|
75 |
+
}
|
76 |
+
},
|
77 |
+
unsetUploaderObj : function(type, key){
|
78 |
+
try {
|
79 |
+
this.uploaderObj.get(type).unset(key);
|
80 |
+
} catch (e) {
|
81 |
+
try {
|
82 |
+
console.log(e);
|
83 |
+
} catch (e2) {
|
84 |
+
alert(e.name + '\n' + e.message);
|
85 |
+
}
|
86 |
+
}
|
87 |
+
},
|
88 |
+
massUploadByType : function(type){
|
89 |
+
try {
|
90 |
+
this.uploaderObj.get(type).each(function(item){
|
91 |
+
container = item.value.container.up('tr');
|
92 |
+
if (container.visible() && !container.hasClassName('no-display')) {
|
93 |
+
item.value.upload();
|
94 |
+
} else {
|
95 |
+
Downloadable.unsetUploaderObj(type, item.key);
|
96 |
+
}
|
97 |
+
});
|
98 |
+
} catch (e) {
|
99 |
+
try {
|
100 |
+
console.log(e);
|
101 |
+
} catch (e2) {
|
102 |
+
alert(e.name + '\n' + e.message);
|
103 |
+
}
|
104 |
+
}
|
105 |
+
}
|
106 |
+
};
|
107 |
+
|
108 |
+
Downloadable.FileUploader = Class.create();
|
109 |
+
Downloadable.FileUploader.prototype = {
|
110 |
+
type : null,
|
111 |
+
key : null, //key, identifier of uploader obj
|
112 |
+
elmContainer : null, //insert Flex object and templates to elmContainer
|
113 |
+
fileValueName : null, //name of field of JSON data of saved file
|
114 |
+
fileValue : null,
|
115 |
+
idName : null, //id name of elements for unique uploader
|
116 |
+
uploaderText: uploaderTemplate,
|
117 |
+
uploaderSyntax : /(^|.|\r|\n)(\[\[(\w+)\]\])/,
|
118 |
+
uploaderObj : $H({}),
|
119 |
+
config : null,
|
120 |
+
initialize: function (type, key, elmContainer, fileValueName, fileValue ,idName, config) {
|
121 |
+
this.type = type;
|
122 |
+
this.key = key;
|
123 |
+
this.elmContainer = elmContainer;
|
124 |
+
this.fileValueName = fileValueName;
|
125 |
+
this.fileValue = fileValue;
|
126 |
+
this.idName = idName;
|
127 |
+
this.config = config;
|
128 |
+
uploaderTemplate = new Template(this.uploaderText, this.uploaderSyntax);
|
129 |
+
<?php if (!$this->isReadonly()):?>
|
130 |
+
Element.insert(
|
131 |
+
elmContainer,
|
132 |
+
{'top' : uploaderTemplate.evaluate({
|
133 |
+
'idName' : this.idName,
|
134 |
+
'fileValueName' : this.fileValueName,
|
135 |
+
'uploaderObj' : 'Downloadable.getUploaderObj(\''+this.type+'\', \''+this.key+'\')'
|
136 |
+
})
|
137 |
+
}
|
138 |
+
);
|
139 |
+
if ($(this.idName+'_save')) {
|
140 |
+
$(this.idName+'_save').value = this.fileValue.toJSON
|
141 |
+
? this.fileValue.toJSON()
|
142 |
+
: Object.toJSON(this.fileValue);
|
143 |
+
}
|
144 |
+
Downloadable.setUploaderObj(
|
145 |
+
this.type,
|
146 |
+
this.key,
|
147 |
+
new Flex.Uploader(this.idName, '<?php echo $this->getSkinUrl('media/uploaderSingle.swf') ?>', this.config)
|
148 |
+
);
|
149 |
+
if (varienGlobalEvents) {
|
150 |
+
varienGlobalEvents.attachEventHandler('tabChangeBefore', Downloadable.getUploaderObj(type, key).onContainerHideBefore);
|
151 |
+
}
|
152 |
+
new Downloadable.FileList(this.idName, Downloadable.getUploaderObj(type, key));
|
153 |
+
<?php endif;?>
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
Downloadable.FileList = Class.create();
|
158 |
+
Downloadable.FileList.prototype = {
|
159 |
+
file: [],
|
160 |
+
containerId: '',
|
161 |
+
container: null,
|
162 |
+
uploader: null,
|
163 |
+
fileListTemplate: fileListTemplate,
|
164 |
+
templatePattern : /(^|.|\r|\n)({{(\w+)}})/,
|
165 |
+
listTemplate : null,
|
166 |
+
initialize: function (containerId, uploader) {
|
167 |
+
this.containerId = containerId,
|
168 |
+
this.container = $(this.containerId);
|
169 |
+
this.uploader = uploader;
|
170 |
+
this.uploader.onFilesComplete = this.handleUploadComplete.bind(this);
|
171 |
+
this.file = this.getElement('save').value.evalJSON();
|
172 |
+
this.listTemplate = new Template(this.fileListTemplate, this.templatePattern);
|
173 |
+
this.updateFiles();
|
174 |
+
this.uploader.onFileRemoveAll = this.handleFileRemoveAll.bind(this);
|
175 |
+
this.uploader.onFileSelect = this.handleFileSelect.bind(this);
|
176 |
+
},
|
177 |
+
handleFileRemoveAll: function(fileId) {
|
178 |
+
$(this.containerId+'-new').hide();
|
179 |
+
$(this.containerId+'-old').show();
|
180 |
+
},
|
181 |
+
handleFileSelect: function() {
|
182 |
+
$(this.containerId+'_type').checked = true;
|
183 |
+
},
|
184 |
+
getElement: function (name) {
|
185 |
+
return $(this.containerId + '_' + name);
|
186 |
+
},
|
187 |
+
handleUploadComplete: function (files) {
|
188 |
+
files.each(function(item) {
|
189 |
+
if (!item.response.isJSON()) {
|
190 |
+
try {
|
191 |
+
console.log(item.response);
|
192 |
+
} catch (e2) {
|
193 |
+
alert(item.response);
|
194 |
+
}
|
195 |
+
return;
|
196 |
+
}
|
197 |
+
var response = item.response.evalJSON();
|
198 |
+
if (response.error) {
|
199 |
+
return;
|
200 |
+
}
|
201 |
+
var newFile = {};
|
202 |
+
newFile.file = response.file;
|
203 |
+
newFile.name = response.name;
|
204 |
+
newFile.size = response.size;
|
205 |
+
newFile.status = 'new';
|
206 |
+
this.file[0] = newFile;
|
207 |
+
this.uploader.removeFile(item.id);
|
208 |
+
}.bind(this));
|
209 |
+
this.updateFiles();
|
210 |
+
},
|
211 |
+
updateFiles: function() {
|
212 |
+
this.getElement('save').value = this.file.toJSON
|
213 |
+
? this.file.toJSON()
|
214 |
+
: Object.toJSON(this.file);
|
215 |
+
this.file.each(function(row){
|
216 |
+
row.size = this.uploader.formatSize(row.size);
|
217 |
+
$(this.containerId + '-old').innerHTML = this.listTemplate.evaluate(row);
|
218 |
+
$(this.containerId + '-new').hide();
|
219 |
+
$(this.containerId + '-old').show();
|
220 |
+
}.bind(this));
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
var alertAlreadyDisplayed = false;
|
225 |
+
|
226 |
+
Validation.addAllThese([
|
227 |
+
['validate-downloadable-file', 'Please upload a file.', function(v,element) {
|
228 |
+
linkType = element.up(0).down('input[value="file"]');
|
229 |
+
if (linkType.checked && (v == '' || v == '[]')) {
|
230 |
+
newFileContainer = element.up(0).down('div.new-file');
|
231 |
+
if (!alertAlreadyDisplayed && (newFileContainer.empty() || newFileContainer.style.display != 'none')) {
|
232 |
+
alertAlreadyDisplayed = true;
|
233 |
+
alert('<?php echo $this->jsQuoteEscape($this->__('There are files that were selected but not uploaded yet. Please upload or remove them first'));?>');
|
234 |
+
}
|
235 |
+
return false;
|
236 |
+
}
|
237 |
+
return true;
|
238 |
+
}]
|
239 |
+
]);
|
240 |
+
|
241 |
+
Validation.addAllThese([
|
242 |
+
['validate-downloadable-url', 'Please specify Url.', function(v,element) {
|
243 |
+
linkType = element.up(0).down('input[value="url"]');
|
244 |
+
if (linkType.checked && v == '') {
|
245 |
+
return false;
|
246 |
+
}
|
247 |
+
return true;
|
248 |
+
}]
|
249 |
+
]);
|
250 |
+
//]]>
|
251 |
+
</script>
|
252 |
+
|
253 |
+
<div id="alert_messages_block"><?php echo $this->getMessageHtml() ?></div>
|
254 |
+
|
255 |
+
<div class="entry-edit">
|
256 |
+
<?php echo $this->getChildHtml('accordion') ?>
|
257 |
+
</div>
|
258 |
+
<div style="display:none">
|
259 |
+
<div id="custom-advice-container"></div>
|
260 |
+
</div>
|
261 |
+
<?php if ($this->isReadonly()): ?>
|
262 |
+
<script type="text/javascript">
|
263 |
+
$('downloadableInfo').select('input', 'select', 'textarea', 'button').each(function (item){
|
264 |
+
item.disabled = true;
|
265 |
+
if (item.tagName.toLowerCase() == 'button') {
|
266 |
+
item.addClassName('disabled');
|
267 |
+
}
|
268 |
+
});
|
269 |
+
</script>
|
270 |
+
<?php endif; ?>
|
271 |
+
<!--
|
272 |
+
<div><input type="hidden" name="affect_downloadable_information" value="1" /></div>
|
273 |
+
-->
|
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
ADDED
@@ -0,0 +1,388 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<?php
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @see Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
|
31 |
+
*/
|
32 |
+
?>
|
33 |
+
<?php $_product = $this->getProduct()?>
|
34 |
+
<div class="fieldset">
|
35 |
+
<table cellspacing="0" class="form-list">
|
36 |
+
<tbody>
|
37 |
+
<tr class="headings">
|
38 |
+
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title')?></label>
|
39 |
+
</td>
|
40 |
+
<td class="value">
|
41 |
+
<input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId()?$_product->getLinksTitle():$this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault())?'disabled="disabled"':'' ?> />
|
42 |
+
</td>
|
43 |
+
<td class="scope-label"><?php echo !Mage::app()->isSingleStoreMode() ? Mage::helper('adminhtml')->__('[STORE VIEW]') : ''; ?></td>
|
44 |
+
<td class="value use-default">
|
45 |
+
<?php if($_product->getStoreId()): ?>
|
46 |
+
<input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault()?'checked="checked"':'' ?> />
|
47 |
+
<label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
|
48 |
+
<?php endif; ?>
|
49 |
+
</td>
|
50 |
+
</tr>
|
51 |
+
</tbody>
|
52 |
+
</table>
|
53 |
+
<br />
|
54 |
+
<table cellspacing="0" class="form-list">
|
55 |
+
<tbody>
|
56 |
+
<tr class="headings">
|
57 |
+
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately')?></label>
|
58 |
+
</td>
|
59 |
+
<td class="value">
|
60 |
+
<?php echo $this->getPurchasedSeparatelySelect()?>
|
61 |
+
</td>
|
62 |
+
<td class="scope-label"><?php echo !Mage::app()->isSingleStoreMode() ? Mage::helper('adminhtml')->__('[GLOBAL]') : ''; ?></td>
|
63 |
+
<td><small> </small></td>
|
64 |
+
</tr>
|
65 |
+
</tbody>
|
66 |
+
</table>
|
67 |
+
<br />
|
68 |
+
<div class="grid">
|
69 |
+
<div class="hor-scroll">
|
70 |
+
<table cellspacing="0" class="data border">
|
71 |
+
<col width="33%" />
|
72 |
+
<col />
|
73 |
+
<col />
|
74 |
+
<col />
|
75 |
+
<col width="1" />
|
76 |
+
<col width="1" />
|
77 |
+
<col width="1" />
|
78 |
+
<col width="1" />
|
79 |
+
<thead>
|
80 |
+
<tr class="headings">
|
81 |
+
<th><?php echo Mage::helper('downloadable')->__('Title')?> <span class="required">*</span></th>
|
82 |
+
<?php if ($this->getCanReadPrice() !== false) : ?>
|
83 |
+
<th><?php echo Mage::helper('downloadable')->__('Price')?></th>
|
84 |
+
<?php endif; ?>
|
85 |
+
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads')?></span></th>
|
86 |
+
<th><?php echo Mage::helper('downloadable')->__('Shareable')?></th>
|
87 |
+
|