/** * begin() * * モデルの初期処理を行う * * @access public * * @param void * * @return 処理結果(true: 成功 / false: 失敗) */ public function begin() { // コンフィグから接続情報を取得する $db_conf = new \Risoluto\Conf(); $db_conf->parse(RISOLUTO_CONF . 'risoluto_db.ini'); // DBへ接続する return $this->db->connect($db_conf->getIni('DB')); }
/** * play() * * 主処理を行う * * @access public * * @param void * * @return void なし */ public function play() { // パラメタを取得し、空だった時はデフォルトの画面を取得する $params = $this->getParam(); if (empty($params) or !preg_match('/^[[:alnum:]_-].*$/', $params[0])) { $tmpl = 'Top'; } else { // パラメタ中のディレクトリセパレタを編集してセット $tmpl = str_replace('_', DS, $params[0]); } // デフォルトヘッダ情報の取得 $header = $this->getDefaultHeader(); // ファイルの実在を確認し、優先順に沿って処理を実施 $basepath = RISOLUTO_APPS . 'RisolutoApps/Pages/shelf/' . str_replace('../', '', $tmpl); clearstatcache(true); if (file_exists($basepath . '.tpl')) { //--- .tplファイルが存在するときはテンプレートエンジンで処理した結果を出力する $tmpl .= '.tpl'; // テンプレートエンジン関連の処理 $assign_value = ['header' => $header, 'pagename' => $params[0], 'options' => $params]; echo trim($this->risolutoView($assign_value, 'fetch', 'Pages/shelf/', $tmpl)); } elseif (file_exists($basepath . '.md')) { //--- .mdファイルが存在するときはパースしてから処理する // タイトルだけ置き換えてヘッダとフッタを取得 $header['title'] = (isset($params[0]) and !empty($params[0])) ? $params[0] : 'Top'; $assign_value = ['header' => $header, 'pagename' => $params[0], 'options' => $params]; $parts_header = $this->risolutoView($assign_value, 'fetch', 'Pages/', 'dummy_header.tpl'); $parts_footer = $this->risolutoView($assign_value, 'fetch', 'Pages/', 'dummy_footer.tpl'); // 本体をパースして取得 /** @noinspection PhpUndefinedNamespaceInspection */ $parts_body = \Michelf\MarkdownExtra::defaultTransform(file_get_contents($basepath . '.md')); // 画面に出力 echo trim($parts_header . $parts_body . $parts_footer); } elseif (file_exists($basepath . '.raw')) { //--- .rawファイルが存在するときは取得した内容をそのまま出力 echo trim(file_get_contents($basepath . '.raw')); } else { //--- いずれも存在しないときはエラー $conf = new \Risoluto\Conf(); $conf->parse(RISOLUTO_CONF . 'risoluto.ini'); $error = $conf->getIni('SEQ', 'error'); \Risoluto\Url::redirectTo($error); } }