summaryrefslogtreecommitdiff
path: root/post
diff options
context:
space:
mode:
author阔落 <45323514+BigCoke233@users.noreply.github.com>2019-04-06 15:00:31 +0800
committerGitHub <noreply@github.com>2019-04-06 15:00:31 +0800
commit890b239d7eb2a1aca2b3ce81d8efdd0665d30310 (patch)
treefd72b0ca3ca07fde6d44f3fcb76e5555aa3a8b64 /post
parente01e9619adee76fa254a8c23201142ae10b6221a (diff)
优化
Diffstat (limited to 'post')
-rw-r--r--post/post-content.php70
-rw-r--r--post/post-excerpt.php62
-rw-r--r--post/post-item.php74
3 files changed, 206 insertions, 0 deletions
diff --git a/post/post-content.php b/post/post-content.php
new file mode 100644
index 0000000..a1fdd24
--- /dev/null
+++ b/post/post-content.php
@@ -0,0 +1,70 @@
+<?php
+ $content = $this->content;
+
+ $content = preg_replace('/<table(.*?)>/s','<table class="table table-striped table-hover">',$content);
+ $content = preg_replace('/<pre><code>/s','<pre><code class="language-html">',$content);
+ $content = preg_replace('/<img(.*?)src="(.*?)"(.*?)alt="(.*?)"(.*?)>/s','<a data-fancybox="gallery" href="${2}" class="gallery-link"><img${1}src="${2}"${3}></a><span class="post-img-alt">${4}</span>',$content);
+
+ //短代码(无参数)
+ $reg = '/\[scode\](.*?)\[\/scode\]/s';
+ $rp = '<div class="tip">${1}</div>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //短代码(有参数)
+ $reg = '/\[scode.*?type="(.*?)"\](.*?)\[\/scode\]/s';
+ $rp = '<div class="tip ${1}">${2}</div>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //font文字排版
+ //无参数时,自动解析为红色
+ $reg = '/\[font\](.*?)\[\/font\]/s';
+ $rg = '<span style="color:red;">${1}</span>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析只有color参数的font
+ $reg = '/\[font color="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '<span style="color:${1}">${2}</span>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析只有bg参数的font
+ $reg = '/\[font bg="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '<span style="background-color:${1}">${2}</span>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析只有size参数的font
+ $reg = '/\[font size="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '<span style="font-size:${1}">${2}</span>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析只有style参数的font
+ $reg = '/\[font style="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '<span style="${1}">${2}</span>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //滚动文本区域
+ $reg = '/\[stext\](.*?)\[\/stext\]/s';
+ $rp = '<div class="post-stext">${1}</div>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析按钮
+ $reg = '/\[btn url="(.*?)" type="(.*?)" ico="(.*?)"\](.*?)\[\/btn\]/s';
+ $rp = '<a href="${1}" class="btn btn-${2}" target="_blank"><i class="${3}"></i> ${4}</a>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析嵌入块
+ $reg = '/\[well\](.*?)\[\/well\]/s';
+ $rp = '<div class="well">${1}</div>';
+ $content = preg_replace($reg,$rp,$content);
+
+ //解析面板
+ //无参数面板
+ $reg = '/\[panel\](.*?)\[\/panel\]/s';
+ $rp = '<div class="panel panel-default"><Div class="panel-body">${1}</div></div>';
+ $content = preg_replace($reg,$rp,$content);
+ //有标题的面板
+ $reg = '/\[panel title="(.*?)"\](.*?)\[\/panel\]/s';
+ $rp = '<div class="panel panel-default"><div class="panel-heading">${1}</div><Div class="panel-body">${2}</div></div>';
+ $content = preg_replace($reg,$rp,$content);
+
+ echo $content;
+?> \ No newline at end of file
diff --git a/post/post-excerpt.php b/post/post-excerpt.php
new file mode 100644
index 0000000..401349f
--- /dev/null
+++ b/post/post-excerpt.php
@@ -0,0 +1,62 @@
+<?php
+ //短代码(无参数)
+ $reg = '/\[scode\](.*?)\[\/scode\]/s';
+ $rp = '${1}';
+ $post_excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //短代码(有参数)
+ $reg = '/\[scode.*?type="(.*?)"\](.*?)\[\/scode\]/s';
+ $rp = '${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //font文字排版
+ //无参数时,自动解析为红色
+ $reg = '/\[font\](.*?)\[\/font\]/s';
+ $rg = '${1}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析只有color参数的font
+ $reg = '/\[font color="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析只有bg参数的font
+ $reg = '/\[font bg="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析只有size参数的font
+ $reg = '/\[font size="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析只有style参数的font
+ $reg = '/\[font style="(.*?)"\](.*?)\[\/font\]/s';
+ $rp = '${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //滚动文本区域
+ $reg = '/\[stext\](.*?)\[\/stext\]/s';
+ $rp = '${1}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析按钮
+ $reg = '/\[btn url="(.*?)" type="(.*?)" ico="(.*?)"\](.*?)\[\/btn\]/s';
+ $rp = '${4}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析嵌入块
+ $reg = '/\[well\](.*?)\[\/well\]/s';
+ $rp = '${1}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+
+ //解析面板
+ //无参数面板
+ $reg = '/\[panel\](.*?)\[\/panel\]/s';
+ $rp = '${1}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+ //有标题的面板
+ $reg = '/\[panel title="(.*?)"\](.*?)\[\/panel\]/s';
+ $rp = '${1} ${2}';
+ $this->excerpt = preg_replace($reg,$rp,$this->excerpt);
+?> \ No newline at end of file
diff --git a/post/post-item.php b/post/post-item.php
new file mode 100644
index 0000000..5452f45
--- /dev/null
+++ b/post/post-item.php
@@ -0,0 +1,74 @@
+<?php if($this->is('post') || $this->fields->type=='1' ): ?>
+<!-- 说说 -->
+ <?php if ($this->is('index')): ?>
+ <div class="post-item item">
+ <div class="post-content saying-content">
+ <h3><?php $this->author() ?>说:</h3>
+ <?php $this->need('post/post-content.php'); ?>
+ </div>
+ <hr />
+ <div class="row saying-info">
+ <div class="col-md-1 col-xs-2 saying-avatar">
+ <?php $this->author->gravatar(50) ?>
+ </div>
+ <div class="col-md-11 col-xs-10">
+ <h4 class="saying-title"><a href="<?php $this->permalink() ?>"><?php $this->title(); ?></a></h4>
+ <div class="saying-info"><?php $this->date('F j, Y'); ?></div>
+
+ <a href="<?php $this->permalink() ?>" class="read-more pull-right btn btn-default">前往吐槽</a>
+ </div>
+ </div>
+ </div>
+
+ <br />
+ <?php endif; ?>
+<!-- 小板式文章 -->
+<?php elseif($this->fields->type=='2'): ?>
+ <a href="<?php $this->permalink() ?>" class="post-link">
+ <div class="item post-item">
+ <div class="row">
+ <div style="height:160px;background:url('<?php $this->fields->banner(); ?>');background-repeat:no-repeat;background-size:cover" class="col-md-3 col-xs-5 post-banner-sm"></div>
+ <div class="col-md-9 col-xs-7" style="margin-top:-20px;">
+ <h3><?php $this->sticky(); $this->title() ?></h3>
+ <p class="excerpt">
+ <?php $this->need('post/post-excerpt.php'); ?>
+ <?php echo $this->excerpt(50); ?>
+ <br />
+ </p>
+ <hr class="mobile-none" />
+ <div class="post-info mobile-none"><span class="glyphicon glyphicon-th-large"></span> <?php $this->category(',', true, '木有分类'); ?> &nbsp;| &nbsp;<span class="glyphicon glyphicon-calendar"></span> <?php $this->date('F j, Y'); ?> &nbsp;| &nbsp;<Span class="glyphicon glyphicon-comment"></span> <?php $this->commentsNum('%d Comments'); ?></div>
+
+ </div>
+ </div>
+ </div>
+ </a>
+ <br />
+<?php else: ?>
+<!-- 普通文章 -->
+ <a href="<?php $this->permalink() ?>" class="post-link">
+ <div class="item post-item">
+ <?php if ($this->is('index')): ?>
+ <div class="post-banner">
+ <?php if($this->fields->banner && $this->fields->banner!='') :?>
+ <div class="media-banner" style="background-position:center center;background:url(<?php $this->fields->banner(); ?>);background-repeat:no-repeat;background-size:cover;"></div>
+ <?php endif; ?>
+ </div>
+ <?php endif; ?>
+
+
+ <h2 class="index-post-header"><?php $this->sticky(); $this->title() ?></h4>
+ <p class="excerpt">
+ <?php $this->need('post/post-excerpt.php'); ?>
+ <?php echo $this->excerpt(100); ?>
+ </p>
+
+ <hr />
+
+
+ <div class="post-info"><span class="glyphicon glyphicon-th-large"></span> <?php $this->category(',', true, '木有分类'); ?> &nbsp;| &nbsp;<span class="glyphicon glyphicon-calendar"></span> <?php $this->date('F j, Y'); ?> &nbsp;| &nbsp;<Span class="glyphicon glyphicon-comment"></span> <?php $this->commentsNum('%d Comments'); ?></div>
+ <br />
+ </div>
+ </a>
+<br />
+
+<?php endif; ?>