Các hàm được xây dựng sẵn có trong mã nguồn NukeViet 4.x

Hàm trong php được quy định theo một trật tự chung và cũng như các mã nguồn mở khác nhau được viết bằng ngôn ngữ lập trình PHP thì đều được cá nhà phát triển mã nguồn định nghĩa cho chúng ta các hàm thường được sử dụng theo một cách riêng và nhất định. Nhưng nhìn chung chúng ta đều có thể viết mới một hàm mới cho một mã nguồn.

Tuy nhiên với NukeViet thì chúng ta lại có rất nhiều hàm hệ thống đã có và việc của chúng ta là sử dụng chúng ở từng vị trí sao cho phù hợp đảm bảo an toàn cho website mà bạn thiết kế vân hành.

nv_base64_encode

Hàm này dùng để mã hóa một chuỗi. Cú pháp:

nv_base64_encode ($input)

Ví dụ:

nv_base64_encode(“https://thinhweb.com”) ;

Kết quả: aHR0cHM6Ly90aGluaHdlYi5jb20=

nv_base64_decode

Ngược với hàm nv_base64_encode ( $input ) Cú pháp:

nv_base64_decode ($input)

Ví dụ:

nv_base64_decode(“aHR0cHM6Ly90aGluaHdlYi5jb20=”) ;

Kết quả: https://thinhweb.com

nv_check_valid_email

Cú pháp:

nv_check_valid_email ($mail)

Trả về giá trị rỗng nếu email hợp lệ và trả về thông báo lỗi nếu email không hợp lệ. Thường dùng để kiểm tra tính hợp lệ của email khi nhập vào.

nv_set_allow

Cú pháp:

nv_set_allow ($who, $groups)

Hàm này đã bị loại khỏi NukeViet 4

nv_date

Cú pháp:

nv_date ($format, $time = 0)

$format là định dạng ngày tương tự cú pháp của hàm date trong php xem  tại http://php.net/manual/en/function.date.php.

$time là giá trị của ngày.

Cần biết thêm hằng NV_CURRENTTIME

Ví dụ

nv_date(“H:i d/m/Y”, NV_CURRENTTIME)

Kết quả: 20:10 06/05/2011

nv_htmlspecialchars

Cú pháp:

nv_htmlspecialchars ($string)

Chuyển đổi các ký tự đặc biệt thành chuỗi:

& => &
\ => '
" => "
< => &lt;
> => &gt;
\\ => &#x005C;
/ => &#x002F;
( => &#40;
) => &#41;
* => &#42;
[ => &#91;
] => &#93;
! => &#33;
= => &#x3D;
# => &#x23;
% => &#x25;
^ => &#x5E;
: => &#x3A;
{ => &#x7B;
} => &#x7D;
` => &#x60;
~ => &#x7E;

Trong đó:

$string có thể là một chuỗi kí tự hoặc một mảng một chiều chứa các chuỗi kí tự.

Tham khảo bảng mã hóa các ký tự đặc biệt: http://htmlhelp.com/reference/html40/entities/special.html

nv_unhtmlspecialchars

Ngược lại với hàm nv_htmlspecialchars

Cú pháp:

nv_unhtmlspecialchars ($string)

nv_nl2br

Cú pháp:

nv_nl2br ($text, $replacement = ‘<br />’)

Dùng để chuyển các kí tự xuống dòng thành <br /> (trong HTML), thường dùng để xuống dòng khi lấy dữ liệu từ textarea. Ví dụ: nv_nl2br(“Nuke\nViet”)

Kết quả: Nuke<br />Viet

nv_br2nl

Cú pháp:

nv_br2nl ($text)

Ngược lại với hàm nv_nl2br

nv_editor_nl2br

Cú pháp:

nv_editor_nl2br ($text)

Tương tự nv_nl2br nhưng dùng trong trường hợp dữ liệu lấy từ EDITOR.

nv_editor_br2nl

Cú pháp:

nv_editor_br2nl ($text)

Ngược lại với nv_editor_nl2br ($text)

Các hàm nv_editor_br2nl ($text), nv_editor_nl2br ($text), nv_br2nl ($text), nv_nl2br thường được dùng trong khi lấy dữ liệu từ EDITOR hay textarea rồi lưu vào cơ sở dữ liệu rồi đưa ngược từ CSDL ra EDITOR hay textarea (Ví dụ viết một bài viết và sửa một vài viết nào đó).

filter_text_input

Lấy dữ liệu được submit.

Ví dụ:

filter_text_input( ‘alias’, ‘post’, ‘GIA TRI MAC DINH’ )

Hàm này đã bị loại khỏi NukeViet 4

filter_text_textarea

nv_editor_filter_textarea

Các hàm này đã bị loại khỏi NukeViet 4

nv_editor_filter_textarea

Hàm này đã bị loại khỏi NukeViet 4

nv_sendmail

Gửi email.

Cú pháp:

nv_sendmail ($from, $to, $subject, $message, $files = ”, $AddEmbeddedImage = false)

$from là tên người gửi hoăc tên và địa chỉ mail người gửi, nếu gồm tên và địa chỉ mail thì chúng là một mảng một chiều gồm hai phần tử phần tử một là tên và phần tử thứ 2 là email,

$to là địa chỉ email nhận,

$subject tiêu đề của email,

$message là nội dung email có thể có định dạng HTML,

$files là địa chỉ tập tin đính kèm (có thể bỏ trống)

$AddEmbeddedImage nếu khác false hệ thống sẽ tự động thêm logo của site vào cuối email như là chữ ký. File logo này được cấu hình tại phần Cấu hình site.

Ví dụ:

nv_sendmail(array(“ThinhWeb Blog”, “thinhwebhp@gmail.com”), “thinhwebhp@gmail.com”, “Tiêu đề”, “<strong>Nội dung</strong>”);

nv_generate_page

Xuất số trang.

Cú pháp:

nv_generate_page($base_url, $all_page, $per_page, $page);

trong đó

$base_url là link cơ bản khi ấn vào một trang ví dụ thinhweb.com khi ấn vào trang link sẽ thêm page=So-trang dùng $nv_Request→get_int(‘page’, ‘get’, 1); để lấy,

$all_page tổng số phần tử ví dụ hai mươi bài hát,

$per_page số phần tử trên một trang ví dụ 5 bài trên một trang,

$page Trang thứ mấy ví dụ trang 2. Dữ liệu xuất sẽ là một đoạn mã HTML bao gồm các link để ấn vào chỉ cần xuất ra trình duyệt trực tiếp. Giá trị này nhỏ nhất là 1.

Nâng cao:

nv_generate_page ($base_url, $num_items, $per_page, $on_page, $add_prevnext_text = true, $onclick = false, $js_func_name = ‘nv_urldecode_ajax’, $containerid = ‘generate_page’)

Trong đó:

$base_url là đường dẫn cơ bản khi ấn vào một liên kết.

$num_items: Tổng số mục cần phân trang.

$per_page: số mục trên một trang.

$on_page: Trang hiện tại (Nhỏ nhất là 1).

$add_prevnext_text: Mang giá trị true, false, bật hoặc tắt hai liên kết “ttang trước” và “trang sau”.

$onclick: Mang giá trị true, false. Nếu giá trị là true thì liên kết sẽ được thêm >

$js_func_name: tên hàm được gọi khi ấn vào liên kết.

$containerid: ID của đối tương được truyền vào hàm $js_func_name

nv_is_url

Cú pháp:

nv_is_url ($url)

Kiểm tra một địa chỉ có phải là địa chỉ web đúng hay không, giá trị trả về là true nếu đúng và false nếu sai .

Ví dụ:

nv_is_url (“https://thinhweb.com”)

kết quả: true

nv_check_url

Cú pháp:

nv_check_url ($url, $is_200 = 0)

Kiểm tra sự tồn tại của địa chỉ $url sau thời gian hết hạn thực thi, giá trị trả về là true hoặc false.

Ví dụ: nv_check_url (“https://thinhweb.com”)

kết quả: true.

nv_insert_logs

Dùng để lưu lại lịch sử một công việc nào đó.

Ví dụ câu lệnh lưu lại là đã có một quản trị viên xóa một chuyên mục sẽ viết như sau:

nv_insert_logs(NV_LANG_DATA[Ngôn ngữ], $module_name[tên module hiện đang dùng], $lang_module[‘file_addfile’][Tên công việc], $array[‘title’][Nội dung công việc], $admin_info[‘userid’][ID của thành viên], $link[Link để truy cập nếu có]);

nv_site_mods

Cú pháp:

nv_site_mods()

Trả về danh sách cấu hình các module hiện đang sử dụng giá trị trả về có dạng:

Array
(
    [about] => Array
        (
            [module_file] => page
            [module_data] => about
            [module_upload] => about
            [custom_title] => Giới thiệu
            [admin_title] => Giới thiệu
            [admin_file] => 1
            [main_file] => 1
            [theme] => 
            [mobile] => 
            [description] => 
            [keywords] => 
            [groups_view] => 6
            [is_modadmin] => 
            [admins] => 
            [rss] => 1
            [gid] => 0
            [funcs] => Array
                (
                    [sitemap] => Array
                        (
                            [func_id] => 2
                            [func_name] => sitemap
                            [show_func] => 0
                            [func_custom_name] => Sitemap
                            [in_submenu] => 0
                        )
 
                    [rss] => Array
                        (
                            [func_id] => 3
                            [func_name] => rss
                            [show_func] => 0
                            [func_custom_name] => Rss
                            [in_submenu] => 0
                        )
 
                    [main] => Array
                        (
                            [func_id] => 1
                            [func_name] => main
                            [show_func] => 1
                            [func_custom_name] => Main
                            [in_submenu] => 0
                        )
 
                )
 
            [alias] => Array
                (
                    [sitemap] => sitemap
                    [rss] => rss
                    [main] => main
                )
 
        )
 
    [news] => Array
        (
 
…

nv_groups_list

Cú pháp:

nv_groups_list($mod_data = ‘users’)

Trả về danh sách các nhóm thành viên trong hệ thống. Mặc định sẽ trả về của module users, thay đổi $mod_data bằng module ảo của module users để trả về nhóm của module đó.

nv_info_die

Cú pháp:

nv_info_die ($page_title = “”[Tiêu đề], $info_title[Thông tin1], $info_content[Thông tin2], $error_code[Mã lỗi HTTP], $adminlink = 0[Cho phép hiển thị link đến khu vực quản trị])

Thường dùng để thông báo lỗi và kết thúc ví dụ báo lỗi 404 – trang web bạn cố gắng truy cập hiện không tồn tại.

nv_ImageInfo

Hàm tạo ảnh thumb.

Cú pháp:

nv_ImageInfo($original_name, $width = 0, $is_create_thumb = false, $thumb_path = ”)

Trong đó:

$original_name: Đường dẫn tuyệt đối đến file ảnh.

$width: chiều rộng ảnh thumb.

$is_create_thumb: Nếu có giá trị true thì hệ thống sẽ tạo ảnh thumb nếu ảnh gốc có kích thước lớn hơn ảnh thumb.

$thumb_path: Đường dẫn tuyệt đối đến thư mục chứa ảnh thumb.

change_alias

Tạo liên kết tĩnh .

Cú pháp:

change_alias($title)

Ví dụ:

change_alias(“Tiêu đề”)

Kết quả: Tieu-de

nv_clean60

Cắt ngắn một chuỗi.

Cú pháp:

nv_clean60 ($string, $num = 60, $specialchars = false)

$string là chuỗi cần cắt

$num là số ký tự

Nếu $specialchars là tre thì chuỗi trả về sẽ được xử lý qua hàm nv_htmlspecialchars

Ví dụ:

nv_clean60 (“Nukeviet là phần mềm nguồn mở được nhiều người ưa thích”, 10)

Kết quả: Nukeviet là phần …

nv_db_cache

Hàm này đã bị loại khỏi NukeViet 4 tham khảo $nv_Cache→db

nv_del_moduleCache

Hàm này đã bị loại khỏi NukeViet 4 tham khảo $nv_Cache→delMod

nv_loadUploadDirList

Hàm này đã bị loại khỏi NukeViet 4

nv_url_rewrite

Cú pháp:

nv_url_rewrite($buffer, $is_url = false)

Trả về đường dẫn rewrite từ đường dẫn chưa rewrite nếu giá trị $is_url là true.

nv_get_keywords

Cú pháp:

nv_get_keywords ($content, $keyword_limit = 20)

Trả về từ khóa từ $content, giới hạn tối đa bởi $keyword_limit

nv_genpass

Cú pháp:

nv_genpass ($length = 8, $type = 0)

Trả về một đoạn mã ngẫu nhiên có $length kí tự. Giá trị của $type quy định phạm vi ký tự

0: Chữ cái thường và số

2: Chữ cái thường, chữ in hoa và số

3: Chữ cái thường, ký tự đặc biệt và số

4: Chữ cái thường, chữ in hoa, số và ký tự đặc biệt

nv_capcha_txt

Cú pháp:

nv_capcha_txt ($seccode)

Trả về true nếu mã capcha $seccode là hợp lệ, ngược lại trả về false.

nv_get_cache

Hàm này đã bị loại khỏi NukeViet 4. Tham khảo $nv_Cache→getItem

nv_set_cache

Hàm này đã bị loại khỏi NukeViet 4. Tham khảo $nv_Cache→setItem

nv_scandir

Cú pháp:

nv_scandir($directory, $pattern, $sorting_order = 0)

tương tự hàm scandir.

nv_getextension

Cú pháp:

nv_getextension ($filename)

Trả về kiểu file của $filename.

nv_mkdir

Cú pháp:

nv_mkdir($path, $dir_name)

tạo thư mục $dir_name trong thư mục $path.

nv_deletefile

Cú pháp:

nv_deletefile ($file, $delsub = false)

Xóa file hoặc thư mục $file. Nếu đối tượng xóa là thư mục và giá trị $delsub là true thì hàm chỉ xóa các thư mục rỗng.

nv_copyfile

Cú pháp:

nv_copyfile ($file, $newfile)

Copy $file sang $newfile.

nv_renamefile

Cú pháp:

nv_renamefile ($file, $newname)

Đổi tên file $file thành $newname.

nv_chmod_dir

Cú pháp:

nv_chmod_dir ($conn_id, $dir, $subdir = false)

CHMOD thư mục $dir và các thu mục con nếu $subdir có giá trị true. $conn_id là connection FTP (ft_connect());

nv_error_info

Cú pháp:

v_error_info()

Trả về các thông báo lỗi hệ thống.

nv_rss_generate

Cú pháp:

nv_rss_generate ($channel, $items)

Xuất RSS.

nv_html_meta_tags

Cú pháp:

nv_html_meta_tags ()

Xuất các thẻ meta-tag.

nv_is_file

Cú pháp:

nv_is_file ($file_fullpath, $array_allow_dirs)

Kiểm tra một file $file_fullpath có tồn tại hay không tồn tại trong một hoặc nhiều thư mục cho phép $array_allow_dirs. Kết quả trả về true nếu file tồn tại và false nếu file không tồn tại. Trong đó chú ý hai tham số $file_fullpath và $file_fullpath, $file_fullpath là đường dẫn tới file cần kiểm tra được lấy trực tiếp từ giá trị trả về của hàm javascript nv_open_browse(), đường dẫn này có dạng:

NV_BASE_SITEURL . $folders . ‘/’ . $filename

Ví dụ một số đường dẫn file:

/uploads/news/2015_12/image.jpg

/assets/images/loading.png

/modules/news/data/jquery.custom.js

$array_allow_dirs là thư mục cho phép của $file_fullpath, có thể là một thư mục, hoặc là mảng một chiều gồm nhiều thư mục cho phép. Nếu tham số này để trống trong lệnh gọi hàm, giá trị mặc định gồm hai thư mục cơ bản:

uploads // Thư mục chứ file upload

assets/images // Thư mục ảnh

Chú ý: Nếu giá trị là thư mục A thì tất cả các thư mục con của thư mục A cũng được xem là thư mục cho phép.
Trong ví dụ về đường dẫn file ở trên thì thư mục truyền vào sẽ như sau:

/uploads/news/2015_12/image.jpg => uploads/news/2015_12

/assets/images/loading.png => assets/images

/modules/news/data/jquery.custom.js => modules/news/data

nv_alias_page

Phân trang có hỗ trợ rewrite. Chú pháp cơ bản

nv_alias_page($title, $base_url, $num_items, $per_page, $on_page)

Trong đó:

$title là nội dung tiêu đề của liên kết

$base_url là đường dẫn cơ bản cho mỗi liên kết

$num_items tổng số kết quả

$per_page số kết quả 1 trang

$on_page trang hiện tại, tối thiểu là 1.

Nâng cao:

nv_alias_page($title, $base_url, $num_items, $per_page, $on_page, $add_prevnext_text = true, $full_theme = true)
Trong đó:

$add_prevnext_text xác định có hay không việc thêm vào nút trang trước, trang sau

$full_theme nếu mang giá trị false hàm sẽ trả về chỉ các thẻ <li>, nếu là true hàm trả về cả <ul>

nv_object2array

Chuyển từ kiểu object sang kiểu array

Cú pháp

nv_object2array($a)

nv_convertfromBytes

Chuyển từ đơn vị byte sang đơn vị lớn hơn thích hợp.

Cú pháp

nv_convertfromBytes($size)

Ví dụ:

nv_convertfromBytes(1024); // 1,024.00 bytes

nv_convertfromBytes(65464654); // 62.43 MB

nv_convertfromBytes(65464654188); // 60.97 GB

nv_convertfromBytes(6546465418865464654188); // 5.55 ZB

nv_convertfromSec

Chuyển từ số giây sang thời gian đọc được thích hợp.

Cú pháp

nv_convertfromSec($sec = 0)

Ví dụ:

nv_convertfromSec(61); // 1 phút 1 giây

nv_convertfromSec(3600); // 1 giờ

nv_convertfromSec(86450); // 1 ngày 50 giây

nv_convertfromSec(869751); // 10 ngày 1 giờ 35 phút 51 giây

nv_converttoBytes

Ngược lại với hàm nv_convertfromBytes

Cú pháp

nv_convertfromSec($string)

nv_check_valid_login

Kiểm tra giá trị username có hợp lệ hay không

Cú pháp

nv_check_valid_login($login, $max, $min)

Trong đó:

$login là username cần kiểm tra

$max số ký tự tối đa cho phép

$min số ký tự tối thiểu cho phép

Trả về chuỗi rỗng nếu hợp lệ và chuỗi thể hiện lỗi nếu không hợp lệ

nv_check_valid_pass

Kiểm tra mật khẩu có hợp lệ hay không

Cú pháp

nv_check_valid_pass($pass, $max, $min)

Trong đó:

$pass là mật khẩu cần kiểm tra

$max số ký tự tối đa cho phép

$min số ký tự tối thiểu cho phép

Trả về chuỗi rỗng nếu hợp lệ và chuỗi thể hiện lỗi nếu không hợp lệ

nv_check_valid_email

Kiểm tra email có hợp lệ hay không

Cú pháp

nv_check_valid_email($mail)

Trả về chuỗi rỗng nếu hợp lệ và chuỗi thể hiện lỗi nếu không hợp lệ

nv_user_in_groups

Kiểm tra thành viên có thuộc ít nhất một trong các nhóm được chỉ định hay không.

Cú pháp

nv_user_in_groups($groups_view)

Giá trị trả về là true hoặc false

Ví dụ

nv_user_in_groups(“4,6,1,15”)

nv_groups_add_user

Thêm thành viên vào nhóm

Cú pháp

nv_groups_add_user($group_id, $userid, $approved = 1, $mod_data = ‘users’)

Trong đó:

$group_id là ID của nhóm

$userid là ID của thành viên

$approved mang giá trị 0 hoặc 1 có nghĩa là thành viên chưa được xác nhận hay đã được xác nhận vào nhóm.

$mod_data là giá trị $module_data của module chưa CSDL thành viên, mặc định là module users.

Trả về true nếu thành công và false nếu thất bại.

nv_groups_del_user

Loại thành viên khỏi nhóm

Cú pháp

nv_groups_del_user($group_id, $userid, $mod_data = ‘users’)

Trong đó:

$group_id là ID của nhóm

$userid là ID của thành viên

$mod_data là giá trị $module_data của module chưa CSDL thành viên, mặc định là module users.

Trả về true nếu thành công và false nếu thất bại.

nv_show_name_user

Lấy tên đầy đủ của thành viên

Cú pháp

nv_show_name_user($first_name, $last_name, $user_name = ”)

nv_get_redirect

Lấy link chuyển hướng từ $_GET[‘nv_redirect’] hoặc $_POST[‘nv_redirect’]

Cú pháp

nv_get_redirect($mode = ‘post,get’, $decode = false)

Trả về link chuyển hướng thực nếu nv_redirect hợp lệ hoặc rỗng nếu không hợp lệ

nv_redirect_decrypt

Giải mã link chuyển hướng

Cú pháp

nv_redirect_decrypt($string, $insite = true)

Trả về link chuyển hướng thực nếu redirect được mã hóa đúng kiểu, hoặc rỗng nếu không hợp lệ.

nv_redirect_encrypt

Mã hóa link chuyển hướng.

Cú pháp

nv_redirect_encrypt($url)

nv_insert_notification

Lưu một thông báo vào CSDL. Thông báo này sẽ hiển thị cho admin biết lúc truy cập vào khu vực quản trị.

Cú pháp

nv_insert_notification($module, $type, $content = array(), $obid = 0, $send_to = 0, $send_from = 0, $area = 1)

Trong đó:

$module là tên module đưa ra thông báo. Thường là biến $module_name

$type là chuỗi ký tự bất kỳ để tạo khóa cho thông báo. Ví dụ, thông báo khi có liên hệ mới, có thể dùng là “new_contact”. Hay bình luận mới, dùng “new_comment”,….

$content là mảng một chiều chứa các thông tin do người lập trình quy định, các thông tin này sẽ được lấy ra khi hiển thị thông báo.

$obid là ID của hành động được thực hiện. Ví dụ: sau khi gửi 1 thư liên hệ, thư này sẽ được ghi vào CSDL với một ID. Hay sau khi bình luận, bình luận này sẽ được ghi vào CSDL với một ID,….

$send_to giá trị userID của người nhận, bằng 0 nếu muốn thông báo cho tất cả

$send_from giá trị userID của người gửi thông báo, bằng 0 nếu là thông báo từ hệ thống

$area là khu vực thông báo: 0 là ngoài site, 1 là quản trị và 2 là ở các hai khu vực.

nv_status_notification

Cập nhật trạng thái thông báo.

Cú pháp

nv_status_notification($language, $module, $type, $obid, $status = 1, $area = 1)

Trong đó:

$module, $type, $obid, $area là khóa của thông báo

$language là ngôn ngữ chứa thông báo. Mang giá trị của NV_LANG_DATA

$status trạng thái thông báo: 0 là chưa xem, 1 là đã xem

nv_delete_notification

Xóa thông báo.

Cú pháp

nv_delete_notification($language, $module, $type, $obid)

Trong đó: $module, $type, $obid là khóa của thông báo, $language là ngôn ngữ chứa thông báo