Возникла необходимость к уже имеющейся фиче IPB 1.3 - разрешение редактирования сообщения данной группой пользователей в течение задаваемого в админке периода времени (например, 15 мин. на редактирование, а потом уже нельзя) прикрутить тоже самое, но только для удаления сообщений:
Ломаю голову, так и не могу никак додуматься, но похоже делать надо так:
Открыть: moderate.php
function delete_post()
....
$passed = 0;
if ($ibforums->member['g_is_supmod'] == 1)
{
$passed = 1;
}
else if ($this->moderator['delete_post'] == 1)
{
$passed = 1;
}
else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] ) and (orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ))
{
$passed = 1;
}
else
{
$passed = 0;
}
if ($passed != 1) $this->moderate_error();
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
dimitry
Возникла необходимость к уже имеющейся фиче IPB 1.3 - разрешение редактирования сообщения данной группой пользователей в течение задаваемого в админке периода времени (например, 15 мин. на редактирование, а потом уже нельзя) прикрутить тоже самое, но только для удаления сообщений:
Ломаю голову, так и не могу никак додуматься, но похоже делать надо так:
Открыть: moderate.php
function delete_post() .... $passed = 0; if ($ibforums->member['g_is_supmod'] == 1) { $passed = 1; } else if ($this->moderator['delete_post'] == 1) { $passed = 1; } else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] ) and (orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) )) { $passed = 1; } else { $passed = 0; } if ($passed != 1) $this->moderate_error();И заменить на что-то типа этого: (*)
$passed = 0; if ($ibforums->member['g_is_supmod'] == 1) { $passed = 1; } else if ($this->moderator['delete_post'] == 1) { $passed = 1; } else if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] )) { if ($ibforums->member['g_edit_cutoff'] > 0) { if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) ) { $passed = 1; } } else { $passed = 1; } } else { $passed = 0; } if ($passed != 1) $this->moderate_error();Вот это место
if ( ($ibforums->member['g_delete_own_posts'] == 1) and ( $ibforums->member['id'] == $post['author_id'] )) { if ($ibforums->member['g_edit_cutoff'] > 0) { if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) )позаимствовано мной из скрипта post_edit_post.php
$can_edit = 0; if ($ibforums->member['g_is_supmod']) { $can_edit = 1; } if ($this->moderator['edit_post']) { $can_edit = 1; } if ( ($this->orig_post['author_id'] == $ibforums->member['id']) and ($ibforums->member['g_edit_posts']) and !$this->orig_post['has_modcomment']) { // Have we set a time limit? if ($ibforums->member['g_edit_cutoff'] > 0) { if ( $this->orig_post['post_date'] > ( time() - ( intval($ibforums->member['g_edit_cutoff']) * 60 ) ) ) { $can_edit = 1; } } else { $can_edit = 1; } } if ($can_edit != 1) { $std->Error( array( LEVEL => 1, MSG => 'not_op') ); }Когда я сделал так, как помечено красной звездочкой (*) (см. код выше)
то меня почему то неважно, какой бы я период редактирования ни установил - все время пишет: У вас нету прав..., ну т.е. ставит passed=0 почему то ...
Помогите разобраться, пожалуйста.
Ссылка на комментарий
Поделиться на других сайтах
17 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.