Đây là một phiên bản cũ của tài liệu!
Mục lục
Các class dùng trong lập trình NukeViet
Các class được gọi sẵn
$nv_Request
Là biến chứa class request
- Lấy mảng:
$nv_Request->get_typed_array($name, $mode = null, $type = null, $default = null);
- Lấy chuỗi kí tự:
$nv_Request->get_string($name, $mode = null, $default = null, $decode = true);
- Lấy chuỗi an toàn cho CSDL:
$nv_Request->get_title($name, $mode = null, $default = null, $decode = true);
- Lấy số thực:
$nv_Request->get_float($name, $mode = null, $default = null, $decode = true);
- Lấy số nguyên:
$nv_Request->get_int($name, $mode = null, $default = null, $decode = true);
- Lấy giá trị logic:
$nv_Request->get_bool($name, $mode = null, $default = null, $decode = true);
- Kiểm tra tồn tại của một request:
$nv_Request->isset_request($names, $mode, $all = true);
- Xóa bỏ request:
$nv_Request->unset_request($names, $mode);
- Lưu session:
$nv_Request->set_Session($name, $value = '');
- Lưu cookie:
$nv_Request->set_Cookie($name, $value = '', $expire = 0, $encode = true);
- Lấy editor:
$nv_Request->get_editor($name, $default = '', $allowed_html_tags = '');
- Lấy textarea:
$nv_Request->get_textarea($name, $default = '', $allowed_html_tags = '', $save = false);
$db
Là biến chứa class db của NukeViet - được xây dựng dựa trên PDO của php. Việc sử dụng $db tương tự việc sử dụng PDO. Ngoài ra, DB class còn viết riêng một số hàm:
insert_id
Thực thi câu lệnh insert và trả về giá trị khóa chính tự động tăng nếu thành công.
Cú pháp
$db->insert_id($_sql, $column = '', $data = array())
Trong đó
- $_sql là câu lệnh SQL
- $column là tên trường khóa chính sẽ trả về nếu insert thành công.
- $data là mảng chứa dữ liệu insert.
Nếu chèn thành công sẽ trả về giá trị của khóa chính vừa insert
affected_rows_count
Thực thi câu lệnh INSERT, UPDATE, REPLACE hoặc DELETE và trả về số bản ghi bị tác động.
Cú pháp
$db->affected_rows_count($_sql, $data = array())
Trong đó
- $_sql là câu lệnh SQL
- $data là mảng chứa dữ liệu insert.
columns_array
Trả về danh sách các cột của bảng, tương tự câu lệnh SHOW COLUMNS FROM table
của MySQL
Cú pháp
$db->columns_array($table)
columns_add
Chèn cột vào bảng
Cú pháp
$db->columns_add($table, $column, $type, $length = null, $null = true, $default = null)
dblikeescape
Tạo chuỗi an toàn cho câu lệnh LIKE
Cú pháp
$db->dblikeescape($value)
Các hàm tạo câu lệnh SQL cho các loại CSDL khác nhau
Bao gồm các hàm sqlreset
, select
, from
, join
, where
, group
, having
, order
, limit
, offset
, sql
.
Ví dụ:
$db_slave->sqlreset() ->select('COUNT(*)') ->from(NV_PREFIXLANG . '_' . $module_data . '_' . $catid) ->where('status=1'); $num_items = $db_slave->query($db_slave->sql())->fetchColumn();
$crypt
Là biến chứa class crypt
- Tạo chuỗi mã hóa theo phương thức SHA1:
$crypt->hash($data, $is_salt = false);
- Mã hóa mật khẩu:
$crypt->hash_password($password, $hashprefix = '{SSHA}');
- Kiểm tra mật khẩu:
$crypt->validate_password($password, $hash);
- Mã hóa chuỗi có thể dịch ngược:
$crypt->aes_encrypt($val, $ky = '');
- Dịch ngược chuỗi đã mã hóa:
$crypt->aes_decrypt($val, $ky = '');
$xtpl
Trong hệ thống NukeViet biến $xtpl thường được chứa class xtemplate. Tuy nhiên biến này chưa được tạo sẵn.
- Khởi tạo:
$xtpl = new XTemplate($file_name, $file_location);
Trong đó $file_name
là tên file, $file_location
là đường dẫn tuyệt đối đến file cần chọn.
- Xuất một biến:
$xtpl->assign($name, $content);
- Đánh dấu một khối:
$xtpl->parse($bname);
- Trả về toàn bộ dữ liệu:
$xtpl->out($bname);
- Trả về Text:
$xtpl->text($bname);
Các class có thường dùng
Các thư viện này được đặt trong thư mục vendor
hỗ trợ autoload theo chuẩn PSR-4
Upload class
Dùng để upload một file lên hệ thống.
- Khởi tạo:
$upload = new NukeViet\Files\Upload($allow_files_type, $global_config['forbid_extensions'], $global_config['forbid_mimes'],NV_UPLOAD_MAX_FILESIZE, NV_MAX_WIDTH, NV_MAX_HEIGHT);
- Lưu một file tải lên:
$upload ->save_file($userfile, $savepath, $replace_if_exists = true);
$userfile là biến $_FILE($file_upload);
- Lưu một file từ URL:
$upload ->save_urlfile($urlfile, $savepath, $replace_if_exists = true);
- Giá trị trả về của việc lưu một file là một mảng bao gồm:
- error: Thông tin lỗi.
- name: Đường dẫn tuyệt đối đến file.
- Basename: Tên file.
- Ext: Kiểu file.
- Mime: mine-type.
- is_img: Có phải là ảnh không.
Download class
- Khởi tạo:
$download = new NukeViet\Files\Download($file_src, $directory, $file_basename, $is_resume, $max_speed);
Trong đó:
- $file_src là đường dẫn tuyệt đối đến file,
- $directory là thư mục chứa file,
- $file_basename tên file tải về,
- $is_resume cho phép tạm ngừng và download lại,
- $max_speed tốc độ tối đa.
- Tải file về:
$download->download_file();
Images class
- Khởi tạo:
$image = new NukeViet\Files\Image(NV_ROOTDIR."/images/logo.png", $max_width,$max_height);
- Thay đổi kích thước theo tỉ lệ phần trăm:
$image->resizePercent(200);
- Cắt ảnh từ giữa:
$image->cropFromCenter(150,200);
- Cắt ảnh từ trái:
$image->cropFromLeft( $leftX, $leftY, $newwidth, $newheight );
- Chèn text:
$image->addstring( $string, $align = 'right', $valign = 'bottom', $font = "", $fsize = 2 );
- Chèn logo:
$image->addlogo($logo, $align = 'right', $valign = 'bottom', $config_logo = array());
Trong đó:
- $logo là đường dẫn tuyệt đối đến file ảnh.
- $align là vị trí logo theo phương ngang: left, center, right
- $valign là vị trí logo theo phương dọc: top, middle, bottom
- $config_logo là mảng một chiều xác định vị trí tuyệt đối của logo, gồm hai thành phần $config_logo['x'], $config_logo['y']. Khi có giá trị này thì $align, $valign sẽ được bỏ qua.
- Xoay ảnh:
$image->rotate(45);
- Lưu ảnh:
$image->save(NV_ROOTDIR.'/'.NV_TEMP_DIR.'/');
- Kết thúc phiên làm việc:
$image->close();
Các class khác của NukeViet
Gfonts
Xử lý Google Font
Khởi tạo
$gFont = new NukeViet\Client\Gfonts($gfonts, $client_info);
Trong đó $gfonts
là mảng một chiều dạng
$gfonts = array( 'subset' => 'latin,vietnamese', 'fonts' => 'Open Sans' );
Giá trị subset
và fonts
có thể lấy ở https://www.google.com/fonts
Lấy đường dẫn file CSS gọi font
$gFont->getUrlCss();
Lấy nội dung file CSS gọi font
$gFont->getDataCss();
UrlGetContents
Lấy nội dung từ url.
Khởi tạo
$UrlGetContents = new NukeViet\Client\UrlGetContents($global_config, $time_limit);
Trong đó:
- $global_config ta đưa vào biến $global_config.
- $time_limit là thời gian hết hạn tính bằng giây. Bằng 0 nếu không giới hạn.
Lấy nội dung của url
$UrlGetContents->get($url, $login, $password, $ref);
Trong đó:
$url
là đường dẫn cần lấy (bắt buộc).$login, $password
là thông tin đăng nhập nếu có$ref
là giá trị http referer nếu có