Содержание
Сегодня мы рассмотрим решение, которое позволит на вашем сайте настроить хотя-бы минимальную защиту вашего контента от копирования. Да, это не спасет вас от пользователей опытных, но от начинающих копипастеров защитит.
Чтобы настроить запрет выделения текста, вам нужно выполнить следующее, найти в шаблоне тег:
<body>
и заменить его на:
<body onselectstart="return false" oncopy="return false">
и сохранить.
Замените тег:
<body>
на следующее условие:
<?if($GROUP_ID$='4')?><body><?else?><body onselectstart="return false" oncopy="return false"><?endif?>
В шаблоне вашего сайта перед тегом </body> или в глобальном блоке нижняя часть сайта в самый низ установить такой скрипт:
<script>
document.onselectstart=function(){return false}
document.oncontextmenu=function(){return false}
document.onmousedown=function(){return false}
</script>
при использовании такого скрипта посетители не смогут выделять на сайте текст и при нажатии правой кнопки мыши им будет сообщаться, что эта опция запрещена у вас на сайте.
Замените скрипт:
<script>
document.onselectstart=function(){return false}
document.oncontextmenu=function(){return false}
document.onmousedown=function(){return false}
</script>
на следующий:
<?ifnot($GROUP_ID$='4')?>
<script>
document.onselectstart=function(){return false}
document.oncontextmenu=function(){return false}
document.onmousedown=function(){return false}
</script>
<?endif?>
Обычно в шаблоне страница материала и комментариев в ваших модулях, которые вы используете на сайте перед тегом </body> добавить такой скрипт:
<script type="text/javascript">
function addLink() {
var element_body = document.getElementsByTagName('body')[0];
var selection;
selection = window.getSelection();
var linkpage = "<br/>Источник: © $HOME_PAGE_LINK$<?substr($REQUEST_URI$,1)?>";
var copytext = selection + linkpage;
var divnew = document.createElement('div');
divnew.style.position='absolute';
divnew.style.left='-99999px';
element_body.appendChild(divnew);
divnew.innerHTML = copytext;
selection.selectAllChildren(divnew);
window.setTimeout(function() {
element_body.removeChild(divnew);
},0);
}
document.oncopy = addLink;
</script>
в результате при копировании текстов у вас на сайте и вставке на сторонний сайт, ниже будет писаться (Источник: ссылка на материал где было скопировано).
Просто заверните этот скрипт с примера в условие:
<?ifnot($GROUP_ID$='4')?>здесь полный скрипт с примера выше<?endif?>
ifnot в условии работает так, что если вы авторизованы на сайте как админ, скрипт будет вырезаться с шаблона и для вас срабатывать не будет.
Это будет немного побуждать тех пользователей, которые воруют контент и возможно будут оставлять вашу ссылку, что в результате прибавит вам внешних ссылок.
Важно! Все эти настройки будут создавать вам неудобства и вашим посетителям если они захотят что-то скопировать они не смогут это сделать в результате можете потерять некоторую часть аудитории, не всем это нравится.
Так же стоит учитывать, что не все воруют контент, кто-то просто захочет что-то себе сохранить и не сможет это сделать, не все пользователи опытные чтобы блокировать скрипты в браузере и обходить защиту.
Лицензия: CC BY-SA 4.0
Автор: Юрий Герук
Благодарность автору!