Tìm kiếm nhanh

[NukeViet 4.1] Xử lý JavaScript khi nâng cấp lên bản mới

Thảo luận trong 'Cài Đặt - Nâng Cấp' đăng bởi anhyeuviolet, 09/10/2016 21:12.

  • anhyeuviolet

    anhyeuviolet Kenny Nguyen

    Xin chào !

    NukeViet 4.1 Beta được công bố cùng với nhiều nâng cấp đáng giá.

     

    Tuy vậy còn một số khó khăn nhỏ tồn tại khiến cho các Webmaster thấy ngấy ...

    Từ kinh nghiệm của bản thân thì sau khi nâng cấp NukeViet lên 4.1, cùng với việc jQuery được nâng lên tầm cao mới ( 3.x.x) thì nhiều plugin JavaScript (JS) chết không kịp trối.

    Chính đến file main.js của NukeViet cũng không được viết lại cho chuẩn mực (hệ quả là phần gọi lib JS của Facebook, G+ và Twitter bị hỏng) nên nhiều plugin slider cũng tèo.

     

    Mình có một biện pháp tình thế giải quyết các vấn đề trên, nếu bạn nào vẫn đang gặp rắc rối thì có thể xem thêm.

    +++ Ghi chú 1:

    Đây là bài viết từ kinh nghiệm cá nhân. Do đó không dám chắc 100% plugin của bạn sẽ hồi sinh.

    +++ Ghi chú 2:

    Hãy đảm bảo bạn đã hoàn tất các phần sửa giao diện được khuyến cáo từ NukieViet.

    => https://github.com/nukeviet/update#ch%E1%BB%89nh-s%E1%BB%ADa-t%C6%B0%C6%A1ng-th%C3%ADch-jquery-3

     

    Phương thức:

    Chúng ta gọi thêm 1 file JavaScript khác, gọi là jQuery Migrate. Plugin này cho phép các API, hàm đã bị loại bỏ khỏi jQuery 3 có thể được dùng tiếp.

    Mục đích mình hướng đến là gọi plugin này trên toàn bộ Website. Các bạn có thể xem và chỉ gọi tại một số khu vực tuỳ ý cũng không sao.

     

    +++ jQuery 3 migrate:

    Bạn có thể dùng CDN từ link sau hoặc dowload về và đặt trong /themes/theme_dang_dung/js/

    => https://github.com/jquery/jquery-migrate

     

    Hoặc dùng CDN:

    
    <script src="https://code.jquery.com/jquery-migrate-3.0.0.js"></script>

    Ý kiến của mình thì nên tải file này về và lưu trong web của bạn để đảm bảo an toàn cũng như tốc độ tải trang.

    Sau đó ta tiến hành sửa theme.

     

     

    Cách 1: chỉnh sửa theme.php của theme đang dùng.

    Hãy mở /themes/theme_dang_dung/theme.php

    Tìm dòng sau:

        $html_js = nv_html_site_js(false);
        $html_js[] = array(
            'ext' => 1,
            'content' => NV_BASE_SITEURL . 'themes/' . $global_config['module_theme'] . '/js/main.js'
        );
    

    Giả như các bạn đã tải file bên trên về và lưu tại thư mục js của theme đang dùng. Ta sẽ thêm vào bên dưới nó như sau:

        $html_js[] = array(
            'ext' => 1,
            'content' => NV_BASE_SITEURL . 'themes/' . $global_config['module_theme'] . '/js/jquery-migrate-3.0.0.js'
        );
    

    Cách 2: chỉnh sửa header_only.tpl của theme đang dùng.

     

    Chúng ta cũng có thể gọi file này thông qua cách truyền thống, gọi JS từ trước thẻ </head>
    Hãy mở /themes/theme_dang_dung/layout/header_extend.tpl

    Tìm dòng:

    		<!-- BEGIN: js -->
    		<script<!-- BEGIN: ext --> src="{JS_SRC}"<!-- END: ext -->><!-- BEGIN: int -->{JS_CONTENT}<!-- END: int --></script>
    		<!-- END: js -->
    

    Hãy thêm vào bên dưới nó:

    <script src="https://code.jquery.com/jquery-migrate-3.0.0.js"></script>

    Phần src, các bạn nên điều chỉnh cho phù hợp với đường dẫn file migrate hiện tại của site mình.

    Nếu làm đúng, khi kiểm tra bằng Console của Website, bạn sẽ thấy 1 thông báo nhỏ nữa:

     

    Hoặc đơn giản hơn là khởi chạy Website và thấy các slider hoạt động là được.

     

    Chúc các bạn thành công !

     
    hoanglongvnpt thích điều này.
  • hoangvtien

    hoangvtien hoang tiến

    Xin nhờ bác anhyeuviolet giúp em mấy đoạn js trong module diemthitn mà đã nâng cấp php tạm rồi nhưng đến đoạn load ajax tìm kiếm sửa kiểu gì cũng không load ajax tìm kiếm được. Anh có thể bỏ chút thời gian xem giúp em chút. Cảm ơn anh trước!

     

    Tệp đính kèm:

Chia sẻ trang này

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây