PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<? namespace Newsite\Utils\Iblock\Properties; use Bitrix\Main\Loader, Bitrix\Main\Localization\Loc, Bitrix\Iblock\PropertyTable; Loc::loadMessages(__FILE__); Loader::includeModule('iblock'); class WorkTime extends \CIBlockPropertyHTML { const USER_TYPE = 'WorkTime'; public static function GetUserTypeDescription() { return [ "PROPERTY_TYPE" => PropertyTable::TYPE_STRING, "USER_TYPE" => self::USER_TYPE, "DESCRIPTION" => "Newsite - Режим работы по дням", "GetPropertyFieldHtml" => [__CLASS__, "GetPropertyFieldHtml"], "GetPublicEditHTML" => [__CLASS__, "GetPropertyFieldHtml"], "PrepareSettings" => [__CLASS__, "PrepareSettings"], "GetSettingsHTML" => [__CLASS__, "GetSettingsHTML"], "GetAdminListViewHTML" => [__CLASS__, "GetAdminListViewHTML"], "ConvertFromDB" => [__CLASS__, "ConvertFromDB"], "ConvertToDB" => [__CLASS__, "ConvertToDB"] ]; } public static function PrepareSettings($arProperty) { return []; } public static function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields) { return true; } public function BuildOption($elements, $values) { $values = (array) $values; $options = ""; foreach ($elements as $key => $value) { $options .= '<option value="' . $key . '"'; if (in_array($key, $values)) { $options .= ' selected'; } $options .= '>' . $value . '</option>'; } return $options; } public static function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName) { if(!is_array($value['VALUE'])) $value = static::ConvertFromDB($arProperty, $value); $value = $value['VALUE']; \Bitrix\Main\UI\Extension::load("ui.forms"); $daysMonth = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб']; $daysMonthOptions = self::BuildOption($daysMonth, $value['DAY']); ob_start(); ?> <div style="display: flex; margin-bottom: 10px"> <select name="<?= $strHTMLControlName['VALUE'] ?>[DAY]"><?= $daysMonthOptions ?></select> <span style ="margin: 5px">Время работы:</span> <input type="text" value="<?= $value['TIME_START'] ?: '00:00' ?>" placeholder="00:00" name="<?= $strHTMLControlName['VALUE'] ?>[TIME_START]" size="2"/> <span style ="margin: 5px">-</span> <input type="text" value="<?= $value['TIME_END'] ?: '00:00' ?>" placeholder="00:00" name="<?= $strHTMLControlName['VALUE'] ?>[TIME_END]" size="2"/> <span style ="margin: 5px">Обед:</span> <input type="text" value="<?= $value['DINNER_START'] ?: '00:00' ?>" placeholder="00:00" name="<?= $strHTMLControlName['VALUE'] ?>[DINNER_START]" size="2"/> <span style ="margin: 5px">-</span> <input type="text" value="<?= $value['DINNER_END'] ?: '00:00' ?>" placeholder="00:00" name="<?= $strHTMLControlName['VALUE'] ?>[DINNER_END]" size="2"/> <input type="text" placeholder="Примечание" name="<?= $strHTMLControlName['VALUE'] ?>[TITLE]" value="<?= $value['TITLE'] ?>"> </div> <?php $return = ob_get_contents(); ob_end_clean(); return $return; } public static function ConvertFromDB($arProperty, $value = array()) { $unserialize = unserialize($value["VALUE"]); if (empty($unserialize)) { $unserialize = array(); } return ["VALUE" => $unserialize]; } public static function ConvertToDB($arProperty, $value) { if(!empty($value["VALUE"]['TITLE']) || (!empty($value["VALUE"]['TIME_START']) && $value["VALUE"]['TIME_START'] != '00:00')) { $value["VALUE"] = serialize($value["VALUE"]); return $value; } return ['VALUE' => false]; } }
Show:  
Copy Clear