Запрет добавления одинаковых материалов для uCoz

2981 просмотров Alan_Writer 17.12.2013

Запрет добавления одинаковых материалов для uCoz. Итак очередной довольно интересный, хотя и не особо нужный как мне кажется скрипт, который не будет позволять добавлять материалы с одинаковым названием.

Скрипт из взят из паблика, он есть на многих сайтах, но почти везде его не полностью копировали и он не работал. Полную и рабочую версию я нашел лишь на одном портале.

Работает скрипт запрета следующим образом. Он анализирует текст из поля "название материала" и ищет совпадения в указанном в скрипте модуле. Если находит хоть одно точное совпадение - добавление материала блокируется и выводится соответствующее уведомление.

Установка скрипта

Сразу скажу, тут будет показано как установить скрипт в модуль "Каталог файлов", но его можно установить и в любой другой модуль, нужно лишь заменить несколько переменных в самом скрипте - в соответствии с конкретным модулем.

1). Этот шаг одинаков для всех модулей. В шаблоне "вид материалов" нужного модуля, вам нужно приписать id="finder" к ссылке ведущей на страницу полного материала. То есть меняем такой код:
Код
<a href="$ENTRY_URL$" >$TITLE$</a>

На такой:
Код
<a href="$ENTRY_URL$" id="finder">$TITLE$</a>

* Это очень важно, т.к именно по id="finder" скрипт сканирует материалы.

2). Теперь ставим сам скрипт в самый низ шаблона страницы "Добавления и редактирования материала" необходимого модули, после тега </body>:
Код
<script type="text/javascript">  
function querySearch () {  
$(function () {  
var finder = $("#ldF1").val(); /*Где #ldF1 - ID поля с названием материала*/
if (finder.match(/^\s*$/i)) {  
_uWnd.alert('Введите название материала!','',{w:220,h:57,tm:2500,pad:'10px'});
} else {
$.post('/load/', {query: finder, a: 2}, /*Где /load/ - адрес нужного модуля*/
function(a) {  
if ($("#finder:first", a).attr('href') == undefined) {  
$('#doSmbBt').click();
} else {  
_uWnd.alert('Такой материал уже есть на сайте, добавьте другой.','',{w:220,h:70,tm:2500,pad:'5px'});  
return false;}  
});}  
});}  
$(document).ready(function () {  
$('#ldF18').attr('onclick','querySearch(); return false;'); /*Где #ldF18 - ID кнопки "Добавить"*/
});
</script>

* Чтоб было понятней, в скрипте я подписал переменные, которые необходимо заменять в соответствии с модулем, в который вы его ставите.

Список переменных модулей

Название модуляID поля с названиемАдрес модуляID кнопки "Добавить"
Новости сайтаid="nwF1"/news/id="nwF7"
Каталог статейid="puF1"/publ/id="puF9"
Каталог сайтовid="drF1"/dir/id="drF16"
Каталог файловid="ldF1"/load/id="ldF18"
Доска объявленийid="bdF1"/board/id="bdF77"
Фотоальбомыid="phF2"/photo/id="phF4"
Онлайн игрыid="sfF1"/stuff/id="sfF77"
Блогid="blF1"/blog/id="blF7"
Видеоid="f_title"/video/id="add-video-btn"

На этом все. Надеюсь я все понятно объяснил. Если помогло - ставь плюс и подписывайся!

Теги: Запрет повторных материалов, Запрет дублирования материалов, скрипт запрета, Запрет добавления одинаковых матери
3 Комментария
avatar
2
Отличная работа, я проверил работает в модуле stuff
Да кстати не забудьте поменять все необходимое как ниже перечислено. cool
avatar
1
Отредактировать материал не получается у меня запрет вылетает?
приходиться скрипт вытаскивать, пашет хорошо.