Sou novo aqui no fórum e não tenho conhecimento da linguagem php. Na verdade, sou desenvolvedor Java, mas tive de fazer um trabalho em Joomla, utilizando o componente ADSmanager e o módulo mod_adsmanager_ads. Este módulo me exibe os produtos cadastrados de forma aleatória, ultimos produtos ou randomicamente. No máximo, para variar um pouco a exibição, ele permite a escolha de uma categoria de produtos ou do ID do próprio produto.
Criei um campo na tabela do anúncio que classifica o anuncio como 3 tipos, de valores 0, 1 e 2.
Preciso que ele exiba os produtos de determinado tipo de anúncio, então fiz as alterações nos arquivos necessários, mas chegando no arquivo content.php, precisei alterar a função getLatestContents, para que ela, além de filtrar por categoria, filtre também por tipo de anúncio.
Então ficou assim:
function getLatestContents($nbcontents,$sort_type=0,$catselect="no",$tipoanuncio="no")
{
switch($sort_type)
{
/* Popular */
case 2:
$order_sql = "ORDER BY a.views DESC,a.date_created DESC ,a.id DESC ";
break;
/* Random */
case 1:
$order_sql = "ORDER BY RAND() ";
break;
/* Latest */
case 0:
default:
$order_sql = "ORDER BY a.date_created DESC ,a.id DESC ";
break;
}
$cat_query = "";
switch($catselect)
{
case "no";
break;
case "-1":
$catid = JRequest::getInt('catid', 0 );
$this->_db->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
" WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$listcats = $this->_db->loadObjectList();
//List
$list = array();
$list[] = $catid;
$this->_recurseSearch($listcats,$list,$catid);
$listids = implode(',', $list);
if (($catid != 0)&&($catid != -1))
{
$cat_query = "adcat.catid IN ($listids) AND ";
}
break;
default:
$cat_query = "adcat.catid = $catselect AND ";
break;
}
[b]
//TESTE DE MODIFICAÇÃO DA FUNÇÃO[/b]
$tipo_query = "";
switch($tipoanuncio)
{
case "no";
break;
case "-1":
$ad_kindof = JRequest::getInt('ad_kindof',0);
$this->_db->setQuery( "SELECT a.id, a.ad_headline, a.ad_price, a.ad_kindof, a.ad_ano ".
" FROM #__adsmanager_ads as a ".
"WHERE a.published = 1");
$listanuncio = $this->_db->loadObjectList();
//List
$list2 = array();
$list2[] = $ad_kindof;
$this->_recurseSearch($listanuncio,$list2,$ad_kindof);
$listids2 = implode(',', $list2);
if (($ad_kindof != 0)&&($ad_kindof != -1))
{
$tipo_query = "ads.ad_kindof IN ($listids2) AND ";
}
break;
default:
$tipo_query = "ads.ad_kindof = $tipoanuncio AND ";
break;
}
$this->_db->setQuery("SELECT a.id,a.views, a.ad_headline, a.category, a.ad_price, a.ad_ano, a.ad_kindof, a.date_created,p.id as parentid,p.name as parent,c.id as catid, c.name as cat ".
"FROM #__adsmanager_ads as a ".
"INNER JOIN #__adsmanager_adcat as adcat ON adcat.adid = a.id ".
"LEFT JOIN #__users as u ON a.userid = u.id ".
"INNER JOIN #__adsmanager_categories as c ON adcat.catid = c.id ".
"LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
"WHERE $cat_query c.published = 1 and $tipo_query a.published = 1 GROUP BY a.id $order_sql LIMIT 0, $nbcontents");
$contents = $this->_db->loadObjectList();
return $contents;
}
Pessoal, existe algum erro nessa implementação que eu fiz, que sinceramente, não estou conseguindo detectar. Já testei as QUERY e todas funcionam. Tenho a impresão que a variável $tipo_query não está sendo repassada, ou repassada com valor nulo ou coisa parecida.
Pergunta
Kleber Cardoso
Olá pessoal, boa noite.
Sou novo aqui no fórum e não tenho conhecimento da linguagem php. Na verdade, sou desenvolvedor Java, mas tive de fazer um trabalho em Joomla, utilizando o componente ADSmanager e o módulo mod_adsmanager_ads. Este módulo me exibe os produtos cadastrados de forma aleatória, ultimos produtos ou randomicamente. No máximo, para variar um pouco a exibição, ele permite a escolha de uma categoria de produtos ou do ID do próprio produto.
Criei um campo na tabela do anúncio que classifica o anuncio como 3 tipos, de valores 0, 1 e 2.
Preciso que ele exiba os produtos de determinado tipo de anúncio, então fiz as alterações nos arquivos necessários, mas chegando no arquivo content.php, precisei alterar a função getLatestContents, para que ela, além de filtrar por categoria, filtre também por tipo de anúncio.
Então ficou assim:
Pessoal, existe algum erro nessa implementação que eu fiz, que sinceramente, não estou conseguindo detectar. Já testei as QUERY e todas funcionam. Tenho a impresão que a variável $tipo_query não está sendo repassada, ou repassada com valor nulo ou coisa parecida.
Se alguém puder contribuir, agradeço.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.