Вопрос по объединению сообщений форума

#1 3 февраля 2013 в 14:45
Ребята, подскажите какой временной промежуток установлен на объединение сообщений на форуме в 1.10.x. То есть сколько должно пройти времени, чтобы сообщение отобразилось отдельным постом а не объединялось с предыдущим? Если кто знает, подскажите где это настраивается, и в каком файле?
#2 3 февраля 2013 в 19:18
Аналогичную тему нашел — instantcms.ru/forum/thread13843.html больше недели назад человек спрашивал, 77 просмотров и ни одного ответа, я так понимаю на мой вопрос ответа тоже не будет, наверное никто пока этим вопросом не занимался. Тогда обращаюсь к разработчикам iCMS

Уважаемые разработчики iCMS!
Прошу Вас, подскажите пожалуйста где задается промежуток времени в течение которого происходит объединение (склейка) сообщений на форуме. Можно ли это регулировать? В каком файле и что нужно подкрутить?
#3 3 февраля 2013 в 19:43
Присоединяюсь к обсуждению вопроса.
#4 3 февраля 2013 в 19:45
Май, проходил мимо — отвечу:
Точно не знал где и сам, ибо Fuze код переписывает быстрее чем я успеваю его осилить )))
Нашел ровно за одну минуту:
— зашел сюда — \languages\ru\components\forum.php — вычислил переменную — Добавлено спустя — она равна — $_LANG['ADDED_LATER']
— далее поиском по архиву узнал где переменная встречается — в двух файлах — языковом (выше) и \components\forum\model.php — открываем его и уже поиском по нему ищем блок с переменной и читаем окружение:
  1.  
  2. public function addPost($post){
  3.  
  4. // Получаем последний пост темы
  5. $last_post = $this->inDB->get_fields('cms_forum_posts', "thread_id = '{$post['thread_id']}'", '*', 'pubdate DESC');
  6. // Если он этого же автора и прошло не более 20 минут, склеиваем, иначе просто добавляем
  7. $minutes_passed = round((time() - strtotime($last_post['pubdate']))/60);
  8. if($last_post['user_id'] == $post['user_id'] && $minutes_passed < 20){
  9.  
думаю тут уже все понятно…
#5 3 февраля 2013 в 19:50


Май, проходил мимо — отвечу:
Точно не знал где и сам, ибо Fuze код переписывает быстрее чем я успеваю его осилить )))
Нашел ровно за одну минуту:
— зашел сюда — \languages\ru\components\forum.php — вычислил переменную — Добавлено спустя — она равна — $_LANG['ADDED_LATER']
— далее поиском по архиву узнал где переменная встречается — в двух файлах — языковом (выше) и \components\forum\model.php — открываем его и уже поиском по нему ищем блок с переменной и читаем окружение:

  1.  
  2. public function addPost($post){
  3.  
  4. // Получаем последний пост темы
  5. $last_post = $this->inDB->get_fields('cms_forum_posts', "thread_id = '{$post['thread_id']}'", '*', 'pubdate DESC');
  6. // Если он этого же автора и прошло не более 20 минут, склеиваем, иначе просто добавляем
  7. $minutes_passed = round((time() - strtotime($last_post['pubdate']))/60);
  8. if($last_post['user_id'] == $post['user_id'] && $minutes_passed < 20){
  9.  
думаю тут уже все понятно ...

Madmax

MadMax, извините за оффтоп. А мне с ошибкой при загрузке фотографий через мультизагрузку поможете исправить?
#6 3 февраля 2013 в 19:53
Сергей Егоров,

2.6. Соблюдайте принцип «одна тема = одна проблема». Не нужно решать все свои вопросы в рамках одной темы.

Правила
#7 3 февраля 2013 в 19:54


Сергей Егоров,

2.6. Соблюдайте принцип «одна тема = одна проблема». Не нужно решать все свои вопросы в рамках одной темы.

Правила

Fuze

Извините, уважаемый Fuze.
#8 3 февраля 2013 в 19:57
Сергей Егоров, у нас такой большой и дружелюбный форум, обязательно кто нибудь поможет…
Главное спросить правильно и описать все поподробнее — ибо я считаю, что в 90 процентах в косяках на сайтах, вина Администратора и хостера, прежде чем что-то изменять, устанавливать дополнительно и т.д. и т.п., нужно очень хорошо подумать и забекапить.
#9 3 февраля 2013 в 19:58


Сергей Егоров, у нас такой большой и дружелюбный форум, обязательно кто нибудь поможет…
Главное спросить правильно и описать все поподробнее — ибо я считаю, что в 90 процентах в косяках на сайтах, вина Администратора и хостера, прежде чем что-то изменять, устанавливать дополнительно и т.д. и т.п., нужно очень хорошо подумать и забекапить.

Madmax

Спрашивал на форуме, никто не ответил. Сказали искать в журнале на хостинге, но там столько кода, что ничего не понял.
#10 3 февраля 2013 в 20:01
Madmax, большое спасибо, попробую дальше сам разобраться, к сожалению я пока дальше css и html не умею, все эти переменные для меня пока темный лес, все чаще прихожу к тому что пора уже таки начать осваивать пхп. smile
#11 3 февраля 2013 в 20:06

попробую дальше сам разобраться, к сожалению я пока дальше css и html не умею

Май
Тут просто логика — если в подсказке написано —
Если он этого же автора и прошло не более 20 минут, склеиваем, иначе просто добавляем
то и ищем блок —
< 20 — вариантов то там немного
#12 3 февраля 2013 в 20:14

вариантов то там немного

Madmax
согласен.

Вот нашел кусок кода
  1. // Если он этого же автора и прошло не более 60 минут, склеиваем, иначе просто добавляем
  2. $minutes_passed = round((time() - strtotime($last_post['pubdate']))/60);
  3. if($last_post['user_id'] == $post['user_id'] && $minutes_passed < 60)
Чтобы сделать скажем период 10 минут здесь нужно указать так:
  1. $minutes_passed < 10
а вот с этим
  1. strtotime($last_post['pubdate']))/60)
— что делать? оставлять или так сделать
  1. strtotime($last_post['pubdate']))/10)
#13 3 февраля 2013 в 20:16


вариантов то там немного

Madmax
согласен.

Вот нашел кусок кода
  1. // Если он этого же автора и прошло не более 60 минут, склеиваем, иначе просто добавляем
  2. $minutes_passed = round((time() - strtotime($last_post['pubdate']))/60);
  3. if($last_post['user_id'] == $post['user_id'] && $minutes_passed < 60)
Чтобы сделать скажем период 10 минут здесь нужно указать так:
  1. $minutes_passed < 10
а вот с этим
  1. strtotime($last_post['pubdate']))/60)
— что делать? оставлять или так сделать
  1. strtotime($last_post['pubdate']))/10)

Май

Мне кажется, этот код:

  1. strtotime($last_post['pubdate']))/60)
отсчитывает время от отправки последнего сообщения, а 60 — это секунды. ИМХО.
#14 3 февраля 2013 в 20:42
Сергей Егоров, скорее всего так, эту строчку оставил как есть, изменил период, все работает smile
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.