Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Обсуждение новой системы расширения функциональности phpBB 4.0-dev, разработки новых расширений.
Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Алг »

подключается в любом месте, конечно, но работать начнёт тогда же, когда и jquery

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Alecto »

я бы с тобой с удовольствием согласился, но файрбаг утверждает обратное
ReferenceError: $ is not defined
$('.postbody .author').append('test');
и так 10 раз на странице - для каждого поста.
jquery вставка сработает в футере, но тогда не будет работать код

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

{postrow.U_MINI_POST}
без которого я не сгенерирую ссылку на сообщение

поэтому
Alecto писал(а):QR_BBPOST если кто силен - помогите пожалуйста перевести jquery в javascript-аналог.

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

$('.postbody .author').append('test');
не пойму как получить ЭТОТ элемент через javascript

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Алг »

Alecto писал(а):QR_BBPOST я бы с тобой с удовольствием согласился, но файрбаг утверждает обратное
мне нравится, что ты прислушиваешься к утверждениям файрбага, но он же меня не опровергает. Он говорит о том, что ты начал использовать $ раньше, чем подключилась библ. jquery, так не используй её раньше, напиши эту же команду в футере, в чём проблема. Исполняться-то все равно будет что джскрипт, что джквери в одно и то же время

Отправлено спустя 3 минуты 6 секунд:
Alecto писал(а):QR_BBPOST $('.postbody .author')
эквивалент в джскрипт

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

document.getElementsByClassName('author')

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Alecto »

Алг писал(а):QR_BBPOST в чём проблема
в том, что вот этот код не работает
Alecto писал(а):QR_BBPOST {postrow.U_MINI_POST}
а без него невозможно сформировать ссылку
Алг писал(а):QR_BBPOST эквивалент в джскрипт
нет, потому что document.getElementsByClassName('author') - это массив, получить доступ к текущему элементу невозможно, только перебором всех элементов на странице, что ведет к неработоспособности {postrow.U_MINI_POST}, мне нужно получить эквивалент $(this) прямо из события viewtopic_body_postrow_post_after.html, иначе затея не имеет смысла

Отправлено спустя 1 час 48 минут 16 секунд:
решил пойти немного другим путем.
в viewtopic_body_postrow_post_before.html формирую ссылки - здесь все замечательно, ссылки появляются, адреса правильные, и все работает.
но, событие выводит их не совсем там где надо.
поэтому пробую из футера переместить ссылки скриптом после времени создания сообщения в p.author.
делаю так: ищу ссылку, для найденной ссылки перемещаюсь на следующий элемент, в нем нахожу класс и перемещаю саму саму ссылку

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

		$('.directPostLink').each(function() {

					$(this).next().find('.postbody .author').append(this);

		});

но, почему-то перед ссылкой-адресом поста вставляется ссылка первого сообщения

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

<p class="author"><a href="./viewtopic.php?p=74396#p74396">
<span title="Сообщение" class="imageset icon_post_target">Сообщение</span></a><span class="responsive-hide"> <strong><a class="username" href="./memberlist.php?mode=viewprofile&u=1469" title="Обратиться по никнейму">Сашко</a></strong> » </span>
15 авг 2014, 12:22 
<a title="Скопировать ссылку на пост 74191" onclick="prompt('Ссылка на пост',this.href); return false;" style="position: absolute; z-index: 1;" href="./viewtopic.php?p=74191#p74191" class="directPostLink">74191</a>
<a title="Скопировать ссылку на пост 74396" onclick="prompt('Ссылка на пост',this.href); return false;" style="position: absolute; z-index: 1;" href="./viewtopic.php?p=74396#p74396" class="directPostLink">74396</a>
</p>
первая ссылка 74191 вставляется неправильно, вторая 74396 правильно
не могу понять, где ошибка ((

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Алг »

Alecto писал(а):QR_BBPOST в том, что вот этот код не работает
Alecto писал(а):
Источник цитаты {postrow.U_MINI_POST}

а без него невозможно сформировать ссылку
{postrow.U_MINI_POST} это не код, это серверная переменная и работает независимо от того, есть у тебя какой-то джаваскрипт сценарий или нету
Alecto писал(а):QR_BBPOST нет, потому что document.getElementsByClassName('author') - это массив, получить доступ к текущему элементу невозможно, только перебором всех элементов на странице
но код

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

$('.postbody .author')
делает тот же самый перебор, это просто сокращённая запись, не более того
Alecto писал(а):QR_BBPOST решил пойти немного другим путем.
в viewtopic_body_postrow_post_before.html формирую ссылки
в общем-то путь верный, только зачем формировать ссылки и куда-то их потом двигать, не проще ли их сразу сформировать на месте.

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

$('.postbody .author').each(function() {

               $(this).append(твой линк);

      });

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Alecto »

Алг писал(а):QR_BBPOST не проще ли их сразу сформировать на месте
проще, но не работает.
Алг писал(а):QR_BBPOST и работает независимо от того, есть у тебя какой-то джаваскрипт сценарий или нету
может и не зависит от сценария, но переменные должны быть вставлены именно в viewtopic_body_postrow_post_before.html, иначе ничего не работает.

ну ок, не поленился и проверил...
если сделать вот так

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

$('.postbody .author').each(function() {

               $(this).append('<a class="directPostLink" href="{postrow.U_MINI_POST}" style="position: absolute; z-index: 1;" onclick="prompt("Ссылка на пост",this.href); return false;" title="Скопировать ссылку на пост {postrow.POST_ID}">{postrow.POST_ID}</a>');

      });
то формируется ссылка

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

<a class="directPostLink" title="Скопировать ссылку на пост " false;"="" return="" пост",this.href);="" на="" Ссылка="" onclick="prompt(" style="position: absolute; z-index: 1;" href=""></a>
как видно, ни {postrow.POST_ID} ни {postrow.POST_ID} не работают, их просто нет в ссылке.

Алг
Сообщения: 645
Зарегистрирован: 18 фев 2014, 17:28

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Алг »

Alecto писал(а):QR_BBPOST $(this).append('<a class="directPostLink" href="{postrow.U_MINI_POST}"
потому что тут синим цветом написана полная бессмыслица. Ещё раз, эта переменная формируется на сервере, возврашается к клиенту в виде ХТМЛ разметки, а твой сценарий выполняет клиент, а не сервер, он такой бяки знать не знает.

Отправлено спустя 24 минуты 7 секунд:
попробуй так:
во viewtopic_body_postrow_post_before.html вставь

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

<div pid="postrow.POST_ID" purl = "{postrow.U_MINI_POST}" ></div>
в сценарии пишешь

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

$('.postbody .author').each(function() {
		var pid = $(this).prev().attr('pid');
		var purl = $(this).prev().attr('purl');
               $(this).append('<a class="directPostLink" href="' + purl + '" style="position: absolute; z-index: 1;" onclick="prompt("Ссылка на пост",this.href); return false;" title="Скопировать ссылку на пост ' + pid  + '">' + pid  + '</a>');

      });
п.с. я не проверяла, как работает

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Alecto »

Обновил первый пост. Что куда и как - написал.
Делал для себя, так что на идеальность решения не претендую.
Расширение не оформлял.

LavIgor
Сообщения: 26
Зарегистрирован: 27 сен 2014, 22:23

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение LavIgor »

Не совсем понятно в смысле кнопки с номером поста и ссылкой.
Весь её функционал уже реализован в маленьком листочке возле имени автора сообщения.

Показывать заголовки по выбору - дело ваше.
Это, действительно, удобно, но нужно для себя определить, кто будет заниматься такой выборкой (очевидно, что модераторы).
Да и проще ссылаться на эти сообщения или выделять их как-то иначе, чем показом заголовка.

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

Аватара пользователя
Alecto
Сообщения: 571
Зарегистрирован: 05 авг 2014, 21:41

Показать по условию скрытые "QR by Татьяна5" заголовки сообщений в темах

Сообщение Alecto »

LavIgor писал(а):QR_BBPOST Не совсем понятно в смысле кнопки с номером поста и ссылкой.
смысл - удобство.
LavIgor писал(а):QR_BBPOST Весь её функционал уже реализован в маленьком листочке возле имени автора сообщения.
ничего общего, кроме сформированной ссылки.
листочек выполняет переход по адресу.
кнопка - открывает окно с выделенным адресом. мне удобнее и быстрее выполнять копирование так.
LavIgor писал(а):QR_BBPOST кто будет заниматься такой выборкой (очевидно, что модераторы)
модераторы могут править заголовки (а могут и не исправлять), все остальные действия с заголовками - элементарная здравая логика, все доводы приведены в теме БО, да и здесь их достаточно.
правила описаны в первом посте.
LavIgor писал(а):QR_BBPOST можно сделать так, чтобы кнопки показывались только при наведении мышкой на сообщение
с кнопкой-ссылкой - так и есть, достаточно глянуть код.
все остальное - и так видно (скрипт исправляет наплывы от скрытия заголовков в БО), нигде ничего не закрывается, так что в этом варианте нет нужды.

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

Ответить