it-swarm-es.tech

Component-Creator: Ayuda para el desarrollo de componentes

He creado un componente usando http://component-creator.com/

Tengo dos tablas #__competition_data & #__competition_entries.

También tengo una vista vacía

La tabla #__competition_data es donde se agregan las competencias (en el backend) y las #__competition_entries es donde se almacenan las entradas, desde un formulario de front-end.

En mi vista vacía, quiero poder mostrar los _datos (que muestran el título de la competencia, etc.) y mostrar el formulario (de las entradas) debajo.

Tengo una cuenta premium con Component-Creator, pero dicen que ya no pueden ayudarme con mi solicitud de soporte (que creo que es un incumplimiento de contrato, pero esa es otra historia).

Sé que necesito editar:

models/frontendv1ewform.php
view/frontendv1ewform/view.html.php
ver/frontendv1ewform/tmpl/default.php

Pero parece que no puedo entender dónde me estoy equivocando. ¡He leído los documentos en Joomla.org pero todavía no puedo resolverlo! ¿Alguna idea de dónde voy mal?

3
RustyJoomla

Si entendí bien, desea tener una lista de datos de una tabla junto con un formulario para la otra tabla en la misma vista. Este tipo de vistas no es la tarea más fácil porque hace uso de múltiples modelos. Es muy probable que esté fuera del alcance de para qué está creado el creador de componentes y, por lo tanto, ya no le brindan soporte. Eso es comprensible.

Si este es su primer componente, le aconsejaría que busque un enfoque diferente. Como cargar el formulario haciendo clic en un botón (tal vez en un modal). Entonces es fácil porque el formulario será una vista de formulario normal y usted tiene una lista de datos de vista regular.

Si está más familiarizado con Joomla MVC, puede asignar dos modelos dentro de su controlador y cargar los datos necesarios de aquellos en su vista.

En mi componente lo hice en mi controlador principal (controller.php) en el método de visualización basado en la vista activa. Algo como esto:

// Add additional models
$viewName       = $this->input->get('view', 'default_view');
$format         = $this->input->get('format', 'html');

switch ($viewName)
{
    case 'foo':
        $viewLayout = $this->input->get('layout', 'default');
        $view = $this->getView($viewName, $format, '', array('base_path' => $this->basePath, 'layout' => $viewLayout));
        $view->setModel($this->getModel('foo'));
        $view->setModel($this->getModel('bar'));
        break;
    case '...':
        ...
        break;
}
3
Bakual