Здравствуйте!
Еще раз прошу помощи в создании компонента.
в созданой части компонента есть форма, внесенные данные в которую нужно записать в бд. у меня в голове не укладывается, что я делаю не так (((
в шаблоне компонента есть форма :
<form action="" method="post" name="adminForm" id="adminForm">
<input type="hidden" name="option" value="com_osago" />
<input type="hidden" name="task" value="create" />
и т.д.
т.е. данные передаются в этот же мой компонент, $task имеет значение "create".
Контроллер у меня выглядит так:
<?php
defined( '_JEXEC' ) or die;
jimport( 'joomla.application.component.controller' );
class OsagoController extends JController
{
function __construct()
{
parent::__construct();
}
public function display()
{
parent::display();
}
public function create()
{
JRequest::setVar('view', 'osagocreate');
$this->display();
}
}
view.html.php имеет такой код:
<?php
defined( '_JEXEC' ) or die;
jimport( 'joomla.application.component.view' );
class osagoViewosagocreate extends JViewLegacy {
function display($tpl = null)
{
// инстанцируем объект таблицы #__cgcadmins
$row = JTable::getInstance('Osago', 'Table');
$this->assignRef('row', $row);
parent::display($tpl);
}
}
Модель:
<?php
// Запрет прямого доступа.
defined('_JEXEC') or die;
// Подключаем библиотеку modelitem Joomla.
jimport('joomla.application.component.modelitem');
class OsagoModelOsago extends JModelItem
{
public function osagocreate($post)
{
$table = $this->getTable('osago');
if (!$table->bind($post))
{
$this->setError($table->getError());
return false;
}
if ($table->check($post))
{
if (!$table->store($post))
{
$this->setError($table->getError());
return false;
}
}
else
{
$this->setError($table->getError());
return false;
}
return true;
}
}
и файл tables/osago.php который лежит в админке:
<?php
// защита от прямого доступа
defined('_JEXEC') or die('Restricted access');
class Tableosago extends JTable
{
/**
* Первичный ключ
*
* @var integer
*/
public $id = null;
public $dat = null;
public $summ = null;
/**
* Конструктор
*
* @param object $db Объект базы данных JDatabase
*/
function __construct(&$db)
{
parent::__construct('#__osago', 'id', $db);
}
}
пользовался я статьями:
http://blog.contra.lv/2010/02/25/pishem-svoj-mvc-komponent-praktika-chast-8/как и другими от b2z. материал хоть и понятный, но без практики сложновато мне.
Вроде бы как все должно сработать: контроллер получил таск, сработала в нем функция "create", запустили вьювер "osagocreate". вьювер я скопировал (честно), потому, что до конца не понял что там происходит, может тут ошибка?