Hiển thị mô-đun ở nhiều vị trí


8

Có thể hiển thị một mô-đun ở nhiều vị trí, tốt nhất là nguyên bản, hoặc thông qua một phần mở rộng của bên thứ ba?

Tôi biết có cách giải quyết ...

  • sao chép mô-đun và thay đổi vị trí, tuy nhiên điều này gây mệt mỏi nếu mô-đun chứa HTML tùy chỉnh và điều này có thể thay đổi thường xuyên.
  • sử dụng loadcú pháp để thả mô-đun bất cứ nơi nào bạn muốn, nhưng vẫn dẫn đến các mô-đun được tạo đơn giản để giữ các mô-đun khác

nhưng cả hai đều tạo ra công việc bảo trì bổ sung mà tôi muốn nói trước.

Câu trả lời:


1

Bạn có thể sử dụng các mô-đun nonumbers bất cứ nơi nào.

http://www.nonumber.nl/extensions/modulesanywhere/userguide

Không giống như phiên bản tải trọng nằm trong lõi, nó cũng có thể được sử dụng trong một mô-đun và không chỉ là một bài viết. Vì vậy, bạn có thể tạo một mô-đun html tùy chỉnh thứ hai, sau đó gọi vị trí đầu tiên. Điều này về cơ bản sẽ cung cấp cho bạn một bản sao của vị trí, nhưng những cài đặt nào bạn thay đổi trong mô-đun đầu tiên cũng sẽ được áp dụng trong "bản sao" thứ hai.


Chúc mừng bạn đã xem @Jordan, nhưng bạn có thể thực hiện việc này mà không cần Mô-đun ở mọi nơi - xem docs.j Joomla.org/How_do_you_put_a_module_inside_an_article%3F (mô-đun HTML tùy chỉnh chấp nhận loadcú pháp nếu bạn đặt Chuẩn bị nội dung thành 'Có') Cách giải quyết thứ 2.
mã hóa

hmm, lưu ý tốt, kinh nghiệm của tôi là nó không hoạt động, có thể là một lỗi trong phiên bản cụ thể mà tôi đã thử. Tôi chưa thực sự thử.
Jordan Ramstad

Vấn đề với các mô-đun ở bất cứ đâu là nó không thực hiện bất kỳ bộ nhớ đệm nào (xem kinh nghiệm của chúng tôi với nó ở đây: itoctopus.com/iêu ). Điều này có nghĩa là đối với các mô-đun nặng sẽ luôn được tạo lại và không chỉ lấy từ bộ đệm (ngay cả khi tệp bộ đệm cho tệp đó tồn tại).
itoctopus

1

Tôi đề nghị xây dựng một plugin đơn giản và sử dụng một cái gì đó như thế này để xuất bản mô-đun đến một số vị trí (sử dụng vòng lặp):

$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
for ($x=0; $x<=5; $x++) {
     $position   = 'myPosition' . $x;
     echo $renderer->render($position, $options, null);
}
// Repeat for each module position, changing only $position

(Không được kiểm tra)

Tôi sẽ xem liệu tôi có thể tập hợp một cái gì đó hoàn thiện hơn vào ngày hôm nay không.


1

Ở mức độ đơn giản, bạn có thể thử điều này:

Nếu đây sẽ là một mô-đun duy nhất và bạn đã xác định nơi bạn muốn hiển thị nó, bạn có thể tạo một vị trí mô-đun đặc biệt trong mẫu của mình và thực hiện 2 hoặc nhiều cuộc gọi cần thiết cho nó, tại các vị trí bạn muốn trong bản mẫu. Nó sẽ tải các mô-đun của vị trí đó bất cứ nơi nào bạn gọi nó.

Nếu có nhiều mô-đun hơn và cho nhiều vị trí bạn muốn áp dụng điều này, cách tiếp cận trên vẫn có thể ổn, trừ khi bạn cần kiểm soát nhiều hơn hoặc sự xuất hiện phức tạp của các mô-đun, một cái gì đó có thể yêu cầu tạo ra các vị trí mô-đun "thông minh hơn" và yêu cầu các mô-đun.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.