UWAGA: Strona zawiera materiały archiwalne. Większość artykułów dotyczy Joomla! 1.0
Start arrow Programowanie arrow Boty arrow Bot onSearch
Bot onSearch Drukuj Email
Redaktor: Stefan Wajda   
19.06.2007.
Poniżej znajduje się przykład kodu dodatku wykonywanego przy zdarzeniu onSearch (dodatku wyszukującego).
<?php
/**
* @version $Id $
* @package Joomla! 1.0
* @Copyright © 2000-2005 Open Source Matters, All Rights Reserved
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Joomla! is Free Software
*/
 
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Nie masz uprawneń, by przeglądać ten zasób.' );
 
$_PLUGINS ⇒ registerFunction( 'onSearch', 'botSearchContacts' );
 
/**
* Search method
* @param array Named 'text' element is the search term
*/
function botSearchContacts( $text ) {
  global $database;
 
  $text = trim( $text );
  if ($text == '') {
    return array();
  }
 
  $database ⇒ setQuery( "SELECT name AS title,"
    . " '' AS created,"
    . " misc AS text,"
    . " 'Contact' AS section,"
    . " CONCAT('index.php?option=com_contact&task=view&id=',id) AS href,"
    . " '2' AS browsernav"
    . " FROM #__contact_details"
    . " INNER JOIN #__categories AS b ON b.id=a.catid AND b.access <='$my ⇒ gid'"
    . " LEFT JOIN #__sections AS u ON u.id = a.sectionid"
    . " WHERE name LIKE '%$text%' OR misc LIKE '%$text%'"
    . "  AND published='1'"
    . " ORDER BY name"
  );
 
  return $database ⇒ loadObjectList();
}
?>

Na początku znajduje się typowy nagłówek oraz zabezpieczenie.

$_PLUGINS jest klasą udostępnioną Joomla! w chwili jego załadowania. Nie musisz jej deklarować jako globalnej.

Zawiera metodę nazwaną registerFunction w formie:

$_PLUGINS ⇒ registerFunction( 'event_name', 'function_name' );

Zdarzeniem dostępnym dla wyszukiwania jest onSearch, więc tego użyjemy dla event_name.

function_name jest nazwą funkcji która ma być wykonana kiedy Joomla! podniesie wyzwalacz onSearch. Może nazywać się dowolnie, jednak należy pamiętać, aby nazwa funkcji była unikalna. Dla tego przykładu nazwaliśmy ją botSearchContacts. Funkcje wywoływane przez zdarzenie onSearch mają następujący obowiązkowy argument:

function function_name( string 'search_text' )

Argumentem tym jest po prostu ciąg znaków do wyszukania. Reszta funkcji wyszukuje ten ciąg w bazie danych i zwraca tablicę wyników. Zapytanie musi zwracać rzędy wyników w następujących polach:

  • title
    Nazwa wyniku wyszukiwania
  • created
    Data utworzenia/modyfikacji wyniku wyszukiwania
  • section
    Źródło wyniku wyszukiwania (sekcja, komponent)
  • href
    Atrybut href odnośnika do wyniku. Innymi słowy link do wyniku.
  • browsernav
    Okno prezentacji. Ustaw na 2, aby wynik był otwierany w obecnym oknie.
Zmieniony ( 19.06.2007. )
 
« poprzedni artykuł   następny artykuł »