function node_breadcrumb_admin_settings in Node breadcrumb 6
1 string reference to 'node_breadcrumb_admin_settings'
File
- ./
node_breadcrumb.module, line 154
Code
function node_breadcrumb_admin_settings($dummy = NULL, $rid = NULL) {
$weight_delta = max(5, db_result(db_query("select max(abs(weight)) from {node_breadcrumb_rule}")) + 1);
if (module_exists('taxonomy')) {
$vocabularies = taxonomy_get_vocabularies();
}
$types = node_get_types();
// add rule
$form['add'] = _node_breadcrumb_rule_form(t('Add rule'), NULL, NULL, NULL, NULL, 0, $weight_delta, t('Add rule'));
// edit rule
if ($rid) {
$db_rule = db_query("select * from {node_breadcrumb_rule} where rid=%d", $rid);
$rule = db_fetch_object($db_rule);
if ($rule->rid) {
$form['edit'] = _node_breadcrumb_rule_form(t('Edit rule'), $rule->node_type, array(
$rule->tid1,
$rule->tid2,
), $rule->condition, $rule->mid, $rule->weight, $weight_delta, t('Save rule'));
$form['edit']['rid'] = array(
'#type' => 'hidden',
'#value' => $rid,
);
$form['edit']['cancel'] = array(
'#type' => 'submit',
'#value' => t('Cancel'),
);
unset($form['add']);
}
}
// rules
$db_rules = db_query("select * from {node_breadcrumb_rule} order by weight, rid");
while ($rule = db_fetch_object($db_rules)) {
$menu_item = menu_link_load($rule->mid);
$terms = array();
if (module_exists('taxonomy')) {
if ($rule->tid1) {
$term = taxonomy_get_term($rule->tid1);
$terms[] = $rule->tid1 > 0 ? l($term->name, "taxonomy/term/{$rule->tid1}") : t("any of") . " <" . $vocabularies[-$rule->tid1]->name . ">";
}
if ($rule->tid2) {
$term = taxonomy_get_term($rule->tid2);
$terms[] = l($term->name, "taxonomy/term/{$rule->tid2}");
}
}
unset($condition);
if ($rule->condition != '') {
$condition = check_plain($rule->condition);
$js_condition = check_plain(str_replace("'", "\\'", $rule->condition));
$condition = "<a title=\"{$condition}\" href=\"javascript:prompt('" . t('Condition') . "','{$js_condition}');void(0);\">PHP</a>";
}
$rids[$rule->rid] = '';
$form['rules']['node_type'][$rule->rid] = array(
'#value' => $types[$rule->node_type]->name,
);
$form['rules']['tid'][$rule->rid] = array(
'#value' => empty($terms) ? "<" . t('none') . ">" : join(", ", $terms),
);
$form['rules']['condition'][$rule->rid] = array(
'#value' => $condition,
);
$form['rules']['mid'][$rule->rid] = array(
'#value' => l($menu_item['title'], $menu_item['href']),
);
$form['rules']['weight']["weight_{$rule->rid}"] = array(
'#type' => 'weight',
'#default_value' => $rule->weight,
'#required' => true,
'#delta' => $weight_delta,
);
$form['rules']['edit'][$rule->rid] = array(
'#value' => l(t('edit'), "admin/settings/node_breadcrumb/{$rule->rid}"),
);
}
$form['rules']['delete'] = array(
'#type' => 'checkboxes',
'#options' => $rids,
);
if ($form['rules']['node_type']) {
$form['rules']['submit'] = array(
'#type' => 'submit',
'#value' => t('Delete rule'),
);
$form['rules']['save'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
}
return $form;
}