Problema a desenvolver componente em joomla 1.5

satman1

Power Member
Boas,

Estou a desenvolver um componente para joomla 1.5 que pretende receber os registos dos sócios de uma associação. Essa parte já está a funcionar (front end).
O problema é quando no lado do administrador (back end) tento editar esses dados ou então inserir manualmente um registo. Consigo listar no admin os registos.Os botões "save" e "cancel" parecem não estar direccionados para o componente, porque quando clico nesses botões surge a seguinte mensagem de erro" Error 404-Component not found".Já revi o código e não consigo descobrir o que está mal.

P.S:Tenho um componente no qual me baseei para fazer este que vi num livro. Implementei-o e funciona. Por isso, não percebo este erro. Calculo que seja alguma ligação ao componente que esteja mal feita.

 
Última edição:
Controller, o admin.nomedocomponente.php redirecciona para este ficheiro:


<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.controller' );
class AssociadoController extends JController
{
function __construct( $default = array() )
{
parent::__construct( $default );
$this->registerTask( 'add' , 'edit' );
$this->registerTask( 'apply', 'save' );
}
function edit()
{
global $option;
$row =& JTable::getInstance('associado', 'Table');
$cid = JRequest::getVar( 'cid', array(0), '', 'array' );
$id = $cid[0];
$row->load($id);
$lists = array();
$grupsang = array(
'0' => array('value' => 'A',
'text' => 'A'),
'1' => array('value' => 'B',
'text' => 'B'),
'2' => array('value' => 'AB',
'text' => 'AB'),
'3' => array('value' => 'O',
'text' => 'O'),);
$lists['grupsang'] = JHTML::_('select.genericList',
$grupsang, 'grupsang', 'class="inputbox" '. '', 'value',
'text', $row->grupsang);
$lists['deficiente'] = JHTML::_('select.booleanlist', 'deficiente',
'class="inputbox"', $row->deficiente);
$lists['feridocomb'] = JHTML::_('select.booleanlist', 'feridocomb',
'class="inputbox"', $row->feridocomb);
$lists['fercampanha'] = JHTML::_('select.booleanlist', 'fercampanha',
'class="inputbox"', $row->fercampanha);
$lists['ferservico'] = JHTML::_('select.booleanlist', 'ferservico',
'class="inputbox"', $row->ferservico);
$lists['convocado'] = JHTML::_('select.booleanlist', 'convocado',
'class="inputbox"', $row->convocado);
HTML_associados::editAssociado($row, $option,$lists);
}
function save()
{
global $option;
$row =& JTable::getInstance('associado', 'Table');
if(!$row->bind(JRequest::get('post'))){
echo "110<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit();
}
if(!$row->store())
{
echo "110<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit();
}
switch ($this->$task)
{
case 'apply':
$msg = 'Alterações guardadas';
break;
case 'save':
default:
$msg = 'Registo guardado';
break;
}
$this->setRedirect('index.php?option=' . $option . '&task=mostraRegistos',$msg);
}
function mostraRegistos()
{
global $option, $mainframe;
$limit = JRequest::getVar('limit',
$mainframe->getCfg('list_limit'));
$limitstart = JRequest::getVar('limitstart', 0);
$db =& JFactory::getDBO();
$query = "SELECT count(*) FROM #__associados";
$db->setQuery( $query );
$total = $db->loadResult();
$query = "SELECT * FROM #__associados";
$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_associados::showSocios( $option, $rows, $pageNav );
}
}
?>

Form(admin.nomedocomponente.html.php):


function editAssociado($row, $lists, $option)
{
$editor =& JFactory::getEditor();
JHTML::_('behavior.calendar');
?>
<form action="index.php" method="post"
name="adminForm" id="adminForm">
<fieldset class="adminform">
<legend>Abaixo encontram-se os dados submetidos pelo utilizador. Pode editar os campos em caso de necessidade.</legend>
<table>
<tr>
<td>

(Campos do form)


</td>
</tr>
</table>
</fieldset>
<input type="hidden" name="id"
value="<?php echo $row->id; ?>" />
<input type="hidden" name="option" value="<?php echo $option;?>" />
<input type="hidden" name="task" value="" />
</form>
<?php
}
 
Última edição:
Back
Topo