function store($fieldid = 0, $updateNulls = false) { global $_CB_database; $this->fieldid = $fieldid; $fieldHandler = new cbFieldHandler(); $sql = 'SELECT COUNT(*) FROM #__comprofiler_fields WHERE fieldid = ' . (int) $this->fieldid; $_CB_database->SetQuery($sql); $total = $_CB_database->LoadResult(); if ($total > 0) { // existing record: $ret = $this->_db->updateObject($this->_tbl, $this, $this->_tbl_key, $updateNulls); // escapes values if ($ret) { $ret = $fieldHandler->adaptSQL($this); } } else { // new record: $sql = 'SELECT COUNT(*) FROM #__comprofiler_fields WHERE name = ' . $_CB_database->Quote($this->name); $_CB_database->SetQuery($sql); if ($_CB_database->LoadResult() > 0) { $this->_error = "The field name " . $this->name . " is already in use!"; return false; } $sql = 'SELECT MAX(ordering) FROM #__comprofiler_fields WHERE tabid = ' . (int) $this->tabid; $_CB_database->SetQuery($sql); $max = $_CB_database->LoadResult(); $this->ordering = $max + 1; $this->fieldid = null; $this->table = $fieldHandler->getMainTable($this); $this->tablecolumns = implode(',', $fieldHandler->getMainTableColumns($this)); $ret = $fieldHandler->adaptSQL($this); if ($ret) { $ret = $this->_db->insertObject($this->_tbl, $this, $this->_tbl_key); // do inserObject last to keep insertId intact } } if (!$ret) { $this->_error = get_class($this) . "::store failed: " . addslashes(str_replace("\n", '\\n', $this->_error . ' ' . $this->_db->getErrorMsg())); return false; } else { return true; } }