Version Notes
New multisite module
Download this release
Release Info
| Developer | addwish |
| Extension | addwish |
| Version | 0.20.0 |
| Comparing to | |
| See all releases | |
Code changes from version 0.19.3 to 0.20.0
app/code/local/Addwish/Awext/Helper/Data.php
CHANGED
|
@@ -2,7 +2,6 @@
|
|
| 2 |
|
| 3 |
class Addwish_Awext_Helper_Data extends Mage_Core_Helper_Abstract
|
| 4 |
{
|
| 5 |
-
|
| 6 |
public function getProductData($product, $extraAttributes = array()) {
|
| 7 |
$data = array();
|
| 8 |
|
|
@@ -26,7 +25,11 @@ class Addwish_Awext_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 26 |
$data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 27 |
$data['hierarchies'] = $this->getProductHierarchies($product);
|
| 28 |
$data['brand'] = $product->getData('brand');
|
| 29 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
if($product->getData('gender')) {
|
| 32 |
$attr = $product->getResource()->getAttribute("gender");
|
|
@@ -57,10 +60,10 @@ class Addwish_Awext_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 57 |
|
| 58 |
public function getProductPrice($product, $discountPrice = false) {
|
| 59 |
if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_GROUPED) {
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
}
|
| 65 |
|
| 66 |
if ($discountPrice) {
|
|
@@ -76,80 +79,116 @@ class Addwish_Awext_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 76 |
}
|
| 77 |
|
| 78 |
private function cheapestProductFromGroup($product) {
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
|
| 89 |
|
| 90 |
public function getProductHierarchies($product) {
|
| 91 |
$cats = $product->getCategoryIds();
|
|
|
|
| 92 |
|
| 93 |
-
|
| 94 |
-
$
|
| 95 |
-
foreach
|
| 96 |
-
$
|
| 97 |
-
$
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
continue;
|
| 102 |
-
}
|
| 103 |
-
|
| 104 |
-
$key = array_search($parent->getId(),$cats);
|
| 105 |
-
if($key !== false) {
|
| 106 |
-
unset($cats[$key]);
|
| 107 |
}
|
| 108 |
}
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
|
|
|
|
|
|
|
|
|
| 117 |
}
|
| 118 |
}
|
| 119 |
return $hierarchies;
|
| 120 |
}
|
| 121 |
|
| 122 |
-
private
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
}
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 133 |
}
|
| 134 |
}
|
| 135 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
}
|
| 137 |
|
| 138 |
-
public function
|
| 139 |
-
|
| 140 |
if($product->isConfigurable()) {
|
| 141 |
$allProducts = $product->getTypeInstance(true)->getUsedProducts(null, $product);
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
$inStock = true;
|
|
|
|
| 147 |
}
|
| 148 |
}
|
|
|
|
| 149 |
} else {
|
| 150 |
-
$inStock =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
}
|
| 152 |
-
return $inStock;
|
| 153 |
}
|
| 154 |
|
| 155 |
-
}
|
| 2 |
|
| 3 |
class Addwish_Awext_Helper_Data extends Mage_Core_Helper_Abstract
|
| 4 |
{
|
|
|
|
| 5 |
public function getProductData($product, $extraAttributes = array()) {
|
| 6 |
$data = array();
|
| 7 |
|
| 25 |
$data['currency'] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 26 |
$data['hierarchies'] = $this->getProductHierarchies($product);
|
| 27 |
$data['brand'] = $product->getData('brand');
|
| 28 |
+
$stockInfo = $this->getProductStockInfo($product);
|
| 29 |
+
$data['instock'] = $stockInfo['inStock'];
|
| 30 |
+
$data['qty'] = $stockInfo['qty'];
|
| 31 |
+
$data['visibility'] = $product->getVisibility();
|
| 32 |
+
|
| 33 |
|
| 34 |
if($product->getData('gender')) {
|
| 35 |
$attr = $product->getResource()->getAttribute("gender");
|
| 60 |
|
| 61 |
public function getProductPrice($product, $discountPrice = false) {
|
| 62 |
if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_GROUPED) {
|
| 63 |
+
$p = $this->cheapestProductFromGroup($product);
|
| 64 |
+
if (isset($p)) {
|
| 65 |
+
$product = $p;
|
| 66 |
+
}
|
| 67 |
}
|
| 68 |
|
| 69 |
if ($discountPrice) {
|
| 79 |
}
|
| 80 |
|
| 81 |
private function cheapestProductFromGroup($product) {
|
| 82 |
+
$cheapest = null;
|
| 83 |
+
$associated = $product->getTypeInstance(true)->getAssociatedProducts($product);
|
| 84 |
+
foreach ($associated as $p) {
|
| 85 |
+
if ($cheapest == null || $cheapest->getFinalPrice() > $p->getFinalPrice()) {
|
| 86 |
+
$cheapest = $p;
|
| 87 |
+
}
|
| 88 |
+
}
|
| 89 |
+
return $cheapest;
|
| 90 |
+
}
|
| 91 |
|
| 92 |
|
| 93 |
public function getProductHierarchies($product) {
|
| 94 |
$cats = $product->getCategoryIds();
|
| 95 |
+
$categoryData = $this->getCategoryData();
|
| 96 |
|
| 97 |
+
$hierarchies = array();
|
| 98 |
+
$cats = array_unique($cats);
|
| 99 |
+
foreach($cats as $i) {
|
| 100 |
+
$inOther = false;
|
| 101 |
+
foreach($cats as $j) {
|
| 102 |
+
if(in_array($i, $categoryData['parentCategories'][$j])) {
|
| 103 |
+
$inOther = true;
|
| 104 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
}
|
| 106 |
}
|
| 107 |
+
if(!$inOther) {
|
| 108 |
+
$hierarchy = array();
|
| 109 |
+
$current = $i;
|
| 110 |
+
while(isset($categoryData['parentForCategory'][$current])) {
|
| 111 |
+
$next = $categoryData['parentForCategory'][$current];
|
| 112 |
+
$hierarchy[] = $categoryData['categoryName'][$current];
|
| 113 |
+
$current = $next;
|
| 114 |
+
}
|
| 115 |
+
if(count($hierarchy) > 0) {
|
| 116 |
+
$hierarchies[] = array_reverse($hierarchy);
|
| 117 |
+
}
|
| 118 |
}
|
| 119 |
}
|
| 120 |
return $hierarchies;
|
| 121 |
}
|
| 122 |
|
| 123 |
+
private static $_categoryData = null;
|
| 124 |
+
private function getCategoryData() {
|
| 125 |
+
|
| 126 |
+
if($this->_categoryData != null) {
|
| 127 |
+
return $this->_categoryData;
|
| 128 |
+
}
|
| 129 |
+
$root = Mage::app()->getStore()->getRootCategoryId();
|
| 130 |
+
|
| 131 |
+
$categories = Mage::getModel('catalog/category')
|
| 132 |
+
->getCollection()
|
| 133 |
+
->addAttributeToSelect('entity_id')
|
| 134 |
+
->addAttributeToSelect('name')
|
| 135 |
+
->addAttributeToSelect('parent_id')
|
| 136 |
+
->addIsActiveFilter();
|
| 137 |
+
|
| 138 |
+
$parentForCategory = array();
|
| 139 |
+
$categoryName = array();
|
| 140 |
+
foreach($categories as $cat){
|
| 141 |
+
if($cat->entity_id == $root) {
|
| 142 |
+
continue;
|
| 143 |
+
}
|
| 144 |
+
$parentForCategory[$cat->entity_id] = $cat->parent_id;
|
| 145 |
+
$categoryName[$cat->entity_id] = $cat->name;
|
| 146 |
}
|
| 147 |
+
|
| 148 |
+
$parentList = array();
|
| 149 |
+
foreach($categories as $cat){
|
| 150 |
+
if($cat->entity_id == $root) {
|
| 151 |
+
continue;
|
| 152 |
+
}
|
| 153 |
+
$parentForCategory[$cat->entity_id] = $cat->parent_id;
|
| 154 |
+
$parentList[$cat->entity_id] = array();
|
| 155 |
+
$i = $cat->entity_id;
|
| 156 |
+
while(isset($parentForCategory[$i])) {
|
| 157 |
+
$next = $parentForCategory[$i];
|
| 158 |
+
$parentList[$cat->entity_id][] = $next;
|
| 159 |
+
$i = $next;
|
| 160 |
}
|
| 161 |
}
|
| 162 |
+
|
| 163 |
+
$this->_categoryData = array(
|
| 164 |
+
'parentCategories' => $parentList,
|
| 165 |
+
'parentForCategory' => $parentForCategory,
|
| 166 |
+
'categoryName' => $categoryName
|
| 167 |
+
);
|
| 168 |
+
return $this->_categoryData;
|
| 169 |
}
|
| 170 |
|
| 171 |
+
public function getProductStockInfo($product) {
|
| 172 |
+
|
| 173 |
if($product->isConfigurable()) {
|
| 174 |
$allProducts = $product->getTypeInstance(true)->getUsedProducts(null, $product);
|
| 175 |
+
$inStock = false;
|
| 176 |
+
foreach ($allProducts as $p) {
|
| 177 |
+
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($p);
|
| 178 |
+
if ($p->isSaleable() && $stock->getIsInStock() != 0) {
|
| 179 |
$inStock = true;
|
| 180 |
+
break;
|
| 181 |
}
|
| 182 |
}
|
| 183 |
+
return array('inStock' => $inStock, 'qty' => $stock ? $stock->getQty() : 0);
|
| 184 |
} else {
|
| 185 |
+
$inStock = false;
|
| 186 |
+
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
|
| 187 |
+
if ($product->isSaleable() && $stock->getIsInStock() != 0) {
|
| 188 |
+
$inStock = true;
|
| 189 |
+
}
|
| 190 |
+
return array('inStock' => $inStock, 'qty' => $stock->getQty());
|
| 191 |
}
|
|
|
|
| 192 |
}
|
| 193 |
|
| 194 |
+
}
|
app/code/local/Addwish/Awext/controllers/IndexController.php
CHANGED
|
@@ -192,7 +192,7 @@ class Addwish_Awext_IndexController extends Mage_Core_Controller_Front_Action
|
|
| 192 |
->getCollection()
|
| 193 |
->addWebsiteFilter(array(Mage::app()->getStore()->getWebsiteId()))
|
| 194 |
->addStoreFilter(Mage::app()->getStore()->getStoreId())
|
| 195 |
-
->addAttributeToFilter('visibility',
|
| 196 |
->addAttributeToSelect('*')
|
| 197 |
->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
|
| 198 |
|
| 192 |
->getCollection()
|
| 193 |
->addWebsiteFilter(array(Mage::app()->getStore()->getWebsiteId()))
|
| 194 |
->addStoreFilter(Mage::app()->getStore()->getStoreId())
|
| 195 |
+
->addAttributeToFilter('visibility', array('neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE))
|
| 196 |
->addAttributeToSelect('*')
|
| 197 |
->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
|
| 198 |
|
app/code/local/Addwish/Awext/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Addwish_Awext>
|
| 5 |
-
<version>0.
|
| 6 |
</Addwish_Awext>
|
| 7 |
</modules>
|
| 8 |
<frontend>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Addwish_Awext>
|
| 5 |
+
<version>0.20.0</version>
|
| 6 |
</Addwish_Awext>
|
| 7 |
</modules>
|
| 8 |
<frontend>
|
app/design/frontend/base/default/template/addwish/product-span.phtml
CHANGED
|
@@ -1,6 +1,8 @@
|
|
| 1 |
<?php
|
| 2 |
$product = Mage::registry('current_product');
|
| 3 |
$productData = Mage::helper('awext')->getProductData($product);
|
|
|
|
|
|
|
| 4 |
|
| 5 |
$parts=explode("uenc/", Mage::helper('checkout/cart')->getAddUrl($product));
|
| 6 |
$parts=explode("/product",$parts[1]);
|
| 1 |
<?php
|
| 2 |
$product = Mage::registry('current_product');
|
| 3 |
$productData = Mage::helper('awext')->getProductData($product);
|
| 4 |
+
unset($productData['qty']);
|
| 5 |
+
unset($productData['visibility']);
|
| 6 |
|
| 7 |
$parts=explode("uenc/", Mage::helper('checkout/cart')->getAddUrl($product));
|
| 8 |
$parts=explode("/product",$parts[1]);
|
package.xml
CHANGED
|
@@ -1,2 +1,2 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
-
<package><name>addwish</name><version>0.
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
+
<package><name>addwish</name><version>0.20.0</version><stability>stable</stability><license>GNU General Public License (GPL)</license><channel>community</channel><extends></extends><summary>New multisite module</summary><description>New multisite module</description><notes>New multisite module</notes><authors><author><name>addwish</name><user>addwish</user><email>krj@addwish.com</email></author></authors><date>2017-04-06</date><time>5:48:31</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>8.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="code"><dir name="local"><dir name="Addwish"><dir name="Awext"><dir name="Block"><dir name="Adminhtml"><dir name="Awext"><file name="View.php" hash="a5a5aa835bdbaf1102b50e90dec526a8"/><dir name="View"><file name="Tabs.php" hash="b68e152475528d168d92ca6e8ad6eafc"/><dir name="Tab"><file name="Details.php" hash="eff51a28eacafbe07577af60237ad9c4"/><file name="Recommend.php" hash="02d71705312a1de1da6445027bb0926d"/><file name="Search.php" hash="c94f0146c7529f0542100a871446c4f0"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="c777dfcbb9c8af630f0a9202b2463f47"/><dir name="Adminhtml"><file name="AwextController.php" hash="abf8b0b390b17add398d3af44e394d91"/></dir></dir><dir name="etc"><file name="config.xml" hash="22a2e7698784513966dbe970827441f0"/></dir><dir name="Helper"><file name="Data.php" hash="5e87f59f899042deb77c00e67555cf5b"/></dir><dir name="Model"><file name="Awext.php" hash="1925cb6fd94cc7cd6baecda71964a424"/><file name="Observer.php" hash="510c80ff97a3d611f1f6bb9b54d486bb"/><dir name="Mysql4"><file name="Awext.php" hash="acd112233e367ebe80caf114f5dfe653"/><dir name="Awext"><file name="Collection.php" hash="12afe62372c67a5bd9154695c8d095f3"/></dir></dir></dir><dir name="sql"><dir name="addwish_setup"><file name="mysql4-install-0.0.4.php" hash="77a5d3d50380396c9bd2a9dfdfea8905"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="awext.xml" hash="b632bf4a38cfb992303f97cd7a449a15"/></dir><dir name="template"><dir name="awext"><file name="list.phtml" hash="5eedadcd2400f296b7ff3a77823cc4e4"/><file name="recommendations.phtml" hash="f8e63393c235903babd5a27a68b4a054"/><file name="search.phtml" hash="82d7130e256b0689d3b1682bf097fa55"/><file name="store-selector.phtml" hash="275b91522d136265f22de6550c7ca6dc"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="awext.xml" hash="d9e749008e9d97afd7b75855857a18b3"/></dir><dir name="template"><dir name="addwish"><file name="addwish-head.phtml" hash="c5b6fa2cae55ad1ddd4a5c64f8d532f6"/><file name="basket-span.phtml" hash="e94f8c7f460ab66e3906fcc0e3fdf76b"/><file name="conversion-span.phtml" hash="0d9368e73977b4e9c1c0fb00d34cb01c"/><file name="integrator.phtml" hash="0a41e4e5c3f63f05dfce43040e52dd53"/><file name="product-span.phtml" hash="690c67739d6d4ad49c48a21939c1ab4f"/><file name="search-result-page.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="upsells-page.phtml" hash="ac41002da8c7bb57233599a00053ef77"/></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Addwish_Awext.xml" hash="fea2883f86536f249670eea31980f72c"/></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><file name="addwish.css" hash="df6e33a58cf2381ceaba72253a29796d"/></dir><dir name="images"><dir name="addwish"><file name="addwish.png" hash="a588d24d1919d9206eff40a886b88ef1"/></dir></dir></dir></dir></dir></dir></target></contents></package>
|
