Изменение формирования номера следующего заказа и имени заказа — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показаны 2 промежуточные версии этого же участника)
Строка 5: Строка 5:
  
 
'''default''' – это класс для расчета номера следующего заказа. Сам файл находится по пути:
 
'''default''' – это класс для расчета номера следующего заказа. Сам файл находится по пути:
'''\classes\modules\emarket\classes\orders\number\default.php'''
+
 
 +
'''\classes\modules\emarket\classes\orders\number\default.php''' (для старой реализации модулей)
 +
 
 +
'''\classes\components\emarket\classes\orders\number\default.php''' (для новой реализации модулей)
  
 
Поэтому для изменения логики, можно в config.ini указать:
 
Поэтому для изменения логики, можно в config.ini указать:
Строка 12: Строка 15:
 
</pre>
 
</pre>
 
А в папке  
 
А в папке  
 +
 
\classes\modules\emarket\classes\orders\number\ (для старой реализации модулей)  
 
\classes\modules\emarket\classes\orders\number\ (для старой реализации модулей)  
  
 
\classes\components\emarket\classes\orders\number\ (для новой реализации модулей)
 
\classes\components\emarket\classes\orders\number\ (для новой реализации модулей)
 +
 
создать файл '''custom.php''', следующего содержания:
 
создать файл '''custom.php''', следующего содержания:
 
<source lang="php">
 
<source lang="php">

Текущая версия на 07:29, 7 мая 2018

В конфигурационном файле config.ini, в секции [modules] есть такое значение:

emarket.numbers = "default"

default – это класс для расчета номера следующего заказа. Сам файл находится по пути:

\classes\modules\emarket\classes\orders\number\default.php (для старой реализации модулей)

\classes\components\emarket\classes\orders\number\default.php (для новой реализации модулей)

Поэтому для изменения логики, можно в config.ini указать:

emarket.numbers = "custom"

А в папке

\classes\modules\emarket\classes\orders\number\ (для старой реализации модулей)

\classes\components\emarket\classes\orders\number\ (для новой реализации модулей)

создать файл custom.php, следующего содержания:

<?php
	class customOrderNumber implements iOrderNumber {
		protected $order;
		
		public function __construct(order $order) {
			$this->order = $order;
		}
		
		public function number() {
			$sel = new selector('objects');
			$sel->types('object-type')->name('emarket', 'order');
			$sel->order('number')->desc();
			$sel->limit(0, 1);
			$number = $sel->first ? ($sel->first->number + 1) : 1;
			
			$order = $this->order;
			$order->name = 'umitest ' . $number;
			$order->number = $number;
			$order->commit();
			
			return $number;
		}
	};
?>

В итоге, при формирования номера и имени заказа будет использоваться класс customOrderNumber и имя заказа будет примерно в таком виде:

umitest 345