Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Change Post Time 0.0.2

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Татьяна5 »

Откуда запрос вызывается, из функции? $db там объявлена глобальной?
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Файл mcp_post.php, функция mcp_post_details, global $db присутствует. Запрос на изменение поля post_time в POSTS_TABLE выполняется, следующая за ним функция sync - нет. Попытка подставить вместо sync простой прямой запрос на изменение topic_first_post_id в TOPICS_TABLE - тоже не выполняется, хотя sql отвечает, что affectedrows=1.

И я бы понял, если бы не работало только у меня. Но, насколько я выяснял, мод не работает ни у кого.

Код: Выделить всё

print_r($db->sql_query($sql));
показывает 1, значит запрос обработан успешно... Не понимаю, куда копать в этой ситуации.
Shredder
Former team member
Сообщения: 2219
Стаж: 15 лет 3 месяца
Благодарил (а): 236 раз
Поблагодарили: 561 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Shredder »

Addict писал(а):пост становится первым по времени, но тема об этом не знает, ибо у темы есть свои поля, в которых хранятся данные о первом и последнем посте. Без внесения изменений в данные темы пост первым не является.
И не только у темы - у форума тоже.
Я же говорю: запросами вы ничего не добьётесь. Даже если вы сделаете несколько запросов для разных таблиц, чтобы обновить в них данные для этого поста, то при следующем же запуске синхронизации (например, из админки) всё вернётся "на круги своя" - в темах и форумах будет полная мешанина. Проверено. Чтобы исправить эту ситуацию, нужно вносить правки в функцию sync, как я на предыдущей странице написал, и вызывать эту функцию после обновления времени поста. Собственно, она и сейчас вызывается в моде, но именно из-за синхронизации по post_id не выполняет ту роль, которую должна.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Пчелкин »

Addict писал(а):Не понимаю, куда копать в этой ситуации.
Проще сделать копию всей темы а исходник убить... В новой теме все будет пучком... Тока что спасибки умрут и просмотры...
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Shredder, дело даже не в том, добьюсь я запросами или нет, такие костыли как раз городить не хочется. Главным сейчас считаю вопрос: почему не выполняется запрос, следующий за изменением времени поста?

Пчелкин, мне предстоит перелопатить слишком много тем... Таки нужен функционал этого мода...

Можно было бы сварганить костыль из sync и добавить его в этот мод, не сильно сложное мероприятие. Но что с запросами?..
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 12 лет 9 месяцев
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Change Post Time 0.0.2

Сообщение Booker »

Пчелкин писал(а): Проще сделать копию всей темы а исходник убить... В новой теме все будет пучком... Тока что спасибки умрут и просмотры...
Я немного проще делаю - копирую первый пост темы (он получается от моего имени), потом меняю в нём автора на автора первого поста и меняю время на минуту позже, чем первый пост (получается в теме первый и второй пост абсолютно одинаковы и от одного автора). А потом в первый пост редактированием вставляю нужный текст и нужного автора. Тема сразу всё узнаёт. Фишка в том, чтобы не удалять и не переносить сам первый пост. Все просмотры и остальные плюшки тоже сохраняются.
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Booker, я извиняюсь, если вдруг вопрос идиотский, но "копирую пост" - это где такое?
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11234
Стаж: 14 лет 2 месяца
Откуда: fotovideoforum.ru
Благодарил (а): 1782 раза
Поблагодарили: 1340 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Пчелкин »

Booker писал(а):Я немного проще делаю - копирую первый пост темы
Да и так можно...То есть в первый родной пост темы вставить нужную информацию с заменой автора на нужного. А бывшую информацию первого поста можно скопировать в любой другой ненужный пост или созданный вновь и по времени сделать его вторым постом темы...

Добавлено спустя 1 минуту 13 секунд:
Addict писал(а): но "копирую пост"
Новое сообщение с заменой потом времени его создания...
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Согласен, на таких костылях ковылять тоже вариант, причём, самый простой и безболезненный из рассмотренных, не считая возможных проблем с синхронизацией в случае удаления первого поста и т.п... Но меня никак не отпускает невыполнение запросов...

Кстати, сразу же возникает вопрос: если мод не изменяет информацию о последнем посте темы/форума, а мы перемещаем последний пост на второе место в теме, какие могут быть последствия при синхронизации?

Добавлено спустя 12 минут 56 секунд:
Shredder, можно подробностей? Всё, что я увидел из внесения изменений в БД в функции sync(topic) - это конструкцию

Код: Выделить всё

1728                  if (sizeof($sql_ary))
1729                  {
1730                      $sql = 'UPDATE ' . TOPICS_TABLE . '
1731                          SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
1732                          WHERE topic_id = ' . $topic_id;
1733                      $db->sql_query($sql);
1734  
1735                      $resync_forums[$row['forum_id']] = $row['forum_id'];
1736                  }
Это синхронизация темы. Здесь, после массы административно-хозяйственных действий, собранные в массив $sql_ary поля обновляются, и на этом, собственно всё. Это мало чем отличается от простого запроса, который я пытаюсь выполнить. Никакой синхронизации по post_id не увидел. Если я правильно понял, посты в темах распределяются по времени их создания, и мод изменения времени (при грамотном подходе) должен вполне правильно всё ставить по своим местам.

Для себя я сделал вывод, что sync в моде не выполняется вообще. Осталось понять, как с этим бороться, и мод сможет жить.

Любая помощь приветствуется хотя бы по причине того, что довольно большое количество людей уже такого наковыряли у себя в форумах...
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Shredder, аймсори, только сейчас догнал твою мысль. Получается, нужно изменять функцию sync, чтобы синхронизация шла по времени написания поста, а не по его id. Но это, скажем так, не совсем гигиенично...
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Итог почти недельного расследования следующий: запросы выполняются нормально, но мой подход был неверным. Не закоментив функцию sync, я перед ней выполнял запрос на изменение данных о топике, а sync всё возвращал на место :mrgreen: Неприятно чувствовать себя идиотом :oops: Зато во многом разобрался, и, как говорил великий Брюс Ли, "Цель не обязательно должна достигаться, порой это направление для дальнейшего движения".

Вывод: мод нужно уничтожать, ибо работать правильно он не может из-за несоответствия внутренней функции форума sync, менять которую как минимум опасно.

Лично я мод убиваю. Без него проблем выше крыши.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Sheer »

Хех, а может в моде использовать не встроенную функцию, а специально адаптированную - тогда и проблем не будет.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Shredder
Former team member
Сообщения: 2219
Стаж: 15 лет 3 месяца
Благодарил (а): 236 раз
Поблагодарили: 561 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Shredder »

Addict писал(а):работать правильно он не может из-за несоответствия внутренней функции форума sync, менять которую как минимум опасно.
Скажите, а по какой причине, по-вашему, менять её "столь опасно"? Разве не половина модов занимаются тем, что меняют внутренние функции форума, и ничего - все живут нормально?
Sheer писал(а):а может в моде использовать не встроенную функцию, а специально адаптированную - тогда и проблем не будет.
Будет. Когда очередную синхронизацию из админки (или ещё откуда-нибудь) запустите. Проверено уже.
Аватара пользователя
Addict
phpBB 1.4.0
Сообщения: 30
Стаж: 15 лет 1 месяц
Откуда: мск
Благодарил (а): 8 раз
Поблагодарили: 3 раза

Re: Change Post Time 0.0.2

Сообщение Addict »

Shredder, не так уж много модов лезут в БД, ещё меньше меняют задуманную разработчиками форума структуру хранения, вывода и т.п... Опасность лично для меня заключается в том, что, используя ли специально написанную под мод функцию, или без неё, мне необходимо изменить время последнего поста на первый в сотнях тем. А ещё нужно, чтобы эти первые посты были прилепленными. Если при этом не использовать встроенную синхронизацию,
Sheer писал(а):тогда и проблем не будет.
Проблемы начнутся, когда эта функция отработает, специально или по причине амнезии, на форумах и темах, где были переезды по времени.
Shredder
Former team member
Сообщения: 2219
Стаж: 15 лет 3 месяца
Благодарил (а): 236 раз
Поблагодарили: 561 раз
Контактная информация:

Re: Change Post Time 0.0.2

Сообщение Shredder »

Addict писал(а):не так уж много модов лезут в БД, ещё меньше меняют задуманную разработчиками форума структуру хранения, вывода и т.п...
Не просто много, а ОЧЕНЬ много.
Addict писал(а):Опасность лично для меня заключается в том, что, используя ли специально написанную под мод функцию, или без неё, мне необходимо изменить время последнего поста на первый в сотнях тем. А ещё нужно, чтобы эти первые посты были прилепленными.
Выдумываете себе несуществующие проблемы. Ну, как хотите, переубеждать не буду.
Закрыто

Вернуться в «Поддержка модов для phpBB 3.0.x»