Зддравствуйте. Вопрос такой:
Стоит Advanced forum. Хотел сделать линк "Ник в ответ" в шаблоне advf-author-pane.tpl.php, по нажатию на который имя пользователя улетало бы в текстовый редактор.
Т.е. нужно что-то вроде этого: <a href="javascript:;" onclick="jQuery('#edit-comment').val(' $account_name ');jQuery('#edit-comment').focus();">Ник в ответ</a>
Но не могу нарыть как засунуть переменную в js. При нажатии отправляется как и есть $account_name
Комментарии
Хм... обернуть $account_name в <?php print $account_name ?>
Не) Это я уже проделывал) Оборачивание подобным образом выводит вообще с ошибкой:
http://SSMaker.ru/42c0053a/
Ну на скриншоте ALEX - это, видимо, и есть ник. И он выводится.
А то, что дальше - это уже копать синтаксис JS, там какая-то ошибка.
Возможно ещё, не экранированы какие-то спецсиволы.
Да, сам никнейм выводится, но уже сама ссылка перестаёт функционировать. Потому и создал тему, т.к. в js не силён.
Вы сначала убедитесь, что ваша конструкция JS вообще работает.
Без $account_name.
Работает на ура. Т.е. к примеру
<a href="javascript:;" onclick="jQuery('#edit-comment').val(' VLADI27 ');jQuery('#edit-comment').focus();">Ник в ответ</a>
при нажатии на линк "Ник в ответ" никнейм VLADI27 улетает в текстовый редактор без проблем. Все радости заканчиваются когда вместо простого текста вставляется переменная.
читайте
Кхм... вы вообще в суть вопроса вникли? Ну и как вы предлагаете сформировать линк по той статье? Или вы думаете я гуглом пользоваться разучился?
В яваскрипт переменную я выведу, хоть через alert, хоть через echo, хоть через print.
Мне не вывод на экран нужен. Мне нужен insert to textarea по клику на линк.
Я уже тут много видел тем, где ответы аля "Да вон, читай", но толком подсказать никто не может. Тут сайт поддержки или пиара других сайтов?
Ну посмотрите, что именно генерируется в выходном коде. Буквально - в браузере выделить фрагмент этого блока, щёлкнуть правой "Исходный код выделенного" (или как там точно, уже не помню) и смотреть, что именно выводится и почему "бьётся" выполнение JS при <?php print $account_name ?> . У меня подозрение на экранирование каких-то спецсимволов.
И сюда этот фрагмент кода, в студию.
Тут просто сайт по Друпалу. "Поддержки" (как таковой) тут нет. Это как бы между прочим.
))
Исходный код показывает мне это:
<a href="javascript:;" onclick="jQuery('#edit-comment').val('<a href=" http:="" www.cobalt-club.com="" users="" alex"="" title="Информация о пользователе.">ALEX</a>');jQuery('#edit-comment').focus();">Ник в ответ
Ну вот вам и причина.
$account_name здесь просто не канает, поскольку выводит уже готовую ссылку (причём на сайт пользователя).
Ищите другую переменную.
Ооооп... OldWarrior, Вы меня всё-таки натолкнули на путь исправления с экранированием) Правда трабла была не в экранировании, но когда начал копать, нашёл) Проблема в том, что <?php print $account_name ?> выдаёт не просто ник, а ссылку на ник со всеми вытекающими прелестями, потому и билось JS. Остался вопрос - чем можно заменить переменную $account_name ?
Отвечали одновременно))) Спасибо, OldWarrior!
И так, итог. Может кому-то пригодится. Вставка ника в ответ по клику для комментариев:
В шаблон advf-author-pane.tpl.php стиля форума вставляем готовый код:
<a href="javascript:;" onclick="jQuery('#edit-comment').val('<?php print $account->name; ?>');jQuery('#edit-comment').focus();">Ник в ответ</a>
Всем спасибо!
Всё равно у вас этот механизм реализован на jQuery. Так что, думаю, будет вполне кошерно и грамотно извлечь имя (ник) пользователя с помощью jQuery - отталкиваясь от текущего поста, где отображается это самое имя пользователя. Только нужно правильно составить условие выборки jQuery - так, чтобы не захватить и ссылку вместе с именем.
А, ну ок, вижу, что разобрались.
А может ли кто-то предложить подобное решение для Drupal 7.*?