Version Notes
3.0.1 - Added Magento 1.6 compatibility.
Download this release
Release Info
Developer | Magento Core Team |
Extension | Mage_PDF_per_Product |
Version | 3.0.1 |
Comparing to | |
See all releases |
Code changes from version 3.0.0 to 3.0.1
- app/code/community/Mage/Codi/Block/Adminhtml/Switcher.php +109 -0
- app/code/community/Mage/Codi/Helper/Data.php +72 -0
- app/code/community/Mage/Codi/Model/Codi.php +28 -6
- app/code/community/Mage/Codi/controllers/Adminhtml/MenuController.php +7 -1
- app/code/community/Mage/Codi/controllers/NsyncController.php +59 -0
- app/code/community/Mage/Codi/controllers/SyncController.php +20 -4
- app/code/community/Mage/Codi/etc/config.xml +1 -1
- app/design/adminhtml/default/default/template/codi/index.phtml +101 -6
- app/design/frontend/default/default/template/catalog/product/view.phtml +199 -0
- package.xml +5 -5
app/code/community/Mage/Codi/Block/Adminhtml/Switcher.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Adminhtml
|
23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Mage_Codi_Block_Adminhtml_Switcher extends Mage_Adminhtml_Block_Template
|
29 |
+
{
|
30 |
+
protected function _prepareLayout()
|
31 |
+
{
|
32 |
+
$this->setTemplate('codi/switcher.phtml');
|
33 |
+
return parent::_prepareLayout();
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Enter description here...
|
38 |
+
*
|
39 |
+
* @return array
|
40 |
+
*/
|
41 |
+
public function getStoreSelectOptions()
|
42 |
+
{
|
43 |
+
$section = $this->getRequest()->getParam('section');
|
44 |
+
|
45 |
+
$curWebsite = $this->getRequest()->getParam('website');
|
46 |
+
$curStore = $this->getRequest()->getParam('store');
|
47 |
+
|
48 |
+
$storeModel = Mage::getSingleton('adminhtml/system_store');
|
49 |
+
/* @var $storeModel Mage_Adminhtml_Model_System_Store */
|
50 |
+
|
51 |
+
$url = Mage::getModel('adminhtml/url');
|
52 |
+
|
53 |
+
$options = array();
|
54 |
+
$options['default'] = array(
|
55 |
+
'label' => Mage::helper('adminhtml')->__('Default Config'),
|
56 |
+
'url' => $url->getUrl('*/*/*', array('section'=>$section)),
|
57 |
+
'selected' => !$curWebsite && !$curStore,
|
58 |
+
'style' => 'background:#ccc; font-weight:bold;',
|
59 |
+
);
|
60 |
+
|
61 |
+
foreach ($storeModel->getWebsiteCollection() as $website) {
|
62 |
+
$websiteShow = false;
|
63 |
+
foreach ($storeModel->getGroupCollection() as $group) {
|
64 |
+
if ($group->getWebsiteId() != $website->getId()) {
|
65 |
+
continue;
|
66 |
+
}
|
67 |
+
$groupShow = false;
|
68 |
+
foreach ($storeModel->getStoreCollection() as $store) {
|
69 |
+
if ($store->getGroupId() != $group->getId()) {
|
70 |
+
continue;
|
71 |
+
}
|
72 |
+
if ($websiteShow) {
|
73 |
+
$websiteShow = true;
|
74 |
+
$options['website_' . $website->getCode()] = array(
|
75 |
+
'label' => $website->getName(),
|
76 |
+
'url' => $url->getUrl('*/*/*', array('section'=>$section, 'website'=>$website->getCode())),
|
77 |
+
'selected' => !$curStore && $curWebsite == $website->getCode(),
|
78 |
+
'style' => 'padding-left:16px; background:#DDD; font-weight:bold;',
|
79 |
+
);
|
80 |
+
}
|
81 |
+
if (!$groupShow) {
|
82 |
+
$groupShow = true;
|
83 |
+
$options['group_' . $group->getId() . '_open'] = array(
|
84 |
+
'is_group' => true,
|
85 |
+
'is_close' => false,
|
86 |
+
'label' => $group->getName(),
|
87 |
+
'style' => 'padding-left:32px;'
|
88 |
+
);
|
89 |
+
}
|
90 |
+
$options['store_' . $store->getCode()] = array(
|
91 |
+
'label' => $store->getName(),
|
92 |
+
'url' => $url->getUrl('*/*/*', array('section'=>$section, 'website'=>$website->getCode(), 'store'=>$store->getCode())),
|
93 |
+
'selected' => $curStore == $store->getCode(),
|
94 |
+
'style' => '',
|
95 |
+
);
|
96 |
+
}
|
97 |
+
if ($groupShow) {
|
98 |
+
$options['group_' . $group->getId() . '_close'] = array(
|
99 |
+
'is_group' => true,
|
100 |
+
'is_close' => true,
|
101 |
+
);
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
return $options;
|
107 |
+
}
|
108 |
+
|
109 |
+
}
|
app/code/community/Mage/Codi/Helper/Data.php
CHANGED
@@ -108,6 +108,78 @@ class Mage_Codi_Helper_Data extends Mage_Core_Helper_Abstract
|
|
108 |
{
|
109 |
@unlink($basePath."CODdataFiles/".$filename);
|
110 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
}
|
113 |
?>
|
108 |
{
|
109 |
@unlink($basePath."CODdataFiles/".$filename);
|
110 |
}
|
111 |
+
//function for get the theme
|
112 |
+
function getTheme()
|
113 |
+
{
|
114 |
+
foreach (Mage::app()->getWebsites() as $website)
|
115 |
+
{
|
116 |
+
$defaultGroup = $website->getDefaultGroup();
|
117 |
+
$StoreId = $defaultGroup->getDefaultStoreId();
|
118 |
+
}
|
119 |
+
|
120 |
+
$design = Mage::getSingleton('core/design')->loadChange($StoreId);
|
121 |
+
|
122 |
+
$package = $design->getPackage();
|
123 |
+
$default_theme = $design->getTheme();
|
124 |
+
|
125 |
+
if ( $package == "" && $default_theme == "" ){
|
126 |
+
|
127 |
+
$package = Mage::getStoreConfig('design/package/name', $StoreId);
|
128 |
+
$default_theme = Mage::getStoreConfig('design/theme/default', $StoreId);
|
129 |
+
}
|
130 |
+
|
131 |
+
if ( $package == "" ) $package = "default";
|
132 |
+
if ( $default_theme == "" ) $default_theme = "default";
|
133 |
+
|
134 |
+
return $package.'/'.$default_theme;
|
135 |
+
|
136 |
+
|
137 |
+
|
138 |
+
}
|
139 |
+
function array2json($arr) {
|
140 |
+
|
141 |
+
if(function_exists('json_encode')) return json_encode($arr); //Lastest versions of PHP already has this functionality.
|
142 |
+
$parts = array();
|
143 |
+
$is_list = false;
|
144 |
+
|
145 |
+
//Find out if the given array is a numerical array
|
146 |
+
$keys = array_keys($arr);
|
147 |
+
$max_length = count($arr)-1;
|
148 |
+
if(($keys[0] == 0) and ($keys[$max_length] == $max_length)) {//See if the first key is 0 and last key is length - 1
|
149 |
+
$is_list = true;
|
150 |
+
for($i=0; $i<count($keys); $i++) { //See if each key correspondes to its position
|
151 |
+
if($i != $keys[$i]) { //A key fails at position check.
|
152 |
+
$is_list = false; //It is an associative array.
|
153 |
+
break;
|
154 |
+
}
|
155 |
+
}
|
156 |
+
}
|
157 |
+
|
158 |
+
foreach($arr as $key=>$value) {
|
159 |
+
if(is_array($value)) { //Custom handling for arrays
|
160 |
+
if($is_list) $parts[] = array2json($value); /* :RECURSION: */
|
161 |
+
else $parts[] = '"' . $key . '":' . array2json($value); /* :RECURSION: */
|
162 |
+
} else {
|
163 |
+
$str = '';
|
164 |
+
if(!$is_list) $str = '"' . $key . '":';
|
165 |
+
|
166 |
+
//Custom handling for multiple data types
|
167 |
+
if(is_numeric($value)) $str .= $value; //Numbers
|
168 |
+
elseif($value === false) $str .= 'false'; //The booleans
|
169 |
+
elseif($value === true) $str .= 'true';
|
170 |
+
else $str .= '"' . addslashes($value) . '"'; //All other things
|
171 |
+
// :TODO: Is there any more datatype we should be in the lookout for? (Object?)
|
172 |
+
|
173 |
+
$parts[] = $str;
|
174 |
+
}
|
175 |
+
}
|
176 |
+
$json = implode(',',$parts);
|
177 |
+
|
178 |
+
if($is_list) return '[' . $json . ']';//Return numerical JSON
|
179 |
+
return '{' . $json . '}';//Return associative JSON
|
180 |
+
}
|
181 |
+
|
182 |
+
|
183 |
|
184 |
}
|
185 |
?>
|
app/code/community/Mage/Codi/Model/Codi.php
CHANGED
@@ -7,7 +7,7 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
7 |
public $userid ;
|
8 |
public $password ;
|
9 |
public $disableextension ;
|
10 |
-
public $version = "3.0.
|
11 |
|
12 |
public $customerid ;
|
13 |
public $customerdatasourceid ;
|
@@ -281,8 +281,12 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
281 |
$ProducttoString = '' ;
|
282 |
$UsedProductIds = Mage::getModel('catalog/product_type_configurable')->getUsedProductIds($product);
|
283 |
|
284 |
-
$ProductDescription =
|
285 |
-
|
|
|
|
|
|
|
|
|
286 |
//Get Product Attributes Start
|
287 |
//$excludeAttr = array() ;
|
288 |
$attributes = $product->getAttributes();
|
@@ -420,8 +424,14 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
420 |
public function ProducttoStringSimple( $product , $from )
|
421 |
{
|
422 |
$ProducttoString = '' ;
|
423 |
-
|
424 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
425 |
//************************ Get Attributes Start *******************************
|
426 |
//Extract Attributes
|
427 |
//$ImageURL = (string)$this->helper('catalog/image')->init($product, 'image');
|
@@ -659,6 +669,8 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
659 |
$codafterOR = ( Mage::getStoreConfig('codi/codi/codafterOR') == 'checked' )?'Yes':'No' ;
|
660 |
$codbeforeoverview = ( Mage::getStoreConfig('codi/codi/codbeforeoverview') == 'checked' ) ?'Yes':'No';
|
661 |
$codafteroverview = ( Mage::getStoreConfig('codi/codi/codafteroverview') == 'checked' )?'Yes':'No';
|
|
|
|
|
662 |
|
663 |
$Comment = "App extension version: ".$extension_version." \r\n";
|
664 |
$Comment .= "Magento version: ".$app_version." \r\n";
|
@@ -666,6 +678,7 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
666 |
$Comment .= "Theme: ".$theme." \r\n";
|
667 |
$Comment .= "Create data file using background process: ".$codbgcheck." \r\n";
|
668 |
$Comment .= "Enable Always Fresh Flyers: ".$enablefreshflyers." \r\n";
|
|
|
669 |
$Comment .= "Enable Reviews: ".$enablereviews." \r\n";
|
670 |
$Comment .= "Get price from associated products: ".$fromchild." \r\n";
|
671 |
$Comment .= "Image to be used for flyer link: ".$codflyerlinkimg." \r\n";
|
@@ -674,7 +687,7 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
674 |
$Comment .= " Display before product name: ".$codbeforename." \r\n";
|
675 |
$Comment .= " Display after product name: ".$codaftername." \r\n";
|
676 |
$Comment .= " Display before Email to a friend: ".$codbeforeemailto." \r\n";
|
677 |
-
$Comment .= " Display
|
678 |
$Comment .= " Display before OR: ".$codbeforeOR." \r\n";
|
679 |
$Comment .= " Display after OR: ".$codafterOR." \r\n";
|
680 |
$Comment .= " Display before Quick Overview: ".$codbeforeoverview." \r\n";
|
@@ -682,6 +695,10 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
682 |
//code for version 2.2.16
|
683 |
$datafilelaunch = Mage::getStoreConfig('codi/codi/coddatafilelaunch');
|
684 |
$Comment .="Data File Launch Mode: ".$datafilelaunch."\r\n";
|
|
|
|
|
|
|
|
|
685 |
if($datafilelaunch=='magento')
|
686 |
{
|
687 |
$datafilelaunch='cronjob';
|
@@ -700,6 +717,11 @@ class Mage_Codi_Model_Codi extends Mage_Core_Model_Abstract
|
|
700 |
{
|
701 |
$Comment .="Cron job command: wget ".$cronjoburl."\r\n";
|
702 |
}
|
|
|
|
|
|
|
|
|
|
|
703 |
|
704 |
$Comment .="Extension Name: ".$this->extensionName."\r\n";
|
705 |
$Comment .="Date and time of most recent data file: ".$datetime."\r\n";
|
7 |
public $userid ;
|
8 |
public $password ;
|
9 |
public $disableextension ;
|
10 |
+
public $version = "3.0.1";
|
11 |
|
12 |
public $customerid ;
|
13 |
public $customerdatasourceid ;
|
281 |
$ProducttoString = '' ;
|
282 |
$UsedProductIds = Mage::getModel('catalog/product_type_configurable')->getUsedProductIds($product);
|
283 |
|
284 |
+
$ProductDescription = '';
|
285 |
+
if(Mage::getStoreConfig('codi/codi/codincludeshortdescription')=="checked")
|
286 |
+
{
|
287 |
+
$ProductDescription .= $product->getShortDescription();
|
288 |
+
}
|
289 |
+
$ProductDescription .= $product->getDescription() ;
|
290 |
//Get Product Attributes Start
|
291 |
//$excludeAttr = array() ;
|
292 |
$attributes = $product->getAttributes();
|
424 |
public function ProducttoStringSimple( $product , $from )
|
425 |
{
|
426 |
$ProducttoString = '' ;
|
427 |
+
//Change for short description
|
428 |
+
//$ProductDescription = $product->getDescription() ;
|
429 |
+
$ProductDescription = '';
|
430 |
+
if(Mage::getStoreConfig('codi/codi/codincludeshortdescription')=="checked")
|
431 |
+
{
|
432 |
+
$ProductDescription .= $product->getShortDescription();
|
433 |
+
}
|
434 |
+
$ProductDescription .= $product->getDescription() ;
|
435 |
//************************ Get Attributes Start *******************************
|
436 |
//Extract Attributes
|
437 |
//$ImageURL = (string)$this->helper('catalog/image')->init($product, 'image');
|
669 |
$codafterOR = ( Mage::getStoreConfig('codi/codi/codafterOR') == 'checked' )?'Yes':'No' ;
|
670 |
$codbeforeoverview = ( Mage::getStoreConfig('codi/codi/codbeforeoverview') == 'checked' ) ?'Yes':'No';
|
671 |
$codafteroverview = ( Mage::getStoreConfig('codi/codi/codafteroverview') == 'checked' )?'Yes':'No';
|
672 |
+
//Changed for include short description
|
673 |
+
$includeshortdescription = (Mage::getStoreConfig('codi/codi/codincludeshortdescription')== 'checked' )?'Yes':'No';
|
674 |
|
675 |
$Comment = "App extension version: ".$extension_version." \r\n";
|
676 |
$Comment .= "Magento version: ".$app_version." \r\n";
|
678 |
$Comment .= "Theme: ".$theme." \r\n";
|
679 |
$Comment .= "Create data file using background process: ".$codbgcheck." \r\n";
|
680 |
$Comment .= "Enable Always Fresh Flyers: ".$enablefreshflyers." \r\n";
|
681 |
+
$Comment .= "Include Short Description: ".$includeshortdescription." \r\n";
|
682 |
$Comment .= "Enable Reviews: ".$enablereviews." \r\n";
|
683 |
$Comment .= "Get price from associated products: ".$fromchild." \r\n";
|
684 |
$Comment .= "Image to be used for flyer link: ".$codflyerlinkimg." \r\n";
|
687 |
$Comment .= " Display before product name: ".$codbeforename." \r\n";
|
688 |
$Comment .= " Display after product name: ".$codaftername." \r\n";
|
689 |
$Comment .= " Display before Email to a friend: ".$codbeforeemailto." \r\n";
|
690 |
+
$Comment .= " Display after Email to a friend: ".$codafteremailto." \r\n";
|
691 |
$Comment .= " Display before OR: ".$codbeforeOR." \r\n";
|
692 |
$Comment .= " Display after OR: ".$codafterOR." \r\n";
|
693 |
$Comment .= " Display before Quick Overview: ".$codbeforeoverview." \r\n";
|
695 |
//code for version 2.2.16
|
696 |
$datafilelaunch = Mage::getStoreConfig('codi/codi/coddatafilelaunch');
|
697 |
$Comment .="Data File Launch Mode: ".$datafilelaunch."\r\n";
|
698 |
+
//Change for site url
|
699 |
+
$siteurl = Mage::getUrl('/');
|
700 |
+
$Comment .="Site Url: ".$siteurl."\r\n";
|
701 |
+
|
702 |
if($datafilelaunch=='magento')
|
703 |
{
|
704 |
$datafilelaunch='cronjob';
|
717 |
{
|
718 |
$Comment .="Cron job command: wget ".$cronjoburl."\r\n";
|
719 |
}
|
720 |
+
else{
|
721 |
+
$waitforminute=Mage::getStoreConfig('codi/codi/codwaitforminute')/60;
|
722 |
+
$Comment .="WaitFor: ".number_format($waitforminute,2,'.','')."\r\n";
|
723 |
+
|
724 |
+
}
|
725 |
|
726 |
$Comment .="Extension Name: ".$this->extensionName."\r\n";
|
727 |
$Comment .="Date and time of most recent data file: ".$datetime."\r\n";
|
app/code/community/Mage/Codi/controllers/Adminhtml/MenuController.php
CHANGED
@@ -194,7 +194,7 @@ class Mage_Codi_Adminhtml_MenuController extends Mage_Adminhtml_Controller_Actio
|
|
194 |
|
195 |
public function authsaveAction()
|
196 |
{
|
197 |
-
$userid = (string)$this->getRequest()->getParam('userid');
|
198 |
$password = (string)$this->getRequest()->getParam('password');
|
199 |
$secretkey = (string)$this->getRequest()->getParam('secretkey');
|
200 |
$enablefreshflyers = (string)$this->getRequest()->getParam('enablefreshflyers');
|
@@ -219,6 +219,10 @@ class Mage_Codi_Adminhtml_MenuController extends Mage_Adminhtml_Controller_Actio
|
|
219 |
|
220 |
//ver 2.2.16
|
221 |
$coddatafilelaunch = (string)$this->getRequest()->getParam('datafilelaunch');
|
|
|
|
|
|
|
|
|
222 |
|
223 |
$codimodel = Mage::getSingleton('codi/codi');
|
224 |
|
@@ -242,6 +246,8 @@ class Mage_Codi_Adminhtml_MenuController extends Mage_Adminhtml_Controller_Actio
|
|
242 |
"codbeforeoverview" => array ('value' => $codbeforeoverview) ,
|
243 |
"codafteroverview" => array ('value' => $codafteroverview) ,
|
244 |
"coddatafilelaunch" => array ('value' => $coddatafilelaunch) ,
|
|
|
|
|
245 |
|
246 |
)
|
247 |
);
|
194 |
|
195 |
public function authsaveAction()
|
196 |
{
|
197 |
+
$userid = strtolower((string)$this->getRequest()->getParam('userid'));
|
198 |
$password = (string)$this->getRequest()->getParam('password');
|
199 |
$secretkey = (string)$this->getRequest()->getParam('secretkey');
|
200 |
$enablefreshflyers = (string)$this->getRequest()->getParam('enablefreshflyers');
|
219 |
|
220 |
//ver 2.2.16
|
221 |
$coddatafilelaunch = (string)$this->getRequest()->getParam('datafilelaunch');
|
222 |
+
//for waitfor minute
|
223 |
+
|
224 |
+
$waitforminute = (string)$this->getRequest()->getParam('waitforminute');
|
225 |
+
$includeshortdescription = (string)$this->getRequest()->getParam('includeshortdescription');
|
226 |
|
227 |
$codimodel = Mage::getSingleton('codi/codi');
|
228 |
|
246 |
"codbeforeoverview" => array ('value' => $codbeforeoverview) ,
|
247 |
"codafteroverview" => array ('value' => $codafteroverview) ,
|
248 |
"coddatafilelaunch" => array ('value' => $coddatafilelaunch) ,
|
249 |
+
"codwaitforminute" => array ('value' => $waitforminute),
|
250 |
+
"codincludeshortdescription" => array ('value' => $includeshortdescription),
|
251 |
|
252 |
)
|
253 |
);
|
app/code/community/Mage/Codi/controllers/NsyncController.php
CHANGED
@@ -4,6 +4,7 @@ ini_set("memory_limit","512M");
|
|
4 |
require_once 'Mage/Core/Controller/Front/Action.php';
|
5 |
class Mage_Codi_NsyncController extends Mage_Core_Controller_Front_Action
|
6 |
{
|
|
|
7 |
|
8 |
public function indexAction()
|
9 |
{
|
@@ -65,4 +66,62 @@ class Mage_Codi_NsyncController extends Mage_Core_Controller_Front_Action
|
|
65 |
}
|
66 |
//print '{"success": "1"}';
|
67 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
}
|
4 |
require_once 'Mage/Core/Controller/Front/Action.php';
|
5 |
class Mage_Codi_NsyncController extends Mage_Core_Controller_Front_Action
|
6 |
{
|
7 |
+
public $CodiBlock ;
|
8 |
|
9 |
public function indexAction()
|
10 |
{
|
66 |
}
|
67 |
//print '{"success": "1"}';
|
68 |
}
|
69 |
+
|
70 |
+
// Below function is for the loader
|
71 |
+
|
72 |
+
public function manualAction()
|
73 |
+
{
|
74 |
+
$products = Mage::getModel('catalog/product')->getCollection();
|
75 |
+
$products->addAttributeToFilter('status', 1);//enabled
|
76 |
+
$products->addAttributeToFilter('visibility', 4);//catalog, search
|
77 |
+
$products->addAttributeToSelect('*');
|
78 |
+
$prodIds = $products->getAllIds();
|
79 |
+
|
80 |
+
print Mage::helper('codi')->array2json($prodIds);
|
81 |
+
}
|
82 |
+
//create file
|
83 |
+
public function updatestatusAction()
|
84 |
+
{
|
85 |
+
$this->_logFile = "Catalog-on-demand.log";
|
86 |
+
Mage::log("Notice: Mage_Codi_NSyncController", null, $this->_logFile);
|
87 |
+
|
88 |
+
|
89 |
+
$CodiModel = Mage::getModel('codi/codi');
|
90 |
+
//product is id of the product
|
91 |
+
$productid=$this->getRequest()->getParam('product');
|
92 |
+
// counter is no. of product passed
|
93 |
+
$counter=$this->getRequest()->getParam('counter');
|
94 |
+
// Total product . counter and total is for calculating how many percent of data is transfered.
|
95 |
+
$total=$this->getRequest()->getParam('total');
|
96 |
+
//basepath
|
97 |
+
$basepath=$this->getRequest()->getParam('basepath');
|
98 |
+
$fh = fopen($basepath.'CODdataFiles/temp.txt', 'a');
|
99 |
+
try{
|
100 |
+
// below condition is for the write all heading only first time after that it will not write.
|
101 |
+
if($counter==1){
|
102 |
+
|
103 |
+
fwrite($fh, "itemNumber\titemQty\titemUom\titemPrice\titemDescription\titemLink\titemAttributes\titemGraphic\tproductName\tproductMfg\tproductDescription\tproductGraphic\tproductLink\tproductAttributes\tCategory\tReviews\tSupplementalInfo");
|
104 |
+
|
105 |
+
}
|
106 |
+
|
107 |
+
$product = Mage::getModel('catalog/product');
|
108 |
+
$product->load($productid);
|
109 |
+
|
110 |
+
fwrite($fh, $CodiModel->ProducttoString($product, "product"));
|
111 |
+
}catch(Exception $e)
|
112 |
+
{
|
113 |
+
echo "error";
|
114 |
+
return;
|
115 |
+
}
|
116 |
+
fclose($fh);
|
117 |
+
$progress=(string)(($counter/$total)*100);
|
118 |
+
if($progress=='100'){
|
119 |
+
$DataFile = 'text.tmp.txt';
|
120 |
+
rename($basePath.'CODdataFiles/temp.txt', $basePath.'CODdataFiles/'.$DataFile);
|
121 |
+
}
|
122 |
+
echo ceil($progress);
|
123 |
+
|
124 |
+
|
125 |
+
}
|
126 |
+
|
127 |
}
|
app/code/community/Mage/Codi/controllers/SyncController.php
CHANGED
@@ -41,15 +41,25 @@ class Mage_Codi_SyncController extends Mage_Core_Controller_Front_Action
|
|
41 |
$error_msg = "ERROR\nCannot prepare the callback link.";
|
42 |
}
|
43 |
|
44 |
-
if ( $error_msg == "" )
|
|
|
|
|
45 |
// respond immediately
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
@ob_end_clean();
|
48 |
header("Connection: close\r\n");
|
49 |
header("Content-Encoding: none\r\n");
|
50 |
ignore_user_abort(true);
|
51 |
ob_start();
|
52 |
-
echo $error_msg;
|
53 |
header("Content-Length: ".ob_get_length());
|
54 |
ob_end_flush();
|
55 |
flush();
|
@@ -134,8 +144,13 @@ class Mage_Codi_SyncController extends Mage_Core_Controller_Front_Action
|
|
134 |
|
135 |
$Comment = $CodiModel->getComment($modifie);
|
136 |
Mage::log("Notice: Prepare the Comment : ". $Comment, null, $this->_logFile);
|
|
|
|
|
|
|
|
|
137 |
|
138 |
$paramsarray = array( 'ProcessID' => $ProcessID,
|
|
|
139 |
'DataFileLink' => $DataFileLink ,
|
140 |
'DeleteDataFileURL' => $DeleteDataFileURL ,
|
141 |
'Encoding' => 'utf-8' ,
|
@@ -145,6 +160,7 @@ class Mage_Codi_SyncController extends Mage_Core_Controller_Front_Action
|
|
145 |
'Comment' => $Comment);
|
146 |
if ( $error != "" ) {
|
147 |
$paramsarray = array('ProcessID' => $ProcessID,
|
|
|
148 |
'DataFileLink' => $DataFileLink ,
|
149 |
'DeleteDataFileURL' => $DeleteDataFileURL ,
|
150 |
'Encoding' => 'utf-8' ,
|
@@ -159,7 +175,7 @@ class Mage_Codi_SyncController extends Mage_Core_Controller_Front_Action
|
|
159 |
Mage::log("Notice: Prepare the process ID : ". $ProcessID, null, $this->_logFile);
|
160 |
Mage::log("Notice: Prepare the delete url : ". $DeleteDataFileURL, null, $this->_logFile);
|
161 |
Mage::log("Notice: Prepare the callback url : ". $url, null, $this->_logFile);
|
162 |
-
|
163 |
$Responsemsg = $CodiModel->Call( $url, $paramsarray );
|
164 |
Mage::log("Notice: Prepare the callback response message ". $Responsemsg, null, $this->_logFile);
|
165 |
}
|
41 |
$error_msg = "ERROR\nCannot prepare the callback link.";
|
42 |
}
|
43 |
|
44 |
+
if ( $error_msg == "" )
|
45 |
+
{
|
46 |
+
$error_msg = "OK";
|
47 |
// respond immediately
|
48 |
+
$datafilelaunch = Mage::getStoreConfig('codi/codi/coddatafilelaunch');
|
49 |
+
$wait='';
|
50 |
+
if($datafilelaunch=='cod')
|
51 |
+
{
|
52 |
+
|
53 |
+
$waitforminute=Mage::getStoreConfig('codi/codi/codwaitforminute')/60;
|
54 |
+
$wait="\r\nWaitFor=".number_format($waitforminute,2,'.','');
|
55 |
+
}
|
56 |
+
}
|
57 |
@ob_end_clean();
|
58 |
header("Connection: close\r\n");
|
59 |
header("Content-Encoding: none\r\n");
|
60 |
ignore_user_abort(true);
|
61 |
ob_start();
|
62 |
+
echo $error_msg.$wait;
|
63 |
header("Content-Length: ".ob_get_length());
|
64 |
ob_end_flush();
|
65 |
flush();
|
144 |
|
145 |
$Comment = $CodiModel->getComment($modifie);
|
146 |
Mage::log("Notice: Prepare the Comment : ". $Comment, null, $this->_logFile);
|
147 |
+
//code for getTheme
|
148 |
+
$helper=Mage::helper('codi');
|
149 |
+
$TemplateName=(string)$helper->getTheme();
|
150 |
+
|
151 |
|
152 |
$paramsarray = array( 'ProcessID' => $ProcessID,
|
153 |
+
'TemplateName' => $TemplateName,
|
154 |
'DataFileLink' => $DataFileLink ,
|
155 |
'DeleteDataFileURL' => $DeleteDataFileURL ,
|
156 |
'Encoding' => 'utf-8' ,
|
160 |
'Comment' => $Comment);
|
161 |
if ( $error != "" ) {
|
162 |
$paramsarray = array('ProcessID' => $ProcessID,
|
163 |
+
'TemplateName' => $TemplateName,
|
164 |
'DataFileLink' => $DataFileLink ,
|
165 |
'DeleteDataFileURL' => $DeleteDataFileURL ,
|
166 |
'Encoding' => 'utf-8' ,
|
175 |
Mage::log("Notice: Prepare the process ID : ". $ProcessID, null, $this->_logFile);
|
176 |
Mage::log("Notice: Prepare the delete url : ". $DeleteDataFileURL, null, $this->_logFile);
|
177 |
Mage::log("Notice: Prepare the callback url : ". $url, null, $this->_logFile);
|
178 |
+
Mage::log("Notice: Prepare the template theme : ". $TemplateName, null, $this->_logFile);
|
179 |
$Responsemsg = $CodiModel->Call( $url, $paramsarray );
|
180 |
Mage::log("Notice: Prepare the callback response message ". $Responsemsg, null, $this->_logFile);
|
181 |
}
|
app/code/community/Mage/Codi/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Mage_Codi>
|
5 |
-
<version>3.0.
|
6 |
</Mage_Codi>
|
7 |
</modules>
|
8 |
<adminhtml>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Mage_Codi>
|
5 |
+
<version>3.0.1</version>
|
6 |
</Mage_Codi>
|
7 |
</modules>
|
8 |
<adminhtml>
|
app/design/adminhtml/default/default/template/codi/index.phtml
CHANGED
@@ -25,11 +25,13 @@ $codbeforeoverview = Mage::getStoreConfig('codi/codi/codbeforeoverview') ;
|
|
25 |
$codafteroverview = Mage::getStoreConfig('codi/codi/codafteroverview') ;
|
26 |
|
27 |
$codbgcheck = Mage::getStoreConfig('codi/codi/codbgcheck') ;
|
28 |
-
|
29 |
-
$post_url = $this->getUrl('codi/nsync/
|
30 |
$post_url_upd = $this->getUrl('codi/adminhtml_menu/updatestatus');
|
31 |
$post_url_cancel = $this->getUrl('codi/adminhtml_menu/cancel');
|
32 |
$post_bgprocess_check = $this->getUrl('codi/adminhtml_menu/bgcheck');
|
|
|
|
|
33 |
|
34 |
//Changed ver 2.2.15
|
35 |
$download_url = $this->getUrl('codi/adminhtml_menu/downloadtest');
|
@@ -44,6 +46,8 @@ if ( $codbgcheck == 1 ) $codbg_checked = "checked";
|
|
44 |
$extensionName="Mage_PDF_per_Product";
|
45 |
$currentVer = Mage::getConfig()->getModuleConfig('Mage_Codi')->version;
|
46 |
|
|
|
|
|
47 |
?>
|
48 |
<style>
|
49 |
#codi_status_template_button{
|
@@ -65,6 +69,7 @@ $currentVer = Mage::getConfig()->getModuleConfig('Mage_Codi')->version;
|
|
65 |
#tooltip h3, #tooltip div { margin: 0; }
|
66 |
#tooltip ul{list-style:disc outside none;margin-left:12px;margin-bottom:12px;padding-left:40px;}
|
67 |
.hidden{display:none;}
|
|
|
68 |
</style>
|
69 |
|
70 |
<div id="page:main-container">
|
@@ -323,7 +328,7 @@ switch ($target)
|
|
323 |
<tr>
|
324 |
<td class="scope-label"><a href="#accountid_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></td>
|
325 |
<td class="label"><label for="userid">Account ID</label></td>
|
326 |
-
<td class="value"><input name="userid" id="userid" value="<?php echo $userid ?>" class=" input-text" type="text"/></td>
|
327 |
<td><small> </small></td>
|
328 |
</tr>
|
329 |
<tr>
|
@@ -370,7 +375,8 @@ switch ($target)
|
|
370 |
</p>
|
371 |
|
372 |
|
373 |
-
<input type="radio" value="cod" id="cod" name="datafilelaunch" <?php if ($datafilelaunch =="cod") echo "checked" ?> onclick="displayBlock('codi_status_template','cronjob','1');" /> <label for="cod">Catalog-on-Demand <a href="#codoption_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></label
|
|
|
374 |
<input type="radio" value="magento" id="magento" name="datafilelaunch" <?php if ($datafilelaunch =="magento") echo "checked" ?> onclick="displayBlock('cronjob','codi_status_template','0');" /> <label for="magento">Cron-job <a href="#cronjoburl_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></label>
|
375 |
</td>
|
376 |
<td><small> </small></td>
|
@@ -401,6 +407,13 @@ switch ($target)
|
|
401 |
<td class="value"><input name="enablefreshflyers" id="enablefreshflyers" value="checked" <?php if ($enablefreshflyers =="checked") echo "checked" ?> class=" input-checkbox" type="checkbox"/></td>
|
402 |
<td><small> </small></td>
|
403 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
404 |
<tr>
|
405 |
<td class="scope-label"><a href="#enablereviews_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></td>
|
406 |
<td class="label"><label for="enablereviews">Enable Reviews</label></td>
|
@@ -559,6 +572,14 @@ value="<?php if ($codflyerlinkimgalt == '') echo 'Click for PDF of this product'
|
|
559 |
<div id="manual_tooltip" class="hidden">
|
560 |
<?php echo file_get_contents('http://www.catalog-on-demand.com/support/magento/ManualDataFileLaunch.html'); ?>
|
561 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
<script type="text/javascript" src="<?php echo $this->getJsUrl('jquery/jquery-1.2.6.noConflict.min.js') ?>"></script>
|
563 |
<script type="text/javascript" src="<?php echo $this->getJsUrl('jquery/jquery.tooltip.js') ?>"></script>
|
564 |
<script type="text/javascript">
|
@@ -629,8 +650,21 @@ Codi.prototype = {
|
|
629 |
requestTimeout: 100,
|
630 |
|
631 |
onSuccess: function(transport) {
|
|
|
|
|
632 |
var ret_msg = transport.responseText.evalJSON();
|
633 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
634 |
|
635 |
if ( ret_msg.success == 1 ){
|
636 |
status_div.innerHTML = "<p>A test data file is now being created. <span style='margin-left:15px;'><img src=\"<?=$this->getSkinUrl($this->__('images/codimport_run.gif'))?>\" ></span> <button type='button' class='scalable cancel' onclick='cancel_codi_import()' style='margin-left:25px' ><span>Cancel</span></button></p>";
|
@@ -741,15 +775,20 @@ function delete_codi_file()
|
|
741 |
|
742 |
}
|
743 |
|
|
|
744 |
function displayBlock(show,hide,hideboth)
|
745 |
{
|
|
|
746 |
if(hideboth=='1')
|
747 |
{
|
748 |
document.getElementById(show).style.display='none';
|
749 |
document.getElementById(hide).style.display='none';
|
|
|
|
|
750 |
}
|
751 |
else
|
752 |
{
|
|
|
753 |
document.getElementById(show).style.display='';
|
754 |
document.getElementById(hide).style.display='none';
|
755 |
}
|
@@ -775,4 +814,60 @@ function cancel_codi_import(){
|
|
775 |
}
|
776 |
});
|
777 |
}
|
778 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
$codafteroverview = Mage::getStoreConfig('codi/codi/codafteroverview') ;
|
26 |
|
27 |
$codbgcheck = Mage::getStoreConfig('codi/codi/codbgcheck') ;
|
28 |
+
|
29 |
+
$post_url = $this->getUrl('codi/nsync/manual');
|
30 |
$post_url_upd = $this->getUrl('codi/adminhtml_menu/updatestatus');
|
31 |
$post_url_cancel = $this->getUrl('codi/adminhtml_menu/cancel');
|
32 |
$post_bgprocess_check = $this->getUrl('codi/adminhtml_menu/bgcheck');
|
33 |
+
//chagned ver 3.0.1
|
34 |
+
$newpostupdate = $this->getUrl('codi/nsync/updatestatus');
|
35 |
|
36 |
//Changed ver 2.2.15
|
37 |
$download_url = $this->getUrl('codi/adminhtml_menu/downloadtest');
|
46 |
$extensionName="Mage_PDF_per_Product";
|
47 |
$currentVer = Mage::getConfig()->getModuleConfig('Mage_Codi')->version;
|
48 |
|
49 |
+
$waitforminute=Mage::getStoreConfig('codi/codi/codwaitforminute');
|
50 |
+
$includeshortdescription = Mage::getStoreConfig('codi/codi/codincludeshortdescription');
|
51 |
?>
|
52 |
<style>
|
53 |
#codi_status_template_button{
|
69 |
#tooltip h3, #tooltip div { margin: 0; }
|
70 |
#tooltip ul{list-style:disc outside none;margin-left:12px;margin-bottom:12px;padding-left:40px;}
|
71 |
.hidden{display:none;}
|
72 |
+
.waitforminute{width:59px;}
|
73 |
</style>
|
74 |
|
75 |
<div id="page:main-container">
|
328 |
<tr>
|
329 |
<td class="scope-label"><a href="#accountid_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></td>
|
330 |
<td class="label"><label for="userid">Account ID</label></td>
|
331 |
+
<td class="value"><input name="userid" onchange="makeLowercase();" id="userid" value="<?php echo $userid ?>" class=" input-text" type="text"/></td>
|
332 |
<td><small> </small></td>
|
333 |
</tr>
|
334 |
<tr>
|
375 |
</p>
|
376 |
|
377 |
|
378 |
+
<input type="radio" value="cod" id="cod" name="datafilelaunch" <?php if ($datafilelaunch =="cod") echo "checked" ?> onclick="displayBlock('codi_status_template','cronjob','1');" /> <label for="cod">Catalog-on-Demand <a href="#codoption_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></label>
|
379 |
+
<span style="display:<?php if ($datafilelaunch =="cod") echo ''; else echo 'none';?>;" id="waitforminute"><br>Minutes to wait for data file creation : <input type="text" name="waitforminute" onchange="valuevalidation(this.value,5,999,'Please enter only integer value between 5 and 999.','I');" class="waitforminute" width="60px" value="<?php echo $waitforminute;?>"> <a href="#waitforminute_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></span><br>
|
380 |
<input type="radio" value="magento" id="magento" name="datafilelaunch" <?php if ($datafilelaunch =="magento") echo "checked" ?> onclick="displayBlock('cronjob','codi_status_template','0');" /> <label for="magento">Cron-job <a href="#cronjoburl_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></label>
|
381 |
</td>
|
382 |
<td><small> </small></td>
|
407 |
<td class="value"><input name="enablefreshflyers" id="enablefreshflyers" value="checked" <?php if ($enablefreshflyers =="checked") echo "checked" ?> class=" input-checkbox" type="checkbox"/></td>
|
408 |
<td><small> </small></td>
|
409 |
</tr>
|
410 |
+
<!-- Code for Include Short Description -->
|
411 |
+
<tr>
|
412 |
+
<td class="scope-label"><a href="#includeshortdescription_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></td>
|
413 |
+
<td class="label"><label for="includeshortdescription">Include Short Description</label></td>
|
414 |
+
<td class="value"><input name="includeshortdescription" id="includeshortdescription" value="checked" <?php if ($includeshortdescription =="checked") echo "checked" ?> class=" input-checkbox" type="checkbox"/></td>
|
415 |
+
<td><small> </small></td>
|
416 |
+
</tr>
|
417 |
<tr>
|
418 |
<td class="scope-label"><a href="#enablereviews_tooltip"><img src="<?php echo $this->getSkinUrl($this->__('images/preview_field_help.png')) ?>" align="absmiddle" /></a></td>
|
419 |
<td class="label"><label for="enablereviews">Enable Reviews</label></td>
|
572 |
<div id="manual_tooltip" class="hidden">
|
573 |
<?php echo file_get_contents('http://www.catalog-on-demand.com/support/magento/ManualDataFileLaunch.html'); ?>
|
574 |
</div>
|
575 |
+
|
576 |
+
<div id="waitforminute_tooltip" class="hidden">
|
577 |
+
<?php echo file_get_contents('http://www.catalog-on-demand.com/support/magento/waitforminute.html'); ?>
|
578 |
+
</div>
|
579 |
+
<div id="includeshortdescription_tooltip" class="hidden">
|
580 |
+
<?php echo file_get_contents('http://www.catalog-on-demand.com/support/magento/shortdesc.html'); ?>
|
581 |
+
</div>
|
582 |
+
|
583 |
<script type="text/javascript" src="<?php echo $this->getJsUrl('jquery/jquery-1.2.6.noConflict.min.js') ?>"></script>
|
584 |
<script type="text/javascript" src="<?php echo $this->getJsUrl('jquery/jquery.tooltip.js') ?>"></script>
|
585 |
<script type="text/javascript">
|
650 |
requestTimeout: 100,
|
651 |
|
652 |
onSuccess: function(transport) {
|
653 |
+
//var ret_msg = transport.responseText.evalJSON();
|
654 |
+
//var status_div = document.getElementById('codi_status_template');
|
655 |
var ret_msg = transport.responseText.evalJSON();
|
656 |
+
var status_div = document.getElementById('codi_status_template');
|
657 |
+
var v;
|
658 |
+
var totalproduct=ret_msg.length;
|
659 |
+
for (var i=0;i<ret_msg.length;i++) {
|
660 |
+
//alert(ret_msg[i]);
|
661 |
+
productid=ret_msg[i];
|
662 |
+
var j=i+1;
|
663 |
+
v=createfilenew(productid,j,totalproduct);
|
664 |
+
|
665 |
+
}
|
666 |
+
var status_div = document.getElementById('codi_status_template');
|
667 |
+
|
668 |
|
669 |
if ( ret_msg.success == 1 ){
|
670 |
status_div.innerHTML = "<p>A test data file is now being created. <span style='margin-left:15px;'><img src=\"<?=$this->getSkinUrl($this->__('images/codimport_run.gif'))?>\" ></span> <button type='button' class='scalable cancel' onclick='cancel_codi_import()' style='margin-left:25px' ><span>Cancel</span></button></p>";
|
775 |
|
776 |
}
|
777 |
|
778 |
+
|
779 |
function displayBlock(show,hide,hideboth)
|
780 |
{
|
781 |
+
|
782 |
if(hideboth=='1')
|
783 |
{
|
784 |
document.getElementById(show).style.display='none';
|
785 |
document.getElementById(hide).style.display='none';
|
786 |
+
document.getElementById('waitforminute').style.display='';
|
787 |
+
|
788 |
}
|
789 |
else
|
790 |
{
|
791 |
+
document.getElementById('waitforminute').style.display='none';
|
792 |
document.getElementById(show).style.display='';
|
793 |
document.getElementById(hide).style.display='none';
|
794 |
}
|
814 |
}
|
815 |
});
|
816 |
}
|
817 |
+
|
818 |
+
function makeLowercase() {
|
819 |
+
document.getElementById('userid').value = document.getElementById('userid').value.toLowerCase();
|
820 |
+
}
|
821 |
+
|
822 |
+
function valuevalidation(value, min, max, alertbox, datatype)
|
823 |
+
{
|
824 |
+
|
825 |
+
with (value)
|
826 |
+
{
|
827 |
+
checkvalue=parseFloat(value);
|
828 |
+
if (datatype)
|
829 |
+
{ smalldatatype=datatype.toLowerCase();
|
830 |
+
if (smalldatatype.charAt(0)=="i") {checkvalue=parseInt(value)};
|
831 |
+
}
|
832 |
+
if ((parseFloat(min)==min && checkvalue<min) || (parseFloat(max)==max && checkvalue>max) || value!=checkvalue)
|
833 |
+
{if (alertbox!="") {alert(alertbox);} return false;}
|
834 |
+
else {return true;}
|
835 |
+
}
|
836 |
+
}
|
837 |
+
|
838 |
+
function createfilenew(productid,i,totalproduct)
|
839 |
+
{ var img_url = "<?php echo $this->getSkinUrl($this->__('images/codimport_yes.gif')) ?>";
|
840 |
+
var r;
|
841 |
+
var base = "<?php echo $basePath ?>";
|
842 |
+
var status_div = document.getElementById('codi_status_template');
|
843 |
+
var a = new Ajax.Request("<?php echo $newpostupdate; ?>",
|
844 |
+
{ asynchronous:false,
|
845 |
+
method: 'post',
|
846 |
+
parameters: "product="+productid+"&counter="+i+"&total="+totalproduct+"&basepath="+base,
|
847 |
+
onSuccess: function(transport) {
|
848 |
+
r= transport.responseText;
|
849 |
+
if(r=='100'){
|
850 |
+
status_div.innerHTML="<p id='codi_status_template_button'>"+transport.responseText+"% </p> Your test data file was created successfully.<img src='" + img_url + "' /><button type='button' class='scalable add' style='margin-left:25px;' onclick='download_codi_file();' ><span>Download Data File</span></button><button type='button' class='scalable add' style='margin-left:25px;' onclick='delete_codi_file();' ><span>Delete Data File</span></button> ";
|
851 |
+
}
|
852 |
+
else{
|
853 |
+
if(r!="error"){
|
854 |
+
status_div.innerHTML="<p id='codi_status_template_button'>"+transport.responseText+"% </p><p>A test data file is now being created. <span style='margin-left:15px;'><img src=\"<?=$this->getSkinUrl($this->__('images/codimport_run.gif'))?>\" ></span> <button type='button' class='scalable cancel' onclick='cancel_codi_import()' style='margin-left:25px' ><span>Cancel</span></button></p>";
|
855 |
+
}
|
856 |
+
}
|
857 |
+
if(r=="error")
|
858 |
+
{
|
859 |
+
status_div.innerHTML="<p>Your test data file was not created. Please contact your administrator( File Error ).</p>";
|
860 |
+
}
|
861 |
+
|
862 |
+
}
|
863 |
+
|
864 |
+
//onFailure: this.ajaxFailure.bind(),
|
865 |
+
});
|
866 |
+
return r;
|
867 |
+
|
868 |
+
//alert("end");
|
869 |
+
|
870 |
+
|
871 |
+
|
872 |
+
}
|
873 |
+
</script>
|
app/design/frontend/default/default/template/catalog/product/view.phtml
ADDED
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Product view template
|
29 |
+
*
|
30 |
+
* @see Mage_Catalog_Block_Product_View
|
31 |
+
* @see Mage_Review_Block_Product_View
|
32 |
+
*/
|
33 |
+
?>
|
34 |
+
<?php $_helper = $this->helper('catalog/output'); ?>
|
35 |
+
<?php $_product = $this->getProduct();?>
|
36 |
+
|
37 |
+
<?php
|
38 |
+
//Catalog-on-Demand
|
39 |
+
|
40 |
+
if ( Mage::getStoreConfig('codi/codi/codflyerlinkimg') =='Custom')
|
41 |
+
$codflyerlinkimgurl = Mage::getStoreConfig('codi/codi/codflyerlinkimgurl');
|
42 |
+
else
|
43 |
+
$codflyerlinkimgurl = 'http://www.catalog-on-demand.com/print-catalog.png';
|
44 |
+
|
45 |
+
$enablefreshflyers = Mage::getStoreConfig('codi/codi/enablefreshflyers');
|
46 |
+
|
47 |
+
$flyerlink = '<a target="_blank" href="http://catalog-on-demand.com/PDF-e-Link/?FlyerA&AID=' . Mage::getStoreConfig('codi/codi/codusername'). '|' . urlencode($_product->getId() . '#$#' . $_product->getName()) . '">'. '<img id="codflyerlinkimgalt" title="' . Mage::getStoreConfig('codi/codi/codflyerlinkimgalt') . '" alt="' . Mage::getStoreConfig('codi/codi/codflyerlinkimgalt') . '" src="' . $codflyerlinkimgurl . '">'. '</a>';
|
48 |
+
|
49 |
+
//Catalog-on-Demand
|
50 |
+
?>
|
51 |
+
|
52 |
+
|
53 |
+
<script type="text/javascript">
|
54 |
+
var optionsPrice = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);
|
55 |
+
</script>
|
56 |
+
<div id="messages_product_view"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div>
|
57 |
+
<div class="product-view">
|
58 |
+
<div class="product-essential">
|
59 |
+
<form action="<?php echo $this->getSubmitUrl($_product) ?>" method="post" id="product_addtocart_form"<?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>>
|
60 |
+
<div class="no-display">
|
61 |
+
<input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
|
62 |
+
<input type="hidden" name="related_product" id="related-products-field" value="" />
|
63 |
+
</div>
|
64 |
+
|
65 |
+
<div class="product-shop">
|
66 |
+
<div class="product-name">
|
67 |
+
<h1>
|
68 |
+
<!--Catalog-on-Demand-->
|
69 |
+
<?php if(Mage::getStoreConfig('codi/codi/codbeforename')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
70 |
+
<?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?>
|
71 |
+
<?php if(Mage::getStoreConfig('codi/codi/codaftername')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
72 |
+
<!--Catalog-on-Demand-->
|
73 |
+
</h1>
|
74 |
+
</div>
|
75 |
+
|
76 |
+
<?php if ($this->canEmailToFriend()): ?>
|
77 |
+
<p class="email-friend">
|
78 |
+
<!--Catalog-on-Demand-->
|
79 |
+
<?php if(Mage::getStoreConfig('codi/codi/codbeforeemailto')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
80 |
+
<a href="<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>"><?php echo $this->__('Email to a Friend') ?></a>
|
81 |
+
<?php if(Mage::getStoreConfig('codi/codi/codafteremailto')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
82 |
+
<!--Catalog-on-Demand-->
|
83 |
+
</p>
|
84 |
+
<?php endif; ?>
|
85 |
+
|
86 |
+
<?php echo $this->getReviewsSummaryHtml($_product, false, true)?>
|
87 |
+
<?php echo $this->getChildHtml('alert_urls') ?>
|
88 |
+
<?php echo $this->getChildHtml('product_type_data') ?>
|
89 |
+
<?php echo $this->getTierPriceHtml() ?>
|
90 |
+
<?php echo $this->getChildHtml('extrahint') ?>
|
91 |
+
|
92 |
+
<?php if (!$this->hasOptions()):?>
|
93 |
+
<div class="add-to-box">
|
94 |
+
<?php if($_product->isSaleable()): ?>
|
95 |
+
<?php echo $this->getChildHtml('addtocart') ?>
|
96 |
+
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
|
97 |
+
<span class="or">
|
98 |
+
<!--Catalog-on-Demand-->
|
99 |
+
<?php if(Mage::getStoreConfig('codi/codi/codbeforeOR')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
100 |
+
<?php echo $this->__('OR') ?>
|
101 |
+
<?php if(Mage::getStoreConfig('codi/codi/codafterOR')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
102 |
+
<!--Catalog-on-Demand-->
|
103 |
+
</span>
|
104 |
+
<?php endif; ?>
|
105 |
+
<?php endif; ?>
|
106 |
+
<?php echo $this->getChildHtml('addto') ?>
|
107 |
+
</div>
|
108 |
+
<?php echo $this->getChildHtml('extra_buttons') ?>
|
109 |
+
<?php endif; ?>
|
110 |
+
|
111 |
+
<?php if ($_product->getShortDescription()):?>
|
112 |
+
<div class="short-description">
|
113 |
+
<h2>
|
114 |
+
<!--Catalog-on-Demand-->
|
115 |
+
<?php if(Mage::getStoreConfig('codi/codi/codbeforeoverview')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
116 |
+
<?php echo $this->__('Quick Overview') ?>
|
117 |
+
<?php if(Mage::getStoreConfig('codi/codi/codafteroverview')=="checked" && $enablefreshflyers) echo $flyerlink; ?>
|
118 |
+
<!--Catalog-on-Demand-->
|
119 |
+
</h2>
|
120 |
+
<div class="std"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div>
|
121 |
+
</div>
|
122 |
+
<?php endif;?>
|
123 |
+
|
124 |
+
<?php echo $this->getChildHtml('other');?>
|
125 |
+
|
126 |
+
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
|
127 |
+
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
|
128 |
+
<?php endif;?>
|
129 |
+
|
130 |
+
</div>
|
131 |
+
|
132 |
+
<div class="product-img-box">
|
133 |
+
<?php echo $this->getChildHtml('media') ?>
|
134 |
+
</div>
|
135 |
+
|
136 |
+
<div class="clearer"></div>
|
137 |
+
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
|
138 |
+
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
|
139 |
+
<?php endif;?>
|
140 |
+
</form>
|
141 |
+
<script type="text/javascript">
|
142 |
+
//<![CDATA[
|
143 |
+
var productAddToCartForm = new VarienForm('product_addtocart_form');
|
144 |
+
productAddToCartForm.submit = function(button, url) {
|
145 |
+
if (this.validator.validate()) {
|
146 |
+
var form = this.form;
|
147 |
+
var oldUrl = form.action;
|
148 |
+
|
149 |
+
if (url) {
|
150 |
+
form.action = url;
|
151 |
+
}
|
152 |
+
var e = null;
|
153 |
+
try {
|
154 |
+
this.form.submit();
|
155 |
+
} catch (e) {
|
156 |
+
}
|
157 |
+
this.form.action = oldUrl;
|
158 |
+
if (e) {
|
159 |
+
throw e;
|
160 |
+
}
|
161 |
+
|
162 |
+
if (button && button != 'undefined') {
|
163 |
+
button.disabled = true;
|
164 |
+
}
|
165 |
+
}
|
166 |
+
}.bind(productAddToCartForm);
|
167 |
+
|
168 |
+
productAddToCartForm.submitLight = function(button, url){
|
169 |
+
if(this.validator) {
|
170 |
+
var nv = Validation.methods;
|
171 |
+
delete Validation.methods['required-entry'];
|
172 |
+
delete Validation.methods['validate-one-required'];
|
173 |
+
delete Validation.methods['validate-one-required-by-name'];
|
174 |
+
if (this.validator.validate()) {
|
175 |
+
if (url) {
|
176 |
+
this.form.action = url;
|
177 |
+
}
|
178 |
+
this.form.submit();
|
179 |
+
}
|
180 |
+
Object.extend(Validation.methods, nv);
|
181 |
+
}
|
182 |
+
}.bind(productAddToCartForm);
|
183 |
+
//]]>
|
184 |
+
</script>
|
185 |
+
</div>
|
186 |
+
|
187 |
+
<div class="product-collateral">
|
188 |
+
<?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?>
|
189 |
+
<div class="box-collateral <?php echo "box-{$alias}"?>">
|
190 |
+
<?php if ($title = $this->getChildData($alias, 'title')):?>
|
191 |
+
<h2><?php echo $this->escapeHtml($title); ?></h2>
|
192 |
+
<?php endif;?>
|
193 |
+
<?php echo $html; ?>
|
194 |
+
</div>
|
195 |
+
<?php endforeach;?>
|
196 |
+
<?php echo $this->getChildHtml('upsell_products') ?>
|
197 |
+
<?php echo $this->getChildHtml('product_additional_data') ?>
|
198 |
+
</div>
|
199 |
+
</div>
|
package.xml
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Mage_PDF_per_Product</name>
|
4 |
-
<version>3.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Catalog-On-Demand</summary>
|
10 |
<description>Catalog-On-Demand</description>
|
11 |
-
<notes>3.0.
|
12 |
<authors><author><name>catalogondemand</name><user>auto-converted</user><email>timh@catalog-on-demand.com</email></author></authors>
|
13 |
-
<date>2011-11-
|
14 |
-
<time>
|
15 |
-
<contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><file name="codimport_run.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="codimport_yes.gif" hash="0afb20898a704a106cb4c598868abf32"/><file name="preview_field_help.png" hash="1b1601459d25e8b1a6b1d109782078d2"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="codi"><file name="index.phtml" hash="
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Mage_PDF_per_Product</name>
|
4 |
+
<version>3.0.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>
|
8 |
<extends/>
|
9 |
<summary>Catalog-On-Demand</summary>
|
10 |
<description>Catalog-On-Demand</description>
|
11 |
+
<notes>3.0.1 - Added Magento 1.6 compatibility.</notes>
|
12 |
<authors><author><name>catalogondemand</name><user>auto-converted</user><email>timh@catalog-on-demand.com</email></author></authors>
|
13 |
+
<date>2011-11-08</date>
|
14 |
+
<time>09:39:19</time>
|
15 |
+
<contents><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><file name="codimport_run.gif" hash="e805ea7eca1f34c75ba0f93780d32d38"/><file name="codimport_yes.gif" hash="0afb20898a704a106cb4c598868abf32"/><file name="preview_field_help.png" hash="1b1601459d25e8b1a6b1d109782078d2"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="jquery"><file name="jquery-1.2.6.noConflict.min.js" hash="090fdb3fbcb4727c0ca20cca87e7e12d"/><file name="jquery.tooltip.js" hash="d17cc8af1b8a595bd597084232be87e0"/></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="codi"><file name="index.phtml" hash="f921a1948213fb08775adc9b4e57b955"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="catalog"><dir name="product"><file name="view.phtml" hash="de6b3d9d0787a3f96955b8089898b441"/></dir></dir></dir></dir></dir></dir></target><target name="magecommunity"><dir name="Mage"><dir name="Codi"><dir name="Block"><dir name="Adminhtml"><file name="Menu.php" hash="ae8a9d1be49f00102911ef5fbe97c126"/><file name="Switcher.php" hash="0d74bdf48e12047e7317e4a877efb30d"/></dir><dir name="Customer"><file name="Codi.php" hash="17c557dbcfadd336dc7ba773d6304fc0"/></dir></dir><dir name="Helper"><file name="Data.php" hash="9eb7d7267d816ede3f042edae8bae4d6"/></dir><dir name="Model"><file name="Codi.php" hash="a7b2befcffbeaffd4f1c5ed5546e57c4"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="MenuController.php" hash="c4c6c4b7e594047f5977b3443d3dc324"/></dir><file name="DeleteController.php" hash="fed4a29a509a181f0f185de0609872db"/><file name="NsyncController.php" hash="956d90a4f986b5a5a8347d429ff0487d"/><file name="SyncController.php" hash="be23847dd365c3f0ba5efb467a6b1f6b"/></dir><dir name="etc"><file name="config.xml" hash="2d0030b10a462c3e2f2ebff532befabe"/></dir><file name="Codi_Process.php" hash="fbbd13784f36efb5db3cf10f5981bcce"/></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_Codi.xml" hash="5d635cd2a0d415b67f095bda0298445d"/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|