Nội quy chuyên mục: - Chuyên mục này chỉ dành để viết các bài viết hướng dẫn sử dụng NukeViet 3.x. Vui lòng không mở các chủ đề mới nhằm thảo luận, hỏi đáp... tại đây. Các thảo luận và hỏi đáp liên quan đến các hướng dẫn vui lòng trả lời vào các chủ đề có hướng dẫn đó.
- Ban Quản Trị cũng khuyến khích tất cả các thành viên hoàn thiện các bài viết bổ ích của mình và đưa lên Thư viện tài liệu mở về NukeViet tại địa chỉ http//wiki.nukeviet.vn
#95339 gửi bởi dangdinhtu
Ngày 05 Tháng 09 2011 , 05:24
Chào các bạn việc sử dụng module ảo rất tiện lợi giảm thiểu các file sử dụng
tuy nhiên nó có nhiều nhược điểm như ngôn ngữ, giao diện...
Bài này mình sẽ hướng dẫn các bạn tạo giao diện và ngôn ngữ riêng cho module ảo
Nếu các bạn để ý thì vấn đề tạo giao diện phụ thuộc rất nhiều vào file themes/theme ban/theme.php và modules/module của bạn/theme.php
Chính vì vậy Bài này mình sẽ chủ yếu can thiệp vào 2 file này
đầu tiên là tạo file lang cho module ảo ở đây mình sẽ thức hiện trên module news
Đầu tiên các bạn copy file theme.php từ modules/news sang themes/theme ban/modules/news/
Việc làm này nhằm tạo giao diện cho module news theo themes để tránh can thiệp code quá sâu ảnh hưởng đến việc nâng cấp module riêng theme modern thì bỏ qua bước này vì đã có sẵn.

tiếp theo bạn tạo một file lang mới có tên bất kỳ ở đây mình đặt là radio.php có nội dung như sau.
Mã: Chọn hết
<?php
if ( ! defined( 'NV_MAINFILE' ) )
{
die( 'Stop!!!' );
}
$lang_module['comment'] = "Bình Luận Của Bạn";
$lang_module['hotnews'] = "Radio Mới";
$lang_module['view'] = "Đã Nghe";
?>



ở đây các biến lang vẫn giữ nguyên như của module news mà thôi chỉ phần ngôn ngữ nào cần sữa thì mình mới thêm vào.
tiếp theo là bạn mở file themes\theme ban\modules\news\themes.php trong file này đều thể hiện dưới dạng function vì vậy rất thuận tiện cho việc thêm code mỗi một function đều có đoạn này
Mã: Chọn hết
$xtpl->assign( 'LANG', $lang_module );

bạn chỉ việc theme đoạn này vào trước nó là đã có ngôn ngữ riêng cho module ảo ở đây mình đặt tên là radio
Mã: Chọn hết
if($module_name=="radio")
{
include ( NV_ROOTDIR . "/modules/" . $module_file . "/language/radio.php" );
}

Đoạn mã này có ý nghĩa là nếu module là radio thì sẽ sử dụng file radio.php và lấy biến ngôn ngữ đó xuất ra cùng với file vi.php của module news và theo thứ tự ưu tiên ngôn ngữ thì file radio.php sẽ được sử dụng sau cùng nên nó sẽ lấy ngôn ngữ file này ra. biến lang nào chưa có ở file này thì sẽ lấy từ vi.php ra
Như vậy mình đã hướng dẫn xong phần ngôn ngữ cho module ảo. Tiếp theo là css cho module ảo


để làm việc này bạn mở file themes/theme bạn/theme.php

bạn chỉ việc thêm đoạn code sau

Mã: Chọn hết
if($module_name=="radio")
{
$my_head .= "<link rel=\"stylesheet\" href=\"" . NV_BASE_SITEURL . "themes/" . $module_info['template'] . "/css/style_radio.css\" type=\"text/css\" />";

}


Như vậy là theo thứ tự ưu tiên thì file này sẽ ở dưới file screen.css chính vì thế file này sẽ quyết định css cho class nào sau cùng mình sẽ lấy một ví dụ như sau
file screen.css có đoạn code này

Mã: Chọn hết
.wrapper {
width: 996px;
border-left: 4px solid #fee37a;
border-right: 4px solid #fee37a;
border-bottom: 4px solid #fee37a;
margin: 0 auto 0;
background: #fff;
}

bây giờ mình sẽ copy đoạn này sang style_radio.css và chỉnh sửa


Mã: Chọn hết
.wrapper {
width: 800px;
border-left: 1px solid #fee37a;
border-right: 1px solid #fee37a;
border-bottom: 1px solid #fee37a;
margin: 0 auto 0;
background: red;
}

Như vậy là nó sẽ theo css của file bên dưới tức là style_radio.css

Bài hướng dẫn của mình đến đây coi như xong mọi thắc mắc các bạn có thể comment tại đây. Chúc các bạn vui vẻ :)

Diễn đàn Nukeviet mới do Mình và Nhím thủ lĩnh thành lập các bạn ghé qua học tập trao đổi nhé https://forum.nuke.vn/
#155132 gửi bởi gabjdjen9
Ngày 10 Tháng 04 2014 , 06:53
cám ơn anh. bài của a rất hay .a có thể cho em hỏi đối với các biến
Mã: Chọn hết
$lang_global['passwordlong']='Mật khẩu &ldquo;<strong>%1$s</strong>&rdquo; quá dài. Giới hạn ở mức &ldquo;<strong>%2$d</strong>&rdquo; ký tự';$lang_global['passwordadjective']='Mật khẩu &ldquo;<strong>%1$s</strong>&rdquo; quá ngắn. Ít nhất phải có &ldquo;<strong>%2$d</strong>&rdquo; ký tự';$lang_global['passwordsincorrect']='Mật khẩu &ldquo;<strong>%1$s</strong>&rdquo; và &ldquo;<strong>%2$s</strong>&rdquo; khác nhau. Hãy khai báo lại';
thay đổi dc k ? nếu muốn thay đổi thì thay ở đâu ? em tạo module ảo phần mềm từ module new trong them moder .
cám ơn ! ;))