ProfiPHPProfiPHP
Категория: Поддержка OUR-CMS

Самые просматриваемые темы в OUR-CMS

Данный модуль позволит вести статистику просмотров каждой страницы сайта.

Для установки скопируйте содержимое Архива в корень сайта.
/modules/page_rank/.htaccess
/modules/page_rank/db.dat
/modules/page_rank/page_rank.php
И добавьте в редакторе шаблона (templates/(Ваш шаблон)/template.php) в место, где должен выводиться модуль, строку:
<?php include ROOT_PATH.'/modules/page_rank/page_rank.php'; ?>
В 8 строке файла modules/page_rank/page_rank.php можно добавить страницы, которые не будут принимать участие в рейтинге:
$pr_no_index_page = array( 'index', 'contact', '404' );
В 10 строке можно выбрать количество пунктов списка в результатах выдачи:
$pr_num = 10;
Содержимое файла page_rank.php:
<?php
// ************************** //
// **** Модуль Page Rank **** //
// ************************** //
$pr_array_filedb = file( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat' );
$pr_count = count( $pr_array_filedb );
// Страницы, которые не нужно обрабатывать:
$pr_no_index_page = array( 'index', 'contact', '404' );
// Количество выводимых записей:
$pr_num = 10;
$pr_name_page = pathinfo( $pagedb, PATHINFO_FILENAME );
if ( ! in_array( $pr_name_page, $pr_no_index_page ) && isset( $database, $viewnews ) && $viewnews != 'null' && isset( $array_filedb[$viewnews] ) && $viewnews != 0 && trim( $array_filedb[$viewnews] ) != '' ) {
if ( $conf_url == '1' && isset( $messold['link'] ) ) {
$pr_link = $database.'/'.$viewnews.'-'.$messold['link'];
}
else {
$pr_link = $database.'-'.$viewnews;
}
$pr_head = $messold['head'];
}
elseif ( ! isset( $database ) && ! in_array( $pr_name_page, $pr_no_index_page ) ) {
$pr_link = $pr_name_page;
$pr_head = $our_sitetitle;
}
if ( isset( $pr_link, $pr_head ) )
{
for ( $i = 0; $i < $pr_count; $i++ )
{
$pr_messold = unserialize( $pr_array_filedb[$i] );
if ( $pr_messold['link'] == $pr_link )
{
$pr_messold['count']++;
$pr_messold['head'] = $pr_head;
$pr_array_filedb[$i] = serialize( $pr_messold )."\n";
if ( $pr_count >= 2 )
{
for ( $i = 0; $i < $pr_count - 1; $i++ )
{
$pr_data = unserialize( $pr_array_filedb[$i] );
for ( $a = $i + 1; $a < $pr_count; $a++ )
{
$pr_datatwo = unserialize( $pr_array_filedb[$a] );
if ( $pr_data['count'] < $pr_datatwo['count'] )
{
$pr_tmp = $pr_array_filedb[$i];
$pr_array_filedb[$i] = $pr_array_filedb[$a];
$pr_array_filedb[$a] = $pr_tmp;
}
}
}
}
@chmod( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 0777 );
$pr_fopendb = fopen( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 'w+' );
flock( $pr_fopendb, LOCK_EX );
fwrite( $pr_fopendb, implode( '', $pr_array_filedb ) );
flock( $pr_fopendb, LOCK_UN );
fclose( $pr_fopendb );
@chmod( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 0644 );
$pr_operation = true;
break;
}
}
if ( ! isset( $pr_operation ) )
{
$pr_data = array( 'link' => $pr_link, 'head' => $pr_head, 'count' => 1 );
@chmod( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 0777 );
$pr_fopendb = fopen( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 'a+' );
flock( $pr_fopendb, LOCK_EX );
fwrite( $pr_fopendb, serialize( $pr_data )."\n" );
flock( $pr_fopendb, LOCK_UN );
fclose( $pr_fopendb );
@chmod( $_SERVER['DOCUMENT_ROOT'].'/modules/page_rank/db.dat', 0644 );
}
}
$pr_num = $pr_num > $pr_count ? $pr_count : $pr_num;
echo '<ul>';
for ( $i = 0; $i < $pr_num; $i++ ) {
$pr_messold = unserialize( $pr_array_filedb[$i] );
echo '<li><a href="/'.$pr_messold['link'].'.html">'.$pr_messold['head'].'</a> ('.$pr_messold['count'].')</li>';
}
echo '</ul>';
?>

Добавить комментарий

Имя:
Текст комментария: