Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Project\Environment\EnvironmentManager;
- define('BX_BUFFER_USED', true);
- define('NO_KEEP_STATISTIC', true);
- define('NOT_CHECK_PERMISSIONS', true);
- define('NO_AGENT_STATISTIC', true);
- define('STOP_STATISTICS', true);
- define('SITE_ID', 's1');
- if (empty($_SERVER['DOCUMENT_ROOT'])) {
- $_SERVER['HTTP_HOST'] = 'site.ru';
- $_SERVER['DOCUMENT_ROOT'] = realpath(__DIR__ . '/../../');
- }
- require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';
- while (ob_get_level()) {
- ob_end_flush();
- }
- if (!CModule::IncludeModule('iblock')) {
- echo 'Unable to include iblock module';
- exit;
- }
- class ConvertPM
- {
- private $APP, $DB;
- public function __construct()
- {
- global $APPLICATION;
- $this->APP = & $APPLICATION;
- global $DB;
- $this->DB = & $DB;
- }
- public function up()
- {
- $logger = new \Project\Tools\Logger\EchoLogger();
- $EM = EnvironmentManager::getInstance();
- $catalogSKUIBlockId = $EM->get('catalogSKUIBlockId');
- if(
- empty($catalogSKUIBlockId)
- ||
- !CIBlock::GetByID($catalogSKUIBlockId)->GetNext()
- ) {
- $logger->log('Iblock for SKU is not exist. Check migration history.');
- return;
- }
- $errorMsg = '';
- $CIBlockProperty = new CIBlockProperty;
- $dbMoreimgProp = $CIBlockProperty->GetList(array(),array(
- 'IBLOCK_ID' => $catalogSKUIBlockId,
- 'CODE' => 'MORE_PICTURES'
- ));
- if ($arMoreimgProp = $dbMoreimgProp->GetNext()) {
- $moreimgPropId = $arMoreimgProp['ID'];
- $this->DB->StartTransaction();
- $arMoreimagesUpdateProps = array(
- 'PROPERTY_TYPE' => 'F',
- 'MULTIPLE' => 'Y',
- 'FILTRABLE' => 'N'
- );
- if(!$CIBlockProperty->Update($moreimgPropId,$arMoreimagesUpdateProps)){
- $errorMsg = sprintf(
- 'Can\'t update property: "MORE_PICTURES". Error message: "%s"',
- $CIBlockProperty->LAST_ERROR
- );
- }
- } else {
- $logger->log('Can\'t find "MORE_PICTURES" property for SKU iblock.');
- return;
- }
- if (!$errorMsg) {
- $this->DB->Commit();
- $logger->log('"MORE_PICTURES" property for SKU iblock has been updated.');
- } else {
- $this->DB->Rollback();
- $logger->log(sprintf('ERROR: %s', $errorMsg));
- }
- }
- public function down()
- {
- $logger = new \Project\Tools\Logger\EchoLogger();
- $errorMsg = 'This migration has no rollback method yet.';
- $logger->log(sprintf('ERROR: %s', $errorMsg));
- }
- }
- $oClass = new ConvertPM();
- $oClass->up();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement