Урок 139. Добавляем ссылку на источник материала при копировании
Привет!
Как и обещал в предыдущей статье, мы поговорим про автоматическое добавление ссылки на источник материала при копировании. Очень полезная вещь, особенно для тех, у кого часто копипастят контент. Копипастер частенько может недоглядеть, и не удалить ссылку, что очень положительно скажется на сайте-источнике. При использовании парсеров контента (программы для сбора материала), многие также забывают поставить галочку напротив "Удалять 'a href' ссылки". А в более старых версиях парсеров такой функции и вовсе нет. Отсюда хорошо видно, почему необходим скрипт, который будет добавлять к скопированному содержимому ссылку на источник и текст, который задаст сам админ.
Скрипт я написал своими руками, после того, как разочаровался во всех найденных. Только 1 скрипт мне попался рабочим, однако работал он лишь на опере. Мой же скрипт работает на всех современных браузерах: "Мазила, Опера, Хром, Яндекс Браузер и тд". На всех, кроме ИЕ (Internet Explorer). С этим браузером масса проблем, там плохо работают ява скрипты, большинство вообще не запускаются, как и мой. Не понятно, майкрософт специально игнорит подобные скрипты, якобы из соображений безопасности, или просто не видит проблемы? Не удивительно, почему ИЕ используют лишь для того, чтобы скачать какой-нибудь другой браузер 🙂
Что делает скрипт? В двух словах: копируем текст: не важно, 7 абзацев, или 2 слова, скрипт автоматически в буфере обмена (где хранится сохраненный текст) редактирует его, добавляя в конец 2 строки. Первая строка: адрес страницы, с которой был скопирован текст (автоматическое определение урла страницы расположения текста). Вторая строка: копирайт.
Вот и сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<script type="text/javascript"> function wpguruLink() { var istS = 'Источник:'; // Слово должно находится в кавычках! var copyR = '© WPguru.ru'; // Слово должно находится в кавычках! var body_element = document.getElementsByTagName('body')[0]; var choose = window.getSelection(); var myLink = document.location.href; var authorLink = "<br /><br />" + istS + ' ' + "<a href='"+myLink+"'>"+myLink+"</a><br />" + copyR; var copytext = choose + authorLink; var addDiv = document.createElement('div'); addDiv.style.position='absolute'; addDiv.style.left='-99999px'; body_element.appendChild(addDiv); addDiv.innerHTML = copytext; choose.selectAllChildren(addDiv); window.setTimeout(function() { body_element.removeChild(addDiv); },0); } document.oncopy = wpguruLink; </script> |
Для удобства, я вынес значения, которые Вам надо будет изменить, на первые строки. Это: "Источник". Вместо данного слова можете употребить любое другое, например "Информация взята из:". Главное, как написано в комментариях к коду, слово должно находиться в кавычках! Иначе будет ошибка.
И вторая строка - копирайт. Измените эту строчку на название Вашего сайта. Если же эта строчка Вам кажется лишней, тогда просто удалите значение в кавычках. Кавычки должны остаться на месте.
Вставляем данный код в файл header.php, между тегамии. Рекомендую, если у Вас нет знаний html, вставлять данный код сразу же после тега, либо сразу перед тегом, иначе Вы рискуете вставить данный скрипт во внутрь какого-нибудь другого, результатом чего станет неработоспособность обоих скриптов.
Скрипт работает не только на WordPress, но и на любых других движках и сайтах. Добавить на любой сайт скрипт можно точно также, вставив код междуи, главное разыскать, в каких файлах находятся эти теги.
Вот и все. Теперь у Вас установлено автоматическое добавление ссылки на источник материала при копировании. Это, конечно, не грааль защиты, но, как написал один из моих читателей: "это лучше, чем ничего". И с этим трудно поспорить.
Как добавить исключение для скрипта
Один из читателей попросил добавить к скрипту возможность исключения. То есть, нам достаточно выбрать определенное слово или фразу, копируя которую скрипт не сработает. Например, если человек копирует ссылку: wpguru.ru, то зачем скрипту к этой ссылке вставлять еще: Источник: wpguru.ru? Для этого наш код необходимо изменить следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<script type="text/javascript"> function wpguruLink() { var choose = window.getSelection(); if($.trim(choose) == 'Ночь' || $.trim(choose) == 'Утро') { return choose; } var istS = 'Источник:'; // Слово должно находится в кавычках! var copyR = '© WPguru.ru'; // Слово должно находится в кавычках! var body_element = document.getElementsByTagName('body')[0]; var myLink = document.location.href; var authorLink = "<br /><br />" + istS + ' ' + "<a href='"+myLink+"'>"+myLink+"</a><br />" + copyR; var copytext = choose + authorLink; var addDiv = document.createElement('div'); addDiv.style.position='absolute'; addDiv.style.left='-99999px'; body_element.appendChild(addDiv); addDiv.innerHTML = copytext; choose.selectAllChildren(addDiv); window.setTimeout(function() { body_element.removeChild(addDiv); },0); } document.oncopy = wpguruLink; </script> |
Вместо слов "Ночь" и "Утро" вставляйте необходимые, для Вас, слова и фразы. Либо ссылки. Вставлять можно что угодно, главное чтобы это полностью соответствовало слову/фразе в тексте. Так, например, если мы скопируем слово "ночь" - исключение не сработает, потому что мы указали: "Ночь". С большой буквы. Но благодаря указанному методу trim, у нас будут удаляться пробелы в начале и конце строки. Так что если слово Ночь будет скопировано с пробелом до или после - разницы не будет.
Еще больше слов добавляйте аналогично добавлению слова: "Утро". Т.е. вставляем сразу после "Утро" такие строки:
1 |
|| $.trim(choose) == 'Новое слово' |
Добавлять можно до бесконечности.
На этом у меня все, до встречи в следующих уроках!
Комментарии