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

$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 đó

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 đó

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

$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.

Trong đó $file_name là tên file, $file_location là đường dẫn tuyệt đối đến file cần chọn.

$nv_Cache

Biến chứa class xử lý cache trong NukeViet

Xóa tất cả cache trên hệ thống

$nv_Cache->delAll($sys = true);

Nếu $sys = true thì sẽ xóa cache tất cả các ngôn ngữ, ngược lại sẽ chỉ xóa trên ngôn ngữ hiện tại

Xóa cache ở một module

$nv_Cache->delMod($module_name, $lang = '');

Nếu $lang không chỉ ra cụ thể thì sẽ xóa trên ngôn ngữ hiện tại

Lấy cache đã lưu theo file (hoặc khóa)

$nv_Cache->getItem($module_name, $filename, $ttl = 0);

Giá trị trả về là nội dung đã lưu trước đó hoặc false nếu file cache không tồn tại

Lưu cache theo file (hoặc khóa)

$nv_Cache->setItem($module_name, $filename, $content, $ttl = 0);

Lưu (lấy) cache câu lệnh SQL

$nv_Cache->db($sql, $key, $modname, $lang = '', $ttl = 0);

Nếu trước đó câu lệnh đã được lưu hệ thống sẽ trả về kết quả của câu lệnh đó từ cache đã lưu, nếu chưa lưu hệ thống sẽ thực hiện câu lệnh SQL sau đó lưu lại cache và vẫn trả về kết quả của câu lệnh SQL.

$nv_BotManager

Xem hướng dẫn class BotManager ($nv_BotManager)

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. Xem Hướng dẫn chi tiết cách sử dụng class Upload để tải file lên hệ thống

HTTP class

Dùng để thực hiện các truy vấn http GET, POST, HEAD

Khởi tạo

$NV_Http = new NukeViet\Http\Http($global_config, NV_TEMP_DIR);

Trong đó $global_config (các cấu hình) và NV_TEMP_DIR (thư mục tmp) là giá trị lấy trực tiếp từ tài nguyên của NukeViet.

Sử dụng

Trong đó

Thiết lập các tham số cho biến $args:

$args = array(
    'method' => 'GET', // Phương thức GET, POST, HEAD
    'timeout' => 10, // Thời gian hết hạn truy vấn, bằng 0 nếu không hết hạn
    'redirection' => 5, // Số chuyển hướng tối đa cho phép
    'requested' => 0,  // Số truy vấn đã thực hiện nếu có chuyển hướng, giá trị này hệ thống tự trả về
    'httpversion' => 1.0, // HTTP Version
    'user-agent' => 'NUKEVIET CMS v4.x. Developed by VINADES. Url: http://nukeviet.vn. Code: md5sitekey', // HTTP User-Agent
    'referer' => null, // HTTP referer
    'headers' => array(), // Dữ liệu Header gửi đi
    'cookies' => array(), // Dữ liệu Cookie gửi đi
    'body' => null, // Nội dung truy vấn, dạng array
    'stream' => false, // Nếu đặt là true hệ thống sẽ ghi nội dung trả về ra file
    'filename' => null, // Chỉ ra đường dẫn file sẽ lưu nếu stream = true
    'limit_response_size' => null, // Giới hạn dung lượng nội dung trả về
);
Lưu ý: Giá trị $args bên trên là full theo mặc định, bạn có thể bỏ qua và không chỉ ra một hoăc một vài tham số nào đó.

Dữ liệu trả về ở biến $array

$array = array(
    'headers' => array(), // Header gửi từ server
    'body' => 'string', // Dữ liệu trả về
    'response' => array (
        'code' => 200,
        'message' => 'string'
    ),
    'cookies' => array(), // Cookie gửi từ server
    'filename' => '' // Đường dẫn file nếu stream = true
);

Sau khi request cần kiểm tra biến NukeViet\Http\Http::$error nếu không rỗng thì là request có lỗi, có dạng

NukeViet\Http\Http::$error = array(
    'code' => 200,
    'message' => 'Nội dung lỗi'
);

Code lỗi được quy ước như sau:

1 = 'Địa chỉ truy vấn không hợp lệ, vui lòng kiểm tra lại';
2 = 'Giao thức HTTP bị cấm đối với truy vấn này.';
3 = 'Thư mục chứa tệp tin sẽ được lưu không thể ghi được.';
4 = 'Không có tiện ích nào hỗ trợ giao thức HTTP.';
5 = 'Có quá nhiều chuyển hướng xảy ra.';
6 = 'Chứng chỉ SSL không thể kiểm tra được.';
7 = 'Truy vấn HTTP thất bại.';
8 = 'Không thể lưu dữ liệu vào tệp tin tạm thời.';
9 = 'Hàm xử lý fopen() thất bại đối với tệp tin.';
10 = 'Truy vấn HTTP bằng Curl thất bại.';
11 = 'Có một lỗi không xác định đã xảy ra.';

Có thể sử dụng hàm sau để xác định thông báo lỗi

/**
 * nv_http_get_lang()
 *
 * @param mixed $input
 * @return
 */
function nv_http_get_lang($input)
{
    global $lang_global;
 
    if (!isset($input['code']) or !isset($input['message'])) {
        return '';
    }
 
    if (!empty($lang_global['error_code_' . $input['code']])) {
        return $lang_global['error_code_' . $input['code']];
    }
 
    if (!empty($input['message'])) {
        return $input['message'];
    }
 
    return 'Error' . ($input['code'] ? ': ' . $input['code'] . '.' : '.');
}

Kết quả trả về cuối cùng nằm trong $array['body'], nếu stream = true thì dữ liệu được ghi ra file $array['filename']

Download class

Images class

Xem Hướng dẫn chi tiết cách sử dụng class Image để xử lý ảnh

Trong đó:

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();

Xóa tất cả các font đã lưu trên máy chủ

$gFont->destroyAll();
Thêm vào từ NukeViet 4.3.01

UrlGetContents

Lấy nội dung từ url.

Khởi tạo

$UrlGetContents = new NukeViet\Client\UrlGetContents($global_config, $time_limit);

Trong đó:

Lấy nội dung của url

$UrlGetContents->get($url, $login, $password, $ref);

Trong đó:

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