function installFieldValue($fieldid, $fieldvalue)
 {
     global $_CB_database;
     $row = new moscomprofilerFieldValues($_CB_database);
     $row->fieldid = $fieldid;
     $row->fieldtitle = $fieldvalue->attributes('title');
     $row->ordering = $fieldvalue->attributes('ordering');
     $row->sys = $fieldvalue->attributes('sys');
     $_CB_database->setQuery("SELECT fieldvalueid FROM #__comprofiler_field_values WHERE fieldid = " . (int) $fieldid . " AND fieldtitle = '" . $row->fieldtitle . "'");
     $fieldvalueid = $_CB_database->loadResult();
     if (!$row->store($fieldvalueid)) {
         $this->setError(1, 'SQL error on field store' . ': ' . $row->getError());
         return false;
     }
     return true;
 }
Ejemplo n.º 2
0
 /**
  *	Delete method for fields deleting also fieldvalues, but not the data column in the comprofiler table.
  *	For that, deleteDataDescr() method must be called instead.
  *
  *	@param id of row to delete
  *	@return true if successful otherwise returns and error message
  */
 function delete($oid = null)
 {
     $k = $this->_tbl_key;
     if ($oid) {
         $this->{$k} = (int) $oid;
     }
     $result = true;
     //Find all fieldValues related to the field
     $this->_db->setQuery("SELECT `fieldvalueid` FROM #__comprofiler_field_values WHERE `fieldid`=" . (int) $this->{$k});
     $fieldvalues = $this->_db->loadObjectList();
     $rowFieldValues = new moscomprofilerFieldValues($this->_db);
     if (count($fieldvalues) > 0) {
         //delete each field value related to a field
         foreach ($fieldvalues as $fieldvalue) {
             $result = $rowFieldValues->delete($fieldvalue->fieldvalueid) && $result;
         }
     }
     //Now delete the field itself without deleting the user data, preserving it for reinstall
     //$this->deleteColumn( $this->table, $this->name );	// this would delete the user data
     $result = parent::delete($this->{$k}) && $result;
     return $result;
 }