type == 'starter') { require(PATH_STARTER); $sRes = buildStarter(); } else { $sRes = buildSiteExpress(); } return $sRes; } // =================================================== // buildSiteExpress // =================================================== function buildSiteExpress() { // --- necessary for CPI server --- header('Content-Type:text/html;charset=utf-8;'); // --- get data --- $iPageId = $_GET['pageid']; // --- search top page --- if(!$iPageId) { // --- build sql --- $sql = ''; $sql .= 'select id from site_express_page where top="○"'; // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt) { $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } $iPageId .= $aData[0][0]; } // --- build sql --- $sql = ''; $sql .= 'select * from site_express_page where id=' . $iPageId; // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt) { $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- define column number --- define(TOP, 3); define(TITLE_NUM , 5); define(CONTENT_NUM , 6); // --- check top template --- $iFileSize = 0; if (file_exists(HTML_TEMPLATE_TOP)) { $iFileSize = (int)filesize(HTML_TEMPLATE_TOP); } // --- set template --- $sTemplate = $aData[0][TOP]; $pathTemplate = ''; if($sTemplate && $iFileSize) { $pathTemplate .= HTML_TEMPLATE_TOP; } else { $pathTemplate .= HTML_TEMPLATE; } // --- html setting --- $sTemplatePath = $pathTemplate; $sAction = $_GET['action']; if($sAction == 'preview') { $sTemplatePath = HTML_PREVIEW; } // --- read template html --- $htmBody = ''; if (!file_exists($sTemplatePath)) { buildDefaultTemplate(); } $oFp = fopen($sTemplatePath, 'r'); while (!feof($oFp)) { $htmBody .= fgets($oFp); } fclose($oFp); // --- send mail if needed (2012-02-09) --- $sContent = $aData[0][CONTENT_NUM]; if ($sAction == 'sendmail') { require('./system/lib/procMail.php'); $sContent = procMail(); } // --- replace content --- $htmBody = str_replace('[[content]]' , $sContent , $htmBody); // --- replace tag setting (page title) --- $aReplaceData = array(); $aReplaceData['[[page_title]]'] = $aData[0][TITLE_NUM]; // --- replace tag setting (menu) --- $iMenu = strpos($htmBody , '[[menu]]'); if($iMenu) { $htmUlMenu = buildMenu(); $aReplaceData['[[menu]]'] = $htmUlMenu; } // --- replace tag setting (submenu) --- $iSubmenu = strpos($htmBody , '[[submenu]]'); if($iSubmenu) { $htmSubmenu = buildSubmenu(); $aReplaceData['[[submenu]]'] = $htmSubmenu; } // --- replace tag setting (news) --- $iNews = strpos($htmBody , '[[news]]'); if($iNews) { $sNews = buildNews(); $aReplaceData['[[news]]'] = $sNews; } // --- replace tag setting (mail form) --- $iMail = strpos($htmBody , '[[mail]]'); if($iMail) { $aQueryString = parse_str($_SERVER['QUERY_STRING']); $urlSelf = basename($_SERVER['PHP_SELF']) . '?' . uniqid() . '&pageid=mail&action=sendmail'; $pathMailFormHtml = './system/mail/mailform.html'; $sMailForm .= '
'; $sMailForm .= file_get_contents($pathMailFormHtml); $sMailForm .= '
'; $aReplaceData['[[mail]]'] = $sMailForm; } // --- get xml data --- $bXmlExist = file_exists(XML_PATH); if($bXmlExist) { $oXml = simplexml_load_file(XML_PATH); $sLogo = UPLOAD_PATH . $oXml->logo[0]; $sTitle = $oXml->title[0]; $sCatchCopy = $oXml->catch_copy[0]; $aKeyword = array(); foreach($oXml->keyword_list[0]->keyword as $key=>$val){ $aKeyword[] = (string)$val[0]; } $sKeyword = ''; if(count($aKeyword)) { $sKeyword = implode(',' , $aKeyword); } $sDescription = $oXml->description[0]; // --- replace tag setting (base setting) --- $aReplaceData['[[logo]]'] = $sLogo; $aReplaceData['[[base_title]]'] = $sTitle; $aReplaceData['[[catch_copy]]'] = $sCatchCopy; $aReplaceData['[[keyword]]'] = $sKeyword; $aReplaceData['[[description]]'] = $sDescription; } // --- replace tag setting (css / js) --- $aReplaceData['[[css_main]]'] = './css/main.css'; $aReplaceData['[[jquery]]'] = './js/jquery.js'; $aReplaceData['[[hover.js]]'] = './js/hoverIntent.js'; $aReplaceData['[[superfish.js]]'] = './js/superfish.js'; $aReplaceData['[[mail.js]]'] = './js/mail.js'; $aReplaceData['[[js]]'] = './js/main.js'; // --- replace --- foreach($aReplaceData as $key=>$val) { $htmBody = str_replace($key , $val , $htmBody); } return $htmBody; } // =================================================== // build news // =================================================== function buildNews() { // --- lang select --- if ($_GET['lang'] ) { $_SESSION['lang'] = '_' . $_GET['lang']; } else { if (!$_SESSION['lang']) { $_SESSION['lang'] = '_jp'; } } // --- set table name --- define(TBL_PREFIX , 'news'); $sTblName = TBL_PREFIX . $_SESSION['lang']; // --- build sql condition --- $sToday = date('Y-m-d'); $sqlWhere = ''; $sqlWhere .= 'where '; $sqlWhere .= ' update_date <= "' . $sToday . '"'; $sqlWhere .= ' and '; $sqlWhere .= ' content <> "" '; // --- get news line max & new limit day $oXml = simplexml_load_file(XML_PATH); $iLineMax = (int)$oXml->line_max[0]; $iNewLimitDay = (int)$oXml->new_limit_day[0]; // --- check and set value (line-max / limit-day) --- if(!$iLineMax) { define('DEFAULT_LINEMAX', 5); $iLineMax = DEFAULT_LINEMAX; } if(!$iNewLimitDay) { define('DEFAULT_LIMIT_DAY', 7); $iNewLimitDay = DEFAULT_LIMIT_DAY; } // --- build sql --- $sql = ''; $sql .= 'select update_date, content, url, window '; $sql .= 'from ' . $sTblName . ' '; $sql .= $sqlWhere; $sql .= 'order by update_date desc, id desc '; $sql .= 'limit ' . $iLineMax; // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt) { $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- check count of news --- $iNewsCount = count($aData); if(!$iNewsCount) { return '[[news]]'; } // --- define column number --- define(DATE, 0); define(NEWS, 1); define(URL, 2); define(WINDOW, 3); // --- time setting --- $iNewLimitDay = 60 * 60 * 24 * $iNewLimitDay; $iToday = mktime('0' , '0' , '0' , date('m') , date('d') , date('Y')); // --- build img --- $sNewImg = ''; $sNewImg .= LF; $sNewImg .= 'new_img[0].'"'; $sNewImg .= ' class="new_img"'; $sNewImg .= ' alt="new"'; $sNewImg .= ' title="new">'; // --- build news record --- $sNewsRecord = ''; $sNewsRecord .= LF . '
'; $sNewsRecord .= LF . '
'; for($i=0; $i'; $sNewsContent .= $aData[$i][NEWS]; $sNewsContent .= ''; } else { $sNewsContent .= $aData[$i][NEWS]; } $sNewsContent .= $sImg; // --- build news date --- $sNewsDate = ''; $sNewsDate .= $sYear . '年' . $sMonth . '月' . $sDay . '日'; // --- build news record --- $sNewsRecord .= LF . '
'; $sNewsRecord .= LF . $sNewsDate; $sNewsRecord .= LF . '
'; $sNewsRecord .= LF . '
'; $sNewsRecord .= LF . $sNewsContent; $sNewsRecord .= LF . '
'; } $sNewsRecord .= LF . '
'; $sNewsRecord .= LF . '
'; return $sNewsRecord; } // =================================================== // build menu // =================================================== function buildMenu() { // --- get data --- $iPageId = $_GET['pageid']; // --- build sql (get current menu) --- $sql = ''; $sql .= 'select menu_id '; $sql .= 'from site_express_page '; $sql .= 'where id=' . $iPageId . ';'; // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt){ $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } $iCurrentCategory = (int)$aData[0][0]; // --- build sql (get category data) --- $sql = ''; $sql .= 'select id , category '; $sql .= 'from site_express_category '; $sql .= 'order by sort;'; // --- db access --- $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt){ $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- check count of menu --- $iMenuCount = count($aData); if(!$iMenuCount) { return '[[menu]]'; } // --- define col number --- define(ID_NUM, 0); define(CATEGORY_NUM, 1); // --- create category array --- $aCategory = array(); for($i=0; $iquery($sql); $aData = array(); if($oPdoStmt) { $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- create array (page) --- for($j=0; $jmenu_width[0]; if(!$iMenuWidth) { $iMenuWidth = 960; } // --- set menu width --- $iMenuWidth = floor($iMenuWidth / count($aCategory)); // --- get xml data (submenu) --- $sSubmenu = $oXml->submenu[0]; // --- define number --- define(PAGE_ID, 0); define(SUB_MENU, 1); // --- build main menu --- $htmUlMenu = ''; $htmUlMenu .= LF . ''; return $htmUlMenu; } // =================================================== // build submenu // =================================================== function buildSubmenu() { // --- get data --- $iPageId = (int)$_GET['pageid']; // --- build sql --- $sql = ''; $sql .= 'select menu_id '; $sql .= 'from site_express_page '; $sql .= 'where id=' . $iPageId; $sql .= ';'; // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt) { $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- get current menu --- $sMenuId = $aData[0][0]; // --- build sql (page_id, page_title) --- $sql = ''; if($sMenuId == 'unasigned') { $sql .= 'select id, page_title '; $sql .= 'from site_express_page '; $sql .= 'where id=' . $iPageId; $sql .= ';'; } else { $sql .= 'select id, page_title '; $sql .= 'from site_express_page '; $sql .= 'where menu_id in '; $sql .= ' ('; $sql .= ' select menu_id '; $sql .= ' from site_express_page '; $sql .= ' where id=' . $iPageId; $sql .= ' );'; } // --- db access --- $oPdo = new PDO(SQLITE_URI); $oPdoStmt = $oPdo->query($sql); $aData = array(); if($oPdoStmt){ $aData = $oPdoStmt->fetchAll(PDO::FETCH_NUM); } // --- define column number --- define(PAGE_ID, 0); define(PAGE_TITLE, 1); // --- build url --- $urlSelf = ''; $urlSelf .= basename($_SERVER['PHP_SELF']) . '?' . uniqid(); $urlSelf .= '&pageid='; // --- build submenu --- $sListSubmenu = ''; for($i=0; $i'; $anchorSubmenu .= $aData[$i][PAGE_TITLE]; $anchorSubmenu .= ''; // --- check current submenu --- if($iPageId == $aData[$i][PAGE_ID]) { $sListSubmenu .= '
  • '; $sListSubmenu .= $anchorSubmenu; $sListSubmenu .= '
  • '; } else { $sListSubmenu .= '
  • '; $sListSubmenu .= $anchorSubmenu; $sListSubmenu .= '
  • '; } } // --- build submenu --- $sSubmenu = ''; $sSubmenu .= ''; return $sSubmenu; } function buildDefaultTemplate() { $oFp = fopen(HTML_TEMPLATE, 'w'); fwrite($oFp, '[[content]]'); fclose($oFp); } ?>