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

Problema a desenvolver componente em joomla 1.5

Discussão em 'Web Development' iniciada por satman1, 28 de Agosto de 2008. (Respostas: 3; Visualizações: 1920)

  1. satman1

    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.

    [​IMG]
     
    Última edição: 28 de Agosto de 2008
  2. podes colocar aqui o codigo para eu lhe dar uma vista de olhos.
     
  3. satman1

    satman1 Power Member

    Como não sei onde é o erro, vou mostrar o pacote completo do admin, inclusive a programação das toolbars.
    http://rapidshare.com/files/141125176/admin.rar.html

    Obrigado desde já por qualquer ajuda.
     
  4. satman1

    satman1 Power Member

    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: 30 de Agosto de 2008

Partilhar esta Página