
Code này đơn giản thui :3 làm lại từ cms đã share
• Tính năng:
- Tạo lập bằng twig, html, css, js
- Upload hình ảnh
- Dữ liệu tuỳ chỉnh (Chủ yếu dạng json)
• Nói chung là giống wap4
• Up file zip lên host giải nén
• Vào /tinyFile (không có bật đăng nhập, nên đổi đường dẫn khác để không ai biết :>) để quản lí tệp
• Tìm đến file: /cpanel/core.php để cấu hình (thay đổi tài khoản đăng nhập CPanel)
• Vào /cpanel để tạo lập
Thắc mắc cmt :33





Tải xuống file zip:
Dự phòng:
• Tính năng:
- Tạo lập bằng twig, html, css, js
- Upload hình ảnh
- Dữ liệu tuỳ chỉnh (Chủ yếu dạng json)
• Nói chung là giống wap4
• Up file zip lên host giải nén
• Vào /tinyFile (không có bật đăng nhập, nên đổi đường dẫn khác để không ai biết :>) để quản lí tệp
• Tìm đến file: /cpanel/core.php để cấu hình (thay đổi tài khoản đăng nhập CPanel)
• Vào /cpanel để tạo lập
Thắc mắc cmt :33





Tải xuống file zip:
Dự phòng:
Trống!
Trống!
- BBcode:
- Markdown:


À tạo cơ sở dữ liệu tên 'custom_data' nhé :))

nhìn chung thì thấy cũng được. nhưng chú ý về hiệu suất. dùng json_decode và json_encode khá nhiều, nếu nhiều data như dorew ngày xưa thì dễ dẫn đến độ trễ rất cao.
với cấu trúc data như này thì chỉ phù hợp với mysql 5.5, nếu dùng mysql 5.7 trở lên thì phải thay đổi lại code 1 chút vì từ 5.7 mysql phân biệt rạch ròi giữa json và text, không cho nhập string dạng json vào text.
với cấu trúc data như này thì chỉ phù hợp với mysql 5.5, nếu dùng mysql 5.7 trở lên thì phải thay đổi lại code 1 chút vì từ 5.7 mysql phân biệt rạch ròi giữa json và text, không cho nhập string dạng json vào text.

với twig2 trở lên, phòng trường hợp nhận được lỗi 500 khi tắt display_error hoặc muốn ẩn url file gốc lỗi đối với guest thì tròm khuyên nên dùng thêm cấu trúc try-catch, ví dụ:
public function render($file, $data = [], $assets = null)
{
try {
// content type
$ext_path = explode('.', $file);
if (count($ext_path) < 2) {
$check_ext = 'html';
} else {
$check_ext = array_pop($ext_path);
}
$check_ext = strtolower($check_ext);
header('Content-Type: ' . self::get_format($check_ext));
// view
if (!in_array($assets, MIME_RENDER)) {
$result = readfile(TPL . '/' . $file);
} else {
$result = $this->twig->render($file . '.twig', $data);
}
} catch (\Twig\Error\SyntaxError $e) {
$result = 'Syntax Error: ' . $this->exceptionPath($e->getMessage(), $e->getTemplateLine(), $e->getSourceContext()->getPath());
} catch (\Twig\Error\RuntimeError $e) {
$result = 'Runtime Error: ' . $this->exceptionPath($e->getMessage(), $e->getTemplateLine(), $e->getSourceContext()->getPath());
} catch (\Twig\Error\LoaderError $e) {
$result = 'Loader Error: ' . $this->exceptionPath($e->getMessage(), $e->getTemplateLine(), $e->getSourceContext()->getPath());
} catch (\Twig\Error\Error $e) {
$result = 'Error: ' . $this->exceptionPath($e->getMessage(), $e->getTemplateLine(), $e->getSourceContext()->getPath());
} catch (\Exception $e) {
$result = $e->getMessage();
}
return $result;
}
đặt ở file TwigFunctions hả tròm :>

thêm cái này vào index.php là xong.
Vào /libs/core.php tắt display_error
try {
echo $twig->render($pathTWIG);
} catch (\Exception $e) {
echo $e->getMessage();
}Vào /libs/core.php tắt display_error
Thảo luận: 6 comments
Tiếng Việt
English
中文
Français
العربية
עברית
Русский
Українська
Bahasa Indonesia
हिंदी
日本語
ภาษาไทย