Jump to content

User:Khanson/check sign.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//Скрипт проверяет наличие подписи.
//Автор: X-romix

if (wgAction == 'edit' || wgAction == 'submit')
addOnloadHook(function(){
	var wpSave = document.getElementById('wpSave');
	if (!wpSave) return;
	addHandler(wpSave, 'click', XRomix_CheckSignHandler);
});	

function XRomix_CheckSign(text){

	if(wgNamespaceNumber==0) return true; //основное пространство статей
	if(wgNamespaceNumber==2) return true; //страницы участника
	if(wgNamespaceNumber==4){ //Википедия
		if (!wgTitle.match('^(Форум[/ ]|Голосования/|Опросы/|Обсуждение правил/|Заявки на .*\/|Запросы.|Кандидаты в .*\/|К (удалению|объединению|переименованию|разделению|улучшению)/|Проверка участников/)') || wgTitle.match ('/Архив')) return	true;
	}
	if (document.editform.wpTextbox1.value.indexOf('~~\~~') >= 0 ) return true; //есть подпись
	return false;
	
}//function

function XRomix_CheckSignHandler(e){
	var isCancel=false;
	var text=document.editform.wpTextbox1.value;
	
	var w = document.getElementById('XRomix_editpage_sigwarn');
	if(w) return; //уже есть надпись с предупреждением
	
	if (!XRomix_CheckSign(text)){
		var input = document.getElementById('wpSummary')
		if (!input) return
 
		var w = document.createElement('span')
		w.id = 'XRomix_editpage_sigwarn'
		input.parentNode.insertBefore(w, input.nextSibling)
		w.innerHTML = '<div style="padding:10px; margin:5px; background:#FFD080; border:1px solid orange;">'+
		'Пожалуйста, <b>подпишитесь</b>, добавив в конце своего сообщения ' + 
		'<a href=\'javascript:insertTags(" ~~\~~\","","")\'>~~\~~</a>' +
	    ' (<a href="' + wgArticlePath.replace(/\$1/, 'Википедия:Подписывайтесь') +
	    '" title="(ссылка откроется в новом окне)" target=_blank>подробнее&nbsp;↗</a>)</div>';
		isCancel=true;
	}
 
	if (isCancel){ //отменить нажатие кнопки
		e = e || window.event //из-за различий в IE и стандартных браузерах
		if (e.preventDefault) e.preventDefault(); else e.returnValue = false //остановить действие, снова по-разному
		return false //на всякий случай
	}
}