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.
96 lines
2.1 KiB
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();
|
|
}
|
|
}
|