Zainstalowałem na forum modyfikację "Block Post Edit Timeout " pobraną z: http://www.phpbb2.pl/download.php?d=486
Niestety działa aż "za dobrze", bo nie pozwala edytować żadnych postów, ani tych napisanych przez siebie przed miesiącem, ani tych przed 5 minutami. Timeout w PA jest ustawiony na 3600 sekund. Miał ktoś taki problem? Jak go rozwiązać?
Dot. phpBB 2.0.15
Dodam jeszcze, że dla postów starszych niż "timeout" w ogóle nie pojawia się ikonka edycji (co jest prawidłowe), natomiast dla postów mieszczących się w "timeout", czyli tych, które powinny dać się wyedytować - pojawia się napis "Przepraszamy, ale nie możesz już zmienić swojego postu"...
Czy powodem może być ewentualna niekompatybilność tego moda z "Łączenie postów by przemo + update"?
Modyfikacja bazuje na podmianie kodów 2 plików (poza modyfikacją PA i language), jak wkleiłem poniżej. Wycofanie zmiany w posting.php nieco naprawia sprawę, bo posty starsze niż 'timeout' nie mają ikonki edycji, posty nowsze niż 'timeout' dają się edytować. Ale jest jeden wyjątek - jeśli nasz post jest ostatni w wątku, to bez względu na czas jego zamieszczenia (np. miesiąc temu), zawsze daje się wyedytować.
#
#-----[ OPEN ]-------------------------------------------
#
viewtopic.php
Kod: Zaznacz cały
#
#-----[ FIND ]-------------------------------------------
#
if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] )
{
$temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
$edit_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_edit'] . '" alt="' . $lang['Edit_delete_post'] . '" title="' . $lang['Edit_delete_post'] . '" border="0" /></a>';
$edit = '<a href="' . $temp_url . '">' . $lang['Edit_delete_post'] . '</a>';
}
else
{
$edit_img = '';
$edit = '';
}
#
#-----[ REPLACE, WITH ]----------------------------------
#
if ( ( $userdata['user_id'] == $poster_id && $is_auth['auth_edit'] ) || $is_auth['auth_mod'] )
{
if( ( time() - $postrow[$i]['post_time'] < $board_config['edit_timeout'] ) || $is_auth['auth_mod'] )
{
$temp_url = append_sid("posting.$phpEx?mode=editpost&" . POST_POST_URL . "=" . $postrow[$i]['post_id']);
$edit_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_edit'] . '" alt="' . $lang['Edit_delete_post'] . '" title="' . $lang['Edit_delete_post'] . '" border="0" /></a>';
$edit = '<a href="' . $temp_url . '">' . $lang['Edit_delete_post'] . '</a>';
}
else
{
$edit_img = '';
$edit = '';
}
}
else
{
$edit_img = '';
$edit = '';
} Kod: Zaznacz cały
#
#-----[ OPEN ]-------------------------------------------
#
posting.php
#
#-----[ FIND ]-------------------------------------------
#
else if ( !$post_data['edit_poll'] && !$is_auth['auth_mod'] && ( $mode == 'poll_delete' || $poll_delete ) )
{
message_die(GENERAL_MESSAGE, $lang['Cannot_delete_poll']);
}
#
#-----[ AFTER, ADD ]-------------------------------------
#
else if ( ( time() - $post_info['post_time'] > $board_config['edit_timeout'] ) && !$is_auth['auth_mod'])
{
$message = ( $editpost || $mode == 'editpost' ) ? $lang['Edit_timeout_posts'] : $lang['Edit_own_posts'];
$message .= '<br /><br />' . sprintf($lang['Click_return_topic'], '<a href="' . append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}