watchdog_severity_levels() 复选框
Checkboxes with watchdog_severity_levels()
我有这段代码可以让我退出一些带有看门狗严重性的复选框:
/**
* Checkbox for errors, alerts, e.t.c
*/
foreach (watchdog_severity_levels() as $severity => $description) {
$key = 'severity_errors' . $severity;
$form['severity_errors'][$key] = array(
'#type' => 'checkbox',
'#title' => t('@description', array('@description' => drupal_ucfirst($description))),
'#default_value' => variable_get($key, array()),
);
return system_settings_form($form);
}
我在我的代码中将这个 $key 设置为:
$key = array_filter(variable_get($key,array()));
我认为这个集合是错误的,因为 drupal 让我出错了。
在那组 $key 之后,我用下面的 foreach 语句调用它,有人可以帮助我吗?
foreach ($key as $value) {
if ($value == 'warning') {
blablblablabla....
}
elseif ($value == 'notice') {
blablablbalbal....
}
}
您需要添加一些调试来找出到底哪里出错了。建议使用 dpm() 在某些关键阶段检查代码,例如 1) 构建表单之后,2) 当您将数组分配给 $key 和 3) 在开始最终的 foreach 循环之前,以便您可以查明位置它出了问题并解决它。
使用您的逻辑,您可以将以下键 severity_errors0
、severity_errors1
、severity_errors2
、...存储在 variable
table 中,因为 $severity
你的 foreach 的键就是索引。
将一组选定的严重级别作为一个条目存储在变量中会不会更容易table?
这里有一些示例代码可以为您完成工作:
// Retrieve store variable
$severity_levels = variable_get('severity_levels', array());
// Declare empty options array
$severity_options = array();
// Loop through each severity level and push to options array for form
foreach (watchdog_severity_levels() as $severity) {
$severity_options[$severity] = t('@description', array(
'@description' => drupal_ucfirst($severity),
));
}
// Generate checkbox list for given severity levels
$form['severity_levels'] = array(
'#type' => 'checkboxes',
'#options' => $severity_options,
'#default_value' => array_values($severity_levels),
);
return system_settings_form($form);
现在要检索选定的严重性级别,您可以执行如下操作:
// Retrieve store variable
$severity_levels = variable_get('severity_levels', array());
foreach ($severity_levels as $level => $selected) {
if (!$selected) {
// Severity level is not selected
continue;
}
// Severity level is selected, do your logic here
// $level
}
我有这段代码可以让我退出一些带有看门狗严重性的复选框:
/**
* Checkbox for errors, alerts, e.t.c
*/
foreach (watchdog_severity_levels() as $severity => $description) {
$key = 'severity_errors' . $severity;
$form['severity_errors'][$key] = array(
'#type' => 'checkbox',
'#title' => t('@description', array('@description' => drupal_ucfirst($description))),
'#default_value' => variable_get($key, array()),
);
return system_settings_form($form);
}
我在我的代码中将这个 $key 设置为:
$key = array_filter(variable_get($key,array()));
我认为这个集合是错误的,因为 drupal 让我出错了。 在那组 $key 之后,我用下面的 foreach 语句调用它,有人可以帮助我吗?
foreach ($key as $value) {
if ($value == 'warning') {
blablblablabla....
}
elseif ($value == 'notice') {
blablablbalbal....
}
}
您需要添加一些调试来找出到底哪里出错了。建议使用 dpm() 在某些关键阶段检查代码,例如 1) 构建表单之后,2) 当您将数组分配给 $key 和 3) 在开始最终的 foreach 循环之前,以便您可以查明位置它出了问题并解决它。
使用您的逻辑,您可以将以下键 severity_errors0
、severity_errors1
、severity_errors2
、...存储在 variable
table 中,因为 $severity
你的 foreach 的键就是索引。
将一组选定的严重级别作为一个条目存储在变量中会不会更容易table?
这里有一些示例代码可以为您完成工作:
// Retrieve store variable
$severity_levels = variable_get('severity_levels', array());
// Declare empty options array
$severity_options = array();
// Loop through each severity level and push to options array for form
foreach (watchdog_severity_levels() as $severity) {
$severity_options[$severity] = t('@description', array(
'@description' => drupal_ucfirst($severity),
));
}
// Generate checkbox list for given severity levels
$form['severity_levels'] = array(
'#type' => 'checkboxes',
'#options' => $severity_options,
'#default_value' => array_values($severity_levels),
);
return system_settings_form($form);
现在要检索选定的严重性级别,您可以执行如下操作:
// Retrieve store variable
$severity_levels = variable_get('severity_levels', array());
foreach ($severity_levels as $level => $selected) {
if (!$selected) {
// Severity level is not selected
continue;
}
// Severity level is selected, do your logic here
// $level
}