elFinder::bind PHP Метод

bind() публичный Метод

Add handler to elFinder command
Автор: Dmitry (dio) Levashov
public bind ( $cmd, $handler ) : elFinder
Результат elFinder
    public function bind($cmd, $handler)
    {
        $allCmds = array_keys($this->commands);
        $cmds = array();
        foreach (explode(' ', $cmd) as $_cmd) {
            if ($_cmd !== '') {
                if ($all = strpos($_cmd, '*') !== false) {
                    list(, $sub) = array_pad(explode('.', $_cmd), 2, '');
                    if ($sub) {
                        $sub = str_replace('\'', '\\\'', $sub);
                        $addSub = create_function('$cmd', 'return $cmd . \'.\' . trim(\'' . $sub . '\');');
                        $cmds = array_merge($cmds, array_map($addSub, $allCmds));
                    } else {
                        $cmds = array_merge($cmds, $allCmds);
                    }
                } else {
                    $cmds[] = $_cmd;
                }
            }
        }
        $cmds = array_unique($cmds);
        foreach ($cmds as $cmd) {
            if (!isset($this->listeners[$cmd])) {
                $this->listeners[$cmd] = array();
            }
            if (is_callable($handler)) {
                $this->listeners[$cmd][] = $handler;
            }
        }
        return $this;
    }