Site Tools


programming4:class

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ị subsetfonts 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ó

Các vendor bên thứ 3 được NukeViet sử dụng

programming4/class.txt · Thời điểm thay đổi: 2017/04/12 01:28 do hoaquynhtim99