2012-12-07 27 views
8

Tôi cố gắng để ghi đè lên com_content/views/bài viết/file view.html.php trong joomla sử dụng các hướng dẫn được đưa ra trong này pageOverriding Joomla thành phần cốt lõi tập tin

Nó nói rằng tôi phải tạo một thư mục có tên 'mã 'trong thư mục cơ sở và tạo cấu trúc thư mục giống nhau. Tôi đã thử nó, nhưng nó không hoạt động. Ai đó có thể xác nhận liệu nó có hoạt động không.

Tôi nên tạo thư mục mã ở đâu? Là nó trên root của cài đặt joomla?

PS- Bản chỉnh sửa đang hoạt động chính xác khi được áp dụng trên tệp lõi

+0

Các bạn đã thử làm phương pháp khuôn mẫu không? – Lodder

+1

Phương pháp tạo mẫu cũng không hoạt động. Tôi nghĩ rằng phương pháp templating chỉ có thể ghi đè lên tập tin default.php bên trong thư mục tmpl. – Ajith

+1

Bạn đang sử dụng phiên bản Joomla nào? – Elin

Trả lời

1

Bạn không thể ghi đè bộ điều khiển thành phần, kiểu và chế độ xem trong lõi Joomla! mà không cần sử dụng plugin của bên thứ ba.

Plugin bạn cần có thể được tìm thấy ở đây: http://extensions.joomla.org/extensions/style-a-design/templating/15611

Các thư mục mã sau đó đi vào gốc Joomla của bạn trừ khi bạn đang trọng một cái nhìn back-end trong trường hợp này nó đi vào/quản trị

Hope điều này giúp :)

6

Bạn có thể ghi đè (gần) bất kỳ lớp nào trong Joomla, nếu lớp học của bạn có cùng tên được tải trước. Để đảm bảo điều đó, bạn cần tạo plugin hệ thống.

Dưới đây là một ví dụ cho root/components/com_content/views/bài viết/view.html.php:

class plgSystemOverride extends JPlugin 
{ 
    public function onAfterRoute() 
    { 
     JLoader::register('ContentViewArticle', 'path/to/override.php', true); 
    } 
} 

caveat: Trọng một lớp lõi có thể dẫn đến các vấn đề với phần mở rộng khác, nếu bạn không phải rất cẩn thận. Tuy nhiên, đối với các lượt xem, bất kỳ sự can thiệp nào với các tiện ích mở rộng khác đều ít có khả năng xảy ra hơn.

+1

Awesomesauce. Câu trả lời hay – pal4life

Các vấn đề liên quan