55 lines
		
	
	
		
			871 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			871 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
| Plugin Name: PostViews
 | |
| Plugin URI: http://www.nowhereland.it/
 | |
| Description: PostViews plugin.
 | |
| Author: NoWhereMan
 | |
| Version: 1.0
 | |
| Author URI: http://www.nowhereland.it/
 | |
| */ 
 | |
| 
 | |
| add_action('entry_block', 'plugin_postviews_do');
 | |
| 
 | |
| function plugin_postviews_calc($id, $calc) {
 | |
| 
 | |
| 	$dir = entry_dir($id);
 | |
| 	
 | |
| 	$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() {
 | |
| 	
 | |
| 	global $fpdb, $smarty;
 | |
| 	
 | |
| 	$q = $fpdb->getQuery();
 | |
| 	$calc = $q->single;
 | |
| 	$id = $q->currentid;
 | |
| 	
 | |
| 	$v = plugin_postviews_calc($id, $calc);
 | |
| 	
 | |
| 	$smarty->assign('views', $v);
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| ?>
 | 
