如何在php中从另一个函数初始化变量
我正在为Drupal建立一个自定义规则,以便在容量达到极限时发送电子邮件。是的,我在Drupal Stackexchange中问过这个问题,但是他们说这是php问题。由于我一直都在思考这个问题,而不是作为一名开发人员,我需要寻求帮助。希望我能正确解释 我的问题是我不确定如何将事件总容量的值从事件中拉入变量如何在php中从另一个函数初始化变量,php,variables,drupal,drupal-7,drupal-rules,Php,Variables,Drupal,Drupal 7,Drupal Rules,我正在为Drupal建立一个自定义规则,以便在容量达到极限时发送电子邮件。是的,我在Drupal Stackexchange中问过这个问题,但是他们说这是php问题。由于我一直都在思考这个问题,而不是作为一名开发人员,我需要寻求帮助。希望我能正确解释 我的问题是我不确定如何将事件总容量的值从事件中拉入变量$registration 我将附上我的规则以向您显示该代码。我已经初始化了变量,但是,我知道我需要以某种方式将该值拉入规则中的变量或规则的脚本/文件中。一旦我得到了这个值,我就应该能够判断是真
$registration
我将附上我的规则以向您显示该代码。我已经初始化了变量,但是,我知道我需要以某种方式将该值拉入规则中的变量或规则的脚本/文件中。一旦我得到了这个值,我就应该能够判断是真是假
function registration_capacity_rules_condition_info() {
$conditions = array(
'registration_capacity_event_is_at_capacity' => array(
'label' => t('Event has reached maximum registrations'),
'group' => t('MY MODULE'),
'parameters' => array(
'registration' => array(
'type' => 'registration',
'label' => t('The registration event capacity'),
),
),
),
);
return $conditions;
}
function registration_capacity_event_is_at_capacity($registration) {
if ($registration == registration_event_count()) {
return TRUE;
}
}
我真的认为我需要连接到事件,以便它知道如何提取该值。然而,我不完全确定要看什么才能得到这个。我读过关于设置变量的书,但是我没有发现任何东西可以帮助我从我正在构建的脚本/文件之外的其他位置提取变量
希望我能清楚地知道一些有用的方向。谢谢大家!
编辑*********添加注册\事件\计数()函数
function registration\u event\u count($entity\u type,$entity\u id,$registration\u id=NULL,$reset=FALSE){
$count=&drupal\u static(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
如果(!$count | |$reset){
$query=db_select('registration','r');
$query->addExpression('sum(count)','count');
$query->condition('entity\u id',$entity\u id);
$query->condition('entity\u type',$entity\u type);
如果($registration\u id!=NULL){
$query->condition('registration\u id',$registration\u id',);
}
$query->condition('state',registration\u get\u active\u states(),'IN');
$result=$query->execute();
$count=$result->fetchField();
$count=($count='')-0:$count;
}
//允许其他MOD覆盖计数。
$settings=注册\实体\设置($entity\类型,$entity\ id);
$context=array(
“实体类型”=>$实体类型,
“实体id”=>$entity\u id,
'registration\u id'=>$registration\u id,
“设置”=>$settings,
);
drupal\u alter('registration\u event\u count',$count,$context);
返回$count;
}
如果有人看到这个,我可以得到返回为“1”或true的值。我现在只需要获取if语句来触发rules操作。一旦我弄明白了,我就发布。你能发布函数
注册\u事件\u计数()的代码吗?
?
function registration_event_count($entity_type, $entity_id, $registration_id = NULL, $reset = FALSE) {
$count = &drupal_static(__FUNCTION__ . '_' . $entity_type . '_' . $entity_id . '_' . $registration_id, FALSE);
if (!$count || $reset) {
$query = db_select('registration', 'r');
$query->addExpression('sum(count)', 'count');
$query->condition('entity_id', $entity_id);
$query->condition('entity_type', $entity_type);
if ($registration_id != NULL) {
$query->condition('registration_id', $registration_id, '<>');
}
$query->condition('state', registration_get_active_states(), 'IN');
$result = $query->execute();
$count = $result->fetchField();
$count = ($count == '') ? 0 : $count;
}
// Allow other mods to override count.
$settings = registration_entity_settings($entity_type, $entity_id);
$context = array(
'entity_type' => $entity_type,
'entity_id' => $entity_id,
'registration_id' => $registration_id,
'settings' => $settings,
);
drupal_alter('registration_event_count', $count, $context);
return $count;
}