public static function BotchaFormModel::save in BOTCHA Spam Prevention 7.2
Same name and namespace in other branches
- 6.2 model/botcha_form.model.inc \BotchaFormModel::save()
- 6.3 model/form/botcha.form.model.inc \BotchaFormModel::save()
- 7.3 model/form/botcha.form.model.inc \BotchaFormModel::save()
Save form to the database.
Parameters
BotchaForm $form:
2 calls to BotchaFormModel::save()
- BotchaFormAbstract::save in controller/
botcha_form.controller.inc - BotchaFormNone::save in controller/
botcha_form.controller.inc
File
- model/
botcha_form.model.inc, line 45 - Contains BotchaFormModel class.
Class
- BotchaFormModel
- @file Contains BotchaFormModel class.
Code
public static function save($form) {
// Catching of PDOException helps to avoid WSOD during update use case. The
// reason is in that form_alter is called before performing an update.
// @see http://drupal.org/node/1828710
try {
// Save form.
$forms = db_select('botcha_form', 'bf')
->fields('bf')
->condition('id', $form->id)
->execute()
->fetchCol();
if (!count($forms)) {
db_insert('botcha_form')
->fields(array(
'id' => $form->id,
))
->execute();
}
$recipebook = $form
->getRecipebook();
// Save form-recipe book relationship.
db_merge('botcha_recipebook_form')
->key(array(
'form_id' => $form->id,
))
->fields(array(
'rbid' => $recipebook->id,
))
->execute();
} catch (Exception $e) {
if ($e instanceof PDOException) {
watchdog_exception('BOTCHA', $e, 'Please perform an update via update.php or reinstall the BOTCHA module to fix the reason of this warning! %type: !message in %function (line %line of %file).', array(), WATCHDOG_WARNING);
}
}
}