Quick Reply phpBB 3.0.6 доработка встроенного быстрого ответ

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 21 год 2 месяца
Поблагодарили: 44 раза

Quick Reply phpBB 3.0.6 доработка встроенного быстрого ответ

Сообщение Rayden »

Внимание: данная тема описывает доработку встроенного быстрого ответа phpBB 3.0.6.
Не путать с модами быстрого ответа!


Почитав вот эту тему: Quick Reply 3.0.6
Почитав вот эту тему: Доработка Quick reply for phpBB3 (rxu)
И естессно, вот эту тему: Quick reply for phpBB3 - Быстрый ответ

Понабрав идей и скриптов, добавив кое-что свое, пришел к выводу, что встроенный в phpBB 3.0.6 быстрый ответ вполне можно довести до ума.
Вот что получилось:
1. Добавил в быстрый ответ панель смайлов и панель кнопок ббкода. И то и другое можно отключать через админку.
2. Добавил кликающиеся ники. (в просилвере рекомендуется использовать дополнительную иконку для ссылки на профайл)
3. При нажатии на ник в просилвере автоматически открывается быстрый ответ.
4. После вставленного ника курсор не переводится на новую строку.
5. Добавил в сабсилвер и просилвер кнопки "быстрая цитата" (английские и русские).
6. При нажатии на кнопку "быстрая цитата" в просилвере, если выделен текст, открывается быстрый ответ
7. При нажатии на кнопку "быстрая цитата" если цитируемый текст не выделен, то открывается окошко с предупреждением, что надо выделить текст.
qr306_1.0.2b.zip
тестируйте
На полное авторство не претендую, так как кроме своего кода активно использовал наработки из вышеприведенных тем. Кого гложет чистолюбие, могу добавить в авторы :)
Пофиксенный файл - qr306_1.0.2a.zip. Кто успел скачать до этого, инструкция по исправлению двумя постами ниже.

Опять файл изменен - qr306_1.0.2b.zip. В предыдущем была небольшая ошибка в инструкции.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Поручик 20.01.2010 12:32, всего редактировалось 1 раз.
Причина: Редактирование названия темы
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Nekstati »

Придумался такой вариант цитирования.

Используется одна штатная кнопка «Цитата».
  • Если имеется выделенный текст, эта кнопка работает как «Быстрая цитата» (открывает форму быстрого ответа и вставляет туда выделенный текст).
  • Если выделенного текста нет, кнопка работает как стандартная «Цитата».
  • Если в браузере выключен JavaScript, кнопка также работает стандартным образом.
Найти в viewtopic_body.html

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

<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
Заменить на

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

<!-- IF postrow.U_QUOTE --><li class="quote-icon"><a href="{postrow.U_QUOTE}" <!-- IF S_QUICK_REPLY -->onclick="if(!(window.getSelection && window.getSelection().toString() == '') && !(document.getSelection && document.getSelection() == '') && !(document.selection && document.selection.createRange().text == '')){dE('qr_editor_div', 1);dE('qr_showeditor_div', -1);addquote({postrow.POST_ID},'{postrow.POSTER_QUOTE}'); insert_text('\r\n'); return false; }" <!-- ENDIF -->title="{L_REPLY_WITH_QUOTE}"><span>{L_REPLY_WITH_QUOTE}</span></a></li><!-- ENDIF -->
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 21 год 2 месяца
Поблагодарили: 44 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Rayden »

Nekstati писал(а):Если выделенного текста нет, кнопка работает как стандартная «Цитата».
Это неправильно. В таком случае она должна вставлять целиком все сообщение.
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 22 года 2 месяца
Откуда: Бердск
Поблагодарили: 15 раз

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение crash »

Rayden
так она по идее так и есть. Вставляется целиком.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 21 год 2 месяца
Поблагодарили: 44 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Rayden »

Тогда мы лишаемся функции цитирования с переходом в полный ответ.

Добавлено спустя 9 минут 48 секунд:
Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого ответ
Кстати, я правильно понял, что в этом скрипте корректно вставляется POST_ID и POSTER_QUOTE? В зависимости от того, на против кого нажмешь цитату.
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Nekstati »

Нет, не лишаемся. Если текст не выделен, то кнопка стандартно открывает форму полного ответа (posting.php) с цитированием всего поста целиком. А если выделен, то действует точно так же как «Быстрая цитата».
Rayden писал(а):Кстати, я правильно понял, что в этом скрипте корректно вставляется POST_ID и POSTER_QUOTE? В зависимости от того, на против кого нажмешь цитату.
Нет, увы, тут как обычно. :( Даже не представляю, как это сделать.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Nekstati »

Есть мелкая неприятность в IE: при вставке ника курсор перескакивает в начало строки, если окно БО не в фокусе или закрыто. Исправить это можно так:

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

onclick="dE('qr_editor_div', 1);dE('qr_showeditor_div', -1); insert_text('[b]{postrow.POSTER_QUOTE}[/b]'); return false;"

==== заменить на =====

onclick="dE('qr_editor_div', 1);dE('qr_showeditor_div', -1); document.getElementsByName('message')[0].focus(); insert_text('[b]{postrow.POSTER_QUOTE}[/b]'); return false;"
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 21 год 2 месяца
Поблагодарили: 44 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Rayden »

Nekstati писал(а):Если текст не выделен, то кнопка стандартно открывает форму полного ответа (posting.php) с цитированием всего поста целиком
Вот это и плохо.
А если у чела слетает выделение, то он улетает в полную форму.
phpBB2 FAQ
phpBB3 FAQ
Аватара пользователя
Поручик
Former team member
Сообщения: 3942
Стаж: 21 год 4 месяца
Откуда: Оренбург (Южный Урал)
Благодарил (а): 24 раза
Поблагодарили: 54 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Поручик »

Rayden писал(а):корректно вставляется POST_ID и POSTER_QUOTE?
и кто-то не представляет как это сделать.
Есть у меня такие мысли и представления. Способ основывается на DOM-модели, обработке прерываний от мыши и проверке принадлежности элемента данному узлу.

Схематично выглядит так:

viewtopic_body.html
Имеем

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

			<div class="content" id="postdiv{postrow.POST_ID}">{postrow.MESSAGE}</div>
пишем как-то так.
Назначаем элементу обработчик отпускания кнопки мыши onmouseup

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

			<div onmouseup="add_selected_text({postrow.POST_ID}, ' {postrow.POST_AUTHOR_FULL}', this);" class="content" id="postdiv{postrow.POST_ID}">{postrow.MESSAGE}</div>
add_selected_text - немного переработанный вариант addquote, которая сохраняет сформированную цитату в некую глобальную переменную. При клике на "цитата выделенного" в любом месте в форму ответа передаётся значение это некой глобальной переменной

Добавлено спустя 21 минуту 35 секунд:
Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого ответ
Штатный код можно и не курочить, а назначить общий обработчик события от мыши, и в нём проверять тип текущего узла, идентификатор элемента и т.д. и т.п.

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

			if (!e) e = window.event;
			var elem = e.target || e.srcElement;
			while (!elem.tagName || !elem.tagName.match(/td|table/i)) elem = elem.parentNode;
Что-то в этом роде я здесь делал http://agrosnabsklad.orenivolga.ru/
Вот библиотека http://agrosnabsklad.orenivolga.ru/templates/hltable.js
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Nekstati »

Поручик, ну вот сделай, и люди будут тебе благодарны. Только без библиотек, конечно, ибо вопрос того не стОит.
Rayden писал(а):Вот это и плохо.
Но не хуже, чем две кнопки цитаты. ;)
zilonitiz
phpBB 1.4.4
Сообщения: 143
Стаж: 20 лет 4 месяца
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение zilonitiz »

Отличный мод! Спасибо Rayden!

Решил тут под себя его подправить, изменил чуть вот эту строку:

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

		<!-- IF S_QUICK_REPLY --><dd><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="dE('qr_editor_div', 1);dE('qr_showeditor_div', -1); insert_text('[b]{postrow.POSTER_QUOTE}[/b],&nbsp;'); return false;"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}" <!-- ENDIF -->>Цитата ника</a><!-- ELSE --><!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}</dd><!-- ENDIF --><!-- ENDIF -->
И обратил внимание что если залогинен на форуме, то выводится то что надо "Цитата ника" а если смотреть посты как гость, то выводится имя пользователя. Обкрамсал код так:

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

		<!-- IF S_QUICK_REPLY --><dd><a href="#postform" title="{L_QUOTE_USERNAME}" onclick="dE('qr_editor_div', 1);dE('qr_showeditor_div', -1); insert_text('[b]{postrow.POSTER_QUOTE}[/b],&nbsp;'); return false;"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}" <!-- ENDIF -->>Цитата ника</a></dd><!-- ENDIF -->
Вроде бы теперь невыводиться ничего гостям. Вопрос - Все ли корректно сделал я?

И вопрос еще, как выводить катринку вместо "Цитата ника" (используйя оформление prosilver)?
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 21 год 1 месяц
Откуда: Новосибирск
Поблагодарили: 37 раз

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Alek$ »

zilonitiz
на место "Цитата ника" подставляете <img src="адрес_вашей_картинки" />
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
zilonitiz
phpBB 1.4.4
Сообщения: 143
Стаж: 20 лет 4 месяца
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение zilonitiz »

Я имел ввиду картинку как картинки кнопок в шаблоне prosilver, с эффектом ховера принаведении курсора.
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 21 год 1 месяц
Откуда: Новосибирск
Поблагодарили: 37 раз

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Alek$ »

zilonitiz
тут техника проста: берется тег типа <div> или <span> с заданными размерами. рисуется одна картинка, на которой впритык изображены обычное и активное состояние кнопки и эта картинка устанавливается фоном для тега. После этого в стиле для :hover указывается тот же фон, но смещенный с помощью background-position так, чтобы стала видна "нажатая" часть картинки, а не обычная.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение Nekstati »

SIvan
phpBB 1.0.0
Сообщения: 6
Стаж: 16 лет 3 месяца

Re: Quick Reply phpBB 3.0.6 доработка встроенного быстрого о

Сообщение SIvan »

у меня СубСилвер2 PhpBB PL1

после установки и чистки кеша вылезла ошибка

Parse error: syntax error, unexpected T_VARIABLE in /home/yoursite/public_html/viewtopic.php on line 1809

прошу помоч.

прикрепил редактированный vievtopic.php
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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