li:first-child { border-top: 0; } .sm-mint ul { background: #ecfdff88; } .sm-mint ul a, .sm-mint ul ul a, .sm-mint ul ul ul a, .sm-mint ul ul ul ul a, .sm-mint ul ul ul ul ul a{ color: #3b3b3b; font-size: 1rem; border-left: 8px solid transparent; } .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul ul a:hover, .sm-mint ul ul a:focus, .sm-mint ul ul a:active, .sm-mint ul ul ul a:hover, .sm-mint ul ul ul a:focus, .sm-mint ul ul ul a:active, .sm-mint ul ul ul ul a:hover, .sm-mint ul ul ul ul a:focus, .sm-mint ul ul ul ul a:active, .sm-mint ul ul ul ul ul a:hover, .sm-mint ul ul ul ul ul a:focus, .sm-mint ul ul ul ul ul a:active { background: #7c0014; color: #ffec58; } @media (min-width: 768px) { /* Switch to desktop layout ----------------------------------------------- These transform the menu tree from collapsible to desktop (navbar + dropdowns) -----------------------------------------------*/ /* start... (it's not recommended editing these rules) */ .sm-mint ul { position: absolute; width: 12em; z-index: 250; } .sm-mint li { float: left; } .sm-mint.sm-rtl li { float: right; } .sm-mint ul li, .sm-mint.sm-rtl ul li, .sm-mint.sm-vertical li { float: none; } .sm-mint a { white-space: nowrap; } .sm-mint ul a, .sm-mint.sm-vertical a { white-space: normal; } .sm-mint .sm-nowrap > li > a, .sm-mint .sm-nowrap > li > :not(ul) a { white-space: nowrap; } /* ...end */ .sm-mint { border-top: 0; background: transparent; } .sm-mint a, .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active, .sm-mint a.highlighted { padding: 15px 12px; color: #ffffff; border-radius: 4px 4px 0 0; border-radius: 0; } .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active { background: #7c0014; color: #ffec58; } .sm-mint a.highlighted { background: #ecfdff; color: #3b3b3b; box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } .sm-mint a.disabled { background: transparent; color: #cccccc; box-shadow: none; } .sm-mint a.has-submenu { padding-right: 34px; } .sm-mint a .sub-arrow { top: 50%; margin-top: -3px; right: 20px; width: 0; height: 0; border-width: 6px 4.02px 0 4.02px; border-style: solid dashed dashed dashed; border-color: #ffffff transparent transparent transparent; background: transparent; border-radius: 0; } .sm-mint a:hover .sub-arrow, .sm-mint a:focus .sub-arrow, .sm-mint a:active .sub-arrow { border-color: #ffffff transparent transparent transparent; } .sm-mint a.highlighted .sub-arrow { border-color: #3b3b3b transparent transparent transparent; } .sm-mint a.disabled .sub-arrow { border-color: #ffffff transparent transparent transparent; } .sm-mint a .sub-arrow::before { display: none; } .sm-mint li { border-top: 0; } .sm-mint ul { border: 0; padding: 8px 0; background: #ecfdff; border-radius: 0 4px 4px 4px; box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } .sm-mint ul ul { border-radius: 4px; } .sm-mint ul a, .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { padding: 12px 20px; border-radius: 0; border-bottom: 1px solid #00000011; } .sm-mint ul li:last-child a{ border-bottom: none; padding: 12px 20px 6px; } .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { background: #7c0014; color: #ffec58; box-shadow: none; } .sm-mint ul a.disabled { background: transparent; color: #b3b3b3; } .sm-mint ul a.has-submenu { padding-right: 20px; } .sm-mint ul a .sub-arrow { right: 10px; margin-top: -4.02px; border-width: 4.02px 0 4.02px 6px; border-style: dashed dashed dashed solid; border-color: transparent transparent transparent #3b3b3b; } .sm-mint ul a:hover .sub-arrow, .sm-mint ul a:focus .sub-arrow, .sm-mint ul a:active .sub-arrow, .sm-mint ul a.highlighted .sub-arrow { border-color: transparent transparent transparent #ffec58; } .sm-mint ul a.disabled .sub-arrow { border-color: transparent transparent transparent #ffffff; } .sm-mint .scroll-up, .sm-mint .scroll-down { position: absolute; display: none; visibility: hidden; overflow: hidden; background: #ecfdff; height: 20px; } .sm-mint .scroll-up-arrow, .sm-mint .scroll-down-arrow { position: absolute; top: 6px; left: 50%; margin-left: -8px; width: 0; height: 0; overflow: hidden; border-width: 0 6px 8px 6px; border-style: dashed dashed solid dashed; border-color: transparent transparent #3b3b3b transparent; } .sm-mint .scroll-down-arrow { border-width: 8px 6px 0 6px; border-style: solid dashed dashed dashed; border-color: #3b3b3b transparent transparent transparent; } .sm-mint.sm-rtl a.has-submenu { padding-right: 20px; padding-left: 34px; } .sm-mint.sm-rtl a .sub-arrow { right: auto; left: 20px; } .sm-mint.sm-rtl.sm-vertical { border-right: 0; border-left: 2px solid #7c0014; } .sm-mint.sm-rtl.sm-vertical a { border-radius: 0 4px 4px 0; } .sm-mint.sm-rtl.sm-vertical a.has-submenu { padding: 10px 20px; } .sm-mint.sm-rtl.sm-vertical a .sub-arrow { right: auto; left: 10px; border-width: 4.02px 6px 4.02px 0; border-style: dashed solid dashed dashed; border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-rtl.sm-vertical a:hover .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:focus .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:active .sub-arrow, .sm-mint.sm-rtl.sm-vertical a.highlighted .sub-arrow { border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-rtl.sm-vertical a.disabled .sub-arrow { border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-rtl ul { border-radius: 4px 0 4px 4px; } .sm-mint.sm-rtl ul a { border-radius: 0 !important; } .sm-mint.sm-rtl ul a.has-submenu { padding: 10px 20px !important; } .sm-mint.sm-rtl ul a .sub-arrow { right: auto; left: 10px; border-width: 4.02px 6px 4.02px 0; border-style: dashed solid dashed dashed; border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-rtl ul a:hover .sub-arrow, .sm-mint.sm-rtl ul a:focus .sub-arrow, .sm-mint.sm-rtl ul a:active .sub-arrow, .sm-mint.sm-rtl ul a.highlighted .sub-arrow { border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-rtl ul a.disabled .sub-arrow { border-color: transparent #ffec58 transparent transparent; } .sm-mint.sm-vertical { border-bottom: 0; border-right: 2px solid #7c0014; } .sm-mint.sm-vertical a { padding: 10px 20px; border-radius: 4px 0 0 4px; } .sm-mint.sm-vertical a:hover, .sm-mint.sm-vertical a:focus, .sm-mint.sm-vertical a:active, .sm-mint.sm-vertical a.highlighted { background: #7c0014; color: #ffec58; box-shadow: none; } .sm-mint.sm-vertical a.disabled { background: transparent; color: #cccccc; } .sm-mint.sm-vertical a .sub-arrow { right: 10px; margin-top: -4.02px; border-width: 4.02px 0 4.02px 6px; border-style: dashed dashed dashed solid; border-color: transparent transparent transparent #ffec58; } .sm-mint.sm-vertical a:hover .sub-arrow, .sm-mint.sm-vertical a:focus .sub-arrow, .sm-mint.sm-vertical a:active .sub-arrow, .sm-mint.sm-vertical a.highlighted .sub-arrow { border-color: transparent transparent transparent #ffffff; } .sm-mint.sm-vertical a.disabled .sub-arrow { border-color: transparent transparent transparent #ffec58; } .sm-mint.sm-vertical ul { border-radius: 4px !important; } .sm-mint.sm-vertical ul a { padding: 10px 20px; } } /*# sourceMappingURL=sm-mint.css.map */ #main-nav { border: none; position: relative; min-height: 3rem; } /* Complete navbar .sm-mint */ .nav-brand { float: left; margin: 0; } .nav-brand a { display: block; color: #ffffff; font-size: 1.2rem; font-weight: normal; text-decoration: none; } #main-menu { clear: both; border-bottom: 0; } @media (min-width: 768px) { #main-menu { clear: none; } } /* Mobile menu toggle button */ .main-menu-btn { float: right; margin: 5px 10px; position: relative; display: inline-block; width: 29px; height: 29px; text-indent: 29px; white-space: nowrap; overflow: hidden; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } /* hamburger icon */ .main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { position: absolute; top: 50%; left: 2px; height: 2px; width: 24px; background: #ffffff; -webkit-transition: all 0.25s; transition: all 0.25s; } .main-menu-btn-icon:before { content: ''; top: -7px; left: 0; } .main-menu-btn-icon:after { content: ''; top: 7px; left: 0; } /* x icon */ #main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon { height: 0; background: transparent; } #main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before { top: 0; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); } #main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after { top: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); } /* hide menu state checkbox (keep it visible to screen readers) */ #main-menu-state { position: absolute; width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); } /* hide the menu in mobile view */ #main-menu-state:not(:checked) ~ #main-menu { display: none; } #main-menu-state:checked ~ #main-menu { display: block; } @media (min-width: 768px) { /* hide the button in desktop view */ .main-menu-btn { position: absolute; top: -99999px; } /* always show the menu in desktop view */ #main-menu-state:not(:checked) ~ #main-menu { display: block; } }
<?php
// error_reporting(0);
function send_now($email, $title, $content)
{
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
if (!mail($email, $title, $content, $headers)) {
die("寄信給 $email 失敗");
}
}
//連線到資料庫
function link_db()
{
$db = new mysqli(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if ($db->connect_error) {
die('無法連上資料庫:' . $db->connect_error);
}
$db->set_charset("utf8");
return $db;
}
//讀出單一文章
function show_article($sn)
{
global $db, $smarty;
require_once 'HTMLPurifier/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
//目前文章
$sql = "SELECT * FROM `article` WHERE `sn`='$sn'";
$result = $db->query($sql) or die($db->error);
$data = $result->fetch_assoc();
$data['content'] = $purifier->purify($data['content']);
//下一篇文章
$sql = "SELECT * FROM `article` WHERE `update_time` < '{$data['update_time']}' ORDER BY `update_time` DESC LIMIT 0,1";
$result = $db->query($sql) or die($db->error);
$next = $result->fetch_assoc();
$next['content'] = $purifier->purify($next['content']);
//上篇文章
$sql = "SELECT * FROM `article` WHERE `update_time` > '{$data['update_time']}' ORDER BY `update_time` LIMIT 0,1";
$result = $db->query($sql) or die($db->error);
$prev = $result->fetch_assoc();
$prev['content'] = $purifier->purify($prev['content']);
$smarty->assign('article', $data);
$smarty->assign('next', $next);
$smarty->assign('prev', $prev);
}
//讀出所有類別
function list_topic()
{
global $db, $smarty;
$sql = "SELECT * FROM `topic` ORDER BY `topic_sn` ";
$result = $db->query($sql) or die($db->error);
$all = [];
$i = 0;
while ($data = $result->fetch_assoc()) {
$all[$i] = $data;
$i++;
}
//die(var_export($all));
list_topic_status();
$smarty->assign('all', $all);
}
//讀出所有TOPIC_status
function list_topic_status()
{
if (!isset($smarty)) {
global $smarty;
}
//狀態值增刪記得修改TABLE值
$status = ['開始投稿', '當期', '一般', '關閉'];
$smarty->assign('topic_status', $status);
}