1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Listar na administração do joomla

Discussão em 'Web Development' iniciada por satman1, 9 de Outubro de 2008. (Respostas: 0; Visualizações: 474)

  1. satman1

    satman1 Power Member

    Olá,

    Estou a concluir o desenvolvimento de um componente para joomla 1.5 e deparei-me com um problema. Queria construir listagens de pagamentos consoante a selecção efectuada pelo admin (seja por utilizador ou por pagamento).
    Tenho as funções construídas, no entanto, não há maneira de interagir com elas no admin visto não haver botões na toolbar do joomla que façam listagens (como há botões para guardar ou editar).
    Já descobri que o JToolBarHelper situado em administrator/includes/toolbar.php tem funções para criar botões "custom" bastando lá colocar a task (coloquei aí qual a função que queria chamar ao clicar no botão). Fiz esta alteração e nada.

    Mostro as funções que desenvolvi:

    PHP:


    function seleccionaPagamentos() //selecciona o pagamento
    {
      global 
    $option;
    $row =& JTable::getInstance('pagamentos''Table');
    $cid JRequest::getVar'cid', array(0), '''array' );
    $id_pagamento $cid[0];
    $row->load($id_pagamento);
    $db =& JFactory::getDBO();
    $rowsPagamento=array();
      
    $query "SELECT id_pagamento as value, descricao_pagam as text FROM #__pagamentos";
    $db->setQuery($query );
    $rowsPagamento =$db->loadObjectList();

    $rowsPagamento['descricao_pagam']= JHTML::_('select.genericlist',$rowsPagamento,'id_pagamento','class="inputbox" size="1"''value''text',$row->id_pagamento);
    HTML_pagamentos::escolhaPagamento($option$rowsPagamento);
    }

    PHP:

    function carregaPagamentos()//recebe o pagamento seleccionado e redirecciona para as listagens
    {
    global 
    $option;
    $row =& JTable::getInstance('pagamentos''Table');
    if(!
    $row->bind(JRequest::get('post'))){
    echo 
    "110<script> alert('".$row->getError()."');
    window.history.go(-1); </script>\n"
    ;
    exit();
    }

    $this->setRedirect('index.php?option=' $option '&task=estatisticasPag','Estatistica gerada');
    }
    PHP:
    function mostraEstatisticasPagamentos() //faz a listagem pretendida, neste caso por pagamento seleccionado
    {
    global 
    $option,$mainframe;

    $limit JRequest::getVar('limit',
    $mainframe->getCfg('list_limit'));
    $limitstart JRequest::getVar('limitstart'0);
    $db =& JFactory::getDBO();
    $query "SELECT count(*) FROM #__pagamentos_socios ps WHERE ps.id_pagamento IN ($rowsPagamento)";
    $db->setQuery$query );
    $total $db->loadResult();    
    $query"SELECT c.*, r.montante_pagam, s.nome_user 
               FROM #__pagamentos_socios 
                 AS c 
               LEFT JOIN #__pagamentos 
                 AS r 
                 ON c.id_pagamento=r.id_pagamento
               LEFT JOIN #__associados 
                 AS s 
                 ON s.id = c.idAssociado 
               LEFT JOIN #__users 
                 AS u 
                 ON u.id=s.id_user"
    ;
             
    $db->setQuery$query$limitstart$limit );
    $rows $db->loadObjectList();
    if (
    $db->getErrorNum())
    {
    echo 
    $db->stderr();
    return 
    false;
    }
    jimport('joomla.html.pagination');
    $pageNav = new JPagination($total$limitstart$limit);
    HTML_pagamentos::showEstatisticaPagamento($option$rows$pageNav,$rowsPagamento);
    }
     

Partilhar esta Página