public function link($href, $text, $htmlOptions = [], $checkAccess = true) {
        if ($checkAccess && is_array($href)){
            $module = isset($href[3])?$href[3]:((isset($href[2]) && is_string($href[2]))?$href[2]:null);
            if (!WebApp::get()->hasAccessTo($href[0], isset($href[1])?$href[1]:null, $module)){
                return ""; // is not visible;
            }
        }
        if (is_array($href)){
            $module = isset($href[3])?$href[3]:((isset($href[2]) && is_string($href[2]))?$href[2]:null);
            $href = WebApp::get()->request()->createURL($href[0], isset($href[1])?$href[1]:null, (isset($href[2])&&is_array($href[2]))?$href[2]:[], $module);
        }
        $htmlOptions['href'] = $href;
        return $this->tag('a', $text, $htmlOptions);
    }