Joomla 2.5 composant de création et enregistrement des données

J'ai été à l'aide de cette documentation (le seul que je peux trouver sur le web) pour créer un composant:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component/2.5/Introduction

Je peux le comprendre, dans une certaine mesure, cependant, il n'est vraiment l'absence de toute définition. Le composant j'ai créé des œuvres à un certain degré, même si je vais avoir quelques wier problèmes.

Fondamentalement, tout ce que je besoin de la composante à faire est de simplement charger une zone paramètres à régler quelques valeurs, et à travers elle, être en mesure de modifier ces valeurs. Voici une ventilation de ce que j'ai:

Une vue pour une forme de chargement, dans les données du formulaire à partir de la base de données.
les barres d'outils de configuration pour sauvegarder/appliquer et annuler.

Cette charge sans erreurs, et selon tous les docs sur joomla, j'ai trouvé, par l'initialisation d'un JControllerForm exemple avec un JTable connecté dans le modèle, simple enregistrement des formulaires devrait fonctionner automatiquement. Cependant, même si il n'y a absolument aucune référence n'importe où dans le code d'un point de vue avec un s à la fin (vue principale est tireapi, les formes toujours redirige vers tireapis).

Ceci affiche une erreur 500, il n'y a pas de jeu d'endroit qui a de ce point de vue. La documentation inclut une liste de vue, cependant je n'ai qu'une seule ligne j'ai besoin de modifier, si une liste est inutile. Je sais que les paramètres peuvent être fixés à des composants plutôt que de faire un champ de base de données, cependant, je suis incapable de trouver de la documentation relative à.

Ce que je cherche, c'est une orientation sur la façon d'arrêter le composant de redirection vers une personne existante vue, et bien d'enregistrer les données. Liens vers de la documentation qui montre non seulement un exemple de code, mais décrit les fonctions et comment ils fonctionnent serait bénéfique.

Voici une partie du code, n'hésitez pas à signaler tout ce que je pourrais être complètement dominant (je suis plus récente à la création de composants):

tireapi.php:

<?php
//No direct access to this file
defined('_JEXEC') or die('Restricted access');

//import joomla controller library
jimport('joomla.application.component.controller');

//Get an instance of the controller prefixed by TireAPI
$controller = JController::getInstance('TireAPI');

//Get the task
$jinput = JFactory::getApplication()->input;
$task = $jinput->get('task', "", 'STR' );

//Perform the Request task
$controller->execute($task);

//Redirect if set by the controller
$controller->redirect();
?>

controller.php:

<?php
//No direct access to this file
defined('_JEXEC') or die('Restricted access');

//import Joomla controller library
jimport('joomla.application.component.controller');

class TireAPIController extends JController{
    function display($cachable = false){
        //set default view if not set
        $input = JFactory::getApplication()->input;
        $input->set('view', $input->getCmd('view', 'TireAPI'));

        //call parent behavior
        parent::display($cachable);
    }
}
?>

controllers/tireapi.php:

<?php
//No direct access to this file
 defined('_JEXEC') or die('Restricted access');
//import Joomla controllerform library
jimport('joomla.application.component.controllerform');
class TireAPIControllerTireAPI extends JControllerForm{}
?>

models/tireapi.php:

<?php
//No direct access to this file
defined('_JEXEC') or die('Restricted access');
//import the Joomla modellist library
jimport('joomla.application.component.modeladmin');
class TireAPIModelTireAPI extends JModelAdmin{
    protected $settings; //define settings

    public function getTable($type = 'TireAPI', $prefix = 'TireAPITable', $config = array()){
        return JTable::getInstance($type, $prefix, $config);
    }

    public function getSettings(){ //grab settings from database
        if(!isset($this->settings)){
            $table = $this->getTable();
            $table->load(1);
            $this->settings = $table;
        }
        return $this->settings;
    }
    public function getForm($data = array(), $loadData = true){
    //Get the form.
        $form = $this->loadForm('com_tireapi.tireapi', 'tireapi',
            array('control' => 'jform', 'load_data' => $loadData));
        if (empty($form)){
            return false;
        }
        return $form;
    }
    protected function loadFormData(){
        //Check the session for previously entered form data.
        $data = JFactory::getApplication()->getUserState('com_tireapi.edit.tireapi.data', array());
        if (empty($data)){
            $data = $this->getSettings();
        }
        return $data;
    }
}
?>

tables/tireapi.php:

<?php
//No direct access
defined('_JEXEC') or die('Restricted access');

//import Joomla table library
jimport('joomla.database.table');
class TireAPITableTireAPI extends JTable
{
    function __construct( &$db ) {
        parent::__construct('#__tireapi', 'id', $db);
    }
}
?>

views/tireapi/view.html.php:

<?php
//No direct access to this file
defined('_JEXEC') or die('Restricted access');

//import Joomla view library
jimport('joomla.application.component.view');

class TireAPIViewTireAPI extends JView{
        function display($tpl = null){

            $form = $this->get('Form');
            $item = $this->get('Settings');

            //Check for errors.
            if(count($errors = $this->get('Errors'))){
                JError::raiseError(500, implode('<br />', $errors));
                return false;
            }
            //Assign data to the view
            $this->item = $item;
            $this->form = $form;

            $this->addToolBar();

            //Display the template
            parent::display($tpl);
        }
        protected function addToolBar() {
            $input = JFactory::getApplication()->input;
            JToolBarHelper::title(JText::_('COM_TIREAPI_MANAGER_TIREAPIS'));
            JToolBarHelper::apply('tireapi.apply');
            JToolBarHelper::save('tireapi.save');
            JToolBarHelper::cancel('tireapi.cancel');
        }
}
?>

views/tireapi/tmpl/default.php:

<?php
//No direct access to this file
defined('_JEXEC') or die('Restricted Access');

//load tooltip behavior
JHtml::_('behavior.tooltip');
?>
<form action="<?php echo JRoute::_('index.php?option=com_tireapi&layout=edit&id='.(int) $this->item->id); ?>"
      method="post" name="adminForm" id="tireapi-form">
    <fieldset class="adminform">
            <legend><?php echo JText::_( 'COM_TIREAPI_DETAILS' ); ?></legend>
            <ul class="adminformlist">
    <?php foreach($this->form->getFieldset() as $field): ?>
                    <li><?php echo $field->label;echo $field->input;?></li>
    <?php endforeach; ?>
            </ul>
    </fieldset>
    <div>
        <input type="hidden" name="task" value="tireapi.edit" />
        <?php echo JHtml::_('form.token'); ?>
    </div>
</form>

Ils sont tous les fichiers que je pense que peut importe, laissez-moi savoir si je dois inclure plus.

Mise à JOUR:
Je peux maintenant le problème de redirection d'arrêter, mais il ne sera pas enregistrer de données.
J'obtiens cette erreur:
Vous n'êtes pas autorisé à utiliser ce lien pour accéder directement à cette page (#1).

C'est le dernier obstacle pour obtenir ce très basique admin fonction. Des idées?
Pour clarifier, j'ai mis les formes mais un fichier xml et qui se charge correctement, même les remplir avec les données appropriées à partir de la base de données. Cependant lorsque je clique sur "appliquer" il vient de me dirige vers le formulaire avec le message d'erreur répertoriés ci-dessus, sans l'enregistrer.

OriginalL'auteur Jordan Ramstad | 2013-04-19