Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/grain.iiko/lib/ |
Upload File : |
<?php namespace Grain\Iiko; use \Bitrix\Main\Entity; use \Bitrix\Main\Type; use \Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); class ModifierImageTable extends Entity\DataManager { /* public static function getTableName() { return 'b_grain_iiko_modifier_image'; // auto create } */ public static function getUfId() { return 'GRAIN_IIKO_MODIFIER_IMAGE'; } /*public static function getConnectionName() { return 'default'; } */ public static function getMap() { return array( new Entity\IntegerField('ID', array( 'primary' => true, 'autocomplete' => true )), new Entity\IntegerField('SORT',array( 'default_value' => 100, )), new Entity\IntegerField('FILE_ID', array( 'required' => true, )), new Entity\IntegerField('MODIFIER_ID', array( 'required' => true, )), new Entity\ReferenceField( 'MODIFIER', '\Grain\Iiko\ModifierListTable', array('=this.MODIFIER_ID' => 'ref.ID') ), ); } public static function saveImages($modifierId,$imageLinks) { $modifierId = intval($modifierId); if($modifierId<=0 || !is_array($imageLinks)) return false; $rsExistingData = static::getList(array('filter'=>array('MODIFIER_ID'=>$modifierId))); $existingData = array(); $existingNames = array(); while($image=$rsExistingData->fetch()) { $image['FILE'] = \CFile::GetFileArray($image['FILE_ID']); $existingData[] = $image; $existingNames[] = $image['FILE']['ORIGINAL_NAME']; } $newExistingNames = array(); foreach($imageLinks as $imageLink) { $basename = pathinfo($imageLink,PATHINFO_BASENAME); $newExistingNames[] = $basename; if(in_array($basename,$existingNames)) continue; if(!$fileId=\CFile::SaveFile(\CFile::MakeFileArray($imageLink),"grain.iiko")) continue; if(!$file=\CFile::GetFileArray($fileId)) continue; static::add(array( 'MODIFIER_ID' => $modifierId, 'FILE_ID' => $fileId, )); } foreach($existingData as $existingFile) { if(in_array($existingFile['FILE']['ORIGINAL_NAME'],$newExistingNames)) continue; static::delete($existingFile['ID']); } } public static function OnDelete(\Bitrix\Main\Entity\Event $event) { $id = $event->getParameter("id"); if(is_array($id)) $id = $id["ID"]; if(!$image=static::getById($id)->fetch()) return; \CFile::Delete($image['FILE_ID']); } }