Viet Truong đã viết: 
Hiện tại, block giỏ hàng của module shop Nukeviet 4.3 chỉ có thể load 1 lần và chỉ tại 1 vị trí, nếu bạn cài thêm 1 vị trí khác sẽ bị lỗi header dẫn đến tình trạng vỡ giao diện, có thể treo máy do vòng lặp loadcart.
Có 2 cách giải quyết:
* Cách 1: Nhân đôi block hiện có.
- Copy global.block_cart.php trong thư mục /modules/shops/blocks để tạo ra block giỏ hàng mới đặt tên là global.block_cart2.php.
- Mở file này lên tìm nv_cart_info
thay thế bằng nv_cart_info2
, tìm cart_
thay thế bằng cart2_
, tìm loadcart
thay thế bằng loadcart2
.
- Copy loadcart.php trong thư mục /modules/shops/funcs đổi tên thành loadcart2.php.
- Mở file này lên tìm block.cart.tpl
thay thế bằng block.cart2.tpl
- Trong thư mục /themes/default/modules/shops, copy block.cart.tpl đổi tên thành block.cart2.tpl.
Đến đây bạn vẫn chưa thể chạy block được vì mặc định module shops khi cài đặt chỉ hiểu các funcs hiện có trong thư mục funcs. Muốn chạy được function loadcart2 bắt buộc bạn phải cài đặt lại module shops theo thao tác: Quản lý modules - Chọn module shops - Cài lại.
Trước khi cài lại bạn cần backup toàn bộ dữ liệu của module shops hiện có, backup cả thư mục /uploads/shops và /assets/shops. Sau khi tiến hành cài lại xong module shops với chức năng loadcart2, bạn chỉ việc restore dữ liệu đã backup là xong.
* Cách 2: Thêm biến vị trí cho block hiện có.
Bước 1: Mở global.block_cart.php trong thư mục /modules/shops/blocks, tìm:
if (! function_exists('nv_cart_info')) {
thêm ngay bên dưới:
function nv_block_config_cart($module, $data_block, $lang_block)
{
global $nv_Cache, $db_config, $site_mods;
$html .= '
';
return $html;
}
function nv_block_config_cart_submit($module, $lang_block)
{
global $nv_Request;
$return = array();
$return['error'] = array();
$return['config'] = array();
$return['config']['area'] = $nv_Request->get_string('config_area', 'post', '');
return $return;
}
- Tìm tiếp
$module = $block_config['module'];
thêm ngay bên dưới:
$area = $block_config['area'];
- Tìm tiếp
cart_' . $module . '
thay bằng
cart_' . $module . '_' . $area . '
- Tìm tiếp loadcart&coupons_check=1
thay thế bằng loadcart&area=" . $area . "&coupons_check=1
.
Bước 2:
tạo file global.block_cart.ini trong thư mục /modules/shops/blocks với nội dung:
Block Cart
VinaDes.,Jsc
http://vinades.vn
nv_block_config_cart
nv_block_config_cart_submit
Vị trí
Bước 3: Mở loadcart.php trong thưc mục /modules/shops/funcs.
- Tìm $coupons_code = $nv_Request->get_title('coupons_code', 'get', '');
thêm vào bên dưới $area = $nv_Request->get_title('area', 'get', '');
.
- Tìm block.cart.tpl
thay thế bằng block.cart_" . $area . ".tpl
.
Bước 4: Trong thư mục /themes/default/modules/shops, copy block.cart.tpl ra thành 2 file: block.cart_area_1.tpl và block.cart_area_2.tpl.
Bạn cũng có thể thêm vào nhiều vị trí hơn bằng cách thêm biến area_x vào những chỗ có area_1, area_2 đã highlight trong phần trên.
Chúc các bạn thành công.
Theo cách 2, bạn có thể tải file làm sẵn tại đây. Lưu ý, backup lại file loadcart.php trước khi sử dụng.
Demo: xem tại đây. Điều chỉnh kích cỡ màn hình từ lớn đến nhỏ để xem được 2 vị trí giỏ hàng.