Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
links.phtml
Go to the documentation of this file.
1 <?php
7 // @codingStandardsIgnoreFile
8 
9 ?>
10 <?php
11 
15 ?>
16 <?php $_product = $block->getProduct()?>
17 <?php $block->getConfigJson() ?>
18 <fieldset class="admin__fieldset downloadable-form" data-ui-id="downloadable-links">
19  <legend class="admin__legend"><span><?= /* @escapeNotVerified */ __('Links') ?></span></legend><br>
20  <p class="note"><?= /* @escapeNotVerified */ __('Add links to your product files here.') ?></p>
21  <div class="admin__field" <?= !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[STORE VIEW]') . '"' : '' ?>>
22  <label class="admin__field-label" for="downloadable_links_title"><span><?= /* @escapeNotVerified */ __('Title') ?></span></label>
23  <div class="admin__field-control">
24  <input type="text" class="admin__control-text" id="downloadable_links_title" name="product[links_title]" value="<?= $block->escapeHtml($block->getLinksTitle()) ?>" <?= ($_product->getStoreId() && $block->getUsedDefault()) ? 'disabled="disabled"' : '' ?>>
25  <?php if ($_product->getStoreId()): ?>
26  <div class="admin__field admin__field-option">
27  <input id="link_title_default" class="admin__control-checkbox" type="checkbox" name="use_default[]" value="links_title" onclick="toggleValueElements(this, this.parentNode.parentNode)" <?= $block->getUsedDefault() ? 'checked="checked"' : '' ?> />
28  <label class="admin__field-label" for="link_title_default"><span><?= /* @escapeNotVerified */ __('Use Default Value') ?></span></label>
29  </div>
30  <?php endif; ?>
31  </div>
32  </div>
33 
34  <div class="admin__field" <?= !$block->isSingleStoreMode() ? ' data-config-scope="' . __('[GLOBAL]') . '"' : '' ?>>
35  <label class="admin__field-label" for="downloadable_link_purchase_type"><span><?= /* @escapeNotVerified */ __('Links can be purchased separately') ?></span></label>
36  <div class="admin__field-control">
37  <div class="admin__field-control link-switcher" data-role="link-switcher">
38  <div class="admin__field-control-group">
39  <div class="admin__field admin__field-option">
40  <input type="radio" name="product[links_purchased_separately]" value="1"
41  class="admin__control-radio"
42  id="link-switcher1"
43  <?php if($block->isProductLinksCanBePurchasedSeparately()): ?>
44  checked="checked"
45  <?php endif; ?>
46  >
47  <label class="admin__field-label" for="link-switcher1">
48  <span>Yes</span>
49  </label>
50  </div>
51  <div class="admin__field admin__field-option">
52  <input type="radio" name="product[links_purchased_separately]" value="0"
53  class="admin__control-radio"
54  id="link-switcher0"
55  <?php if(!$block->isProductLinksCanBePurchasedSeparately()): ?>
56  checked="checked"
57  <?php endif; ?>
58  >
59  <label class="admin__field-label" for="link-switcher0">
60  <span>No</span>
61  </label>
62  </div>
63  </div>
64  </div>
65  </div>
66  </div>
67  <div class="admin__field admin__field-wide">
68  <div class="admin__field-control">
69  <div class="admin__control-table-wrapper">
70  <table class="admin__control-table">
71  <thead>
72  <tr>
73  <th class="col-sort"><span><?= /* @escapeNotVerified */ __('Sort Order') ?></span></th>
74  <th class="col-title _required"><span><?= /* @escapeNotVerified */ __('Title') ?></span></th>
75  <?php if ($block->getCanReadPrice() !== false) : ?>
76  <th class="col-price"><span><?= /* @escapeNotVerified */ __('Price') ?></span></th>
77  <?php endif; ?>
78  <th class="col-file"><span><?= /* @escapeNotVerified */ __('Attach File or Enter Link') ?></span></th>
79  <th class="col-sample"><span><?= /* @escapeNotVerified */ __('Sample') ?></span></th>
80  <th class="col-share"><span><?= /* @escapeNotVerified */ __('Shareable') ?></span></th>
81  <th class="col-limit"><span><?= /* @escapeNotVerified */ __('Max. Downloads') ?></span></th>
82  <th class="col-actions">&nbsp;</th>
83  </tr>
84  </thead>
85  <tfoot>
86  <tr>
87  <td class="col-actions-add" colspan="8"><?= $block->getAddButtonHtml() ?></td>
88  </tr>
89  </tfoot>
90  <tbody id="link_items_body">
91  </tbody>
92  </table>
93  </div>
94  <div class="admin__field-note">
95  <span><?= /* @escapeNotVerified */ __('Alphanumeric, dash and underscore characters are recommended for filenames. Improper characters are replaced with \'_\'.') ?></span>
96  </div>
97  </div>
98  </div>
99 </fieldset>
100 <script>
101 require([
102  'jquery',
103  'uiRegistry',
104  'mage/template',
105  'jquery/file-uploader',
106  'mage/mage',
107  'prototype',
108  'mage/translate'
109 ], function(jQuery, registry, mageTemplate){
110  registry.get('downloadable', function (Downloadable) {
111  var linkTemplate = '<tr>'+
112  '<td class="col-sort" data-role="draggable-handle"><input data-container="link-order" type="hidden" ' +
113  'name="downloadable[link][<%- ' +
114  'data.id' +
115  ' %>][sort_order]" ' +
116  'value="<%- data.sort_order %>" class="input-text admin__control-text sort" />' +
117  '<span class="draggable-handle" title="<?= /* @escapeNotVerified */ $block->escapeHtml(__('Sort Variations')) ?>"></span>' +
118  '</td>'+
119  '<td class="col-title">'+
120  '<input type="hidden" class="__delete__" name="downloadable[link][<%- data.id %>][is_delete]" value="" />'+
121  '<input type="hidden" name="downloadable[link][<%- data.id %>][link_id]" value="<%- data.link_id %>" />'+
122  '<input type="text" class="required-entry input-text admin__control-text" name="downloadable[link][<%- data.id %>][title]" value="<%- data.title %>" />'+
123  <?php if($_product->getStoreId()): ?>
124  '<div class="admin__field admin__field-option">'+
125  '<input type="checkbox" id="downloadable_link_<%- data.id %>_title" name="downloadable[link][<%- data.id %>][use_default_title]" value="1" class="admin__control-checkbox" />'+
126  '<label for="downloadable_link_<%- data.id %>_title" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('Use Default Value') ?></span></label>'+
127  '</div>' +
128  <?php endif; ?>
129  <?php if ($block->getCanReadPrice() == false) : ?>
130  '<input type="hidden" id="downloadable_link_<%- data.id %>_price_value" class="link-prices" name="downloadable[link][<%- data.id %>][price]" value="0" />' +
131  <?php if ($_product->getStoreId() && $block->getIsPriceWebsiteScope()) : ?>
132  '<input type="hidden" id="downloadable_link_<%- data.id %>_price" name="downloadable[link][<%- data.id %>][use_default_price]" value="1" />' +
133  <?php endif; ?>
134  <?php endif; ?>
135  '</td>'+
136  <?php if ($block->getCanReadPrice() !== false) : ?>
137  '<td class="col-price">'+
138  '<div class="admin__control-addon">' +
139  '<input type="text" id="downloadable_link_<%- data.id %>_price_value" class="input-text admin__control-text validate-number link-prices<?php if ($block->getCanEditPrice() === false) : ?> disabled<?php endif; ?>" name="downloadable[link][<%- data.id %>][price]" value="<%- data.price %>"<?php if ($block->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> /> ' +
140  '<label class="admin__addon-prefix"><span><?= $block->escapeHtml($block->getBaseCurrencySymbol($_product->getStoreId())) ?></span></label>' +
141  '</div>' +
142  <?php if ($_product->getStoreId() && $block->getIsPriceWebsiteScope()) : ?>
143  '<div class="admin__field admin__field-option">'+
144  '<input type="checkbox" id="downloadable_link_<%- data.id %>_price" name="downloadable[link][<%- data.id %>][use_default_price]" value="1"<?php if ($block->getCanEditPrice() === false) : ?> disabled="disabled"<?php endif; ?> class="admin__control-checkbox" />'+
145  '<label for="downloadable_link_<%- data.id %>_price" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('Use Default Value') ?></span></label>' +
146  '</div>' +
147  <?php endif; ?>
148  '</td>' +
149  <?php endif; ?>
150  '<td class="col-file">'+
151  '<div class="admin__field admin__field-option">'+
152  '<input type="radio" class="admin__control-radio validate-one-required-by-name" id="downloadable_link_<%- data.id %>_file_type" name="downloadable[link][<%- data.id %>][type]" value="file"<%- data.file_checked %> />' +
153  '<label for="downloadable_link_<%- data.id %>_file_type" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('File') ?></span></label>'+
154  '<input type="hidden" class="validate-downloadable-file" id="downloadable_link_<%- data.id %>_file_save" name="downloadable[link][<%- data.id %>][file]" value="<%- data.file_save %>" />'+
155 
156  '<div id="downloadable_link_<%- data.id %>_file" class="admin__field-uploader">'+
157  '<div id="downloadable_link_<%- data.id %>_file-old" class="file-row-info"></div>'+
158  '<div id="downloadable_link_<%- data.id %>_file-new" class="file-row-info new-file"></div>'+
159  '<div class="fileinput-button form-buttons">'+
160  '<span><?= /* @escapeNotVerified */ __('Browse Files...') ?></span>' +
161  '<input id="downloadable_link_<%- data.id %>_file" type="file" name="<?= $block->escapeHtml($block->getFileFieldName('links')) ?>">' +
162  '<script>' +
163  'linksUploader("#downloadable_link_<%- data.id %>_file", "<?= $block->escapeUrl($block->getUploadUrl('links')) ?>"); ' +
164  '</scr'+'ipt>'+
165  '</div>'+
166  '</div>'+
167  '</div>'+
168  '<div class="admin__field admin__field-option admin__field-file-url">'+
169  '<input type="radio" class="admin__control-radio validate-one-required-by-name" id="downloadable_link_<%- data.id %>_url_type" name="downloadable[link][<%- data.id %>][type]" value="url"<%- data.url_checked %> />' +
170  '<label for="downloadable_link_<%- data.id %>_url_type" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('URL') ?></span></label>' +
171  '<input type="text" class="validate-downloadable-url validate-url admin__control-text" name="downloadable[link][<%- data.id %>][link_url]" value="<%- data.link_url %>" placeholder="<?= /* @escapeNotVerified */ __('URL') ?>" />'+
172  '</div>'+
173  '<div>'+
174  '<span id="downloadable_link_<%- data.id %>_link_container"></span>'+
175  '</div>'+
176  '</td>'+
177  '<td class="col-sample">'+
178  '<div class="admin__field admin__field-option">'+
179  '<input type="radio" class="admin__control-radio" id="downloadable_link_<%- data.id %>_sample_file_type" name="downloadable[link][<%- data.id %>][sample][type]" value="file"<%- data.sample_file_checked %> />' +
180  '<label for="downloadable_link_<%- data.id %>_sample_file_type" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('File') ?>:</span></label>'+
181  '<input type="hidden" id="downloadable_link_<%- data.id %>_sample_file_save" name="downloadable[link][<%- data.id %>][sample][file]" value="<%- data.sample_file_save %>" class="validate-downloadable-file"/>'+
182  '<div id="downloadable_link_<%- data.id %>_sample_file" class="admin__field-uploader">'+
183  '<div id="downloadable_link_<%- data.id %>_sample_file-old" class="file-row-info"></div>'+
184  '<div id="downloadable_link_<%- data.id %>_sample_file-new" class="file-row-info new-file"></div>'+
185  '<div class="fileinput-button form-buttons">'+
186  '<span><?= /* @escapeNotVerified */ __('Browse Files...') ?></span>' +
187  '<input id="downloadable_link_<%- data.id %>_sample_file" type="file" name="<?= $block->escapeHtml($block->getFileFieldName('link_samples'), '"') ?>">' +
188  '<script>'+
189  'linksUploader("#downloadable_link_<%- data.id %>_sample_file", "<?= $block->escapeUrl($block->getUploadUrl('link_samples')) ?>"); ' +
190  '</scr'+'ipt>'+
191  '</div>'+
192  '</div>'+
193  '</div>'+
194 
195  '<div class="admin__field admin__field-option admin__field-file-url">'+
196  '<input type="radio" class="admin__control-radio validate-one-required-by-name" id="downloadable_link_<%- data.id %>_sample_url_type" name="downloadable[link][<%- data.id %>][sample][type]" value="url"<%- data.sample_url_checked %> />' +
197  '<label for="downloadable_link_<%- data.id %>_sample_url_type" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('URL') ?></span></label>'+
198  '<input type="text" class="validate-downloadable-url validate-url admin__control-text" name="downloadable[link][<%- data.id %>][sample][url]" value="<%- data.sample_url %>" placeholder="<?= /* @escapeNotVerified */ __('URL') ?>" />'+
199  '</div>'+
200  '<div>'+
201  '<span id="downloadable_link_<%- data.id %>_sample_container"></span>'+
202  '</div>'+
203  '</td>'+
204  '<td class="col-share">'+
205  '<select id="downloadable_link _<%- data.id %>_shareable" class="admin__control-select" name="downloadable[link][<%- data.id %>][is_shareable]">'+
206  '<option value="1"><?= /* @escapeNotVerified */ __('Yes') ?></option>'+
207  '<option value="0"><?= /* @escapeNotVerified */ __('No') ?></option>'+
208  '<option value="2" selected="selected"><?= /* @escapeNotVerified */ __('Use config') ?></option>'+
209  '</select>'+
210  '</td>'+
211  '<td class="col-limit">' +
212  '<input type="text" id="downloadable_link_<%- data.id %>_downloads" name="downloadable[link][<%- data.id %>][number_of_downloads]" class="input-text validate-zero-or-greater admin__control-text downloads" value="<%- data.number_of_downloads %>" />'+
213  '<div class="admin__field admin__field-option">' +
214  '<input type="checkbox" class="admin__control-checkbox" id="downloadable_link_<%- data.id %>_is_unlimited" name="downloadable[link][<%- data.id %>][is_unlimited]" value="1" <%- data.is_unlimited %> />' +
215  '<label for="downloadable_link_<%- data.id %>_is_unlimited" class="admin__field-label"><span><?= /* @escapeNotVerified */ __('Unlimited') ?></span></label>' +
216  '</div>' +
217  '</td>'+
218  '<td class="col-action">'+
219  '<button id="downloadable_link_<%- data.id %>_delete_button" type="button" class="action-delete" title="<?= /* @escapeNotVerified */ $block->escapeHtml(__('Delete')) ?>"><span><?= /* @escapeNotVerified */ __('Delete') ?></span></button>'+
220  '</td>'+
221  '</tr>';
222 
223  var linkItems = {
224  tbody : $('link_items_body'),
225  templateText : linkTemplate,
226  itemCount : 0,
227  add : function(data) {
228  alertAlreadyDisplayed = false;
229  this.template = mageTemplate(this.templateText);
230 
231  if(!data.link_id){
232  data = {};
233  data.link_id = 0;
234  data.link_type = 'file';
235  data.sample_type = 'none';
236  data.number_of_downloads = '<?= /* @escapeNotVerified */ $block->getConfigMaxDownloads() ?>';
237  data.sort_order = this.itemCount + 1;
238  }
239 
240  data.id = this.itemCount;
241 
242  if (data.link_type == 'url') {
243  data.url_checked = ' checked="checked"';
244  } else if (data.link_type == 'file') {
245  data.file_checked = ' checked="checked"';
246  }
247  if (data.sample_type == 'url') {
248  data.sample_url_checked = ' checked="checked"';
249  } else if (data.sample_type == 'file') {
250  data.sample_file_checked = ' checked="checked"';
251  }
252 
253  var rowElement = Element.insert(this.tbody, {
254  'bottom': this.template({data: data})
255  });
256 
257  scopeTitle = $('downloadable_link_'+data.id+'_title');
258  if (scopeTitle) {
259  Event.observe(scopeTitle, 'click', function(event){
260  scopeElm = $(Event.findElement(event, 'input'));
261  titleField = scopeElm.up(0).down('input[type="text"]');
262  if (scopeElm.checked == true) {
263  titleField.disabled = true;
264  } else {
265  titleField.disabled = false;
266  }
267  });
268  }
269  if (!data.store_title && scopeTitle) {
270  scopeTitle.up(0).down('input[type="text"]').disabled = true;
271  scopeTitle.checked = true;
272  }
273 
274  scopePrice = $('downloadable_link_'+data.id+'_price');
275  if (scopePrice) {
276  Event.observe(scopePrice, 'click', function(event){
277  scopeElm = $(Event.findElement(event, 'input'));
278  priceField = scopeElm.up(0).down('input[type="text"]');
279  if (scopeElm.checked == true) {
280  priceField.disabled = true;
281  } else {
282  priceField.disabled = false;
283  }
284  });
285  }
286  if (!data.website_price && scopePrice) {
287  scopePrice.up(0).down('input[type="text"]').disabled = true;
288  scopePrice.checked = true;
289  }
290  downloadsElm = $('downloadable_link_'+data.id+'_downloads');
291  isUnlimitedElm = $('downloadable_link_'+data.id+'_is_unlimited');
292  if (data.is_unlimited) {
293  downloadsElm.disabled = true;
294  }
295  Event.observe(isUnlimitedElm, 'click', function(event){
296  elm = Event.element(event);
297  elm.up('td').down('input[type="text"].downloads').disabled = elm.checked;
298  });
299 
300  if (data.is_shareable) {
301  options = $('downloadable_link _'+data.id+'_shareable').options;
302  for (var i=0; i < options.length; i++) {
303  if (options[i].value == data.is_shareable) {
304  options[i].selected = true;
305  }
306  }
307  }
308 
309  sampleUrl = $('downloadable_link_'+data.id+'_sample_url_type');
310  linkUrl = $('downloadable_link_'+data.id+'_url_type');
311 
312  if (!data.file_save) {
313  data.file_save = [];
314  }
315  if (!data.sample_file_save) {
316  data.sample_file_save = [];
317  }
318 
319  // link sample file
320  new Downloadable.FileUploader(
321  'linkssample',
322  'linkssample_'+data.id,
323  sampleUrl.up('td'),
324  'downloadable[link]['+data.id+'][sample]',
325  data.sample_file_save,
326  'downloadable_link_'+data.id+'_sample_file',
327  <?= /* @escapeNotVerified */ $block->getConfigJson('link_samples') ?>
328  );
329  // link file
330  new Downloadable.FileUploader(
331  'links',
332  'links_'+data.id,
333  linkUrl.up('td'),
334  'downloadable[link]['+data.id+']',
335  data.file_save,
336  'downloadable_link_'+data.id+'_file',
337  <?= /* @escapeNotVerified */ $block->getConfigJson() ?>
338  );
339 
340  linkFile = $('downloadable_link_'+data.id+'_file_type');
341  linkFile.advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
342  linkUrl.advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
343  $('downloadable_link_'+data.id+'_file_save').advaiceContainer = 'downloadable_link_'+data.id+'_link_container';
344 
345  sampleFile = $('downloadable_link_'+data.id+'_sample_file_type');
346 
347  this.itemCount++;
348  this.togglePriceFields();
349  this.bindRemoveButtons();
350  },
351  sorting: function () {
352  var list = jQuery(this.tbody);
353  list.sortable({
354  axis: 'y',
355  handle: '[data-role=draggable-handle]',
356  items: 'tr',
357  update: function (event, data) {
358  list.find('[data-container=link-order]').each(function (i, el) {
359  jQuery(el).val(i + 1);
360  });
361  },
362  tolerance: 'pointer'
363  });
364  },
365  remove : function(event){
366  var element = $(Event.findElement(event, 'tr'));
367  alertAlreadyDisplayed = false;
368  if(element){
369  element.down('input[type="hidden"].__delete__').value = '1';
370  Element.select(element, 'div.flex').each(function(elm){
371  elm.remove();
372  });
373  element.addClassName('no-display');
374  element.addClassName('ignore-validate');
375  element.hide();
376  }
377  },
378  bindRemoveButtons : function(){
379  var buttons = $$('tbody#link_items_body .action-delete');
380  for(var i=0;i<buttons.length;i++){
381  if(!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')){
382  $(buttons[i]).binded = true;
383  Event.observe(buttons[i], 'click', this.remove.bind(this));
384  }
385  }
386  },
387  togglePriceFields : function(){
388  var toogleTo = jQuery('#link-switcher1').is(':checked');
389  var disableFlag = true;
390  if (toogleTo) {
391  disableFlag = false;
392  }
393  $$('.link-prices[type="text"]').each(function(elm){
394  var flag = disableFlag;
395  if (elm.hasClassName('disabled')) {
396  flag = true;
397  }
398  elm.disabled = flag;
399  });
400  }
401  };
402 
403  linkItems.sorting();
404  linkItems.bindRemoveButtons();
405 
406  linksUploader = function (id, url) {
407  (function ($) {
408  $(id).fileupload({
409  dataType: 'json',
410  url: url,
411  sequentialUploads: true,
412  maxFileSize: 2000000,
413  add: function (e, data) {
414  var progressTmpl = mageTemplate(id + '-template'),
415  fileSize,
416  tmpl;
417 
418  $.each(data.files, function (index, file) {
419  if ($(id + ' .progressbar-container').length) {
420  $(id + ' .progressbar-container').parent().remove();
421  }
422 
423  fileSize = typeof file.size == "undefined" ?
424  $.mage.__('We could not detect a size.') :
425  byteConvert(file.size);
426 
427  data.fileId = Math.random().toString(36).substr(2, 9);
428 
429  tmpl = progressTmpl({
430  data: {
431  name: file.name,
432  size: fileSize,
433  id: data.fileId
434  }
435  });
436 
437  $(tmpl).appendTo(id);
438  });
439 
440  $(this).fileupload('process', data).done(function () {
441  data.submit();
442  });
443  },
444  done: function (e, data) {
445  var progressSelector = '#' + data.fileId + ' .progressbar-container .progressbar';
446  $(progressSelector).css('width', '100%');
447  if (data.result && !data.result.hasOwnProperty('errorcode')) {
448  $(progressSelector).removeClass('upload-progress').addClass('upload-success');
449  new Downloadable.FileList(id.substr(1), null).handleUploadComplete(data.result);
450  } else {
451  $(progressSelector).removeClass('upload-progress').addClass('upload-failure');
452  var errorMsg = '<span class="file-info-error">' + data.result.error + '</span>';
453  $('#' + data.fileId + ' .file-info').append(errorMsg);
454  }
455  },
456  progress: function (e, data) {
457  var progress = parseInt(data.loaded / data.total * 100, 10);
458  var progressSelector = '#' + data.fileId + ' .progressbar-container .progressbar';
459  $(progressSelector).css('width', progress + '%');
460  },
461  fail: function (e, data) {
462  var progressSelector = '#' + data.fileId + ' .progressbar-container .progressbar';
463  $(progressSelector).removeClass('upload-progress').addClass('upload-failure');
464  if (data.result && data.result.hasOwnProperty('errorcode')) {
465  var errorMsg = '<span class="file-info-error">' + data.result.error + '</span>';
466  $('#' + data.fileId + ' .file-info').append(errorMsg);
467  }
468  }
469  });
470  })(jQuery);
471  };
472 
473  if (jQuery('input[name="product[links_purchased_separately]"]')) {
474  jQuery('input[name="product[links_purchased_separately]"]').on('change', linkItems.togglePriceFields.bind());
475  }
476 
477  if($('add_link_item')) {
478  Event.observe('add_link_item', 'click', linkItems.add.bind(linkItems));
479  }
480 
481  <?php foreach ($block->getLinkData() as $item): ?>
482  linkItems.add(<?= /* @escapeNotVerified */ $item->toJson() ?>);
483  <?php endforeach; ?>
484 
485  });
486 });
487 </script>
$block setTitle( 'CMS Block Title') -> setIdentifier('fixture_block') ->setContent('< h1 >Fixture Block Title</h1 >< a href=" store url</a><p> Config value
Definition: block.php:9
__()
Definition: __.php:13
$_product
Definition: summary.phtml:12
$block
Definition: block.php:8
jquery ui
Definition: tree.phtml:41
$_count $_index $_prevOptionId if($block->getOrderOptions()|| $_item->getDescription()) foreach( $items as $_item)( $_item) ?><?php $attributes if( $_item->getOrderItem() ->getParentItem())($_prevOptionId !=$attributes['option_id'])</td >< td > & nbsp
Definition: renderer.phtml:33
if ignore
Definition: edit.phtml:100
jQuery('.store-switcher .dropdown-menu li a').each(function()
Definition: switcher.phtml:203