FatCat Опубликовано 15 Мая 2007 Жалоба Поделиться Опубликовано 15 Мая 2007 Надоели деятели с зажатым капслоком.Сделал простенькую заглушку на джаваскрипт. Обойти ее не сложно, но всё же большую часть юзеров это заставит не перебарщивать с заглавными буквами. skin_post.php и skin_topic.phpПосле кода: function ValidateForm(isMsg) { MessageLength = document.REPLIER.Post.value.length; errors = "";добавил:anticapskey=0 for(i=0;i<MessageLength;i++){ if(document.REPLIER.Post.value.substring(i,i+1).toLowerCase()!=document.REPLIER.Post.value.substring(i,i+1))anticapskey++ } if(MessageLength/anticapskey<3)errors = "В сообщении слишком много заглавных букв!"Тепрь если в сообщении больше чем 1/3 букв заглавные, джава-скрипт ругается и не дает отправить сообщение. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
AleZX Опубликовано 12 Декабря 2007 Жалоба Поделиться Опубликовано 12 Декабря 2007 Извиняюсь за ап, а для 2.0.3 нету такого? В админке только для названий тем настройки . Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 12 Декабря 2007 Автор Жалоба Поделиться Опубликовано 12 Декабря 2007 Джаваскрипт - он на любой версии форума джаваскрипт. Кстати, оптимизировал по затратам функцию проверки количества заглавных букв, а то на больших сообщениях отмечалась заметная задержка. Теперь код:MessageLength = document.REPLIER.Post.value.length; errors = ""; anticaps=document.REPLIER.Post.value.split(/[А-ЯA-Z]/).join('') anticapskey=anticaps.length if((MessageLength/anticapskey)>1.3)errors = "В сообщении слишком много заглавных букв!" Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
AleZX Опубликовано 13 Декабря 2007 Жалоба Поделиться Опубликовано 13 Декабря 2007 Джаваскрипт - он на любой версии форума джаваскрипт.Это бесспорно, только непонятно, куда там это вставлять . В skin_topic.php вобще нет кода, после которого надо вставлять, а вставка только в skin_post.php не дает результата... И то, эти файлы из скин кэша, а его вроде бессмысленно редактировать.Через редактирование скинов через админку тоже пробовал. То, после чего надо вставлять, есть в Post Screen/get_javascript. Пробовал туда вписать - не работает тоже. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Декабря 2007 Жалоба Поделиться Опубликовано 13 Декабря 2007 ((MessageLength/anticapskey)>1.3)че?6/2=3>1.3 == trueили я че-то не понял, как работает split Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 13 Декабря 2007 Автор Жалоба Поделиться Опубликовано 13 Декабря 2007 или я че-то не понял, как работает splitКонструкция сплит.джоин здесь работает аналогично пхп-шной str_replace/preg_replace.Я сделал удаление всех заглавных букв и определение длинны строки. Если строка с заглавными больше строки с вырезанными заглавными в 1.3 раза - эррормесседж.Таким образом я оставил для себя лазейку: в конец можно набабахать немеряно пробелов Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 13 Декабря 2007 Жалоба Поделиться Опубликовано 13 Декабря 2007 не понял логикирассмотрим частный случайзаглавных букв нетдлина строки - MessageLength=6 (превед)длина заглавных букв - anticapskey=0 ()6/0=бесконечность >> 1.3сработает ошибкатак? а, теперь понялstrlen('ПреВед')/strlen('реед')все ок Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
BESTRAFER Опубликовано 22 Декабря 2007 Жалоба Поделиться Опубликовано 22 Декабря 2007 для версий постарше (например 2.3.х) как сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.