51 lines
929 B
PHP
51 lines
929 B
PHP
<?php
|
|
/*
|
|
* Plugin Name: PostViews
|
|
* Version: 1.0
|
|
* Plugin URI: https://www.flatpress.org
|
|
* Author: FlatPress
|
|
* Author URI: https://www.flatpress.org
|
|
* Description: Counts and displays entry views. Part of the standard distribution.
|
|
*/
|
|
add_action('entry_block', 'plugin_postviews_do');
|
|
|
|
function plugin_postviews_calc($id, $calc) {
|
|
$dir = entry_dir($id);
|
|
if (!$dir)
|
|
return;
|
|
|
|
$f = $dir . '/view_counter' . EXT;
|
|
|
|
$v = io_load_file($f);
|
|
|
|
if ($v === false) {
|
|
$v = 0;
|
|
} elseif ($v < 0) {
|
|
// file was locked. Do not increase views.
|
|
// actually on file locks system should hang, so
|
|
// this should never happen
|
|
$v = 0;
|
|
$calc = false;
|
|
}
|
|
|
|
if ($calc && !user_loggedin()) {
|
|
$v++;
|
|
io_write_file($f, $v);
|
|
}
|
|
|
|
return $v;
|
|
}
|
|
|
|
function plugin_postviews_do($id) {
|
|
global $fpdb, $smarty;
|
|
|
|
$q = $fpdb->getQuery();
|
|
$calc = $q->single;
|
|
|
|
$v = plugin_postviews_calc($id, $calc);
|
|
|
|
$smarty->assign('views', $v);
|
|
}
|
|
|
|
?>
|