<!DOCTYPE html>
    <html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
    <head>
<title>Hướng dẫn nâng cấp giao diện từ NukeViet 4.4.02 lên NukeViet 4.5.00</title>
<meta name="description" content="Hướng dẫn sử dụng lập trình Nukeviet">
<meta name="keywords" content="lập trình nukeviet">
<meta name="news_keywords" content="lập trình nukeviet">
<meta name="author" content="Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet">
<meta name="copyright" content="Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet [nukeviet@tms.vn]">
<meta name="generator" content="NukeViet v4.5">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Hướng dẫn nâng cấp giao diện từ NukeViet 4.4.02 lên NukeViet 4.5.00">
<meta property="og:type" content="website">
<meta property="og:description" content="Hướng dẫn sử dụng lập trình Nukeviet">
<meta property="og:site_name" content="Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet">
<meta property="og:image" content="https://nukevietnam.com/uploads/web-designing-company-1407927.jpg">
<meta property="og:image:url" content="https://nukevietnam.com/uploads/web-designing-company-1407927.jpg">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="1263">
<meta property="og:image:height" content="629">
<meta property="og:image:alt" content="Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet">
<meta property="og:url" content="https://nukevietnam.com/huong-dan/savefile/cai-dat-cap-nhat-nukeviet/huong-dan-nang-cap-giao-dien-tu-nukeviet-4-4-02-len-nukeviet-4-5-00-31.html">
<link rel="shortcut icon" href="https://nukevietnam.com/favicon.ico">
<link rel="canonical" href="https://nukevietnam.com/huong-dan/savefile/cai-dat-cap-nhat-nukeviet/huong-dan-nang-cap-giao-dien-tu-nukeviet-4-4-02-len-nukeviet-4-5-00-31.html">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/" title="Hướng dẫn sử dụng lập trình Nukeviet" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/loi-thuong-gap-nukeviet/" title="Hướng dẫn sử dụng lập trình Nukeviet - Lỗi thường gặp" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/van-hanh-quan-tri/" title="Hướng dẫn sử dụng lập trình Nukeviet - Vận hành - Quản trị" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/thiet-ke-giao-dien-rip-theme-nukeviet/" title="Hướng dẫn sử dụng lập trình Nukeviet - Giao diện" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/cai-dat-cap-nhat-nukeviet/" title="Hướng dẫn sử dụng lập trình Nukeviet - Cài đặt - Cập nhật" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/lap-trinh-nukeviet/" title="Hướng dẫn sử dụng lập trình Nukeviet - Lập trình nukeviet" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/cau-hinh-website/" title="Hướng dẫn sử dụng lập trình Nukeviet - Cấu hình website" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/module-tin-tuc/" title="Hướng dẫn sử dụng lập trình Nukeviet - Module tin tức" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/module-san-pham/" title="Hướng dẫn sử dụng lập trình Nukeviet - Module sản phẩm" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/module-lien-he/" title="Hướng dẫn sử dụng lập trình Nukeviet - Module liên hệ" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/giao-dien-block/" title="Hướng dẫn sử dụng lập trình Nukeviet - Giao diện - Block" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/phan-mem-may-chu/" title="Hướng dẫn sử dụng lập trình Nukeviet - Phần mềm máy chủ" type="application/rss+xml">
<link rel="alternate" href="https://nukevietnam.com/huong-dan/rss/directadmin/" title="Hướng dẫn sử dụng lập trình Nukeviet - Directadmin" type="application/rss+xml">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/language/vi.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/global.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/site.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://nukevietnam.com/themes/default/js/huong-dan.js" type="text/javascript">
<link rel="preload" as="script" href="https://nukevietnam.com/themes/default/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://nukevietnam.com/themes/default/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/swiper.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/tms_menu.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.googletagmanager.com/gtag/js?id=G-RB45N968LV" type="text/javascript">
<link rel="preload" as="script" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/bootstrap.min.js" type="text/javascript">
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/css/bootstrap.min.css" type="text/css">
<link rel="preload" as="style" href="https://nukevietnam.com/themes/default/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://nukevietnam.com/themes/default/css/style.responsive.css" type="text/css">
<link rel="preload" as="style" href="https://nukevietnam.com/themes/default/css/huong-dan.css" type="text/css">
<link rel="preload" as="style" href="https://nukevietnam.com/themes/default/css/custom.css" type="text/css">
<link rel="preload" as="style" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/css/swiper.css" type="text/css">
<link rel="preload" as="style" href="https://nukevietnam.com/themes/default/css/tms_menu.css" type="text/css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/css/bootstrap.min.css">
<link rel="stylesheet" href="https://nukevietnam.com/themes/default/css/style.css">
<link rel="stylesheet" href="https://nukevietnam.com/themes/default/css/style.responsive.css">
<link rel="StyleSheet" href="https://nukevietnam.com/themes/default/css/huong-dan.css">
<link rel="stylesheet" href="https://nukevietnam.com/themes/default/css/custom.css">
<link href="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/css/swiper.css" type="text/css" rel="stylesheet" />
<link rel="stylesheet" href="https://nukevietnam.com/themes/default/css/tms_menu.css" />
<style>body{background: #fff;}
</style>
<script>!function(e,t,a,n){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var g=t.getElementsByTagName(a)[0],m=t.createElement(a);m.async=!0,m.src="https://www.googletagmanager.com/gtm.js?id=GTM-MKJFRB9V",g.parentNode.insertBefore(m,g)}(window,document,"script","dataLayer");</script>
</head>
    <body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MKJFRB9V" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<div class="container-fluid"style="background-color:#fff;">
<div id="print">
    <div id="hd_print">
        <h2 class="pull-left">Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet</h2>
        <p class="pull-right"><a title="Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet" href="https://nukevietnam.com/">https://nukevietnam.com</a></p>
    </div>
    <div class="clear"></div>
    <hr />
    <div id="content">
        <h1>Hướng dẫn nâng cấp giao diện từ NukeViet 4.4.02 lên NukeViet 4.5.00</h1>
        <ul class="list-inline">
            <li>Thứ ba - 21/06/2022 22:40</li>
            <li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="https://nukevietnam.com/#" data-toggle="winCMD" data-cmd="print">In ra</a></li>
            <li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="https://nukevietnam.com/#"  data-toggle="winCMD" data-cmd="close">Đóng cửa sổ này</a></li>
        </ul>
        <div class="clear"></div>
        <div id="hometext">
            Hướng dẫn này được viết cho các bạn sửa giao diện mặc định của NukeViet. Với các giao diện tự xây dựng, các bạn cần dựa vào đây để chỉnh sửa cho phù hợp.
        </div>
                <div class="imghome">
            <img alt="Hướng dẫn nâng cấp giao diện từ NukeViet 4.4.02 lên NukeViet 4.5.00" src="https://nukevietnam.com/uploads/huong-dan/2022_06/nukeviet-4.1-official-on-pc-after-setup.png" width="460" class="img-thumbnail" />
        </div>
        <div class="clear"></div>
        <div id="bodytext" class="clearfix">
            <p>Ghi chú: Hướng dẫn này được viết cho các bạn sửa giao diện mặc định của NukeViet. Với các giao diện tự xây dựng, các bạn cần dựa vào đây để chỉnh sửa cho phù hợp.</p><h1>themes/ten-theme/js/main.js</h1><p>Thêm lên trên cùng:</p><pre>var gEInterval,    siteMenu = $(&quot;#menu-site-default&quot;);</pre><ul>	<li>Sửa lại function checkAll, checkWidthMenu, openID_load, openID_result, tipShow, ftipShow, change_captcha, modalShow, loginForm</li>	<li>Thêm functions: cookie_notice_hide, isRecaptchaCheck, reCaptcha2Recreate, reCaptcha2OnLoad, reCaptcha2Callback, reCaptcha2ApiLoad, reCaptcha3OnLoad, reCaptcha3ApiLoad</li>	<li>Xóa functions: reCaptchaLoadCallback, reCaptchaResCallback, add_hint</li>	<li>Thay đổi nội dung $(document).ready(function() {...})</li>	<li>Thay đổi nội dung $(window).on(&#039;load&#039;, function() {...})</li></ul><p>Xem các nội dung nêu trên tại đây:&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/nukeviet4.5/themes/default/js/main.js">https://github.com/nukeviet/nukeviet/blob/nukeviet4.5/themes/default/js/main.js</a></p><h1>themes/ten-theme/theme.php</h1><p>Thêm ngay trên cùng:</p><pre>$theme_config = &#91;    &#039;pagination&#039; =&gt; &#91;        // Nếu dùng bootstrap 3: &#039;pagination&#039;        // Nếu dùng bootstrap 4/5: &#039;pagination justify-content-center&#039;        &#039;ul_class&#039; =&gt; &#039;pagination&#039;,        // Nếu dùng bootstrap 3: &#039;&#039;,        // Nếu dùng bootstrap 4/5: &#039;page-item&#039;        &#039;li_class&#039; =&gt; &#039;&#039;,        // Nếu dùng bootstrap 3: &#039;&#039;,        // Nếu dùng bootstrap 4/5: &#039;page-link&#039;        &#039;a_class&#039; =&gt; &#039;&#039;    &#93;&#93;;</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/theme.php#L15L27">ở đây</a></p><p>tìm đến function nv_mailHTML, tìm đến:</p><pre>global $global_config, $lang_global;</pre><p>Thêm xuống dưới:</p><pre>$title = nv_autoLinkDisable($title);</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/theme.php#L39">ở đây</a></p><p>tìm đến function nv_mailHTML, tìm đến:</p><pre>    $xtpl-&gt;parse(&#039;main&#039;);    return $xtpl-&gt;text(&#039;main&#039;);}</pre><p>Thêm lên trên:</p><pre>    if (!empty($global_config&#91;&#039;phonenumber&#039;&#93;)) {        $xtpl-&gt;parse(&#039;main.phonenumber&#039;);    }</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/theme.php#L49L51">ở đây</a></p><p>Tìm đến:</p><pre>    $xtpl-&gt;parse(&#039;main&#039;);    $sitecontent = $xtpl-&gt;text(&#039;main&#039;);</pre><p>Thêm lên trên:</p><pre>    if (defined(&#039;SSO_REGISTER_DOMAIN&#039;)) {        $xtpl-&gt;assign(&#039;SSO_REGISTER_ORIGIN&#039;, SSO_REGISTER_DOMAIN);        $xtpl-&gt;parse(&#039;main.crossdomain_listener&#039;);    }    if ($global_config&#91;&#039;cookie_notice_popup&#039;&#93; and !isset($_COOKIE&#91;$global_config&#91;&#039;cookie_prefix&#039;&#93; . &#039;_cn&#039;&#93;)) {        $xtpl-&gt;assign(&#039;COOKIE_NOTICE&#039;, sprintf($lang_global&#91;&#039;cookie_notice&#039;&#93;, NV_BASE_SITEURL . &#039;index.php?&#039; . NV_LANG_VARIABLE . &#039;=&#039; . NV_LANG_DATA . &#039;&amp;amp;&#039; . NV_NAME_VARIABLE . &#039;=siteterms&amp;amp;&#039; . NV_OP_VARIABLE . &#039;=privacy&#039; . $global_config&#91;&#039;rewrite_exturl&#039;&#93;));        $xtpl-&gt;parse(&#039;main.cookie_notice&#039;);    }</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/theme.php#L357L365">ở đây</a></p><h1>themes/ten-theme/layout/footer_only.tpl</h1><p>Tìm đến:</p><pre>&lt;!-- BEGIN: lt_ie9 --&gt;&lt;p class=&quot;chromeframe&quot;&gt;{LANG.chromeframe}&lt;/p&gt;&lt;!-- END: lt_ie9 --&gt;</pre><p>Thêm xuống dưới:</p><pre>&lt;!-- BEGIN: cookie_notice --&gt;&lt;div class=&quot;cookie-notice&quot;&gt;&lt;div&gt;&lt;button onclick=&quot;cookie_notice_hide();&quot;&gt;&amp;times;&lt;/button&gt;{COOKIE_NOTICE}&lt;/div&gt;&lt;/div&gt;&lt;!-- END: cookie_notice --&gt;</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/layout/footer_only.tpl#L2">ở đây</a></p><p>Tìm đến:</p><pre>&lt;script src=&quot;/themes/{TEMPLATE}/js/bootstrap.min.js&quot;&gt;&lt;/script&gt;</pre><p>Thêm lên trên:</p><pre>        &lt;!-- BEGIN: crossdomain_listener --&gt;        &lt;script type=&quot;text/javascript&quot;&gt;        function nvgSSOReciver(event) {            if (event.origin !== &#039;{SSO_REGISTER_ORIGIN}&#039;) {                return false;            }            if (                event.data !== null &amp;&amp; typeof event.data == &#039;object&#039; &amp;&amp; event.data.code == &#039;oauthback&#039; &amp;&amp;                typeof event.data.redirect != &#039;undefined&#039; &amp;&amp; typeof event.data.status != &#039;undefined&#039; &amp;&amp; typeof event.data.mess != &#039;undefined&#039;            ) {                $(&#039;#openidResult&#039;).data(&#039;redirect&#039;, event.data.redirect);                $(&#039;#openidResult&#039;).data(&#039;result&#039;, event.data.status);                $(&#039;#openidResult&#039;).html(event.data.mess + (event.data.status == &#039;success&#039; ? &#039; &lt;span class=&quot;load-bar&quot;&gt;&lt;/span&gt;&#039; : &#039;&#039;));                $(&#039;#openidResult&#039;).addClass(&#039;nv-info &#039; + event.data.status);                $(&#039;#openidBt&#039;).trigger(&#039;click&#039;);            }        }        window.addEventListener(&#039;message&#039;, nvgSSOReciver, false);        &lt;/script&gt;        &lt;!-- END: crossdomain_listener --&gt;</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/layout/footer_only.tpl#L8L27">ở đây</a></p><h1>themes/ten-theme/css/style.css</h1><p>Tìm đến:</p><pre>@font-face {    font-family:&#039;NukeVietIcons&#039;;    src:url(&#039;../../default/fonts/NukeVietIcons.eot?avyewf&#039;);    src:url(&#039;../../default/fonts/NukeVietIcons.eot?#iefixavyewf&#039;) format(&#039;embedded-opentype&#039;),url(&#039;../../default/fonts/NukeVietIcons.ttf?avyewf&#039;) format(&#039;truetype&#039;),url(&#039;../../default/fonts/NukeVietIcons.woff?avyewf&#039;) format(&#039;woff&#039;),url(&#039;../../default/fonts/NukeVietIcons.svg?avyewf#NukeVietIcons&#039;) format(&#039;svg&#039;);    font-weight:normal;    font-style:normal;}</pre><p>Thay bằng:</p><pre>@font-face {  font-family: &#039;NukeVietIcons&#039;;  src:    url(&#039;../fonts/NukeVietIcons.woff2&#039;) format(&#039;woff2&#039;),    url(&#039;../fonts/NukeVietIcons.woff&#039;) format(&#039;woff&#039;),    url(&#039;../fonts/NukeVietIcons.ttf&#039;) format(&#039;truetype&#039;),    url(&#039;../fonts/NukeVietIcons.svg&#039;) format(&#039;svg&#039;);  font-weight: normal;  font-style: normal;  font-display: swap;}</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/css/style.css#L11L17">ở đây</a></p><p>Tìm đến:</p><pre>.centered {   text-align: center;   font-size: 0}.centered &gt; div {   float: none;   display: inline-block;   text-align: left;   font-size: 14px;}</pre><p>Thay bằng:</p><pre><code>.centered {   display: flex;   justify-content: center;}</code></pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/css/style.css#L288L291">ở đây</a></p><p>Xóa toàn bộ:</p><pre><code>/* guestBlock */.guestBlock {    width:350px;}.guestBlock &gt; h3 {    border-bottom-width :1px;    border-bottom-style: solid;    border-bottom-color: #cccccc;}.guestBlock &gt; h3 &gt; a {    display:inline-block;    line-height:34px;    padding:0 17px;    background-color:#e5e5e5;    border-top-right-radius:5px;    border-top-left-radius:5px;}.guestBlock &gt; h3 &gt; a:hover,.guestBlock &gt; h3 &gt; a.current {    background-color:#cccccc;}</code></pre><p>Tìm đến:</p><pre>.nv-recaptcha-compact {    margin: 0 auto;    width: 164px;    height: 144px;}</pre><p>Thêm xuống dưới:</p><pre>.grecaptcha-badge {    visibility: hidden;}</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/css/style.css#L1689L1691">ở đây</a></p><p>Thêm xuống dưới cùng:</p><pre><code>/*cookie-notice popup*/.cookie-notice {    position:fixed;    bottom: 20px;    left: 20px;    width: 350px;    z-index:99999999999999;    background-color: #eee;    border: solid 1px #dedede;    border-radius: 4px;    box-shadow:0 0 4px rgba(0,0,0,0.15);}.cookie-notice a {    color: #1a3f5e;    text-decoration: underline;}.cookie-notice div {    position: relative;    width: 100%;    padding: 20px;    color: #333;}.cookie-notice button {    float: right;    margin-top: -20px;    margin-right: -20px;    margin-left: 10px;    margin-bottom: 10px;    width: 40px;    height: 40px;    border: 0;    font-size: 24px;}</code></pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/css/style.css#L2235L2271">ở đây</a></p><h1>themes/ten-theme/css/style.responsive.css</h1><p>Tìm đến khu vực:</p><pre>@media (max-width: 499.98px) {    ...}</pre><p>Thêm vào trong:</p><pre>    .cookie-notice {        left: 0;        width:100%;    }</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/css/style.responsive.css#L226L229">ở đây</a></p><h1>themes/mobile_default/layout/header_only.tpl</h1><p>Tìm đến:</p><pre>&lt;script type=&quot;application/ld+json&quot;&gt;...&lt;/script&gt;</pre><p>Thêm lên trên:</p><pre>        &lt;!-- Use passive listeners to improve scrolling performance, https://web.dev/uses-passive-event-listeners/?utm_source=lighthouse&amp;utm_medium=unknown --&gt;        &lt;script&gt;jQuery.event.special.touchstart={setup:function(c,a,b){this.addEventListener(&quot;touchstart&quot;,b,{passive:!a.includes(&quot;noPreventDefault&quot;)})}};jQuery.event.special.touchmove={setup:function(c,a,b){this.addEventListener(&quot;touchmove&quot;,b,{passive:!a.includes(&quot;noPreventDefault&quot;)})}};&lt;/script&gt;</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/mobile_default/layout/header_only.tpl#L16">ở đây</a></p><h1>Tích hợp reCaptcha v3</h1><ul>	<li>Sửa ở các file tpl hiển thị captcha, ví dụ: themes/default/module/users/login_form.tpl. Tìm đến FORM có chứa các mã hiển thị captcha, ví dụ:</li></ul><pre>&lt;form action=&quot;{USER_LOGIN}&quot; method=&quot;post&quot; onsubmit=&quot;return login_validForm(this);&quot; autocomplete=&quot;off&quot; novalidate&gt;</pre><p>Thay bằng:</p><pre>&lt;form action=&quot;{USER_LOGIN}&quot; method=&quot;post&quot; onsubmit=&quot;return login_validForm(this);&quot; autocomplete=&quot;off&quot; novalidate&lt;!-- BEGIN: recaptcha3 --&gt; data-recaptcha3=&quot;1&quot;&lt;!-- END: recaptcha3 --&gt;&gt;</pre><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/modules/users/login_form.tpl#L1">ở đây</a></p><p>Tìm đến đoạn kiểu như:</p><pre>&lt;!-- BEGIN: recaptcha --&gt;...&lt;div id=&quot;{RECAPTCHA_ELEMENT}&quot;&gt;&lt;/div&gt;...&lt;!-- END: recaptcha --&gt;</pre><p>div có chứa id=&quot;{RECAPTCHA_ELEMENT}&quot; thay bằng:</p><pre>&lt;div id=&quot;{RECAPTCHA_ELEMENT}&quot; data-toggle=&quot;recaptcha&quot; data-pnum=&quot;4&quot; data-btnselector=&quot;&#91;type=submit&#93;&quot;&gt;&lt;/div&gt;</pre><p>Trong đó giá trị của data-pnum bằng số bước ngược lên kể từ phần tử này đến khi gặp thẻ FORM (chính là pnum của nv_recaptcha_elements.push ngay dưới), data-btnselector là selector nhận diện nút submit của FORM.</p><p>Xóa toàn bộ đoạn mã javascript ở dưới (&lt;script type=&quot;text/javascript&quot;&gt;...&lt;/script&gt;).</p><p>Xem mẫu&nbsp;<a href="https://github.com/nukeviet/nukeviet/blob/0a6df6f87d7dc038a8c90bf86d05312d605258e0/themes/default/modules/users/login_form.tpl#L51">ở đây</a></p><p>Ngoài ra cần tham khảo cách chỉnh sửa các files php khác&nbsp;<a href="https://github.com/nukeviet/update/wiki/H%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-n%C3%A2ng-c%E1%BA%A5p-module-t%E1%BB%AB-NukeViet-4.4.02-l%C3%AAn-NukeViet-4.5.00#4-t%C3%ADch-h%E1%BB%A3p-recaptcha-v3">tại đây</a></p><h1>Thay NV_BASE_SITEURL thành NV_STATIC_URL</h1><p>(Không bắt buộc làm việc này nếu code của bạn chỉ có 1 hosting duy nhất)</p><p>Tìm tất cả:</p><pre><code>/assets</code></pre><p>Nếu đó là đường dẫn đến file tĩnh (js, css, jpg, png, gif...) thay bằng:</p><pre><code>{NV_STATIC_URL}assets</code></pre><p>Tìm tất cả:</p><pre><code>/{NV_EDITORSDIR}</code></pre><p>Nếu đó là đường dẫn đến file tĩnh (js, css, jpg, png, gif...) thay bằng:</p><pre><code>{NV_STATIC_URL}{NV_EDITORSDIR}</code></pre><p>Tìm tất cả:</p><pre><code>/themes</code></pre><p>Nếu đó là đường dẫn đến file tĩnh (js, css, jpg, png, gif...) thay bằng:</p><pre><code>{NV_STATIC_URL}themes</code></pre><h1>rel=&quot;noopener noreferrer nofollow&quot;</h1><p>Vì lý do bảo mật, hệ thống tự động thêm rel=&quot;noopener noreferrer nofollow&quot; vào các link chuyển hướng đến một site khác. Để tránh việc thêm này bạn cần tự thêm vào link đoạn sau:</p><pre><code>rel=&quot;dofollow&quot;</code></pre>
        </div>
    </div>
    <div id="footer" class="clearfix">
        <div id="url">
            <strong>URL của bản tin này: </strong><a href="https://nukevietnam.com/huong-dan/savefile/cai-dat-cap-nhat-nukeviet/huong-dan-nang-cap-giao-dien-tu-nukeviet-4-4-02-len-nukeviet-4-5-00-31.html" title="Hướng dẫn nâng cấp giao diện từ NukeViet 4.4.02 lên NukeViet 4.5.00">https://nukevietnam.com/huong-dan/savefile/cai-dat-cap-nhat-nukeviet/huong-dan-nang-cap-giao-dien-tu-nukeviet-4-4-02-len-nukeviet-4-5-00-31.html</a>
        </div>
        <div class="clear"></div>
        <div class="copyright">
            &copy; Thiết kế website Nukeviet 4.6 - Module Nukeviet - Giao Diện Nukeviet - Themes Nukeviet  - Block Nukeviet  - Diễn đàn Nukeviet
        </div>
        <div id="contact">
            <a href="mailto:nukeviet@tms.vn">nukeviet@tms.vn</a>
        </div>
    </div>
</div>
</div>
        <!-- Captcha-Modal Required!!! -->
        <div id="modal-img-captcha" class="modal fade" tabindex="-1" aria-hidden="true">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <div class="modal-title">Xác minh &laquo;Tôi không phải người máy&raquo;</div>
                    </div>
                    <div class="modal-body text-center">
                        <div class="margin-bottom">
                            <img class="captchaImg mr-1" src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/images/pix.svg" width="150" height="40" alt="" title="" /><span class="pointer" data-toggle="change_captcha" data-obj="#modal-captcha-value" title="Thay mới"><em class="fa fa-refresh"></em></span>
                        </div>
                        <div class="margin-bottom">
                            <div>
                                <p>Mã bảo mật</p>
                                <p><input type="text" id="modal-captcha-value" value="" class="form-control display-inline-block required" maxlength="6" style="width:200px" data-toggle="enterToEvent" data-obj="#modal-captcha-button" data-obj-event="click"/></p>
                                <div class="invalid-feedback"></div>
                            </div>
                        </div>
                        <p><button type="button" id="modal-captcha-button" class="btn btn-primary">Xác nhận</button></p>
                    </div>
                </div>
            </div>
        </div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng site, <a data-toggle="timeoutsesscancel" href="https://nukevietnam.com/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_assets_dir="assets",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="huong-dan",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="tms",nv_check_pass_mstime=7738000,nv_area_admin=0,nv_safemode=0,theme_responsive=1,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/language/vi.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/DOMPurify/purify3.js"></script>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/global.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/js/site.min.js"></script>
<script src="https://nukevietnam.com/themes/default/js/huong-dan.js"></script>
<script src="https://nukevietnam.com/themes/default/js/main.js"></script>
<script src="https://nukevietnam.com/themes/default/js/custom.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/swiper.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/tms_menu.js"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-RB45N968LV"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date);gtag('config','G-RB45N968LV');</script>
<script src="https://cdn.jsdelivr.net/gh/tmsholdings/thuongmaiso/assets/tms/js/bootstrap.min.js"></script>
</body>
</html>