Tài liệu này là về làm thế nào để tạo ra một Plugin Search. Bạn có thể sử dụng một Plugin tìm kiếm để tìm kiếm thông qua cơ sở dữ liệu của Joomla của bạn! trang web. Để tạo ra một plugin, bạn sẽ cần ít nhất hai tập tin, một tập tin XML và một tập tin PHP. Đối với quốc tế hoá nó là tốt để tạo ra một file INI là tốt. File XML Các tập tin XML được đặt tên giống như các file PHP, và là một trong hai tập tin cần thiết. Luôn luôn bắt đầu với thẻ XML và xác định rằng nó được viết trong một định dạng UTF-8. "- / / Joomla 1.5 / / DTD plugin 1,0! / / EN" "http://www.joomla.org/xml/dtd/1.5/plugin-install.dtd"> Để xác định rằng các plugin có phải là một plugin tìm kiếm, thêm dòng này:
Các loại sẽ xác định nó là một plugin, nhóm xác định Plugin là trong nhóm của plugin tìm kiếm.Sau đó, thêm một số thông tin về bản thân và các plugin, như thế này: Tên Sáng tạo ngày creationDate Tên của bạn tác giả <địa chỉ e-mail của bạn /> authorEmail authorUrl Bản quyền thông tin Giấy phép, ví dụ GNU / GPL Phiên bản của mô tả của các plugin, cho thấy trong khi cài đặt và khi chỉnh sửa các plugin trong Plugin Manager <> Mô tả / Và bây giờ, bao gồm PHP của bạn tập tin vào Plugin Search. Tên của tập tin này nên được tương tự như tên của tập tin XML. Đặt tên này cũng đứng sau plugin = "" một phần. Bạn cũng có thể thêm các tập tin nhiều hơn cho các plugin của bạn, ví dụ một hình ảnh. Chỉ cần thêm một dòng khác giữa và , và sau đó đặt các tập tin giữa các thẻ . nameofplugin.php Đối với quốc tế, chúng tôi sẽ sử dụng các tập tin ngôn ngữ. Đây không phải là bắt buộc, nhưng người dân từ các nước khác sẽ thích nó họ có thể dễ dàng dịch plugin của bạn để ngôn ngữ riêng của họ. Các thẻ ngôn ngữ có thể được tìm thấy ở đây: [1] (ISO 639-1 sử dụng cột) và ở đây: [2] ngôn ngữ / en-GB / en-GB.plg_search_nameofplugin.ini Tùy chọn, bạn có thể thêm một số tham số cho các plugin. Đây sẽ như thế này: name="paramname" Param tên: Tên của tham số này. Bạn sẽ cần điều này khi tạo file PHP. Param loại: Bạn có thể lựa chọn giữa nhiều loại tham số. Nhìn vào tài liệu này để tìm hiểu điều gì đó về các loại khác nhau: [3] Param mặc định: Các thiết lập mặc định cho tham số này. Param nhãn: Tên của tham số này hiển thị trong màn hình chỉnh sửa của plugin này trong Plugin Manager. Param mô tả: Các văn bản xuất hiện như là một tip cho các công cụ tham số này. Và đừng quên kết thúc tập tin XML của bạn với các thẻ sau: File PHP Các tập tin PHP của plugin của bạn có lẽ là tập tin quan trọng nhất của plugin này. Đây là một ví dụ PHP file của một plugin tìm kiếm. Các ý kiến được bao gồm. / / Đầu tiên bắt đầu với thông tin về các Plugin và chính mình. Ví dụ: / ** * @ Version $ Id: nameofplugin.php ngày versionnumber tác giả * @ Bản quyền Bản quyền * @ Giấy phép Giấy phép, ví dụ GNU / GPL * Tất cả các thông tin khác mà bạn muốn thêm * / / / Để ngăn chặn truy cập vào các tài liệu trực tiếp, nhập mã này: / / Không truy cập trực tiếp quy định ('_JEXEC') or die ('bị giới hạn truy cập'); / / Bây giờ xác định registerEvent và tập tin ngôn ngữ. Thay thế 'nameofplugin' với tên của plugin của bạn. $ Mainframe-> registerEvent ('onSearch', 'plgSearchnameofplugin'); $ Mainframe-> registerEvent ('onSearchAreas', 'plgSearchnameofpluginAreas'); JPlugin:: loadLanguage ('plg_search_nameofplugin'); / / Sau đó xác định một chức năng để trả lại một mảng của các khu vực tìm kiếm. Thay thế 'nameofplugin' với tên của plugin của bạn. Chức năng & plgSearchnameofpluginAreas () ( khu vực tĩnh $ = array ( 'Nameofplugin' => 'Nameofplugin' ); quay trở lại khu vực $; ) / / Sau đó các chức năng thực sự đã được tạo ra. Các kết nối cơ sở dữ liệu phải được thực hiện. / / Hàm này sẽ được đóng với một) vào cuối của tập tin. plgSearchnameofplugin chức năng ($ text, $ cụm từ ='', $ đặt hàng''=, $ khu vực = null) ( $ Db = & JFactory:: getDBO (); $ User = & JFactory:: getUser (); / / Nếu mảng là không đúng, trả lại: if (is_array ($ khu vực)) ( if (array_intersect ($ khu vực, array_keys (plgSearchnameofpluginAreas! ()))) ( trở về array (); ) ) / / Đó là thời gian để xác định các tham số! Trước tiên phải có được các plugin; 'tìm kiếm' (nhóm), 'nameofplugin'. $ Plugin = & JPluginHelper:: getPlugin ('tìm kiếm', 'nameofplugin'); / / Sau đó tải các thông số của plugin .. $ PluginParams = new JParameter ($ plugin-> params); / / Và xác định các tham số. Ví dụ như thế này .. $ Limit = $ pluginParams-> def ('nameofparameter', defaultsetting); / / Sử dụng chức năng trim để xóa không gian ở phía trước hoặc ở mặt sau của các từ ngữ tìm kiếm $ Text = trim ($ text); / / Trở về Array khi không có gì đã được điền vào if ($ text =='') ( trở về array (); ) / / Sau đó, bạn phải thêm phần cơ sở dữ liệu. Đây sẽ là một phần khó khăn nhất, bởi vì điều này thay đổi mỗi tình hình. / / Trong các ví dụ mã hóa sau này bạn sẽ tìm thấy một số ví dụ được sử dụng bởi Joomla! 1,5 lõi tìm kiếm Plugins. / / Nó sẽ giống như thế này. $ Wheres = array (); switch ($ cụm từ) ( / / Tìm kiếm chính xác trường hợp 'chính xác': $ Text = $ db-> Trích dẫn ('%'.$ db-> getEscaped ($ text, ).'%', đúng sai); $ Wheres2 = array (); $ Wheres2 [] = 'LOWER (a.name) LIKE'. $ Văn bản; $ Nơi = '('. Phá vỡ (') OR (', $ wheres2). ')'; break; / / Tìm kiếm tất cả hoặc bất kỳ trường hợp 'tất cả': trường hợp "bất kỳ": / / Thiết lập mặc định mặc định: từ $ = nổ ('', $ text); $ Wheres = array (); foreach ($ từ như từ $) ( Từ $ = $ db-> Trích dẫn ('%'.$ db-> getEscaped ($ từ, ).'%', đúng sai); $ Wheres2 = array (); $ Wheres2 [] = 'LOWER (a.name) LIKE'. $ Từ; $ Wheres [] = phá vỡ ('OR', $ wheres2); ) $ Nơi = '(' phá vỡ (. ($ Cụm từ == 'tất cả'? ') Và (': ') OR ('), $ wheres). ')'; break; ) / / Đặt hàng của các kết quả switch ($ đặt hàng) ( / / Abc, tăng dần trường hợp 'alpha': Để $ = 'a.name ASC'; break; / / Lâu đời nhất đầu tiên trường hợp 'cổ nhất': / / Phổ biến đầu tiên trường hợp 'nổi tiếng': / / Mới nhất đầu tiên trường hợp 'mới nhất': / / Thiết lập mặc định: abc, tăng dần mặc định: Để $ = 'a.name ASC'; ) / / Thay thế nameofplugin $ SearchNameofplugin = JText:: _ ('Nameofplugin'); / / Truy vấn cơ sở dữ liệu; khác nhau cho mỗi tình hình! Nó sẽ giống như thế này: $ Query = "SELECT a.name như tiêu đề, ' . 'CONCAT_WS ("/",'. $ Db-> Trích dẫn ($ searchNameofplugin) ', b.title.) AS phần,' . '"1" AS browsernav' . 'FROM __nameofplugin # AS một' . ', Bên trong JOIN # __categories AS b ON b.id = a.catid' . 'WHERE ('. $ Nơi. ')' . 'VÀ a.published = 1' . 'VÀ (Int) $ user-> get ('trợ') . 'ORDER BY. Để $ ; / / Đặt câu truy vấn $ Db-> setQuery ($ query, 0, $ limit); $ Hàng = $ db-> loadObjectList (); / / Các 'đầu ra' của liên kết được hiển thị foreach ($ hàng là $ key => $ hàng) ( hàng $ [$ phím] -> href = 'index.php? tùy chọn = com_newsfeeds & view = Newsfeed & catid ='. $ catslug hàng-> '&. id ='. $ slug hàng->; ) / / Trả lại kết quả tìm kiếm trong một mảng hàng trả lại $; ) Hiện có 4 biến có được thông qua tại, đó là hiển nhiên bởi tên của họ và sử dụng trong đoạn code trên. Có gì không rõ ràng là những gì các chức năng cần phải quay trở lại. Một mảng các đối tượng mà công cụ tìm kiếm sử dụng để hiển thị các kết quả. Kết quả cách khác có thể đã được lắp ráp một cái gì đó như thế này. $ Hàng [] = (đối tượng) array ( 'Href' => 'index.php tùy chọn = com_newsfeeds & view = Newsfeed & catid ='?. $ Hàng-> catslug '&. Id ='. $ Hàng-> sâm, 'Tiêu đề' => $ hàng] ['tên', 'Mục' => $ searchnameofplugin, 'Tạo ra' => $ hàng] ['ngày', 'Text' => $ hàng] ['tên', 'Browsernav' => '1 ' ); INI file (s) Đối với quốc tế hoá nó là tốt để sử dụng các tập tin INI. Bạn có thể thêm tất cả mọi thứ để tập tin ngôn ngữ mà kết quả đầu ra văn bản cho người dùng, theo thứ tự: XML mô tả thẻ XML nhãn và các thuộc tính mô tả từ các thông số JText:: _ ('string') được sử dụng bởi các plugin INI file của bạn bắt đầu với cái gì như thế này: # $ Id: en-GB.plg_search_nameofplugin.ini # Joomla! Dự án # Copyright (C) 2005-2007 Những vấn đề mã nguồn mở. Tất cả các quyền. # Http://www.gnu.org/licenses/gpl-2.0.html Giấy phép GNU / GPL, xem LICENSE.php # Lưu ý: Tất cả các file ini cần phải được lưu dưới dạng UTF-8 - Không có Hội đồng quản trị Tất nhiên, bạn cũng có thể thêm các thông tin khác, như tác giả. Ví dụ, tham số này: Mô tả = "Số lượng các mục tìm kiếm để trở về" /> Sẽ gây ra đầu ra sau đây trong tập tin INI: TÌM KIẾM LIMIT = tìm kiếm Hạn chế SỐ MỤC TÌM KIẾM TO RETURN = Số lượng các mục tìm kiếm để trở về Các tập tin sẽ lặp đi lặp lại, nhưng sẽ rất hữu ích cho dịch giả. Khi bạn muốn làm cho plugin tìm kiếm của bạn có sẵn trong nhiều ngôn ngữ hơn, đầu tiên thêm chúng vào các từ khóa trong file XML. Sau đó, tạo tập tin INI cùng, và thay đổi một phần sau =, ví dụ như phiên bản Tiếng Hà Lan sẽ là: TÌM KIẾM LIMIT = Zoek limiet SỐ MỤC TÌM KIẾM TO RETURN = Aantal weer te geven zoekresultaten Ví dụ mã hóa Có sáu Joomla! Core tìm kiếm Plugins. Nếu bạn nhìn vào đó bạn có thể học rất nhiều, đặc biệt là về phần câu truy vấn. Bạn có thể nhìn thấy chúng 'làm việc' khi bạn đi đến cuối trở lại của Joomla của bạn! 1,5 cài đặt, sau đó vào menu 'mở rộng' và chọn 'Plugin Manager. Click vào tên của plugin để chỉnh sửa nó, và nhìn thấy nó làm việc. Plugin Tìm kiếm - hạng mục \ Plugins \ tìm kiếm \ categories.XML \ Plugins \ tìm kiếm \ categories.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_categories.INI Plugin Tìm kiếm - Liên hệ \ Plugins \ tìm kiếm \ contacts.XML \ Plugins \ tìm kiếm \ contacts.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_contacts.INI Plugin Tìm kiếm - Nội dung \ Plugins \ tìm kiếm \ content.XML \ Plugins \ tìm kiếm \ content.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_content.INI Plugin Tìm kiếm - Newsfeeds \ Plugins \ tìm kiếm \ newsfeeds.XML \ Plugins \ tìm kiếm \ newsfeeds.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_newsfeeds.INI Plugin Tìm kiếm - Phần \ Plugins \ tìm kiếm \ sections.XML \ Plugins \ tìm kiếm \ sections.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_sections.INI Plugin Tìm kiếm - Liên kết website \ Plugins \ tìm kiếm \ weblinks.XML \ Plugins \ tìm kiếm \ weblinks.PHP \ Ngôn ngữ \ en-GB \ en-GB.plg_search_weblinks.INI