Антимат для форума
|
|
|
2012-05-04Дата: Пятница, 04.05.2012, 19:16 | Сообщение # 31 |
Сержант
Группа: Проверенные
Статус: Offline
|
Quote (likbezz) “Потом” это когда? Code <script type="text/javascript"> $(function(){$('#brief').keyup(function(){var a=$(this).val().toLowerCase(),b='мат'.split(','); for(i=0;i<b.length;++i){if(a.search(b[i])!= -1){$(this).val(a.replace(b[i],'<b>'+b[i]+'</b>'));return false;}}});}); </script>
сначала обрамляет а при введении дальше вставляет теги без конца...
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 20:53 | Сообщение # 32 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
allmonte, Quote (allmonte) сначала обрамляет а при введении дальше вставляет теги без конца... Вам поможет мое мое мнение о данном скрипте? Оно не приличное, почти матерное.
Ответ то же, проверяйте на наличие слов уже обрамленных тегами и пропускайте их .
Типа: Code if(a.search(b[i])!= -1&&a.search('<b>'+b[i])==-1){...} ...
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 21:01 | Сообщение # 33 |
Сержант
Группа: Проверенные
Статус: Offline
|
Quote (likbezz) Вам поможет мое мое мнение о данном скрипте? Оно не приличное, почти матерное. Ответ то же, проверяйте на наличие слов уже обрамленных тегами и пропускайте их . я не в коей мере не хотел огорчать вас, я понял что вы склонны( и это правильно ) применит чек сабмит, но он тоже выдает не совсем корректно: Code <script type="text/javascript"> window.checksubmit=function checksubmit(){ var badwords=new Array('мат','мат','мат','мат','прочие_слова'); var mess=obj=document.getElementById('brief'); for(i=1;i<=badwords.length;i=i+1){ if(obj.value.toLowerCase().match(badwords[i])){obj.value=obj.value.toLowerCase().replace(badwords[i],'<b>'+badwords[i]+'</b>'); }};return true;} </script>
выдает: Code <b><b><b>мат</b></b></b> причем сразу по 3 тега
Сообщение отредактировал allmonte - Пятница, 04.05.2012, 21:02 | | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 21:09 | Сообщение # 34 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
allmonte, Quote (allmonte) я не в коей мере не хотел огорчать вас, я понял что вы склонны( и это правильно ) применит чек сабмит, но он тоже выдает не совсем корректно: Да это тоже самое, единственное, не по нажатию работает, а только один раз, при отправке.
Quote (allmonte) причем сразу по 3 тега - Ну, как вы ввели так и сработало: Quote var badwords=new Array('мат','мат','мат','мат','прочие_слова'); - очень странно, что только 3 а не четыре ))) ...
В вашем случае нужно бить все сообщение на слова, и сравнивать каждое со списком. Или сразу убирать/менять слова из списка на звёздочки ... иначе он будет постоянно находить первое слово ... ...
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 21:27 | Сообщение # 35 |
Сержант
Группа: Проверенные
Статус: Offline
|
спасибо, оставил ваш вариант.
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 22:06 | Сообщение # 36 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
allmonte, Quote (allmonte) спасибо, оставил ваш вариант. О, или вот так: Code if(a.search(b[i]+' ')!=-1){ $(this).val(a.replace(b[i]+' ','<b>'+b[i]+'</b> '));return false;} }; ... Пробелы после слова ...
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 22:46 | Сообщение # 37 |
Сержант
Группа: Проверенные
Статус: Offline
|
Quote (likbezz) ... Пробелы после слова ... Спасибо, я пробовал с пробелами но добавлял только к заменЁнному, попробую еще и к заменЯемуму слову тоже добавить.
| | |
|
|
2012-05-04Дата: Пятница, 04.05.2012, 22:53 | Сообщение # 38 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
allmonte, Quote (allmonte) Спасибо, я пробовал с пробелами но добавлял только к заменЁнному, попробую еще и к заменЯемуму слову тоже добавить. Нет, не так .. к поисковому и заменяемому. Типа: ☑ http://likbezz.ru/_example/jscript/2012/antimat/antimat_v1.html
...
| | |
|
|
2012-05-05Дата: Суббота, 05.05.2012, 07:48 | Сообщение # 39 |
Сержант
Группа: Проверенные
Статус: Offline
|
Quote (likbezz) Нет, не так .. к поисковому и заменяемому. да у меня тоже получилось, еще раз спасибо, ИМХО можно эту модификацию тоже как нибуть прикрепить в первом посте вроде как полезная вещь.
Добавлено (05.05.2012, 07:48) --------------------------------------------- попробовал итак и сяк в итоге подвесил функцию на кнопку а кнопку добавил в форму, так еще удобней получилось как bb теги , обрабатываем по желанию: Code <script type="text/javascript"> $("label[for='html_brief']").html('Включить HTML теги <input type="button" value="Выделить ключевые слова" id="btn1111" />'); $('#btn1111').click( function() { var badwords=new Array('vfsdds','русская баня','построить баню','сауна','едим в бане','хамам','сходить в баню','недорогая баня','банные','березовый веник'); var mess=obj=document.getElementById('brief'); for(i=1;i<=badwords.length;i=i+1){ if(obj.value.toLowerCase().match(badwords[i])){obj.value=obj.value.toLowerCase().replace(badwords[i]+' ','<b>'+badwords[i]+'</b> '); }};return true;}); </script>
Сообщение отредактировал allmonte - Суббота, 05.05.2012, 12:51 | | |
|
|
2012-07-18Дата: Среда, 18.07.2012, 14:56 | Сообщение # 40 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
Всем доброго дня!
Уважаемый likbezz, подскажите пожалуйста, возможно ли в Вашем "антимате" создать слова-исключения?
У нас не совсем обычное использование "антимата". Проблема в следующем. Помните наш разговор по сайту Politicon1.at.ua? Там, по ссылке (пост 180), Демчик попытался пояснить суть проблемы, но сейчас, после моего отпуска, мы ещё раз вникли в то, почему там не срабатывает два скрипта одновременно (Ваш, по поиску и выведению фото в ленте RSS, и стоявший уже у нас "антимат") и нашли причину загвоздки.
Напомню. Для того, чтобы была возможность копировать страницу с лентой новостей и вставлять эту копию в архив сайта, нам понадобилась блокировка обновления ленты RSS и мы для этих целей поставили "антимат", чтобы заменить слова "rssi" в ссылках на эти потоки RSS-новостей. Всё работало нормально, но потом возникло желание исправить недоработку в RSS-потоке с сайта Тимошенко (там не выводились фотографии) и мы для этого использовали Ваш скрипт, который справился с задачей на отлично, но при одном условии - работает или он, или "антимат". Вместе работать не хотят. Если стоит "антимат", то не ищутся фотографии.
Думали, искали и нашли. "Антимат", по нашей задумке, менял слово "rssi" на слово "bad" в ссылке на ленту новостей. А Ваш скрипт тоже берёт за основу поиска код, в котором присутствует такое буквосочетание, как "rssi" (в скрипте прописано так: '#rssit_19 img'). Получается, что "антимат" меняет в коде Вашего скрипта эти четыре буквы (rssi) на буквы "bad" и Ваш скрипт перестаёт работать.
Отсюда и возник вопрос для этого топика, - как с помощью скрипта создать слова-исключения и запретить "антимату" заменять слово "rssit", но продолжать заменять слова "rssi" (без t)?
* Возможно, эта проблема имеет и другое решение, но мы его пока не знаем и поэтому идём по тому пути, который видим. Если кто подскажет другой способ решения, будем признательны.
** Уважаемый likbezz, в свете того нашего разговора по созданию скрипта по архивации материала - как нам сейчас представляется, мы не можем перейти к этапу создания скрипта по архивации потоков RSS, не решив вышеописанной проблемы, т.к. её элементы являются составляющими при архивации.
| | |
|
|
2012-07-18Дата: Среда, 18.07.2012, 15:15 | Сообщение # 41 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
Чур, Добрый) Отсюда и возник вопрос для этого топика, - как с помощью скрипта создать слова-исключения и запретить "антимату" заменять слово "rssit", но продолжать заменять слова "rssi" (без t)? Какие-то вы сложные пути ищите, все просто, измените ID блока с лентой но другой - произвольный. И скрип, соответственно поправьте. И все будет путем. Типа: Quote (Code) <div id="rssbox_19"><script type="text/javascript" src="http://politicon1.at.ua/rssi/19"></script></div> <script type="text/javascript"> $(document).ready(function(){ $('#rssbox_19 img').each(function(){ var a=$(this).attr('src')||false; if(a&&a.substring(0,1)=='/'){this.src='http://www.tymoshenko.ua'+a;} }); }); </script>
| | |
|
|
2012-07-19Дата: Четверг, 19.07.2012, 21:58 | Сообщение # 42 |
Лейтенант
Группа: Проверенные
Статус: Offline
|
Какие-то вы сложные пути ищите Понимаю, всё гениальное просто. Но к сожалению, мы не гении.
Правки по Вашей подсказке уже внесены и всё работает!
* Теперь можно и обсуждать детали по основному делу, но подскажите, в каком месте форума это лучше делать? (в личке, вроде бы, не совсем удобно технически, а тайны особой из этого мы не делаем, вот и предположил, что можно и в форуме, но то, как скажете)
Сообщение отредактировал Чур - Четверг, 19.07.2012, 22:02 | | |
|
|
2012-07-19Дата: Четверг, 19.07.2012, 23:14 | Сообщение # 43 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
Чур, Правки по Вашей подсказке уже внесены и всё работает! Еще бы они не работали) * Теперь можно и обсуждать детали по основному делу, но подскажите, в каком месте форума это лучше делать? (в личке, вроде бы, не совсем удобно технически, а тайны особой из этого мы не делаем, вот и предположил, что можно и в форуме, но то, как скажете) Тему создайте под это дело, хотя бы что бы описать пожелания по скрипту) В личку да, неудобно - там ограничения по тексту. Мало ли)
| | |
|