Алексей Карташов

Алексей Карташов

Был в сети 23 ноября 2019, 13:47
Заказы не принимаю
Василий Наумкин
Василий Наумкин
Николай Загумённов
Николай Загумённов
Решение в этом коменте.
bezumkin.ru/modx/minishop2/classes/725/#comment-8366
Код файла myDeliveryHandler.class.php:
<?php
// Увеличиваем общую стоимость, если товаров больше чем на 15 000 
class myDeliveryHandler extends msDeliveryHandler {
	public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
    $cart = $this->ms2->cart->status();
    $total_cost = $cart['total_cost'];
    if ($total_cost < 15000)
      if ($cost != 0)
		    $cost += 1000;
      else $cost = 1000;
		return $cost;
	}
}
Наумов Алексей
Наумов Алексей
Наумов Алексей
Наумов Алексей
Я делал так:

1. Немного модернизируем js файл от тикетс (точнее делаем копию оригинального и указываем путь к нему в настройках), мой файл
fishspace.ru/assets/components/tickets/js/web/fish_default.js
мои изменения отмечены комментариями // FishSpace
2. в форму добавления комментария добавляем код ниже textarea
<div>
  	  <p>
  	    <a id="commentImagesUpload" href="#"><i class="icon-camera"></i>Прикрепить изображение</a>
  	  </p>
  	  <div id="commentImagesPanel"></div>
  	</div>
В момент написания комментария прикрепленные фотки вставляются внутрь commentImagesPanel (и соответственно у пользователя есть предпросмотр их), а в момент нажатия кнопки «написать комментарий» — html код с комментарями добавляется в textarea (это делает скрипт из п.1) и все отправляется на сервер.

3. На ссылку commentImagesUpload нужно повесить ajax загрузчик файлов, у меня так:
$('#commentImagesUpload').click(function(){
    ImageUpload(true);
    return false;
  });
функция ImageUpload у меня довольно навороченная и приводить ее код не буду. Суть ее в том, что бы показать всплывающее окно, которое позволит выбрать файл и загрузить его на сервер. На сервере скрипт загружает картинку, делает для нее превью, и возвращает ответ в json:

$html_code = '<a href="myimage.jpg"><img src="mythumb.jpg" />';
$result = array('success' => true, 'html' => $html_code);
return htmlspecialchars(json_encode($result), ENT_NOQUOTES);
В общем такой костыль у меня прикручен.