function radio_assoc($checked, $assoc, $input_name, $link = false)
{
    $ret = '<table cellspacing="0" cellpadding="0"><tr>';
    foreach ($assoc as $id => $name) {
        $params = array('id' => $id, 'name' => $name, 'checked' => checked($checked == $id), 'input_name' => $input_name);
        if ($link) {
            if (is_array($link)) {
                $params['link'] = $link[$id];
            } else {
                $params['link'] = sprintf($link, $id, $name);
            }
            $ret .= str_bind('<td><input class="checkbox" type="radio" name="%input_name%" id="%input_name%_%id%" value="%id%" %checked%></td><td>%link%&nbsp;</td>', $params);
        } else {
            $ret .= str_bind('<td><input class="checkbox" type="radio" name="%input_name%" id="%input_name%_%id%" value="%id%" %checked%></td><td><label for="%input_name%_%id%">%name%</label>&nbsp;</td>', $params);
        }
    }
    $ret .= '</tr></table>';
    return $ret;
}
 /**
  * Execs a shell command
  * @param       $command
  * @param array $bindings
  *
  * @return string
  */
 public function execShellCommand($command, array $bindings = [])
 {
     return shell_exec(str_bind($command, $bindings));
 }