具有watchdog_severity_levels()的复选框 [英] Checkboxes with watchdog_severity_levels()

查看:240
本文介绍了具有watchdog_severity_levels()的复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  / ** 
*我有这个代码让我看到一些复选框,复选框的错误,警报等
* /
foreach(watchdog_severity_levels()as $ severity => $ description){
$ key ='severity_errors'。 $严重性;
$ 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 = array_filter(variable_get($ key,array())); 

我认为这个设置是错误的,因为drupal让我出错。
在这一组$ key之后,我用以下的foreach语句命名,有人可以帮助我吗?

  foreach($ key as $ value){
if($ value =='warning'){
blablblablabla ....
}
elseif($ value =='notice '){
blablablbalbal ....
}
}


解决方案

使用您的逻辑,您将存储以下密钥 severity_errors0 severity_errors1 severity_errors2 ,...在变量表中,因为 $ severity 键仅仅是索引。



将选定严重性级别的数组存储在变量表中的一个条目并不容易?



这里有一些为你做的工作的示例代码:

 code> //检索存储变量
$ severity_levels = variable_get('severity_levels',array());

//声明空选项数组
$ severity_options = array();

//循环遍历每个严重性级别,并推送到表单
foreach(watchdog_severity_levels()as $ severity)的options数组{
$ severity_options [$ severity] = t(' @description',array(
'@description'=> drupal_ucfirst($ severity),
));
}

//为给定的严重性级别生成复选框列表
$ form ['severity_levels'] = array(
'#type'=>'checkboxes' ,
'#options'=> $ severity_options,
'#default_value'=> array_values($ severity_levels),
);

return system_settings_form($ form);

现在,要检索所选的严重性级别,请执行以下操作:

  //检索存储变量
$ severity_levels = variable_get('severity_levels',array());

foreach($ severity_levels as $ level => $ selected){
if(!$ selected){
//未选择严重性级别
continue;
}

//选择严重等级,你的逻辑在这里
// $ level
}
pre>

I have this code that gets me out some checkboxes with the watchdog severities:

  /**
   * 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);
  }

I set this $key in my code as:

$key = array_filter(variable_get($key,array()));

I think this set is wrong as the drupal gets me out error. After that set of $key I call it with the following foreach statement could someone help me with that thing?

foreach ($key as $value) {
  if ($value == 'warning') {
    blablblablabla....
  }
  elseif ($value == 'notice') {
    blablablbalbal....
  }
}

解决方案

Using your logic, you would store following keys severity_errors0, severity_errors1, severity_errors2, ... in the variable table because the $severity key of your foreach is just the index.

Wouldn't it be easier to store an array of selected severity levels as one entry in the variable table?

Here some example code which does the job for you:

// 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);

Now to retrieve the selected severity levels, you do something like this:

// 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
}

这篇关于具有watchdog_severity_levels()的复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆