Обновился недавно до последней версии. Появились небольшие проблемы с корзиной.
1. Пропала ссылка у картинки товара. Раньше она вела на сам товар, а сейчас там href=""
2. Было название товара (ссылка), а сейчас вместо него - пустота.
[IMG WIDTH=1010 HEIGHT=242]https://api.monosnap.com/rpc/file/download?id=zDzdOzeo8mPAKnEGYt4KSjRmhG6NZS[/IMG]
/personal/basket/index.php:[CODE]<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetTitle("Корзина");
if ($USER->IsAuthorized()) {
$rsUser = CUser::GetByID($USER->GetID());
$arUser = $rsUser->Fetch();
$street = explode('/', $arUser['PERSONAL_STREET']);
if (!is_array($street) || count($street) == 0)
unset($street);
}
$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
array(
"NAME" => "ASC",
"ID" => "ASC"
), array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"LID" => SITE_ID,
"ORDER_ID" => "NULL"
), false, false, array("ID", "CALLBACK_FUNC", "MODULE",
"PRODUCT_ID", "QUANTITY", "DELAY",
"CAN_BUY", "PRICE", "WEIGHT")
);
$price = 0;
$arProds = array();
//$weight = 0;
while ($arItems = $dbBasketItems->Fetch()) {
if (strlen($arItems["CALLBACK_FUNC"]) > 0) {
CSaleBasket::UpdatePrice($arItems["ID"], $arItems["CALLBACK_FUNC"], $arItems["MODULE"], $arItems["PRODUCT_ID"], $arItems["QUANTITY"]);
$arItems = CSaleBasket::GetByID($arItems["ID"]);
}
$arProds[] = $arItems['PRODUCT_ID'];
$price += $arItems['PRICE'] * $arItems['QUANTITY'];
$arBasketItems[] = $arItems;
// $weight += $arItems['WEIGHT'] * $arItems['QUANTITY'];
}
if (is_array($arBasketItems) && count($arBasketItems) > 0) {
$arProdArr = array();
$arSelect = Array("ID", "NAME", "DETAIL_PAGE_URL", "PREVIEW_TEXT", "PREVIEW_PICTURE", "PROPERTY_free_delivery_moscow", "PROPERTY_free_delivery_region", "PROPERTY_free_delivery_russia");
$arFilter = Array("IBLOCK_ID" => 2, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "ID" => $arProds);
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize" => 300), $arSelect);
while ($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$arProdArr[$arFields['ID']] = $arFields;
}
?>
<fo rm name="order" method="post" action="/personal/order/">
<div id="step1" class="cart_step cart_step1">
<ul class="cart_step_ul">
<li><span>1</span><div>Покупки</div></li>
<li class="no_act" style="display: list-item;"><span>2</span><div>Авторизация</div></li>
<li class="no_act" style="display: list-item;"><span>3</span><div>Доставка</div></li>
<li class="no_act" style="display: list-item;"><span>4</span><div>Оплата</div></li>
</ul>
<div class="cart_ul_clear"></div>
<div class="cart_step_content">
<table class="cart_step1_table">
<thead>
<tr><th colspan="2">Товар</th>
<th class="th3">Цена</th>
<th>Количество</th>
<th>Стоимость</th>
<th></th>
</tr></thead>
<tbody>
<? foreach ($arBasketItems as $item) { ?>
<tr>
<td class="td1"><a class="a_img" href="<?= $item['DETAIL_PAGE_URL'] ?>"><?= CFile::ShowImage($arProdArr[$item['PRODUCT_ID']]['PREVIEW_PICTURE'], 105, 105); ?></a></td>
<td class="td2"><div class="dp"><a href="<?= $item['DETAIL_PAGE_URL'] ?>"><?= $item['NAME'] ?></a></div>
<?= $arProdArr[$item['PRODUCT_ID']]['PREVIEW_TEXT'] ?>
</td>
<td class="td4">
<div class="cs_cena1"><?= FormatCurrency($item['PRICE'], 'RUB'); ?></div>
</td>
<td class="td3"><input type="text" value="<?= intval($item['QUANTITY']) ?>" rel="<?= $item['ID'] ?>" class="input_kol_vo cart_col" name="item[<?= $item['PRODUCT_ID'] ?>]"></td>
<td class="td6"><span rel="<?= $item['ID'] ?>" class="item_cost"><?= FormatCurrency($item['PRICE'] * $item['QUANTITY'], 'RUB'); ?></span></td>
<td class="td5"><a rel="<?= $item['ID'] ?>" class="cart_del" href="#"><img alt="" src="/images/cart_del.gif"></a></td>
</tr>
<? } ?>
</tbody></table>
<div class="cob_stoim">Общая стоимость: <b><span class="total_cost"><?= FormatCurrency($price, 'RUB') ?></span></b></div>
<? if ($USER->IsAuthorized()) { ?>
<a rel="auth" class="but1 step_next" href="#step3" oncl ick="$('#to_delivery').click(); location.href='#step3';" id="auth_order_btn"><span>оформить ></span></a>
<? } else { ?>
<a rel="auth" class="but1 step_next" href="#step2" id="auth_order_btn"><span>оформить ></span></a>
<? } ?>
<div class="clear"></div>
</div>
<div class="cart_step_mask" style="display: none;"></div>
</div>
<!-- step1 end -->
<div id="step2" class="cart_step cart_step2" style="display: none;">
<a name="step2"></a>
<ul class="cart_step_ul">
<li><span>2</span><div>Авторизация</div></li>
<li class="no_act" style="display: list-item;"><span>3</span><div>Доставка</div></li>
<li class="no_act" style="display: list-item;"><span>4</span><div>Оплата</div></li>
</ul>
<div class="cart_ul_clear"></div>
<div class="cart_step_content">
<table class="step2_table">
<tbody><tr>
<td><label for="email"><b>Ваша электронная почта</b></label> </td>
<td><input type="text" autocomplete="off" value="<?= $USER->GetEmail() ?>" class="lp_input1 email" id="email" name="order_email"></td>
<td style="display:none;" class="order_reg"><div style="display:none"><input type="checkbox" value="1" name="order_reg"> Зарегистрироваться с этим e-mail</div></td>
</tr>
<tr style="display:none" class="order_login">
<td><label for="passwd"><b>Ваш пароль</b></label> </td>
<td><input type="password" value="" class="lp_input1 required" id="passwd" name="order_passwd"></td>
</tr>
<tr style="display:none" class="order_regist">
<td><label for="npasswd"><b>Введите пароль</b></label> </td>
<td>
<input type="password" autocomplete="off" value="" class="lp_input1 required" id="passwd" name="new_passwd">
<input type="text" style="display:none;" autocomplete="off" value="" class="lp_input1 required" id="passwd2" name="new_passwd2">
</td>
<td><input type="checkbox" name="passwd_hide" value="1"> Показать пароль</td>
</tr>
</tbody></table>
<a class="but1 step_prev" href="#step1"><span>< вернуться к покупкам</span></a>
<a rel="delivery" class="but1 step_next" id="to_delivery" href="#step3"><span>к доставке ></span></a>
<div class="clear"></div>
</div>
<div class="cart_step_mask" style="display: none;"></div>
</div>
<!-- step2 end -->
<div id="step3" class="cart_step cart_step3" style="display: none;">
<ul class="cart_step_ul">
<li><span>3</span><div>Доставка</div></li>
<li class="no_act"><span>4</span><div>Оплата</div></li>
</ul>
<div class="cart_ul_clear"></div>
<div class="cart_step_content">
<table class="step3_table">
<tbody><tr class="tr_no_brd tr1 deliverym">
<td class="td1">Способ доставки</td>
<td class="td2">
<table>
<tr>
<td><input type="radio" name="delivery" id="delivery2" val="0" oncha nge="$('#russia_delivery').hide();$('#podm_delivery').hide();$('.delivery_plus').html(''); $('#tr_middlename').hide(); $('#middlename').removeClass('required');$('.delivery_plus_text').hide();" value="2"></td>
<td><label for="delivery2">Москва</label></td>
</tr>
<tr>
<td><input type="radio" name="delivery" id="delivery3" val="0" oncha nge="$('#podm_delivery').show(); $('#russia_delivery').hide();$('.delivery_plus').html(''); $('#tr_middlename').hide(); $('#middlename').removeClass('required');$('#moscow_region').val('default');$('.delivery_plus_text').hide();" value="podmosk"></td>
<td><label for="delivery3">Подмосковье</label></td>
</tr>
<tr>
<td><input type="radio" name="delivery" id="delivery4" val="290" oncha nge="$('#podm_delivery').hide(); $('#russia_delivery').show(); $('#tr_middlename').show(); $('#middlename').addClass('required');$('#regions').val('default');$('.delivery_plus_text').html('(до транспортной компании)');$('.delivery_plus_text').show();" value="45"></td>
<td><label for="delivery4">Россия</label></td>
</tr>
</table>
<input type="hidden" id="delivery_price" name="delivery_price" val="0"/>
<div style="display:none" id="podm_delivery">
<select id="moscow_region" onCha nge="(delivery_info.free_region == true) ? show_delivery_price(0) : get_delivery(this.value, delivery_info.weight_region);" name="city">
<option value="default" SELECTED DISABLED>Выберите расстояние от МКАД</option>
<?
$db_vars = CSaleLocation::GetList(
array(
"SORT" => "ASC",
"COUNTRY_NAME_LANG" => "ASC",
"CITY_NAME_LANG" => "ASC",
), array("LID" => LANGUAGE_ID, "COUNTRY_ID" => 1208), false, false, array()
);
while ($vars = $db_vars->Fetch()):
if (strlen(trim($vars["CITY_NAME"])) == 0)
Continue;
?>
<option value="<?= $vars["ID"] ?>"><?= $vars["CITY_NAME"] ?></option>
<?
endwhile;
?>
</select>
</div>
<?
/* <div style="display:none" id="russia_delivery">
<select id="regions" onCha nge="(delivery_info.free_russia == true) ? show_delivery_price(0) : get_delivery2(this.value, delivery_info.weight_russia, '<?= $price ?>')" name="city">
<option value="default" SELECTED DISABLED>Выберите город</option>
<?
$db_vars = CSaleLocation::GetList(
array(
"SORT" => "ASC",
"COUNTRY_NAME_LANG" => "ASC",
"CITY_NAME_LANG" => "ASC",
), array("LID" => LANGUAGE_ID, "COUNTRY_ID" => 17), false, false, array()
);
while ($vars = $db_vars->Fetch()):
if (strlen(trim($vars["CITY_NAME"])) == 0)
Continue;
?>
<option value="<?= $vars["ID"] ?>"><?= $vars["CITY_NAME"] ?></option>
<?
endwhile;
?>
</select>
</div>
/* $GLOBALS["APPLICATION"]->IncludeComponent(
'bitrix:sale.ajax.locations',
'',
array(
"AJAX_CALL" => "N",
"COUNTRY_INPUT_NAME" => "COUNTRY",
"CITY_INPUT_NAME" => 'CITY',
"CITY_OUT_LOCATION" => "Y",
"LOCATION_VALUE" => $value,
"ONCITYCHANGE" => "get_delivery()",
),
null,
array('HIDE_ICONS' => 'Y')
);
?> */ ?>
<div id="delivery_div">
</div>
</td>
</tr>
<tr>
<td class="td1">Стоимость доставки</td>
<td class="td2">
<div class="stoim_it"><span class="delivery_cost">0</span> руб. <span class="delivery_plus"></span><div class="delivery_plus_text"></div></div>
</td>
</tr>
<tr>
<td class="td1">Сумма к оплате</td>
<td class="td2"><div class="stoim_it"><span class="total_cost_del"><?= $price ?></span> руб.</div></td>
</tr>
<tr>
<?
$arCoupons = CCatalogDiscount::GetCoupons();
if (is_array($arCoupons))
$coupon = $arCoupons[0];
else
$coupon = '';
?>
<td class="td1">Купон для скидки</td>
<td class="td2"><input type="text" id="coupon-input" value="<?= $coupon ?>" autocomplete="off" class="lp_input1" name="coupon" />
<div id="coupon-text"><?
if ($arCoupons[0]) {
?>Купон будет использован<?
}
?></div>
</td>
</tr>
<? //CP-7V91M-OQ9L2WO?>
<tr>
<td style="vertical-align: top;" class="td1"><b>Способ оплаты</b></td>
<td class="td2">
<table>
<tbody>
<?
$db_ptype = CSalePaySystem::GetList($arOrder = Array("SORT" => "ASC", "PSA_NAME" => "ASC"), Array("ACTIVE" => "Y", "PERSON_TYPE_ID" => 1));
$bFirst = True;
$i = 0;
while ($ptype = $db_ptype->Fetch()) {
$i++;
//echo '<pre>'; print_r($ptype); echo '</pre>';
?>
<tr>
<td><input class="paysystem" type="radio" <? if ($bFirst) { ?>checked="checked"<? } ?> id="pay<?= $i ?>" value="<? echo $ptype["ID"] ?>" name="pay" /></td>
<?if($ptype['NAME'] == RbkMoney):?>
<td><label for="pay<?= $i ?>"><? echo $ptype["DESCRIPTION"] ?></label></td>
<?else:?>
<td><label for="pay<?= $i ?>"><? echo $ptype["PSA_NAME"] ?></label></td>
<?endif;?>
</tr>
<?
$bFirst = false;
}
?>
</tbody></table>
</td>
</tr>
<tr id="step3_sub">
<td style="width:240px;" class="td1">Получатель</td>
<td class="td2">
<table>
<tbody><tr>
<td style="width: 200px;"><label for="surname">Фамилия</label> <span class="e">*</span></td>
<td><input type="text" class="lp_input1 required" id="surname" name="surname" value="<?= $USER->GetLastName() ?>" /></td>
</tr>
<tr>
<td><label for="name">Имя</label> <span class="e">*</span></td>
<td><input type="text" class="lp_input1 required" id="name" name="name" value="<?= $USER->GetFirstName() ?>" /></td>
</tr>
<tr id="tr_middlename" style="display:none;">
<td><label for="middlename">Отчество</label> <span class="e">*</span></td>
<td><input type="text" class="lp_input1 required" id="middlename" name="middlename" value="<?= $USER->GetParam('SECOND_NAME') ?>" /></td>
</tr>
<tr>
<td><label for="phone">Номер телефона</label> <span class="e">*</span></td>
<td>
<table>
<tbody>
<tr>
<td><strong class='stoim_it'>8</strong><input type="text" class="lp_input2 required" id="code" value="<?= $arUser['PERSONAL_PHONE'] ?>" name="code"></td>
<td><input type="text" class="lp_input3 required" id="phone" value="<?= $arUser['PERSONAL_MOBILE'] ?>" name="phone"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody></table>
</td>
</tr>
<tr id="schet_tr" style="display:none;">
<td class="td1" style="width:240px;">Реквизиты компании</td>
<td class="td2">
<?
$ar_rek_val = explode('&@', $arUser['WORK_PROFILE']);
?>
<table>
<tbody><tr>
<td style="width: 200px;"><label for="company_name">Наименование компании</label></td>
<td><input type="text" class="lp_input1" id="company_name" value="<?= $ar_rek_val[0] ?>" name="company_name"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_adres">Юридический адрес</label></td>
<td><input type="text" class="lp_input1" id="company_adres" value="<?= $ar_rek_val[1] ?>" name="company_adres"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_inn">ИНН компании</label></td>
<td><input type="text" class="lp_input1" id="company_inn" value="<?= $ar_rek_val[2] ?>" name="company_inn"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_kpp">КПП компании</label></td>
<td><input type="text" class="lp_input1" id="company_kpp" value="<?= $ar_rek_val[3] ?>" name="company_kpp"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_bik">БИК</label></td>
<td><input type="text" class="lp_input1" id="company_bik" value="<?= $ar_rek_val[4] ?>" name="company_bik"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_schet">Расчётный счёт</label></td>
<td><input type="text" class="lp_input1" id="company_schet" value="<?= $ar_rek_val[5] ?>" name="company_schet"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="company_cor_schet">Корр. счёт</label></td>
<td><input type="text" class="lp_input1" id="company_cor_schet" value="<?= $ar_rek_val[6] ?>" name="company_cor_schet"></td>
</tr>
</tbody></table>
</td>
</tr>
<tr id="address_tr">
<td class="td1">Адрес доставки</td>
<td class="td2">
<table>
<tbody><tr>
<td style="width: 200px;"><label for="city">Город</label> <span class="e">*</span></td>
<td><input type="text" class="lp_input1 required" id="city" name="city" value="<?= $arUser['PERSONAL_CITY'] ?>"></td>
</tr>
<tr>
<td style="width: 200px;"><label for="street">Улица</label> <span class="e">*</span></td>
<td><input type="text" class="lp_input1 required" id="street" value="<?= $street[0] ?>" name="a_str"></td>
</tr>
<tr>
<td>Дом <span class="e">*</span></td>
<td>
<table class="house_numb">
<tbody><tr>
<td><input type="text" class="lp_input2 required" id="a_dom" value="<?= $street[1] ?>" name="a_dom"></td>
<td><input type="text" class="lp_input2" id="a_cor" value="<?= $street[2] ?>" name="a_cor"></td>
<td><input type="text" class="lp_input2" id="a_pod" value="<?= $street[3] ?>" name="a_pod"></td>
<td><input type="text" class="lp_input2" id="a_eta" value="<?= $street[4] ?>" name="a_eta"></td>
<td><input type="text" class="lp_input2" id="a_kva" value="<?= $street[5] ?>" name="a_kva"></td>
</tr>
<tr>
<td><div class="std_podp"><label for="a_dom">номер</label></div></td>
<td><div class="std_podp"><label for="a_cor">корпус</label></div></td>
<td><div class="std_podp"><label for="a_pod">подъезд</label></div></td>
<td><div class="std_podp"><label for="a_eta">этаж</label></div></td>
<td><div class="std_podp"><label for="a_kva">квартира</label></div></td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td>Дополнительная информация<br><div style="color: #cccccc; font-size: 12px; font-family: Arial;">дверной замок, код, домофон, и т.п.</div> </td>
<td>
<textarea class="step_area1" name="desc"><?= $arUser['PERSONAL_NOTES'] ?></textarea>
</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<a class="but1 step_prev" href="#step2"><span>< вернуться к авторизации</span></a>
<a rel="order" class="but1 step_next" href="#step4"><span>заказать ></span></a>
<div class="clear"></div>
</div>
<div class="cart_step_mask"></div>
</div>
<!-- step3 end -->
<div id="step4" class="cart_step cart_step4">
<ul class="cart_step_ul">
<li><span>4</span><div>Оплата</div></li>
</ul>
<div class="cart_ul_clear"></div>
<div class="cart_step_content">
<table class="step4_table">
<tbody><tr>
<td class="td1">Сумма заказа</td>
<td class="td2"><span><span class="total_cost">17 600</span>,-</span></td>
</tr>
<tr>
<td class="td1">Стоимость доставки</td>
<td class="td2">бесплатно</td>
</tr>
<tr>
<td class="td1">Сумма к оплате</td>
<td class="td2"><span><span class="total_cost">17 600</span>,-</span></td>
</tr>
<tr>
<td style="vertical-align: top;" class="td1"><b>Способ оплаты</b></td>
<td class="td2">
<table>
<tbody><tr>
<td><input type="radio" id="op_rad1" name="5"></td>
<td><label for="op_rad1">наличными</label></td>
</tr>
<tr>
<td><input type="radio" id="op_rad2" name="5"></td>
<td><label for="op_rad2">в кредит</label></td>
</tr>
<tr>
<td><input type="radio" id="op_rad3" name="5"></td>
<td><label for="op_rad3">банковским переводом (для физических лиц)</label></td>
</tr>
<tr>
<td><input type="radio" id="op_rad4" name="5"></td>
<td><label for="op_rad4">подарочной картой</label></td>
</tr>
<tr>
<td><input type="radio" id="op_rad5" name="5"></td>
<td><label for="op_rad5">электронными деньгами</label></td>
</tr>
<tr>
<td><input type="radio" id="op_rad6" name="5"></td>
<td><label for="op_rad6">пластиковой картой</label></td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
<a class="but1 step_prev" href="#step3"><span>< вернуться к доставке</span></a>
<a rel="order" class="but1 step_next" href="#"><span>оформить заказ ></span></a>
<div class="clear"></div>
</div>
<div class="cart_step_mask"></div>
</div>
<div class="clear"></div>
</form>
<sc ript type="text/javascript">
$("input[name=passwd_hide]").change(function(){
if($(this).attr('checked')==false){
$("input[name=new_passwd]").show();
$("input[name=new_passwd2]").hide();
}else{
$("input[name=new_passwd2]").show();
$("input[name=new_passwd]").hide();
}
});
$("input[name=new_passwd]").keyup(function(){
$("input[name=new_passwd2]").val($(this).val());
});
$("input[name=new_passwd2]").keyup(function(){
$("input[name=new_passwd]").val($(this).val());
});
$(".delivery_cost").html(number_format($(".delivery_cost").html(),0,'',' '));
$(".total_cost_del").html(number_format($(".total_cost_del").html(),0,'',' '));
</sc ript>
<? } else { ?>
<? ShowError('Ваша корзина пуста'); ?>
<? } ?>
<? if ($_REQUEST['auth']) { ?>
<sc ript>
$(function(){
$('#auth_order_btn').click();
<? if ($USER->IsAuthorized()) { ?>
$('#to_delivery').click();
<? } ?>
});
</sc ript>
<? } ?>
<? require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php"); ?>
[/CODE]