Hướng dẫn cập nhật từ NukeViet 4 RC2 (4.0.27), NukeViet 4 RC3 (4.0.28) lên NukeViet 4 Official (4.0.29)

Thứ sáu - 20/05/2016 20:39
Bài viết hướng dẫn nâng cấp từ NukeViet 4 RC2 (4.0.27), NukeViet 4 RC3 (4.0.28) lên NukeViet 4 Official (4.0.29)

Chú ý: Hướng dẫn nâng cấp này chỉ áp dụng đối với các site đang sử dụng bản NukeViet 4.0.27NukeViet 4.0.28 và chỉ nâng cấp hệ thống cùng với các module hệ thống.

Bước 1

Kiểm tra thư mục install trên website có tồn tại không, nếu không tồn tại, upload lại thư mục này từ bản cài đặt.

Bước 2

Download file update-to-4.0.29.zip về giải nén và upload các thư mục giải nén được lên website.

Bước 3

Đăng nhập admin, nhận được thông báo nâng cấp, nhấp vào link nâng cấp và thực hiện tiếp tục các công việc tại trang nâng cấp.

Bước 4: Xử lý sau nâng cấp

  • Xóa cache của hệ thống.
  • Nếu có kích hoạt block global.login.php cần xóa block và thêm lại.

Bước 5: Thay đổi giao diện

Nếu giao diện bạn đang sử dụng không phải là default, cần thực hiện các thay đổi bên dưới để nâng cấp giao diện.

Các giao diện khác giao diện mặc định đã được làm cho NukeViet 4.0 RC2 hoặc NukeViet 4.0 RC3 cần sửa thêm như sau để có thể sử dụng cho NukeViet 4.0 Official:

1. Module contact: Xóa url trong nội dung email gửi đến người quản trị

Mở themes/ten-theme/modules/contact/sendcontact.tpl
Tìm và xóa

<a href="{URL_VIEW}" title="" target="_blank">{LANG.view_website}</a>
2. Cập nhật module news

Mở themes/ten-theme/modules/news/content.tpl
Tìm

<em class="fa fa-refresh pull-right" style="cursor: pointer; vertical-align: middle; margin: 9px 0 0 4px" onclick="get_alias();" alt="Click">&nbsp;</em>

Trong đó thay get_alias(); thành get_alias('{OP}');

Mở viewcat_main_bottom.tpl
Tìm

<div class="panel-body">
    <!-- BEGIN: image -->
    <a href="{CONTENT.link}" title="{CONTENT.title}"><img alt="{HOMEIMGALT}" src="{HOMEIMG}" width="{IMGWIDTH}" class="img-thumbnail pull-left imghome" /></a>
    <!-- END: image -->

Thêm lên trên

<!-- BEGIN: block_topcat -->
<div class="block-top clear">
    {BLOCK_TOPCAT}
</div>
<!-- END: block_topcat -->

Tìm đến đoạn

</div>
<!-- END: listcat -->
<!-- END: main -->

Thêm lên trên

    <!-- BEGIN: block_bottomcat -->
    <div class="bottom-cat clear">
        {BLOCK_BOTTOMCAT}
    </div>
    <!-- END: block_bottomcat -->


Mở viewcat_main_left.tpl

Tìm

<div class="panel-body">
    <div class="row">
        <!-- BEGIN: related -->
        <div class="col-md-8">

Thêm lên trên

<!-- BEGIN: block_topcat -->
<div class="block-top clear">
    {BLOCK_TOPCAT}
</div>
<!-- END: block_topcat -->

Tìm đến đoạn

</div>
<!-- END: listcat -->
<!-- END: main -->

Thêm lên trên

  <!-- BEGIN: block_bottomcat -->
    <div class="bottom-cat clear">
        {BLOCK_BOTTOMCAT}
    </div>
    <!-- END: block_bottomcat -->


Mở viewcat_main_right.tpl

Tìm

<div class="panel-body">
    <div class="row">
        <div class="{WCT}">
            <!-- BEGIN: image -->
            <a title="{CONTENT.title}" href="{CONTENT.link}"><img src="{HOMEIMG}" alt="{HOMEIMGALT}" width="{IMGWIDTH}" class="img-thumbnail pull-left imghome" /></a>

Thêm lên trên

<!-- BEGIN: block_topcat -->
<div class="block-top clear">
    {BLOCK_TOPCAT}
</div>
<!-- END: block_topcat -->

Tìm đến đoạn

</div>
<!-- END: listcat -->
<!-- END: main -->

Thêm lên trên đoạn sau:

    <!-- BEGIN: block_bottomcat -->
    <div class="bottom-cat clear">
        {BLOCK_BOTTOMCAT}
    </div>
    <!-- END: block_bottomcat -->
3. Cập nhật giao diện module users

Nếu giao diện của bạn có thư mục themes/ten-theme/modules/users cần đối chiếu block block.login.tpl để cập nhật vì block này có nhiều thay đổi lớn.

Mở themes/ten-theme/modules/users/login_form.tpl

Tìm

<!-- BEGIN: openid -->

Thêm lên trên

<!-- BEGIN: allowuserreg2_form -->
<div class="form-group">
    <div class="text-right clearfix">
        <a href="#" onclick="modalShowByObj('#guestReg_{BLOCKID}')">{GLANG.register}</a>
    </div>
</div>
<!-- END: allowuserreg2_form -->

<!-- BEGIN: allowuserreg_linkform -->
<div class="form-group">
    <div class="text-right clearfix">
        <a href="{USER_REGISTER}">{GLANG.register}</a>
    </div>
</div>
<!-- END: allowuserreg_linkform -->

Mở themes/ten-theme/modules/users/register_form.tpl

Tìm

<input type="text" class="required form-control" placeholder="{LANG.account}" value="" name="username" maxlength="{NICK_MAXLENGTH}" data-pattern="/^(.){{NICK_MINLENGTH},{NICK_MAXLENGTH}}$/" onkeypress="validErrorHidden(this);" data-mess="{GLANG.username_empty}">

Trong đó thay data-mess="{GLANG.username_empty}" thành data-mess="{USERNAME_RULE}"

Tìm

<input type="password" class="password required form-control" placeholder="{LANG.password}" value="" name="password" maxlength="{PASS_MAXLENGTH}" data-pattern="/^(.){{PASS_MINLENGTH},{PASS_MAXLENGTH}}$/" onkeypress="validErrorHidden(this);" data-mess="{GLANG.password_empty}">

Trong đó thay data-mess="{GLANG.password_empty}" thành data-mess="{PASSWORD_RULE}"

4. Cập nhật giao diện chính
Mở themes/ten-theme/theme.php
Tìm

    $html_links[] = array( 'rel' => 'StyleSheet', 'href' => NV_BASE_SITEURL . 'themes/default/css/font-awesome.min.css' );

Thay bằng

    $html_links[] = array( 'rel' => 'StyleSheet', 'href' => NV_BASE_SITEURL . NV_ASSETS_DIR . '/css/font-awesome.min.css' );

Tìm kiếm đoạn sau nếu có

   // Change theme types
        $mobile_theme = empty($module_info['mobile']) ? $global_config['mobile_theme'] : $module_info['mobile'];
        .....(khoảng 15 dòng)......
        $xtpl->parse('main.theme_type');

Nếu có thay bằng

        // Change theme types
        if (sizeof($global_config['array_theme_type']) > 1) {
            $mobile_theme = empty($module_info['mobile']) ? $global_config['mobile_theme'] : (($module_info['mobile'] != ':pcmod' and $module_info['mobile'] != ':pcsite') ? $module_info['mobile'] : '');
            if (empty($mobile_theme) or empty($global_config['switch_mobi_des'])) {
                $array_theme_type = array_diff($global_config['array_theme_type'], array( 'm' ));
            } else {
                $array_theme_type = $global_config['array_theme_type'];
            }
            $icons = array('r' => 'random', 'd' => 'desktop', 'm' => 'mobile');
            $current_theme_type = (isset($global_config['current_theme_type']) and ! empty($global_config['current_theme_type']) and in_array($global_config['current_theme_type'], array_keys($icons))) ? $global_config['current_theme_type'] : 'd';
            foreach ($array_theme_type as $theme_type) {
                $xtpl->assign('STHEME_TYPE', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;nv' . NV_LANG_DATA . 'themever=' . $theme_type . '&amp;nv_redirect=' . nv_redirect_encrypt($client_info['selfurl']));
                $xtpl->assign('STHEME_TITLE', $lang_global['theme_type_' . $theme_type]);
                $xtpl->assign('STHEME_INFO', sprintf($lang_global['theme_type_chose'], $lang_global['theme_type_' . $theme_type]));
                $xtpl->assign('STHEME_ICON', $icons[$theme_type]);

                if ($theme_type == $current_theme_type) {
                    $xtpl->parse('main.theme_type.loop.current');
                } else {
                    $xtpl->parse('main.theme_type.loop.other');
                }

                $xtpl->parse('main.theme_type.loop');
            }
            $xtpl->parse('main.theme_type');
        }

5. Cập nhật giao diện module news (tiếp tục)

Sửa file /themes/ten-theme/modules/news/detail.tpl
Tìm đến dòng

{DETAIL.bodytext}

Thay bằng

{DETAIL.bodyhtml}

6. Cập nhật giao diện module users (tiếp)

Nếu giao diện của bạn có themes/ten-theme/modules/users/register_form.tpl, mở file này 
Tìm

        <div>
            <div>
                <div class="form-group text-center check-box required" data-mess="">
                    <input type="checkbox" name="agreecheck" value="1" class="fix-box" onclick="validErrorHidden(this,3);"/>{LANG.accept2} <a onclick="usageTermsShow('{LANG.usage_terms}');" href="javascript:void(0);"><span class="btn btn-default btn-xs">{LANG.usage_terms}</span></a>
                </div>
            </div>
        </div>

Thêm lên trên

        <!-- BEGIN: agreecheck -->

Thêm xuống dưới

        <!-- END: agreecheck -->

Mở themes/ten-theme/modules/users/info.tpl nếu có

Tìm

<li class="{AVATAR_ACTIVE}"><a data-toggle="tab" href="#edit_avatar" data-location="{EDITINFO_FORM}/avatar">{LANG.edit_avatar}</a></li>

Thêm ra trước

<!-- BEGIN: edit_avatar -->

Thêm vào sau

<!-- END: edit_avatar -->

Tìm

        <li class="{PASSWORD_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/password" href="#edit_password">{LANG.edit_password}</a></li>
        <li class="{QUESTION_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/question" href="#edit_question">{LANG.edit_question}</a></li>

Sửa thành

 <!-- BEGIN: edit_password --><li class="{PASSWORD_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/password" href="#edit_password">{LANG.edit_password}</a></li><!-- END: edit_password -->
        <!-- BEGIN: edit_question --><li class="{QUESTION_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/question" href="#edit_question">{LANG.edit_question}</a></li><!-- END: edit_question -->

Tìm

        <li class="{SAFEMODE_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/safemode" href="#edit_safemode">{LANG.safe_mode}</a></li>

Sửa thành

        <!-- BEGIN: edit_safemode --><li class="{SAFEMODE_ACTIVE}"><a data-toggle="tab" data-location="{EDITINFO_FORM}/safemode" href="#edit_safemode">{LANG.safe_mode}</a></li><!-- END: edit_safemode -->

Tìm

<div id="edit_avatar" class="tab-pane fade {TAB_AVATAR_ACTIVE}">

Thêm lên trên

<!-- BEGIN: tab_edit_avatar -->

Tìm

<!-- BEGIN: tab_edit_username -->

Thêm lên trên

<!-- END: tab_edit_avatar -->

Tìm

<div id="edit_password" class="tab-pane fade {TAB_PASSWORD_ACTIVE}">

Thêm lên trên

<!-- BEGIN: tab_edit_password -->

Tìm

<div id="edit_question" class="tab-pane fade {TAB_QUESTION_ACTIVE}">

Thêm lên trên

<!-- END: tab_edit_password -->
<!-- BEGIN: tab_edit_question -->

Tìm

<!-- BEGIN: tab_edit_openid -->

Thêm lên trên

<!-- END: tab_edit_question -->

Tìm

<div id="edit_safemode" class="tab-pane fade {TAB_SAFEMODE_ACTIVE}">

Thêm lên trên

<!-- BEGIN: tab_edit_safemode -->

Tìm

    </div>

    <ul class="nav navbar-nav">

Thêm lên trên

        <!-- END: tab_edit_safemode -->

Nếu có file themes/ten-theme/modules/users/groups.tpl cần kiểm tra thay thế lại do có rất nhiều thay đổi

Nếu giao diện của bạn có file themes/ten-theme/modules/users/theme.php, mở

Tìm

function user_register($gfx_chk, $checkss, $data_questions, $array_field_config, $custom_fields)

Sửa lại thành

function user_register($gfx_chk, $checkss, $data_questions, $array_field_config, $custom_fields, $group_id)

Tìm

    $username_rule = empty($global_config['nv_unick_type']) ? sprintf($lang_global['username_rule_nolimit'], NV_UNICKMIN, NV_UNICKMAX) : sprintf($lang_global['username_rule_limit'], $lang_global['unick_type_' . $global_config['nv_unick_type']], NV_UNICKMIN, NV_UNICKMAX);
    $password_rule = empty($global_config['nv_upass_type']) ? sprintf($lang_global['password_rule_nolimit'], NV_UPASSMIN, NV_UPASSMAX) : sprintf($lang_global['password_rule_limit'], $lang_global['upass_type_' . $global_config['nv_upass_type']], NV_UPASSMIN, NV_UPASSMAX);

Thêm lên trên


    if ($group_id != 0) {
        $xtpl->assign('USER_REGISTER', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=register/' . $group_id);
    }

Tìm

    if ($global_config['allowuserreg'] == 2) {
        $xtpl->assign('LOSTACTIVELINK_SRC', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=lostactivelink');
        $xtpl->parse('main.lostactivelink');
    }

Thêm xuống dưới

    if (defined('NV_IS_USER') and !defined('ACCESS_ADDUS')) {
        $xtpl->parse('main.agreecheck');
    }

Tìm

    $xtpl->assign('EDITINFO_FORM', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=editinfo');

Thay lại thành

    if (defined('ACCESS_EDITUS')) {
        $xtpl->assign('EDITINFO_FORM', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=editinfo/' . $data['group_id'] . '/' . $data['userid']);
    }
    else {
        $xtpl->assign('EDITINFO_FORM', NV_BASE_SITEURL . 'index.php?' . NV_LANG_VARIABLE . '=' . NV_LANG_DATA . '&amp;' . NV_NAME_VARIABLE . '=' . $module_name . '&amp;' . NV_OP_VARIABLE . '=editinfo');
    }

Tìm

    if ($pass_empty) {
        $xtpl->assign('FORM_HIDDEN', ' hidden');
        $xtpl->parse('main.question_empty_pass');
        $xtpl->parse('main.safemode_empty_pass');
    } else {
        $xtpl->parse('main.is_old_pass');
    }

Thay lại thành

    if ($pass_empty) {
        $xtpl->assign('FORM_HIDDEN', ' hidden');
    }

Tìm


    if (in_array('email', $types)) {
        if ($pass_empty) {
            $xtpl->parse('main.tab_edit_email.email_empty_pass');
        }

Thêm lên trên

    if (in_array('password', $types)) {
        if (! $pass_empty and ! defined('ACCESS_PASSUS')) {
           $xtpl->parse('main.tab_edit_password.is_old_pass');
        }
        $xtpl->parse('main.edit_password');
        $xtpl->parse('main.tab_edit_password');
    }

Tìm

        $xtpl->parse('main.edit_others');
        $xtpl->parse('main.tab_edit_others');
    }

Thêm xuống dưới

    if (in_array('avatar', $types)) {
        $xtpl->parse('main.edit_avatar');
        $xtpl->parse('main.tab_edit_avatar');
    }

    if (in_array('question', $types)) {
        if ($pass_empty) {
            $xtpl->parse('main.question_empty_pass');
        }

        $xtpl->parse('main.edit_question');
        $xtpl->parse('main.tab_edit_question');
    }

    if (in_array('avatar', $types)) {
        $xtpl->parse('main.edit_avatar');
        $xtpl->parse('main.tab_edit_avatar');
    }

    if (in_array('safemode', $types)) {
        if ($pass_empty) {
            $xtpl->parse('main.safemode_empty_pass');
        }
        $xtpl->parse('main.edit_safemode');
        $xtpl->parse('main.tab_edit_safemode');
    }

 Từ khóa: nâng cấp nukeviet

Tổng số điểm của bài viết là: 10 trong 2 đánh giá

Xếp hạng: 5 - 2 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Bài viết mới hơn

Bài viết cũ hơn

Trung tâm ứng dụng NukeViet
Ghi rõ nguồn khi sao chép thông tin từ website này.

Powered by NukeViet - a product of VINADES.,JSC