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

Help! Edit Post Date

Ответы на вопросы, связанные с модами для phpBB 2.0.x, кроме относящихся к форуму Для авторов (phpBB 2.0.x).
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 4 месяца
Откуда: Москва

Help! Edit Post Date

Сообщение ALER »

Пробую поставить на 2.0.11 хак Edit Post Date, написанный для 2.0.3:
http://www.phpbbhacks.com/download/883
Перевел на русский lang_edit_post_date.php, даже сделал русскую иконку "дата". Изучил, но не до конца понял дискуссию: http://www.phpbbhacks.com/forums/viewto ... highlight=
Добавил некоторые из упомянутых там вставок. И все равно выскакивает ошибка:
Could not query Posts table.

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

SELECT post_time FROM phpbb_posts WHERE post_id =

Line : 48
File : /home/nivatech/public_html/includes/edit_post_date.php
Поиском ничего по этой теме не нашел, а поставить этот хак очень хотелось бы.

Вижу в первую очередь такое конкретное применение: началась ветка, я хочу снабдить ее в самом начале пояснением или комментарием, какие вопросы будут обсуждаться в этой ветке (или каких вопросов, наоборот, следует избегать и обсуждать их в других ветках). Форум технический, формулирование назначения веток имеет довольно важное значение для консолидации информации по темам.
С помощью этого мода я могу такой пост-преамбуду написать, когда ветка уже началась, а затем поставить дату раньше первого поста.

Может ли мне кто-нибудь помочь разобраться и поставить этот мод?
Алексей aka ALER
Konkere

Сообщение Konkere »

Добавил некоторые из упомянутых там вставок. И все равно выскакивает ошибка:
я добавил все и исправил пару багов в tpl-ке
всё работает
это связано с ужесточением системы безопасности phpBB
в исходном варианте параметр $p явно не проверяется на наличие так же как и параметры вносимые в форму
после

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

// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWMEMBERS);
init_userprefs($userdata);
надо добавить

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

$p = ( isset($HTTP_GET_VARS['p']) ) ? intval($HTTP_GET_VARS['p']) : '';
после

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

if( isset($HTTP_POST_VARS['submit']) ) 
      {
добавить

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

$edit_month = (isset($HTTP_POST_VARS['edit_month'])) ? htmlspecialchars($HTTP_POST_VARS['edit_month']) : htmlspecialchars($HTTP_GET_VARS['edit_month']); 
$edit_day = (isset($HTTP_POST_VARS['edit_day'])) ? intval($HTTP_POST_VARS['edit_day']) : intval($HTTP_GET_VARS['edit_day']); 
$edit_year = (isset($HTTP_POST_VARS['edit_year'])) ? intval($HTTP_POST_VARS['edit_year']) : intval($HTTP_GET_VARS['edit_year']); 
$edit_ampm = (isset($HTTP_POST_VARS['edit_ampm'])) ? htmlspecialchars($HTTP_POST_VARS['edit_ampm']) : htmlspecialchars($HTTP_GET_VARS['edit_ampm']); 
$edit_minute = (isset($HTTP_POST_VARS['edit_minute'])) ? intval($HTTP_POST_VARS['edit_minute']) : intval($HTTP_GET_VARS['edit_minute']); 
$edit_hour = (isset($HTTP_POST_VARS['edit_hour'])) ? intval($HTTP_POST_VARS['edit_hour']) : intval($HTTP_GET_VARS['edit_hour']);
а этот кусок нужен для обновления данных в таблице phpbb_topics синхронно с pbpbb_posts

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

# 
#-----[ FIND ]------------------------------------------ 
# 
            if( !$db->sql_query($sql) ) 
            { 
               message_die(GENERAL_ERROR, "Failed to update Post Date for Post \# $p", "", __LINE__, __FILE__, $sql); 
            } 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
            $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . ' WHERE topic_first_post_id = ' . $p; 
            $result = $db->sql_query($sql); 
            if( $db->sql_numrows($result) ) 
            { 
               $topic_row = $db->sql_fetchrow($result); 
               $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_time=' . $enter_new_post_date . ' WHERE topic_id = ' . $topic_row['topic_id']; 
               if( !$db->sql_query($sql) ) 
               { 
                  message_die(GENERAL_ERROR, "Failed to update Post Date for Topic \# " . $topic_row['topic_id'], "", __LINE__, __FILE__, $sql); 
               } 
            }
а в tpl-ке
нужно после

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

<td align="center" width="100%" valign="middle"><span class="maintitle"> {L_EDIT_POST_DATE_TITLE}</span><br /><span class="gen">{L_EDIT_POST_DATE_EXPLAIN}<br />&nbsp; </span> 
			</tr>
добавить

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

</table>
и после

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

<td class="catBottom" height="18" align="center" valign="middle" colspan="1"><input type="submit" name="submit" value="{L_SUBMIT}" class="mainoption" />&nbsp;&nbsp;<input type="reset" value="{L_RESET}" class="liteoption" /></td>
	</tr>

</table>
добавить вроде всё
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение ALER »

Спасибо, завтра с утра попробую.
Алексей aka ALER
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение ALER »

Спасибо, работает, но возникла новая проблема... Дата и время меняются, но как-то странно - не везде.

Пишу тестовое сообщение, самое последнее в теме. Затем, перезагрузив тему, меняю у этого сообщения время.

Вновь открываю форум. В правой колонке у этой темы стоит ее название и новое время (и/или дата).

Открываю сообщение и смотрю в левый верхний угол: иконка, затем "Добавлено такого-то тогда-то" - вижу там старые дату и время.

При этом постинг сортируется в теме по новым временным параметрам, т. е. те, у которых дата позже, чем новая дата сообщения, оказываются ниже, хотя на самом деле сообщение было написано позже них.

Впрочем, может, в этом и есть великая сермяжная правда...

Не запутал я Вас со старыми-новыми временами? Могу описать как-то иначе :)

Вот здесь: http://www.phpbbguru.net/community/view ... highlight= я расширил адрес поста в левом верхнем углу на "Добавлено такого-то тогда-то". Но не думаю, что это как-то связано.

Добавлено спустя 32 минуты 2 секунды:

Я могу подготовить файл zip со всеми изменениями, комментариями и русскими файлами. Куда/кому послать, чтобы не пропал накопленный опыт? Или просто выложить их здесь через quote и дать ссылку на иконку?[/quote]
Алексей aka ALER
Konkere

Сообщение Konkere »

Пишу тестовое сообщение, самое последнее в теме. Затем, перезагрузив тему, меняю у этого сообщения время.

Вновь открываю форум. В правой колонке у этой темы стоит ее название и новое время (и/или дата).

Открываю сообщение и смотрю в левый верхний угол: иконка, затем "Добавлено такого-то тогда-то" - вижу там старые дату и время.
так вот этот кусок как я уже писал и служит для синхронного обновления дат в дух таблицах если его не вставить так и останется как у Вас

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

# 
#-----[ FIND ]------------------------------------------ 
# 
            if( !$db->sql_query($sql) ) 
            { 
               message_die(GENERAL_ERROR, "Failed to update Post Date for Post \# $p", "", __LINE__, __FILE__, $sql); 
            } 

# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
            $sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . ' WHERE topic_first_post_id = ' . $p; 
            $result = $db->sql_query($sql); 
            if( $db->sql_numrows($result) ) 
            { 
               $topic_row = $db->sql_fetchrow($result); 
               $sql = 'UPDATE ' . TOPICS_TABLE . ' SET topic_time=' . $enter_new_post_date . ' WHERE topic_id = ' . $topic_row['topic_id']; 
               if( !$db->sql_query($sql) ) 
               { 
                  message_die(GENERAL_ERROR, "Failed to update Post Date for Topic \# " . $topic_row['topic_id'], "", __LINE__, __FILE__, $sql); 
               } 
            }
Xpert
phpBB Guru
phpBB Guru
Сообщения: 5484
Стаж: 20 лет 1 месяц
Поблагодарили: 2 раза

Сообщение Xpert »

ALER
У вас стоит мод Advanced Posts Merging?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Konkere

Сообщение Konkere »

Можно посмотреть у меня в тестовом форуме там первое сообщение в теме было написано 07.01.2005 а у следующего я изменид дату на 06.01.2005
http://testf.netsys.ru/phpBB2/viewtopic.php?t=27
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение ALER »

Это изменение в edit_post_date.php я уже вносил. Сейчас повторно это сделал - и ничего не изменилось. Пост перемещается в теме сообразно новой дате, но при "Добавлено" дата остается старой.

Добавлено спустя 30 минут 51 секунду:

Konkere
Да, посмотрел. Но у меня все по-прежнему...

Xpert
У вас стоит мод Advanced Posts Merging?
Да, стоит.

Добавлено спустя 2 часа 11 минут 21 секунду:

Ладно, оставил как есть. То, что сообщение размещается в теме в соответствии с новой датой, меня вполне устраивает. А то, что в самом посте дата остается старой - даже правильнее. Бум надеяться, что это не вызовет никаких нарушений в базе данных.

Благодарю. за помощь.

Так куда мне послать zip-файл со всеми переделками, русским переводом и русской картинкой "дата"?

Konkere
Кстати, я не увидел этого мода в перечне установленных модов на Вашем тестовом сайте. Может, Вам прислать zip-файл?
Алексей aka ALER
Konkere

Сообщение Konkere »

Кстати, я не увидел этого мода в перечне установленных модов на Вашем тестовом сайте. Может, Вам прислать zip-файл?
я его ещё не выкладывал, завтра выложу, кнопку надо нарисовать
да и ставил я его из чистого любопытства типа "Что за байда?" :D
Аватара пользователя
ALER
phpBB 2.0.0
Сообщения: 214
Стаж: 19 лет 4 месяца
Откуда: Москва

Сообщение ALER »

Вот кнопка: Изображение
Алексей aka ALER
Юлия-Москва
phpBB 1.2.0
Сообщения: 14
Стаж: 18 лет 1 месяц

Сообщение Юлия-Москва »

Konkere, спасибо за дополнения! Теперь все отлично работает. Кстати, на нашем форуме МОД оказался ОЧЕНЬ нужным, чтобы смещать в начало темы профильные статьи и разъяснения.
Аватара пользователя
automan
phpBB 2.0.1
Сообщения: 252
Стаж: 19 лет
Благодарил (а): 2 раза

Сообщение automan »

а как сделать чтоб редактировалось ввиде
формата допустим 23:19 а не 11:19 pm
?
Аватара пользователя
White SinSay
phpBB 1.0.0
Сообщения: 7
Стаж: 17 лет 2 месяца

Сообщение White SinSay »

Konkere писал(а): так вот этот кусок как я уже писал и служит для синхронного обновления дат в дух таблицах если его не вставить так и останется как у Вас
Сделал, всеравно не помогает
Аватара пользователя
Вовка
phpBB 1.4.2
Сообщения: 65
Стаж: 17 лет 4 месяца

Сообщение Вовка »

Konkere писал(а):а этот кусок нужен для обновления данных в таблице phpbb_topics синхронно с pbpbb_posts
White SinSay писал(а):Сделал, всеравно не помогает
Такая же фигня... в phpbb_topics изменяется дата, а в pbpbb_posts остается такая же, какая была раньше.. :?

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