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

[BETA] myAJAX 0.6.6

Здесь авторы постили бета-версии своих модификаций для phpBB 2.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Аватара пользователя
xa0c
phpBB 1.2.1
Сообщения: 20
Стаж: 18 лет 1 месяц

Сообщение xa0c »

edgar писал(а):Не, 2.0.19 тогда была.
А... Просто у меня та же проблема есть, я думал из-за форума(он 2.0.15 был вчера)
[Fix] correctly preview signature if editing other users posts (Bug #101)
Сегодня обновил до 2.0.19 - то же самое...
edgar писал(а):Вы убрали, если админ редактирует свой собственный пост? Подскажете мне, как убрать?
Эээ... Не знаю насчет глючности... Я убрал надпись о редактировании админом любого(не только своего) поста:

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

		$sql = "UPDATE " . POSTS_TABLE . " SET
			post_edit_time = $current_time, post_edit_count = post_edit_count + 1 
			WHERE post_id = $post_id";
		if ( !$db->sql_query($sql) )
		{
			message_die(GENERAL_ERROR, 'Could not update post text', '', __LINE__, __FILE__, $sql);
		}
Перед этим поставить:

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

if ($userdata['user_level'] != ADMIN) {
, а после этого "}".

Если добавить дополнительный запрос к базе, то можно сделать как и при обычном редактировании постов: если пост юзера и пост последний, то сообщение о редактировании не пишется, если пост не последний, то пишется...

P.S. 2Автор. Зачем идёт куча if'ов на $mode?..
Сначала объявляем, что $mode='delete', а потОм идёт "if $mode != 'newtopic'", "if $mode == 'poll_delete'"... o.O
Wizard навсегда.
Аватара пользователя
xa0c
phpBB 1.2.1
Сообщения: 20
Стаж: 18 лет 1 месяц

Сообщение xa0c »

Небольшая переделка того, что я предложил выше.
Если заменить в оригинальном коде это:

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

      $sql = "UPDATE " . POSTS_TABLE . " SET 
         post_edit_time = $current_time, post_edit_count = post_edit_count + 1 
         WHERE post_id = $post_id"; 
      if ( !$db->sql_query($sql) ) 
      { 
         message_die(GENERAL_ERROR, 'Could not update post text', '', __LINE__, __FILE__, $sql); 
      }
На это:

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

                $sql = "SELECT p.post_id, p.poster_id, p.topic_id, t.topic_id, t.topic_last_post_id
			FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
			WHERE p.post_id = $post_id
				AND t.topic_id = p.topic_id";
                 if ( !$result = $db->sql_query($sql) )
		        {
                             message_die(GENERAL_ERROR, 'Could not anything :(', '', __LINE__, __FILE__, $sql);
		        }
		        
		$post_info = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);
                $post_data['last_post'] = ( $post_info['topic_last_post_id'] == $post_id ) ? true : false;
                $post_data['poster_post'] = ( $post_info['poster_id'] == $userdata['user_id'] ) ? true : false;

                if ( $userdata['user_level'] != ADMIN && !$post_data['last_post'] && $post_data['poster_post'] ) {

                $sql = "UPDATE " . POSTS_TABLE . " SET
			post_edit_time = $current_time, post_edit_count = post_edit_count + 1 
			WHERE post_id = $post_id";

                        if ( !$db->sql_query($sql) )
		        {
                             message_die(GENERAL_ERROR, 'Could not update post text', '', __LINE__, __FILE__, $sql);
		        }
		        
                }
То сообщение о редактировании юзером своего же поста(если пост последний в теме) не показывается и сообщение о редактировании админом любого поста не показывается.

Добавлено спустя 54 минуты 48 секунд:
edgar писал(а):1. Если делаешь быстрое редактирование поста юзера, а у него подпись с тегами, то теги url перестают работать, а остальные становятся такими:
Я тут подумал... Если в файле viewtopic_body.tpl убрать код

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

<div id="p_{postrow.U_POST_ID}_sig" style="display: inline;"></div>
(То, что между этими тегами оставить :)) - то всё ок будет. Долго думал - зачем это сделано, но разумного объяснения не нашел.

Да, и еще... При предпросмотре берутся настройки текущего пользователя, то есть, если я, например, админ и редакчу чужой пост, то в предпросмотре покажется моя подпись и мои настройки смайлов/итд. Поправить бы не мешало...
Wizard навсегда.
Аватара пользователя
edgar
phpBB 2.0.13
Сообщения: 917
Стаж: 18 лет 9 месяцев
Откуда: с Луны свалил...

Сообщение edgar »

xa0c писал(а): сообщение о редактировании юзером своего же поста(если пост последний в теме) не показывается
Так оно если ничего и не менять не показывается. Так в phpBB изначально. Мне нужно было только одно сделать - админ или модер правят свой пост - сообщение о редактировании не показывается.

xa0c
Xpert писал(а):К сожалению, в нынешнем состоянии мод может навредить форуму.
Поэтому я решил подождать когда мод будет доработан
Аватара пользователя
xa0c
phpBB 1.2.1
Сообщения: 20
Стаж: 18 лет 1 месяц

Сообщение xa0c »

edgar писал(а):Так оно если ничего и не менять не показывается. Так в phpBB изначально
Угу. Только если использовать данный мод(без предолженного исправления), то сообщение о редактировании будет показываться всегда.
Wizard навсегда.
Аватара пользователя
Alf
phpBB 1.4.1
Сообщения: 45
Стаж: 18 лет 8 месяцев
Откуда: Архангельск

Сообщение Alf »

вот несколько напрягает, еще то что при удалении в Осле пост не исчезает, хотя в Лисе всё работает хорошо.

Учитывая, то что большинство юзверей работают с Ослом - это стремно, т.к. результат не виден, не понятно - удалился пост - или нет

Хотя может у вас всё нормально - подскажите пути решения

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

И кстати, довольно быстро привыкаешь к удобным функциям - начинаешь дважды жать во всех форумах теперь. хихи
Рулевой по развлекательной жизни Архангельска
Lanior
phpBB 1.4.4
Сообщения: 144
Стаж: 18 лет 8 месяцев

Сообщение Lanior »

Выпустил весию 0.3.4.
Все дружно качаем файл из первого поста :)
Alf писал(а):вот несколько напрягает, еще то что при удалении в Осле пост не исчезает
Эта ошибка исправлена.
Последний раз редактировалось Lanior 23.08.2007 6:56, всего редактировалось 2 раза.
Мои моды: myAJAX 0.6.6, myLogs 0.1.1
NCom
phpBB 2.0.11
Сообщения: 810
Стаж: 18 лет 4 месяца
Откуда: Ставрополь
Забанен: Бессрочно

Сообщение NCom »

Lanior
это ненормально.. может ты все таки файлики для обновления сделаешь.
Аватара пользователя
xa0c
phpBB 1.2.1
Сообщения: 20
Стаж: 18 лет 1 месяц

Сообщение xa0c »

Поддерживаю NCom'a. Я до сих пор с первой версией сижу, только добавил некоторые изменения от себя, ибо влом вручную диффать :)
Wizard навсегда.
Lanior
phpBB 1.4.4
Сообщения: 144
Стаж: 18 лет 8 месяцев

Сообщение Lanior »

C 0.3.1 до 0.3.4 обновление есть, лежит в корне архива.

Добавлено спустя 1 час 12 минут 49 секунд:

Добавил в архив update с версии 0.2
Мои моды: myAJAX 0.6.6, myLogs 0.1.1
NCom
phpBB 2.0.11
Сообщения: 810
Стаж: 18 лет 4 месяца
Откуда: Ставрополь
Забанен: Бессрочно

Сообщение NCom »

Lanior спасибо. Вот это отлично :)
А что нового? С удаление темы ничего не решено?
Lanior
phpBB 1.4.4
Сообщения: 144
Стаж: 18 лет 8 месяцев

Сообщение Lanior »

Дв вроде все решено, я тестил, багу больше повторить не удалось.
Мои моды: myAJAX 0.6.6, myLogs 0.1.1
Аватара пользователя
Alf
phpBB 1.4.1
Сообщения: 45
Стаж: 18 лет 8 месяцев
Откуда: Архангельск

Сообщение Alf »

Lanior
О дело, спасибо за коррективы и файлы обновлений.
Респект за очень удобный мод.

Как насчет модификации QuickReply с помощью Аджакс?? Чтобы написал в быстрой форме пост, он тут же вставился.

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

Хы, коррективы не помогли лично мне решить проблему в ИЕ
В Осле - тэги с идентификатор id также не определяются функцией getElementsByName, хотя поидее должны может у меня эксплорер какой-то не такой? IE 6.0.2900
Ни в какую не хочет. :(

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

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

	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if (req.responseJS) {
				var elements = document.getElementsByName('post_' + post);
				for (var i = 0; i < elements.length; i++) {
					elements[i].innerHTML = '';
				}
			}
	        }
	}
У меня в эксплорере почему-то вот эта часть скрипта вообще не работала. Если выносить из условия if (req.responseJS) тело за пределы определения функции, что в принципе не правильно, т.к. не факт, что пост будет удален (ведь возможно у пользователя не окажется прав для этого, ну тогда и кнопки быть видно не должно с удалением, а если он догадался напрямую вызвать этот жаба скрипт, то пусть не жалуется что какая-то фигня происходит). То эксплорер обламывает выполнение из-за вот этого elements.innerHTML ну не хочет он присваивать значение, если свойство определяется таким способом, зато сработало - elements.style.display = 'none'; :D и даже выглядит по симпатичнее результат, т.к. при использовании innerHTML - тег хоть и пустой но остается оставляя однопиксельную белую полосу (лично у меня так было).
Итого конечный вариант функции удаления поста:

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

function dp(post) { // Delete Post
	var answer = confirm("Вы действительно хотите удалить это сообщение?");

	if (answer == 0) {
		return;
	}

    var req = new Subsys_JsHttpRequest_Js();

    var elements = document.getElementsByName('post_' + post);
    for (var i = 0; i < elements.length; i++) {
    	elements[i].style.display = 'none';
    }

	req.caching = false;
	req.open('POST', 'ajax.php?mode=deletepost', true);
	req.send({ p: post });
}
п.с. Обломно тока что чередование цветов строк постов не учитывается, хотя если поизвращаться - можно и это сделать через ЖабуСкрипт. хихи
Рулевой по развлекательной жизни Архангельска
NCom
phpBB 2.0.11
Сообщения: 810
Стаж: 18 лет 4 месяца
Откуда: Ставрополь
Забанен: Бессрочно

Сообщение NCom »

Как насчет модификации QuickReply с помощью Аджакс?? Чтобы написал в быстрой форме пост, он тут же вставился.


ОБЕИМИ РУКАМИ ЗА.
я об этом не подумал!!! Великолепный способ экономии трафа.
Есть возможность сделать это?
Lanior
phpBB 1.4.4
Сообщения: 144
Стаж: 18 лет 8 месяцев

Сообщение Lanior »

Alf писал(а):В Осле - тэги с идентификатор id также не определяются функцией getElementsByName, хотя поидее должны может у меня эксплорер какой-то не такой? IE 6.0.2900
Как ни странно, Осел возвражает не теги с нужным name, а теги id. Проверите, обновили ли вы шаблон.
Alf писал(а):elements.style.display = 'none';

Спасибо, приму к сведению.
Alf писал(а):Обломно тока что чередование цветов строк постов не учитывается

Сделаю.
Alf писал(а):Как насчет модификации QuickReply с помощью Аджакс

Попробую сделать.

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

Новое в версии 0.3.5:
Теперь класс ячейки ответа обновляется после быстрого удаления.
Строки из JavaScript вынесены в языковые переменные.
Последний раз редактировалось Lanior 23.08.2007 6:56, всего редактировалось 1 раз.
Мои моды: myAJAX 0.6.6, myLogs 0.1.1
Аватара пользователя
Alf
phpBB 1.4.1
Сообщения: 45
Стаж: 18 лет 8 месяцев
Откуда: Архангельск

Сообщение Alf »

2 Lanior, конечно я обновил шаблон :evil: . Да и функция работает в Осле как надо, но в чем был трабл я так и не понял, хотя по спецификации идентификатор id должен быть уникальным, а соответственно применение к нему getElementsByName точно не должно работать. Но это уже другая тема.

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

Вернуться в «Бета-версии модов для phpBB 2.0.x»