File "form.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/vikbooking/libraries/adapter/mvc/models/form.php
File size: 4.49 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* @package VikWP - Libraries
* @subpackage adapter.mvc
* @author E4J s.r.l.
* @copyright Copyright (C) 2023 E4J s.r.l. All Rights Reserved.
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
* @link https://vikwp.com
*/
// No direct access
defined('ABSPATH') or die('No script kiddies please!');
JLoader::import('adapter.mvc.model');
JLoader::import('adapter.form.form');
/**
* The form model class used by the MVC framework.
* A form model can be used by a controller or a view to handle
* a FORM entity of the plugin.
*
* The model can be invoked when the value contained
* in $_REQUEST['task'] is equals to 'ComponentModel' + $_REQUEST['task'].
*
* e.g. $_REQUEST['task'] = 'groups.save' -> ComponentModelGroups
*
* @since 10.0
*/
abstract class JModelForm extends JModel
{
/**
* Creates or updates the specified record.
*
* @param mixed $data The record to insert.
*
* @return mixed The ID of the inserted record on success, false otherwise.
*/
public function save(&$data)
{
/**
* Rely on JTable instance to complete the saving process.
*
* @since 10.1.35
*/
$table = $this->getTable();
// attempt to save data
if ($table->save($data))
{
// saved successfully, return PK
return $table->{$table->getKeyName()};
}
// something went wrong, try to obtain an error
$error = $table->getError($get_last = null, $string = true);
if ($error)
{
// error found, register it within the model
$this->setError($error);
}
return false;
}
/**
* Deletes the specified records.
*
* @param mixed $ids The PK value (or a list of values) of the record(s) to remove.
*
* @return boolean True if at least a record has been removed, otherwise false.
*/
public function delete($ids)
{
/**
* Rely on JTable instance to complete the deleting process.
*
* @since 10.1.35
*/
$table = $this->getTable();
$return = false;
foreach ((array) $ids as $id)
{
if ($table->delete($id))
{
$return = true;
}
else
{
// something went wrong, try to obtain an error
$error = $table->getError($get_last = null, $string = true);
if ($error)
{
// error found, register it within the model
$this->setError($error);
}
}
}
return $return;
}
/**
* Basic item loading implementation.
*
* @param mixed $pk An optional primary key value to load the row by, or an array of fields to match.
* If not set the instance property value is used.
* @param boolean $new True to return an empty object if missing.
*
* @return mixed The record object on success, null otherwise.
*
* @since 10.1.35 Added support for $new argument.
*/
public function getItem($pk, $new = false)
{
/**
* Rely on JTable instance to complete the fetching process.
*
* @since 10.1.35
*/
$table = $this->getTable();
// reset table to make sure we obtain valid values
$table->reset();
// attempt to load record
$loaded = ($pk && $table->load($pk));
if ($loaded || $new === true)
{
// loaded successfully or requested an empty object
return (object) $table->getProperties();
}
// something went wrong, try to obtain an error
$error = $table->getError($get_last = null, $string = true);
if ($error)
{
// error found, register it within the model
$this->setError($error);
}
return null;
}
/**
* Obtains the JForm object related to the model view.
*
* @return JForm The form object.
*/
public function getForm()
{
$comp = $this->getComponentName();
$name = $this->getModelName();
$client = $this->getClientFolder();
$id = serialize(array($comp, $name, $client));
$path = implode(DIRECTORY_SEPARATOR, array(WP_PLUGIN_DIR, $comp, $client, 'views', $name, 'tmpl', 'default.xml'));
try
{
$form = JForm::getInstance($id, $path);
}
catch (Exception $e)
{
$form = null;
}
return $form;
}
/**
* This method should be used to pre-load an item considering
* the data set in the request.
*
* For example, if the request owns an ID, this method may try
* to retrieve the item from the database.
* Otherwise it may return an empty object.
*
* @return array|object The object found.
*/
public function loadFormData()
{
return array();
}
/**
* This method should be used to retrieve the posted data
* after the form submission.
*
* @return array|object The data object.
*/
public function getFormData()
{
return array();
}
}