This commit is contained in:
2026-02-04 14:16:30 +03:00
commit 9c6adf8b73
40 changed files with 888 additions and 0 deletions
@@ -0,0 +1,18 @@
<?php
namespace Bx\Discount\AbstractFactory;
use Wt\Core\AbstractFactory\AAbstractFactory;
use Bx\Discount\Factory\DiscountFactory;
class MainAbstractFactory extends AAbstractFactory
{
/**
* @return DiscountFactory
*/
public function getDiscountFactory()
{
return $this->getFactoryInstance(DiscountFactory::class);
}
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace Bx\Discount\Ajax;
use Wt\Core\Ajax\AAjaxHandler;
class BxDiscount extends AAjaxHandler
{
public function ajaxStart()
{
$this->getResponse()->addData(['method' => 'ajaxStart']);
}
public function test()
{
$this->getResponse()->addData(['method' => 'test', 'version' => app()::getInstance('bx.discount')->module()->getVersion()]);
return $this->getResponse();
}
}
+51
View File
@@ -0,0 +1,51 @@
<?php
namespace Bx\Discount\App;
use Bx\Discount\Facade\DefaultDefines;
use Bx\Discount\Facade\Defines;
use Bx\Discount\Facade\DefaultServiceFacade;
use Bx\Discount\Facade\ServiceFacade;
use Bx\Discount\Facade\DefaultFactoryFacade;
use Bx\Discount\Facade\FactoryFacade;
class App extends \Wt\Core\App\App
{
protected $includeFileToInitPhp;
/**
* @param string $factoryName
* @return FactoryFacade | DefaultFactoryFacade
*/
public function factory($factoryName = '')
{
return parent::factory($factoryName);
}
/**
* @param string $serviceName
* @param array $args
* @return ServiceFacade | DefaultServiceFacade
*/
public function service($serviceName = '', $args = [])
{
return parent::service($serviceName, $args);
}
/**
* @return Defines|DefaultDefines
*/
public function defines()
{
return parent::defines();
}
public function isIncludeFileToInitPhp($value = null)
{
if(is_null($value)){
return $this->includeFileToInitPhp;
}
$this->includeFileToInitPhp = $value;
return $this;
}
}
+78
View File
@@ -0,0 +1,78 @@
<?php
namespace Bx\Discount\Collection;
use Wt\Core\Collection\AEntityCollection;
use Bx\Discount\Entity\DiscountEntity;
class DiscountCollection extends AEntityCollection
{
/**
* @param $xmlId
* @return DiscountEntity
* @deprecated
*/
public function &getByXmlId($xmlId)
{
return parent::getByXmlId($xmlId);
}
/**
* @param $id
* @param null $default
* @return DiscountEntity|null
*/
public function &get($id, $default = null)
{
return parent::get($id, $default); // TODO: Change the autogenerated stub
}
/**
* @return DiscountEntity
*/
public function &first(callable $callback = null, $default = null)
{
return parent::first($callback, $default); // TODO: Change the autogenerated stub
}
/**
* @return DiscountEntity
*/
public function &last()
{
return parent::last(); // TODO: Change the autogenerated stub
}
/**
* @return DiscountEntity
*/
public function shift()
{
return parent::shift(); // TODO: Change the autogenerated stub
}
/**
* @return DiscountEntity
*/
public function pop()
{
return parent::pop(); // TODO: Change the autogenerated stub
}
/**
* @return DiscountCollection|DiscountEntity[]
*/
public function filter($callback = null)
{
return parent::filter($callback); // TODO: Change the autogenerated stub
}
/**
* @return DiscountEntity[]
*/
public function all()
{
return parent::all(); // TODO: Change the autogenerated stub
}
}
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace Bx\Discount\Entity;
use Bx\Discount\IFields\DiscountFields;
use Bx\Discount\Factory\DiscountFactory;
use Wt\Core\Entity\AEntity;
class DiscountEntity extends AEntity
{
/**
* @return DiscountFactory
*/
public function getFactory()
{
return parent::getFactory(); // TODO: Change the autogenerated stub
}
/**
* @return DiscountFields
*/
public function fields()
{
return parent::fields();
}
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace Bx\Discount\Facade;
use Wt\Core\App\ADefines;
class DefaultDefines extends ADefines
{
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace Bx\Discount\Facade;
use Bx\Discount\AbstractFactory\MainAbstractFactory;
use Wt\Core\Facade\AFacade;
class DefaultFactoryFacade extends AFacade
{
/**
* @return MainAbstractFactory
*/
public function main()
{
return $this->app->container()->make($this->app->module()->getId().':mainAbstractFactory');
}
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace Bx\Discount\Facade;
use Wt\Core\Facade\AFacade;
class DefaultServiceFacade extends AFacade
{
}
+75
View File
@@ -0,0 +1,75 @@
<?php
namespace Bx\Discount\Factory;
use Bx\Discount\Collection\DiscountCollection;
use Bx\Discount\Entity\DiscountEntity;
use Bx\Discount\ORM\DiscountTable;
use Wt\Core\Factory\AFactory;
use Wt\Core\Factory\AORMFactory;
class DiscountFactory extends AORMFactory
{
/**
* @return string|DiscountTable
*/
protected function __getDataManagerClass()
{
return DiscountTable::class;
}
public function __getEntityClass()
{
return DiscountEntity::class;
}
public function __getCachePrefix()
{
return 'bx_discount';
}
public function __getCollectionClass()
{
return DiscountCollection::class;
}
/**
* @param $id
* @return DiscountEntity
*/
public function getEntityById($id)
{
return parent::getEntityById($id);
}
/**
* @param array $filter
* @param array $order
* @param array $select
* @param null $limit
* @param null $offset
* @return DiscountCollection|DiscountEntity[]
*/
public function getCollection($filter = [], $order = [], $select = [], $limit = null, $offset = null)
{
return parent::getCollection($filter, $order, $select, $limit, $offset); // TODO: Change the autogenerated stub
}
/**
* @param array $arIds
* @return DiscountCollection|DiscountEntity[]
*/
public function getEntityByIds(array $arIds)
{
return parent::getEntityByIds($arIds); // TODO: Change the autogenerated stub
}
/**
* @return DiscountTable
*/
public function getDataManager()
{
return parent::getDataManager();
}
}
+11
View File
@@ -0,0 +1,11 @@
<?php
namespace Bx\Discount\Handlers;
class Autoloader
{
public static function onPageStart(){}
public static function onBeforeProlog(){}
public static function onProlog(){}
public static function onEpilog(){}
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace Bx\Discount\IFields;
use Wt\Core\Interfaces\IFields;
class DiscountFields implements IFields
{
}
+8
View File
@@ -0,0 +1,8 @@
<?php
namespace Bx\Discount\Interfaces;
class ITest
{
}
+92
View File
@@ -0,0 +1,92 @@
<?php
namespace Bx\Discount\ORM;
use Bitrix\Main\ORM\Fields\DatetimeField;
use Bitrix\Main\Type\DateTime;
use Exception;
use Wt\Core\ORM\ADataManager;
class DiscountTable extends ADataManager
{
public static function getTitle()
{
return 'Discount Title';
}
public static function getRowTitle()
{
return 'Discount Row Title';
}
public static function getRowDescription()
{
return 'Discount Row Description';
}
public static function getTableName()
{
return 'bx_discount_table';
}
public static function getMap()
{
return [
'ID' => new \Bitrix\Main\Entity\IntegerField('ID', [
'primary' => true,
'autocomplete' => true,
'title' => 'Id',
]),
'CREATED_AT' => new \Bitrix\Main\Entity\DatetimeField('CREATED_AT', [
'title' => 'CreatedAt',
'user_edit' => false,
]),
'UPDATED_AT' => new \Bitrix\Main\Entity\DatetimeField('UPDATED_AT', [
'title' => 'UpdatedAt',
'user_edit' => false,
]),
];
}
/**
* @param $primary
* @param array $data
* @return \Bitrix\Main\ORM\Data\UpdateResult
* @throws \Bitrix\Main\ObjectException
* @throws Exception
*/
public static function update($primary, array $data)
{
foreach (static::getEntity()->getFields() as $field){
if(is_a($field, DatetimeField::class)){
if(isset($data[$field->getName()]) && !is_a($data[$field->getName()], DateTime::class)) {
$data[$field->getName()] = new \Bitrix\Main\Type\DateTime($data[$field->getName()]);
}
}
}
$data = array_merge($data, [
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), // date(CDatabase::DateFormatToPHP(FORMAT_DATETIME))
]);
unset($data['CREATED_AT']);
return parent::update($primary, $data);
}
/**
* @param array $fields
* @return \Bitrix\Main\ORM\Data\AddResult
* @throws \Bitrix\Main\ObjectException
* @throws Exception
*/
public static function add(array $fields)
{
$fields = array_merge($fields, [
'CREATED_AT' => new \Bitrix\Main\Type\DateTime(),
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(),
]);
return parent::add($fields);
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace Bx\Discount\Providers;
use Bx\Discount\AbstractFactory\MainAbstractFactory;
use Wt\Core\Interfaces\IApp;
use Wt\Core\Interfaces\IServiceProvider;
class DefaultFactoryProvider implements IServiceProvider
{
public function register(IApp $app)
{
$config = $app->config();
$serviceContainer = $app->container();
/**
* @var MainAbstractFactory $mainAbstractFactory
*/
$mainAbstractFactory = $serviceContainer->make(MainAbstractFactory::class, [$config->get('MainAbstractFactory', [])]);
$serviceContainer->singleton($app->module()->getId().':mainAbstractFactory', $mainAbstractFactory);
}
}
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace Bx\Discount\Providers;
use Wt\Core\Interfaces\IApp;
use Wt\Core\Providers\ADefaultServiceProvider;
class DefaultServiceProvider extends ADefaultServiceProvider
{
public function register(IApp $app)
{
parent::register($app);
$container = $this->app->container();
$config = $this->app->config();
}
}