Chào bạn.
Mình cũng vừa làm một cái tương tự, và đây là cách mình thực hiện, hi vọng có thể giúp gì cho bạn:
1. Chắc chắn là 2 module bạn nói đã được cài đặt và chạy bình thường
2. Bạn có thể viết module mới để gọi đến 2 module kia hoặc gọi trực tiếp từ controller hay view là tuỳ bạn
3. Giả sử tại controller bạn gọi tới 2 module kia và lưu vào 2 biến smarty như sau:
$smarty->assign(
'top' => Module::getInstaneByName("topblock")->hookLeft(),
'new => Module::getInstaneByName("newblock")->hookLeft(),
);
4. Trong view, bạn chỉ cần echo 2 biến $top và $new ở vị trí thích hợp là ok.
5. Có thể bạn sẽ cần phải customize template cho 2 vị trí hookLeft của 2 module kia. Làm thế nào thì không nằm trong phạm vi câu hỏi này nhé.
Lưu ý:
- topblock, newblock là tên của 2 module, mình không nhớ chính xác, bạn kiểm tra lại giúp mình nhé.
- hookLeft() là hook tương ứng được định nghĩa trong 2 module kia
- Tại sao lại gọi được như vậy?
+ Vì các module bản chất cũng là 1 class php bình thường
+ Bạn có thể khởi tạo class đó bình thường (new class()) hoặc gọi qua hàm Module::getInstancebyName()
+ hookLeft() bản chất cũng chỉ là public function, do đó ta cứ gọi thôi
Chúc bạn thành công!