Version Notes
Fixed a UI bug where eBook wasn't being selected in dropdown automatically.
Download this release
Release Info
Developer | EditionGuard |
Extension | editionguard_drm |
Version | 1.0.2.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.1.1 to 1.0.2.0
- app/code/community/Editionguard/Editionguard/Helper/Data.php +5 -2
- app/code/community/Editionguard/Editionguard/Model/Downloadable/Link.php +70 -58
- app/code/community/Editionguard/Editionguard/etc/config.xml +1 -1
- app/design/adminhtml/default/default/template/editionguard/downloadable/product/edit/downloadable/links.phtml +1 -1
- package.xml +4 -4
app/code/community/Editionguard/Editionguard/Helper/Data.php
CHANGED
@@ -94,11 +94,13 @@ class Editionguard_Editionguard_Helper_Data extends Mage_Core_Helper_Data
|
|
94 |
// TODO: Map any documented error codes to more meaningful messages
|
95 |
// TODO: Use a custom exception type
|
96 |
throw new Editionguard_Editionguard_Model_Exception("Error: $error_type while uploading file to EditionGuard", $error_type, $error_url);
|
|
|
97 |
}
|
98 |
else
|
99 |
{
|
100 |
// TODO: Use a custom exception type
|
101 |
throw new Editionguard_Editionguard_Model_Exception("Unknown error while uploading file to EditionGuard");
|
|
|
102 |
}
|
103 |
}
|
104 |
|
@@ -203,10 +205,11 @@ class Editionguard_Editionguard_Helper_Data extends Mage_Core_Helper_Data
|
|
203 |
)
|
204 |
);
|
205 |
|
206 |
-
if (!isset($xml->resourceItemInfo))
|
207 |
{
|
208 |
// Unknown response type. Assume it's a raw error.
|
209 |
-
|
|
|
210 |
}
|
211 |
|
212 |
return array(
|
94 |
// TODO: Map any documented error codes to more meaningful messages
|
95 |
// TODO: Use a custom exception type
|
96 |
throw new Editionguard_Editionguard_Model_Exception("Error: $error_type while uploading file to EditionGuard", $error_type, $error_url);
|
97 |
+
Mage::log("EditionGuard Error with returned XML: ".$xml);
|
98 |
}
|
99 |
else
|
100 |
{
|
101 |
// TODO: Use a custom exception type
|
102 |
throw new Editionguard_Editionguard_Model_Exception("Unknown error while uploading file to EditionGuard");
|
103 |
+
Mage::log("EditionGuard Unknown error with XML: ".$xml);
|
104 |
}
|
105 |
}
|
106 |
|
205 |
)
|
206 |
);
|
207 |
|
208 |
+
if (!isset($xml->resourceItemInfo) && !isset($xml->response))
|
209 |
{
|
210 |
// Unknown response type. Assume it's a raw error.
|
211 |
+
Mage::log("EditionGuard Error with returned XML: ".print_r($xml, true));
|
212 |
+
throw new Exception("Error: \"".$xml->error->getAttribute('data')."\" while uploading file to EditionGuard");
|
213 |
}
|
214 |
|
215 |
return array(
|
app/code/community/Editionguard/Editionguard/Model/Downloadable/Link.php
CHANGED
@@ -38,23 +38,23 @@ class Editionguard_Editionguard_Model_Downloadable_Link extends Mage_Downloadabl
|
|
38 |
{
|
39 |
// If enabling editionguard, we need to do this before updating the
|
40 |
// file. Otherwise the system will give errors.
|
41 |
-
if ($this->getEditionguardResource() && $add_editionguard)
|
42 |
-
{
|
43 |
-
// had a resource, now re-enabling editionguard handling.
|
44 |
-
try {
|
45 |
-
$editionguard = Mage::helper('editionguard')->setResourceActive(
|
46 |
-
$this->getEditionguardResource(),
|
47 |
-
true
|
48 |
-
);
|
49 |
-
} catch (Editionguard_Editionguard_Model_Exception $e) {
|
50 |
-
// Skip an error code that's getting returned right now in a non-error case
|
51 |
-
if ($e->getCode() != 'E_ADEPT_INTERNAL')
|
52 |
-
{
|
53 |
-
// Got an error from EditionGuard. Can't save. Pass it on.
|
54 |
-
throw $e;
|
55 |
-
}
|
56 |
-
}
|
57 |
-
}
|
58 |
|
59 |
// Add or update the file
|
60 |
if ($new || $new_file || !$this->getEditionguardResource())
|
@@ -66,18 +66,30 @@ class Editionguard_Editionguard_Model_Downloadable_Link extends Mage_Downloadabl
|
|
66 |
$filedata = file_get_contents($filepath);
|
67 |
// Get the product object for its name
|
68 |
$product = Mage::getModel('catalog/product')->load($this->_data['product_id']);
|
69 |
-
|
70 |
-
|
|
|
|
|
71 |
$product->_data['name'],
|
72 |
basename($this->getLinkFile()),
|
73 |
-
$filedata
|
74 |
-
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
// Remember the response information
|
77 |
-
if($new) {
|
78 |
$this->setEditionguardResource($editionguard['resource']);
|
79 |
$this->setEditionguardSrc($editionguard['src']);
|
80 |
}
|
|
|
|
|
|
|
|
|
81 |
} catch (Editionguard_Editionguard_Model_Exception $e) {
|
82 |
// Got an error from EditionGuard. Can't save. Pass it on.
|
83 |
throw $e;
|
@@ -86,23 +98,23 @@ class Editionguard_Editionguard_Model_Downloadable_Link extends Mage_Downloadabl
|
|
86 |
}
|
87 |
}
|
88 |
|
89 |
-
if ($this->getEditionguardResource() && $remove_editionguard)
|
90 |
-
{
|
91 |
-
// had a resource, now removing editionguard handling. Disable editionguard on the file.
|
92 |
-
try {
|
93 |
-
$editionguard = Mage::helper('editionguard')->setResourceActive(
|
94 |
-
$this->getEditionguardResource(),
|
95 |
-
false
|
96 |
-
);
|
97 |
-
} catch (Editionguard_Editionguard_Model_Exception $e) {
|
98 |
-
// Skip an error code that's getting returned right now in a non-error case
|
99 |
-
if ($e->getCode() != 'E_ADEPT_INTERNAL')
|
100 |
-
{
|
101 |
-
// Got an error from EditionGuard. Can't save. Pass it on.
|
102 |
-
throw $e;
|
103 |
-
}
|
104 |
-
}
|
105 |
-
}
|
106 |
return parent::_beforeSave();
|
107 |
}
|
108 |
|
@@ -111,24 +123,24 @@ class Editionguard_Editionguard_Model_Downloadable_Link extends Mage_Downloadabl
|
|
111 |
*
|
112 |
* @return Mage_Downloadable_Model_Link
|
113 |
*/
|
114 |
-
protected function _beforeDelete()
|
115 |
-
{
|
116 |
-
$this->_ensureOrigData();
|
117 |
-
|
118 |
-
if ($this->getEditionguardResource())
|
119 |
-
{
|
120 |
-
// Had a resource. Delete it.
|
121 |
-
try {
|
122 |
-
$editionguard = Mage::helper('editionguard')->deleteResource(
|
123 |
-
$this->getEditionguardResource()
|
124 |
-
);
|
125 |
-
} catch (Editionguard_Editionguard_Model_Exception $e) {
|
126 |
-
// Got an error from EditionGuard. Can't save. Pass it on.
|
127 |
-
throw $e;
|
128 |
-
}
|
129 |
-
}
|
130 |
-
return parent::_beforeDelete();
|
131 |
-
}
|
132 |
|
133 |
protected function _beforeLoad($id, $field = null)
|
134 |
{
|
38 |
{
|
39 |
// If enabling editionguard, we need to do this before updating the
|
40 |
// file. Otherwise the system will give errors.
|
41 |
+
// if ($this->getEditionguardResource() && $add_editionguard)
|
42 |
+
// {
|
43 |
+
// // had a resource, now re-enabling editionguard handling.
|
44 |
+
// try {
|
45 |
+
// $editionguard = Mage::helper('editionguard')->setResourceActive(
|
46 |
+
// $this->getEditionguardResource(),
|
47 |
+
// true
|
48 |
+
// );
|
49 |
+
// } catch (Editionguard_Editionguard_Model_Exception $e) {
|
50 |
+
// // Skip an error code that's getting returned right now in a non-error case
|
51 |
+
// if ($e->getCode() != 'E_ADEPT_INTERNAL')
|
52 |
+
// {
|
53 |
+
// // Got an error from EditionGuard. Can't save. Pass it on.
|
54 |
+
// throw $e;
|
55 |
+
// }
|
56 |
+
// }
|
57 |
+
// }
|
58 |
|
59 |
// Add or update the file
|
60 |
if ($new || $new_file || !$this->getEditionguardResource())
|
66 |
$filedata = file_get_contents($filepath);
|
67 |
// Get the product object for its name
|
68 |
$product = Mage::getModel('catalog/product')->load($this->_data['product_id']);
|
69 |
+
|
70 |
+
// If we're uploading a file after link was set as remote eBook, don't send resource id
|
71 |
+
if($this->getOrigData("link_type") != "ebook") {
|
72 |
+
$editionguard = Mage::helper('editionguard')->sendToEditionguard($this->getEditionguardResource(),
|
73 |
$product->_data['name'],
|
74 |
basename($this->getLinkFile()),
|
75 |
+
$filedata);
|
76 |
+
}
|
77 |
+
else {
|
78 |
+
$editionguard = Mage::helper('editionguard')->sendToEditionguard(false,
|
79 |
+
$product->_data['name'],
|
80 |
+
basename($this->getLinkFile()),
|
81 |
+
$filedata);
|
82 |
+
}
|
83 |
+
|
84 |
// Remember the response information
|
85 |
+
if($new || $this->getOrigData("link_type") == "ebook") {
|
86 |
$this->setEditionguardResource($editionguard['resource']);
|
87 |
$this->setEditionguardSrc($editionguard['src']);
|
88 |
}
|
89 |
+
|
90 |
+
// Always set link_type to ebook when using EditionGuard
|
91 |
+
$this->setLinkType("ebook");
|
92 |
+
|
93 |
} catch (Editionguard_Editionguard_Model_Exception $e) {
|
94 |
// Got an error from EditionGuard. Can't save. Pass it on.
|
95 |
throw $e;
|
98 |
}
|
99 |
}
|
100 |
|
101 |
+
// if ($this->getEditionguardResource() && $remove_editionguard)
|
102 |
+
// {
|
103 |
+
// // had a resource, now removing editionguard handling. Disable editionguard on the file.
|
104 |
+
// try {
|
105 |
+
// $editionguard = Mage::helper('editionguard')->setResourceActive(
|
106 |
+
// $this->getEditionguardResource(),
|
107 |
+
// false
|
108 |
+
// );
|
109 |
+
// } catch (Editionguard_Editionguard_Model_Exception $e) {
|
110 |
+
// // Skip an error code that's getting returned right now in a non-error case
|
111 |
+
// if ($e->getCode() != 'E_ADEPT_INTERNAL')
|
112 |
+
// {
|
113 |
+
// // Got an error from EditionGuard. Can't save. Pass it on.
|
114 |
+
// throw $e;
|
115 |
+
// }
|
116 |
+
// }
|
117 |
+
// }
|
118 |
return parent::_beforeSave();
|
119 |
}
|
120 |
|
123 |
*
|
124 |
* @return Mage_Downloadable_Model_Link
|
125 |
*/
|
126 |
+
// protected function _beforeDelete()
|
127 |
+
// {
|
128 |
+
// $this->_ensureOrigData();
|
129 |
+
//
|
130 |
+
// if ($this->getEditionguardResource())
|
131 |
+
// {
|
132 |
+
// // Had a resource. Delete it.
|
133 |
+
// try {
|
134 |
+
// $editionguard = Mage::helper('editionguard')->deleteResource(
|
135 |
+
// $this->getEditionguardResource()
|
136 |
+
// );
|
137 |
+
// } catch (Editionguard_Editionguard_Model_Exception $e) {
|
138 |
+
// // Got an error from EditionGuard. Can't save. Pass it on.
|
139 |
+
// throw $e;
|
140 |
+
// }
|
141 |
+
// }
|
142 |
+
// return parent::_beforeDelete();
|
143 |
+
// }
|
144 |
|
145 |
protected function _beforeLoad($id, $field = null)
|
146 |
{
|
app/code/community/Editionguard/Editionguard/etc/config.xml
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
<config>
|
15 |
<modules>
|
16 |
<Editionguard_Editionguard>
|
17 |
-
<version>1.0.
|
18 |
</Editionguard_Editionguard>
|
19 |
</modules>
|
20 |
<frontend>
|
14 |
<config>
|
15 |
<modules>
|
16 |
<Editionguard_Editionguard>
|
17 |
+
<version>1.0.2.0</version>
|
18 |
</Editionguard_Editionguard>
|
19 |
</modules>
|
20 |
<frontend>
|
app/design/adminhtml/default/default/template/editionguard/downloadable/product/edit/downloadable/links.phtml
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<?php
|
2 |
* EditionGuard
|
3 |
*
|
4 |
* This source file is proprietary property of EditionGuard. Any reuse or
|
5 |
* distribution of any part of this file without prior consent is prohibited.
|
6 |
*
|
7 |
* @category EditionGuard
|
8 |
* @package Editionguard_Editionguard
|
9 |
* @copyright Copyright (c) 2012 EditionGuard. All rights Reserved.
|
10 |
*/
|
11 |
* @see Editionguard_Editionguard_Block_Downloadable_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
|
12 |
*/
|
13 |
$this->getEditionguardResource()
|
14 |
$eSelectbox .= '<option value="' . $value->resource . '">' . $value->title . ' ('.$value->resource.')</option>';
|
15 |
<table cellspacing="0" class="form-list">
|
16 |
<tbody>
|
17 |
<tr class="headings">
|
18 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title') ?></label>
|
19 |
</td>
|
20 |
<td class="value">
|
21 |
<input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId() ? $_product->getLinksTitle() : $this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault()) ? 'disabled="disabled"' : '' ?> />
|
22 |
</td>
|
23 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[STORE VIEW]<?php endif; ?></td>
|
24 |
<td class="value use-default">
|
25 |
<?php if ($_product->getStoreId()): ?>
|
26 |
<input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault() ? 'checked="checked"' : '' ?> />
|
27 |
<label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
|
28 |
<?php endif; ?>
|
29 |
</td>
|
30 |
</tr>
|
31 |
</tbody>
|
32 |
</table>
|
33 |
<br />
|
34 |
<table cellspacing="0" class="form-list">
|
35 |
<tbody>
|
36 |
<tr class="headings">
|
37 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately') ?></label>
|
38 |
</td>
|
39 |
<td class="value">
|
40 |
<?php echo $this->getPurchasedSeparatelySelect() ?>
|
41 |
</td>
|
42 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[GLOBAL]<?php endif; ?></td>
|
43 |
<td><small> </small></td>
|
44 |
</tr>
|
45 |
</tbody>
|
46 |
</table>
|
47 |
<br />
|
48 |
<div class="grid">
|
49 |
<div class="hor-scroll">
|
50 |
<table cellspacing="0" class="data border">
|
51 |
<col width="33%" />
|
52 |
<col />
|
53 |
<col />
|
54 |
<col />
|
55 |
<col />
|
56 |
<col width="1" />
|
57 |
<col width="1" />
|
58 |
<col width="1" />
|
59 |
<col width="1" />
|
60 |
<thead>
|
61 |
<tr class="headings">
|
62 |
<th><?php echo Mage::helper('downloadable')->__('Title') ?> <span class="required">*</span></th>
|
63 |
<?php if ($this->getCanReadPrice() !== false) : ?>
|
64 |
<th><?php echo Mage::helper('downloadable')->__('Price') ?></th>
|
65 |
<?php endif; ?>
|
66 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads') ?></span></th>
|
67 |
<th><?php echo Mage::helper('downloadable')->__('Shareable') ?></th>
|
68 |
<th><?php echo Mage::helper('downloadable')->__('EditionGuard') ?></th>
|
69 |
<th><?php echo Mage::helper('downloadable')->__('Sample') ?></th>
|
70 |
<th><?php echo Mage::helper('downloadable')->__('File') ?></th>
|
71 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order') ?></span></th>
|
72 |
<th> </th>
|
73 |
</tr>
|
74 |
</thead>
|
75 |
<tfoot>
|
76 |
<tr>
|
77 |
<td colspan="9" class="a-right"><?php echo $this->getAddButtonHtml() ?> <?php echo $this->getUploadButtonHtml() ?></td>
|
78 |
</tr>
|
79 |
</tfoot>
|
80 |
<tbody id="link_items_body">
|
81 |
</tbody>
|
82 |
</table>
|
83 |
<div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.') ?></small></div>
|
84 |
</div>
|
85 |
</div>
|
86 |
//<![CDATA[
|
87 |
var linkTemplate = '<tr>' +
|
88 |
'<td>' +
|
89 |
'<input type="hidden" class="__delete__" name="downloadable[link][{{id}}][is_delete]" value="" />' +
|
90 |
'<input type="hidden" name="downloadable[link][{{id}}][link_id]" value="{{link_id}}" />' +
|
91 |
'<input type="text" class="required-entry input-text" name="downloadable[link][{{id}}][title]" value="{{title}}" />' +
|
92 |
'<?php echo $_product->getStoreId() ? '<input type="checkbox" id="downloadable_link_{{id}}_title" name="downloadable[link][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_link_{{id}}_title">Use Default Value</label>' : '' ?>' +
|
93 |
'</td>' +
|
94 |
'<td class="input-price">' +
|
95 |
'<input type="text" id="downloadable_link_{{id}}_price_value" class="input-text validate-number link-prices<?php if ($this->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][{{id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
|
96 |
'<label>[<?php echo Mage::app()->getStore($_product->getStoreId())->getBaseCurrencyCode() ?>]</label>' +
|
97 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
98 |
'<br /><input type="checkbox" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> <label for="downloadable_link_{{id}}_price">Use Default Value</label>' +
|
99 |
<?php endif; ?>
|
100 |
'</td>' +
|
101 |
'<input type="hidden" id="downloadable_link_{{id}}_price_value" class="link-prices" name="downloadable[link][{{id}}][price]" value="0" />' +
|
102 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
103 |
'<input type="hidden" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1" />' +
|
104 |
<?php endif; ?>
|
105 |
'<td><input type="text" id="downloadable_link_{{id}}_downloads" name="downloadable[link][{{id}}][number_of_downloads]" class="input-text downloads" value="{{number_of_downloads}}" />' +
|
106 |
'<p><input type="checkbox" class="checkbox" id="downloadable_link_{{id}}_is_unlimited" name="downloadable[link][{{id}}][is_unlimited]" value="1" {{is_unlimited}} /> <label for="downloadable_link_{{id}}_is_unlimited">Unlimited</label></p></td>' +
|
107 |
'<td class="a-center">' +
|
108 |
'<select id="downloadable_link _{{id}}_shareable" name="downloadable[link][{{id}}][is_shareable]">' +
|
109 |
'<option value="1">Yes</option>' +
|
110 |
'<option value="0">No</option>' +
|
111 |
'<option value="2" selected="selected">Use config</option>' +
|
112 |
'</select>' +
|
113 |
'</td>' +
|
114 |
'<td class="a-center">' +
|
115 |
'<input type="hidden" id="downloadable_link _{{id}}_old_use_editionguard" class="old_use_editionguard" name="downloadable[link][{{id}}][old_use_editionguard]" value="{{use_editionguard}}" />' +
|
116 |
'<select id="downloadable_link _{{id}}_editionguard" class="use_editionguard" name="downloadable[link][{{id}}][use_editionguard]">' +
|
117 |
'<option value="1" selected="selected">Yes</option>' +
|
118 |
'<option value="0">No</option>' +
|
119 |
'<option value="2">Use config</option>' +
|
120 |
'</select>' +
|
121 |
'</td>' +
|
122 |
'<td>' +
|
123 |
'<div class="files">' +
|
124 |
'<div class="row">' +
|
125 |
'<label for="downloadable_link_{{id}}_sample_file_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} checked="checked"/> File:</label>' +
|
126 |
'<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />' +
|
127 |
'<div id="downloadable_link_{{id}}_sample_file" class="uploader">' +
|
128 |
'<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>' +
|
129 |
'<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>' +
|
130 |
'<div class="buttons">' +
|
131 |
'<div id="downloadable_link_{{id}}_sample_file-install-flash" style="display:none">' +
|
132 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
133 |
'</div>' +
|
134 |
'</div>' +
|
135 |
'<div class="clear"></div>' +
|
136 |
'</div>' +
|
137 |
'</div>' +
|
138 |
'<div class="row">' +
|
139 |
'<label for="downloadable_link_{{id}}_sample_url_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_url_type" name="downloadable[link][{{id}}][sample][type]" value="url"{{sample_url_checked}} /> URL:</label><input type="text" class="input-text" name="downloadable[link][{{id}}][sample][url]" value="{{sample_url}}" /> ' +
|
140 |
'</div>' +
|
141 |
'<div>' +
|
142 |
'<span id="downloadable_link_{{id}}_sample_container"></span>' +
|
143 |
'</div>' +
|
144 |
'</div>' +
|
145 |
'</td>' +
|
146 |
'<td>' +
|
147 |
'<div class="files">' +
|
148 |
'<div class="row">' +
|
149 |
'<label for="downloadable_link_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} checked="checked"/> File:</label>' +
|
150 |
'<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />' +
|
151 |
'<div id="downloadable_link_{{id}}_file" class="uploader">' +
|
152 |
'<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>' +
|
153 |
'<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>' +
|
154 |
'<div class="buttons">' +
|
155 |
'<div id="downloadable_link_{{id}}_file-install-flash" style="display:none">' +
|
156 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
157 |
'</div>' +
|
158 |
'</div></div>' +
|
159 |
'<div class="clear"></div>' +
|
160 |
'<div class="urlwrap" style="{{url_display}}"><label for="downloadable_link_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name file-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="url"{{url_checked}} /> URL:</label><input type="text" class="validate-downloadable-url input-text" name="downloadable[link][{{id}}][link_url]" value="{{link_url}}" /></div>' +
|
161 |
'<div class="ebookwrap" style="{{ebook_display}}"><label for="downloadable_link_{{id}}_ebook_type"><input type="radio" class="radio validate-one-required-by-name ebook-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="ebook" {{ebook_checked}} /> eBook: </label><?php echo $eSelectbox ?></div></div>' +
|
162 |
'' +
|
163 |
'<div>' +
|
164 |
'<span id="downloadable_link_{{id}}_link_container"></span>' +
|
165 |
'</div>' +
|
166 |
'</div>' +
|
167 |
'</td>' +
|
168 |
'<td class="a-center"><input type="text" name="downloadable[link][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>' +
|
169 |
'<td>' +
|
170 |
'<button id="downloadable_link_{{id}}_delete_button" type="button" class="scalable delete icon-btn delete-link-item"><span><?php echo Mage::helper('downloadable')->__('Delete'); ?></span></button>' +
|
171 |
'</td>' +
|
172 |
'</tr>';
|
173 |
var linkItems = {
|
174 |
tbody: $('link_items_body'),
|
175 |
templateSyntax: /(^|.|\r|\n)({{(\w+)}})/,
|
176 |
templateText: linkTemplate,
|
177 |
itemCount: 0,
|
178 |
add: function(data) {
|
179 |
alertAlreadyDisplayed = false;
|
180 |
this.template = new Template(this.templateText, this.templateSyntax);
|
181 |
if (!data.link_id) {
|
182 |
data = {};
|
183 |
data.link_id = 0;
|
184 |
data.link_type = 'ebook';
|
185 |
data.sample_type = 'none';
|
186 |
data.use_editionguard = 1;
|
187 |
data.number_of_downloads = '<?php echo $this->getConfigMaxDownloads() ?>';
|
188 |
}
|
189 |
data.id = this.itemCount;
|
190 |
if (data.link_type == 'url') {
|
191 |
data.url_checked = ' checked="checked"';
|
192 |
data.ebook_display = 'display:none';
|
193 |
} else if (data.link_type == 'file') {
|
194 |
data.file_checked = ' checked="checked"';
|
195 |
data.ebook_display = 'display:none';
|
196 |
}
|
197 |
else if (data.link_type == 'ebook') {
|
198 |
data.ebook_checked = ' checked="checked"';
|
199 |
data.url_display = 'display:none';
|
200 |
}
|
201 |
if (data.sample_type == 'url') {
|
202 |
data.sample_url_checked = ' checked="checked"';
|
203 |
} else if (data.sample_type == 'file') {
|
204 |
data.sample_file_checked = ' checked="checked"';
|
205 |
}
|
206 |
Element.insert(this.tbody, {'bottom': this.template.evaluate(data)});
|
207 |
scopeTitle = $('downloadable_link_' + data.id + '_title');
|
208 |
if (scopeTitle) {
|
209 |
Event.observe(scopeTitle, 'click', function(event) {
|
210 |
scopeElm = $(Event.findElement(event, 'input'));
|
211 |
titleField = scopeElm.up(0).down('input[type="text"]');
|
212 |
if (scopeElm.checked == true) {
|
213 |
titleField.disabled = true;
|
214 |
} else {
|
215 |
titleField.disabled = false;
|
216 |
}
|
217 |
});
|
218 |
}
|
219 |
if (!data.store_title && scopeTitle) {
|
220 |
scopeTitle.up(0).down('input[type="text"]').disabled = true;
|
221 |
scopeTitle.checked = true;
|
222 |
}
|
223 |
scopePrice = $('downloadable_link_' + data.id + '_price');
|
224 |
if (scopePrice) {
|
225 |
Event.observe(scopePrice, 'click', function(event) {
|
226 |
scopeElm = $(Event.findElement(event, 'input'));
|
227 |
priceField = scopeElm.up(0).down('input[type="text"]');
|
228 |
if (scopeElm.checked == true) {
|
229 |
priceField.disabled = true;
|
230 |
} else {
|
231 |
priceField.disabled = false;
|
232 |
}
|
233 |
});
|
234 |
}
|
235 |
if (!data.website_price && scopePrice) {
|
236 |
scopePrice.up(0).down('input[type="text"]').disabled = true;
|
237 |
scopePrice.checked = true;
|
238 |
}
|
239 |
downloadsElm = $('downloadable_link_' + data.id + '_downloads');
|
240 |
isUnlimitedElm = $('downloadable_link_' + data.id + '_is_unlimited');
|
241 |
if (data.is_unlimited) {
|
242 |
downloadsElm.disabled = true;
|
243 |
}
|
244 |
Event.observe(isUnlimitedElm, 'click', function(event) {
|
245 |
elm = Event.element(event);
|
246 |
elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
|
247 |
});
|
248 |
if (data.is_shareable) {
|
249 |
options = $('downloadable_link _' + data.id + '_shareable').options;
|
250 |
for (var i = 0; i < options.length; i++) {
|
251 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
252 |
if (options[i].value == '1') {
|
253 |
options[i].selected = true;
|
254 |
}
|
255 |
}
|
256 |
}
|
257 |
if (data.editionguard_resource) {
|
258 |
options = $('downloadable_link_' + data.id + '_editionguard_resource').options;
|
259 |
for (var i = 0; i < options.length; i++) {
|
260 |
if (options[i].value == data.editionguard_resource) {
|
261 |
options[i].selected = true;
|
262 |
}
|
263 |
}
|
264 |
}
|
265 |
if (data.use_editionguard) {
|
266 |
options = $('downloadable_link _' + data.id + '_editionguard').options;
|
267 |
for (var i = 0; i < options.length; i++) {
|
268 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
269 |
//if (options[i].value == data.use_editionguard) {
|
270 |
if (options[i].value == data.use_editionguard) {
|
271 |
options[i].selected = true;
|
272 |
}
|
273 |
}
|
274 |
}
|
275 |
sampleUrl = $('downloadable_link_' + data.id + '_sample_url_type');
|
276 |
linkUrl = $('downloadable_link_' + data.id + '_url_type');
|
277 |
if (!data.file_save) {
|
278 |
data.file_save = [];
|
279 |
}
|
280 |
if (!data.sample_file_save) {
|
281 |
data.sample_file_save = [];
|
282 |
}
|
283 |
// link sample file
|
284 |
new Downloadable.FileUploader(
|
285 |
'linkssample',
|
286 |
'linkssample_' + data.id,
|
287 |
sampleUrl.up('td'),
|
288 |
'downloadable[link][' + data.id + '][sample]',
|
289 |
data.sample_file_save,
|
290 |
'downloadable_link_' + data.id + '_sample_file',
|
291 |
);
|
292 |
// link file
|
293 |
new Downloadable.FileUploader(
|
294 |
'links',
|
295 |
'links_' + data.id,
|
296 |
linkUrl.up('td'),
|
297 |
'downloadable[link][' + data.id + ']',
|
298 |
data.file_save,
|
299 |
'downloadable_link_' + data.id + '_file',
|
300 |
);
|
301 |
linkFile = $('downloadable_link_' + data.id + '_file_type');
|
302 |
linkFile.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
303 |
linkUrl.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
304 |
$('downloadable_link_' + data.id + '_file_save').advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
305 |
sampleFile = $('downloadable_link_' + data.id + '_sample_file_type');
|
306 |
this.itemCount++;
|
307 |
this.togglePriceFields();
|
308 |
this.bindRemoveButtons();
|
309 |
this.bindEditionguardSelect();
|
310 |
},
|
311 |
remove: function(event) {
|
312 |
var element = $(Event.findElement(event, 'tr'));
|
313 |
var use_editionguard = element.down('select.use_editionguard').value != 0;
|
314 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
315 |
if (!old_use_editionguard || !use_editionguard || confirm("This file is managed by Editionguard. If you delete it, previous customers will no longer be able to download their file. This cannot be undone.\n\nAre you sure?"))
|
316 |
{
|
317 |
alertAlreadyDisplayed = false;
|
318 |
if (element) {
|
319 |
element.down('input[type="hidden"].__delete__').value = '1';
|
320 |
Element.select(element, 'div.flex').each(function(elm) {
|
321 |
elm.remove();
|
322 |
});
|
323 |
element.addClassName('no-display');
|
324 |
element.addClassName('ignore-validate');
|
325 |
element.hide();
|
326 |
}
|
327 |
}
|
328 |
},
|
329 |
editionguardSelect: function(event) {
|
330 |
var element = $(Event.findElement(event, 'tr'));
|
331 |
var use_editionguard = element.down('select.use_editionguard').value == 1;
|
332 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
333 |
if (old_use_editionguard && !use_editionguard && !confirm("This file is managed by Editionguard. If you disable it, previous customers will no longer be able to download their file.\n\nAre you sure?"))
|
334 |
{
|
335 |
element.down('select.use_editionguard').value = element.down('input[type="hidden"].old_use_editionguard').value;
|
336 |
element.down('div.ebookwrap').show();
|
337 |
element.down('div.urlwrap').hide();
|
338 |
return false;
|
339 |
}
|
340 |
else {
|
341 |
element.down('div.ebookwrap').hide();
|
342 |
element.down('div.urlwrap').show();
|
343 |
element.down('input[type="radio"][value="url"].file-radio').checked = true;
|
344 |
}
|
345 |
if (element.down('select.use_editionguard').value == 1) {
|
346 |
element.down('div.ebookwrap').show();
|
347 |
element.down('div.urlwrap').hide();
|
348 |
element.down('input[type="radio"][value="ebook"].ebook-radio').checked = true;
|
349 |
}
|
350 |
if (element.down('select.use_editionguard').value != 1) {
|
351 |
element.down('select.editionguardebook').selectedIndex = 0;
|
352 |
}
|
353 |
return true;
|
354 |
},
|
355 |
bindRemoveButtons: function() {
|
356 |
var buttons = $$('tbody#link_items_body .delete-link-item');
|
357 |
for (var i = 0; i < buttons.length; i++) {
|
358 |
if (!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')) {
|
359 |
$(buttons[i]).binded = true;
|
360 |
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
361 |
}
|
362 |
}
|
363 |
},
|
364 |
bindEditionguardSelect: function() {
|
365 |
var selects = $$('tbody#link_items_body select.use_editionguard');
|
366 |
for (var i = 0; i < selects.length; i++) {
|
367 |
if (!$(selects[i]).binded && !$(selects[i]).hasClassName('disabled')) {
|
368 |
$(selects[i]).binded = true;
|
369 |
Event.observe(selects[i], 'change', this.editionguardSelect.bind(this));
|
370 |
}
|
371 |
}
|
372 |
},
|
373 |
togglePriceFields: function() {
|
374 |
var toogleTo = $('downloadable_link_purchase_type').value;
|
375 |
var disableFlag = true;
|
376 |
if (toogleTo == '1') {
|
377 |
disableFlag = false;
|
378 |
}
|
379 |
$$('.link-prices[type="text"]').each(function(elm) {
|
380 |
var flag = disableFlag;
|
381 |
if (elm.hasClassName('disabled')) {
|
382 |
flag = true;
|
383 |
}
|
384 |
elm.disabled = flag;
|
385 |
});
|
386 |
}
|
387 |
}
|
388 |
linkItems.bindRemoveButtons();
|
389 |
linkItems.bindEditionguardSelect();
|
390 |
if ($('downloadable_link_purchase_type')) {
|
391 |
Event.observe('downloadable_link_purchase_type', 'change', linkItems.togglePriceFields.bind());
|
392 |
}
|
393 |
if ($('add_link_item')) {
|
394 |
Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
|
395 |
}
|
396 |
linkItems.add(<?php echo $item->toJson() ?>);
|
397 |
Validation.addAllThese([
|
398 |
['validate-downloadable-link-sample-file', 'Please specify File.', function(v, element) {
|
399 |
fileSaveElm = element.up('div').next('input[type="hidden"]');
|
400 |
if (element.checked && (fileSaveElm.value == '' || fileSaveElm.value == '[]')) {
|
401 |
return false;
|
402 |
}
|
403 |
return true;
|
404 |
}]
|
405 |
]);
|
406 |
Validation.addAllThese([
|
407 |
['validate-downloadable-link-sample-url', 'Please specify Sample URL.', function(v, element) {
|
408 |
if (element.checked && element.up('p').down('input[type="text"]').value == '') {
|
409 |
return false;
|
410 |
}
|
411 |
return true;
|
412 |
}]
|
413 |
]);
|
414 |
Validation.addAllThese([
|
415 |
['validate-downloadable-ebook', 'Please Select an eBook', function(v, element) {
|
416 |
linkType = element.up(0).down('input[value="ebook"]');
|
417 |
if (linkType.checked && v == '') {
|
418 |
return false;
|
419 |
}
|
420 |
return true;
|
421 |
}]
|
422 |
]);
|
423 |
//]]>
|
|
|
424 |
* EditionGuard
|
425 |
*
|
426 |
* This source file is proprietary property of EditionGuard. Any reuse or
|
427 |
* distribution of any part of this file without prior consent is prohibited.
|
428 |
*
|
429 |
* @category EditionGuard
|
430 |
* @package Editionguard_Editionguard
|
431 |
* @copyright Copyright (c) 2012 EditionGuard. All rights Reserved.
|
432 |
*/
|
433 |
* @see Editionguard_Editionguard_Block_Downloadable_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
|
434 |
*/
|
435 |
$this->getEditionguardResource()
|
436 |
$eSelectbox .= '<option value="' . $value->resource . '">' . $value->title . ' ('.$value->resource.')</option>';
|
437 |
<table cellspacing="0" class="form-list">
|
438 |
<tbody>
|
439 |
<tr class="headings">
|
440 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title') ?></label>
|
441 |
</td>
|
442 |
<td class="value">
|
443 |
<input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId() ? $_product->getLinksTitle() : $this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault()) ? 'disabled="disabled"' : '' ?> />
|
444 |
</td>
|
445 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[STORE VIEW]<?php endif; ?></td>
|
446 |
<td class="value use-default">
|
447 |
<?php if ($_product->getStoreId()): ?>
|
448 |
<input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault() ? 'checked="checked"' : '' ?> />
|
449 |
<label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
|
450 |
<?php endif; ?>
|
451 |
</td>
|
452 |
</tr>
|
453 |
</tbody>
|
454 |
</table>
|
455 |
<br />
|
456 |
<table cellspacing="0" class="form-list">
|
457 |
<tbody>
|
458 |
<tr class="headings">
|
459 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately') ?></label>
|
460 |
</td>
|
461 |
<td class="value">
|
462 |
<?php echo $this->getPurchasedSeparatelySelect() ?>
|
463 |
</td>
|
464 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[GLOBAL]<?php endif; ?></td>
|
465 |
<td><small> </small></td>
|
466 |
</tr>
|
467 |
</tbody>
|
468 |
</table>
|
469 |
<br />
|
470 |
<div class="grid">
|
471 |
<div class="hor-scroll">
|
472 |
<table cellspacing="0" class="data border">
|
473 |
<col width="33%" />
|
474 |
<col />
|
475 |
<col />
|
476 |
<col />
|
477 |
<col />
|
478 |
<col width="1" />
|
479 |
<col width="1" />
|
480 |
<col width="1" />
|
481 |
<col width="1" />
|
482 |
<thead>
|
483 |
<tr class="headings">
|
484 |
<th><?php echo Mage::helper('downloadable')->__('Title') ?> <span class="required">*</span></th>
|
485 |
<?php if ($this->getCanReadPrice() !== false) : ?>
|
486 |
<th><?php echo Mage::helper('downloadable')->__('Price') ?></th>
|
487 |
<?php endif; ?>
|
488 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads') ?></span></th>
|
489 |
<th><?php echo Mage::helper('downloadable')->__('Shareable') ?></th>
|
490 |
<th><?php echo Mage::helper('downloadable')->__('EditionGuard') ?></th>
|
491 |
<th><?php echo Mage::helper('downloadable')->__('Sample') ?></th>
|
492 |
<th><?php echo Mage::helper('downloadable')->__('File') ?></th>
|
493 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order') ?></span></th>
|
494 |
<th> </th>
|
495 |
</tr>
|
496 |
</thead>
|
497 |
<tfoot>
|
498 |
<tr>
|
499 |
<td colspan="9" class="a-right"><?php echo $this->getAddButtonHtml() ?> <?php echo $this->getUploadButtonHtml() ?></td>
|
500 |
</tr>
|
501 |
</tfoot>
|
502 |
<tbody id="link_items_body">
|
503 |
</tbody>
|
504 |
</table>
|
505 |
<div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.') ?></small></div>
|
506 |
</div>
|
507 |
</div>
|
508 |
//<![CDATA[
|
509 |
var linkTemplate = '<tr>' +
|
510 |
'<td>' +
|
511 |
'<input type="hidden" class="__delete__" name="downloadable[link][{{id}}][is_delete]" value="" />' +
|
512 |
'<input type="hidden" name="downloadable[link][{{id}}][link_id]" value="{{link_id}}" />' +
|
513 |
'<input type="text" class="required-entry input-text" name="downloadable[link][{{id}}][title]" value="{{title}}" />' +
|
514 |
'<?php echo $_product->getStoreId() ? '<input type="checkbox" id="downloadable_link_{{id}}_title" name="downloadable[link][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_link_{{id}}_title">Use Default Value</label>' : '' ?>' +
|
515 |
'</td>' +
|
516 |
'<td class="input-price">' +
|
517 |
'<input type="text" id="downloadable_link_{{id}}_price_value" class="input-text validate-number link-prices<?php if ($this->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][{{id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
|
518 |
'<label>[<?php echo Mage::app()->getStore($_product->getStoreId())->getBaseCurrencyCode() ?>]</label>' +
|
519 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
520 |
'<br /><input type="checkbox" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> <label for="downloadable_link_{{id}}_price">Use Default Value</label>' +
|
521 |
<?php endif; ?>
|
522 |
'</td>' +
|
523 |
'<input type="hidden" id="downloadable_link_{{id}}_price_value" class="link-prices" name="downloadable[link][{{id}}][price]" value="0" />' +
|
524 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
525 |
'<input type="hidden" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1" />' +
|
526 |
<?php endif; ?>
|
527 |
'<td><input type="text" id="downloadable_link_{{id}}_downloads" name="downloadable[link][{{id}}][number_of_downloads]" class="input-text downloads" value="{{number_of_downloads}}" />' +
|
528 |
'<p><input type="checkbox" class="checkbox" id="downloadable_link_{{id}}_is_unlimited" name="downloadable[link][{{id}}][is_unlimited]" value="1" {{is_unlimited}} /> <label for="downloadable_link_{{id}}_is_unlimited">Unlimited</label></p></td>' +
|
529 |
'<td class="a-center">' +
|
530 |
'<select id="downloadable_link _{{id}}_shareable" name="downloadable[link][{{id}}][is_shareable]">' +
|
531 |
'<option value="1">Yes</option>' +
|
532 |
'<option value="0">No</option>' +
|
533 |
'<option value="2" selected="selected">Use config</option>' +
|
534 |
'</select>' +
|
535 |
'</td>' +
|
536 |
'<td class="a-center">' +
|
537 |
'<input type="hidden" id="downloadable_link _{{id}}_old_use_editionguard" class="old_use_editionguard" name="downloadable[link][{{id}}][old_use_editionguard]" value="{{use_editionguard}}" />' +
|
538 |
'<select id="downloadable_link _{{id}}_editionguard" class="use_editionguard" name="downloadable[link][{{id}}][use_editionguard]">' +
|
539 |
'<option value="1" selected="selected">Yes</option>' +
|
540 |
'<option value="0">No</option>' +
|
541 |
'<option value="2">Use config</option>' +
|
542 |
'</select>' +
|
543 |
'</td>' +
|
544 |
'<td>' +
|
545 |
'<div class="files">' +
|
546 |
'<div class="row">' +
|
547 |
'<label for="downloadable_link_{{id}}_sample_file_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} checked="checked"/> File:</label>' +
|
548 |
'<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />' +
|
549 |
'<div id="downloadable_link_{{id}}_sample_file" class="uploader">' +
|
550 |
'<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>' +
|
551 |
'<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>' +
|
552 |
'<div class="buttons">' +
|
553 |
'<div id="downloadable_link_{{id}}_sample_file-install-flash" style="display:none">' +
|
554 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
555 |
'</div>' +
|
556 |
'</div>' +
|
557 |
'<div class="clear"></div>' +
|
558 |
'</div>' +
|
559 |
'</div>' +
|
560 |
'<div class="row">' +
|
561 |
'<label for="downloadable_link_{{id}}_sample_url_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_url_type" name="downloadable[link][{{id}}][sample][type]" value="url"{{sample_url_checked}} /> URL:</label><input type="text" class="input-text" name="downloadable[link][{{id}}][sample][url]" value="{{sample_url}}" /> ' +
|
562 |
'</div>' +
|
563 |
'<div>' +
|
564 |
'<span id="downloadable_link_{{id}}_sample_container"></span>' +
|
565 |
'</div>' +
|
566 |
'</div>' +
|
567 |
'</td>' +
|
568 |
'<td>' +
|
569 |
'<div class="files">' +
|
570 |
'<div class="row">' +
|
571 |
'<label for="downloadable_link_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} checked="checked"/> File:</label>' +
|
572 |
'<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />' +
|
573 |
'<div id="downloadable_link_{{id}}_file" class="uploader">' +
|
574 |
'<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>' +
|
575 |
'<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>' +
|
576 |
'<div class="buttons">' +
|
577 |
'<div id="downloadable_link_{{id}}_file-install-flash" style="display:none">' +
|
578 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
579 |
'</div>' +
|
580 |
'</div></div>' +
|
581 |
'<div class="clear"></div>' +
|
582 |
'<div class="urlwrap" style="{{url_display}}"><label for="downloadable_link_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name file-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="url"{{url_checked}} /> URL:</label><input type="text" class="validate-downloadable-url input-text" name="downloadable[link][{{id}}][link_url]" value="{{link_url}}" /></div>' +
|
583 |
'<div class="ebookwrap" style="{{ebook_display}}"><label for="downloadable_link_{{id}}_ebook_type"><input type="radio" class="radio validate-one-required-by-name ebook-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="ebook" {{ebook_checked}} /> eBook: </label><?php echo $eSelectbox ?></div></div>' +
|
584 |
'' +
|
585 |
'<div>' +
|
586 |
'<span id="downloadable_link_{{id}}_link_container"></span>' +
|
587 |
'</div>' +
|
588 |
'</div>' +
|
589 |
'</td>' +
|
590 |
'<td class="a-center"><input type="text" name="downloadable[link][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>' +
|
591 |
'<td>' +
|
592 |
'<button id="downloadable_link_{{id}}_delete_button" type="button" class="scalable delete icon-btn delete-link-item"><span><?php echo Mage::helper('downloadable')->__('Delete'); ?></span></button>' +
|
593 |
'</td>' +
|
594 |
'</tr>';
|
595 |
var linkItems = {
|
596 |
tbody: $('link_items_body'),
|
597 |
templateSyntax: /(^|.|\r|\n)({{(\w+)}})/,
|
598 |
templateText: linkTemplate,
|
599 |
itemCount: 0,
|
600 |
add: function(data) {
|
601 |
alertAlreadyDisplayed = false;
|
602 |
this.template = new Template(this.templateText, this.templateSyntax);
|
603 |
if (!data.link_id) {
|
604 |
data = {};
|
605 |
data.link_id = 0;
|
606 |
data.link_type = 'ebook';
|
607 |
data.sample_type = 'none';
|
608 |
data.use_editionguard = 1;
|
609 |
data.number_of_downloads = '<?php echo $this->getConfigMaxDownloads() ?>';
|
610 |
}
|
611 |
data.id = this.itemCount;
|
612 |
if (data.link_type == 'url') {
|
613 |
data.url_checked = ' checked="checked"';
|
614 |
data.ebook_display = 'display:none';
|
615 |
} else if (data.link_type == 'file') {
|
616 |
data.file_checked = ' checked="checked"';
|
617 |
data.ebook_display = 'display:none';
|
618 |
}
|
619 |
else if (data.link_type == 'ebook') {
|
620 |
data.ebook_checked = ' checked="checked"';
|
621 |
data.url_display = 'display:none';
|
622 |
}
|
623 |
if (data.sample_type == 'url') {
|
624 |
data.sample_url_checked = ' checked="checked"';
|
625 |
} else if (data.sample_type == 'file') {
|
626 |
data.sample_file_checked = ' checked="checked"';
|
627 |
}
|
628 |
Element.insert(this.tbody, {'bottom': this.template.evaluate(data)});
|
629 |
scopeTitle = $('downloadable_link_' + data.id + '_title');
|
630 |
if (scopeTitle) {
|
631 |
Event.observe(scopeTitle, 'click', function(event) {
|
632 |
scopeElm = $(Event.findElement(event, 'input'));
|
633 |
titleField = scopeElm.up(0).down('input[type="text"]');
|
634 |
if (scopeElm.checked == true) {
|
635 |
titleField.disabled = true;
|
636 |
} else {
|
637 |
titleField.disabled = false;
|
638 |
}
|
639 |
});
|
640 |
}
|
641 |
if (!data.store_title && scopeTitle) {
|
642 |
scopeTitle.up(0).down('input[type="text"]').disabled = true;
|
643 |
scopeTitle.checked = true;
|
644 |
}
|
645 |
scopePrice = $('downloadable_link_' + data.id + '_price');
|
646 |
if (scopePrice) {
|
647 |
Event.observe(scopePrice, 'click', function(event) {
|
648 |
scopeElm = $(Event.findElement(event, 'input'));
|
649 |
priceField = scopeElm.up(0).down('input[type="text"]');
|
650 |
if (scopeElm.checked == true) {
|
651 |
priceField.disabled = true;
|
652 |
} else {
|
653 |
priceField.disabled = false;
|
654 |
}
|
655 |
});
|
656 |
}
|
657 |
if (!data.website_price && scopePrice) {
|
658 |
scopePrice.up(0).down('input[type="text"]').disabled = true;
|
659 |
scopePrice.checked = true;
|
660 |
}
|
661 |
downloadsElm = $('downloadable_link_' + data.id + '_downloads');
|
662 |
isUnlimitedElm = $('downloadable_link_' + data.id + '_is_unlimited');
|
663 |
if (data.is_unlimited) {
|
664 |
downloadsElm.disabled = true;
|
665 |
}
|
666 |
Event.observe(isUnlimitedElm, 'click', function(event) {
|
667 |
elm = Event.element(event);
|
668 |
elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
|
669 |
});
|
670 |
if (data.is_shareable) {
|
671 |
options = $('downloadable_link _' + data.id + '_shareable').options;
|
672 |
for (var i = 0; i < options.length; i++) {
|
673 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
674 |
if (options[i].value == '1') {
|
675 |
options[i].selected = true;
|
676 |
}
|
677 |
}
|
678 |
}
|
679 |
if (data.editionguard_resource) {
|
680 |
options = $('downloadable_link_' + data.id + '_editionguard_resource').options;
|
681 |
for (var i = 0; i < options.length; i++) {
|
682 |
if (options[i].value == data.editionguard_resource) {
|
683 |
options[i].selected = true;
|
684 |
}
|
685 |
}
|
686 |
}
|
687 |
if (data.use_editionguard) {
|
688 |
options = $('downloadable_link _' + data.id + '_editionguard').options;
|
689 |
for (var i = 0; i < options.length; i++) {
|
690 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
691 |
//if (options[i].value == data.use_editionguard) {
|
692 |
if (options[i].value == data.use_editionguard) {
|
693 |
options[i].selected = true;
|
694 |
}
|
695 |
}
|
696 |
}
|
697 |
sampleUrl = $('downloadable_link_' + data.id + '_sample_url_type');
|
698 |
linkUrl = $('downloadable_link_' + data.id + '_url_type');
|
699 |
if (!data.file_save) {
|
700 |
data.file_save = [];
|
701 |
}
|
702 |
if (!data.sample_file_save) {
|
703 |
data.sample_file_save = [];
|
704 |
}
|
705 |
// link sample file
|
706 |
new Downloadable.FileUploader(
|
707 |
'linkssample',
|
708 |
'linkssample_' + data.id,
|
709 |
sampleUrl.up('td'),
|
710 |
'downloadable[link][' + data.id + '][sample]',
|
711 |
data.sample_file_save,
|
712 |
'downloadable_link_' + data.id + '_sample_file',
|
713 |
);
|
714 |
// link file
|
715 |
new Downloadable.FileUploader(
|
716 |
'links',
|
717 |
'links_' + data.id,
|
718 |
linkUrl.up('td'),
|
719 |
'downloadable[link][' + data.id + ']',
|
720 |
data.file_save,
|
721 |
'downloadable_link_' + data.id + '_file',
|
722 |
);
|
723 |
linkFile = $('downloadable_link_' + data.id + '_file_type');
|
724 |
linkFile.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
725 |
linkUrl.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
726 |
$('downloadable_link_' + data.id + '_file_save').advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
727 |
sampleFile = $('downloadable_link_' + data.id + '_sample_file_type');
|
728 |
this.itemCount++;
|
729 |
this.togglePriceFields();
|
730 |
this.bindRemoveButtons();
|
731 |
this.bindEditionguardSelect();
|
732 |
},
|
733 |
remove: function(event) {
|
734 |
var element = $(Event.findElement(event, 'tr'));
|
735 |
var use_editionguard = element.down('select.use_editionguard').value != 0;
|
736 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
737 |
if (!old_use_editionguard || !use_editionguard || confirm("This file is managed by Editionguard. If you delete it, previous customers will no longer be able to download their file. This cannot be undone.\n\nAre you sure?"))
|
738 |
{
|
739 |
alertAlreadyDisplayed = false;
|
740 |
if (element) {
|
741 |
element.down('input[type="hidden"].__delete__').value = '1';
|
742 |
Element.select(element, 'div.flex').each(function(elm) {
|
743 |
elm.remove();
|
744 |
});
|
745 |
element.addClassName('no-display');
|
746 |
element.addClassName('ignore-validate');
|
747 |
element.hide();
|
748 |
}
|
749 |
}
|
750 |
},
|
751 |
editionguardSelect: function(event) {
|
752 |
var element = $(Event.findElement(event, 'tr'));
|
753 |
var use_editionguard = element.down('select.use_editionguard').value == 1;
|
754 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
755 |
if (old_use_editionguard && !use_editionguard && !confirm("This file is managed by Editionguard. If you disable it, previous customers will no longer be able to download their file.\n\nAre you sure?"))
|
756 |
{
|
757 |
element.down('select.use_editionguard').value = element.down('input[type="hidden"].old_use_editionguard').value;
|
758 |
element.down('div.ebookwrap').show();
|
759 |
element.down('div.urlwrap').hide();
|
760 |
return false;
|
761 |
}
|
762 |
else {
|
763 |
element.down('div.ebookwrap').hide();
|
764 |
element.down('div.urlwrap').show();
|
765 |
element.down('input[type="radio"][value="url"].file-radio').checked = true;
|
766 |
}
|
767 |
if (element.down('select.use_editionguard').value == 1) {
|
768 |
element.down('div.ebookwrap').show();
|
769 |
element.down('div.urlwrap').hide();
|
770 |
element.down('input[type="radio"][value="ebook"].ebook-radio').checked = true;
|
771 |
}
|
772 |
if (element.down('select.use_editionguard').value != 1) {
|
773 |
element.down('select.editionguardebook').selectedIndex = 0;
|
774 |
}
|
775 |
return true;
|
776 |
},
|
777 |
bindRemoveButtons: function() {
|
778 |
var buttons = $$('tbody#link_items_body .delete-link-item');
|
779 |
for (var i = 0; i < buttons.length; i++) {
|
780 |
if (!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')) {
|
781 |
$(buttons[i]).binded = true;
|
782 |
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
783 |
}
|
784 |
}
|
785 |
},
|
786 |
bindEditionguardSelect: function() {
|
787 |
var selects = $$('tbody#link_items_body select.use_editionguard');
|
788 |
for (var i = 0; i < selects.length; i++) {
|
789 |
if (!$(selects[i]).binded && !$(selects[i]).hasClassName('disabled')) {
|
790 |
$(selects[i]).binded = true;
|
791 |
Event.observe(selects[i], 'change', this.editionguardSelect.bind(this));
|
792 |
}
|
793 |
}
|
794 |
},
|
795 |
togglePriceFields: function() {
|
796 |
var toogleTo = $('downloadable_link_purchase_type').value;
|
797 |
var disableFlag = true;
|
798 |
if (toogleTo == '1') {
|
799 |
disableFlag = false;
|
800 |
}
|
801 |
$$('.link-prices[type="text"]').each(function(elm) {
|
802 |
var flag = disableFlag;
|
803 |
if (elm.hasClassName('disabled')) {
|
804 |
flag = true;
|
805 |
}
|
806 |
elm.disabled = flag;
|
807 |
});
|
808 |
}
|
809 |
}
|
810 |
linkItems.bindRemoveButtons();
|
811 |
linkItems.bindEditionguardSelect();
|
812 |
if ($('downloadable_link_purchase_type')) {
|
813 |
Event.observe('downloadable_link_purchase_type', 'change', linkItems.togglePriceFields.bind());
|
814 |
}
|
815 |
if ($('add_link_item')) {
|
816 |
Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
|
817 |
}
|
818 |
linkItems.add(<?php echo $item->toJson() ?>);
|
819 |
Validation.addAllThese([
|
820 |
['validate-downloadable-link-sample-file', 'Please specify File.', function(v, element) {
|
821 |
fileSaveElm = element.up('div').next('input[type="hidden"]');
|
822 |
if (element.checked && (fileSaveElm.value == '' || fileSaveElm.value == '[]')) {
|
823 |
return false;
|
824 |
}
|
825 |
return true;
|
826 |
}]
|
827 |
]);
|
828 |
Validation.addAllThese([
|
829 |
['validate-downloadable-link-sample-url', 'Please specify Sample URL.', function(v, element) {
|
830 |
if (element.checked && element.up('p').down('input[type="text"]').value == '') {
|
831 |
return false;
|
832 |
}
|
833 |
return true;
|
834 |
}]
|
835 |
]);
|
836 |
Validation.addAllThese([
|
837 |
['validate-downloadable-ebook', 'Please Select an eBook', function(v, element) {
|
838 |
linkType = element.up(0).down('input[value="ebook"]');
|
839 |
if (linkType.checked && v == '') {
|
840 |
return false;
|
841 |
}
|
842 |
return true;
|
843 |
}]
|
844 |
]);
|
845 |
//]]>
|
|
|
1 |
* EditionGuard
|
2 |
*
|
3 |
* This source file is proprietary property of EditionGuard. Any reuse or
|
4 |
* distribution of any part of this file without prior consent is prohibited.
|
5 |
*
|
6 |
* @category EditionGuard
|
7 |
* @package Editionguard_Editionguard
|
8 |
* @copyright Copyright (c) 2012 EditionGuard. All rights Reserved.
|
9 |
*/
|
10 |
* @see Editionguard_Editionguard_Block_Downloadable_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
|
11 |
*/
|
12 |
$this->getEditionguardResource()
|
13 |
$eSelectbox .= '<option value="' . $value->resource . '">' . $value->title . ' ('.$value->resource.')</option>';
|
14 |
<table cellspacing="0" class="form-list">
|
15 |
<tbody>
|
16 |
<tr class="headings">
|
17 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title') ?></label>
|
18 |
</td>
|
19 |
<td class="value">
|
20 |
<input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId() ? $_product->getLinksTitle() : $this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault()) ? 'disabled="disabled"' : '' ?> />
|
21 |
</td>
|
22 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[STORE VIEW]<?php endif; ?></td>
|
23 |
<td class="value use-default">
|
24 |
<?php if ($_product->getStoreId()): ?>
|
25 |
<input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault() ? 'checked="checked"' : '' ?> />
|
26 |
<label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
|
27 |
<?php endif; ?>
|
28 |
</td>
|
29 |
</tr>
|
30 |
</tbody>
|
31 |
</table>
|
32 |
<br />
|
33 |
<table cellspacing="0" class="form-list">
|
34 |
<tbody>
|
35 |
<tr class="headings">
|
36 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately') ?></label>
|
37 |
</td>
|
38 |
<td class="value">
|
39 |
<?php echo $this->getPurchasedSeparatelySelect() ?>
|
40 |
</td>
|
41 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[GLOBAL]<?php endif; ?></td>
|
42 |
<td><small> </small></td>
|
43 |
</tr>
|
44 |
</tbody>
|
45 |
</table>
|
46 |
<br />
|
47 |
<div class="grid">
|
48 |
<div class="hor-scroll">
|
49 |
<table cellspacing="0" class="data border">
|
50 |
<col width="33%" />
|
51 |
<col />
|
52 |
<col />
|
53 |
<col />
|
54 |
<col />
|
55 |
<col width="1" />
|
56 |
<col width="1" />
|
57 |
<col width="1" />
|
58 |
<col width="1" />
|
59 |
<thead>
|
60 |
<tr class="headings">
|
61 |
<th><?php echo Mage::helper('downloadable')->__('Title') ?> <span class="required">*</span></th>
|
62 |
<?php if ($this->getCanReadPrice() !== false) : ?>
|
63 |
<th><?php echo Mage::helper('downloadable')->__('Price') ?></th>
|
64 |
<?php endif; ?>
|
65 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads') ?></span></th>
|
66 |
<th><?php echo Mage::helper('downloadable')->__('Shareable') ?></th>
|
67 |
<th><?php echo Mage::helper('downloadable')->__('EditionGuard') ?></th>
|
68 |
<th><?php echo Mage::helper('downloadable')->__('Sample') ?></th>
|
69 |
<th><?php echo Mage::helper('downloadable')->__('File') ?></th>
|
70 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order') ?></span></th>
|
71 |
<th> </th>
|
72 |
</tr>
|
73 |
</thead>
|
74 |
<tfoot>
|
75 |
<tr>
|
76 |
<td colspan="9" class="a-right"><?php echo $this->getAddButtonHtml() ?> <?php echo $this->getUploadButtonHtml() ?></td>
|
77 |
</tr>
|
78 |
</tfoot>
|
79 |
<tbody id="link_items_body">
|
80 |
</tbody>
|
81 |
</table>
|
82 |
<div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.') ?></small></div>
|
83 |
</div>
|
84 |
</div>
|
85 |
//<![CDATA[
|
86 |
var linkTemplate = '<tr>' +
|
87 |
'<td>' +
|
88 |
'<input type="hidden" class="__delete__" name="downloadable[link][{{id}}][is_delete]" value="" />' +
|
89 |
'<input type="hidden" name="downloadable[link][{{id}}][link_id]" value="{{link_id}}" />' +
|
90 |
'<input type="text" class="required-entry input-text" name="downloadable[link][{{id}}][title]" value="{{title}}" />' +
|
91 |
'<?php echo $_product->getStoreId() ? '<input type="checkbox" id="downloadable_link_{{id}}_title" name="downloadable[link][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_link_{{id}}_title">Use Default Value</label>' : '' ?>' +
|
92 |
'</td>' +
|
93 |
'<td class="input-price">' +
|
94 |
'<input type="text" id="downloadable_link_{{id}}_price_value" class="input-text validate-number link-prices<?php if ($this->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][{{id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
|
95 |
'<label>[<?php echo Mage::app()->getStore($_product->getStoreId())->getBaseCurrencyCode() ?>]</label>' +
|
96 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
97 |
'<br /><input type="checkbox" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> <label for="downloadable_link_{{id}}_price">Use Default Value</label>' +
|
98 |
<?php endif; ?>
|
99 |
'</td>' +
|
100 |
'<input type="hidden" id="downloadable_link_{{id}}_price_value" class="link-prices" name="downloadable[link][{{id}}][price]" value="0" />' +
|
101 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
102 |
'<input type="hidden" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1" />' +
|
103 |
<?php endif; ?>
|
104 |
'<td><input type="text" id="downloadable_link_{{id}}_downloads" name="downloadable[link][{{id}}][number_of_downloads]" class="input-text downloads" value="{{number_of_downloads}}" />' +
|
105 |
'<p><input type="checkbox" class="checkbox" id="downloadable_link_{{id}}_is_unlimited" name="downloadable[link][{{id}}][is_unlimited]" value="1" {{is_unlimited}} /> <label for="downloadable_link_{{id}}_is_unlimited">Unlimited</label></p></td>' +
|
106 |
'<td class="a-center">' +
|
107 |
'<select id="downloadable_link _{{id}}_shareable" name="downloadable[link][{{id}}][is_shareable]">' +
|
108 |
'<option value="1">Yes</option>' +
|
109 |
'<option value="0">No</option>' +
|
110 |
'<option value="2" selected="selected">Use config</option>' +
|
111 |
'</select>' +
|
112 |
'</td>' +
|
113 |
'<td class="a-center">' +
|
114 |
'<input type="hidden" id="downloadable_link _{{id}}_old_use_editionguard" class="old_use_editionguard" name="downloadable[link][{{id}}][old_use_editionguard]" value="{{use_editionguard}}" />' +
|
115 |
'<select id="downloadable_link _{{id}}_editionguard" class="use_editionguard" name="downloadable[link][{{id}}][use_editionguard]">' +
|
116 |
'<option value="1" selected="selected">Yes</option>' +
|
117 |
'<option value="0">No</option>' +
|
118 |
'<option value="2">Use config</option>' +
|
119 |
'</select>' +
|
120 |
'</td>' +
|
121 |
'<td>' +
|
122 |
'<div class="files">' +
|
123 |
'<div class="row">' +
|
124 |
'<label for="downloadable_link_{{id}}_sample_file_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} checked="checked"/> File:</label>' +
|
125 |
'<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />' +
|
126 |
'<div id="downloadable_link_{{id}}_sample_file" class="uploader">' +
|
127 |
'<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>' +
|
128 |
'<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>' +
|
129 |
'<div class="buttons">' +
|
130 |
'<div id="downloadable_link_{{id}}_sample_file-install-flash" style="display:none">' +
|
131 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
132 |
'</div>' +
|
133 |
'</div>' +
|
134 |
'<div class="clear"></div>' +
|
135 |
'</div>' +
|
136 |
'</div>' +
|
137 |
'<div class="row">' +
|
138 |
'<label for="downloadable_link_{{id}}_sample_url_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_url_type" name="downloadable[link][{{id}}][sample][type]" value="url"{{sample_url_checked}} /> URL:</label><input type="text" class="input-text" name="downloadable[link][{{id}}][sample][url]" value="{{sample_url}}" /> ' +
|
139 |
'</div>' +
|
140 |
'<div>' +
|
141 |
'<span id="downloadable_link_{{id}}_sample_container"></span>' +
|
142 |
'</div>' +
|
143 |
'</div>' +
|
144 |
'</td>' +
|
145 |
'<td>' +
|
146 |
'<div class="files">' +
|
147 |
'<div class="row">' +
|
148 |
'<label for="downloadable_link_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} checked="checked"/> File:</label>' +
|
149 |
'<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />' +
|
150 |
'<div id="downloadable_link_{{id}}_file" class="uploader">' +
|
151 |
'<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>' +
|
152 |
'<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>' +
|
153 |
'<div class="buttons">' +
|
154 |
'<div id="downloadable_link_{{id}}_file-install-flash" style="display:none">' +
|
155 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
156 |
'</div>' +
|
157 |
'</div></div>' +
|
158 |
'<div class="clear"></div>' +
|
159 |
'<div class="urlwrap" style="{{url_display}}"><label for="downloadable_link_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name file-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="url"{{url_checked}} /> URL:</label><input type="text" class="validate-downloadable-url input-text" name="downloadable[link][{{id}}][link_url]" value="{{link_url}}" /></div>' +
|
160 |
'<div class="ebookwrap" style="{{ebook_display}}"><label for="downloadable_link_{{id}}_ebook_type"><input type="radio" class="radio validate-one-required-by-name ebook-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="ebook" {{ebook_checked}} /> eBook: </label><?php echo $eSelectbox ?></div></div>' +
|
161 |
'' +
|
162 |
'<div>' +
|
163 |
'<span id="downloadable_link_{{id}}_link_container"></span>' +
|
164 |
'</div>' +
|
165 |
'</div>' +
|
166 |
'</td>' +
|
167 |
'<td class="a-center"><input type="text" name="downloadable[link][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>' +
|
168 |
'<td>' +
|
169 |
'<button id="downloadable_link_{{id}}_delete_button" type="button" class="scalable delete icon-btn delete-link-item"><span><?php echo Mage::helper('downloadable')->__('Delete'); ?></span></button>' +
|
170 |
'</td>' +
|
171 |
'</tr>';
|
172 |
var linkItems = {
|
173 |
tbody: $('link_items_body'),
|
174 |
templateSyntax: /(^|.|\r|\n)({{(\w+)}})/,
|
175 |
templateText: linkTemplate,
|
176 |
itemCount: 0,
|
177 |
add: function(data) {
|
178 |
alertAlreadyDisplayed = false;
|
179 |
this.template = new Template(this.templateText, this.templateSyntax);
|
180 |
if (!data.link_id) {
|
181 |
data = {};
|
182 |
data.link_id = 0;
|
183 |
data.link_type = 'ebook';
|
184 |
data.sample_type = 'none';
|
185 |
data.use_editionguard = 1;
|
186 |
data.number_of_downloads = '<?php echo $this->getConfigMaxDownloads() ?>';
|
187 |
}
|
188 |
data.id = this.itemCount;
|
189 |
if (data.link_type == 'url') {
|
190 |
data.url_checked = ' checked="checked"';
|
191 |
data.ebook_display = 'display:none';
|
192 |
} else if (data.link_type == 'file') {
|
193 |
data.file_checked = ' checked="checked"';
|
194 |
data.ebook_display = 'display:none';
|
195 |
}
|
196 |
else if (data.link_type == 'ebook') {
|
197 |
data.ebook_checked = ' checked="checked"';
|
198 |
data.url_display = 'display:none';
|
199 |
}
|
200 |
if (data.sample_type == 'url') {
|
201 |
data.sample_url_checked = ' checked="checked"';
|
202 |
} else if (data.sample_type == 'file') {
|
203 |
data.sample_file_checked = ' checked="checked"';
|
204 |
}
|
205 |
Element.insert(this.tbody, {'bottom': this.template.evaluate(data)});
|
206 |
scopeTitle = $('downloadable_link_' + data.id + '_title');
|
207 |
if (scopeTitle) {
|
208 |
Event.observe(scopeTitle, 'click', function(event) {
|
209 |
scopeElm = $(Event.findElement(event, 'input'));
|
210 |
titleField = scopeElm.up(0).down('input[type="text"]');
|
211 |
if (scopeElm.checked == true) {
|
212 |
titleField.disabled = true;
|
213 |
} else {
|
214 |
titleField.disabled = false;
|
215 |
}
|
216 |
});
|
217 |
}
|
218 |
if (!data.store_title && scopeTitle) {
|
219 |
scopeTitle.up(0).down('input[type="text"]').disabled = true;
|
220 |
scopeTitle.checked = true;
|
221 |
}
|
222 |
scopePrice = $('downloadable_link_' + data.id + '_price');
|
223 |
if (scopePrice) {
|
224 |
Event.observe(scopePrice, 'click', function(event) {
|
225 |
scopeElm = $(Event.findElement(event, 'input'));
|
226 |
priceField = scopeElm.up(0).down('input[type="text"]');
|
227 |
if (scopeElm.checked == true) {
|
228 |
priceField.disabled = true;
|
229 |
} else {
|
230 |
priceField.disabled = false;
|
231 |
}
|
232 |
});
|
233 |
}
|
234 |
if (!data.website_price && scopePrice) {
|
235 |
scopePrice.up(0).down('input[type="text"]').disabled = true;
|
236 |
scopePrice.checked = true;
|
237 |
}
|
238 |
downloadsElm = $('downloadable_link_' + data.id + '_downloads');
|
239 |
isUnlimitedElm = $('downloadable_link_' + data.id + '_is_unlimited');
|
240 |
if (data.is_unlimited) {
|
241 |
downloadsElm.disabled = true;
|
242 |
}
|
243 |
Event.observe(isUnlimitedElm, 'click', function(event) {
|
244 |
elm = Event.element(event);
|
245 |
elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
|
246 |
});
|
247 |
if (data.is_shareable) {
|
248 |
options = $('downloadable_link _' + data.id + '_shareable').options;
|
249 |
for (var i = 0; i < options.length; i++) {
|
250 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
251 |
if (options[i].value == '1') {
|
252 |
options[i].selected = true;
|
253 |
}
|
254 |
}
|
255 |
}
|
256 |
if (data.editionguard_resource) {
|
257 |
options = $('downloadable_link_' + data.id + '_editionguard_resource').options;
|
258 |
for (var i = 0; i < options.length; i++) {
|
259 |
if (options[i].value == data.editionguard_resource) {
|
260 |
options[i].selected = true;
|
261 |
}
|
262 |
}
|
263 |
}
|
264 |
if (data.use_editionguard) {
|
265 |
options = $('downloadable_link _' + data.id + '_editionguard').options;
|
266 |
for (var i = 0; i < options.length; i++) {
|
267 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
268 |
//if (options[i].value == data.use_editionguard) {
|
269 |
if (options[i].value == data.use_editionguard) {
|
270 |
options[i].selected = true;
|
271 |
}
|
272 |
}
|
273 |
}
|
274 |
sampleUrl = $('downloadable_link_' + data.id + '_sample_url_type');
|
275 |
linkUrl = $('downloadable_link_' + data.id + '_url_type');
|
276 |
if (!data.file_save) {
|
277 |
data.file_save = [];
|
278 |
}
|
279 |
if (!data.sample_file_save) {
|
280 |
data.sample_file_save = [];
|
281 |
}
|
282 |
// link sample file
|
283 |
new Downloadable.FileUploader(
|
284 |
'linkssample',
|
285 |
'linkssample_' + data.id,
|
286 |
sampleUrl.up('td'),
|
287 |
'downloadable[link][' + data.id + '][sample]',
|
288 |
data.sample_file_save,
|
289 |
'downloadable_link_' + data.id + '_sample_file',
|
290 |
);
|
291 |
// link file
|
292 |
new Downloadable.FileUploader(
|
293 |
'links',
|
294 |
'links_' + data.id,
|
295 |
linkUrl.up('td'),
|
296 |
'downloadable[link][' + data.id + ']',
|
297 |
data.file_save,
|
298 |
'downloadable_link_' + data.id + '_file',
|
299 |
);
|
300 |
linkFile = $('downloadable_link_' + data.id + '_file_type');
|
301 |
linkFile.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
302 |
linkUrl.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
303 |
$('downloadable_link_' + data.id + '_file_save').advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
304 |
sampleFile = $('downloadable_link_' + data.id + '_sample_file_type');
|
305 |
this.itemCount++;
|
306 |
this.togglePriceFields();
|
307 |
this.bindRemoveButtons();
|
308 |
this.bindEditionguardSelect();
|
309 |
},
|
310 |
remove: function(event) {
|
311 |
var element = $(Event.findElement(event, 'tr'));
|
312 |
var use_editionguard = element.down('select.use_editionguard').value != 0;
|
313 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
314 |
if (!old_use_editionguard || !use_editionguard || confirm("This file is managed by Editionguard. If you delete it, previous customers will no longer be able to download their file. This cannot be undone.\n\nAre you sure?"))
|
315 |
{
|
316 |
alertAlreadyDisplayed = false;
|
317 |
if (element) {
|
318 |
element.down('input[type="hidden"].__delete__').value = '1';
|
319 |
Element.select(element, 'div.flex').each(function(elm) {
|
320 |
elm.remove();
|
321 |
});
|
322 |
element.addClassName('no-display');
|
323 |
element.addClassName('ignore-validate');
|
324 |
element.hide();
|
325 |
}
|
326 |
}
|
327 |
},
|
328 |
editionguardSelect: function(event) {
|
329 |
var element = $(Event.findElement(event, 'tr'));
|
330 |
var use_editionguard = element.down('select.use_editionguard').value == 1;
|
331 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
332 |
if (old_use_editionguard && !use_editionguard && !confirm("This file is managed by Editionguard. If you disable it, previous customers will no longer be able to download their file.\n\nAre you sure?"))
|
333 |
{
|
334 |
element.down('select.use_editionguard').value = element.down('input[type="hidden"].old_use_editionguard').value;
|
335 |
element.down('div.ebookwrap').show();
|
336 |
element.down('div.urlwrap').hide();
|
337 |
return false;
|
338 |
}
|
339 |
else {
|
340 |
element.down('div.ebookwrap').hide();
|
341 |
element.down('div.urlwrap').show();
|
342 |
element.down('input[type="radio"][value="url"].file-radio').checked = true;
|
343 |
}
|
344 |
if (element.down('select.use_editionguard').value == 1) {
|
345 |
element.down('div.ebookwrap').show();
|
346 |
element.down('div.urlwrap').hide();
|
347 |
element.down('input[type="radio"][value="ebook"].ebook-radio').checked = true;
|
348 |
}
|
349 |
if (element.down('select.use_editionguard').value != 1) {
|
350 |
element.down('select.editionguardebook').selectedIndex = 0;
|
351 |
}
|
352 |
return true;
|
353 |
},
|
354 |
bindRemoveButtons: function() {
|
355 |
var buttons = $$('tbody#link_items_body .delete-link-item');
|
356 |
for (var i = 0; i < buttons.length; i++) {
|
357 |
if (!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')) {
|
358 |
$(buttons[i]).binded = true;
|
359 |
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
360 |
}
|
361 |
}
|
362 |
},
|
363 |
bindEditionguardSelect: function() {
|
364 |
var selects = $$('tbody#link_items_body select.use_editionguard');
|
365 |
for (var i = 0; i < selects.length; i++) {
|
366 |
if (!$(selects[i]).binded && !$(selects[i]).hasClassName('disabled')) {
|
367 |
$(selects[i]).binded = true;
|
368 |
Event.observe(selects[i], 'change', this.editionguardSelect.bind(this));
|
369 |
}
|
370 |
}
|
371 |
},
|
372 |
togglePriceFields: function() {
|
373 |
var toogleTo = $('downloadable_link_purchase_type').value;
|
374 |
var disableFlag = true;
|
375 |
if (toogleTo == '1') {
|
376 |
disableFlag = false;
|
377 |
}
|
378 |
$$('.link-prices[type="text"]').each(function(elm) {
|
379 |
var flag = disableFlag;
|
380 |
if (elm.hasClassName('disabled')) {
|
381 |
flag = true;
|
382 |
}
|
383 |
elm.disabled = flag;
|
384 |
});
|
385 |
}
|
386 |
}
|
387 |
linkItems.bindRemoveButtons();
|
388 |
linkItems.bindEditionguardSelect();
|
389 |
if ($('downloadable_link_purchase_type')) {
|
390 |
Event.observe('downloadable_link_purchase_type', 'change', linkItems.togglePriceFields.bind());
|
391 |
}
|
392 |
if ($('add_link_item')) {
|
393 |
Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
|
394 |
}
|
395 |
linkItems.add(<?php echo $item->toJson() ?>);
|
396 |
Validation.addAllThese([
|
397 |
['validate-downloadable-link-sample-file', 'Please specify File.', function(v, element) {
|
398 |
fileSaveElm = element.up('div').next('input[type="hidden"]');
|
399 |
if (element.checked && (fileSaveElm.value == '' || fileSaveElm.value == '[]')) {
|
400 |
return false;
|
401 |
}
|
402 |
return true;
|
403 |
}]
|
404 |
]);
|
405 |
Validation.addAllThese([
|
406 |
['validate-downloadable-link-sample-url', 'Please specify Sample URL.', function(v, element) {
|
407 |
if (element.checked && element.up('p').down('input[type="text"]').value == '') {
|
408 |
return false;
|
409 |
}
|
410 |
return true;
|
411 |
}]
|
412 |
]);
|
413 |
Validation.addAllThese([
|
414 |
['validate-downloadable-ebook', 'Please Select an eBook', function(v, element) {
|
415 |
linkType = element.up(0).down('input[value="ebook"]');
|
416 |
if (linkType.checked && v == '') {
|
417 |
return false;
|
418 |
}
|
419 |
return true;
|
420 |
}]
|
421 |
]);
|
422 |
//]]>
|
423 |
+
<?php
|
424 |
* EditionGuard
|
425 |
*
|
426 |
* This source file is proprietary property of EditionGuard. Any reuse or
|
427 |
* distribution of any part of this file without prior consent is prohibited.
|
428 |
*
|
429 |
* @category EditionGuard
|
430 |
* @package Editionguard_Editionguard
|
431 |
* @copyright Copyright (c) 2012 EditionGuard. All rights Reserved.
|
432 |
*/
|
433 |
* @see Editionguard_Editionguard_Block_Downloadable_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
|
434 |
*/
|
435 |
$this->getEditionguardResource()
|
436 |
$eSelectbox .= '<option value="' . $value->resource . '">' . $value->title . ' ('.$value->resource.')</option>';
|
437 |
<table cellspacing="0" class="form-list">
|
438 |
<tbody>
|
439 |
<tr class="headings">
|
440 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Title') ?></label>
|
441 |
</td>
|
442 |
<td class="value">
|
443 |
<input type="text" class="input-text" id="downloadable_links_title" name="product[links_title]" value="<?php echo $_product->getId() ? $_product->getLinksTitle() : $this->getLinksTitle() ?>" <?php echo ($_product->getStoreId() && $this->getUsedDefault()) ? 'disabled="disabled"' : '' ?> />
|
444 |
</td>
|
445 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[STORE VIEW]<?php endif; ?></td>
|
446 |
<td class="value use-default">
|
447 |
<?php if ($_product->getStoreId()): ?>
|
448 |
<input id="link_title_default" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?php echo $this->getUsedDefault() ? 'checked="checked"' : '' ?> />
|
449 |
<label class="normal" for="link_title_default"><?php echo Mage::helper('downloadable')->__('Use Default Value'); ?></label>
|
450 |
<?php endif; ?>
|
451 |
</td>
|
452 |
</tr>
|
453 |
</tbody>
|
454 |
</table>
|
455 |
<br />
|
456 |
<table cellspacing="0" class="form-list">
|
457 |
<tbody>
|
458 |
<tr class="headings">
|
459 |
<td class="label"><label for="name"><?php echo Mage::helper('downloadable')->__('Links can be purchased separately') ?></label>
|
460 |
</td>
|
461 |
<td class="value">
|
462 |
<?php echo $this->getPurchasedSeparatelySelect() ?>
|
463 |
</td>
|
464 |
<td class="scope-label"><?php if (!Mage::app()->isSingleStoreMode()): ?>[GLOBAL]<?php endif; ?></td>
|
465 |
<td><small> </small></td>
|
466 |
</tr>
|
467 |
</tbody>
|
468 |
</table>
|
469 |
<br />
|
470 |
<div class="grid">
|
471 |
<div class="hor-scroll">
|
472 |
<table cellspacing="0" class="data border">
|
473 |
<col width="33%" />
|
474 |
<col />
|
475 |
<col />
|
476 |
<col />
|
477 |
<col />
|
478 |
<col width="1" />
|
479 |
<col width="1" />
|
480 |
<col width="1" />
|
481 |
<col width="1" />
|
482 |
<thead>
|
483 |
<tr class="headings">
|
484 |
<th><?php echo Mage::helper('downloadable')->__('Title') ?> <span class="required">*</span></th>
|
485 |
<?php if ($this->getCanReadPrice() !== false) : ?>
|
486 |
<th><?php echo Mage::helper('downloadable')->__('Price') ?></th>
|
487 |
<?php endif; ?>
|
488 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Max. Downloads') ?></span></th>
|
489 |
<th><?php echo Mage::helper('downloadable')->__('Shareable') ?></th>
|
490 |
<th><?php echo Mage::helper('downloadable')->__('EditionGuard') ?></th>
|
491 |
<th><?php echo Mage::helper('downloadable')->__('Sample') ?></th>
|
492 |
<th><?php echo Mage::helper('downloadable')->__('File') ?></th>
|
493 |
<th><span class="nobr"><?php echo Mage::helper('downloadable')->__('Sort Order') ?></span></th>
|
494 |
<th> </th>
|
495 |
</tr>
|
496 |
</thead>
|
497 |
<tfoot>
|
498 |
<tr>
|
499 |
<td colspan="9" class="a-right"><?php echo $this->getAddButtonHtml() ?> <?php echo $this->getUploadButtonHtml() ?></td>
|
500 |
</tr>
|
501 |
</tfoot>
|
502 |
<tbody id="link_items_body">
|
503 |
</tbody>
|
504 |
</table>
|
505 |
<div><small><?php echo Mage::helper('downloadable')->__('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.') ?></small></div>
|
506 |
</div>
|
507 |
</div>
|
508 |
//<![CDATA[
|
509 |
var linkTemplate = '<tr>' +
|
510 |
'<td>' +
|
511 |
'<input type="hidden" class="__delete__" name="downloadable[link][{{id}}][is_delete]" value="" />' +
|
512 |
'<input type="hidden" name="downloadable[link][{{id}}][link_id]" value="{{link_id}}" />' +
|
513 |
'<input type="text" class="required-entry input-text" name="downloadable[link][{{id}}][title]" value="{{title}}" />' +
|
514 |
'<?php echo $_product->getStoreId() ? '<input type="checkbox" id="downloadable_link_{{id}}_title" name="downloadable[link][{{id}}][use_default_title]" value="1" /><label class="normal" for="downloadable_link_{{id}}_title">Use Default Value</label>' : '' ?>' +
|
515 |
'</td>' +
|
516 |
'<td class="input-price">' +
|
517 |
'<input type="text" id="downloadable_link_{{id}}_price_value" class="input-text validate-number link-prices<?php if ($this->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][{{id}}][price]" value="{{price}}"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
|
518 |
'<label>[<?php echo Mage::app()->getStore($_product->getStoreId())->getBaseCurrencyCode() ?>]</label>' +
|
519 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
520 |
'<br /><input type="checkbox" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1"<?php if ($this->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> <label for="downloadable_link_{{id}}_price">Use Default Value</label>' +
|
521 |
<?php endif; ?>
|
522 |
'</td>' +
|
523 |
'<input type="hidden" id="downloadable_link_{{id}}_price_value" class="link-prices" name="downloadable[link][{{id}}][price]" value="0" />' +
|
524 |
<?php if ($_product->getStoreId() && $this->getIsPriceWebsiteScope()) : ?>
|
525 |
'<input type="hidden" id="downloadable_link_{{id}}_price" name="downloadable[link][{{id}}][use_default_price]" value="1" />' +
|
526 |
<?php endif; ?>
|
527 |
'<td><input type="text" id="downloadable_link_{{id}}_downloads" name="downloadable[link][{{id}}][number_of_downloads]" class="input-text downloads" value="{{number_of_downloads}}" />' +
|
528 |
'<p><input type="checkbox" class="checkbox" id="downloadable_link_{{id}}_is_unlimited" name="downloadable[link][{{id}}][is_unlimited]" value="1" {{is_unlimited}} /> <label for="downloadable_link_{{id}}_is_unlimited">Unlimited</label></p></td>' +
|
529 |
'<td class="a-center">' +
|
530 |
'<select id="downloadable_link _{{id}}_shareable" name="downloadable[link][{{id}}][is_shareable]">' +
|
531 |
'<option value="1">Yes</option>' +
|
532 |
'<option value="0">No</option>' +
|
533 |
'<option value="2" selected="selected">Use config</option>' +
|
534 |
'</select>' +
|
535 |
'</td>' +
|
536 |
'<td class="a-center">' +
|
537 |
'<input type="hidden" id="downloadable_link _{{id}}_old_use_editionguard" class="old_use_editionguard" name="downloadable[link][{{id}}][old_use_editionguard]" value="{{use_editionguard}}" />' +
|
538 |
'<select id="downloadable_link _{{id}}_editionguard" class="use_editionguard" name="downloadable[link][{{id}}][use_editionguard]">' +
|
539 |
'<option value="1" selected="selected">Yes</option>' +
|
540 |
'<option value="0">No</option>' +
|
541 |
'<option value="2">Use config</option>' +
|
542 |
'</select>' +
|
543 |
'</td>' +
|
544 |
'<td>' +
|
545 |
'<div class="files">' +
|
546 |
'<div class="row">' +
|
547 |
'<label for="downloadable_link_{{id}}_sample_file_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_file_type" name="downloadable[link][{{id}}][sample][type]" value="file"{{sample_file_checked}} checked="checked"/> File:</label>' +
|
548 |
'<input type="hidden" id="downloadable_link_{{id}}_sample_file_save" name="downloadable[link][{{id}}][sample][file]" value="{{sample_file_save}}" />' +
|
549 |
'<div id="downloadable_link_{{id}}_sample_file" class="uploader">' +
|
550 |
'<div id="downloadable_link_{{id}}_sample_file-old" class="file-row-info"></div>' +
|
551 |
'<div id="downloadable_link_{{id}}_sample_file-new" class="file-row-info"></div>' +
|
552 |
'<div class="buttons">' +
|
553 |
'<div id="downloadable_link_{{id}}_sample_file-install-flash" style="display:none">' +
|
554 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
555 |
'</div>' +
|
556 |
'</div>' +
|
557 |
'<div class="clear"></div>' +
|
558 |
'</div>' +
|
559 |
'</div>' +
|
560 |
'<div class="row">' +
|
561 |
'<label for="downloadable_link_{{id}}_sample_url_type"><input type="radio" class="radio" id="downloadable_link_{{id}}_sample_url_type" name="downloadable[link][{{id}}][sample][type]" value="url"{{sample_url_checked}} /> URL:</label><input type="text" class="input-text" name="downloadable[link][{{id}}][sample][url]" value="{{sample_url}}" /> ' +
|
562 |
'</div>' +
|
563 |
'<div>' +
|
564 |
'<span id="downloadable_link_{{id}}_sample_container"></span>' +
|
565 |
'</div>' +
|
566 |
'</div>' +
|
567 |
'</td>' +
|
568 |
'<td>' +
|
569 |
'<div class="files">' +
|
570 |
'<div class="row">' +
|
571 |
'<label for="downloadable_link_{{id}}_file_type"><input type="radio" class="radio validate-one-required-by-name" id="downloadable_link_{{id}}_file_type" name="downloadable[link][{{id}}][type]" value="file"{{file_checked}} checked="checked"/> File:</label>' +
|
572 |
'<input type="hidden" class="validate-downloadable-file" id="downloadable_link_{{id}}_file_save" name="downloadable[link][{{id}}][file]" value="{{file_save}}" />' +
|
573 |
'<div id="downloadable_link_{{id}}_file" class="uploader">' +
|
574 |
'<div id="downloadable_link_{{id}}_file-old" class="file-row-info"></div>' +
|
575 |
'<div id="downloadable_link_{{id}}_file-new" class="file-row-info new-file"></div>' +
|
576 |
'<div class="buttons">' +
|
577 |
'<div id="downloadable_link_{{id}}_file-install-flash" style="display:none">' +
|
578 |
'<?php echo $this->jsQuoteEscape(Mage::helper('media')->__('This content requires last version of Adobe Flash Player. <a href="%s">Get Flash</a>', 'http://www.adobe.com/go/getflash/')) ?>' +
|
579 |
'</div>' +
|
580 |
'</div></div>' +
|
581 |
'<div class="clear"></div>' +
|
582 |
'<div class="urlwrap" style="{{url_display}}"><label for="downloadable_link_{{id}}_url_type"><input type="radio" class="radio validate-one-required-by-name file-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="url"{{url_checked}} /> URL:</label><input type="text" class="validate-downloadable-url input-text" name="downloadable[link][{{id}}][link_url]" value="{{link_url}}" /></div>' +
|
583 |
'<div class="ebookwrap" style="{{ebook_display}}"><label for="downloadable_link_{{id}}_ebook_type"><input type="radio" class="radio validate-one-required-by-name ebook-radio" id="downloadable_link_{{id}}_url_type" name="downloadable[link][{{id}}][type]" value="ebook" {{ebook_checked}} /> eBook: </label><?php echo $eSelectbox ?></div></div>' +
|
584 |
'' +
|
585 |
'<div>' +
|
586 |
'<span id="downloadable_link_{{id}}_link_container"></span>' +
|
587 |
'</div>' +
|
588 |
'</div>' +
|
589 |
'</td>' +
|
590 |
'<td class="a-center"><input type="text" name="downloadable[link][{{id}}][sort_order]" value="{{sort_order}}" class="input-text sort" /></td>' +
|
591 |
'<td>' +
|
592 |
'<button id="downloadable_link_{{id}}_delete_button" type="button" class="scalable delete icon-btn delete-link-item"><span><?php echo Mage::helper('downloadable')->__('Delete'); ?></span></button>' +
|
593 |
'</td>' +
|
594 |
'</tr>';
|
595 |
var linkItems = {
|
596 |
tbody: $('link_items_body'),
|
597 |
templateSyntax: /(^|.|\r|\n)({{(\w+)}})/,
|
598 |
templateText: linkTemplate,
|
599 |
itemCount: 0,
|
600 |
add: function(data) {
|
601 |
alertAlreadyDisplayed = false;
|
602 |
this.template = new Template(this.templateText, this.templateSyntax);
|
603 |
if (!data.link_id) {
|
604 |
data = {};
|
605 |
data.link_id = 0;
|
606 |
data.link_type = 'ebook';
|
607 |
data.sample_type = 'none';
|
608 |
data.use_editionguard = 1;
|
609 |
data.number_of_downloads = '<?php echo $this->getConfigMaxDownloads() ?>';
|
610 |
}
|
611 |
data.id = this.itemCount;
|
612 |
if (data.link_type == 'url') {
|
613 |
data.url_checked = ' checked="checked"';
|
614 |
data.ebook_display = 'display:none';
|
615 |
} else if (data.link_type == 'file') {
|
616 |
data.file_checked = ' checked="checked"';
|
617 |
data.ebook_display = 'display:none';
|
618 |
}
|
619 |
else if (data.link_type == 'ebook') {
|
620 |
data.ebook_checked = ' checked="checked"';
|
621 |
data.url_display = 'display:none';
|
622 |
}
|
623 |
if (data.sample_type == 'url') {
|
624 |
data.sample_url_checked = ' checked="checked"';
|
625 |
} else if (data.sample_type == 'file') {
|
626 |
data.sample_file_checked = ' checked="checked"';
|
627 |
}
|
628 |
Element.insert(this.tbody, {'bottom': this.template.evaluate(data)});
|
629 |
scopeTitle = $('downloadable_link_' + data.id + '_title');
|
630 |
if (scopeTitle) {
|
631 |
Event.observe(scopeTitle, 'click', function(event) {
|
632 |
scopeElm = $(Event.findElement(event, 'input'));
|
633 |
titleField = scopeElm.up(0).down('input[type="text"]');
|
634 |
if (scopeElm.checked == true) {
|
635 |
titleField.disabled = true;
|
636 |
} else {
|
637 |
titleField.disabled = false;
|
638 |
}
|
639 |
});
|
640 |
}
|
641 |
if (!data.store_title && scopeTitle) {
|
642 |
scopeTitle.up(0).down('input[type="text"]').disabled = true;
|
643 |
scopeTitle.checked = true;
|
644 |
}
|
645 |
scopePrice = $('downloadable_link_' + data.id + '_price');
|
646 |
if (scopePrice) {
|
647 |
Event.observe(scopePrice, 'click', function(event) {
|
648 |
scopeElm = $(Event.findElement(event, 'input'));
|
649 |
priceField = scopeElm.up(0).down('input[type="text"]');
|
650 |
if (scopeElm.checked == true) {
|
651 |
priceField.disabled = true;
|
652 |
} else {
|
653 |
priceField.disabled = false;
|
654 |
}
|
655 |
});
|
656 |
}
|
657 |
if (!data.website_price && scopePrice) {
|
658 |
scopePrice.up(0).down('input[type="text"]').disabled = true;
|
659 |
scopePrice.checked = true;
|
660 |
}
|
661 |
downloadsElm = $('downloadable_link_' + data.id + '_downloads');
|
662 |
isUnlimitedElm = $('downloadable_link_' + data.id + '_is_unlimited');
|
663 |
if (data.is_unlimited) {
|
664 |
downloadsElm.disabled = true;
|
665 |
}
|
666 |
Event.observe(isUnlimitedElm, 'click', function(event) {
|
667 |
elm = Event.element(event);
|
668 |
elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
|
669 |
});
|
670 |
if (data.is_shareable) {
|
671 |
options = $('downloadable_link _' + data.id + '_shareable').options;
|
672 |
for (var i = 0; i < options.length; i++) {
|
673 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
674 |
if (options[i].value == '1') {
|
675 |
options[i].selected = true;
|
676 |
}
|
677 |
}
|
678 |
}
|
679 |
if (data.editionguard_resource) {
|
680 |
options = $('downloadable_link_' + data.id + '_editionguard_resource').options;
|
681 |
for (var i = 0; i < options.length; i++) {
|
682 |
if (options[i].value == data.editionguard_resource) {
|
683 |
options[i].selected = true;
|
684 |
}
|
685 |
}
|
686 |
}
|
687 |
if (data.use_editionguard) {
|
688 |
options = $('downloadable_link _' + data.id + '_editionguard').options;
|
689 |
for (var i = 0; i < options.length; i++) {
|
690 |
//Made changes so that we can make Edition Guard to Yes bydefault
|
691 |
//if (options[i].value == data.use_editionguard) {
|
692 |
if (options[i].value == data.use_editionguard) {
|
693 |
options[i].selected = true;
|
694 |
}
|
695 |
}
|
696 |
}
|
697 |
sampleUrl = $('downloadable_link_' + data.id + '_sample_url_type');
|
698 |
linkUrl = $('downloadable_link_' + data.id + '_url_type');
|
699 |
if (!data.file_save) {
|
700 |
data.file_save = [];
|
701 |
}
|
702 |
if (!data.sample_file_save) {
|
703 |
data.sample_file_save = [];
|
704 |
}
|
705 |
// link sample file
|
706 |
new Downloadable.FileUploader(
|
707 |
'linkssample',
|
708 |
'linkssample_' + data.id,
|
709 |
sampleUrl.up('td'),
|
710 |
'downloadable[link][' + data.id + '][sample]',
|
711 |
data.sample_file_save,
|
712 |
'downloadable_link_' + data.id + '_sample_file',
|
713 |
);
|
714 |
// link file
|
715 |
new Downloadable.FileUploader(
|
716 |
'links',
|
717 |
'links_' + data.id,
|
718 |
linkUrl.up('td'),
|
719 |
'downloadable[link][' + data.id + ']',
|
720 |
data.file_save,
|
721 |
'downloadable_link_' + data.id + '_file',
|
722 |
);
|
723 |
linkFile = $('downloadable_link_' + data.id + '_file_type');
|
724 |
linkFile.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
725 |
linkUrl.advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
726 |
$('downloadable_link_' + data.id + '_file_save').advaiceContainer = 'downloadable_link_' + data.id + '_link_container';
|
727 |
sampleFile = $('downloadable_link_' + data.id + '_sample_file_type');
|
728 |
this.itemCount++;
|
729 |
this.togglePriceFields();
|
730 |
this.bindRemoveButtons();
|
731 |
this.bindEditionguardSelect();
|
732 |
},
|
733 |
remove: function(event) {
|
734 |
var element = $(Event.findElement(event, 'tr'));
|
735 |
var use_editionguard = element.down('select.use_editionguard').value != 0;
|
736 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
737 |
if (!old_use_editionguard || !use_editionguard || confirm("This file is managed by Editionguard. If you delete it, previous customers will no longer be able to download their file. This cannot be undone.\n\nAre you sure?"))
|
738 |
{
|
739 |
alertAlreadyDisplayed = false;
|
740 |
if (element) {
|
741 |
element.down('input[type="hidden"].__delete__').value = '1';
|
742 |
Element.select(element, 'div.flex').each(function(elm) {
|
743 |
elm.remove();
|
744 |
});
|
745 |
element.addClassName('no-display');
|
746 |
element.addClassName('ignore-validate');
|
747 |
element.hide();
|
748 |
}
|
749 |
}
|
750 |
},
|
751 |
editionguardSelect: function(event) {
|
752 |
var element = $(Event.findElement(event, 'tr'));
|
753 |
var use_editionguard = element.down('select.use_editionguard').value == 1;
|
754 |
var old_use_editionguard = element.down('input[type="hidden"].old_use_editionguard').value != 0;
|
755 |
if (old_use_editionguard && !use_editionguard && !confirm("This file is managed by Editionguard. If you disable it, previous customers will no longer be able to download their file.\n\nAre you sure?"))
|
756 |
{
|
757 |
element.down('select.use_editionguard').value = element.down('input[type="hidden"].old_use_editionguard').value;
|
758 |
element.down('div.ebookwrap').show();
|
759 |
element.down('div.urlwrap').hide();
|
760 |
return false;
|
761 |
}
|
762 |
else {
|
763 |
element.down('div.ebookwrap').hide();
|
764 |
element.down('div.urlwrap').show();
|
765 |
element.down('input[type="radio"][value="url"].file-radio').checked = true;
|
766 |
}
|
767 |
if (element.down('select.use_editionguard').value == 1) {
|
768 |
element.down('div.ebookwrap').show();
|
769 |
element.down('div.urlwrap').hide();
|
770 |
element.down('input[type="radio"][value="ebook"].ebook-radio').checked = true;
|
771 |
}
|
772 |
if (element.down('select.use_editionguard').value != 1) {
|
773 |
element.down('select.editionguardebook').selectedIndex = 0;
|
774 |
}
|
775 |
return true;
|
776 |
},
|
777 |
bindRemoveButtons: function() {
|
778 |
var buttons = $$('tbody#link_items_body .delete-link-item');
|
779 |
for (var i = 0; i < buttons.length; i++) {
|
780 |
if (!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')) {
|
781 |
$(buttons[i]).binded = true;
|
782 |
Event.observe(buttons[i], 'click', this.remove.bind(this));
|
783 |
}
|
784 |
}
|
785 |
},
|
786 |
bindEditionguardSelect: function() {
|
787 |
var selects = $$('tbody#link_items_body select.use_editionguard');
|
788 |
for (var i = 0; i < selects.length; i++) {
|
789 |
if (!$(selects[i]).binded && !$(selects[i]).hasClassName('disabled')) {
|
790 |
$(selects[i]).binded = true;
|
791 |
Event.observe(selects[i], 'change', this.editionguardSelect.bind(this));
|
792 |
}
|
793 |
}
|
794 |
},
|
795 |
togglePriceFields: function() {
|
796 |
var toogleTo = $('downloadable_link_purchase_type').value;
|
797 |
var disableFlag = true;
|
798 |
if (toogleTo == '1') {
|
799 |
disableFlag = false;
|
800 |
}
|
801 |
$$('.link-prices[type="text"]').each(function(elm) {
|
802 |
var flag = disableFlag;
|
803 |
if (elm.hasClassName('disabled')) {
|
804 |
flag = true;
|
805 |
}
|
806 |
elm.disabled = flag;
|
807 |
});
|
808 |
}
|
809 |
}
|
810 |
linkItems.bindRemoveButtons();
|
811 |
linkItems.bindEditionguardSelect();
|
812 |
if ($('downloadable_link_purchase_type')) {
|
813 |
Event.observe('downloadable_link_purchase_type', 'change', linkItems.togglePriceFields.bind());
|
814 |
}
|
815 |
if ($('add_link_item')) {
|
816 |
Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
|
817 |
}
|
818 |
linkItems.add(<?php echo $item->toJson() ?>);
|
819 |
Validation.addAllThese([
|
820 |
['validate-downloadable-link-sample-file', 'Please specify File.', function(v, element) {
|
821 |
fileSaveElm = element.up('div').next('input[type="hidden"]');
|
822 |
if (element.checked && (fileSaveElm.value == '' || fileSaveElm.value == '[]')) {
|
823 |
return false;
|
824 |
}
|
825 |
return true;
|
826 |
}]
|
827 |
]);
|
828 |
Validation.addAllThese([
|
829 |
['validate-downloadable-link-sample-url', 'Please specify Sample URL.', function(v, element) {
|
830 |
if (element.checked && element.up('p').down('input[type="text"]').value == '') {
|
831 |
return false;
|
832 |
}
|
833 |
return true;
|
834 |
}]
|
835 |
]);
|
836 |
Validation.addAllThese([
|
837 |
['validate-downloadable-ebook', 'Please Select an eBook', function(v, element) {
|
838 |
linkType = element.up(0).down('input[value="ebook"]');
|
839 |
if (linkType.checked && v == '') {
|
840 |
return false;
|
841 |
}
|
842 |
return true;
|
843 |
}]
|
844 |
]);
|
845 |
//]]>
|
package.xml
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>editionguard_drm</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
<license>New BSD</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>This extension is used to integrate Magento with EditionGuard, a cost-effective Adobe DRM service for eBooks.</summary>
|
10 |
<description>This extension will allow you to create eBooks protected with the industry standard Adobe Content Server 4 DRM through the EditionGuard APIs. Through the admin interface, you will be able to manage your DRM enabled eBooks and put them up for sale as Downloadable Products. Your clients will then be able to purchase your eBooks, download them securely on the frontend and open them in Adobe Digital Editions.</description>
|
11 |
-
<notes>
|
12 |
<authors><author><name>EditionGuard</name><user>EditionGuard</user><email>support@editionguard.com</email></author></authors>
|
13 |
<date>2013-10-16</date>
|
14 |
-
<time>
|
15 |
-
<contents><target name="magecommunity"><dir><dir name="Editionguard"><dir name="Editionguard"><dir name="Block"><dir name="Downloadable"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Downloadable"><file name="Links.php" hash="cadc7871db136a3260392daf38a029aa"/></dir></dir></dir></dir></dir></dir><dir name="Customer"><dir name="Products"><file name="List.php" hash="d6ed16a7183e3e97e3725d39d87c4c37"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.2.17</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>editionguard_drm</name>
|
4 |
+
<version>1.0.2.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>New BSD</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>This extension is used to integrate Magento with EditionGuard, a cost-effective Adobe DRM service for eBooks.</summary>
|
10 |
<description>This extension will allow you to create eBooks protected with the industry standard Adobe Content Server 4 DRM through the EditionGuard APIs. Through the admin interface, you will be able to manage your DRM enabled eBooks and put them up for sale as Downloadable Products. Your clients will then be able to purchase your eBooks, download them securely on the frontend and open them in Adobe Digital Editions.</description>
|
11 |
+
<notes>Fixed a UI bug where eBook wasn't being selected in dropdown automatically.</notes>
|
12 |
<authors><author><name>EditionGuard</name><user>EditionGuard</user><email>support@editionguard.com</email></author></authors>
|
13 |
<date>2013-10-16</date>
|
14 |
+
<time>21:43:33</time>
|
15 |
+
<contents><target name="magecommunity"><dir><dir name="Editionguard"><dir name="Editionguard"><dir name="Block"><dir name="Downloadable"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><dir name="Downloadable"><file name="Links.php" hash="cadc7871db136a3260392daf38a029aa"/></dir></dir></dir></dir></dir></dir><dir name="Customer"><dir name="Products"><file name="List.php" hash="d6ed16a7183e3e97e3725d39d87c4c37"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="f7aec5709db45721c6589a3c792cd4f4"/></dir><dir name="Model"><dir name="Downloadable"><file name="Link.php" hash="4e683792593ec39e94cf02ad9c967cdc"/></dir><file name="Exception.php" hash="18afd5abedb9a0413481ea5255a89a53"/><dir name="Mysql4"><dir name="Editionguard"><file name="Collection.php" hash="de7c2d9c3aa413612a6473dafdf2f779"/></dir><file name="Editionguard.php" hash="adaa5e0d1718f506e89c657420c4d31a"/></dir><dir name="Resource"><dir name="Downloadable"><file name="Link.php" hash="cfc4b1417f2fd0adf93daf15b24681e1"/></dir><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="ff76c3213b9b428220578ba48a667365"/></dir></dir></dir></dir><dir name="controllers"><file name="DownloadController.php" hash="f7b27200e5ca4f612ab70e313631c2a9"/></dir><dir name="etc"><file name="config.xml" hash="0a84430a576439e578a8c8f46e025e6c"/><file name="system.xml" hash="e1a700fb181b7b11e318edd4612d93e3"/></dir><dir name="sql"><dir name="editionguard_setup"><file name="install-1.0.0.0.php" hash="9e9ccd8e5fb5f5f63b32fa6ccea92ce6"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="editionguard"><dir name="downloadable"><dir name="product"><dir name="edit"><dir name="downloadable"><file name="links.phtml" hash="9bdbc99ef01ddc52424060492c5663c6"/><file name="links.phtml.zip" hash="8c2249a9e77f11735222aca65a4a0577"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="15fac25ebcf2a7b1d7e9b86c7ff994ae"/></dir><file name=".DS_Store" hash="0a0b84ae758c5fd76efde758b41c2735"/></dir><file name=".DS_Store" hash="7688e3e1f70b35fc9717a876ffedb8e0"/></dir><file name=".DS_Store" hash="15fac25ebcf2a7b1d7e9b86c7ff994ae"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Editionguard_Editionguard.xml" hash="1d6aac7609bf2b57392b64213f3722ca"/></dir></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies><required><php><min>5.2.17</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|