Fork me on GitHub






dirty
Semi pro
Inscrit: 22/02/2004 20:41
Messages: 997
Bonjour,

en fait j'ai du mal à comprendre l'utilité de ça

Citation :
if (!$obj->isDirty()) {
$obj->setErrors('Not dirty'); //will usually not be outputted as errors are not displayed when the method returns true, but it can be helpful when troubleshooting code - Mith
return true;
}



cette condition vient du code suivant

Citation :
/**
* insert a new object in the database
*
* @param object $obj reference to the object
* @param bool $force whether to force the query execution despite security settings
* @param bool $checkObject check if the object is dirty and clean the attributes
* @return bool FALSE if failed, TRUE if already present and unchanged or successful
*/

function insert(&$obj, $force = false, $checkObject = true)
{
if ($checkObject != false) {
if (!is_object($obj)) {
echo '<br><h1>Error, not object</h1>';
return false;
}
/**
* @TODO: Change to if (!(class_exists($this->className) && $obj instanceof $this->className)) when going fully PHP5
*/
if (!is_a($obj, $this->className)) {
$obj->setErrors(get_class($obj).' Differs from '.$this->className);
return false;
}
if (!$obj->isDirty()) {
$obj->setErrors('Not dirty'); //will usually not be outputted as errors are not displayed when the method returns true, but it can be helpful when troubleshooting code - Mith
return true;
}
}
if (!$obj->cleanVars()) {
foreach($obj->getErrors() as $oneerror) {
echo '<br /><h2>'.$oneerror.'</h2>';
}
return false;
}
foreach ($obj->cleanVars as $k => $v) {
if ($obj->vars[$k]['data_type'] == XOBJ_DTYPE_INT) {
$cleanvars[$k] = intval($v);
} elseif ( is_array( $v ) ) {
$cleanvars[ $k ] = $this->db->quoteString( implode( ',', $v ) );
} else {
$cleanvars[$k] = $this->db->quoteString($v);
}
}
if(isset($cleanvars['dohtml'])) { // Modification Hervé to be able to use dohtml
unset($cleanvars['dohtml']);
}

if ($obj->isNew()) {
if (!is_array($this->keyName)) {
if ($cleanvars[$this->keyName] < 1) {
$cleanvars[$this->keyName] = $this->db->genId($this->table.'_'.$this->keyName.'_seq');
}
}
$sql = 'INSERT INTO '.$this->table.' ('.implode(',', array_keys($cleanvars)).') VALUES ('.implode(',', array_values($cleanvars)) .')';

} else {

$sql = 'UPDATE '.$this->table.' SET';
foreach ($cleanvars as $key => $value) {
if ((!is_array($this->keyName) && $key == $this->keyName) || (is_array($this->keyName) && in_array($key, $this->keyName))) {
continue;
}
if (isset($notfirst) ) {
$sql .= ',';
}
$sql .= ' '.$key.' = '.$value;
$notfirst = true;
}
if (is_array($this->keyName)) {
$whereclause = '';
$vnb = count($this->keyName);
for ($i = 0; $i < $vnb; $i++) {
if ($i > 0) {
$whereclause .= ' AND ';
}
$whereclause .= $this->keyName[$i].' = '.$obj->getVar($this->keyName[$i]);
}
}
else {
$whereclause = $this->keyName.' = '.$obj->getVar($this->keyName);
}
$sql .= ' WHERE '.$whereclause;
}
if (false != $force) {
$result = $this->db->queryF($sql);
} else {
$result = $this->db->query($sql);
}
if (!$result) {
return false;
}
if ($obj->isNew() && !is_array($this->keyName)) {
$obj->assignVar($this->keyName, $this->db->getInsertId());
}
return true;
}


Merci
++

Posté le : 29/12/2008 03:33
Partager Twitter Partagez cette article sur GG+
Re: dirty
Semi pro
Inscrit: 22/02/2004 20:41
Messages: 997
Si je retire cette condition, mes données s'insèrent autrement il n'y rien qui se passe.

Posté le : 29/12/2008 03:34
Partager Twitter Partagez cette article sur GG+
Re: dirty
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Salut, et la question est ?
Tu n'indiques pas du tout ce que tu veux faire, ni quelle version de xoops ou de modules sont concernés.
Ni pourquoi tu veux changer ça.

Posté le : 29/12/2008 11:01
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

59 Personne(s) en ligne (53 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 59 | Plus ...