Công cụ thành viên

Công cụ trang web


programming4:class

Khác biệt

Đây là những khác biệt giữa hai phiên bản của trang.

Liên kết đến bản xem so sánh này

Phiên bản trước của cả hai bênPhiên bản trước
Phiên bản sau
Phiên bản trước
programming4:class [2017/04/12 08:28] – [Images class] hoaquynhtim99programming4:class [2022/02/25 11:29] (hiện tại) nguyenchiton
Dòng 8: Dòng 8:
   * Lấy số thực: <code php>$nv_Request->get_float($name, $mode = null, $default = null, $decode = true);</code>   * Lấy số thực: <code php>$nv_Request->get_float($name, $mode = null, $default = null, $decode = true);</code>
   * Lấy số nguyên: <code php>$nv_Request->get_int($name, $mode = null, $default = null, $decode = true);</code>   * Lấy số nguyên: <code php>$nv_Request->get_int($name, $mode = null, $default = null, $decode = true);</code>
 +  * Lấy số nguyên không âm (thêm vào từ bản 4.3.08): <code php>$nv_Request->get_absint($name, $mode = null, $default = null, $decode = true);</code>
   * Lấy giá trị logic: <code php>$nv_Request->get_bool($name, $mode = null, $default = null, $decode = true);</code>   * Lấy giá trị logic: <code php>$nv_Request->get_bool($name, $mode = null, $default = null, $decode = true);</code>
   * Kiểm tra tồn tại của một request: <code php>$nv_Request->isset_request($names, $mode, $all = true);</code>   * Kiểm tra tồn tại của một request: <code php>$nv_Request->isset_request($names, $mode, $all = true);</code>
Dòng 96: Dòng 97:
   * Mã hóa mật khẩu: <code php>$crypt->hash_password($password, $hashprefix = '{SSHA}');</code>   * Mã hóa mật khẩu: <code php>$crypt->hash_password($password, $hashprefix = '{SSHA}');</code>
   * Kiểm tra mật khẩu: <code php>$crypt->validate_password($password, $hash);</code>   * Kiểm tra mật khẩu: <code php>$crypt->validate_password($password, $hash);</code>
-  * Mã hóa chuỗi có thể dịch ngược: <code php>$crypt->aes_encrypt($val, $ky = '');</code> +  * Mã hóa chuỗi có thể dịch ngược: <code php>$crypt->aes_encrypt($val, $ky = '');</code> (đã loại ra từ bản 4.3) 
-  * Dịch ngược chuỗi đã mã hóa: <code php>$crypt->aes_decrypt($val, $ky = '');</code>+  * Dịch ngược chuỗi đã mã hóa: <code php>$crypt->aes_decrypt($val, $ky = '');</code> (đã loại ra từ bản 4.3) 
 +  * Mã hóa chuỗi có thể dịch ngược: <code php>$crypt->encrypt($val, $ky = '');</code> (thêm vào từ bản 4.3) 
 +  * Dịch ngược chuỗi đã mã hóa: <code php>$crypt->decrypt($val, $ky = '');</code> (thêm vào từ bản 4.3)
  
 ==== $xtpl ==== ==== $xtpl ====
Dòng 107: Dòng 110:
   * Trả về toàn bộ dữ liệu: <code php>$xtpl->out($bname);</code>   * Trả về toàn bộ dữ liệu: <code php>$xtpl->out($bname);</code>
   * Trả về Text: <code php>$xtpl->text($bname);</code>   * Trả về Text: <code php>$xtpl->text($bname);</code>
 +
 +==== $nv_Cache ====
 +
 +Biến chứa class xử lý cache trong NukeViet
 +
 +=== Xóa tất cả cache trên hệ thống ===
 +
 +<code php>
 +$nv_Cache->delAll($sys = true);
 +</code>
 +
 +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 ===
 +
 +<code php>
 +$nv_Cache->delMod($module_name, $lang = '');
 +</code>
 +
 +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) ===
 +
 +<code php>
 +$nv_Cache->getItem($module_name, $filename, $ttl = 0);
 +</code>
 +
 +  * ''$module_name, $filename'' lần lượt là module và tên file (hoặc khóa) cần lấy
 +  * ''$ttl'' là thời gian hết hạn cache (đơn vị là giây), nếu để 0 tức là cache tồn tại vĩnh viễn
 +
 +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) ===
 +
 +<code php>
 +$nv_Cache->setItem($module_name, $filename, $content, $ttl = 0);
 +</code>
 +
 +  * ''$module_name, $filename'' lần lượt là module và tên file (hoặc khóa) cần lưu
 +  * ''$ttl'' là thời gian hết hạn cache (đơn vị là giây), nếu để 0 tức là cache tồn tại vĩnh viễn
 +
 +=== Lưu (lấy) cache câu lệnh SQL ===
 +
 +<code php>
 +$nv_Cache->db($sql, $key, $modname, $lang = '', $ttl = 0);
 +</code>
 +
 +  * ''$sql'' là câu lệnh SQL
 +  * ''$key'' là field unique trong câu lệnh SQL, nếu để rỗng hệ thống tự đánh số thứ tự tăng dần bắt đầu từ 0
 +  * ''$modname'' tên module 
 +  * ''$lang'' nếu không chỉ ra hệ thống xác định ngôn ngữ hiện tại
 +  * ''$ttl'' là thời gian hết hạn cache (đơn vị là giây), nếu để 0 tức là cache tồn tại vĩnh viễn
 +
 +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 [[programming4:class:BotManager|hướng dẫn class BotManager ($nv_BotManager)]]
 +
 +
 +
 ===== Các class có thường dùng ===== ===== 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 Các thư viện này được đặt trong thư mục ''vendor'' hỗ trợ autoload theo chuẩn PSR-4
-==== Upload class ==== +==== Upload Class ==== 
-Dùng để upload một file lên hệ thống.+Dùng để upload một file lên hệ thống. Xem [[programming4:class:upload|Hướng dẫn chi tiết cách sử dụng class Upload để tải file lên hệ thống]]
   * Khởi tạo: <code php>$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);</code>   * Khởi tạo: <code php>$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);</code>
   * Lưu một file tải lên: <code php>$upload ->save_file($userfile, $savepath, $replace_if_exists = true);</code>$userfile là biến $_FILE($file_upload);   * Lưu một file tải lên: <code php>$upload ->save_file($userfile, $savepath, $replace_if_exists = true);</code>$userfile là biến $_FILE($file_upload);
Dòng 122: Dòng 186:
     * Mime: mine-type.     * Mime: mine-type.
     * is_img: Có phải là ảnh không.     * is_img: Có phải là ảnh không.
 +
 +==== HTTP class ====
 +
 +Dùng để thực hiện các truy vấn http GET, POST, HEAD
 +
 +Khởi tạo <code php>$NV_Http = new NukeViet\Http\Http($global_config, NV_TEMP_DIR);</code>
 +
 +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 ===
 +
 +  * POST <code php>$array = $NV_Http->post(NUKEVIET_STORE_APIURL, $args);</code>
 +  * GET <code php>$array = $NV_Http->post(NUKEVIET_STORE_APIURL, $args);</code>
 +  * HEAD <code php>$array = $NV_Http->post(NUKEVIET_STORE_APIURL, $args);</code>
 +
 +Trong đó 
 +
 +  * ''NUKEVIET_STORE_APIURL'' là đường dẫn truy vấn
 +  * ''$args'' là các tham số được mô tả bên dưới
 +
 +Thiết lập các tham số cho biến $args:
 +
 +<code php>
 +$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ề
 +);
 +</code>
 +
 +> 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
 +
 +<code php>
 +$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
 +);
 +</code>
 +
 +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
 +
 +<code php>
 +NukeViet\Http\Http::$error = array(
 +    'code' => 200,
 +    'message' => 'Nội dung lỗi'
 +);
 +</code>
 +
 +Code lỗi được quy ước như sau:
 +
 +<code php>
 +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.';
 +</code>
 +
 +Có thể sử dụng hàm sau để xác định thông báo lỗi
 +
 +<code php>
 +/**
 + * 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'] . '.' : '.');
 +}
 +</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 ==== ==== Download class ====
   * Khởi tạo: <code php>$download = new NukeViet\Files\Download($file_src, $directory, $file_basename, $is_resume, $max_speed);</code> Trong đó:    * Khởi tạo: <code php>$download = new NukeViet\Files\Download($file_src, $directory, $file_basename, $is_resume, $max_speed);</code> Trong đó: 
Dòng 131: Dòng 308:
   * Tải file về: <code php>$download->download_file();</code>   * Tải file về: <code php>$download->download_file();</code>
 ==== Images class ==== ==== Images class ====
 +
 +Xem [[programming4:class:image|Hướng dẫn chi tiết cách sử dụng class Image để xử lý ảnh]]
 +
   * Khởi tạo: <code php>$image = new NukeViet\Files\Image(NV_ROOTDIR."/images/logo.png", $max_width,$max_height);</code>   * Khởi tạo: <code php>$image = new NukeViet\Files\Image(NV_ROOTDIR."/images/logo.png", $max_width,$max_height);</code>
   * Thay đổi kích thước theo tỉ lệ phần trăm: <code php>$image->resizePercent(200);</code>   * Thay đổi kích thước theo tỉ lệ phần trăm: <code php>$image->resizePercent(200);</code>
Dòng 173: Dòng 353:
 === Lấy nội dung file CSS gọi font === === Lấy nội dung file CSS gọi font ===
 <code php>$gFont->getDataCss();</code> <code php>$gFont->getDataCss();</code>
 +=== Xóa tất cả các font đã lưu trên máy chủ ===
 +<code php>$gFont->destroyAll();</code>
 +
 +> Thêm vào từ NukeViet 4.3.01
 ==== UrlGetContents ==== ==== UrlGetContents ====
 Lấy nội dung từ url. Lấy nội dung từ url.
Dòng 198: Dòng 382:
   * [[https://github.com/endroid/QrCode|QR Code]]   * [[https://github.com/endroid/QrCode|QR Code]]
   * [[https://github.com/true/php-punycode|Punycode]]   * [[https://github.com/true/php-punycode|Punycode]]
 +  * [[https://github.com/facebook/facebook-instant-articles-sdk-php|Facebook Instant Articles SDK]]
programming4/class.1491960535.txt.gz · Sửa đổi lần cuối: 2017/04/12 08:28 bởi hoaquynhtim99