Перейти к содержимому


Фотография
- - - - -

Увеличение количества доп параметров в Jbpriceadvance

jbprice advance jbpriceadvance дополнительные параметры цены

Сообщений в теме: 7

#1 rihter2001

rihter2001

Отправлено 29 October 2014 - 06:55

Значится так.....
изменять надо 6 файлов
1
jbpriceadvance.php и  jbpriceadvance.xml
из папки
media\zoo\applications\jbuniversal\elements\jbpriceadvance\
2
edit.php
из папки
media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl

jbpriceadvance.php
из папки
media\zoo\applications\jbuniversal\framework\elements\user\
4
jquery.jbzootools.min.js
папка 
media\zoo\applications\jbuniversal\assets\js
 
ну и дописать в файл
ru-RU.com_jbzoo.ini новые значения перевода
 
Если в кратце то через поиск ищем строки где упоминается      param1
и дополняем их новыми например

 
  1. public function edit()
  2. {
  3. $this->app->jbassets->admin();
  4.  
  5. if ($layout = $this->getLayout('edit.php')) {
  6.  
  7. $variations = $this->_getVariations();
  8. if (empty($variations) && (int)$this->config->get('mode', 0)) {
  9. $basic = $this->_getBasicData();
  10. $basic['description'] = '';
  11. $variations = array($basic);
  12. }
  13.  
  14. return self::renderLayout($layout, array(
  15. 'config' => $this->config,
  16. 'currencyList' => $this->_getCurrencyList($this->config),
  17. 'variations' => $variations,
  18. 'basicData' => $this->_getBasicData(),
  19. 'param1' => $this->_getParamOptions(1, true),
  20. 'param2' => $this->_getParamOptions(2, true),
  21. 'param3' => $this->_getParamOptions(3, true),
  22. 'param4' => $this->_getParamOptions(4, true),
  23. 'param5' => $this->_getParamOptions(5, true),
  24. 'param6' => $this->_getParamOptions(6, true),
  25. 'param7' => $this->_getParamOptions(7, true),
  26. 'param8' => $this->_getParamOptions(8, true),
  27. 'param9' => $this->_getParamOptions(9, true),
  28. 'param10' => $this->_getParamOptions(10, true),
  29. 'param11' => $this->_getParamOptions(11, true),
  30. 'param12' => $this->_getParamOptions(12, true),
  31. 'param13' => $this->_getParamOptions(13, true),
  32. 'param14' => $this->_getParamOptions(14, true),
  33. 'param15' => $this->_getParamOptions(15, true),
  34. ));
  35. }
  36.  
  37. return null;
  38. }
Так же находим  p1- и дописываем
  1. protected function _getHash(array $variant = array())
  2. {
  3. $itemId = $this->_getItemId();
  4.  
  5. if (empty($variant)) {
  6. return (string)$itemId;
  7. }
  8.  
  9. $paramsArr = array(
  10. 'p1-' . (isset($variant['param1']) ? $variant['param1'] : ''),
  11. 'p2-' . (isset($variant['param2']) ? $variant['param2'] : ''),
  12. 'p3-' . (isset($variant['param3']) ? $variant['param3'] : ''),
  13. 'p4-' . (isset($variant['param4']) ? $variant['param4'] : ''),
  14. 'p5-' . (isset($variant['param5']) ? $variant['param5'] : ''),
  15. 'p6-' . (isset($variant['param6']) ? $variant['param6'] : ''),
  16. 'p7-' . (isset($variant['param7']) ? $variant['param7'] : ''),
  17. 'p8-' . (isset($variant['param8']) ? $variant['param8'] : ''),
  18. 'p9-' . (isset($variant['param9']) ? $variant['param9'] : ''),
  19. 'p10-' . (isset($variant['param10']) ? $variant['param10'] : ''),
  20. 'p11-' . (isset($variant['param11']) ? $variant['param11'] : ''),
  21. 'p12-' . (isset($variant['param12']) ? $variant['param12'] : ''),
  22. 'p13-' . (isset($variant['param13']) ? $variant['param13'] : ''),
  23. 'p14-' . (isset($variant['param14']) ? $variant['param14'] : ''),
  24. 'p15-' . (isset($variant['param15']) ? $variant['param15'] : ''),
  25. );
  26.  
  27. if ((int)$this->config->get('adv_field_text', 0) == self::TEXT_FIELD_AS_PARAM) {
  28. if (isset($variant['description'])) {
  29. $paramsArr[] = 'd-' . $this->app->string->sluggify($variant['description']);
  30. } else {
  31. $paramsArr[] = 'd-';
  32. }
  33. }
  34.  
  35. $result = implode('_', $paramsArr);
  36.  
  37. if ($result === implode('_', array('p1-', 'p2-', 'p3-', 'p4-', 'p5-', 'p6-', 'p7-', 'p8-', 'p9-', 'p10-', 'p11-', 'p12-', 'p13-', 'p14-', 'p15-', 'd-')) ||
  38. $result === implode('_', array('p1-', 'p2-', 'p3-', 'p4-', 'p5-', 'p6-', 'p7-', 'p8-', 'p9-', 'p10-', 'p11-', 'p12-', 'p13-', 'p14-', 'p15-'))
  39. ) {
  40. return (string)$itemId;
  41. }
  42. }
обязательно находим protected function _renderParamsControl($params)
и меняем значение $i На количество полей
 
  1. function _renderParamsControl($params)
  2. {
  3. $jbhtml = $this->app->jbhtml;
  4.  
  5. $paramsTmpl = (int)$params->get('params_tmpl', 0);
  6. $advFieldText = (int)$this->config->get('adv_field_text', 0);
  7. $advShowEmpty = (int)$this->config->get('adv_show_empty', 1);
  8.  
  9. $html = array();
  10. /// $i количество выводимых полей
  11. for ($i = 1; $i <= 15; $i++) {
  12.  
  13. и $html[3] меняем 3 на количество полей + 1$paramsList = $this->_getParamOptionsDesc();
  14.  
  15. if ($advFieldText == self::TEXT_FIELD_AS_PARAM && !empty($paramsList)) {
  16.  
  17. if (self::PARAMS_TMPL_SELECT == $paramsTmpl) {
  18. $paramName = JString::trim($paramsList[''], '-');
  19.  
  20. $html[16] = $jbhtml->select($paramsList, uniqid('jbprice-'), 'class="jsParamDesc" data-index="d-"');
  21. $html[16] = '<fieldset class="jbprice-param-select jbprice-param-list jbprice-param-list-desc">'
  22. . '<legend>' . $paramName . '</legend>'
  23. . $html[16]
  24. . '</fieldset>'
и главное дописать скрипт
дописываем там где p1-
  1. b.text_start+'" /><input type="button" class="jsStop uk-button" value="'+b.text_stop+'" style="display:none;" />');var f=a("#jbprogressbar",l),s=a(".uk-progress-bar",l);a(".progress-label",l);var m=a(".jsStart",l),q=a(".jsStop",l),r=0,t=0,p=!0,n=0;m.bind("click",function(){confirm(b.text_start_confirm)&&d();return!1});q.bind("click",function(){confirm(b.text_stop_confirm)&&g();return!1});b.autoStart&&(d(),m.hide(),q.hide())};a.fn.JBZooPriceAdvance=function(b){b=a.extend({},{mainHash:"",itemId:0,identifier:"",
  2. prices:{},addToCartUrl:"",removeFromCartUrl:"",basketUrl:"",modalUrl:"",isInCart:0},b);b.params=a.extend({},{startValue:1,multipleValue:1,currencyDefault:"EUR",advFieldText:0,advAllExistShow:0},b.params);return a(this).each(function(){function c(c){if(p(b.prices))return!1;var d;d=l();var e=h(d);d="p1-_p2-_p3-_p4-_p5-p6-_p7-_p8-_p9-_p10-p11-_p12-_p13-_p14-_p15-_d-"==e||"p1-_p2-_p3-_p4-_p5-p6-_p7-_p8-_p9-_p10-p11-_p12-_p13-_p14-_p15"==e?b.mainHash:e=b.mainHash+"-"+h(d);var e=b.prices[b.mainHash].prices[c],g="";"undefined"!=typeof b.prices[d]?(e=b.prices[d].prices[c],g=a.trim(b.prices[d].description),
  3. 0==b.params.advAllExistShow&&a(".jbprice-buttons",f).removeClass("disabled")):(0==b.params.advAllExistShow&&a(".jbprice-buttons",f).addClass("disabled"),d=b.mainHash);a(".not-paid-box",f).show();0==e.totalNoFormat&&a(".not-paid-box",f).hide();a(".jsSave",f).text(e.save);a(".jsTotal",f).text(e.total);a(".jsPrice",f).html("&nbsp;"+e.price+"&nbsp;");a(".jbcurrency-"+c.toLowerCase(),f).addClass("active");a(".jsDescription",f).text(g);a(".jbprice-balance .balance",f).hide();a(".jbprice-balance ."+d,f).show();
  4. a(".jbprice-sku .sku",f).hide();a(".jbprice-sku ."+d,f).show();n=c}function e(){var a=l();return a=2==b.params.advFieldText?{1:a["p1-"],2:a["p2-"],3:a["p3-"],4:a["p4-"],5:a["p5-"],6:a["p6-"],7:a["p7-"],8:a["p8-"],9:a["p9-"],10:a["p10-"],11:a["p11-"],12:a["p12-"],13:a["p13-"],4:a["p14-"],5:a["p15-"],desc:a["d-"]}:{1:a["p1-"],2:a["p2-"],3:a["p3-"],4:a["p4-"],5:a["p5-"],6:a["p6-"],7:a["p7-"],8:a["p8-"],9:a["p9-"],10:a["p10-"],11:a["p11-"],12:a["p12-"],13:a["p13-"],4:a["p14-"],5:a["p15-"]}}function d(c){var d=b.params.startValue;a(".jsCount",f).length&&(d=a(".jsCount",f).val());k({url:b.addToCartUrl,data:{args:{quantity:d,params:e()}},success:function(b){a.isFunction(c)&&c(b)},error:function(a){a.message&&alert(a.message)}})}function g(){k({url:b.removeFromCartUrl,success:function(b){f.removeClass("in-cart").addClass("not-in-cart");
  5. a.fn.JBZooPriceReloadBasket()}})}function h(a){var b=[],c;for(c in a)b.push(c+a[c]);return b.join("_")}function l(){var c={},c=2==b.params.advFieldText?{"p1-":"","p2-":"","p3-":"","p4-":"","p5-":"","p6-":"","p7-":"","p8-":"","p9-":"","p10-":"","p11-":"","p12-":"","p13-":"","p14-":"","p15-":"","d-":""}:{"p1-":"","p2-":"","p3-":"","p4-":"","p5-":"","p6-":"","p7-":"","p8-":"","p9-":"","p10-":"","p11-":"","p12-":"","p13-":"","p14-":"","p15-":""};f.find(".jbprice-param-radio").length?a(".jbprice-param-radio input:checked",f).each(function(b,d){var e=a.trim(a(d).val()),f=a(d).closest(".jbprice-param-radio");c[f.data("index")]=e}):f.find(".jbprice-param-select").length&&(a(".jsParam",f).each(function(b,d){var e=a.trim(a(d).val())
прикрепил свои вариант на 15 полей https://yadi.sk/d/4wJ0vMIdcM3SP

знаю я маниак но так надо было

Прикрепленные файлы


Сообщение отредактировал SmetDenis: 25 November 2014 - 10:33
форматирование кода

  • 4

#2 KGJ

KGJ

Отправлено 11 March 2015 - 14:20

Все вроде бы сделал как по инструкции, но в заказах не появляется мои 5 позиций. Там так и остались 3 характеристики. То есть на фулл и тизере product все появилось, можно выбрать более 3 характеристик, но вот при оформлении заказа - так и осталось 3 характеристики. Не поможете?


  • 0

#3 rihter2001

rihter2001

Отправлено 12 March 2015 - 09:47

http://forum.jbzoo.c...metrov/?p=52138


  • 0

#4 KGJ

KGJ

Отправлено 12 March 2015 - 09:57

rihter2001 сказал(а) 12 Мар 2015 - 08:47:

Прочитал по ссылке - ничего не понял. Там же тоже самое что и здесь, нет разве?


  • 0

#5 rihter2001

rihter2001

Отправлено 12 March 2015 - 10:05

Должно быть в методе ajaxAddToCart, если js'ом передаются параметры.

вот только не помню где он ((((

давно старую версию не юзал

проще уже на новой делать


Сообщение отредактировал rihter2001: 12 March 2015 - 10:06

  • 0

#6 KGJ

KGJ

Отправлено 12 March 2015 - 10:19

У меня столько изменений в шаблонах, что я уже не понимаю, как мне на новую перейти )))

А хоть куда рыть - не подскажите?

Где может этот ajaxAddToCart зарыт быть?


  • 0

#7 rihter2001

rihter2001

Отправлено 12 March 2015 - 10:31

\media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php

 

 

K:\OpenServer\domains\acmar.loc\media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php(32):        $this->registerCallback('ajaxAddToCart');
K:\OpenServer\domains\acmar.loc\media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php(223):                    'addToCartUrl'      => $this->app->jbrouter->element($this->identifier, $item->id, 'ajaxAddToCart'),
K:\OpenServer\domains\acmar.loc\media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php(240):    public function ajaxAddToCart($quantity = 1, $priceIndex = 0)
K:\OpenServer\domains\acmar.loc\media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php(281):            'addToCartUrl' => $this->app->jbrouter->element($this->identifier, $this->getItem()->id, 'ajaxAddToCart'),


 

 

KGJ сказал(а) 12 Мар 2015 - 09:19:

У меня столько изменений в шаблонах, что я уже не понимаю, как мне на новую перейти ))) А хоть куда рыть - не подскажите?

а новую с нуля пилить, а шаблоны перетащить так, ручками с заменой


Сообщение отредактировал rihter2001: 12 March 2015 - 10:31

  • 1

#8 KGJ

KGJ

Отправлено 12 March 2015 - 10:52

О, спасибо огромное!


  • 0





Темы с аналогичным тегами jbprice advance, jbpriceadvance, дополнительные параметры цены

Click to return to top of page in style!