function get_knowledge_base_title($q) { $kb = get_knowledge_base(); foreach (get_knowledge_base() as $label => $group) { foreach ($group as $key => $data) { if ($key == $q) { return is_array($data) ? $data['title'] : $data; } } } return "(Unknown kb article '" . htmlspecialchars($q) . "')"; }
<?php require __DIR__ . "/../layout/templates.php"; $q = require_get("q"); if (!is_string($q)) { set_temporary_errors(array(t("Invalid article key."))); redirect(url_for('help')); } if (!$q) { redirect(url_for('help')); } // we define all knowledge base articles ourselves, so that there's no chance // of a security breach/injection $knowledge = get_knowledge_base(); global $title; $title = false; foreach ($knowledge as $label => $a) { if (isset($a[$q])) { $title = $a[$q]; } } if (!$title) { set_temporary_errors(array(t("No such knowledge base article ':key'.", array(':key' => htmlspecialchars($q))))); redirect(url_for('help')); } if (is_array($title)) { global $kb_inline; $kb_inline = $title['inline']; $title = $title['title']; $q = 'inline'; }