You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
310 lines
14 KiB
310 lines
14 KiB
<?php |
|
/** |
|
* 时光机 |
|
* |
|
* @package custom |
|
*/ |
|
if (!defined('__TYPECHO_ROOT_DIR__')) exit; |
|
$this->need('component/header.php'); |
|
|
|
//算法整理大事记 |
|
function getBigMemory(){ |
|
|
|
} |
|
?> |
|
|
|
|
|
<!-- aside --> |
|
<?php $this->need('component/aside.php'); ?> |
|
<!-- / aside --> |
|
|
|
<!-- content --> |
|
<!-- <div id="content" class="app-content"> --> |
|
<a class="off-screen-toggle hide"></a> |
|
<main class="app-content-body <?php Content::returnPageAnimateClass($this); ?>"> |
|
<div class="hbox hbox-auto-xs hbox-auto-sm"> |
|
<div class="col center-part"> |
|
<div style="background:url(<?php $this->options->timepic(); ?>) center center; background-size:cover"> |
|
<div class="wrapper-lg bg-white-opacity"> |
|
<div class="row m-t"> |
|
<div class="col-sm-7"> |
|
<div class="clear m-b"> |
|
<div class="m-b m-t-sm"> |
|
<span class="h3 text-black"><?php $this->options->BlogName() ?></span> |
|
<small class="m-l"><?php $this->options->BlogJob() ?></small> |
|
</div> |
|
<p class="m-b"> |
|
<?php |
|
$socialItemsOutput = ''; |
|
$socialSingleItem = ''; |
|
$json = '['.Typecho_Widget::widget('Widget_Options')->socialItems.']'; |
|
$socialItems = json_decode($json); |
|
foreach ($socialItems as $socialItem){ |
|
$itemName = $socialItem->name; |
|
@$itemStatus = $socialItem->status; |
|
@$itemLink = $socialItem->link; |
|
@$itemClass = $socialItem->class; |
|
if ($itemStatus == 'single'){ |
|
$socialSingleItem .= '<a target="blank" href="'.$itemLink.'" class="btn btn-sm btn-success btn-rounded">'.$itemName.'</a>'; |
|
}else{ |
|
$socialItemsOutput .= '<a target="_blank" title="'.$itemName.'" href="'.$itemLink.'" class="btn btn-sm btn-bg btn-rounded btn-default btn-icon"><i class="'.$itemClass.'"></i></a>'; |
|
} |
|
} |
|
?> |
|
<?php echo $socialItemsOutput; ?> |
|
</p> |
|
<?php echo $socialSingleItem; ?> |
|
</div> |
|
</div> |
|
<div class="col-sm-5"> |
|
<?php Typecho_Widget::widget('Widget_Stat')->to($stat); ?> |
|
<div class="pull-right pull-none-xs text-center"> |
|
<a class="m-b-md inline m"> |
|
<span class="h3 block font-bold"><?php $stat->publishedCommentsNum() ?></span> |
|
<small><?php _me("评论") ?></small> |
|
</a> |
|
<a class="m-b-md inline m"> |
|
<span class="h3 block font-bold"><?php $stat->publishedPostsNum() ?></span> |
|
<small><?php _me("文章") ?></small> |
|
</a> |
|
<a class="m-b-md inline m"> |
|
<span class="h3 block font-bold"><?php $this->commentsNum(); ?></span> |
|
<small><?php _me("新鲜事") ?></small> |
|
</a> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="wrapper bg-white b-b"> |
|
<ul class="nav nav-pills nav-sm" id="time-tabs"> |
|
<li class="active"><a href="#talk" role="tab" data-toggle="tab" aria-expanded="true"><?php _me("我的动态") ?></a></li> |
|
<?php |
|
|
|
$json = '['.Typecho_Widget::widget('Widget_Options')->rssItems.']'; |
|
$rssItems = json_decode($json); |
|
$tabPanes = ""; |
|
foreach ($rssItems as $rssItem) { |
|
$itemId = $rssItem->id; |
|
$itemUrl = $rssItem->url; |
|
$itemName = $rssItem->name; |
|
@$itemType = $rssItem->type; |
|
@$itemImg = $rssItem->img; |
|
echo Content::returnTimeTab($itemId,$itemName,$itemUrl,$itemType,$itemImg); |
|
$tabPanes .= Content::returnTimeTabPane($itemId); |
|
} |
|
?> |
|
</ul> |
|
</div> |
|
|
|
<div class="tab-content"> |
|
<div id="talk" class="padder tab-pane fade in active"> |
|
<?php $this->need('component/say.php') ?> |
|
</div><!--end of #pedder--> |
|
|
|
<?php echo $tabPanes; ?> |
|
</div> |
|
</div><!--end of .center-part --> |
|
<div class="col w-lg bg-light lter b-l bg-auto"> |
|
<div class="wrapper"> |
|
<div class=""> |
|
<div class="m-b-xs text-md"><?php _me("联系方式") ?></div> |
|
<ul class="list-group no-bg no-borders pull-in"> |
|
<?php |
|
$contactItemsOutput = ''; |
|
$json = '['.Typecho_Widget::widget('Widget_Options')->contactItems.']'; |
|
$contactItems = json_decode($json); |
|
foreach ($contactItems as $contactItem){ |
|
$itemName = $contactItem->name; |
|
$itemImg = $contactItem->img; |
|
$itemValue = $contactItem->value; |
|
$itemLink = $contactItem->link; |
|
|
|
$contactItemsOutput .= '<li class="list-group-item"><a target="_blank" href="'.$itemLink.'" class="pull-left thumb-sm avatar m-r"><img |
|
src="'.$itemImg.'" class="img-circle"><i class="on b-white bottom"></i></a><div class="clear"><div><a target="_blank" href="'.$itemLink.'">'.$itemName.'</a></div><small class="text-muted">'.$itemValue.'</small></div></li>'; |
|
} |
|
?> |
|
<?php echo $contactItemsOutput; ?> |
|
</ul> |
|
</div> |
|
|
|
<div class="panel b-a"> |
|
<h4 class="font-thin padder"><?php _me("关于我") ?></h4> |
|
<ul class="list-group"> |
|
<li class="list-group-item"> |
|
<p><?php $this->options->about() ?></p> |
|
|
|
</li> |
|
</ul> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</main> |
|
|
|
<script> |
|
var timeTemple = '<div class="m-l-n-md">\n' + |
|
' <a class="pull-left thumb-sm avatar">\n' + |
|
' <img src="{IMG_AVATAR}">\n' + |
|
' </a> \n' + |
|
' <div class="time-machine m-l-xxl panel b-a">\n' + |
|
' <div class="panel-heading pos-rlt">\n' + |
|
' <span class="arrow left pull-up"></span>\n' + |
|
' <span class="text-muted m-l-sm pull-right">\n' + |
|
' {TIME}\n' + |
|
' </span>\n' + |
|
' {CONTENT}</div><div class="text-muted say_footer panel-footer">\n' + |
|
' <a target="_blank" href="{LINK}" class="text-muted m-xs"><i class="iconfont icon-redo"></i> 查看全文</a>\n' + |
|
' </div>' + |
|
' </div>' + |
|
' </div>'; |
|
|
|
$('#time-tabs').find('a').click(function (e) { |
|
var object = $(this); |
|
var rss = $(this).data("rss"); |
|
var id = $(this).data("id"); |
|
var flag = $(this).attr("data-status"); |
|
var type = $(this).data("type"); |
|
var img = $(this).data("img"); |
|
console.log(flag); |
|
console.log(rss); |
|
if ('undefined' !== rss && 'undefined' !== id && flag === "false"){ |
|
//动态加载内容 |
|
$.getFeed({ |
|
url: rss, |
|
success: function(feed){ |
|
$.each(feed.items,function(i,item){ |
|
|
|
var date = new Date(Date.parse(item.updated)); |
|
Y = date.getFullYear() + '-'; |
|
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; |
|
D = date.getDate() + ' '; |
|
h = date.getHours() + ':'; |
|
m = date.getMinutes(); |
|
date=Y+M+D+h+m; |
|
var itemContent=""; |
|
if (type!==""){ |
|
if (type === "title"){ |
|
itemContent = item.title; |
|
}else if (type === "description"){ |
|
itemContent = item.description; |
|
}else { |
|
itemContent = item.description; |
|
} |
|
}else { |
|
itemContent = item.description; |
|
} |
|
if (img ===""){ |
|
img = "<?php $this->options->BlogPic(); ?>"; |
|
} |
|
var content=timeTemple. |
|
replace("{TIME}",date). |
|
replace("{CONTENT}",itemContent). |
|
replace("{LINK}",item.link). |
|
replace("{IMG_AVATAR}",img); |
|
|
|
|
|
$("#"+id).find(".comment-list").append(content); |
|
$("#"+id).find(".streamline").removeClass("hide"); |
|
$("#"+id).find(".loading-nav").addClass("hide"); |
|
object.attr("data-status","true"); |
|
|
|
|
|
}); |
|
} |
|
}); |
|
} |
|
}); |
|
|
|
$("#time-upload").bind("click",function () { |
|
$("#time_file").trigger("click"); |
|
|
|
}); |
|
|
|
/*监听文件上传框*/ |
|
$("#time_file").bind("change",function () { |
|
if (!$(this).val()) { |
|
$("#file-info").html("没有选择文件"); |
|
return; |
|
} |
|
|
|
|
|
var input = $('#time_file'); |
|
// 相当于: $input[0].files, $input.get(0).files |
|
var files = input.prop('files'); |
|
console.log(files); |
|
//判断文件类型 |
|
if (files[0].type!=="image/jpeg" && files[0].type!=="image/png" && files[0].type!=="image/gif"){ |
|
$("#file-info").val("错误的文件类型!" + files[0].type); |
|
return; |
|
} |
|
var suffix = "." + files[0].type.slice(6); |
|
console.log(suffix); |
|
//开始上传文件 |
|
var file = files[0]; |
|
var reader = new FileReader(); |
|
reader.onload = function(e) { |
|
var data = e.target.result;//base64 加密后的图片数据 |
|
var content = new FormData(); |
|
content.append("action","upload_img"); |
|
content.append("file",data); |
|
content.append("suffix",suffix); |
|
|
|
$.ajax({ |
|
url: "?action=upload_img", |
|
type: 'post', |
|
data: content, |
|
cache: false, |
|
processData: false, |
|
contentType: false, |
|
success: function (data) { |
|
$("#time-upload").text("选择文件"); |
|
$("#time-upload").attr("disabled",false); |
|
$("input[ name='imageInsertModal']").val(data);//插入返回的图片地址 |
|
|
|
}, error: function (jqXHR, textStatus, errorThrown) { |
|
$("#time-upload").attr("disabled",false); |
|
$("#time-upload").text("选择文件"); |
|
$("#file-info").val($("#file-info").val() + "上传失败" + textStatus); |
|
} |
|
}); |
|
|
|
|
|
// preview.style.backgroundImage = 'url(' + data + ')'; |
|
}; |
|
|
|
// data.append('data', "2333"); |
|
$("#file-info").val(files[0].name); |
|
$("#time-upload").text("正在上传"); |
|
$("#time-upload").attr("disabled",true); |
|
reader.readAsDataURL(file); |
|
|
|
|
|
|
|
|
|
/*// 获取File引用: |
|
var file = fileInput.files[0]; |
|
// 获取File信息: |
|
info.innerHTML = '文件: ' + file.name + '<br>' + |
|
'大小: ' + file.size + '<br>' + |
|
'修改: ' + file.lastModifiedDate; |
|
if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') { |
|
alert('不是有效的图片文件!'); |
|
return; |
|
} |
|
// 读取文件: |
|
var reader = new FileReader(); |
|
reader.onload = function(e) { |
|
var |
|
data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...' |
|
preview.style.backgroundImage = 'url(' + data + ')'; |
|
}; |
|
// 以DataURL的形式读取文件: |
|
reader.readAsDataURL(file);*/ |
|
}) |
|
|
|
</script> |
|
|
|
<!-- footer --> |
|
<?php $this->need('component/footer.php'); ?> |
|
<!-- / footer -->
|
|
|