10/10/2018, 09:17
ta có thể tạo dạng như block trong CI ko
vd tôi có 1 "block" hiển thị tin tức nóng nhất ở các controller news,blog,music. và trong các controller đó có vài function view để hiển thị như news/view;news/viewdetail, blog/singer; blog/author; music/song,...
nếu như làm bình thường thì tại mỗi function của nó ta lại viết câu truy vấn dữ liệu rồi hiện ra ngoài trường hợp có nhiều quá thì viết lại rất phí. Xin hỏi có cách nào mà ta tạo dạng "block" như drupal, nukeviet ta chỉ cần viết tên block đó thì nó sẽ tự hiển thị mà ko cần mỗi lần muốn hiện ra ngoài ta lại viết lại
nếu như làm bình thường thì tại mỗi function của nó ta lại viết câu truy vấn dữ liệu rồi hiện ra ngoài trường hợp có nhiều quá thì viết lại rất phí. Xin hỏi có cách nào mà ta tạo dạng "block" như drupal, nukeviet ta chỉ cần viết tên block đó thì nó sẽ tự hiển thị mà ko cần mỗi lần muốn hiện ra ngoài ta lại viết lại
Bài liên quan
Đúng như bạn nói. Theo chuẩn của CI thì phải viết các controllers riêng biệt. ==> có nhiều phần chung phải viết lại hoặc copy lại ==> ko nhất quán và khó bảo trì.
Bạn nên tham khảo thư viện HMVC ==> chi nhỏ site thành các module. Khi cần module nào thì chỉ cần gọi thôi. Và chỉ có 1 controller duy nhất mà thôi. Tất cả sử lý theo segment hết chứ ko sài chuẩn của nó nữa.
CI chỉ cung cấp Core, kiến trúc cho việc xây dựng thôi chứ không nắm tay dắt coder đi từng bước từng bước như trẻ con tập đi được. Việc tự xây dựng block cho Application base on CI là không khó.
http://codeigniter.com/forums/viewthread/64068/#315257 Bạn có thể tham khảo bài viết trên hoặc: http://codeigniter.com/wiki/Modular_Extensions_-_HMVC
HMVC giờ là 1 model mới
cảm ơn nha
$classes = array (
'config' => 'Config',
'input' => 'Input',
'benchmark' => 'Benchmark',
'uri' => 'URI',
'output' => 'Output',
'lang' => 'Language'
);
foreach ($classes as $var => $class) {
$this->$var =& load_class($class);
}
class demo extends CI_Base class
{
function demo()
{
$classes = array (
'config' => 'Config',
'input' => 'Input',
'benchmark' => 'Benchmark',
'uri' => 'URI',
;
foreach ($classes as $var => $class) {
$this->$var =& load_class($class);
}
function myfunction(){
}
}