Views и время на сервере

Главные вкладки

Аватар пользователя Lyngtor Lyngtor 9 ноября 2011 в 10:05

Здравствуйте.
На сайте есть стандартная выборка views по просмотрам "за сегодня".
В середине дня по московскому времени она, почему-то обнуляется.
В настройках сайта, в качестве региона и часового пояса стоят: Россия и Москва.
Время на сервере, на котором расположен сайт, отличается от московского. Подозреваю что views, работает по времени сервера...
Подскажите, как решается эта проблема?

Комментарии

Аватар пользователя kompas kompas 9 ноября 2011 в 13:32

Вряд ли это время сервера. У меня на сервере нормальное время, а обновляется тоже черт знает когда :/

Аватар пользователя kalabro kalabro 9 ноября 2011 в 14:46

http://drupal.org/node/521858
Насколько я поняла, не очень хорошо прописан в модуле Statistics сброс просмотров за день. Вероятно вы можете немножко подровнять, когда он у вас должен сбрасываться, установив в
variable_set('statistics_day_timestamp', strtotime('midnight'));

Аватар пользователя kompas kompas 9 ноября 2011 в 15:33

kalabro, это же вроде для 8-го друпала, лично у меня 6. У автора темы 7. Видимо это вообще что-то друпало- генетическое. И если честно я так и не понял что где править Sad

Аватар пользователя kompas kompas 9 ноября 2011 в 16:44

а может и правда сервак виноват, у меня обнуление в 15:00 Sad

============================================

Уточнил у хостера, время на сервере правильное, так что дело точно не в сервере

Аватар пользователя drupby drupby 9 ноября 2011 в 17:16

"kompas" wrote:
Уточнил у хостера, время на сервере правильное, так что дело точно не в сервере

а чем совет kalabro не устроил ?

Аватар пользователя kompas kompas 9 ноября 2011 в 17:18

"drupby" wrote:
а чем совет kalabro не устроил ?

не разобрался что на что менять и непонятно вообще то ли это решение

Аватар пользователя drupby drupby 9 ноября 2011 в 17:22

"kompas" wrote:
не разобрался что на что менять и непонятно вообще то ли это решение

в папке модуля statistics лежит файл statistics.module ,там есть ф-ция
function statistics_cron() ,в которой и ресетится счетчик -экспериментируй.

Аватар пользователя kompas kompas 9 ноября 2011 в 17:46

"drupby" wrote:
в папке модуля statistics лежит файл statistics.module ,там есть ф-ция
function statistics_cron() ,в которой и ресетится счетчик -экспериментируй.

Вот код:

<?php/**
 * Implementation of hook_cron().
 */
function statistics_cron() {
  $statistics_timestamp = variable_get('statistics_day_timestamp', '');

  if ((time() - $statistics_timestamp) >= 86400) {
    // Reset day counts.
    db_query('UPDATE {node_counter} SET daycount = 0');
    variable_set('statistics_day_timestamp', time());
  }

  // Clean up expired access logs.
  if (variable_get('statistics_flush_accesslog_timer', 259200) > 0) {
    db_query('DELETE FROM {accesslog} WHERE timestamp < %d', time() - variable_get('statistics_flush_accesslog_timer', 259200));
  }
}?>

Как с этим можно экспериментировать?

Аватар пользователя kompas kompas 9 ноября 2011 в 17:55

"RxB" wrote:
Прямо слёт экстрасенсов.
А начать с запроса, который генерирует вьюс не вариант?
Тогда сразу видно будет, статистика это или лунное затмение

Этот что ли?

SELECT node.nid AS nid,
 node.created AS node_created,
 node.title AS node_title,
 node.language AS node_language,
 users.name AS users_name,
 users.uid AS users_uid,
 history_user.timestamp AS history_user_timestamp,
 node.changed AS node_changed,
 node_comment_statistics.last_comment_timestamp AS node_comment_statistics_last_comment_timestamp,
 node_counter.daycount AS node_counter_daycount
 FROM dr_node node
 LEFT JOIN dr_node_counter node_counter ON node.nid = node_counter.nid
 INNER JOIN dr_users users ON node.uid = users.uid
 LEFT JOIN dr_history history_user ON node.nid = history_user.nid AND history_user.uid = ***CURRENT_USER***
 INNER JOIN dr_node_comment_statistics node_comment_statistics ON node.nid = node_comment_statistics.nid
 WHERE (node.status <> 0) AND (node_counter.totalcount > 0) AND (node.type IN ('story'))
 ORDER BY node_counter_daycount DESC
Аватар пользователя Lyngtor Lyngtor 9 ноября 2011 в 19:57

Kompas, Drupby, RxB спасибо за ответы.

Kalabro, вам особое спасибо. Кажется, суть проблемы начинаю понимать. Место где искать - вы тоже указали. В ближайшие дни - буду пробовать.

"RxB" wrote:
Прямо слёт экстрасенсов.
А начать с запроса, который генерирует вьюс не вариант?
Тогда сразу видно будет, статистика это или лунное затмение

Что поделать - не программисты мы Smile
Методом экспериментов, проб и ошибок - учимся!

Аватар пользователя Lyngtor Lyngtor 1 декабря 2011 в 9:50

Kompas, у меня все работает!
Делаете все в точности как сказала Kalabro. Т.е. в файле statistics.module ищете и заменяете указанные строки. Устанавливаете запуск cron-a с интервалом в 1 час.
И в течении одного часа после полуночи, статистика обязательно сбрасывается. Минуты могут варьироваться, но это не так важно.

Спасибо Kalabro!