Listar na administração do joomla

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);
}
 
Back
Topo