Add setting and performance tweak

Add config on how the teaser behave. Saving the IOPS
This commit is contained in:
danpros 2024-03-02 20:07:37 +07:00
commit 0fba77f175
5 changed files with 104 additions and 27 deletions

View file

@ -7,7 +7,8 @@ timezone = "Asia/Jakarta"
; Date format. ; Date format.
date.format = "d F Y" date.format = "d F Y"
; Your language (example "en_US" for English or "de_DE" for German. See lang directory for available language) ; Your language (example "en_US" for English or "de_DE" for German.
; See lang directory for available language)
language = "en_US" language = "en_US"
; Blog info ; Blog info
@ -90,11 +91,15 @@ popular.count = "5"
; Tagcloud ; Tagcloud
tagcloud.count = "40" tagcloud.count = "40"
; Read more link text for "full" teaser type
read.more = "Read more"
; Teaser type: set "trimmed" or "full". ; Teaser type: set "trimmed" or "full".
teaser.type = "full" teaser.type = "full"
; Read more link text for "full" teaser type ; In summary mode, whether check the shortcode first or not before trim the content to x char
read.more = "Read more" ; Options: "default" and "check"
teaser.behave = "default"
; Teaser character count ; Teaser character count
teaser.char = "200" teaser.char = "200"
@ -108,10 +113,12 @@ rss.count = "10"
; RSS feed description length. If left empty we will use full page. ; RSS feed description length. If left empty we will use full page.
rss.char = "200" rss.char = "200"
; Enable views Counter, the options is "true" and "false". If set to "true", you can see the Counts in Admin page and popular posts. ; Enable views Counter, the options is "true" and "false".
; If set to "true", you can see the Counts in Admin page and popular posts.
views.counter = "false" views.counter = "false"
; Sitemap priorities between "0.0" and "1.0". Set "false" to disable a sitemap for the given type. (See /sitemap.xml) ; Sitemap priorities between "0.0" and "1.0".
; Set "false" to disable a sitemap for the given type. (See /sitemap.xml)
sitemap.priority.base = "1.0" sitemap.priority.base = "1.0"
sitemap.priority.post = "0.5" sitemap.priority.post = "0.5"
sitemap.priority.static = "0.5" sitemap.priority.static = "0.5"

View file

@ -1010,6 +1010,13 @@ function find_draft_page($static = null)
$tmp = array(); $tmp = array();
if (config('views.counter') == 'true') {
$viewsFile = "content/data/views.json";
if (file_exists($viewsFile)) {
$views = json_decode(file_get_contents($viewsFile), true);
}
}
if (!empty($posts)) { if (!empty($posts)) {
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
@ -1046,7 +1053,7 @@ function find_draft_page($static = null)
$post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content));
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
$post->views = get_views('page_' . $post->slug, $post->file); $post->views = get_views('page_' . $post->slug, $post->file, $views);
} else { } else {
$post->views = null; $post->views = null;
} }
@ -1071,6 +1078,13 @@ function find_draft_subpage($static = null, $sub_static = null)
$tmp = array(); $tmp = array();
if (config('views.counter') == 'true') {
$viewsFile = "content/data/views.json";
if (file_exists($viewsFile)) {
$views = json_decode(file_get_contents($viewsFile), true);
}
}
if (!empty($posts)) { if (!empty($posts)) {
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
@ -1116,7 +1130,7 @@ function find_draft_subpage($static = null, $sub_static = null)
$post->body = MarkdownExtra::defaultTransform(remove_html_comments($content)); $post->body = MarkdownExtra::defaultTransform(remove_html_comments($content));
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
$post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file); $post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file, $views);
} else { } else {
$post->views = null; $post->views = null;
} }

View file

@ -83,6 +83,26 @@
<input type="number" name="-config-teaser.char" class="form-control" id="teaser.char" value="<?php echo config('teaser.char');?>"> <input type="number" name="-config-teaser.char" class="form-control" id="teaser.char" value="<?php echo config('teaser.char');?>">
</div> </div>
</div> </div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">Summary behavior</label>
<div class="col-sm-10">
<div class="col-sm-10">
<div class="form-check">
<input class="form-check-input" type="radio" name="-config-teaser.behave" id="teaser.behave1" value="default" <?php if (config('teaser.behave') === 'default' || is_null(config('teaser.behave'))):?>checked<?php endif;?>>
<label class="form-check-label" for="teaser.behave1">
Default
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="-config-teaser.behave" id="teaser.behave2" value="check" <?php if (config('teaser.behave') === 'check'):?>checked<?php endif;?>>
<label class="form-check-label" for="teaser.behave2">
Check shortcode
</label>
</div>
</div>
<small><em>In summary mode, whether check the shortcode first or not before trim the content to x char</em></small>
</div>
</div>
<div class="form-group row"> <div class="form-group row">
<label for="read.more" class="col-sm-2 col-form-label"><?php echo i18n('Read_more_text');?></label> <label for="read.more" class="col-sm-2 col-form-label"><?php echo i18n('Read_more_text');?></label>
<div class="col-sm-10"> <div class="col-sm-10">

View file

@ -43,8 +43,9 @@
"recent.count", "recent.count",
"popular.count", "popular.count",
"tagcloud.count", "tagcloud.count",
"teaser.type",
"read.more", "read.more",
"teaser.type",
"teaser.behave",
"teaser.char", "teaser.char",
"description.char", "description.char",
"rss.count", "rss.count",

View file

@ -395,6 +395,13 @@ function get_posts($posts, $page = 1, $perpage = 0)
$cList = category_list(true); $cList = category_list(true);
if (config('views.counter') == 'true') {
$viewsFile = "content/data/views.json";
if (file_exists($viewsFile)) {
$views = json_decode(file_get_contents($viewsFile), true);
}
}
foreach ($posts as $index => $v) { foreach ($posts as $index => $v) {
$post = new stdClass; $post = new stdClass;
@ -540,7 +547,7 @@ function get_posts($posts, $page = 1, $perpage = 0)
} }
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
$post->views = get_views('post_' . $post->slug, $post->file); $post->views = get_views('post_' . $post->slug, $post->file, $views);
} else { } else {
$post->views = null; $post->views = null;
} }
@ -559,6 +566,13 @@ function get_pages($pages, $page = 1, $perpage = 0)
$tmp = array(); $tmp = array();
if (config('views.counter') == 'true') {
$viewsFile = "content/data/views.json";
if (file_exists($viewsFile)) {
$views = json_decode(file_get_contents($viewsFile), true);
}
}
// Extract a specific page with results // Extract a specific page with results
$pages = array_slice($pages, ($page - 1) * $perpage, $perpage); $pages = array_slice($pages, ($page - 1) * $perpage, $perpage);
@ -609,7 +623,7 @@ function get_pages($pages, $page = 1, $perpage = 0)
} }
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
$post->views = get_views('page_' . $post->slug, $post->file); $post->views = get_views('page_' . $post->slug, $post->file, $views);
} else { } else {
$post->views = null; $post->views = null;
} }
@ -629,6 +643,13 @@ function get_subpages($sub_pages, $page = 1, $perpage = 0)
$tmp = array(); $tmp = array();
if (config('views.counter') == 'true') {
$viewsFile = "content/data/views.json";
if (file_exists($viewsFile)) {
$views = json_decode(file_get_contents($viewsFile), true);
}
}
// Extract a specific page with results // Extract a specific page with results
$sub_pages = array_slice($sub_pages, ($page - 1) * $perpage, $perpage); $sub_pages = array_slice($sub_pages, ($page - 1) * $perpage, $perpage);
@ -689,7 +710,7 @@ function get_subpages($sub_pages, $page = 1, $perpage = 0)
} }
if (config('views.counter') == 'true') { if (config('views.counter') == 'true') {
$post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file); $post->views = get_views('subpage_' . $post->parentSlug .'.'. $post->slug, $post->file, $views);
} else { } else {
$post->views = null; $post->views = null;
} }
@ -2210,10 +2231,15 @@ function get_teaser($string, $url = null, $char = null)
return $string; return $string;
} }
} else { } else {
$readMore = explode('<!--more-->', $string); if (config('teaser.behave') === 'check') {
if (isset($readMore['1'])) { $readMore = explode('<!--more-->', $string);
$string = shorten($readMore[0]); if (isset($readMore['1'])) {
return $string; $string = shorten($readMore[0]);
return $string;
} else {
$string = shorten($string, $char);
return $string;
}
} else { } else {
$string = shorten($string, $char); $string = shorten($string, $char);
return $string; return $string;
@ -3440,27 +3466,36 @@ function add_view($page)
} }
// Get the page views count // Get the page views count
function get_views($page, $oldID = null) function get_views($page, $oldID = null, $views = null)
{ {
$_views = array();
$filename = "content/data/views.json"; $filename = "content/data/views.json";
if (file_exists($filename)) {
$_views = json_decode(file_get_contents($filename), true); if (is_null($views)) {
if (file_exists($filename)) {
$views = json_decode(file_get_contents($filename), true);
}
} }
if (!is_null($oldID)) { if (!is_null($oldID)) {
if (isset($_views[$oldID])) { if (isset($views[$oldID])) {
$arr = replace_key($_views, $oldID, $page); if (file_exists($filename)) {
save_json_pretty($filename, $arr); $views = json_decode(file_get_data($filename), true);
return $_views[$oldID]; }
if (isset($views['flock_fail'])) {
return -1;
} else {
$arr = replace_key($views, $oldID, $page);
save_json_pretty($filename, $arr);
}
return $views[$oldID];
} else { } else {
if (isset($_views[$page])) { if (isset($views[$page])) {
return $_views[$page]; return $views[$page];
} }
} }
} else { } else {
if (isset($_views[$page])) { if (isset($views[$page])) {
return $_views[$page]; return $views[$page];
} }
} }
return -1; return -1;