Version Notes
1.0.1
Download this release
Release Info
Developer | NG |
Extension | ng_product |
Version | 1.0.1 |
Comparing to | |
See all releases |
Version 1.0.1
- app/code/community/NG/Product/Helper/Data.php +31 -0
- app/code/community/NG/Product/Model/System/Config/Source/required.php +50 -0
- app/code/community/NG/Product/Model/System/Config/Source/yesno.php +33 -0
- app/code/community/NG/Product/controllers/Catalog/ProductController.php +288 -0
- app/code/community/NG/Product/controllers/IndexController.php +42 -0
- app/code/community/NG/Product/etc/adminhtml.xml +55 -0
- app/code/community/NG/Product/etc/config.xml +76 -0
- app/code/community/NG/Product/etc/system.xml +323 -0
- app/design/frontend/base/default/layout/NG/product.xml +48 -0
- app/design/frontend/base/default/template/NG/add.phtml +285 -0
- app/etc/modules/NG_Product.xml +33 -0
- media/catalog/product/images/1434476196-Lighthouse.jpg +0 -0
- package.xml +18 -0
- skin/frontend/base/default/css/NG/product.css +36 -0
app/code/community/NG/Product/Helper/Data.php
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
class NG_Product_Helper_Data extends Mage_Core_Helper_Abstract {
|
26 |
+
|
27 |
+
public function getLinkLabel() {
|
28 |
+
return ucwords(Mage::getStoreConfig('ng_product/link/name'));
|
29 |
+
}
|
30 |
+
|
31 |
+
}
|
app/code/community/NG/Product/Model/System/Config/Source/required.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.'')
|
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.''.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 NG
|
22 |
+
* @package NG_Product
|
23 |
+
*/
|
24 |
+
class NG_Product_Model_System_Config_Source_required
|
25 |
+
{
|
26 |
+
public function toOptionArray()
|
27 |
+
{
|
28 |
+
return array(
|
29 |
+
array('value' => 'name', 'label'=>Mage::helper('ng_product')->__('Name')),
|
30 |
+
array('value' => 'sku', 'label'=>Mage::helper('ng_product')->__('SKU')),
|
31 |
+
array('value' => 'description', 'label'=>Mage::helper('ng_product')->__('Description')),
|
32 |
+
array('value' => 'short_description', 'label'=>Mage::helper('ng_product')->__('Short Description')),
|
33 |
+
array('value' => 'weight', 'label'=>Mage::helper('ng_product')->__('Weight')),
|
34 |
+
array('value' => 'status', 'label'=>Mage::helper('ng_product')->__('Status')),
|
35 |
+
array('value' => 'url_key', 'label'=>Mage::helper('ng_product')->__('URL Key')),
|
36 |
+
array('value' => 'visibility', 'label'=>Mage::helper('ng_product')->__('Visibility')),
|
37 |
+
array('value' => 'price', 'label'=>Mage::helper('ng_product')->__('Price')),
|
38 |
+
array('value' => 'tax_class', 'label'=>Mage::helper('ng_product')->__('Tax Class')),
|
39 |
+
array('value' => 'meta_title', 'label'=>Mage::helper('ng_product')->__('Meta Title')),
|
40 |
+
array('value' => 'meta_keyword', 'label'=>Mage::helper('ng_product')->__('Meta Keywords')),
|
41 |
+
array('value' => 'meta_description', 'label'=>Mage::helper('ng_product')->__('Meta Description')),
|
42 |
+
array('value' => 'qty', 'label'=>Mage::helper('ng_product')->__('Qty')),
|
43 |
+
array('value' => 'manage_stock', 'label'=>Mage::helper('ng_product')->__('Manage Stock')),
|
44 |
+
array('value' => 'is_in_stock', 'label'=>Mage::helper('ng_product')->__('Is In Stock')),
|
45 |
+
array('value' => 'categories', 'label'=>Mage::helper('ng_product')->__('Categories')),
|
46 |
+
array('value' => 'websites', 'label'=>Mage::helper('ng_product')->__('Websites')),
|
47 |
+
array('value' => 'image', 'label'=>Mage::helper('ng_product')->__('Image')),
|
48 |
+
);
|
49 |
+
}
|
50 |
+
}
|
app/code/community/NG/Product/Model/System/Config/Source/yesno.php
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 NG
|
22 |
+
* @package NG_Product
|
23 |
+
*/
|
24 |
+
class NG_Product_Model_System_Config_Source_yesno
|
25 |
+
{
|
26 |
+
public function toOptionArray()
|
27 |
+
{
|
28 |
+
return array(
|
29 |
+
array('value' => 1, 'label'=>Mage::helper('ng_product')->__('Enabled')),
|
30 |
+
array('value' => 0, 'label'=>Mage::helper('ng_product')->__('Disabled')),
|
31 |
+
);
|
32 |
+
}
|
33 |
+
}
|
app/code/community/NG/Product/controllers/Catalog/ProductController.php
ADDED
@@ -0,0 +1,288 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once(Mage::getModuleDir('controllers', 'Mage_Catalog') . DS . 'ProductController.php');
|
4 |
+
|
5 |
+
class NG_Product_Catalog_ProductController extends Mage_Catalog_ProductController {
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Current applied design settings
|
9 |
+
*
|
10 |
+
* @deprecated after 1.4.2.0-beta1
|
11 |
+
* @var array
|
12 |
+
*/
|
13 |
+
protected $_designProductSettingsApplied = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Initialize requested product object
|
17 |
+
*
|
18 |
+
* @return Mage_Catalog_Model_Product
|
19 |
+
*/
|
20 |
+
protected function _initProduct() {
|
21 |
+
$categoryId = (int) $this->getRequest()->getParam('category', false);
|
22 |
+
$productId = (int) $this->getRequest()->getParam('id');
|
23 |
+
|
24 |
+
$params = new Varien_Object();
|
25 |
+
$params->setCategoryId($categoryId);
|
26 |
+
|
27 |
+
return Mage::helper('catalog/product')->initProduct($productId, $this, $params);
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Initialize product view layout
|
32 |
+
*
|
33 |
+
* @param Mage_Catalog_Model_Product $product
|
34 |
+
* @return Mage_Catalog_ProductController
|
35 |
+
*/
|
36 |
+
protected function _initProductLayout($product) {
|
37 |
+
Mage::helper('catalog/product_view')->initProductLayout($product, $this);
|
38 |
+
return $this;
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Recursively apply custom design settings to product if it's container
|
43 |
+
* category custom_use_for_products option is setted to 1.
|
44 |
+
* If not or product shows not in category - applyes product's internal settings
|
45 |
+
*
|
46 |
+
* @deprecated after 1.4.2.0-beta1, functionality moved to Mage_Catalog_Model_Design
|
47 |
+
* @param Mage_Catalog_Model_Category|Mage_Catalog_Model_Product $object
|
48 |
+
* @param Mage_Core_Model_Layout_Update $update
|
49 |
+
*/
|
50 |
+
protected function _applyCustomDesignSettings($object, $update) {
|
51 |
+
if ($object instanceof Mage_Catalog_Model_Category) {
|
52 |
+
// lookup the proper category recursively
|
53 |
+
if ($object->getCustomUseParentSettings()) {
|
54 |
+
$parentCategory = $object->getParentCategory();
|
55 |
+
if ($parentCategory && $parentCategory->getId() && $parentCategory->getLevel() > 1) {
|
56 |
+
$this->_applyCustomDesignSettings($parentCategory, $update);
|
57 |
+
}
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
// don't apply to the product
|
62 |
+
if (!$object->getCustomApplyToProducts()) {
|
63 |
+
return;
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
if ($this->_designProductSettingsApplied) {
|
68 |
+
return;
|
69 |
+
}
|
70 |
+
|
71 |
+
$date = $object->getCustomDesignDate();
|
72 |
+
if (array_key_exists('from', $date) && array_key_exists('to', $date) && Mage::app()->getLocale()->isStoreDateInInterval(null, $date['from'], $date['to'])
|
73 |
+
) {
|
74 |
+
if ($object->getPageLayout()) {
|
75 |
+
$this->_designProductSettingsApplied['layout'] = $object->getPageLayout();
|
76 |
+
}
|
77 |
+
$this->_designProductSettingsApplied['update'] = $object->getCustomLayoutUpdate();
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Product view action
|
83 |
+
*/
|
84 |
+
public function viewAction() {
|
85 |
+
// Get initial data from request
|
86 |
+
$categoryId = (int) $this->getRequest()->getParam('category', false);
|
87 |
+
$productId = (int) $this->getRequest()->getParam('id');
|
88 |
+
$specifyOptions = $this->getRequest()->getParam('options');
|
89 |
+
|
90 |
+
// Prepare helper and params
|
91 |
+
$viewHelper = Mage::helper('catalog/product_view');
|
92 |
+
|
93 |
+
$params = new Varien_Object();
|
94 |
+
$params->setCategoryId($categoryId);
|
95 |
+
$params->setSpecifyOptions($specifyOptions);
|
96 |
+
|
97 |
+
// Render page
|
98 |
+
try {
|
99 |
+
$viewHelper->prepareAndRender($productId, $this, $params);
|
100 |
+
} catch (Exception $e) {
|
101 |
+
if ($e->getCode() == $viewHelper->ERR_NO_PRODUCT_LOADED) {
|
102 |
+
if (isset($_GET['store']) && !$this->getResponse()->isRedirect()) {
|
103 |
+
$this->_redirect('');
|
104 |
+
} elseif (!$this->getResponse()->isRedirect()) {
|
105 |
+
$this->_forward('noRoute');
|
106 |
+
}
|
107 |
+
} else {
|
108 |
+
Mage::logException($e);
|
109 |
+
$this->_forward('noRoute');
|
110 |
+
}
|
111 |
+
}
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* View product gallery action
|
116 |
+
*/
|
117 |
+
public function galleryAction() {
|
118 |
+
if (!$this->_initProduct()) {
|
119 |
+
if (isset($_GET['store']) && !$this->getResponse()->isRedirect()) {
|
120 |
+
$this->_redirect('');
|
121 |
+
} elseif (!$this->getResponse()->isRedirect()) {
|
122 |
+
$this->_forward('noRoute');
|
123 |
+
}
|
124 |
+
return;
|
125 |
+
}
|
126 |
+
$this->loadLayout();
|
127 |
+
$this->renderLayout();
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Display product image action
|
132 |
+
*
|
133 |
+
* @deprecated
|
134 |
+
*/
|
135 |
+
public function imageAction() {
|
136 |
+
/*
|
137 |
+
* All logic has been cut to avoid possible malicious usage of the method
|
138 |
+
*/
|
139 |
+
$this->_forward('noRoute');
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* upload product image action
|
144 |
+
* @return string|int
|
145 |
+
*/
|
146 |
+
public function uploadPhotoAction() {
|
147 |
+
$io = new Varien_Io_File();
|
148 |
+
$io->checkAndCreateFolder(Mage::getBaseDir('media').DS.'catalog'.DS.'product'.DS.'images');
|
149 |
+
|
150 |
+
$uploaddir = Mage::getBaseDir() . '/media/catalog/product/images/';
|
151 |
+
$file_name = time() . '-' . $_FILES['image']['name'];
|
152 |
+
$file = $uploaddir . $file_name;
|
153 |
+
|
154 |
+
if (move_uploaded_file($_FILES['image']['tmp_name'], $file)) {
|
155 |
+
return $file_name;
|
156 |
+
} else {
|
157 |
+
return 0;
|
158 |
+
}
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* product add action
|
163 |
+
*/
|
164 |
+
public function addfrontAction() {
|
165 |
+
ini_set("memory_limit", "5000M");
|
166 |
+
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
|
167 |
+
$arr = array();
|
168 |
+
$dat = array_filter(Mage::getStoreConfig('ng_product/product_settings'));
|
169 |
+
$required = explode(',', Mage::getStoreConfig('ng_product/product_required_settings/required'));
|
170 |
+
foreach ($required as $key => $value) {
|
171 |
+
if(array_key_exists($value, $dat)){
|
172 |
+
$arr[] = $value;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
$key = array_keys($_POST, '');
|
176 |
+
$result = array_intersect($arr, $key);
|
177 |
+
|
178 |
+
if (is_array($result) && !empty($result)) {
|
179 |
+
Mage::getSingleton('core/session')->addError('Product submition failed. Please fill all required fields.');
|
180 |
+
header('Location: ' . Mage::getBaseUrl() . 'product');
|
181 |
+
exit;
|
182 |
+
} else {
|
183 |
+
$name = !empty($_POST['name']) ? $_POST['name'] : '';
|
184 |
+
$sku = !empty($_POST['sku']) ? $_POST['sku'] : '';
|
185 |
+
$short_description = !empty($_POST['short_description']) ? $_POST['short_description'] : '';
|
186 |
+
$description = !empty($_POST['description']) ? $_POST['description'] : '';
|
187 |
+
$weight = !empty($_POST['weight']) ? $_POST['weight'] : '';
|
188 |
+
$status = !empty($_POST['status']) ? $_POST['status'] : '';
|
189 |
+
$url_key = !empty($_POST['url_key']) ? $_POST['url_key'] : '';
|
190 |
+
$visibility = !empty($_POST['visibility']) ? $_POST['visibility'] : '';
|
191 |
+
$price = !empty($_POST['price']) ? $_POST['price'] : '';
|
192 |
+
$tax_class = !empty($_POST['tax_class']) ? $_POST['tax_class'] : '';
|
193 |
+
$meta_title = !empty($_POST['meta_title']) ? $_POST['meta_title'] : '';
|
194 |
+
$meta_keyword = !empty($_POST['meta_keyword']) ? $_POST['meta_keyword'] : '';
|
195 |
+
$meta_description = !empty($_POST['meta_description']) ? $_POST['meta_description'] : '';
|
196 |
+
$qty = !empty($_POST['qty']) ? $_POST['qty'] : '';
|
197 |
+
$manage_stock = !empty($_POST['manage_stock']) ? $_POST['manage_stock'] : '';
|
198 |
+
$is_in_stock = !empty($_POST['is_in_stock']) ? $_POST['is_in_stock'] : '';
|
199 |
+
$categories = !empty($_POST['categories']) ? $_POST['categories'] : '';
|
200 |
+
$websites = !empty($_POST['websites']) ? $_POST['websites'] : '';
|
201 |
+
$terms = !empty($_POST['terms']) ? $_POST['terms'] : '';
|
202 |
+
$customer_group = !empty($_POST['customer_group']) ? $_POST['customer_group'] : '';
|
203 |
+
$customer_email = !empty($_POST['customer_email']) ? $_POST['customer_email'] : '';
|
204 |
+
$image = '';
|
205 |
+
if (isset($_FILES['image']) && !empty($_FILES['image'])) {
|
206 |
+
if ($filename = $this->uploadPhotoAction())
|
207 |
+
$image = $filename;
|
208 |
+
}
|
209 |
+
|
210 |
+
$customer_group = new Mage_Customer_Model_Group();
|
211 |
+
$allGroups = $customer_group->getCollection()->toOptionHash();
|
212 |
+
foreach ($allGroups as $key => $allGroup) {
|
213 |
+
$customerGroup[$key] = $allGroup;
|
214 |
+
}
|
215 |
+
$customer_group = array_search($customer_group, $customerGroup);
|
216 |
+
|
217 |
+
$soapUrl = Mage::getBaseUrl() . 'api/soap/?wsdl';
|
218 |
+
$client = new SoapClient($soapUrl);
|
219 |
+
|
220 |
+
$username = Mage::getStoreConfig('ng_product/product_credentials_settings/username');
|
221 |
+
$password = Mage::getStoreConfig('ng_product/product_credentials_settings/password');
|
222 |
+
|
223 |
+
$session = $client->login($username, $password);
|
224 |
+
|
225 |
+
$attributeSets = $client->call($session, 'product_attribute_set.list');
|
226 |
+
$attributeSet = current($attributeSets);
|
227 |
+
|
228 |
+
$product = new Mage_Catalog_Model_Product();
|
229 |
+
|
230 |
+
$productId = Mage::getModel('catalog/product')->getIdBySku($sku);
|
231 |
+
try {
|
232 |
+
$result = $client->call($session, 'catalog_product.create', array('simple', $attributeSet['set_id'], $sku, array(
|
233 |
+
'categories' => array($categories),
|
234 |
+
'websites' => array($websites),
|
235 |
+
'name' => $name,
|
236 |
+
'description' => $description,
|
237 |
+
'short_description' => $short_description,
|
238 |
+
'weight' => $weight,
|
239 |
+
'status' => $status,
|
240 |
+
'url_key' => str_replace(' ', '_', $url_key),
|
241 |
+
'url_path' => str_replace(' ', '_', $url_key),
|
242 |
+
'visibility' => $visibility,
|
243 |
+
'price' => $price,
|
244 |
+
'tax_class_id' => $tax_class,
|
245 |
+
'meta_title' => $meta_title,
|
246 |
+
'meta_keyword' => $meta_keyword,
|
247 |
+
'meta_description' => $meta_description,
|
248 |
+
'front_image' => $image
|
249 |
+
)));
|
250 |
+
} catch (SoapFault $fault) {
|
251 |
+
Mage::getSingleton('core/session')->addError($fault->getMessage());
|
252 |
+
header('Location: ' . Mage::getBaseUrl() . 'product');
|
253 |
+
exit;
|
254 |
+
}
|
255 |
+
|
256 |
+
$productId = Mage::getModel('catalog/product')->getIdBySku($sku);
|
257 |
+
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
|
258 |
+
$stockItemId = $stockItem->getId();
|
259 |
+
$stockItem->setData('manage_stock', $manage_stock);
|
260 |
+
$stockItem->setData('qty', $qty);
|
261 |
+
$stockItem->setData('is_in_stock', $is_in_stock);
|
262 |
+
$stockItem->save();
|
263 |
+
|
264 |
+
$product = Mage::getModel('catalog/product')->load($productId);
|
265 |
+
|
266 |
+
$imagePath = Mage::getBaseDir('media') . '/catalog/product/images/' . $image;
|
267 |
+
$imageResized = Mage::getBaseDir('media') . '/catalog/product/compress/' . $image;
|
268 |
+
|
269 |
+
|
270 |
+
if (!file_exists($imageResized) && file_exists($imagePath)) {
|
271 |
+
$imageObj = new Varien_Image($imagePath);
|
272 |
+
$imageObj->constrainOnly(TRUE);
|
273 |
+
$imageObj->keepAspectRatio(TRUE);
|
274 |
+
$imageObj->keepFrame(FALSE);
|
275 |
+
$imageObj->resize(600);
|
276 |
+
$imageObj->save($imageResized);
|
277 |
+
|
278 |
+
$product->setMediaGallery(array('images' => array(), 'values' => array()));
|
279 |
+
$product->addImageToMediaGallery($imageResized, array('image', 'small_image', 'thumbnail'), false, false);
|
280 |
+
$product->save();
|
281 |
+
}
|
282 |
+
Mage::getSingleton('core/session')->addSuccess('Product submition successful.');
|
283 |
+
header('Location: ' . Mage::getBaseUrl() . 'product');
|
284 |
+
exit;
|
285 |
+
}
|
286 |
+
}
|
287 |
+
|
288 |
+
}
|
app/code/community/NG/Product/controllers/IndexController.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
class NG_Product_IndexController extends Mage_Core_Controller_Front_Action {
|
26 |
+
|
27 |
+
public function preDispatch() {
|
28 |
+
parent::preDispatch();
|
29 |
+
$action = $this->getRequest()->getActionName();
|
30 |
+
$loginUrl = Mage::helper('customer')->getLoginUrl();
|
31 |
+
|
32 |
+
if (!Mage::getSingleton('customer/session')->authenticate($this, $loginUrl)) {
|
33 |
+
$this->setFlag('', self::FLAG_NO_DISPATCH, true);
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
public function indexAction() {
|
38 |
+
$this->loadLayout();
|
39 |
+
$this->renderLayout();
|
40 |
+
}
|
41 |
+
|
42 |
+
}
|
app/code/community/NG/Product/etc/adminhtml.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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
-->
|
26 |
+
<config>
|
27 |
+
<acl>
|
28 |
+
<resources>
|
29 |
+
<admin>
|
30 |
+
<children>
|
31 |
+
<system>
|
32 |
+
<children>
|
33 |
+
<config>
|
34 |
+
<children>
|
35 |
+
<ng_product translate="title" module="ng_product">
|
36 |
+
<title>My Account Configuration</title>
|
37 |
+
</ng_product>
|
38 |
+
</children>
|
39 |
+
</config>
|
40 |
+
</children>
|
41 |
+
</system>
|
42 |
+
<ng_product translate="title" module="ng_product">
|
43 |
+
<title>My Account Configuration</title>
|
44 |
+
<children>
|
45 |
+
<link translate="title" module="ng_product">
|
46 |
+
<title>Link Name</title>
|
47 |
+
<sort_order>0</sort_order>
|
48 |
+
</link>
|
49 |
+
</children>
|
50 |
+
</ng_product>
|
51 |
+
</children>
|
52 |
+
</admin>
|
53 |
+
</resources>
|
54 |
+
</acl>
|
55 |
+
</config>
|
app/code/community/NG/Product/etc/config.xml
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
-->
|
26 |
+
<config>
|
27 |
+
<modules>
|
28 |
+
<NG_Product>
|
29 |
+
<version>1.0.0</version>
|
30 |
+
</NG_Product>
|
31 |
+
</modules>
|
32 |
+
<global>
|
33 |
+
<helpers>
|
34 |
+
<ng_product>
|
35 |
+
<class>NG_Product_Helper</class>
|
36 |
+
</ng_product>
|
37 |
+
</helpers>
|
38 |
+
<models>
|
39 |
+
<ng_product>
|
40 |
+
<class>NG_Product_Model</class>
|
41 |
+
</ng_product>
|
42 |
+
</models>
|
43 |
+
</global>
|
44 |
+
<frontend>
|
45 |
+
<layout>
|
46 |
+
<updates>
|
47 |
+
<ng_product>
|
48 |
+
<file>NG/product.xml</file>
|
49 |
+
</ng_product>
|
50 |
+
</updates>
|
51 |
+
</layout>
|
52 |
+
<routers>
|
53 |
+
<ng_product>
|
54 |
+
<use>standard</use>
|
55 |
+
<args>
|
56 |
+
<module>NG_Product</module>
|
57 |
+
<frontName>product</frontName>
|
58 |
+
</args>
|
59 |
+
</ng_product>
|
60 |
+
<customer>
|
61 |
+
<args>
|
62 |
+
<modules>
|
63 |
+
<ng before="Mage_Customer">NG_Product</ng>
|
64 |
+
</modules>
|
65 |
+
</args>
|
66 |
+
</customer>
|
67 |
+
<catalog>
|
68 |
+
<args>
|
69 |
+
<modules>
|
70 |
+
<ng_product before="Mage_Product_CatalogController">NG_Product_Catalog</ng_product>
|
71 |
+
</modules>
|
72 |
+
</args>
|
73 |
+
</catalog>
|
74 |
+
</routers>
|
75 |
+
</frontend>
|
76 |
+
</config>
|
app/code/community/NG/Product/etc/system.xml
ADDED
@@ -0,0 +1,323 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
-->
|
26 |
+
<config>
|
27 |
+
<tabs>
|
28 |
+
<ng translate="label" module="ng_product">
|
29 |
+
<label>NG</label>
|
30 |
+
<sort_order>2000</sort_order>
|
31 |
+
</ng>
|
32 |
+
</tabs>
|
33 |
+
<sections>
|
34 |
+
<ng_product translate="label" module="ng_product">
|
35 |
+
<class>separator-top</class>
|
36 |
+
<label>Product Configuration</label>
|
37 |
+
<tab>ng</tab>
|
38 |
+
<frontend_type>text</frontend_type>
|
39 |
+
<sort_order>100</sort_order>
|
40 |
+
<show_in_default>1</show_in_default>
|
41 |
+
<show_in_website>1</show_in_website>
|
42 |
+
<show_in_store>1</show_in_store>
|
43 |
+
<groups>
|
44 |
+
<link translate="label" module="ng_product">
|
45 |
+
<label>New Link Setting</label>
|
46 |
+
<frontend_type>text</frontend_type>
|
47 |
+
<sort_order>0</sort_order>
|
48 |
+
<show_in_default>1</show_in_default>
|
49 |
+
<show_in_website>1</show_in_website>
|
50 |
+
<show_in_store>1</show_in_store>
|
51 |
+
<fields>
|
52 |
+
<enable translate="label">
|
53 |
+
<label>Enable</label>
|
54 |
+
<frontend_type>select</frontend_type>
|
55 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
56 |
+
<sort_order>0</sort_order>
|
57 |
+
<show_in_default>1</show_in_default>
|
58 |
+
<show_in_website>1</show_in_website>
|
59 |
+
<show_in_store>1</show_in_store>
|
60 |
+
</enable>
|
61 |
+
<name translate="label">
|
62 |
+
<label>Link Name</label>
|
63 |
+
<frontend_type>text</frontend_type>
|
64 |
+
<sort_order>1</sort_order>
|
65 |
+
<show_in_default>1</show_in_default>
|
66 |
+
<show_in_website>1</show_in_website>
|
67 |
+
<show_in_store>1</show_in_store>
|
68 |
+
<comment>Enter the name of link which you want to display in my account left navigation</comment>
|
69 |
+
</name>
|
70 |
+
</fields>
|
71 |
+
</link>
|
72 |
+
<product_required_settings translate="label" module="ng_product">
|
73 |
+
<label>Product Required Fields Settings</label>
|
74 |
+
<frontend_type>text</frontend_type>
|
75 |
+
<sort_order>1</sort_order>
|
76 |
+
<show_in_default>1</show_in_default>
|
77 |
+
<show_in_website>1</show_in_website>
|
78 |
+
<show_in_store>1</show_in_store>
|
79 |
+
<fields>
|
80 |
+
<required translate="label">
|
81 |
+
<label>Required Fields</label>
|
82 |
+
<frontend_type>multiselect</frontend_type>
|
83 |
+
<source_model>ng_product/system_config_source_required</source_model>
|
84 |
+
<sort_order>1</sort_order>
|
85 |
+
<show_in_default>1</show_in_default>
|
86 |
+
<show_in_website>1</show_in_website>
|
87 |
+
<show_in_store>1</show_in_store>
|
88 |
+
<comment>Select multiple fields to make them required.</comment>
|
89 |
+
</required>
|
90 |
+
</fields>
|
91 |
+
</product_required_settings>
|
92 |
+
<product_settings translate="label" module="ng_product">
|
93 |
+
<label>Add Product Settings</label>
|
94 |
+
<frontend_type>text</frontend_type>
|
95 |
+
<sort_order>2</sort_order>
|
96 |
+
<show_in_default>1</show_in_default>
|
97 |
+
<show_in_website>1</show_in_website>
|
98 |
+
<show_in_store>1</show_in_store>
|
99 |
+
<fields>
|
100 |
+
<name translate="label">
|
101 |
+
<label>Name</label>
|
102 |
+
<frontend_type>select</frontend_type>
|
103 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
104 |
+
<sort_order>1</sort_order>
|
105 |
+
<show_in_default>1</show_in_default>
|
106 |
+
<show_in_website>1</show_in_website>
|
107 |
+
<show_in_store>1</show_in_store>
|
108 |
+
<tooltip>select Enabled for show 'Name' field in add product form.</tooltip>
|
109 |
+
</name>
|
110 |
+
<sku translate="label">
|
111 |
+
<label>SKU</label>
|
112 |
+
<frontend_type>select</frontend_type>
|
113 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
114 |
+
<sort_order>2</sort_order>
|
115 |
+
<show_in_default>1</show_in_default>
|
116 |
+
<show_in_website>1</show_in_website>
|
117 |
+
<show_in_store>1</show_in_store>
|
118 |
+
<tooltip>select Enabled for show 'SKU' field in add product form.</tooltip>
|
119 |
+
</sku>
|
120 |
+
<description translate="label">
|
121 |
+
<label>Description</label>
|
122 |
+
<frontend_type>select</frontend_type>
|
123 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
124 |
+
<sort_order>3</sort_order>
|
125 |
+
<show_in_default>1</show_in_default>
|
126 |
+
<show_in_website>1</show_in_website>
|
127 |
+
<show_in_store>1</show_in_store>
|
128 |
+
<tooltip>select Enabled for show 'Description' field in add product form.</tooltip>
|
129 |
+
</description>
|
130 |
+
<short_description translate="label">
|
131 |
+
<label>Short Description</label>
|
132 |
+
<frontend_type>select</frontend_type>
|
133 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
134 |
+
<sort_order>4</sort_order>
|
135 |
+
<show_in_default>1</show_in_default>
|
136 |
+
<show_in_website>1</show_in_website>
|
137 |
+
<show_in_store>1</show_in_store>
|
138 |
+
<tooltip>select Enabled for show 'Short Description' field in add product form.</tooltip>
|
139 |
+
</short_description>
|
140 |
+
<weight translate="label">
|
141 |
+
<label>Weight</label>
|
142 |
+
<frontend_type>select</frontend_type>
|
143 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
144 |
+
<sort_order>5</sort_order>
|
145 |
+
<show_in_default>1</show_in_default>
|
146 |
+
<show_in_website>1</show_in_website>
|
147 |
+
<show_in_store>1</show_in_store>
|
148 |
+
<tooltip>select Enabled for show 'Weight' field in add product form.</tooltip>
|
149 |
+
</weight>
|
150 |
+
<status translate="label">
|
151 |
+
<label>Status</label>
|
152 |
+
<frontend_type>select</frontend_type>
|
153 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
154 |
+
<sort_order>6</sort_order>
|
155 |
+
<show_in_default>1</show_in_default>
|
156 |
+
<show_in_website>1</show_in_website>
|
157 |
+
<show_in_store>1</show_in_store>
|
158 |
+
<tooltip>select Enabled for show 'Status' field in add product form.</tooltip>
|
159 |
+
</status>
|
160 |
+
<url_key translate="label">
|
161 |
+
<label>URL Key</label>
|
162 |
+
<frontend_type>select</frontend_type>
|
163 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
164 |
+
<sort_order>7</sort_order>
|
165 |
+
<show_in_default>1</show_in_default>
|
166 |
+
<show_in_website>1</show_in_website>
|
167 |
+
<show_in_store>1</show_in_store>
|
168 |
+
<tooltip>select Enabled for show 'URL Key' field in add product form.</tooltip>
|
169 |
+
</url_key>
|
170 |
+
<visibility translate="label">
|
171 |
+
<label>Visibility</label>
|
172 |
+
<frontend_type>select</frontend_type>
|
173 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
174 |
+
<sort_order>8</sort_order>
|
175 |
+
<show_in_default>1</show_in_default>
|
176 |
+
<show_in_website>1</show_in_website>
|
177 |
+
<show_in_store>1</show_in_store>
|
178 |
+
<tooltip>select Enabled for show 'Visibility' field in add product form.</tooltip>
|
179 |
+
</visibility>
|
180 |
+
<price translate="label">
|
181 |
+
<label>Price</label>
|
182 |
+
<frontend_type>select</frontend_type>
|
183 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
184 |
+
<sort_order>9</sort_order>
|
185 |
+
<show_in_default>1</show_in_default>
|
186 |
+
<show_in_website>1</show_in_website>
|
187 |
+
<show_in_store>1</show_in_store>
|
188 |
+
<tooltip>select Enabled for show 'Price' field in add product form.</tooltip>
|
189 |
+
</price>
|
190 |
+
<tax_class translate="label">
|
191 |
+
<label>Tax Class</label>
|
192 |
+
<frontend_type>select</frontend_type>
|
193 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
194 |
+
<sort_order>10</sort_order>
|
195 |
+
<show_in_default>1</show_in_default>
|
196 |
+
<show_in_website>1</show_in_website>
|
197 |
+
<show_in_store>1</show_in_store>
|
198 |
+
<tooltip>select Enabled for show 'Tax Class' field in add product form.</tooltip>
|
199 |
+
</tax_class>
|
200 |
+
<meta_title translate="label">
|
201 |
+
<label>Meta Title</label>
|
202 |
+
<frontend_type>select</frontend_type>
|
203 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
204 |
+
<sort_order>11</sort_order>
|
205 |
+
<show_in_default>1</show_in_default>
|
206 |
+
<show_in_website>1</show_in_website>
|
207 |
+
<show_in_store>1</show_in_store>
|
208 |
+
<tooltip>select Enabled for show 'Meta Title' field in add product form.</tooltip>
|
209 |
+
</meta_title>
|
210 |
+
<meta_keyword translate="label">
|
211 |
+
<label>Meta Keywords</label>
|
212 |
+
<frontend_type>select</frontend_type>
|
213 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
214 |
+
<sort_order>12</sort_order>
|
215 |
+
<show_in_default>1</show_in_default>
|
216 |
+
<show_in_website>1</show_in_website>
|
217 |
+
<show_in_store>1</show_in_store>
|
218 |
+
<tooltip>select Enabled for show 'Meta Keywords' field in add product form.</tooltip>
|
219 |
+
</meta_keyword>
|
220 |
+
<meta_description translate="label">
|
221 |
+
<label>Meta Description</label>
|
222 |
+
<frontend_type>select</frontend_type>
|
223 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
224 |
+
<sort_order>13</sort_order>
|
225 |
+
<show_in_default>1</show_in_default>
|
226 |
+
<show_in_website>1</show_in_website>
|
227 |
+
<show_in_store>1</show_in_store>
|
228 |
+
<tooltip>select Enabled for show 'Meta Description' field in add product form.</tooltip>
|
229 |
+
</meta_description>
|
230 |
+
<qty translate="label">
|
231 |
+
<label>Qty</label>
|
232 |
+
<frontend_type>select</frontend_type>
|
233 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
234 |
+
<sort_order>14</sort_order>
|
235 |
+
<show_in_default>1</show_in_default>
|
236 |
+
<show_in_website>1</show_in_website>
|
237 |
+
<show_in_store>1</show_in_store>
|
238 |
+
<tooltip>select Enabled for show 'Qty' field in add product form.</tooltip>
|
239 |
+
</qty>
|
240 |
+
<manage_stock translate="label">
|
241 |
+
<label>Manage Stock</label>
|
242 |
+
<frontend_type>select</frontend_type>
|
243 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
244 |
+
<sort_order>15</sort_order>
|
245 |
+
<show_in_default>1</show_in_default>
|
246 |
+
<show_in_website>1</show_in_website>
|
247 |
+
<show_in_store>1</show_in_store>
|
248 |
+
<tooltip>select Enabled for show 'Manage Stock' field in add product form.</tooltip>
|
249 |
+
</manage_stock>
|
250 |
+
<is_in_stock translate="label">
|
251 |
+
<label>Is In Stock</label>
|
252 |
+
<frontend_type>select</frontend_type>
|
253 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
254 |
+
<sort_order>16</sort_order>
|
255 |
+
<show_in_default>1</show_in_default>
|
256 |
+
<show_in_website>1</show_in_website>
|
257 |
+
<show_in_store>1</show_in_store>
|
258 |
+
<tooltip>select Enabled for show 'Is In Stock' field in add product form.</tooltip>
|
259 |
+
</is_in_stock>
|
260 |
+
<categories translate="label">
|
261 |
+
<label>Categories</label>
|
262 |
+
<frontend_type>select</frontend_type>
|
263 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
264 |
+
<sort_order>17</sort_order>
|
265 |
+
<show_in_default>1</show_in_default>
|
266 |
+
<show_in_website>1</show_in_website>
|
267 |
+
<show_in_store>1</show_in_store>
|
268 |
+
<tooltip>select Enabled for show 'Categories' field in add product form.</tooltip>
|
269 |
+
</categories>
|
270 |
+
<websites translate="label">
|
271 |
+
<label>Websites</label>
|
272 |
+
<frontend_type>select</frontend_type>
|
273 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
274 |
+
<sort_order>18</sort_order>
|
275 |
+
<show_in_default>1</show_in_default>
|
276 |
+
<show_in_website>1</show_in_website>
|
277 |
+
<show_in_store>1</show_in_store>
|
278 |
+
<tooltip>select Enabled for show 'Websites' field in add product form.</tooltip>
|
279 |
+
</websites>
|
280 |
+
<image translate="label">
|
281 |
+
<label>Image</label>
|
282 |
+
<frontend_type>select</frontend_type>
|
283 |
+
<source_model>ng_product/system_config_source_yesno</source_model>
|
284 |
+
<sort_order>19</sort_order>
|
285 |
+
<show_in_default>1</show_in_default>
|
286 |
+
<show_in_website>1</show_in_website>
|
287 |
+
<show_in_store>1</show_in_store>
|
288 |
+
<tooltip>select Enabled for show 'Image' field in add product form.</tooltip>
|
289 |
+
</image>
|
290 |
+
</fields>
|
291 |
+
</product_settings>
|
292 |
+
<product_credentials_settings translate="label" module="ng_product">
|
293 |
+
<label>Credentials Settings</label>
|
294 |
+
<frontend_type>text</frontend_type>
|
295 |
+
<sort_order>3</sort_order>
|
296 |
+
<show_in_default>1</show_in_default>
|
297 |
+
<show_in_website>1</show_in_website>
|
298 |
+
<show_in_store>1</show_in_store>
|
299 |
+
<fields>
|
300 |
+
<username translate="label">
|
301 |
+
<label>Soap Username</label>
|
302 |
+
<frontend_type>text</frontend_type>
|
303 |
+
<sort_order>1</sort_order>
|
304 |
+
<show_in_default>1</show_in_default>
|
305 |
+
<show_in_website>1</show_in_website>
|
306 |
+
<show_in_store>1</show_in_store>
|
307 |
+
<comment>Enter username of soap api.</comment>
|
308 |
+
</username>
|
309 |
+
<password translate="label">
|
310 |
+
<label>Soap Password</label>
|
311 |
+
<frontend_type>password</frontend_type>
|
312 |
+
<sort_order>2</sort_order>
|
313 |
+
<show_in_default>1</show_in_default>
|
314 |
+
<show_in_website>1</show_in_website>
|
315 |
+
<show_in_store>1</show_in_store>
|
316 |
+
<comment>Enter password of soap api.</comment>
|
317 |
+
</password>
|
318 |
+
</fields>
|
319 |
+
</product_credentials_settings>
|
320 |
+
</groups>
|
321 |
+
</ng_product>
|
322 |
+
</sections>
|
323 |
+
</config>
|
app/design/frontend/base/default/layout/NG/product.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 NG
|
23 |
+
* @package NG_Product
|
24 |
+
*/
|
25 |
+
-->
|
26 |
+
<layout>
|
27 |
+
<customer_account>
|
28 |
+
<reference name="customer_account_navigation">
|
29 |
+
<action method="addLink" ifconfig="ng_product/link/enable">
|
30 |
+
<name>product_add_section</name>
|
31 |
+
<path>product/index/index</path>
|
32 |
+
<label helper="ng_product/data/getLinkLabel" />
|
33 |
+
</action>
|
34 |
+
</reference>
|
35 |
+
</customer_account>
|
36 |
+
|
37 |
+
<ng_product_index_index>
|
38 |
+
<reference name="head">
|
39 |
+
<action method="addCss">
|
40 |
+
<stylesheet>css/ng/product.css</stylesheet>
|
41 |
+
</action>
|
42 |
+
</reference>
|
43 |
+
<update handle="customer_account" />
|
44 |
+
<reference name="my.account.wrapper">
|
45 |
+
<block type="core/template" name="ng_product_content" template="ng/add.phtml"/>
|
46 |
+
</reference>
|
47 |
+
</ng_product_index_index>
|
48 |
+
</layout>
|
app/design/frontend/base/default/template/NG/add.phtml
ADDED
@@ -0,0 +1,285 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 base_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 |
+
* Create account form template
|
30 |
+
*
|
31 |
+
* @var $this Mage_Customer_Block_Form_Register
|
32 |
+
*/
|
33 |
+
?>
|
34 |
+
|
35 |
+
|
36 |
+
<div class = "dashboard">
|
37 |
+
<?php echo $this->getMessagesBlock()->getGroupedHtml()
|
38 |
+
?>
|
39 |
+
<div class="box-account box-info">
|
40 |
+
<div class="box-head">
|
41 |
+
<h2><?php echo $this->__('Add Product') ?></h2>
|
42 |
+
</div>
|
43 |
+
</div>
|
44 |
+
</div>
|
45 |
+
|
46 |
+
<?php
|
47 |
+
$required = explode(',', Mage::getStoreConfig('ng_product/product_required_settings/required'));
|
48 |
+
|
49 |
+
$url = Mage::getBaseUrl() . 'catalog/product/addfront';
|
50 |
+
if (isset($_GET['image']) && !empty($_GET['image'])) {
|
51 |
+
$url = Mage::getBaseUrl() . 'catalog/product/editfront';
|
52 |
+
}
|
53 |
+
?>
|
54 |
+
<form action="<?php echo $url; ?>" method="post" class="add-seller-product" id="form-validate" enctype="multipart/form-data" onsubmit="return validateForm();">
|
55 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/name')) : ?>
|
56 |
+
<div>
|
57 |
+
<p class="paddT12">
|
58 |
+
<label class="label_area" for="name"><em>*</em>Name</label>
|
59 |
+
<input type="text" class="input_inner input-text <?php if (in_array("name", $required)) {echo "required-entry";}?>" maxlength="255" title="<?php echo $this->__('Image Name') ?>" name="name" id="name">
|
60 |
+
</p>
|
61 |
+
</div>
|
62 |
+
<?php endif; ?>
|
63 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/sku')) : ?>
|
64 |
+
<div>
|
65 |
+
<p class="paddT12">
|
66 |
+
<label class="label_area" for="sku"><em>*</em>SKU</label>
|
67 |
+
<input type="text" class="input_inner input-text <?php if (in_array("sku", $required)) {echo "required-entry";}?>" maxlength="255" title="<?php echo $this->__('SKU') ?>" name="sku" id="sku">
|
68 |
+
</p>
|
69 |
+
</div>
|
70 |
+
<?php endif; ?>
|
71 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/description')) : ?>
|
72 |
+
<div>
|
73 |
+
<p class="paddT12">
|
74 |
+
<label class="label_area" for="description"><em>*</em>Description</label>
|
75 |
+
<textarea name="description" id="description" class="input_inner_area input-text <?php if (in_array("description", $required)) {echo "required-entry";}?>" title="<?php echo $this->__('Description') ?>"></textarea>
|
76 |
+
</p>
|
77 |
+
</div>
|
78 |
+
<?php endif; ?>
|
79 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/short_description')) : ?>
|
80 |
+
<div>
|
81 |
+
<p class="paddT12">
|
82 |
+
<label class="label_area" for="short_description"><em>*</em>Short Description</label>
|
83 |
+
<textarea name="short_description" id="short_description" class="input_inner_area input-text <?php if (in_array("short_description", $required)) {echo "required-entry";}?>" title="<?php echo $this->__('Short Description') ?>"></textarea>
|
84 |
+
</p>
|
85 |
+
</div>
|
86 |
+
<?php endif; ?>
|
87 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/weight')) : ?>
|
88 |
+
<div>
|
89 |
+
<p class="paddT12">
|
90 |
+
<label class="label_area" for="weight"><em>*</em>Weight</label>
|
91 |
+
<input type="text" class="input_inner input-text <?php if (in_array("weight", $required)) {echo "required-entry";}?> validate-number validate-zero-or-greater" maxlength="255" title="<?php echo $this->__('Weight') ?>" name="weight" id="weight">
|
92 |
+
</p>
|
93 |
+
</div>
|
94 |
+
<?php endif; ?>
|
95 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/status')) : ?>
|
96 |
+
<div>
|
97 |
+
<p class="paddT12">
|
98 |
+
<label class="label_area" for="status"><em>*</em>Status</label>
|
99 |
+
<select name="status" id="status" class="input_inner input-text <?php if (in_array("status", $required)) {echo "required-entry";}?>" style="width:292px;">
|
100 |
+
<option value="1">Enabled</option>
|
101 |
+
<option selected="selected" value="2">Disabled</option>
|
102 |
+
</select>
|
103 |
+
</p>
|
104 |
+
</div>
|
105 |
+
<?php endif; ?>
|
106 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/url_key')) : ?>
|
107 |
+
<div>
|
108 |
+
<p class="paddT12">
|
109 |
+
<label class="label_area" for="url_key"><em>*</em>URL Key</label>
|
110 |
+
<input type="text" class="input_inner input-text <?php if (in_array("url_key", $required)) {echo "required-entry";}?>" maxlength="255" title="<?php echo $this->__('URL Key') ?>" name="url_key" id="url_key">
|
111 |
+
</p>
|
112 |
+
</div>
|
113 |
+
<?php endif; ?>
|
114 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/visibility')) : ?>
|
115 |
+
<div>
|
116 |
+
<p class="paddT12">
|
117 |
+
<?php
|
118 |
+
$visibilityObj = new Mage_Catalog_Model_Product_Visibility();
|
119 |
+
$visibilityOptions = $visibilityObj->getAllOptions();
|
120 |
+
?>
|
121 |
+
<label class="label_area" for="visibility"><em>*</em>Visibility</label>
|
122 |
+
<select name="visibility" id="visibility" class="input_inner input-text <?php if (in_array("visibility", $required)) {echo "required-entry";}?>" style="width:292px;">
|
123 |
+
<?php
|
124 |
+
foreach ($visibilityOptions as $options) {
|
125 |
+
echo '<option value="' . $options["value"] . '">' . $options["label"] . '</option>';
|
126 |
+
}
|
127 |
+
?>
|
128 |
+
</select>
|
129 |
+
</p>
|
130 |
+
</div>
|
131 |
+
<?php endif; ?>
|
132 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/price')) : ?>
|
133 |
+
<div>
|
134 |
+
<p class="paddT12">
|
135 |
+
<label class="label_area" for="price"><em>*</em>Price</label>
|
136 |
+
<input type="text" class="input_inner input-text <?php if (in_array("price", $required)) {echo "required-entry";}?> validate-number validate-zero-or-greater" maxlength="255" title="<?php echo $this->__('Price') ?>" name="price" id="price">
|
137 |
+
</p>
|
138 |
+
</div>
|
139 |
+
<?php endif; ?>
|
140 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/tax_class')) : ?>
|
141 |
+
<div>
|
142 |
+
<p class="paddT12">
|
143 |
+
<?php
|
144 |
+
$taxClassObj = new Mage_Tax_Model_Class_Source_Product();
|
145 |
+
$taxClassOptions = $taxClassObj->getAllOptions()
|
146 |
+
?>
|
147 |
+
<label class="label_area" for="tax_class"><em>*</em>Tax Class</label>
|
148 |
+
<select name="tax_class" id="tax_class" class="input_inner input-text <?php if (in_array("tax_class", $required)) {echo "required-entry";}?>" style="width:292px;">
|
149 |
+
<?php
|
150 |
+
foreach ($taxClassOptions as $options) {
|
151 |
+
echo '<option value="' . $options["value"] . '">' . $options["label"] . '</option>';
|
152 |
+
}
|
153 |
+
?>
|
154 |
+
</select>
|
155 |
+
</p>
|
156 |
+
</div>
|
157 |
+
<?php endif; ?>
|
158 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/meta_title')) : ?>
|
159 |
+
<div>
|
160 |
+
<p class="paddT12">
|
161 |
+
<label class="label_area" for="meta_title"><em>*</em>Meta Title</label>
|
162 |
+
<input type="text" class="input_inner input-text <?php if (in_array("meta_title", $required)) {echo "required-entry";}?>" maxlength="255" title="<?php echo $this->__('Meta Title') ?>" name="meta_title" id="meta_title">
|
163 |
+
</p>
|
164 |
+
</div>
|
165 |
+
<?php endif; ?>
|
166 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/meta_keyword')) : ?>
|
167 |
+
<div>
|
168 |
+
<p class="paddT12">
|
169 |
+
<label class="label_area" for="meta_keyword"><em>*</em>Meta Keywords</label>
|
170 |
+
<textarea name="meta_keyword" id="meta_keyword" class="input_inner_area input-text <?php if (in_array("meta_keyword", $required)) {echo "required-entry";}?>" title="<?php echo $this->__('Meta Keyword') ?>"></textarea>
|
171 |
+
</p>
|
172 |
+
</div>
|
173 |
+
<?php endif; ?>
|
174 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/meta_description')) : ?>
|
175 |
+
<div>
|
176 |
+
<p class="paddT12">
|
177 |
+
<label class="label_area" for="meta_description"><em>*</em>Meta Description</label>
|
178 |
+
<textarea name="meta_description" id="meta_description" class="input_inner_area input-text <?php if (in_array("meta_description", $required)) {echo "required-entry";}?>" title="<?php echo $this->__('Meta Description') ?>"></textarea>
|
179 |
+
</p>
|
180 |
+
</div>
|
181 |
+
<?php endif; ?>
|
182 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/qty')) : ?>
|
183 |
+
<div>
|
184 |
+
<p class="paddT12">
|
185 |
+
<label class="label_area" for="qty"><em>*</em>Qty</label>
|
186 |
+
<input type="text" class="input_inner input-text <?php if (in_array("qty", $required)) {echo "required-entry";}?> validate-number validate-zero-or-greater" maxlength="255" title="<?php echo $this->__('Qty') ?>" name="qty" id="qty">
|
187 |
+
</p>
|
188 |
+
</div>
|
189 |
+
<?php endif; ?>
|
190 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/manage_stock')) : ?>
|
191 |
+
<div>
|
192 |
+
<p class="paddT12">
|
193 |
+
<label class="label_area" for="manage_stock"><em>*</em>Manage Stock</label>
|
194 |
+
<select name="manage_stock" id="manage_stock" class="input_inner input-text <?php if (in_array("manage_stock", $required)) {echo "required-entry";}?>" style="width:292px;">
|
195 |
+
<option value="1">Yes</option>
|
196 |
+
<option value="0">No</option>
|
197 |
+
</select>
|
198 |
+
</p>
|
199 |
+
</div>
|
200 |
+
<?php endif; ?>
|
201 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/is_in_stock')) : ?>
|
202 |
+
<div>
|
203 |
+
<p class="paddT12">
|
204 |
+
<label class="label_area" for="is_in_stock"><em>*</em>Is In Stock</label>
|
205 |
+
<select name="is_in_stock" id="is_in_stock" class="input_inner input-text <?php if (in_array("is_in_stock", $required)) {echo "required-entry";}?>" style="width:292px;">
|
206 |
+
<option value="1">In Stock</option>
|
207 |
+
<option selected="selected" value="0">Out of Stock</option>
|
208 |
+
</select>
|
209 |
+
</p>
|
210 |
+
</div>
|
211 |
+
<?php endif; ?>
|
212 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/categories')) : ?>
|
213 |
+
<div>
|
214 |
+
<p class="paddT12">
|
215 |
+
<?php
|
216 |
+
$category = Mage::getModel('catalog/category');
|
217 |
+
$tree = $category->getTreeModel();
|
218 |
+
$tree->load();
|
219 |
+
$ids = $tree->getCollection()->getAllIds();
|
220 |
+
?>
|
221 |
+
<label class="label_area" for="categories"><em>*</em>Categories</label>
|
222 |
+
<select name="categories" id="categories" class="input_inner input-text <?php if (in_array("categories", $required)) {echo "required-entry";}?>" style="width:292px;">
|
223 |
+
<?php
|
224 |
+
echo '<option value="">-- Please Select --</option>';
|
225 |
+
foreach ($ids as $id) {
|
226 |
+
$cat = Mage::getModel('catalog/category');
|
227 |
+
$cat->load($id);
|
228 |
+
if ($cat->getIsActive()) {
|
229 |
+
$dash = '';
|
230 |
+
if ($cat->getLevel() == 3)
|
231 |
+
$dash = "-";
|
232 |
+
if ($cat->getLevel() == 4)
|
233 |
+
$dash = "--";
|
234 |
+
if ($cat->getLevel() == 5)
|
235 |
+
$dash = "---";
|
236 |
+
echo '<option value="' . $cat->getId() . '">' . $dash . ucwords($cat->getName()) . '</option>';
|
237 |
+
}
|
238 |
+
}
|
239 |
+
?>
|
240 |
+
</select>
|
241 |
+
</p>
|
242 |
+
</div>
|
243 |
+
<?php endif; ?>
|
244 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/websites')) : ?>
|
245 |
+
<div>
|
246 |
+
<p class="paddT12">
|
247 |
+
<?php
|
248 |
+
$_websites = Mage::app()->getWebsites();
|
249 |
+
?>
|
250 |
+
<label class="label_area" for="websites"><em>*</em>Websites</label>
|
251 |
+
<select name="websites" id="websites" class="input_inner input-text <?php if (in_array("websites", $required)) {echo "required-entry";}?>" style="width:292px;">
|
252 |
+
<?php
|
253 |
+
echo '<option value="">-- Please Select --</option>';
|
254 |
+
foreach ($_websites as $options) {
|
255 |
+
echo '<option value="' . $options["website_id"] . '">' . $options["name"] . '</option>';
|
256 |
+
}
|
257 |
+
?>
|
258 |
+
</select>
|
259 |
+
</p>
|
260 |
+
</div>
|
261 |
+
<?php endif; ?>
|
262 |
+
<?php if (Mage::getStoreConfig('ng_product/product_settings/image')) : ?>
|
263 |
+
<div>
|
264 |
+
<p class="paddT12">
|
265 |
+
<label class="label_area" for="image"><em>*</em>Upload Image</label>
|
266 |
+
<input type="file" class="<?php if (in_array("image", $required)) {echo "required-entry";}?>" maxlength="255" title="<?php echo $this->__('Image') ?>" value="" name="image" id="btnUpload">
|
267 |
+
</p>
|
268 |
+
</div>
|
269 |
+
<?php endif; ?>
|
270 |
+
<div>
|
271 |
+
<input name="terms" type="checkbox" id="terms" value="agree" class="fleft input-text required-entry" style="width:20px"/>
|
272 |
+
<span class="paddL7 fleft" style="font-size:11px;"><strong>I have read and understood the terms and conditions.</strong></span> </p>
|
273 |
+
</div>
|
274 |
+
<span class="buy_now paddL15 fleft">
|
275 |
+
<input type="submit" style="height:23px;" title="<?php echo $this->__('Add Product') ?>" class="" value="<?php echo $this->__('Add Product') ?>" />
|
276 |
+
</span>
|
277 |
+
<input type="hidden" name="customer_group" id="customer_group" value="<?php echo Mage::getSingleton('customer/session')->getCustomerGroupId(); ?>" />
|
278 |
+
<input type="hidden" name="customer_email" id="customer_email" value="<?php echo Mage::getSingleton('customer/session')->getCustomer()->getEmail(); ?>" />
|
279 |
+
</form>
|
280 |
+
|
281 |
+
<script type="text/javascript">
|
282 |
+
//< ![CDATA[
|
283 |
+
var customForm = new VarienForm('form-validate');
|
284 |
+
//]]>
|
285 |
+
</script>
|
app/etc/modules/NG_Product.xml
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
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 NG
|
23 |
+
* @package NG_Customer
|
24 |
+
*/
|
25 |
+
-->
|
26 |
+
<config>
|
27 |
+
<modules>
|
28 |
+
<NG_Product>
|
29 |
+
<active>true</active>
|
30 |
+
<codePool>community</codePool>
|
31 |
+
</NG_Product>
|
32 |
+
</modules>
|
33 |
+
</config>
|
media/catalog/product/images/1434476196-Lighthouse.jpg
ADDED
Binary file
|
package.xml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>ng_product</name>
|
4 |
+
<version>1.0.1</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license>MIT</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>This extension is related to add simple product from frontend.</summary>
|
10 |
+
<description>This extension is related to add simple product from frontend my account section.</description>
|
11 |
+
<notes>1.0.1</notes>
|
12 |
+
<authors><author><name>NG</name><user>extensionsng</user><email>extensionsng@gmail.com</email></author></authors>
|
13 |
+
<date>2015-06-16</date>
|
14 |
+
<time>18:36:31</time>
|
15 |
+
<contents><target name="magecommunity"><dir name="NG"><dir name="Product"><dir name="Helper"><file name="Data.php" hash="5a4f25629efde2df669b045ddedc1934"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><file name="required.php" hash="6a892e015c9c57ab933dd3497ce47854"/><file name="yesno.php" hash="8f1179bfb6bc1b90928f8c13d3aec06d"/></dir></dir></dir></dir><dir name="controllers"><dir name="Catalog"><file name="ProductController.php" hash="1e2f76d4d788fd5b95c782d0be1933ce"/></dir><file name="IndexController.php" hash="8abfc439c2dc6e51bf8cf423b9ba5394"/></dir><dir name="etc"><file name="adminhtml.xml" hash="62f094d4373fd3205ba5fcc49798ffe0"/><file name="config.xml" hash="dce5df08bd8013fce7249bc2654f88e1"/><file name="system.xml" hash="e9505177d4cdcb263d47da5723ae0aa7"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="NG"><file name="product.xml" hash="bb99cc93b0ee90025729c7a0e00e98c7"/></dir></dir><dir name="template"><dir name="NG"><file name="add.phtml" hash="9282b27f2124a630b8f0c092447c48ef"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="NG_Product.xml" hash="8aef7fe15e1732e7dc5417ffcfbebba5"/></dir></target><target name="magemedia"><dir name="catalog"><dir name="product"><dir name="images"><file name="1434476196-Lighthouse.jpg" hash="8969288f4245120e7c3870287cce0ff3"/></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="NG"><file name="product.css" hash="29eba9a239d08d15c0a528ee9c137388"/></dir></dir></dir></dir></dir></target></contents>
|
16 |
+
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
+
</package>
|
skin/frontend/base/default/css/NG/product.css
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Magento
|
3 |
+
*
|
4 |
+
* NOTICE OF LICENSE
|
5 |
+
*
|
6 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
7 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
8 |
+
* It is also available through the world-wide-web at this URL:
|
9 |
+
* http://opensource.org/licenses/afl-3.0.php
|
10 |
+
* If you did not receive a copy of the license and are unable to
|
11 |
+
* obtain it through the world-wide-web, please send an email
|
12 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
13 |
+
*
|
14 |
+
* DISCLAIMER
|
15 |
+
*
|
16 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
17 |
+
* versions in the future. If you wish to customize Magento for your
|
18 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
19 |
+
*
|
20 |
+
* @category NG
|
21 |
+
* @package NG_Product
|
22 |
+
*/
|
23 |
+
.add-seller-product .label_area{
|
24 |
+
float: left;
|
25 |
+
width: 30%;
|
26 |
+
}
|
27 |
+
.add-seller-product input[type = 'text']{
|
28 |
+
width: 67%;
|
29 |
+
}
|
30 |
+
.add-seller-product textarea{
|
31 |
+
width: 67%;
|
32 |
+
height: 150px;
|
33 |
+
}
|
34 |
+
.add-seller-product .validation-advice{
|
35 |
+
margin-left: 30%;
|
36 |
+
}
|