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:
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);
}