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:
& => & \ => ' " => " < => < > => > \\ => \ / => / ( => ( ) => ) * => * [ => [ ] => ] ! => ! = => = # => # % => % ^ => ^ : => : { => { } => } ` => ` ~ => ~
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 onclick=“$js_func_name”;
$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