/** * Include layout * * Parameters: * * - name - layout name * - module - module name * * @param array $params * @param Smarty $smarty * @return null */ function smarty_function_include_layout($params, &$smarty) { $name = array_var($params, 'name'); if (empty($name)) { return new InvalidParamError('name', $name, "'name' property is required for 'include_layout' helper", true); } // if $module = array_var($params, 'module'); if (empty($module)) { return new InvalidParamError('module', $module, "'module' property is required for 'include_layout' helper", true); } // if return tpl_fetch(get_layout_path($name, $module)); }
/** * Serve HTTP error * * If $only_headers is TRUE function returns only http header without any * fancy output * * @param integer $code * @param string $message * @param boolean $die * @param boolean $only_header * @param boolean $portal_error * @return null */ function httpError($code, $message = null, $die = true, $only_headers = false, $portal_error = false) { if ($message === null) { $errors = array(100 => "HTTP/1.1 100 Continue", 101 => "HTTP/1.1 101 Switching Protocols", 200 => "HTTP/1.1 200 OK", 201 => "HTTP/1.1 201 Created", 202 => "HTTP/1.1 202 Accepted", 203 => "HTTP/1.1 203 Non-Authoritative Information", 204 => "HTTP/1.1 204 No Content", 205 => "HTTP/1.1 205 Reset Content", 206 => "HTTP/1.1 206 Partial Content", 300 => "HTTP/1.1 300 Multiple Choices", 301 => "HTTP/1.1 301 Moved Permanently", 302 => "HTTP/1.1 302 Found", 303 => "HTTP/1.1 303 See Other", 304 => "HTTP/1.1 304 Not Modified", 305 => "HTTP/1.1 305 Use Proxy", 307 => "HTTP/1.1 307 Temporary Redirect", 400 => "HTTP/1.1 400 Bad Request", 401 => "HTTP/1.1 401 Unauthorized", 402 => "HTTP/1.1 402 Payment Required", 403 => "HTTP/1.1 403 Forbidden", 404 => "HTTP/1.1 404 Not Found", 405 => "HTTP/1.1 405 Method Not Allowed", 406 => "HTTP/1.1 406 Not Acceptable", 407 => "HTTP/1.1 407 Proxy Authentication Required", 408 => "HTTP/1.1 408 Request Time-out", 409 => "HTTP/1.1 409 Conflict", 410 => "HTTP/1.1 410 Gone", 411 => "HTTP/1.1 411 Length Required", 412 => "HTTP/1.1 412 Precondition Failed", 413 => "HTTP/1.1 413 Request Entity Too Large", 414 => "HTTP/1.1 414 Request-URI Too Large", 415 => "HTTP/1.1 415 Unsupported Media Type", 416 => "HTTP/1.1 416 Requested range not satisfiable", 417 => "HTTP/1.1 417 Expectation Failed", 500 => "HTTP/1.1 500 Internal Server Error", 501 => "HTTP/1.1 501 Not Implemented", 502 => "HTTP/1.1 502 Bad Gateway", 503 => "HTTP/1.1 503 Service Unavailable", 504 => "HTTP/1.1 504 Gateway Time-out"); $message = array_var($errors, $code); if (trim($message) == '') { $message = 'Unknown'; } // if } // if if ($this->request->isApiCall()) { $only_headers = true; } // if header("HTTP/1.1 {$code} {$message}"); if ($only_headers) { echo $message; if ($die) { die; } // if } else { $this->setLayout('error'); if ($portal_error === false) { $template_path = get_template_path($code, 'error'); } else { $template_path = get_template_path($code, 'portal_errors', PORTALS_MODULE); } // if if (!is_file($template_path)) { $template_path = get_template_path('default', 'error'); } // if $this->smarty->assign(array('code' => $code, 'message' => $message)); $this->renderLayout(get_layout_path('error'), $this->smarty->fetch($template_path), $die); } // if }
/** * Return path of the layout file. File dnx throw exception * * @param void * @return string * @throws FileDnxError */ function getLayoutPath() { $layout = $this->getLayout(); if (is_array($layout)) { $path = get_layout_path($layout['layout'], $layout['module']); } elseif ($layout) { $path = get_layout_path($layout, $this->request->getModule()); } else { $path = get_layout_path($this->getControllerName(), $this->request->getModule()); } // if return is_file($path) ? $path : new FileDnxError($path); }