"SEF_URL_TEMPLATES" => array(
"element" => "#CODE#/",
"articles" => "#CODE#/articles/",
"articles2" => "#CODE#/articles2/",
"articles3" => "#CODE#/articles3/",
),
// ...............
"SEF_MODE" => Array(
"element" => array(
"NAME" => GetMessage("T_IBLOCK_SEF_PAGE_NEWS_DETAIL"),
"DEFAULT" => "#CODE#/",
"VARIABLES" => array("CODE"),
),
"articles" => array(
"NAME" => "Страница связанных articles",
"DEFAULT" => "search/",
"VARIABLES" => array(),
),
"articles2" => array(
"NAME" => "Страница связанных articles2",
"DEFAULT" => "search/",
"VARIABLES" => array(),
),
"articles3" => array(
"NAME" => "Страница связанных articles3",
"DEFAULT" => "search/",
"VARIABLES" => array(),
),
),
// ................
в конце по вкусу можно добавить, что-то типа
if($arCurrentValues["SEF_MODE"]=="Y")
{
$arComponentParameters["PARAMETERS"]["VARIABLE_ALIASES"] = array();
$arComponentParameters["PARAMETERS"]["VARIABLE_ALIASES"]["CODE"] = array(
"NAME" => GetMessage("CP_BC_VARIABLE_ALIASES_ELEMENT_ID"),
"TEMPLATE" => "#CODE#",
);
}
$arDefaultUrlTemplates404 = array(
"news" => "",
"element" => "#CODE#/",
);
//Numbers && calendar == ranges
if (
$arItem["PROPERTY_TYPE"] == "N"
|| $arItem["DISPLAY_TYPE"] == "U"
)
{
if (strlen($arItem["VALUES"]["MIN"]["HTML_VALUE"]) > 0)
$smartPart["from"] = $arItem["VALUES"]["MIN"]["HTML_VALUE"];
if (strlen($arItem["VALUES"]["MAX"]["HTML_VALUE"]) > 0)
$smartPart["to"] = $arItem["VALUES"]["MAX"]["HTML_VALUE"];
}
else
{
foreach($arItem["VALUES"] as $key => $ar)
{
if (
(
$ar["CHECKED"]
|| $ar["CONTROL_ID"] === $checkedControlId
)
&& strlen($ar["URL_ID"])
)
{
$smartPart[] = $ar["URL_ID"];
}
}
}
public function searchValue($item, $lookupValue)
{
$error = "";
$searchValue = \Bitrix\Main\Text\Encoding::convertEncoding($lookupValue, LANG_CHARSET, "utf-8", $error);
if (!$error)
{
$encodedValue = rawurlencode($searchValue);
foreach($item as $itemId => $arValue)
{
$convertValue = \Bitrix\Main\Text\Encoding::convertEncoding($arValue['VALUE'], LANG_CHARSET, "utf-8", $error);
if ($encodedValue === rawurlencode($convertValue))
return $itemId;
}
}
return false;
}
\Bitrix\Main\Loader::includeModule('sale');
global $USER;
$userId = $USER->GetID();
$productId = 45;
$order = \Bitrix\Sale\Order::getList([
'select' => ['ID'],
'filter' => ['USER_ID' => $userId, 'BASKET.PRODUCT_ID' => $productId],
'limit' => 1
])->fetch();
К вопросу привязывается ответ через свойство элемента
К вопросу я могу привязать ответы, а к ответу вопрос?
Мне нужно реализовать привязку ответа к вопросу.
if($arResult['DETAIL_TEXT']) {
$arPrices = $aSearch = $aReplace = array();
preg_match_all('/#PRICE_\d#/', $arResult['DETAIL_TEXT'], $matches);
if($matches[0]) {
$iterator = \Bitrix\Catalog\PriceTable::getList([
'select' => ['CATALOG_GROUP_ID', 'PRICE', 'CURRENCY'],
'filter' => ['PRODUCT_ID' => $arResult['ID']]
]);
while($row = $iterator->fetch()) {
$arPrices[$row['CATALOG_GROUP_ID']] = CCurrencyLang::CurrencyFormat($row['PRICE'], $row['CURRENCY']);
}
$aSearch = $matches[0];
foreach($aSearch as $key => $str) {
$priceId = str_replace(['#', 'PRICE_'], '', $str);
$aReplace[$key] = $arPrices[$priceId];
}
$arResult['DETAIL_TEXT'] = str_replace($aSearch, $aReplace, $arResult['DETAIL_TEXT']);
}
}
foreach($arResult as $key => &$arItem) {
if(isset($arItem['PARAMS']['PARENT']) && $arItem['PARAMS']['PARENT']) {
$parents[$arItem['PARAMS']['PARENT']] = &$arItem;
}
if(isset($arItem['PARAMS']['CHILD']) && $arItem['PARAMS']['CHILD']) {
$parents[$arItem['PARAMS']['CHILD']]['CHILDS'][$key] = $arItem;
unset($arResult[$key]);
}
}
foreach($arElements as $arElement)
if(isset($this->arResult['PROPERTY_ID_LIST']) && $this->arResult['PROPERTY_ID_LIST']) {
$propertiesList = array();
foreach($this->arResult['PROPERTY_ID_LIST'] as $propertyId) {
$dbRes = CIBlockPropertyEnum::GetList(array('ID' => 'ASC'), array('PROPERTY_ID' => $propertyId));
while($arRes = $dbRes->Fetch()) {
$this->fillItemValues($arResult['ITEMS'][$arRes['PROPERTY_ID']], $arRes['ID']);
}
}
}
<InputMask mask="9" onkeyup="testJump(this);" maxlength="1" alwaysShowMask type="text" />
<input type="text" onInput={e => testJump(e.target)} maxLength="1" />
$.ajax({
url: '/bitrix/templates/dveri/ajax/basket.php'
$.get('/bitrix/templates/dveri/ajax/count_basket.php').done(function(data){
$.ajax({
//.............
async: false,
//.............
//.............
$("#send").on("click", async function () {
//.............
await $.ajax({
//.............
await $.get('/bitrix/templates/dveri/ajax/count_basket.php').done(function(data){
//.............
arFields
Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где "код свойства" - числовой или символьный код свойства, "значение свойства" - одиночное значение, либо массив значений если свойство множественное
$arLoadProductArray = Array(
//........................
"SPRAV" => $arResult["ID"], // отзыв клиента
//........................
$arLoadProductArray = Array(
//........................
"PROPERTY_VALUES" => array(
"SPRAV" => $arResult["ID"]
),
//........................
$arLoadProductArray = Array(
//........................
"PROPERTY_VALUES" => array(
"SPRAV" => array($arResult["ID"])
),
//........................
а если хочу с порядковым номером то ?
"ELEMENT_NAME" => array(
"VALUE" => $arResult["NAME"],
"AUTOCOMPLETE" => "Y"
)
foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion)
{
if(isset($arParams[$FIELD_SID]) && $arParams[$FIELD_SID]['VALUE'] && $arParams[$FIELD_SID]['AUTOCOMPLETE'] == 'Y') {
$arQuestion['HTML_CODE'] = str_replace('name=', 'value="'.$arParams[$FIELD_SID]['VALUE'].'" name=', $arQuestion['HTML_CODE']);
}