Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2010, 15:40
StrikeFreedom
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Ayuda con creacion de componente 1.5

Holam he leido varios tutoriales, he hecho algunos ejemplos muy basicos, he estado desarrollando un ejemplo de prueba:
asi esta mi componente:
dentro de la carperta com_prueba, esta mi archivo principal: prueba.php

Código PHP:
defined('_JEXEC') or die('Restricted access');
require_once(
JPATH_COMPONENT.DS.'controller.php');

if(
$controller JRequest::getWord('controller')) {
    
$path JPATH_COMPONENT.DS.'controllers'.DS.$controller.'.php';
    if (
file_exists($path)) {
        require_once 
$path;
    } else {
        
$controller '';
    }
}

$classname 'pruebaController'.$controller;
$controller = new $classname();

$controller->executeJRequest::getVar'task',null,'default' ) );

$controller->redirect() 
Hasta alli todo bien, luego mi controlador(com_prueba/controller.php)

Código PHP:
defined'_JEXEC' ) or die( 'Restricted access' );
jimport('joomla.application.component.controller');

class 
pruebaController extends JController
{
    function 
display()
    {
        
parent::display();
    }


    function 
save(){
    
// get the data to be saved ($_POST hash)
    
$caja1 JRequest::getVar('caja1');
    
// get the model
    
$model $this->getModel('prueba');

    
$view = &$this->getView('save');
    
$view->display();


        if (
$model->save($caja1))
        {
            
$message=JText::_('FoobarSaveFailed');
        }
        else
        {

            
$message='['.$model->getError().']';$message .= ' ['.$getError().']';
        }
        
//$this->setRedirect('index.php?option=com_prueba', $message);
   
}

}) 
luego mi modelo (com_prueba/models/prueba.php)

Código PHP:
defined('_JEXEC') or die("Invalid access");
jimport('joomla.application.component.model');

class 
pruebaModelprueba extends JModel
{


    function 
getMensaje(){
        return 
"Hola, soy un valor devuelto por el modelo";
    }

    function 
save($caja1var){

            
//hago el query para que guarde y demas cosas

            
return 'guardo';

    }



mi primer view(com_prueba/views/prueba/view.html.php):

Código PHP:
    defined'_JEXEC') or die( 'Restricted access');
    
jimport'joomla.application.component.view');

    class 
pruebaViewprueba extends JView
    
{
        function 
display($tpl null)
        {
        
$model =& $this->getModel();
        
$mensaje $model->getMensaje();
        
$this->assignRef('mensaje',$mensaje);

        
parent::display($tpl);
        }



    } 
archivo default del primer view(com_prueba/views/prueba/tmpl/default.php)

Código PHP:
<h1> <?php  echo $this->mensaje ?> </h1>
<form action="<?php echo JRoute::_'index.php' );?>" method="post" >
<input type="text" name="caja1" />
<input type="submit" value="enviar">
<input type="hidden" name="task" value="save" />
</form>

mi segundo view(com_prueba/views/save/view.html.php):

Código PHP:
defined'_JEXEC') or die( 'Restricted access');
    
jimport'joomla.application.component.view');

    class 
pruebaViewsave extends JView
    
{
        function 
display($tpl null)
        {
        
$model =& $this->getModel();
        
$mensaje $model->save();
        
parent::display($tpl);
        }




archivo default del segundo view(com_prueba/views/save/tmpl/default.php)

Código PHP:
<h1Guardado </h1
cuando ejecuto mi componente
http://localhost/joomla-1-5-15/index...ion=com_prueba

muestra el mensaje: Hola, soy un valor devuelto por el modelo
y me muestra la caja de texto con el boton submit, cuando le doy click al boton submit para que ejecute el metodo save, me sale error 500 y este mensaje:
View not found [name, type, prefix]: save,,pruebaView

Alguien puede darme una mano, la verdad he leido el tutorial para crear componentes pero no me queda claro mi error.
Salu2