/** * Resolves an file path for a row */ public function resolveFile($row = array(), $column = '', $default = '') { if (!empty($column) && array_key_exists($column, $row)) { $value = trim($row[$column]); if (!empty($value) && Validate::isUrl($row[$column]) !== true) { $row[$column] = Server::getBaseUrl($row[$column]); } } return $row; }
/** * Load and filter list of menu items data from a file */ private function _loadMenuData($file) { $file = Sanitize::toPath($file); $menu = is_file($file) ? include_once $file : []; $output = []; $count = 1; if (is_array($menu)) { foreach ($menu as $idx => $item) { $active = ""; $url = Utils::value(@$item["url"], Server::getBaseUrl()); if (empty($item["url"])) { if (!empty($item["route"])) { if (preg_match("/^(\\/" . $this->_area . ")?(\\/" . $this->_controller . ")/", $item["route"]) === 1) { $active = "active"; // route matched current location } $url = Server::getBaseUrl($item["route"]); } else { if (!empty($item["controller"])) { if ($this->_controller === $item["controller"]) { $active = "active"; // controller matched current controller } $area = $this->_area !== "site" ? $this->_area : ""; $route = Utils::buildPath($area, $item["controller"], @$item["action"]); $url = Server::getBaseUrl($route); } } } $item["active"] = $active; $item["url"] = $url; $output[] = $item; $count++; } } return $output; }
/** * Get script base URL */ public function getBaseUrl($append = '') { return Server::getBaseUrl($append); }
/** * Helper: Get base url */ public function baseUrl($append = null) { return Server::getBaseUrl($append); }
/** * Send a rendered template file HTML message */ public function sendTemplate($file, $data = []) { $view = new View(); $view->setTemplate($file); $view->setKey("url", Server::getUrl()); $view->setKey("baseurl", Server::getBaseUrl()); $view->setKey("browser", Connection::getAgent()); $view->setKey("ip", Connection::getIp()); $view->setKey("date", date("r T")); $view->mergeData($data); return $this->sendHtml($view->render()); }