Hmm, it's documented - you just have to look
Code:
/**
* This variable prevents the pre_save() method from being called more than once.
* In some classes, it is helpful to explicitly call pre_save() before
* calling save as additional checks are done. This variable is used to prevent
* pre_save() from being executed when save() is called. If null, pre_save()
* has yet to be called; else, it is the return value of pre_save().
*
* @var null|bool
*/
var $presave_called = null;
/**
* Any checks to run immediately before saving. If returning false, the save will not take place.
*
* @param boolean Do the query?
*
* @return boolean True on success; false if an error occurred
*/
function pre_save($doquery = true)
Quote:
PHP Code:
if ($this->presave_called !== null)
{
return $this->presave_called;
}
|
Check if it was called already, if this is the Case return the previous result.
Quote:
PHP Code:
if (!parent::pre_save($doquery))
{
$this->presave_called = false;
return false;
}
|
If pre_save() fails in the Parent-Class it's failed.
Quote:
PHP Code:
if (!$this->pre_save_post($doquery))
{
$this->presave_called = false;
return false;
}
|
If pre_save() for the Post failed, pre_save() for the Thread failed.
Quote:
dateline? username? post? Where are they getting all this from?
|
These are required Fields, so they must be present upon saving, eg. can be loaded with fetch_field():
PHP Code:
/**
* Fetches info about the current data object - if a new value is set, it returns this, otherwise it will return the existing data
*
* @param string Fieldname
*
* @return mixed The requested data
*/
function &fetch_field($fieldname, $table = null)
{
if ($table === null)
{
$table =& $this->table;
}
if (isset($this->{$table}["$fieldname"]))
{
return $this->{$table}["$fieldname"];
}
else if (isset($this->existing["$fieldname"]))
{
return $this->existing["$fieldname"];
}
else
{
return null;
}
}