- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Trong bài viết này chúng ta sẽ sửa lỗi cấu hình slider trong Prestashop ‘unable to save settings’ trong khi lưu cấu hình của Prestashop slider (homeslider).
Rất nhiều người dùng đã phát hiện lỗi này khi họ sửa cài đặt slider trong Prestashop sử dụng Prestashop 1.6. Mình đã quyết định đầu tư thời gian một chút và tìm ra nguyên nhân gây ra lỗi này do nhiều thành phần trong bảng ps_configuration. Làm sao để sử lý chúng? tôi cố gắng sửa các options thuộc về slider có lưu trong bảng ‘ps_configuration’.
Như bạn thấy, phần khung đỏ đã bị trùng nhau tất các options được thiết lập cho slider. shop_id=1 trong khi các options khác thì không gắn vào shop nào. Nó thực sự khó hiểu, hãy xem điều gì xẩy ra nếu chúng reset lại module. Vậy tại sao các options đó mà không hoạt động, nó có phải nguyên nhân do shop id không?
Để lý giải rõ ràng vấn đề này, chúng ta sẽ truy cập lại cấu hình bằng cách sửa trực tiếp file ‘homeslider.php’. Đầu tiên, chúng ta sẽ mở file homeslider.php nằm trong thư mục ‘modules/homeslider’ và tìm tới dòng:
$slider = array( 'width' => Configuration::get('HOMESLIDER_WIDTH'), 'speed' => Configuration::get('HOMESLIDER_SPEED'), 'pause' => Configuration::get('HOMESLIDER_PAUSE'), 'loop' => (bool)Configuration::get('HOMESLIDER_LOOP'), );
Bạn có thể nhận thấy không có dữ liệu liên kết vào shop id hoặc group, và điều đó gây ra dữ liệu chồng chéo trong bảng configuration. Sửa lại như sau:
$slider = array( 'width' => Configuration::get('HOMESLIDER_WIDTH', null, $this->context->shop->getGroup(), $this->context->shop->id), 'speed' => Configuration::get('HOMESLIDER_SPEED', null, $this->context->shop->getGroup(), $this->context->shop->id), 'pause' => Configuration::get('HOMESLIDER_PAUSE', null, $this->context->shop->getGroup(), $this->context->shop->id), 'loop' => (bool)Configuration::get('HOMESLIDER_LOOP', null, $this->context->shop->getGroup(), $this->context->shop->id), );
Lưu lại và kiểm tra. Dường như vẫn thấy lỗi trên website, khi mở lại nội dung bảng CSDL các giá trị chưa chính xác. Còn có một phương thức khác bạn cũng cần sửa đổi lại “getConfigFieldsValues“. Tìm tiếp tới dòng:
return array( 'HOMESLIDER_WIDTH' => Tools::getValue('HOMESLIDER_WIDTH', Configuration::get('HOMESLIDER_WIDTH')), 'HOMESLIDER_SPEED' => Tools::getValue('HOMESLIDER_SPEED', Configuration::get('HOMESLIDER_SPEED')), 'HOMESLIDER_PAUSE' => Tools::getValue('HOMESLIDER_PAUSE', Configuration::get('HOMESLIDER_PAUSE')), 'HOMESLIDER_LOOP' => Tools::getValue('HOMESLIDER_LOOP', Configuration::get('HOMESLIDER_LOOP')), );
Cũng sửa giống như trên.
return array( 'HOMESLIDER_WIDTH' => Tools::getValue('HOMESLIDER_WIDTH', Configuration::get('HOMESLIDER_WIDTH', null, $this->context->shop->getGroup(), $this->context->shop->id)), 'HOMESLIDER_SPEED' => Tools::getValue('HOMESLIDER_SPEED', Configuration::get('HOMESLIDER_SPEED', null, $this->context->shop->getGroup(), $this->context->shop->id)), 'HOMESLIDER_PAUSE' => Tools::getValue('HOMESLIDER_PAUSE', Configuration::get('HOMESLIDER_PAUSE', null, $this->context->shop->getGroup(), $this->context->shop->id)), 'HOMESLIDER_LOOP' => Tools::getValue('HOMESLIDER_LOOP', Configuration::get('HOMESLIDER_LOOP', null, $this->context->shop->getGroup(), $this->context->shop->id)), );
Và đó là chắc chắn đã giải quyết được vấn đề.
Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype