[BETA] CopyPaste
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
-
- phpBB 2.0.0
- Сообщения: 241
- Стаж: 12 лет 5 месяцев
- Откуда: РФ, Тюмень
- Благодарил (а): 12 раз
- Поблагодарили: 90 раз
[BETA] CopyPaste
Название: CopyPaste
Автор: saturn-z
Описание: При копировании текста с сайта автоматически подставляется "Источник"
Запрос расширения: http://www.phpbbguru.net/community/topic45014.html
DEMO: ЗДЕСЬ
Версия Расширения: 1.0.1
Требования: phpBB 3.1.*@dev
GitHub репозиторий: https://github.com/saturn-z/CopyPaste
Загрузить расширение: https://github.com/saturn-z/CopyPaste/a ... master.zip
Автор: saturn-z
Описание: При копировании текста с сайта автоматически подставляется "Источник"
Запрос расширения: http://www.phpbbguru.net/community/topic45014.html
DEMO: ЗДЕСЬ
Версия Расширения: 1.0.1
Требования: phpBB 3.1.*@dev
GitHub репозиторий: https://github.com/saturn-z/CopyPaste
Загрузить расширение: https://github.com/saturn-z/CopyPaste/a ... master.zip
Последний раз редактировалось saturn-z 13.08.2019 15:53, всего редактировалось 2 раза.
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.
-
- Former team member
- Сообщения: 1965
- Стаж: 15 лет 1 месяц
- Благодарил (а): 57 раз
- Поблагодарили: 622 раза
Re: [BETA] CopyPaste
Использовал версию от KEMnEP для одного форума.
Изменил подключение файла локализации
и в шаблоне ограничил исполнение для всех страниц кроме <!-- IF S_VIEWTOPIC -->
В принципе в версии saturn-z можно сделать аналогично, но источник добавляется к любому копируемому объекту, что может быть не очень то удобно когда код копируешь в исполняемый файл.
Изменил подключение файла локализации
Код: Выделить всё
static public function getSubscribedEvents()
{
return array('core.viewtopic_modify_page_title' => 'load_language_on_setup');
}
public function load_language_on_setup($event)
{
$this->user->add_lang_ext('saturnZ/CopyPaste', 'copypaste_lng');
}
В принципе в версии saturn-z можно сделать аналогично, но источник добавляется к любому копируемому объекту, что может быть не очень то удобно когда код копируешь в исполняемый файл.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
Спецзаказы не интересуют!
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
Тогда уж лучше и заменить, если брать за основу мою версию
Мало ли откуда начнут копировать 
Отправлено спустя 47 минут 12 секунд:
Посмотрел коды на этой странице и подумал, неплохо бы фигурные скобки добавить в исключение. уж они то точно в основном только в коде и встречаются и не по одной {}
Код: Выделить всё
$(document).ready(function() {
$(".post").bind({
copy : addLink
})
});

Отправлено спустя 47 минут 12 секунд:
Посмотрел коды на этой странице и подумал, неплохо бы фигурные скобки добавить в исключение. уж они то точно в основном только в коде и встречаются и не по одной {}
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
можно, только если не менять метод.. придётся каждый раз сравнивать выделенные текст с содержимым всей страницы чтоб найти откуда был взят, а это лишняя нагрузка на клиента, имхо, особенно если учесть страницы с БОЛЬШИМ содержанием.
Упд: собственно из за этого и отказался от поиска целиком блока кода перейдя на ключевые символы вместе с ограничением срабатывания от 6 слов разделённых пробелом.
Отправлено спустя 49 минут 19 секунд:
Хотя лично мне Сатурновский код в нынешнем виде больше нравится, когда будет гораздо больше свободного времени чем сейчас, на его основе и можно будет создать без костыльный вариант, который точно отделит кодбокс от не код бокса, но это точно не в ближайший месяц. если тут кто нибудь раньше его не создаст.
Отправлено спустя 1 час 51 минуту 55 секунд:
Ааа блин! Почему осеняет всегда в дали от тестового компа.
Всего-от за места поиска символов нужно через ечь прогнать все кодебоксы (если есть) на выделеный текс ( или часть его на точное совпадение) и если есть хоть 1 присвоить какойнить переменной значение скажем 1, ну и дальше самое простое просто отменить выполнение вставки если стало хоть раз 1.
Упд: собственно из за этого и отказался от поиска целиком блока кода перейдя на ключевые символы вместе с ограничением срабатывания от 6 слов разделённых пробелом.
Отправлено спустя 49 минут 19 секунд:
Хотя лично мне Сатурновский код в нынешнем виде больше нравится, когда будет гораздо больше свободного времени чем сейчас, на его основе и можно будет создать без костыльный вариант, который точно отделит кодбокс от не код бокса, но это точно не в ближайший месяц. если тут кто нибудь раньше его не создаст.
Отправлено спустя 1 час 51 минуту 55 секунд:
Ааа блин! Почему осеняет всегда в дали от тестового компа.
Всего-от за места поиска символов нужно через ечь прогнать все кодебоксы (если есть) на выделеный текс ( или часть его на точное совпадение) и если есть хоть 1 присвоить какойнить переменной значение скажем 1, ну и дальше самое простое просто отменить выполнение вставки если стало хоть раз 1.
-
- phpBB 2.0.0
- Сообщения: 241
- Стаж: 12 лет 5 месяцев
- Откуда: РФ, Тюмень
- Благодарил (а): 12 раз
- Поблагодарили: 90 раз
Re: [BETA] CopyPaste
Не самое лучшее решение. т.к.
Пример с сайта Anvar
Пример
Andy2 » 05.01.2016, 09:24 #15
Eco Logic, Благодарю за помощь, все ништяк. У тебя тв сразу появляется окно (http), у меня пустая страница, чтоб показалось окно плеера надо вместо https написать в адресной строке http и тогда плеер сразу показывается, но происходит разлогин. Можно ли только для этой страницы сделать http ? Наверное в коде надо копать. Может кто знает.
Вставлял скрипт
Eco Logic, Благодарю за помощь, все ништяк. У тебя тв сразу появляется окно (http), у меня пустая страница, чтоб показалось окно плеера надо вместо https написать в адресной строке http и тогда плеер сразу показывается, но происходит разлогин. Можно ли только для этой страницы сделать http ? Наверное в коде надо копать. Может кто знает.
Вставлял скрипт
div.postbody
, или div.inner
хотя с последним замечены проблемы с расширением портала, иногда добавляется двойная ссылка на источник.Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.
-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Re: [BETA] CopyPaste
Заметил ошибку из новой версии из первого сообщения. Если копировать из поля ввода, то текст не копируется, а копируется только текст "источник и ссылка" а то что нужно скопировать не копируется вообще.
-
- phpBB 2.0.0
- Сообщения: 241
- Стаж: 12 лет 5 месяцев
- Откуда: РФ, Тюмень
- Благодарил (а): 12 раз
- Поблагодарили: 90 раз
Re: [BETA] CopyPaste
igorbond, из какого опять поля что не копируется? Я у себя тестил весь день, ошибок никаких не заметил. И что ты имеешь ввиду под "полем ввода"?
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.
-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Re: [BETA] CopyPaste
Если копировать текст не из готового сообщения, а при вводе и предпросмотре, скопировать его из "поля ввода текста сообщения"
-
- phpBB 2.0.0
- Сообщения: 241
- Стаж: 12 лет 5 месяцев
- Откуда: РФ, Тюмень
- Благодарил (а): 12 раз
- Поблагодарили: 90 раз
Re: [BETA] CopyPaste
igorbond, проверил, всё копируется, ссылка на источник не добавляется.
Немало нужно знания, чтобы уметь скрыть перед другими свое незнание.
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
igorbond, а дайте я по вангую! У вас ещё при переходе между страниц одной темы должно вставляться в выделенное копирайт только первой посещённой страницы (если включен аджакс) ну и уж точно у Вас стоит [RC] Быстрый ответ: перезагрузка (QuickReply Reloaded) Версия saturn-z, из коробки с ним не очень дружит.
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
Скрипт на основе Re: [BETA] CopyPaste (Пост KEMnEP #478908) теперь корректно ищет и находит любой текст в бокс коде, если выделение меньше чем 5 слов включительно и/или совпадает частично/полностью с любым кодебоксом на странице. но не больше его по размеру слов (проще говоря выделен текст внутри кодебокса или кодебокс целиком кнопкой выделить всё), вставка копирайта не происходит. Если выделен не кодебокс, или кодебокс и ещё текст, копирайт вставляется, при учёте что выделение больше 6 слов, включительно.
Из минусов, если срабатывает копирайт форматирование текста пропадает и вырезаются строки содержашие символы
В свободное время устраню и эту проблему (проблему ли? кто пойдёт читать источник, если скопированное на чужом сайте хорошо отформатировано и удобно с коробки для прочтения) ну и в планах встроить показ с каких именно постов взят код. Если никто не опередит, или я не решу что это уже что то лишние.
Внимание! скрипт работает ТОЛЬКО с кириллицей (русский алфавит с ёЁ) и латиницей.
Установка: содержимое файла overall_footer_after.html полностью заменить на
Отправлено спустя 42 минуты 36 секунд:
чуть подправил код скрипта
Из минусов, если срабатывает копирайт форматирование текста пропадает и вырезаются строки содержашие символы
<*>
и<!--*-->
. Примеры <!-- IF S_VIEWTOPIC -->
и <script type="text/javascript">
В свободное время устраню и эту проблему (проблему ли? кто пойдёт читать источник, если скопированное на чужом сайте хорошо отформатировано и удобно с коробки для прочтения) ну и в планах встроить показ с каких именно постов взят код. Если никто не опередит, или я не решу что это уже что то лишние.
Внимание! скрипт работает ТОЛЬКО с кириллицей (русский алфавит с ёЁ) и латиницей.
Установка: содержимое файла overall_footer_after.html полностью заменить на
Код: Выделить всё
<!-- KEMnEP edition-->
<!-- IF S_VIEWTOPIC -->
<script type="text/javascript">
function add_copepast(e, elements) {
function addLink() {
var selection = window.getSelection(),
pagelink = '<p>{L_COPYRIGHT_NAME}: <a href="' + location.href + '">' + location.href + '</a></p>',
newdiv = document.createElement('div'),
res1,
a = selection + '',
c = 0;
$('.codebox').each(function(){
var e = a.replace(/[^\w\ёЁdа-яА-Я]/g, '');
var b = $(this).text();
var d = b.replace(/[^\w\dёЁа-яА-Я]/g, '');
eval("res1 = /" + e + "/g.exec('" + d + "')");
if ( res1 != null) {
c = 1;
}
});
var text = selection.toString().split(" ");
if(text.length > 5)
{
if ( c != 1)
{
var rezka = a.replace(/(\<.*?\>|<!--.*?-->)/g, '');
var copytext = rezka + pagelink;
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
document.body.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 90000);
}
}
}
$(document).ready(function() {
$(".post").bind({
copy : addLink
})
});
}
$(document).ready(function (e) {
add_copepast(e, $(document));
});
$('#qr_posts').on('qr_loaded', add_copepast);
</script>
<!-- ENDIF -->
<!-- END KEMnEP edition-->
чуть подправил код скрипта
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
Версия скрипта из поста Re: [BETA] CopyPaste (Пост KEMnEP #479018), устраняющая ошибку в console (хоть и правильную с точки зрения функционала отработку скрипта в целом) при специфичном кодебоксе вида
пример
Код: Выделить всё
}
}
}
}
}
}
}
Код: Выделить всё
<!-- KEMnEP edition-->
<!-- IF S_VIEWTOPIC -->
<script type="text/javascript">
function add_copepast(e, elements) {
function addLink() {
var selection = window.getSelection(),
pagelink = '<p>{L_COPYRIGHT_NAME}: <a href="' + location.href + '">' + location.href + '</a></p>',
newdiv = document.createElement('div'),
res1,
a = selection + '',
c = 0;
$('.codebox').each(function(){
var e = a.replace(/[^\w\dёЁа-яА-Я]/g, ''),
b = $(this).text(),
d = b.replace(/[^\w\dёЁа-яА-Я]/g, ''),
res2 = e[0];
if ( res2 == undefined) {
c = 1;
} else {
eval("res1 = /" + e + "/g.exec('" + d + "')");
if ( res1 != null) {
c = 1;
}
}
});
var text = selection.toString().split(" ");
if(text.length > 5)
{
if ( c != 1)
{
var rezka = a.replace(/(\<.*?\>|<!--.*?-->)/g, ''),
copytext = rezka + pagelink;
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
document.body.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 90000);
}
}
}
$(document).ready(function() {
$(".post").bind({
copy : addLink
})
});
}
$(document).ready(function (e) {
add_copepast(e, $(document));
});
$('#qr_posts').on('qr_loaded', add_copepast);
</script>
<!-- ENDIF -->
<!-- END KEMnEP edition-->
-
- phpBB 3.1.0 RC3
- Сообщения: 3343
- Стаж: 13 лет 3 месяца
- Благодарил (а): 675 раз
- Поблагодарили: 164 раза
Re: [BETA] CopyPaste
При написании ответа, и копировании текста он не копируется вообще. Точнее не так на странице ответа текст не копируется именно из поля ввода текста, а любой другой копируется.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- phpBB 2.0.18
- Сообщения: 1167
- Стаж: 10 лет 1 месяц
- Благодарил (а): 44 раза
- Поблагодарили: 293 раза
Re: [BETA] CopyPaste
По сравнению с Re: [BETA] CopyPaste (Пост KEMnEP #479018) добавилось поиск и вставка ссылки номера поста, если такой пост единственный в своём роде, и взято содержимое из него. Если же содержимое не уникально на странице, или скопировано больше одного поста, вставляется ссылка на страницу (все предыдущие правила на счёт 5 слов и кодебокса в силе).
Отправлено спустя 26 минут 9 секунд:
микро фикс логики
Отправлено спустя 50 минут 42 секунды:
хотя.. пока не устанавливайте эту версию скрипта, я придумал гораздо меньше ресурсо затратный способ. и понял потенциальную ошибку логики, ( можно же только первый совпадающий пост выводить примой ссылкой, если что сами в низ пролистают) но слишком уже спать хочу...
Код: Выделить всё
<!-- KEMnEP edition-->
<!-- IF S_VIEWTOPIC -->
<script type="text/javascript">
function add_copepast(e, elements) {
function addLink() {
var selection = window.getSelection(),
pagelink = '<p>{L_COPYRIGHT_NAME}: <a href="' + location.href + '">' + location.href + '</a></p>',
newdiv = document.createElement('div'),
res1,
a = selection + '',
c = 0,
testauthor = 0;
$('.postbody').each(function(){
if ( c == 0 || testauthor == 0 || testauthor == 1) {
var self = $(this),
e = a.replace(/[^\w\dёЁа-яА-Я]/g, ''),
d = self.find('.codebox').text().replace(/[^\w\dёЁа-яА-Я]/g, ''),
res2 = e[0];
if ( res2 == undefined) {
c = 1;
} else {
eval("res1 = /" + e + "/g.exec('" + d + "')");
if ( res1 != null) {
c = 1;
}
}
if ( c == 0 ) {
var textpostbody = self.text().replace(/[^\w\dёЁа-яА-Я]/g, '');
eval("var res4 = /" + e + "/g.exec('" + textpostbody + "')");
if ( res4 != null) {
var authortext = self.find('p.author').html().replace(/(\<a\ href\=\"\.\/|["][>].*)/g, ''),
domen = location.href.replace(/viewtopic\.php.*/g, '');
if ( testauthor == 0) {
pagelink = '<p>{L_COPYRIGHT_NAME}: <a href="' + domen + authortext + '">' + domen + authortext + '</a></p>';
}
testauthor = testauthor + 1;
if ( testauthor == 2) {
pagelink = '<p>{L_COPYRIGHT_NAME}: <a href="' + location.href + '">' + location.href + '</a></p>';
}
}
}
}
});
var text = selection.toString().split(" ");
if(text.length > 5)
{
if ( c != 1)
{
var rezka = a.replace(/(\<.*?\>|<!--.*?-->)/g, ''),
copytext = rezka + pagelink;
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
document.body.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 90000);
}
}
}
$(document).ready(function() {
$(".post").bind({
copy : addLink
})
});
}
$(document).ready(function (e) {
add_copepast(e, $(document));
});
$('#qr_posts').on('qr_loaded', add_copepast);
</script>
<!-- ENDIF -->
<!-- END KEMnEP edition-->
микро фикс логики
Отправлено спустя 50 минут 42 секунды:
хотя.. пока не устанавливайте эту версию скрипта, я придумал гораздо меньше ресурсо затратный способ. и понял потенциальную ошибку логики, ( можно же только первый совпадающий пост выводить примой ссылкой, если что сами в низ пролистают) но слишком уже спать хочу...