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

javascript: insert_text() и перевод строки

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 65 раз
Поблагодарили: 75 раз

javascript: insert_text() и перевод строки

Сообщение ReXtor »

Есть ли способ через функцию insert_text() из assets\javascript\editor.js вставлять в поле ввода сразу несколько строк?

Имеется расширение, которое при нажатии на соответствующую ссылку выполняет код

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

<a onclick="insert_text(\'%1$s\', \'\', true)" href="javascript:;">
Данный код задается через переменную в lang-файле расширения. Где значение %1$s берется также из еще одной переменной lang-файла и выглядит как

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

[img]%2$s[/img][url=%1$s]sometext[/url]
где переменные уже подставляет расширение в виде ссылки на изображение и ссылки на файл.

Но вот эта конструкция вставляется в поле ввода редактора одной строкой где за [img] следует сразу же [url], что дает отображение ссылки сбоку от изображения. А хотелось бы чтобы ссылка была ПОД изображением с новой строки.

В качестве временного решения был соображен bbCode [br] (с HTML <br />) и вставлен в переменную lang-файла между нужными bbкодами. Но такой костыль мне не нравится и поэтому ищу более изящный вариант, как бы подсунуть в insert_text() перевод строки.

Идеи?
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 804
Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: javascript: insert_text() и перевод строки

Сообщение Perfecthus »

/r или /n не пробовал в код добавить?
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 65 раз
Поблагодарили: 75 раз

Re: javascript: insert_text() и перевод строки

Сообщение ReXtor »

Perfecthus писал(а): 14.02.2023 4:57 /r или /n не пробовал в код добавить?
Подозреваю, что речь все же про \r и \n.
Пробовал. \r, \n, \r\n, также их же с еще одним бэкслешем в конце и те же варианты с экранированием. В код скрипта они прекрасно попадают, но он тогда отказывается выполняться отваливаясь с ошибкой:

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

Uncaught SyntaxError: Invalid or unexpected token
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 804
Стаж: 13 лет 6 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: javascript: insert_text() и перевод строки

Сообщение Perfecthus »

ReXtor писал(а): 14.02.2023 5:27 выполняться отваливаясь с ошибкой
Значит неправильно добавляешь. Посмотри ошибку и исправь.
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 65 раз
Поблагодарили: 75 раз

Re: javascript: insert_text() и перевод строки

Сообщение ReXtor »

ReXtor писал(а): 14.02.2023 2:52 при нажатии на соответствующую ссылку выполняет код
Немного наврал. В моем случае там выполняется:

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

<a onclick="insert_text(\'' + myData.result + '\', \'\', false)" href="javascript:;">
, где в myData.result попадает та самая строка из lang-файла:

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

[img]%2$s[/img][url=%1$s]sometext[/url]
А первый вариант, это при других настройках. Но общей сути это не меняет я думаю.

Отправлено спустя 18 минут 3 секунды:
Perfecthus писал(а): 14.02.2023 6:38 Значит неправильно добавляешь. Посмотри ошибку и исправь.
Вставляю вот так:

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

[img]%2$s[/img]\r\n[url=%1$s]sometext[/url]
Консоль:
2023-02-14_13-00-57.png
и видно что перевод строки происходит:
2023-02-14_13-02-01.png
Но как уже было сказано - скрипт тогда не выполняется.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]

Вернуться в «Для разработчиков»