Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em adaptação de código módulo Joomla Adsmanager


Kleber Cardoso

Pergunta

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:

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.

Se alguém puder contribuir, agradeço.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...