ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (2): « 1 [2]   

> Без описания
Nikela
Отправлено: 9 марта 2011 — 23:38
Post Id



Пользователь
Advanced Member


Покинул форум
Сообщений всего: 254
Дата рег-ции: Нояб. 2010  
Откуда: Минск
Репутация: 10




Таня, Танечка, Вы моя спасительница Сердце Сердце Сердце
Я даже на днях Юре в личку написала, что готова оплатить этот мод, бо эта фраза просто достала, а тут оказывается делов-то Радость пора мне начать изучать php Радость
 
 
yura3d
Отправлено: 10 марта 2011 — 00:37
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Таня пишет:
В примере из текущего времени отнимается $post_id, которая равна времени публикации сообщения и если разница меньше заданной то параметр edited ( и соответственно надпись "Отредактировано автором..." ) к сообщению не добавляется.

Вариант с использованием переменной $post_id не очень хорош тем, что в ней хранится дата публикации сообщения без учёта того, что сообщение может быть дополнено автором впоследствии (опция склеивания сообщений, которая как раз включена на форуме Nikela, интервал склеивания равен 5-ти минутам). В результате, если после дополнения своего сообщения пользователь захочет его отредактировать, вновь получим пресловутое "Отредактировано автором...", поскольку сравнение происходит по времени публикации самой первой части сообщения
Правильным будет в файле postings.php первоначальные строки:
CODE:
} elseif ($fm->_Moderator === FALSE) {
$topic[$post_id]['edited'] = $fm->_Nowtime;
}

заменить строками:
CODE:
} elseif ($fm->_Moderator === FALSE && $fm->_Nowtime - $list[$topic_id]['postdate'] > 180) {
$topic[$post_id]['edited'] = $fm->_Nowtime;
}

Здесь по сути меняется только 1-ая строка, полностью фрагмент приведён только чтобы было понятно, где её искать. Здесь мы извлекаем время публикации последней части сообщения из списка тем - $list[$topic_id]['postdate']. В результате после дополнения своего сообщения пользователь получит новые 3 минуты его редактирование без указания информации о редактировании
 
 
Таня
Отправлено: 12 марта 2011 — 01:25
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2011  
Репутация: 8




5 минут... мало очень, планирую 2 часа сделать, оно же ни на что не влияет.

У меня другая строка, вместо

CODE:
} elseif ($fm->_Moderator === FALSE) {
$topic[$post_id]['edited'] = $fm->_Nowtime;
}


CODE:
}else{
$topic[$post_id]['edited']=$fm->_Nowtime;
}


Видимо потому, что делала исправления по этим отметкам (там кажется админская правка не стиралась никак), выложенные тут на форуме, потому решение пришлось делать универсальным, чтобы работало как с исправлением, так без него.

Второй вариант с дополнительными 3 минутами после склейки тоже красиво, хотя дополнение (склейка) по сути тоже есть редакция.
(Добавление)
Сейчас проверила - да, у меня сделано исправление и что интересно модераторы/администраторы могут редактировать свои сообщения без отметки о редакции.

Сочла это несправедливостью Хм и в postings.php перед строкой

CODE:
$topic[$post_id]['post']=$fm->bads_filter(preg_replace( "#(\?|&|;|&)PHPSESSID=([0-9a-zA-Z]){32}#i", "", $fm->input['inpost']));


добавила строчку

CODE:
if($fm->_Moderator===TRUE&&$topic[$post_id]['p_id']==$fm->user['id']&&$fm->_Nowtime-$post_id>180)$topic[$post_id]['edited']=$fm->_Nowtime; //редакция своих постов модераторами
 
 
Nikela
Отправлено: 12 марта 2011 — 06:07
Post Id



Пользователь
Advanced Member


Покинул форум
Сообщений всего: 254
Дата рег-ции: Нояб. 2010  
Откуда: Минск
Репутация: 10




У меня вопрос, хотела установить вот этот мод - http://exbb.info/community/topic...88238#1245588238, чтобы удалять надпись о моем редактировании, но возникла сложность с последним изменением в файле postings.php, т.к. сейчас этот кусок кода (из-за описанных выше правок) выглядит у меня так:
CODE:

$fm->_Boolean($fm->input,'modertext');
if ($fm->_Moderator === TRUE && $topic[$post_id]['p_id'] !== $fm->user['id'] && $fm->input['modertext'] === TRUE) {
if ($fm->input['mo_text'] !== '') {
$topic[$post_id]['mo_text'] = $fm->input['mo_text'];
}
$topic[$post_id]['lockedit'] = ($fm->_Boolean($fm->input,'lockedit') === TRUE) ? TRUE:FALSE;
if ($topic[$post_id]['lockedit'] === FALSE) {
unset($topic[$post_id]['lockedit']);
}

if (defined('IS_ADMIN')) {
$topic[$post_id]['ad_editor'] = $fm->user['name'];
$topic[$post_id]['ad_edited'] = $fm->_Nowtime;
if (isset($topic[$post_id]['mo_editor'])) {
unset($topic[$post_id]['mo_editor'],$topic[$post_id]['mo_edited']);
}
} else {
$topic[$post_id]['mo_editor'] = $fm->user['name'];
$topic[$post_id]['mo_edited'] = $fm->_Nowtime;
}
} elseif ($fm->_Moderator === FALSE && $fm->_Nowtime - $list[$topic_id]['postdate'] > 300) {
$topic[$post_id]['edited'] = $fm->_Nowtime;

Не хотелось бы напортачить, заранее спасибо. Закатив глазки

(Отредактировано автором: 12 марта 2011 — 06:07)

 
 
Таня
Отправлено: 12 марта 2011 — 15:24
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 29
Дата рег-ции: Февр. 2011  
Репутация: 8




Nikela, это до применения исправления для удаления отметки о редактировании администратором, на которое у Вас ссылка в сообщении.

Скоро на меня Юра наверное обидится Улыбка, но я нашла там еще один неприятный момент - надпись о правке показывается раньше подписи пользователя, что совсем плохо смотрится.
Ввела в topic.php еще одну переменную, чтобы это исправить, но сейчас не об этом.


Вот мой отрезок кода из postings.php, если применять, то обязательно после исправления (ссылка выше) и естественно сделав резервную копию файла postings.php.

Вариант с отметкой о редактировании своих постов, если автор Администратор/Модератор:

CODE:
$fm->_Boolean($fm->input,'modertext');
if($fm->_Moderator===TRUE){
$topic[$post_id]['lockedit']=($fm->_Boolean($fm->input,'lockedit')===TRUE)?TRUE:FALSE;
if($topic[$post_id]['lockedit']===FALSE){
unset($topic[$post_id]['lockedit']);
}
if($topic[$post_id]['p_id']!==$fm->user['id']&&$fm->input['modertext']===TRUE){
if($fm->input['mo_text']!==''){
$topic[$post_id]['mo_text']=$fm->input['mo_text'];
}
if(defined('IS_ADMIN')){
$topic[$post_id]['ad_editor']=$fm->user['name'];
$topic[$post_id]['ad_edited']=$fm->_Nowtime;
unset($topic[$post_id]['mo_editor'],$topic[$post_id]['mo_edited']);
}else{
$topic[$post_id]['mo_editor']=$fm->user['name'];
$topic[$post_id]['mo_edited']=$fm->_Nowtime;
unset($topic[$post_id]['ad_editor'],$topic[$post_id]['ad_edited']);
}
}else{
unset($topic[$post_id]['mo_text'],$topic[$post_id]['ad_editor'],$topic[$post_id]['ad_edited'],
$topic[$post_id]['mo_editor'],$topic[$post_id]['mo_edited']);
}
}else{
if($fm->_Nowtime-$post_id>300)$topic[$post_id]['edited']=$fm->_Nowtime; //время редактирования без отметки о редактировании автором
}
if($fm->_Moderator===TRUE&&$topic[$post_id]['p_id']==$fm->user['id']&&$fm->_Nowtime-$post_id>300)$topic[$post_id]['edited']=$fm->_Nowtime; //редакция своих постов модераторами
$topic[$post_id]['post']=$fm->bads_filter(preg_replace( "#(\?|&|;|&)PHPSESSID=([0-9a-zA-Z]){32}#i", "", $fm->input['inpost']));


Вариант с закомментированной строкой, тут Администраторы могут править свои сообщения без отметок:

CODE:
$fm->_Boolean($fm->input,'modertext');
if($fm->_Moderator===TRUE){
$topic[$post_id]['lockedit']=($fm->_Boolean($fm->input,'lockedit')===TRUE)?TRUE:FALSE;
if($topic[$post_id]['lockedit']===FALSE){
unset($topic[$post_id]['lockedit']);
}
if($topic[$post_id]['p_id']!==$fm->user['id']&&$fm->input['modertext']===TRUE){
if($fm->input['mo_text']!==''){
$topic[$post_id]['mo_text']=$fm->input['mo_text'];
}
if(defined('IS_ADMIN')){
$topic[$post_id]['ad_editor']=$fm->user['name'];
$topic[$post_id]['ad_edited']=$fm->_Nowtime;
unset($topic[$post_id]['mo_editor'],$topic[$post_id]['mo_edited']);
}else{
$topic[$post_id]['mo_editor']=$fm->user['name'];
$topic[$post_id]['mo_edited']=$fm->_Nowtime;
unset($topic[$post_id]['ad_editor'],$topic[$post_id]['ad_edited']);
}
}else{
unset($topic[$post_id]['mo_text'],$topic[$post_id]['ad_editor'],$topic[$post_id]['ad_edited'],
$topic[$post_id]['mo_editor'],$topic[$post_id]['mo_edited']);
}
}else{
if($fm->_Nowtime-$post_id>300)$topic[$post_id]['edited']=$fm->_Nowtime; //время редактирования без отметки о редактировании автором
}
//if($fm->_Moderator===TRUE&&$topic[$post_id]['p_id']==$fm->user['id']&&$fm->_Nowtime-$post_id>300)$topic[$post_id]['edited']=$fm->_Nowtime; //редакция своих постов модераторами
$topic[$post_id]['post']=$fm->bads_filter(preg_replace( "#(\?|&|;|&)PHPSESSID=([0-9a-zA-Z]){32}#i", "", $fm->input['inpost']));


Возможно, строка для правки своих сообщений Администраторами/Модераторами не идеальна, но думаю это нужно/можно опционально вынести в админку. Если такая возможность не требуется закомментированную строку можно совсем удалить.

Последняя строчка в примерах

CODE:
$topic[$post_id]['post']=$fm->bads_filter(preg_replace( "#(\?|&|;|&)PHPSESSID=([0-9a-zA-Z]){32}#i", "", $fm->input['inpost']));


не изменяется, я её привела для определения места окончания отрезка кода.

Юра наверное еще подправит, уже под вариант с исправлением, в моем варианте 300 секунд (подставила как у Nikela, чтобы меньше возиться) дается на правку без отметки о редактировании с момента публикации сообщения.
 
 
Nikela
Отправлено: 12 марта 2011 — 20:29
Post Id



Пользователь
Advanced Member


Покинул форум
Сообщений всего: 254
Дата рег-ции: Нояб. 2010  
Откуда: Минск
Репутация: 10




Что-то у меня не получается Однако

Может я вообще не правильно поняла для чего тот мод по ссылке...

Попробую описать свою проблему. Имеем пост - http://www.shopzona.info/forum/t...64151#1299264151 (простите, но я привожу ссылку на пост, а открывается целая страница, моя проблема в 6 посте сверху)
Хочу: удалить пометку о моем редактировании.

Сделала правки согласно инструкции + при последнем редактировании postings.php взяла фрагмент Тани. Залила на хост.

Захожу в редактирование поста и вижу:


Ни одно из выполненных мной действий не удаляет пометки о моем редактировании.

Прикладываю свой файл postings.php.
Работает все нормально, ошибки не выпадают.

Скачать файл: (для скачивания файла Войдите или зарегистрируйтесь)
Скачан раз: 137

(Отредактировано автором: 12 марта 2011 — 20:39)

 
 
yura3d
Отправлено: 12 марта 2011 — 21:50
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Nikela пишет:
Ни одно из выполненных мной действий не удаляет пометки о моем редактировании.

Хм, странно. Закачал Ваш файл на тестовый форум в локалке - все пометки о редактировании удаляются, достаточно только напротив пункта Добавить подпись редактора? выбрать нет. Также проверил правки в этом файле, связанные с данным исправлением, никаких ошибок не обнаружил Хм
 
 
Nikela
Отправлено: 12 марта 2011 — 23:15
Post Id



Пользователь
Advanced Member


Покинул форум
Сообщений всего: 254
Дата рег-ции: Нояб. 2010  
Откуда: Минск
Репутация: 10




yura3d, мои извинения, я перезалила по новой файл и все заработало!!! Пляшу от радости
 
 
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Настройка форума »

> Похожие темы: Фраза "Отредактировано автором"
Темы Форум Информация о теме Обновление
Ошибка при добавлении подфорума
связано с модом "Спонсор раздела"
Решение проблем Ответов: 6
Автор темы: Zeg
26 января 2010 — 16:19
Автор: BBcod
После установки форума выводится текст
После установки вверху форума выводится текст связанный с "fm.class.php"
Решение проблем Ответов: 9
Автор темы: ildar10
24 августа 2013 — 09:35
Автор: ildar10
Удаление или перемещение первого сообщения темы.
"Вы не можете удалить или переместить первое сообщение темы!" Можно ли все таки удалять первое сообщение темы?
Общие вопросы Ответов: 12
Автор темы: Chaplin
19 октября 2010 — 14:48
Автор: lisiycat
Дополнение: Удобочитаемый вывод даты и времени
Например: Вместо вывода сегодняшней даты - слово "Сегодня"
Модификации и дополнения Ответов: 36
Автор темы: yura3d
4 июля 2013 — 09:32
Автор: wasp
Канонический адрес
Яндекс понимает link rel="canonical"
Обсуждение Ответов: 24
Автор темы: alexvod
31 марта 2014 — 14:27
Автор: electron
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0852]     [ ]