class BotchaModel in BOTCHA Spam Prevention 7.3
Same name and namespace in other branches
- 6.2 model/botcha.model.inc \BotchaModel
- 6.3 model/application/botcha.application.model.inc \BotchaModel
- 7.2 model/botcha.model.inc \BotchaModel
Hierarchy
- class \BotchaModel extends \Model implements IBotchaModel
Expanded class hierarchy of BotchaModel
File
- model/
application/ botcha.application.model.inc, line 120 - Contains BotchaModel class.
View source
class BotchaModel extends Model implements IBotchaModel {
const RELATION_FORM_RECIPEBOOK = 'BotchaFormRecipebookRelation';
const RELATION_RECIPE_RECIPEBOOK = 'BotchaRecipeRecipebookRelation';
protected $app_name = 'Botcha';
/**
* Just an alias for getRecipebooksForms.
* @param array $parameters
* @return array
*/
public static function getFormsRecipebooks($parameters = array()) {
// @todo Remove hardcode.
$parameters['mode'] = !empty($parameters['mode']) ? $parameters['mode'] : 'recipebook';
return self::getRecipebooksForms($parameters);
}
public static function getRecipebooksForms($parameters = array()) {
$fields = array();
switch ($parameters['mode']) {
case 'form':
$fields[] = 'form_id';
break;
case 'recipebook':
default:
$fields[] = 'rbid';
break;
}
$rbf = db_select('botcha_recipebook_form', 'brf')
->fields('brf', $fields);
if (!empty($parameters['recipebooks'])) {
$rbf
->condition('rbid', (array) $parameters['recipebooks'], 'IN');
}
if (!empty($parameters['forms'])) {
$rbf
->condition('form_id', (array) $parameters['forms'], 'IN');
}
// 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 {
$result = $rbf
->execute()
->fetchCol();
} 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);
$result = array();
}
}
return $result;
}
public static function getRecipesRecipebooks($parameters = array()) {
// @todo Remove hardcode.
$parameters['mode'] = !empty($parameters['mode']) ? $parameters['mode'] : 'recipebook';
return self::getRecipebooksRecipes($parameters);
}
public static function getRecipebooksRecipes($parameters = array()) {
$fields = array();
switch ($parameters['mode']) {
case 'recipe':
$fields[] = 'recipe_id';
break;
case 'recipebook':
default:
$fields[] = 'rbid';
break;
}
$rbr = db_select('botcha_recipebook_recipe', 'brr')
->fields('brr', $fields);
if (!empty($parameters['recipebooks'])) {
$rbr
->condition('rbid', (array) $parameters['recipebooks'], 'IN');
}
if (!empty($parameters['recipes'])) {
$rbr
->condition('recipe_id', (array) $parameters['recipes'], 'IN');
}
// 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 {
$result = $rbr
->execute()
->fetchCol();
} 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);
$result = array();
}
}
return $result;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BotchaModel:: |
protected | property | ||
BotchaModel:: |
public static | function |
Just an alias for getRecipebooksForms. Overrides IBotchaModel:: |
|
BotchaModel:: |
public static | function |
Overrides IBotchaModel:: |
|
BotchaModel:: |
public static | function |
Overrides IBotchaModel:: |
|
BotchaModel:: |
public static | function |
Overrides IBotchaModel:: |
|
BotchaModel:: |
constant | |||
BotchaModel:: |
constant |