This commit is contained in:
杜恒 2021-01-20 16:06:51 +08:00
parent 4e31dbdf81
commit d9e7ec858d
10 changed files with 440 additions and 232 deletions

View File

@ -1 +1 @@
.col-mb-12.col-tb-8.col-tb-offset-2{margin-left:0;width:100%}.joe_config{display:flex}.joe_config *{margin:0;padding:0;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent}.joe_config li{list-style:none}.joe_config__aside{position:-webkit-sticky;position:sticky;top:15px;width:200px;background:#fff;padding:10px;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px}.joe_config__aside .logo{color:#303133;font-weight:500;font-size:24px;text-align:center;margin-bottom:10px;border-bottom:1px solid #ebeef5;padding-bottom:10px}.joe_config__aside .tabs{margin-bottom:10px}.joe_config__aside .tabs .item{border-radius:20px;text-align:center;height:40px;line-height:40px;color:#606266;cursor:pointer;transition:background 0.35s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.joe_config__aside .tabs .item:hover{background:#f2f6fc}.joe_config__aside .tabs .item.active{color:#409eff;font-weight:500}.joe_config__aside .backup input{width:170px;height:40px;line-height:40px;margin-bottom:10px;color:#fff;font-size:14px;border-radius:20px;transition:opacity 0.35s;border:none;cursor:pointer}.joe_config__aside .backup input:hover{opacity:0.85}.joe_config__aside .backup input:nth-child(1){background:#5cb85c}.joe_config__aside .backup input:nth-child(2){background:#f0ad4e}.joe_config__aside .backup input:nth-child(3){margin-bottom:0;background:#d9534f}.joe_config>form{position:relative;display:none;background:#fff;min-width:0;flex:1;margin-left:15px;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px}.joe_config>form .typecho-option{position:-webkit-sticky;position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;margin:0;padding:15px;background:#fff;border-top:1px solid #ebebeb;border-radius:0 0 8px 8px}.joe_config>form .typecho-option button{width:170px;height:40px;background-color:#409eff;border-radius:20px}.joe_config>form .typecho-option button:hover{-webkit-animation:pulse 1s;animation:pulse 1s;box-shadow:0 0 0 20px rgba(255,255,255,0)}.joe_config>form .joe_content{display:none;padding:15px}.joe_config>form .joe_content li{border:1px solid #e9e9eb;padding:15px}.joe_config>form .joe_content li .typecho-label{display:block;border-left:4px solid #409eff;background:#ecf5ff;line-height:26px;margin-bottom:15px;padding:5px 15px;color:#409eff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:0 4px 4px 0}.joe_config>form .joe_content li select{min-width:200px;height:34px;line-height:34px;border:1px solid #e9e9eb;color:#666;border-radius:4px;padding-left:5px}.joe_config>form .joe_content li textarea,.joe_config>form .joe_content li input[type="text"]{width:100%;padding:10px;color:#666;border:1px solid #e9e9eb;-webkit-appearance:none}.joe_config>form .joe_content li .description{background:#f8f8f8;color:#999;padding:10px 15px;margin-top:15px;line-height:26px;border-radius:4px}.joe_config__notice{display:none;margin-left:15px;background:#fff;padding:15px;flex:1;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px;line-height:28px;color:#606266}.joe_config__notice ol{padding:0 40px}.joe_config__notice ol li{list-style:decimal}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 #409eff}}@keyframes pulse{0%{box-shadow:0 0 0 0 #409eff}}@media (max-width: 768px){.joe_config{display:block}.joe_config__aside{width:100%;margin-bottom:15px}.joe_config__aside .tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #ebeef5;padding-bottom:10px}.joe_config__aside .tabs .item{width:33.33333333%;height:36px;line-height:36px;border-radius:18px}.joe_config__aside .backup{display:flex;align-items:center;justify-content:space-between}.joe_config__aside .backup input{width:auto;flex:1;margin-bottom:0;height:36px;line-height:36px;border-radius:18px}.joe_config__aside .backup input:nth-child(2){margin:0 10px}.joe_config>form{margin-left:0}.joe_config>form .typecho-option{padding:10px 0}.joe_config>form .typecho-option button{width:150px;height:38px;border-radius:19px}.joe_config__notice{margin-left:0}}
.col-mb-12.col-tb-8.col-tb-offset-2{margin-left:0;width:100%}.joe_config{display:flex}.joe_config *{margin:0;padding:0;box-sizing:border-box;outline:none;-webkit-tap-highlight-color:transparent}.joe_config li{list-style:none}.joe_config__aside{position:-webkit-sticky;position:sticky;top:15px;width:200px;background:#fff;padding:10px;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px}.joe_config__aside .logo{color:#303133;font-weight:500;font-size:24px;text-align:center;margin-bottom:10px;border-bottom:1px solid #ebeef5;padding-bottom:10px}.joe_config__aside .tabs{margin-bottom:10px}.joe_config__aside .tabs .item{border-radius:20px;text-align:center;height:40px;line-height:40px;color:#606266;cursor:pointer;transition:background 0.35s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.joe_config__aside .tabs .item:hover{background:#f2f6fc}.joe_config__aside .tabs .item.active{color:#409eff;font-weight:500}.joe_config__aside .backup input{width:170px;height:40px;line-height:40px;margin-bottom:10px;color:#fff;font-size:14px;border-radius:20px;transition:opacity 0.35s;border:none;cursor:pointer}.joe_config__aside .backup input:hover{opacity:0.85}.joe_config__aside .backup input:nth-child(1){background:#5cb85c}.joe_config__aside .backup input:nth-child(2){background:#f0ad4e}.joe_config__aside .backup input:nth-child(3){margin-bottom:0;background:#d9534f}.joe_config>form{position:relative;display:none;background:#fff;min-width:0;flex:1;margin-left:15px;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px}.joe_config>form .typecho-option{position:-webkit-sticky;position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;margin:0;padding:15px;background:#fff;border-top:1px solid #ebebeb;border-radius:0 0 8px 8px}.joe_config>form .typecho-option button{width:170px;height:40px;background-color:#409eff;border-radius:20px}.joe_config>form .typecho-option button:hover{-webkit-animation:pulse 1s;animation:pulse 1s;box-shadow:0 0 0 20px rgba(255,255,255,0)}.joe_config>form .joe_content{display:none;padding:15px}.joe_config>form .joe_content li{border:1px solid #e9e9eb;padding:15px}.joe_config>form .joe_content li .typecho-label{display:block;border-left:4px solid #409eff;background:#ecf5ff;line-height:26px;margin-bottom:15px;padding:5px 15px;color:#409eff;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:0 4px 4px 0}.joe_config>form .joe_content li select{min-width:200px;height:34px;line-height:34px;border:1px solid #e9e9eb;color:#666;border-radius:4px;padding-left:5px}.joe_config>form .joe_content li .multiline{display:flex;align-items:center;color:#666}.joe_config>form .joe_content li .multiline input[type='checkbox']{margin-right:5px}.joe_config>form .joe_content li textarea,.joe_config>form .joe_content li input[type='text']{width:100%;padding:10px;color:#666;border:1px solid #e9e9eb;-webkit-appearance:none}.joe_config>form .joe_content li .description{background:#f8f8f8;color:#999;padding:10px 15px;margin-top:15px;line-height:26px;border-radius:4px}.joe_config__notice{display:none;margin-left:15px;background:#fff;padding:15px;flex:1;box-shadow:0px 0px 20px -5px rgba(158,158,158,0.22);border-radius:8px;line-height:28px;color:#606266}.joe_config__notice ol{padding:0 40px}.joe_config__notice ol li{list-style:decimal}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 #409eff}}@keyframes pulse{0%{box-shadow:0 0 0 0 #409eff}}@media (max-width: 768px){.joe_config{display:block}.joe_config__aside{width:100%;margin-bottom:15px}.joe_config__aside .tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #ebeef5;padding-bottom:10px}.joe_config__aside .tabs .item{width:33.33333333%;height:36px;line-height:36px;border-radius:18px}.joe_config__aside .backup{display:flex;align-items:center;justify-content:space-between}.joe_config__aside .backup input{width:auto;flex:1;margin-bottom:0;height:36px;line-height:36px;border-radius:18px}.joe_config__aside .backup input:nth-child(2){margin:0 10px}.joe_config>form{margin-left:0}.joe_config>form .typecho-option{padding:10px 0}.joe_config>form .typecho-option button{width:150px;height:38px;border-radius:19px}.joe_config__notice{margin-left:0}}

View File

@ -1,242 +1,250 @@
.col-mb-12.col-tb-8.col-tb-offset-2 {
margin-left: 0;
width: 100%;
margin-left: 0;
width: 100%;
}
.joe_config {
display: flex;
display: flex;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
outline: none;
-webkit-tap-highlight-color: transparent;
}
li {
list-style: none;
}
&__aside {
position: sticky;
top: 15px;
width: 200px;
background: #fff;
padding: 10px;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
.logo {
color: #303133;
font-weight: 500;
font-size: 24px;
text-align: center;
margin-bottom: 10px;
border-bottom: 1px solid #ebeef5;
padding-bottom: 10px;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
outline: none;
-webkit-tap-highlight-color: transparent;
}
.tabs {
margin-bottom: 10px;
.item {
border-radius: 20px;
text-align: center;
height: 40px;
line-height: 40px;
color: #606266;
cursor: pointer;
transition: background 0.35s;
user-select: none;
&:hover {
background: #f2f6fc;
}
&.active {
color: #409eff;
font-weight: 500;
}
}
}
.backup {
input {
width: 170px;
height: 40px;
line-height: 40px;
margin-bottom: 10px;
color: #fff;
font-size: 14px;
border-radius: 20px;
transition: opacity 0.35s;
border: none;
cursor: pointer;
&:hover {
opacity: 0.85;
}
&:nth-child(1) {
background: #5cb85c;
}
&:nth-child(2) {
background: #f0ad4e;
}
&:nth-child(3) {
margin-bottom: 0;
background: #d9534f;
}
}
}
}
> form {
position: relative;
display: none;
background: #fff;
min-width: 0;
flex: 1;
margin-left: 15px;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
.typecho-option {
position: sticky;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 15px;
background: #fff;
border-top: 1px solid #ebebeb;
border-radius: 0 0 8px 8px;
button {
width: 170px;
height: 40px;
background-color: #409eff;
border-radius: 20px;
&:hover {
animation: pulse 1s;
box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
}
}
li {
list-style: none;
}
.joe_content {
display: none;
padding: 15px;
li {
border: 1px solid #e9e9eb;
padding: 15px;
.typecho-label {
display: block;
border-left: 4px solid #409eff;
background: #ecf5ff;
line-height: 26px;
margin-bottom: 15px;
padding: 5px 15px;
color: #409eff;
user-select: none;
border-radius: 0 4px 4px 0;
}
select {
min-width: 200px;
height: 34px;
line-height: 34px;
border: 1px solid #e9e9eb;
color: #666;
border-radius: 4px;
padding-left: 5px;
}
textarea,
input[type="text"] {
width: 100%;
padding: 10px;
color: #666;
border: 1px solid #e9e9eb;
-webkit-appearance: none;
}
.description {
background: #f8f8f8;
color: #999;
padding: 10px 15px;
margin-top: 15px;
line-height: 26px;
border-radius: 4px;
}
}
}
}
&__notice {
display: none;
margin-left: 15px;
background: #fff;
padding: 15px;
flex: 1;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
line-height: 28px;
color: #606266;
ol {
padding: 0 40px;
li {
list-style: decimal;
}
}
}
}
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 #409eff;
}
}
@media (max-width: 768px) {
.joe_config {
display: block;
&__aside {
width: 100%;
margin-bottom: 15px;
.tabs {
display: flex;
flex-wrap: wrap;
border-bottom: 1px solid #ebeef5;
padding-bottom: 10px;
.item {
width: 33.33333333%;
height: 36px;
line-height: 36px;
border-radius: 18px;
position: sticky;
top: 15px;
width: 200px;
background: #fff;
padding: 10px;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
.logo {
color: #303133;
font-weight: 500;
font-size: 24px;
text-align: center;
margin-bottom: 10px;
border-bottom: 1px solid #ebeef5;
padding-bottom: 10px;
}
}
.backup {
display: flex;
align-items: center;
justify-content: space-between;
input {
width: auto;
flex: 1;
margin-bottom: 0;
height: 36px;
line-height: 36px;
border-radius: 18px;
&:nth-child(2) {
margin: 0 10px;
}
.tabs {
margin-bottom: 10px;
.item {
border-radius: 20px;
text-align: center;
height: 40px;
line-height: 40px;
color: #606266;
cursor: pointer;
transition: background 0.35s;
user-select: none;
&:hover {
background: #f2f6fc;
}
&.active {
color: #409eff;
font-weight: 500;
}
}
}
.backup {
input {
width: 170px;
height: 40px;
line-height: 40px;
margin-bottom: 10px;
color: #fff;
font-size: 14px;
border-radius: 20px;
transition: opacity 0.35s;
border: none;
cursor: pointer;
&:hover {
opacity: 0.85;
}
&:nth-child(1) {
background: #5cb85c;
}
&:nth-child(2) {
background: #f0ad4e;
}
&:nth-child(3) {
margin-bottom: 0;
background: #d9534f;
}
}
}
}
}
> form {
margin-left: 0;
.typecho-option {
padding: 10px 0;
button {
width: 150px;
height: 38px;
border-radius: 19px;
position: relative;
display: none;
background: #fff;
min-width: 0;
flex: 1;
margin-left: 15px;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
.typecho-option {
position: sticky;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 15px;
background: #fff;
border-top: 1px solid #ebebeb;
border-radius: 0 0 8px 8px;
button {
width: 170px;
height: 40px;
background-color: #409eff;
border-radius: 20px;
&:hover {
animation: pulse 1s;
box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
}
}
}
.joe_content {
display: none;
padding: 15px;
li {
border: 1px solid #e9e9eb;
padding: 15px;
.typecho-label {
display: block;
border-left: 4px solid #409eff;
background: #ecf5ff;
line-height: 26px;
margin-bottom: 15px;
padding: 5px 15px;
color: #409eff;
user-select: none;
border-radius: 0 4px 4px 0;
}
select {
min-width: 200px;
height: 34px;
line-height: 34px;
border: 1px solid #e9e9eb;
color: #666;
border-radius: 4px;
padding-left: 5px;
}
.multiline {
display: flex;
align-items: center;
color: #666;
input[type='checkbox'] {
margin-right: 5px;
}
}
textarea,
input[type='text'] {
width: 100%;
padding: 10px;
color: #666;
border: 1px solid #e9e9eb;
-webkit-appearance: none;
}
.description {
background: #f8f8f8;
color: #999;
padding: 10px 15px;
margin-top: 15px;
line-height: 26px;
border-radius: 4px;
}
}
}
}
}
&__notice {
margin-left: 0;
display: none;
margin-left: 15px;
background: #fff;
padding: 15px;
flex: 1;
box-shadow: 0px 0px 20px -5px rgba(158, 158, 158, 0.22);
border-radius: 8px;
line-height: 28px;
color: #606266;
ol {
padding: 0 40px;
li {
list-style: decimal;
}
}
}
}
@keyframes pulse {
0% {
box-shadow: 0 0 0 0 #409eff;
}
}
@media (max-width: 768px) {
.joe_config {
display: block;
&__aside {
width: 100%;
margin-bottom: 15px;
.tabs {
display: flex;
flex-wrap: wrap;
border-bottom: 1px solid #ebeef5;
padding-bottom: 10px;
.item {
width: 33.33333333%;
height: 36px;
line-height: 36px;
border-radius: 18px;
}
}
.backup {
display: flex;
align-items: center;
justify-content: space-between;
input {
width: auto;
flex: 1;
margin-bottom: 0;
height: 36px;
line-height: 36px;
border-radius: 18px;
&:nth-child(2) {
margin: 0 10px;
}
}
}
}
> form {
margin-left: 0;
.typecho-option {
padding: 10px 0;
button {
width: 150px;
height: 38px;
border-radius: 19px;
}
}
}
&__notice {
margin-left: 0;
}
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -490,6 +490,19 @@
}
}
}
&.weather {
background: var(--background);
.joe_aside__item-contain {
min-height: 300px;
}
}
&.hot {
background: var(--background);
.empty {
text-align: center;
color: var(--routine);
}
}
}
}

BIN
assets/img/lazyload.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

View File

@ -26,9 +26,8 @@ window.Joe = function () {
}
});
}
/* Timelife */
{
if ($('.joe_aside__item.timelife').length !== 0) {
let timelife = [
{ title: '今日已经过去', endTitle: '小时', num: 0, percent: '0%' },
{ title: '这周已经过去', endTitle: '天', num: 0, percent: '0%' },
@ -83,7 +82,15 @@ window.Joe = function () {
</div>
`;
});
$('.joe_aside__item-contain').html(htmlStr);
$('.joe_aside__item.timelife .joe_aside__item-contain').html(htmlStr);
}
/* Weather */
if ($('.joe_aside__item.weather').length !== 0) {
const key = $('.joe_aside__item.weather').attr('data-key');
const style = $('.joe_aside__item.weather').attr('data-style');
const aqiColor = { 1: 'FFFFFF', 2: '4A4A4A', 3: 'FFFFFF' };
window.WIDGET = { CONFIG: { layout: 2, width: '220', height: '270', background: style, dataColor: aqiColor[style], language: 'zh', key: key } };
}
};

View File

@ -7,6 +7,7 @@ function _getVersion()
};
timerStart();
function timerStart()
{
global $timeStart;
@ -14,6 +15,7 @@ function timerStart()
$timeStart = $mTime[1] + $mTime[0];
return true;
}
function timerStop($precision = 3)
{
global $timeStart, $timeEnd;
@ -42,6 +44,29 @@ function _getAsideAuthorMotto()
echo $JMottoRandom[array_rand($JMottoRandom, 1)];
}
function _getThumbnail($item)
{
$randomThumb = 'https://cdn.jsdelivr.net/npm/typecho_joe_theme@4.3.5/assets/img/random/' . rand(1, 25) . '.webp';
$custom_thumbnail = Helper::options()->JThumbnail;
if ($custom_thumbnail) {
$custom_thumbnail_arr = explode("\r\n", $custom_thumbnail);
$randomThumb = $custom_thumbnail_arr[array_rand($custom_thumbnail_arr, 1)] . "?key=" . mt_rand(0, 1000000);
}
$pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i';
$patternMD = '/\!\[.*?\]\((http(s)?:\/\/.*?(jpg|jpeg|gif|png|webp))/i';
$patternMDfoot = '/\[.*?\]:\s*(http(s)?:\/\/.*?(jpg|jpeg|gif|png|webp))/i';
if ($item->fields->thumb) {
$randomThumb = $item->fields->thumb;
} elseif (preg_match_all($pattern, $item->content, $thumbUrl)) {
$randomThumb = $thumbUrl[1][0];
} elseif (preg_match_all($patternMD, $item->content, $thumbUrl)) {
$randomThumb = $thumbUrl[1][0];
} elseif (preg_match_all($patternMDfoot, $item->content, $thumbUrl)) {
$randomThumb = $thumbUrl[1][0];
}
echo $randomThumb;
}
function _getAsideAuthorNav()
{
if (Helper::options()->JAside_Author_Nav !== "off") {
@ -55,9 +80,9 @@ function _getAsideAuthorNav()
$result = $db->fetchAll(
$db->select()
->from('table.contents')
->where('status = ?', 'publish')
->where('type = ?', 'post')
->where('password IS NULL')
->where('table.contents.status = ?', 'publish')
->where('table.contents.type = ?', 'post')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->limit(Helper::options()->JAside_Author_Nav)
->order($order_by)
);
@ -92,4 +117,35 @@ function themeFields($layout)
注意:只有在外观设置侧边栏开启状态下生效'
);
$layout->addItem($aside);
$thumb = new Typecho_Widget_Helper_Form_Element_Textarea(
'thumb',
NULL,
NULL,
'自定义文章缩略图',
'填写时:将会显示填写的文章缩略图 <br>
不填写时:<br>
1、若文章有图片则取文章内图片 <br>
2、若文章无图片,并且外观设置里未填写·自定义缩略图·选项,则取模板自带图片 <br>
3、若文章无图片,并且外观设置里填写了·自定义缩略图·选项,则取自定义缩略图图片'
);
$layout->addItem($thumb);
}
class Widget_Contents_Hot extends Widget_Abstract_Contents
{
public function execute()
{
$this->parameter->setDefault(array('pageSize' => 10));
$this->db->fetchAll(
$this->select()->from('table.contents')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->where('table.contents.status = ?', 'publish')
->where('table.contents.created <= ?', time())
->where('table.contents.type = ?', 'post')
->limit($this->parameter->pageSize)
->order('table.contents.views', Typecho_Db::SORT_DESC),
array($this, 'push')
);
}
}

View File

@ -80,6 +80,8 @@ function themeConfig($form)
array(
'author' => '作者栏',
'timelife' => '计时栏',
'weather' => '天气栏需先在下方填写KEY值',
'hot' => '热门文章栏'
),
null,
'选择首页需要显示的侧边栏栏目',
@ -141,4 +143,76 @@ function themeConfig($form)
);
$JAside_Author_Nav->setAttribute('class', 'joe_content joe_aside');
$form->addInput($JAside_Author_Nav->multiMode());
$JAside_Weather_Key = new Typecho_Widget_Helper_Form_Element_Textarea(
'JAside_Weather_Key',
NULL,
NULL,
'天气栏 —— 天气KEY值',
'介绍:用于初始化天气栏 <br/>
注意填写时请填写正确的KEY值<br />
其他:免费申请地址:<a href="//cj.weather.com.cn">cj.weather.com.cn</a>'
);
$JAside_Weather_Key->setAttribute('class', 'joe_content joe_aside');
$form->addInput($JAside_Weather_Key);
$JAside_Weather_Style = new Typecho_Widget_Helper_Form_Element_Select(
'JAside_Weather_Style',
array(
'1' => '自动(默认)',
'2' => '浅色',
'3' => '深色'
),
'1',
'天气栏 —— 天气风格样式',
'介绍:选择一款您所喜爱的天气风格 <br />
注意需要先填写天气的KEY值'
);
$JAside_Weather_Style->setAttribute('class', 'joe_content joe_aside');
$form->addInput($JAside_Weather_Style->multiMode());
$JAside_Hot_Num = new Typecho_Widget_Helper_Form_Element_Select(
'JAside_Hot_Num',
array(
'3' => '显示3条默认',
'4' => '显示4条',
'5' => '显示5条',
'6' => '显示6条',
'7' => '显示7条',
'8' => '显示8条',
'9' => '显示9条',
'10' => '显示10条',
),
'3',
'热门文章栏 —— 文章数',
'介绍:用于控制热门文章栏目的数量'
);
$JAside_Hot_Num->setAttribute('class', 'joe_content joe_aside');
$form->addInput($JAside_Hot_Num->multiMode());
$JThumbnail = new Typecho_Widget_Helper_Form_Element_Textarea(
'JThumbnail',
NULL,
NULL,
'自定义缩略图(非必填)',
'介绍:用于修改主题默认缩略图 <br/>
格式:图片地址,一行一个 <br />
注意:不填写时,则使用主题内置的默认缩略图
'
);
$JThumbnail->setAttribute('class', 'joe_content joe_image');
$form->addInput($JThumbnail);
$JLazyload = new Typecho_Widget_Helper_Form_Element_Textarea(
'JLazyload',
NULL,
"https://cdn.jsdelivr.net/gh/HaoOuBa/Joe@master/assets/img/lazyload.jpg",
'自定义缩略图(非必填)',
'介绍:用于修改主题默认缩略图 <br/>
格式:图片地址,一行一个 <br />
注意:不填写时,则使用主题内置的默认缩略图
'
);
$JLazyload->setAttribute('class', 'joe_content joe_image');
$form->addInput($JLazyload);
} ?>

View File

@ -29,16 +29,64 @@
<?php if (in_array('timelife', $this->options->JAside)) : ?>
<section class="joe_aside__item timelife">
<h3 class="joe_aside__item-title">
<div class="joe_aside__item-title">
<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
<path d="M864.801 895.471h-33.56v-96.859c0-126.081-73.017-235.093-179.062-287.102 106.046-52.01 179.062-161.022 179.062-287.102v-96.859h33.56c17.301 0 31.325-14.327 31.325-32 0-17.673-14.024-32-31.325-32H159.018c-17.3 0-31.325 14.327-31.325 32 0 17.673 14.025 32 31.325 32h33.02v96.859c0 126.08 73.016 235.092 179.061 287.102-106.046 52.009-179.062 161.02-179.062 287.101v96.859h-33.02c-17.3 0-31.325 14.326-31.325 32s14.025 32 31.325 32H864.8c17.301 0 31.325-14.326 31.325-32s-14.023-31.999-31.324-31.999zM256.05 222.427v-94.878h513.046v94.878c0 141.674-114.85 256.522-256.523 256.522-141.674 0-256.523-114.848-256.523-256.522z m513.046 673.044H256.05v-94.879c0-141.674 114.849-256.521 256.523-256.521 141.673 0 256.523 114.848 256.523 256.521v94.879z" p-id="29837"></path>
<path d="M544.141 384c0-17.69-14.341-32.031-32.031-32.031-71.694 0-127.854-56.161-127.854-127.855 0-17.69-14.341-32.032-32.031-32.032s-32.032 14.341-32.032 32.032c0 107.617 84.3 191.918 191.917 191.918 17.69 0 32.031-14.342 32.031-32.032z" p-id="29838"></path>
</svg>
<span class="text">人生倒计时</span>
<span class="line"></span>
</h3>
</div>
<div class="joe_aside__item-contain"></div>
</section>
<?php endif; ?>
<?php if (in_array('hot', $this->options->JAside)) : ?>
<div class="joe_aside__item hot">
<div class="joe_aside__item-title">
<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
<path d="M512 938.666667A426.666667 426.666667 0 0 1 85.333333 512a421.12 421.12 0 0 1 131.2-306.133333 58.88 58.88 0 0 1 42.666667-16.64c33.28 1.066667 58.026667 28.16 84.266667 56.96 7.893333 8.533333 19.626667 21.333333 28.373333 29.013333a542.933333 542.933333 0 0 0 24.533333-61.866667c18.133333-52.266667 35.413333-101.76 75.306667-121.6C526.72 64 583.253333 129.706667 654.933333 213.333333c16.213333 18.773333 38.613333 44.8 53.546667 59.52 1.706667-4.48 3.2-8.96 4.48-12.373333 8.533333-24.32 18.986667-54.613333 51.2-61.653333a57.813333 57.813333 0 0 1 55.68 20.053333A426.666667 426.666667 0 0 1 512 938.666667zM260.693333 282.453333A336.64 336.64 0 0 0 170.666667 512a341.333333 341.333333 0 1 0 614.826666-203.733333 90.24 90.24 0 0 1-42.666666 50.56 68.266667 68.266667 0 0 1-53.546667 1.706666c-25.6-9.173333-51.626667-38.4-99.2-93.226666a826.666667 826.666667 0 0 0-87.253333-91.733334 507.733333 507.733333 0 0 0-26.24 64c-18.133333 52.266667-35.413333 101.76-75.946667 119.253334-48.853333 21.333333-88.32-21.333333-120.106667-56.96-5.76-4.693333-13.226667-13.013333-19.84-19.413334z" p-id="14764"></path>
<path d="M512 810.666667a298.666667 298.666667 0 0 1-298.666667-298.666667 42.666667 42.666667 0 0 1 85.333334 0 213.333333 213.333333 0 0 0 213.333333 213.333333 42.666667 42.666667 0 0 1 0 85.333334z" p-id="14765"></path>
</svg>
<span class="text">热门文章</span>
<span class="line"></span>
</div>
<?php $this->widget('Widget_Contents_Hot', 'pageSize=' . $this->options->JAside_Hot_Num)->to($item); ?>
<ol class="joe_aside__item-contain">
<?php if ($item->have()) : ?>
<?php while ($item->next()) : ?>
<li class="item">
<a class="link" href="<?php $item->permalink() ?>" title="<?php $item->title() ?>">
<i class="sort"><?php ?></i>
<img class="image lazyload" data-original="<?php _getThumbnail($item); ?>" alt="<?php $item->title() ?>" />
<div class="describe">
<h6><?php $item->title() ?></h6>
<span> 阅读 - <?php $item->date('m/d'); ?></span>
</div>
</a>
</li>
<?php endwhile; ?>
<?php else : ?>
<li class="empty">这个博主很懒!</li>
<?php endif; ?>
</ol>
</div>
<?php endif; ?>
<?php if (in_array('weather', $this->options->JAside) && $this->options->JAside_Weather_Key) : ?>
<div class="joe_aside__item weather" data-key="<?php $this->options->JAside_Weather_Key() ?>" data-style="<?php $this->options->JAside_Weather_Style() ?>">
<div class="joe_aside__item-title">
<svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
<path d="M773.12 757.76h-79.872c-15.36 0-29.696-15.36-29.696-29.696s15.36-29.696 29.696-29.696h79.872c100.352 0 180.224-79.872 180.224-180.224S873.472 337.92 773.12 337.92c-25.6 0-50.176 5.12-74.752 15.36-10.24 5.12-20.48 5.12-25.6 0-10.24-5.12-15.36-15.36-15.36-20.48-15.36-100.352-100.352-175.104-200.704-175.104C346.112 155.648 256 245.76 250.88 356.352c0 15.36-10.24 29.696-29.696 29.696-79.872 5.12-145.408 74.752-145.408 160.768 0 90.112 70.656 160.768 160.768 160.768h75.776c15.36 0 29.696 15.36 29.696 29.696s-15.36 30.72-30.72 30.72h-79.872C110.592 757.76 10.24 662.528 10.24 541.696c0-105.472 75.776-195.584 175.104-216.064 15.36-130.048 130.048-235.52 266.24-235.52 120.832 0 225.28 79.872 256 195.584 20.48-5.12 45.056-10.24 65.536-10.24C908.288 276.48 1013.76 387.072 1013.76 517.12S903.168 757.76 773.12 757.76z" fill="" p-id="13873"></path>
<path d="M437.248 933.888c-10.24 0-15.36-5.12-20.48-10.24-10.24-10.24-10.24-29.696 0-45.056l79.872-79.872h-60.416c-10.24 0-25.6-5.12-29.696-20.48-5.12-10.24 0-24.576 5.12-34.816l130.048-130.048c10.24-10.24 29.696-10.24 45.056 0 10.24 10.24 10.24 29.696 0 45.056L512 742.4h55.296c10.24 0 24.576 5.12 29.696 20.48 5.12 10.24 0 24.576-5.12 34.816L461.824 928.768c-10.24 5.12-20.48 5.12-24.576 5.12z" fill="" p-id="13874"></path>
</svg>
<span class="text">今日天气</span>
<span class="line"></span>
</div>
<div class="joe_aside__item-contain">
<div id="weather-v2-plugin-standard"></div>
</div>
</div>
<?php endif; ?>
</aside>
<?php endif; ?>

View File

@ -9,6 +9,8 @@
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.normalize.css'); ?>">
<link rel="stylesheet" href="<?php $this->options->themeUrl('assets/css/joe.global.css'); ?>">
<link rel="stylesheet" href="https://apip.weatherdt.com/standard/static/css/weather-standard.css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/joe.global.js'); ?>"></script>
<script async src="https://apip.weatherdt.com/standard/static/js/weather-standard.js?v=2.0"></script>