<?
$arFilter = array(
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"ACTIVE" => "Y",
"GLOBAL_ACTIVE" => "Y",
);
if (0 < intval($arResult["VARIABLES"]["SECTION_ID"])) {
$arFilter["ID"] = $arResult["VARIABLES"]["SECTION_ID"];
}
elseif ('' != $arResult["VARIABLES"]["SECTION_CODE"]) {
$arFilter["=CODE"] = $arResult["VARIABLES"]["SECTION_CODE"];
}
$obCache = new CPHPCache();
if ($obCache->InitCache(36000, serialize($arFilter), "/iblock/catalog")) {
$arCurSection = $obCache->GetVars();
} elseif ($obCache->StartDataCache()) {
$arCurSection = array();
if (Loader::includeModule("iblock")) {
$dbRes = CIBlockSection::GetList(array(), $arFilter, false, array("ID"));
if(defined("BX_COMP_MANAGED_CACHE")) {
global $CACHE_MANAGER;
$CACHE_MANAGER->StartTagCache("/iblock/catalog");
if ($arCurSection = $dbRes->Fetch()) {
$CACHE_MANAGER->RegisterTag("iblock_id_".$arParams["IBLOCK_ID"]);
}
$CACHE_MANAGER->EndTagCache();
} else {
if(!$arCurSection = $dbRes->Fetch()) {
$arCurSection = array();
}
}
}
$obCache->EndDataCache($arCurSection);
}
if (!isset($arCurSection)) {
$arCurSection = array();
}
$APPLICATION->IncludeComponent(
"bitrix:catalog.smart.filter",
".default",
array(
"PREFILTER_NAME" => $arParams["FILTER_NAME"],
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"SECTION_ID" => '0',
"FILTER_NAME" => $arParams["FILTER_NAME"],
"PRICE_CODE" => $arParams["PRICE_CODE"],
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"SAVE_IN_SESSION" => "N",
"FILTER_VIEW_MODE" => $arParams["FILTER_VIEW_MODE"],
"XML_EXPORT" => "Y",
"SECTION_TITLE" => "NAME",
"SECTION_DESCRIPTION" => "DESCRIPTION",
'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
"TEMPLATE_THEME" => $arParams["TEMPLATE_THEME"],
'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'],
'CURRENCY_ID' => $arParams['CURRENCY_ID'],
"SEF_MODE" => $arParams["SEF_MODE"],
"PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
"SEF_RULE" => '/catalog/filter/#SMART_FILTER_PATH#/apply/',
"SMART_FILTER_PATH" => $arResult["VARIABLES"]["SMART_FILTER_PATH"],
'SHOW_ALL_WO_SECTION'=>'Y',
),
$component,
array('HIDE_ICONS' => 'Y')
);
?>
В примере выше видно принципиальное преимущество объектной модели перед массивами. Несмотря на то, что фактически выбрано две записи (для одного Издателя нашлось две книги), по факту из результата получается только один объект. Система самостоятельно распознала этот случай и склеила все книги издателя в одну Коллекцию.
$objListOfDoctors = ElementDoctorsAPITable::getList([
'select' => [
'ID',
'NAME',
'SERVICESLIST.ELEMENT',
],
'filter' => ['ID' => $arParams['LIST_OF_DOCTOR'], 'ACTIVE' => 'Y'],
'order' => ['DATE_CREATE' => 'ASC'],
])->fetchCollection();
foreach ($objListOfDoctors as $doctor) {
foreach ($doctor->getServiceslist() as $service) {
var_dump($service->getElement()->getId());
var_dump($service->getElement()->getName());
...
}
// или
var_dump($doctor->getServiceslist()->getIdList());
}
\Bitrix\Main\ORM\Query\QueryHelper::decompose()
var s = "36.000";
console.log(typeof s); // string
var n = +s;
console.log(typeof n); // number
console.log(n); // 36 нули после точки и не будет показывать – зачем
// показать ровно X позиций числа после точки:
var formatted = n.toFixed(3);
console.log(formatted); // 36.000 но это опять строка!
console.log(typeof formatted); // string
а результаты поиска отображаются во всплывающем окне прямо под компонентом поиска- вы имеете ввиду подсказки?
if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) {
$asset = \Bitrix\Main\Page\Asset::getInstance();
$asset->addCss('/local/css/admin/style.css');
$asset->addJs('/local/js/admin/admin.js');
}
from PIL import Image, ImageEnhance
import cv2
import numpy as np
def get_rectangle(path):
image = Image.open(path)
scale_value = 2
image = ImageEnhance.Contrast(image).enhance(scale_value)
image = image.crop((
50, 0,
image.width, image.height
))
image = np.array(image)
image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
image = cv2.GaussianBlur(image, (5, 5), cv2.BORDER_DEFAULT)
mid = np.mean(image)
_, thresh = cv2.threshold(
image, mid//2.2, mid,
cv2.THRESH_BINARY_INV
)
thresh = cv2.cvtColor(thresh, cv2.COLOR_BGR2GRAY)
contours, _ = cv2.findContours(
thresh,
cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE
)
# перебираем все найденные контуры в цикле
for cnt in sorted(contours, key=lambda x: x[0][0][0]):
rect = cv2.minAreaRect(cnt) # пытаемся вписать прямоугольник
box = cv2.boxPoints(rect) # поиск четырех вершин прямоугольника
box = np.int0(box) # округление координат
area = int(rect[1][0]*rect[1][1]) # вычисление площади
angle = rect[-1]
ratio = max(rect[1][1], rect[1][0])/min(rect[1][1], rect[1][0]) if area else 0
if (400 < area < 10000) and (-5 < angle < 5 or 85 < angle < 95) and ratio < 1.5:
cv2.drawContours(image, [box], 0, (255, 0, 0), 2) # рисуем прямоугольник
cv2.imshow('image', image) # вывод обработанного кадра в окно
cv2.imshow('thresh', thresh)
cv2.waitKey(1)
input()
cv2.destroyAllWindows()
return box[0][0] + 50
return None
for i in range(1, 13):
x = get_rectangle(f'images\\{i}.png')
function myFetch(params){
return new Promise(function(resolve, reject){
const xhr = new XMLHttpRequest();
xhr.open(params.method, params.url, true);
xhr.send();
xhr.addEventListener('readystatechange', function(e){
if( xhr.readyState != 4 ) return;
if( xhr.status == 200 ){
resolve( xhr.responseText );
} else{ reject( xhr.statusText ); }
});
}
myFetch(//parameters...).then(//...... код который у Вас в then).
.block-extra-options {
flex: 1 0 100%;
}
############################################################################
#### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3 ####
############################################################################
RewriteEngine On
# Директива включает редиректы.
RewriteBase /
# Без директивы (.*) = /$1 будет /var/wwww/site/web/$1 с директивой = /$1
Options +FollowSymLinks
# Разрешает переход по символическим ссылкам.
############################################################################
#### Перенаправляем протокол https на http ####
############################################################################
RewriteCond %{HTTPS} on
# Проверяем наличие https в URL.
RewriteRule ^.*$ http://%{SERVER_NAME}%{REQUEST_URI}
# Перенаправляем протокол на http.
############################################################################
#### Выбор основного зеркала (или с www или без www) ####
############################################################################
# 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
#RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# Проверяем, содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# Перенаправляем URL на домен без www.
####
# 2. Редирект без www на www. (раскоментировать директивы пункта 2)
#RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
# Проверяем, не содержит ли домен www (в начале URL).
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Перенаправляем URL на домен c www.
############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule . %1/%2 [R=301,L]
# Исключаем все лишние слеши.
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку) ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$
# Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d
# И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
# Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$
# И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Исключить слеш.
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл. ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
# Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
# Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
# В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
# Добавляем слеш в конце.
############################################################################
#### Убираем index.php, если он есть в конце URL ####
############################################################################
RewriteCond %{REQUEST_METHOD} =GET
# Выявляем GET запрос в URL (не POST).
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
# URL cодержит index.php в конце.
RewriteRule ^(.*)$ %1/ [R=301,L]
# Удалить index.php из URL.
############################################################################
#### Конец общей части, далее следует собственные директивы .htaccess ####
############################################################################