You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
j4examplecode/src/administrator/components/com_foos/src/Model/FooModel.php

96 lines
2.1 KiB

<?php
/**
* @package Joomla.Administrator
* @subpackage com_foos
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace FooNamespace\Component\Foos\Administrator\Model;
\defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\MVC\Model\AdminModel;
/**
* Item Model for a Foo.
*
* @since __BUMP_VERSION__
*/
class FooModel extends AdminModel
{
/**
* The type alias for this content type.
*
* @var string
* @since __BUMP_VERSION__
*/
public $typeAlias = 'com_foos.foo';
/**
* Method to get the row form.
*
* @param array $data Data for the form.
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
*
* @return \JForm|boolean A \JForm object on success, false on failure
*
* @since __BUMP_VERSION__
*/
public function getForm($data = [], $loadData = true)
{
// Get the form.
$form = $this->loadForm($this->typeAlias, 'foo', ['control' => 'jform', 'load_data' => $loadData]);
if (empty($form)) {
return false;
}
return $form;
}
/**
* Method to get the data that should be injected in the form.
*
* @return mixed The data for the form.
*
* @since __BUMP_VERSION__
*/
protected function loadFormData()
{
$app = Factory::getApplication();
// Check the session for previously entered form data.
$data = $app->getUserState('com_foos.edit.foo.data', []);
if (empty($data)) {
$data = $this->getItem();
// Prime some default values.
if ($this->getState('foo.id') == 0) {
$data->set('catid', $app->input->get('catid', $app->getUserState('com_foos.foos.filter.category_id'), 'int'));
}
}
$this->preprocessData($this->typeAlias, $data);
return $data;
}
/**
* Prepare and sanitise the table prior to saving.
*
* @param \Joomla\CMS\Table\Table $table The Table object
*
* @return void
*
* @since __BUMP_VERSION__
*/
protected function prepareTable($table)
{
$table->generateAlias();
}
}