Version Notes
Please contact our support desk if you have any problems.
Download this release
Release Info
| Developer | Magento Core Team |
| Extension | Mage_Codi |
| Version | 4.2.1 |
| Comparing to | |
| See all releases | |
Code changes from version 4.2.0 to 4.2.1
app/code/community/Mage/CodiScript/Model/Files.php
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
<?php
|
| 2 |
-
// 2015-03-
|
| 3 |
class ConfiguredProductLine{
|
| 4 |
public $optionIds = array();
|
| 5 |
public $line = NULL;
|
|
@@ -194,6 +194,14 @@ memory_get_usage ".memory_get_usage()." / ".memory_get_usage(TRUE)."
|
|
| 194 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 195 |
$ProductAttributes .= $sp.$TierPriceAttributes;
|
| 196 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 197 |
if( !empty( $ProductAttributes ) )
|
| 198 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 199 |
if( $this->_DEBUG ) echo "product image: ".$product->getImage()."
|
|
@@ -503,6 +511,14 @@ thumbnail: ".$product->getThumbnail()."
|
|
| 503 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 504 |
$ProductAttributes.= $sp.$TierPriceAttributes;
|
| 505 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 506 |
if( !empty( $ProductAttributes ) )
|
| 507 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 508 |
if( $this->_DEBUG ) echo "product image: ".$product->getImage()."
|
|
@@ -584,7 +600,6 @@ thumbnail: ".$product->getThumbnail()."
|
|
| 584 |
}
|
| 585 |
$ConfigurableAttributes = $product->getTypeInstance( true )->getConfigurableAttributes( $product );
|
| 586 |
foreach( $ConfigurableAttributes as $attribute ){
|
| 587 |
-
// $attribute->setStoreId( $this->StoreId );
|
| 588 |
if( $this->_DEBUG ){
|
| 589 |
echo "configurable attr: ".$attribute->getLabel()."
|
| 590 |
";
|
|
@@ -1023,6 +1038,14 @@ thumbnail: ".$product->getThumbnail()."
|
|
| 1023 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 1024 |
$ProductAttributes.= $sp.$TierPriceAttributes;
|
| 1025 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1026 |
if( !empty( $ProductAttributes ) )
|
| 1027 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 1028 |
$ProdRPrice = $product->getData('price');
|
|
@@ -1202,6 +1225,86 @@ thumbnail: ".$product->getThumbnail()."
|
|
| 1202 |
$optNumber++;
|
| 1203 |
}
|
| 1204 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1205 |
|
| 1206 |
private function _cleanStr( &$str ){
|
| 1207 |
return str_replace("\n"," ", str_replace("\r"," ", str_replace("\r\n"," ", str_replace("\t"," ", $str ) ) ) );
|
| 1 |
<?php
|
| 2 |
+
// 2015-03-30
|
| 3 |
class ConfiguredProductLine{
|
| 4 |
public $optionIds = array();
|
| 5 |
public $line = NULL;
|
| 194 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 195 |
$ProductAttributes .= $sp.$TierPriceAttributes;
|
| 196 |
}
|
| 197 |
+
if( $this->importoptionsasattributes ){
|
| 198 |
+
$optionsAsAttributes = $this->_getCustomOptionsAsAttributes( $product );
|
| 199 |
+
if( !empty ( $optionsAsAttributes ) ){
|
| 200 |
+
if( !empty( $ProductAttributes ) )
|
| 201 |
+
$ProductAttributes .= "|";
|
| 202 |
+
$ProductAttributes .= $optionsAsAttributes;
|
| 203 |
+
}
|
| 204 |
+
}
|
| 205 |
if( !empty( $ProductAttributes ) )
|
| 206 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 207 |
if( $this->_DEBUG ) echo "product image: ".$product->getImage()."
|
| 511 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 512 |
$ProductAttributes.= $sp.$TierPriceAttributes;
|
| 513 |
}
|
| 514 |
+
if( $this->importoptionsasattributes ){
|
| 515 |
+
$optionsAsAttributes = $this->_getCustomOptionsAsAttributes( $product );
|
| 516 |
+
if( !empty ( $optionsAsAttributes ) ){
|
| 517 |
+
if( !empty( $ProductAttributes ) )
|
| 518 |
+
$ProductAttributes .= "|";
|
| 519 |
+
$ProductAttributes .= $optionsAsAttributes;
|
| 520 |
+
}
|
| 521 |
+
}
|
| 522 |
if( !empty( $ProductAttributes ) )
|
| 523 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 524 |
if( $this->_DEBUG ) echo "product image: ".$product->getImage()."
|
| 600 |
}
|
| 601 |
$ConfigurableAttributes = $product->getTypeInstance( true )->getConfigurableAttributes( $product );
|
| 602 |
foreach( $ConfigurableAttributes as $attribute ){
|
|
|
|
| 603 |
if( $this->_DEBUG ){
|
| 604 |
echo "configurable attr: ".$attribute->getLabel()."
|
| 605 |
";
|
| 1038 |
$sp = ( empty( $ProductAttributes ) || empty( $TierPriceAttributes ) ) ? "" : "|";
|
| 1039 |
$ProductAttributes.= $sp.$TierPriceAttributes;
|
| 1040 |
}
|
| 1041 |
+
if( $this->importoptionsasattributes ){
|
| 1042 |
+
$optionsAsAttributes = $this->_getCustomOptionsAsAttributes( $product );
|
| 1043 |
+
if( !empty ( $optionsAsAttributes ) ){
|
| 1044 |
+
if( !empty( $ProductAttributes ) )
|
| 1045 |
+
$ProductAttributes .= "|";
|
| 1046 |
+
$ProductAttributes .= $optionsAsAttributes;
|
| 1047 |
+
}
|
| 1048 |
+
}
|
| 1049 |
if( !empty( $ProductAttributes ) )
|
| 1050 |
$ProductAttributes = $this->_cleanStr( $ProductAttributes );
|
| 1051 |
$ProdRPrice = $product->getData('price');
|
| 1225 |
$optNumber++;
|
| 1226 |
}
|
| 1227 |
}
|
| 1228 |
+
|
| 1229 |
+
private function _getCustomOptionsAsAttributes( $product ){
|
| 1230 |
+
$attributes = "";
|
| 1231 |
+
$customOptions = $product->getOptions();
|
| 1232 |
+
if( $customOptions ){
|
| 1233 |
+
//We should support all 4 selects: dropdown, radio buttons, checkbox, and multiple select.
|
| 1234 |
+
//\app\code\core\Mage\Adminhtml\Block\Catalog\Product\Edit\Tab\Options\Option.php
|
| 1235 |
+
if( $this->_DEBUG ) echo "=== customOptions ===
|
| 1236 |
+
";
|
| 1237 |
+
$max_sort_order = 0;
|
| 1238 |
+
foreach( $customOptions as $option ){
|
| 1239 |
+
if( $option->getSortOrder() > $max_sort_order ){
|
| 1240 |
+
$max_sort_order = $option->getSortOrder();
|
| 1241 |
+
} else if( $option->getSortOrder() < 0 ){
|
| 1242 |
+
$option->setSortOrder( -1 );
|
| 1243 |
+
}
|
| 1244 |
+
}
|
| 1245 |
+
if( $this->_DEBUG ){
|
| 1246 |
+
for( $sortorder = -1; $sortorder <= $max_sort_order; $sortorder++ ){
|
| 1247 |
+
foreach ($customOptions as $option) {
|
| 1248 |
+
if( $option->getSortOrder() != $sortorder ) continue;
|
| 1249 |
+
echo "customOption #".$option->getOptionId()." title=".$option->getTitle()." storeTitle=".$option->getStoreTitle()." type=".$option->getType()." sort_order".$option->getSortOrder()."
|
| 1250 |
+
";
|
| 1251 |
+
if( $option->getValues() ){
|
| 1252 |
+
$max_v_sort_order = 0;
|
| 1253 |
+
foreach ($option->getValues() as $_value) {
|
| 1254 |
+
if( $_value->getSortOrder() > $max_v_sort_order ){
|
| 1255 |
+
$max_v_sort_order = $_value->getSortOrder();
|
| 1256 |
+
} else if( $_value->getSortOrder() < 0 ){
|
| 1257 |
+
$_value->setSortOrder( -1 );
|
| 1258 |
+
}
|
| 1259 |
+
}
|
| 1260 |
+
for( $vsortorder = -1; $vsortorder <= $max_v_sort_order; $vsortorder++ ){
|
| 1261 |
+
if( $_value->getSortOrder() != $vsortorder ) continue;
|
| 1262 |
+
foreach ($option->getValues() as $_value) {
|
| 1263 |
+
echo "value title=".$_value->getTitle()." storeTitle=".$option->getStoreTitle()." price=".$_value->getPrice()." price_type=".$_value->getPriceType()." sku=".$_value->getSku()." sort_order=".$_value->getSortOrder()."
|
| 1264 |
+
";
|
| 1265 |
+
}
|
| 1266 |
+
}
|
| 1267 |
+
}
|
| 1268 |
+
}
|
| 1269 |
+
}
|
| 1270 |
+
}
|
| 1271 |
+
for( $sortorder = -1; $sortorder <= $max_sort_order; $sortorder++ ){
|
| 1272 |
+
foreach ($customOptions as $option) {
|
| 1273 |
+
if( $option->getSortOrder() != $sortorder ) continue;
|
| 1274 |
+
if( $option->getType() != "drop_down" && $option->getType() != "radio" && $option->getType() != "multiple" && $option->getType() != "checkbox" ) continue;
|
| 1275 |
+
$optionTitle = $option->getStoreTitle();
|
| 1276 |
+
if( empty( $optionTitle ) )
|
| 1277 |
+
$optionTitle = $option->getTitle();
|
| 1278 |
+
$optionValues = "";
|
| 1279 |
+
if( $option->getValues() ){
|
| 1280 |
+
$max_v_sort_order = 0;
|
| 1281 |
+
foreach( $option->getValues() as $_value ){
|
| 1282 |
+
if( $_value->getSortOrder() > $max_v_sort_order ){
|
| 1283 |
+
$max_v_sort_order = $_value->getSortOrder();
|
| 1284 |
+
} else if( $_value->getSortOrder() < 0 ){
|
| 1285 |
+
$_value->setSortOrder( -1 );
|
| 1286 |
+
}
|
| 1287 |
+
}
|
| 1288 |
+
for( $vsortorder = -1; $vsortorder <= $max_v_sort_order; $vsortorder++ ){
|
| 1289 |
+
foreach( $option->getValues() as $_value ){
|
| 1290 |
+
if( $_value->getSortOrder() != $vsortorder ) continue;
|
| 1291 |
+
if( !empty( $optionValues ) )
|
| 1292 |
+
$optionValues .= "<br/>";
|
| 1293 |
+
$valueTitle = $_value->getStoreTitle();
|
| 1294 |
+
if( empty( $valueTitle ) )
|
| 1295 |
+
$valueTitle = $_value->getTitle();
|
| 1296 |
+
$optionValues .= $valueTitle;
|
| 1297 |
+
}
|
| 1298 |
+
}
|
| 1299 |
+
}
|
| 1300 |
+
if( !empty( $attributes ) )
|
| 1301 |
+
$attributes .= "|";
|
| 1302 |
+
$attributes .= $optionTitle . "=" . $optionValues;
|
| 1303 |
+
}
|
| 1304 |
+
}
|
| 1305 |
+
}
|
| 1306 |
+
return $attributes;
|
| 1307 |
+
}
|
| 1308 |
|
| 1309 |
private function _cleanStr( &$str ){
|
| 1310 |
return str_replace("\n"," ", str_replace("\r"," ", str_replace("\r\n"," ", str_replace("\t"," ", $str ) ) ) );
|
app/code/community/Mage/CodiScript/controllers/IndexController.php
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
<?php
|
| 2 |
-
define("__VERSION__","2015-03-
|
| 3 |
define("__SCRIPTNAME__",basename(__FILE__));
|
| 4 |
|
| 5 |
class Mage_CodiScript_IndexController extends Mage_Core_Controller_Front_Action{
|
|
@@ -233,6 +233,9 @@ executed in ".( time() - $started_time )." sec.
|
|
| 233 |
";
|
| 234 |
die();
|
| 235 |
/* RELEASE NOTES
|
|
|
|
|
|
|
|
|
|
| 236 |
* 2015-03-02
|
| 237 |
* Filtering out disabled products improved for associated products of configurable products
|
| 238 |
*
|
| 1 |
<?php
|
| 2 |
+
define("__VERSION__","2015-03-30");
|
| 3 |
define("__SCRIPTNAME__",basename(__FILE__));
|
| 4 |
|
| 5 |
class Mage_CodiScript_IndexController extends Mage_Core_Controller_Front_Action{
|
| 233 |
";
|
| 234 |
die();
|
| 235 |
/* RELEASE NOTES
|
| 236 |
+
* 2015-03-30
|
| 237 |
+
* Added retrieval of custom product options in case of importoptionsasattributes=true
|
| 238 |
+
*
|
| 239 |
* 2015-03-02
|
| 240 |
* Filtering out disabled products improved for associated products of configurable products
|
| 241 |
*
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Mage_Codi</name>
|
| 4 |
-
<version>4.2.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -10,9 +10,9 @@
|
|
| 10 |
<description>Extension to connect to the Catalog-on-Demand service for making print catalogs, brochures, and flyers.</description>
|
| 11 |
<notes>Please contact our support desk if you have any problems.</notes>
|
| 12 |
<authors><author><name>catalogondemand</name><user>auto-converted</user><email>timh@catalog-on-demand.com</email></author></authors>
|
| 13 |
-
<date>2015-03-
|
| 14 |
-
<time>
|
| 15 |
-
<contents><target name="magecommunity"><dir name="Mage"><dir name="CodiScript"><dir name="Helper"><file name="Data.php" hash="3f99660cb06a9dc09f024b9993d43a3f"/></dir><dir name="Model"><file name="Files.php" hash="
|
| 16 |
<compatible/>
|
| 17 |
<dependencies/>
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Mage_Codi</name>
|
| 4 |
+
<version>4.2.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 10 |
<description>Extension to connect to the Catalog-on-Demand service for making print catalogs, brochures, and flyers.</description>
|
| 11 |
<notes>Please contact our support desk if you have any problems.</notes>
|
| 12 |
<authors><author><name>catalogondemand</name><user>auto-converted</user><email>timh@catalog-on-demand.com</email></author></authors>
|
| 13 |
+
<date>2015-03-31</date>
|
| 14 |
+
<time>13:39:43</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Mage"><dir name="CodiScript"><dir name="Helper"><file name="Data.php" hash="3f99660cb06a9dc09f024b9993d43a3f"/></dir><dir name="Model"><file name="Files.php" hash="d714a47f138b57f074c25269f356b1e3"/></dir><dir name="controllers"><file name="IndexController.php" hash="1008449108e0e32c15c923430b37199e"/></dir><dir name="etc"><file name="adminhtml.xml" hash="40ab0bd86928c5ba175988926a9f6aee"/><file name="config.xml" hash="b960e9bd106f0c94559baa2bc5761e18"/><file name="system.xml" hash="1b5e5b18bfdce6b85e304fb4ef877274"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_CodiScript.xml" hash="f0502cac7918fc798b3b02d3d4b7e7fd"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="codiscript.xml" hash="066f99333a6054e11943a75413f65ff0"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="codi"><file name="password_validation.js" hash="7223aeed118bb5774c73f951460ae0b0"/></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Mage_CodiScript.csv" hash="183fc591065ced83f878a4c3e23f854c"/></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies/>
|
| 18 |
</package>
|
