Перейти к контенту

[2.3.x]Вставка имени и быстрая цитата с выделением


Рекомендуемые сообщения

rletfullin, попробуй сделать ребилд шиблона (см. «Инструменты» в скинах).

RuKeeper, полистай топик — уже писали блоки кода из 2.1.7.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 220
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

"rletfullin, попробуй сделать ребилд шиблона (см. «Инструменты» в скинах)."

Да я решил проблему, всё уже...

 

Теперь другая... Зарегистрировался пользователь с ником ZloY pHiL171p'HE®...

 

И Javascript выдаёт на такой ник ошибку. Ник не вставляется (остальные при этом вставляются) и страница открывается с ошибкой в статус-баре... Вот думаю, как бы эту ошибку убрать... Понятно, почему она возникает, но не понятно, как это обыграть...

Ссылка на комментарий
Поделиться на других сайтах

Где-то в теме есть код, убирающий апострофы из ника.
Ссылка на комментарий
Поделиться на других сайтах

Sannis, их не надо убирать... Сам форум вроде не ругается на такие ники, ругается именно МОД... Значит как-то можно это обыграть...
Ссылка на комментарий
Поделиться на других сайтах

А вы не придирайтесь к словам) Убирает при вставке ника в скрипт ответа, чтоб там всё нормально было...

 

Этот код кстати на этой странице есть, см. первые 2 поста.

Ссылка на комментарий
Поделиться на других сайтах

понимаешь, там вставка строется по принципу

ins(' имя ');

а если будет

ins(' им'я ');

то сам понимаешь, скрипт попытается то-ли вставить ' им', то-ли вообще сломается нафиг, и монитор взорвется...

Ссылка на комментарий
Поделиться на других сайтах

Arhar, я прекрасно понимаю. Но неужели javascript настолько негибкий, что это нельзя обойти? Ведь стандартный (встроенный в форум) способ цитирования спокойно это обходит. Значит можно как-то. Я не силён в javascript'е, я немножко по другой области программирования. Но вот чутьё подсказывает, что это должно обходиться довольно просто...
Ссылка на комментарий
Поделиться на других сайтах

rletfullin, можно это исправить, просто автор не правильно лечение бага запостил :D

В первых постах на 3й странице не

$poster['ins_nick'] = "<a href=\"java script:ins('".str_replace(array(" ", "'"), array(" ", "'"),

а

$poster['ins_nick'] = "<a href=\"java script:ins('".str_replace(array(" ", "& #39;"), array("& nbsp;", "\'"),

 

& # - без пробела!!!

Изменено пользователем Sannis
Ссылка на комментарий
Поделиться на других сайтах

Sannis, и всё равно не работает, если ник содержит одинарную кавычку...

 

Подправил, работает. Конечный вариант должен быть таким:

$poster['ins_nick'] = "<a href=\"java script:ins('".str_replace(array(" ", "& #39"), array(" ", "\'"), $poster['members_display_name'] )."')\">Вставить ник</a>";

 

Интересно, что символ "'" здесь не "'", а "'". Но это действительно так.

 

И вот здесь всё-таки лучше использовать members_display_name, а не name:

$poster['ins_q'] = "<a onmouseover=\"copyQ('{$poster['members_display_name']}','{$row['q_date']}', '{$row['pid']}');\" href=\"java script:pasteQ();\">Цитата</a>";

 

Теперь, когда ник вставлять научился, надо бы ещё и цитату такого "неправильного" пользователя научиться вставлять. Вот только что-то у меня не получается...

 

Проблему решил, введя новую переменную $postername и заменив

$poster['ins_q'] = "<a onmouseover=\"copyQ('{$poster['member_display_name']}','{$row['q_date']}', '{$row['pid']}');\" href=\"java script:pasteQ();\">Цитата</a>";

на

$postername="".str_replace(array(" ", "& #39"), array(" ", "\'"), $poster['members_display_name'] )."";
$poster['ins_q'] = "<a onmouseover=\"copyQ('{$postername}','{$row['q_date']}', '{$row['pid']}');\" href=\"java script:pasteQ();\">Цитата</a>";

 

Всё цитируется, "неправильные ники" вставляются в форму быстрого ответа, но после отправки обрезается часть ника, которая после " ' ". Т.е. если ник был REN'egade, в ответе будет вот так: Цитата(REN @ 29.4.2007, 23:32)

Теперь бы ещё и эту проблему решить...

Ссылка на комментарий
Поделиться на других сайтах

))) а кто-то кричал, что встроенный цитатник все обходит

во встроенном цитатнике примерно такая форма:

[quote name='qwerty' date='123456' post='123546']

как видишь, тоже автоматом в одинарных кавычках

Ссылка на комментарий
Поделиться на других сайтах

Arhar

Ну ладно, ладно... У всех бывает )))

Дело в том, что и это можно модифицировать...

Но честно говоря, мне уже лень этой ерундой заниматься )))

Буду удалять пользователей нафиг, если только попытаются кавычки использовать ))) Мне так легче )))

Ссылка на комментарий
Поделиться на других сайтах

Блин, в код апостофа пробел вставил, а в код пробела забыл, вот и не работало) Изменено пользователем Sannis
Ссылка на комментарий
Поделиться на других сайтах

А как можно вставку цитаты засунуть в форму быстрого ответа?

Пытался нужный код из renderrow перетащить в quickbox open и вставить после графических кнопок, но ссылка не появляется :D

 

ps: форум 2.2.2

Ссылка на комментарий
Поделиться на других сайтах

А как можно вставку цитаты засунуть в форму быстрого ответа?

Пытался нужный код из renderrow перетащить в quickbox open и вставить после графических кнопок, но ссылка не появляется :D

 

ps: форум 2.2.2

В quickbox open нет входящей переменной $author="". Возможно, стоит добавить? ;) Хотя не пробовал, честно скажу ))

 

А вообще, это неудобно ИМХО...

Ссылка на комментарий
Поделиться на других сайтах

Обновил мод в архиве.

Теперь при цитате вставляется отображаемое имя, а не логин пользователя + вырезаются «проблемные» символы из ника пользователя при цитировании.

Всем спасибо за багрепорты.

Было:

Заменить на:

=====================

$poster['_members_display_name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['members_display_name_short']}</a>";

$poster['ins_nick'] = "<a href=\"java script:ins('".str_replace(array(" ", "'"), array(" ", "'"), $poster['members_display_name'] )."')\">Вставить ник</a>";

}

$poster['ins_q'] = "<a onmouseover=\"copyQ('{$poster['name']}','{$row['q_date']}', '{$row['pid']}');\" href=\"java script:pasteQ();\">Цитата</a>";

Стало — смотрите обновленный файл модификации.

 

А как можно вставку цитаты засунуть в форму быстрого ответа?
Будет неудобно, imho. На то она и быстрая цитата, чтобы быстро цитировать, а не скроллить страницу вниз после выделения каждого сообщения. Изменено пользователем h8)u
Ссылка на комментарий
Поделиться на других сайтах

Parse error: parse error, unexpected T_VARIABLE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/............/........./forum/sources/action_public/topics.php on line 1041

 

function ins(name)
{
my_show_div(my_getbyid('qr_open'));
if (document.REPLIER.Post)
{
	var input=document.REPLIER.Post;
	input.value=input.value+"[b]"+name+"[/b]"+" \n"
}
}

нет точки с запятой в последней строчки

Ссылка на комментарий
Поделиться на других сайтах

Сообщение отредактировал h8)u - 10.5.2007, 22:24

А всё равно лажа, конвертнулось :D

Изменено пользователем Sannis
Ссылка на комментарий
Поделиться на других сайтах

Народ, ставил на 2.1.7

Всю тему прочитал, все предлагаемые варианты перепробывал.

JS правильно сделан, проверял.

javascript вместе написано, тела этих функций прямо отсюда копировал.

Не помогает.

Вылезает ошибка на белом фоне:

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /usr/home/vshosts/hosts/u3353/sion.net.ru/www/forum/sources/action_public/topics.php on line 1318

 

Чё делать?

Ссылка на комментарий
Поделиться на других сайтах

1318 +- 5 строк дайте.
Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.