Фильтр по:
  

  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Форум » Антимат для форума (Как сделать?)
Антимат для форума
Дата: Пятница, 04.05.2012, 19:16 |
allmonte
Сержант
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 1
Статус: 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>


сначала обрамляет а при введении дальше вставляет теги без конца...


 
Дата: Пятница, 04.05.2012, 20:53 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


allmonte,
Quote (allmonte)
сначала обрамляет а при введении дальше вставляет теги без конца...

Вам поможет мое мое мнение о данном скрипте? Оно не приличное, почти матерное.

Ответ то же, проверяйте на наличие слов уже обрамленных тегами и пропускайте их .

Типа:
Code
if(a.search(b[i])!= -1&&a.search('<b>'+b[i])==-1){...}

...


 
Дата: Пятница, 04.05.2012, 21:01 |
allmonte
Сержант
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 1
Статус: 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
 
Дата: Пятница, 04.05.2012, 21:09 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


allmonte,
Quote (allmonte)
я не в коей мере не хотел огорчать вас, я понял что вы склонны( и это правильно ) применит чек сабмит, но он тоже выдает не совсем корректно:

Да это тоже самое, единственное, не по нажатию работает, а только один раз, при отправке.

Quote (allmonte)
причем сразу по 3 тега

- Ну, как вы ввели так и сработало:
Quote
var badwords=new Array('мат','мат','мат','мат','прочие_слова');

- очень странно, что только 3 а не четыре )))
...

В вашем случае нужно бить все сообщение на слова, и сравнивать каждое со списком. Или сразу убирать/менять слова из списка на звёздочки ... иначе он будет постоянно находить первое слово ...
...


 
Дата: Пятница, 04.05.2012, 21:27 |
allmonte
Сержант
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 1
Статус: Offline


спасибо, оставил ваш вариант.

 
Дата: Пятница, 04.05.2012, 22:06 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


allmonte,
Quote (allmonte)
спасибо, оставил ваш вариант.

О, или вот так:
Code
if(a.search(b[i]+' ')!=-1){
  $(this).val(a.replace(b[i]+' ','<b>'+b[i]+'</b> '));return false;}
};

... Пробелы после слова ...


 
Дата: Пятница, 04.05.2012, 22:46 |
allmonte
Сержант
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 1
Статус: Offline


Quote (likbezz)
... Пробелы после слова ...

Спасибо, я пробовал с пробелами но добавлял только к заменЁнному, попробую еще и к заменЯемуму слову тоже добавить.


 
Дата: Пятница, 04.05.2012, 22:53 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


allmonte,
Quote (allmonte)
Спасибо, я пробовал с пробелами но добавлял только к заменЁнному, попробую еще и к заменЯемуму слову тоже добавить.

Нет, не так .. к поисковому и заменяемому.
Типа:
http://likbezz.ru/_example/jscript/2012/antimat/antimat_v1.html


...

Прикрепления: 0451713.png (6.9 Kb)

 
Дата: Суббота, 05.05.2012, 07:48 |
allmonte
Сержант
Группа: Проверенные
Сообщений: 22
Награды: 0
Репутация: 1
Статус: 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
 
Дата: Среда, 18.07.2012, 14:56 |
Чур
Лейтенант
Группа: Проверенные
Сообщений: 69
Награды: 0
Репутация: 1
Статус: Offline


Всем доброго дня!

Уважаемый likbezz, подскажите пожалуйста, возможно ли в Вашем "антимате" создать слова-исключения?

У нас не совсем обычное использование "антимата". Проблема в следующем. Помните наш разговор по сайту Politicon1.at.ua? Там, по ссылке (пост 180), Демчик попытался пояснить суть проблемы, но сейчас, после моего отпуска, мы ещё раз вникли в то, почему там не срабатывает два скрипта одновременно (Ваш, по поиску и выведению фото в ленте RSS, и стоявший уже у нас "антимат") и нашли причину загвоздки.

Напомню. Для того, чтобы была возможность копировать страницу с лентой новостей и вставлять эту копию в архив сайта, нам понадобилась блокировка обновления ленты RSS и мы для этих целей поставили "антимат", чтобы заменить слова "rssi" в ссылках на эти потоки RSS-новостей. Всё работало нормально, но потом возникло желание исправить недоработку в RSS-потоке с сайта Тимошенко (там не выводились фотографии) и мы для этого использовали Ваш скрипт, который справился с задачей на отлично, но при одном условии - работает или он, или "антимат". Вместе работать не хотят. Если стоит "антимат", то не ищутся фотографии.

Думали, искали и нашли. "Антимат", по нашей задумке, менял слово "rssi" на слово "bad" в ссылке на ленту новостей. А Ваш скрипт тоже берёт за основу поиска код, в котором присутствует такое буквосочетание, как "rssi" (в скрипте прописано так: '#rssit_19 img'). Получается, что "антимат" меняет в коде Вашего скрипта эти четыре буквы (rssi) на буквы "bad" и Ваш скрипт перестаёт работать.

Отсюда и возник вопрос для этого топика, - как с помощью скрипта создать слова-исключения и запретить "антимату" заменять слово "rssit", но продолжать заменять слова "rssi" (без t)?

* Возможно, эта проблема имеет и другое решение, но мы его пока не знаем и поэтому идём по тому пути, который видим. Если кто подскажет другой способ решения, будем признательны.

** Уважаемый likbezz, в свете того нашего разговора по созданию скрипта по архивации материала - как нам сейчас представляется, мы не можем перейти к этапу создания скрипта по архивации потоков RSS, не решив вышеописанной проблемы, т.к. её элементы являются составляющими при архивации.


 
Дата: Среда, 18.07.2012, 15:15 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: 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>


 
Дата: Четверг, 19.07.2012, 21:58 |
Чур
Лейтенант
Группа: Проверенные
Сообщений: 69
Награды: 0
Репутация: 1
Статус: Offline


Какие-то вы сложные пути ищите

Понимаю, всё гениальное просто. Но к сожалению, мы не гении. sad

Правки по Вашей подсказке уже внесены и всё работает! respect

* Теперь можно и обсуждать детали по основному делу, но подскажите, в каком месте форума это лучше делать? (в личке, вроде бы, не совсем удобно технически, а тайны особой из этого мы не делаем, вот и предположил, что можно и в форуме, но то, как скажете)


Сообщение отредактировал Чур - Четверг, 19.07.2012, 22:02
 
Дата: Четверг, 19.07.2012, 23:14 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Чур,
Правки по Вашей подсказке уже внесены и всё работает!

Еще бы они не работали)
* Теперь можно и обсуждать детали по основному делу, но подскажите, в каком месте форума это лучше делать? (в личке, вроде бы, не совсем удобно технически, а тайны особой из этого мы не делаем, вот и предположил, что можно и в форуме, но то, как скажете)

Тему создайте под это дело, хотя бы что бы описать пожелания по скрипту)
В личку да, неудобно - там ограничения по тексту. Мало ли)


 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Форум » Антимат для форума (Как сделать?)
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:


Мобильная версия