Continuo nel lavoro (ci sto forse capendo qualcosa di più rispetto a prima).
Ora l'array $rows viene riempito correttamente, son passato quindi a modificare la view (view.html.php e default_results.php) in modo da far mostrare quello che voglio nel frontend. Sto anche pensando di far mostrare una miniatura dell'avatar (se si usa Community Builder) nei risultati di ricerca.
Appena termino la view, passo a integrare le variabili per la restrizione della ricerca.
incollo nuovamente il codice del plugin, ancora in fase di lavoro:
<?php
// no direct access
defined('_JEXEC') or die;
class plgSearchUtenti extends JPlugin
{
public function __construct(& $subject, $config)
{
parent::__construct($subject, $config);
$this->loadLanguage();
}
function onContentSearchAreas()
{
static $areas = array(
'utenti' => 'Utenti'
);
return $areas;
}
function onContentSearch($text, $phrase='', $ordering='', $areas=null)
{
$db = JFactory::getDbo();
$app = JFactory::getApplication();
$user = JFactory::getUser();
$groups = implode(',', $user->getAuthorisedViewLevels());
if (is_array($areas)) {
if (!array_intersect($areas, array_keys($this->onContentSearchAreas()))) {
return array();
}
}
$rows = array();
$query = "SELECT `username`, `registerDate`, `lastvisitDate` FROM `#__users` WHERE `username` = '" . $text . "';";
$db->setQuery($query);
$rows = $db->loadObjectList();
if ($rows == null) { //RIMUOVERE, SOLO PER TEST ESECUZIONE QUERY
$rows ='ARRAY VUOTO';
return $rows;
} else {
foreach($rows as $key => $row) {
$rows[$key]->href = 'index.php/profilo-personale/userprofile/'.$row->username;
$rows[$key]->registered = $row->registerDate;
$rows[$key]->lastvisit = $row->lastvisitDate;
$rows[$key]->text = $row->username;
}
return $rows;
}
}
}
?>