$dbData = $entity_data::getlist(array(
'select' => array('*'),
'order' => array('UF_CATEGORIAY'=>'ASC'),
'filter' => array(
'>=UF_DATE' => \Bitrix\Main\Type\DateTime::createFromUserTime('01.01.2017 18:00:00'),
'<=UF_DATE' => \Bitrix\Main\Type\DateTime::createFromUserTime('03.01.2017 18:00:00')
)
));
array(
1 => array(
name => test1,
parent_id => 0
),
2 => array(
name => test2,
parent_id => 1
),
3 => array(
name => test3,
parent_id => 1
),
)
array(
1 => array(
name => test1,
parent_id => 0,
childs => array(
2 => array(
name => test2,
parent_id => 1
),
3 => array(
name => test3,
parent_id => 1
),
)
)
)
array(
2 => array(
name => test2,
parent_id => 1
),
1 => array(
name => test1,
parent_id => 0
),
3 => array(
name => test3,
parent_id => 1
),
)
array(
1 => array(
name => test1,
parent_id => 0,
childs => array(
3 => array(
name => test3,
parent_id => 1
),
)
)
)
use \Bitrix\Main\Loader;
// Это нужно где-нибудь складировать в init.php/других файлах, т.к. много где может понадобится
define('TARGET_IBLOCK_ID',1);
// Это то, что вернет скрипт
$arReturn = [
'result' => 'error',
'data' => 'Неправильный запрос',
];
$sCode = $_POST["code"];
if ( !empty($sCode) )
{
// Инициализируем php-кеширование (в хранилище кеша будет помещен json объект)
$cache = new CPHPCache();
// Устанавливаем время, на которое нужно кешировать
$cache_time = 86400*7;
// Уникальный ID
$cache_id = 'sectCache'.$code;
// Папка для хранения кеша
$cache_path = '/sectCache/'.$code;
// Проверяем существование кеша
if ( $cache->InitCache($cache_time, $cache_id, $cache_path) )
{
// Кеш есть, достаем данные
$arCacheData = $cache->GetVars();
// Достаем по ключу, с которым положили
$arReturn['data'] = $arCacheData['sectCache'.$sCode];
}
else
{
// Кеша нет, нужно получить данные
// Хороший тон - проверить, подключен ли модуль
if ( Loader::IncludeModule('iblock') )
{
$arSelect = [
"ID",
"NAME",
"PROPERTY_YEAR",
"PREVIEW_PICTURE",
"PROPERTY_MODEL",
"PROPERTY_WORKS",
"PROPERTY_COST_WORK",
"PROPERTY_COST_DETAILS",
"PROPERTY_DISCOUNT_WORK",
"PROPERTY_DISCOUNT_DETAILS"
];
/**
* Фильтр лучше использовать всегда, иначе
* при ошибке будет выбор всех элементов
*/
$arFilter = [
'IBLOCK_ID' => TARGET_IBLOCK_ID,
"ACTIVE" => "Y",
];
if ( $sCode == "all-brands" )
{
$arFilter['INCLUDE_SUBSECTIONS'] = 'Y';
}
else
{
$arFilter['SECTION_CODE'] = $sCode;
}
// Массив элементов
$arItems = [];
// Получаем данные
$res = \CIBlockElement::GetList(["ID"=>"DESC"], $arFilter, false, false, $arSelect);
while( $arElement = $res->Fetch() )
{
$arElement["PREVIEW_PICTURE"] = CFile::GetPath($arElement["PREVIEW_PICTURE"]);
$arItems[ $arElement['ID'] ] = $arElement;
}
// Сохраняем данные в кеше
$cache->StartDataCache($cache_time, $cache_id, $cache_path);
$cache->EndDataCache(['sectCache'.$sCode => $arItems]);
$arReturn['data'] = $arItems;
}
else
{
$arReturn['data'] = "Модуль инфоблоков не подключен";
}
}
}
echo json_encode($arReturn);
die();
php -i | grep memory_limit
$sql = "UPDATE users SET ":
if($newPassword){
$sql .= "`password` = :newPassword, ";
}
$sql .= "`name` = :name,
`sec_name` = :sec_name,
`surname` = :surname,
`adress` = :adress,
`tel` = :tel
WHERE `email` = :email AND `password` = :password limit 1";
$salt = getSalt($email);
if (!$salt) {
return false;
}
$curPasswordMD5 = passwordHash($curPassword, $salt);
$stmt = $pdo -> prepare($sql);
$stmt->execute(
array( ":name" => $name,
":sec_name" => $sec_name,
":surname" => $surname,
":adress" => $adress,
":tel" => $tel,
":newPassword" => $newPassword['hash'],
":email" => $email,
":password" => $curPasswordMD5['hash'],
)
);
return $stmt;
} catch (Exception $e) {
exit($e->getMessage());
}
if ( isset($_POST['name']) ) {
$name = trim($_POST['name']);
if ( !empty($name) ) {
$length = strlen($name);
if ( $length < 2 ) {
$errorValidation['nameShort'] = 'Имя не должно содержать меньше 2 символов';
} elseif ( $length >= 20 ) {
$errorValidation['nameLong'] = 'Имя не должно содержать больше 20 символов';
} else {
$name = strip_tags($name);
$name = mysql_real_escape_string($name);
}
} else {
$errorValidation['nameEmpty'] = 'Поле обязательное для заполнения';
}
} else if (empty($_POST['name'])) {
$errorValidation['nameEmpty'] = 'Поле обязательное для заполнения';
}