14
« il: 02 Giu 2012, 16:58:54 »
Dunque per la pagina con le immagini postate dal singolo utente in altre categorie ho risolto quindi tanto vale che ci metto come ho fatto visto che potrebbe interessare a qualcun altro.
Ho modificato il file models/category.php dove c'è la query di ricerca, più o meno alla riga 140, da così:
$leftTag = '';
if ((int)$tagId > 0) {
$leftTag = ' LEFT JOIN #__phocagallery_tags_ref AS t ON t.imgid = a.id';
}
if ((int)$tagId > 0) {
$wheres[] = ' t.tagid= '.(int)$tagId;
} else {
$wheres[] = ' a.catid= '.(int)$this->_id;
}
a così:
$leftTag = '';
if ((int)$tagId > 0) {
$leftTag = ' LEFT JOIN #__phocagallery_tags_ref AS t ON t.imgid = a.id';
}
if ((int)$tagId > 0) {
$wheres[] = ' t.tagid= '.(int)$tagId;
} else if ( (int)$_GET['userid'] >0) {
$wheres[] = ' ua.id= '.(int)$_GET['userid'];
} else {
$wheres[] = ' a.catid= '.(int)$this->_id;
}
Poi ho modificato il file views/category/tmpl/default.php più o meno alla riga 50, da così:
$this->checkRights = 1;
if ((int)$this->tagId > 0) {
// Search by tags
$this->checkRights = 1;
// Categories View in Category View
if ($this->tmpl['displaycategoriescv']) {
echo $this->loadTemplate('categories');
}
a così:
$this->checkRights = 1;
if (((int)$this->tagId > 0)||((int)$_GET['userid'] > 0)) {
// Search by tags
$this->checkRights = 1;
// Categories View in Category View
if ($this->tmpl['displaycategoriescv']) {
echo $this->loadTemplate('categories');
}
Infine ho modificato il file views/detail/default_multibox.php (dato che gli zoom li mostro con il multibox) più o meno alla riga 86, da così:
// Uploaded By
if ($this->tmpl['mb_uploaded_by']) {
echo '<div class="pg-multibox-user" >' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . '<>';
if ($this->tmpl['useravatarimg'] != '') {
echo '<div class="pg-multibox-avatar">'.$this->tmpl['useravatarimg'].'<>';
}
echo '<div class="pg-multibox-username" style="padding-top: '.$this->tmpl['useravatarmiddle'].'px;">'.$this->item->usernameno.'<>';
echo '<div style="clear:both"><>';
}
a così:
// Uploaded By
if ($this->tmpl['mb_uploaded_by']) {
echo '<div class="pg-multibox-user" >' . JText::_('COM_PHOCAGALLERY_UPLOADED_BY') . '<>';
if ($this->tmpl['useravatarimg'] != '') {
echo '<div class="pg-multibox-avatar">'.$this->tmpl['useravatarimg'].'<>';
}
$immagini_utente=explode("gallerie",$_SERVER["HTTP_REFERER"]);
$immagini_utente=$immagini_utente[0]."gallerie/category/user?userid=".$this->item->userid;
echo '<div class="pg-multibox-username" style="padding-top: '.$this->tmpl['useravatarmiddle'].'px;"><a href="'.$immagini_utente.'" target="_blank">'.$this->item->usernameno.'</a><>';
echo '<div style="clear:both"><>';
}
In questo modo l'username è linkato ed apre una pagina simile a quella di ricerca per tag, con le solo immagini postate dall'utente, indifferentemente dalla categoria.
Le uniche cose da perfezionare sarebbero il passaggio della variabile GET con i metodi set e get come avviene con il GET del tag, e il fatto che andrebbe fatto un override. Comunque non credo che il passaggio diretto della variabile GET generi problemi più di tanto, dal momento che viene filtrata come valore intero.