как ето сделать?? чтобы с кодом [w]текс[/w]
получилось ето??
КреатиВ.ТуТ |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » КреатиВ.ТуТ » IPB 1.3 » Предупреждения
как ето сделать?? чтобы с кодом [w]текс[/w]
получилось ето??
http://www.ibresource.ru/db/563/ или расказать подробно как его поставить от сюда
2 Golsh:
http://www.ibresource.ru/db/563/ или расказать подробно как его поставить от сюда
Пмоему эту фишку неполучится поставить т.к. его надо прописывать в php файл, а у нас нет доступа к нему.
Могу предложить другую вещь, смотри картинку ниже, предуприждения ставятся через админку каждому пользователю в отдельности, причём текст можешь писать любой.
хм...да идей в етом плане тыша просто хотелось не просто надпись предупреждение а вот такую фичу...может что Експерт скажет)
вообщем, есть идея, и реализовать я знаю как, но становится другой вопрос: нагруженность форума, ведь скрипт будет перебирать каждое сообщение пользователя, которое в свою очередь может быть большим, поэтому комп пользователя просто будет захлебываться от скриптов. НО это всё догадки, надо проверить, так что, как только будет свободное от работы время, я попробую написать...
да и еще, я знаю как написать для IExplorer-а, но не факт что Опера будет работать с тем же скриптом, поэтому надо будет тестировать и исправлять.
2 Golsh:
Скины и Шаблоны -> Стили
Дописываем:
.warning {padding:3px; background-color:#fcbfbf; border: 1px dashed red;}
Скины и Шаблоны -> HTML Шаблоны -> Настройка HTML -> Редактирование шапки форума -> Board Header (logo, links, etc)
Находим:
<script language='JavaScript' type="text/javascript">
<!--
Ниже дописываем:
function NewTagsShow(s){
while(s.indexOf("[w]")!=-1) {
s = s.replace("[w]","<br /><span style='color:red'><b>Предуприждение:</b></span><div class='warning'><span style='color:red'>");
s = s.replace("[/w]","</span></div>");
}
document.write(s);
}
Скины и Шаблоны -> HTML Шаблоны -> Настройка HTML -> Topic view Section -> Post Entry
Находим:
{$post['post']}
Заменяем на:
<script type='text/javascript'>
<!--
NewTagsShow("{$post['post']}");
//-->
</script>
Скины и Шаблоны -> HTML Шаблоны -> Настройка HTML -> Post Screen Sections -> +-- Post: Topic Summary Body
Нажодим:
{$data['post']}
Заменяем на:
<script type='text/javascript'>
<!--
NewTagsShow("{$data['post']}");
//-->
</script>
Модернизированно из скрипта тегов
товарища [span style='color:orange']Maslo.[/span]
Отредактировано Grin (2006-04-24 23:54:32)
Доработка, если вы нехотите чтобы пользователи пользовались этим тегом то вместо:
<script type='text/javascript'>
<!--
NewTagsShow("{$post['post']}");
//-->
</script>
ставим:
<script type='text/javascript'>
<!--
if ("{$author['member_group']}" == "Группа: Admin"){
NewTagsShow("{$post['post']}");}
else if ("{$author['member_group']}" == "Группа: Members"){
NewTagsShow("{$post['post']}");}
else {document.write("{$post['post']}");}
//-->
</script>
то что выделено красым меняем на название вашей группы, если вы хотите чтоб больше 2х групп пользовались тегом то перед строкой:
else {document.write("{$post['post']}");}
//-->
</script>
ставим:
else if ("{$author['member_group']}" == "Группа: Название_группы"){
NewTagsShow("{$post['post']}");}
Так это и есть скрипт Масло?
На самом деле я уже такой сделал, только с заменой таблиц quote, code, HTML, SQL.
У него есть недостатки:
1. Если отключить поддержку джава скриптов - форум будет нечитабелен.
2. Если использовать doHTML в посте, И в этом коде будут переносы строки или кавычки двойные, то пост не будет виден - это не удобно, а если использовать в dohtml скрипты, то тоже не будет видно - это плохо.
3. К примеру пост будет слишком большой, "многабукав" как говорится, то страничка будет грузится еще дольше.
Именно по этому я хочу избавится от своего скрипта на замену quote и т.п. и написать альтернативу исключающую эти проблеммы. (кроме последней, с ней никак)
Кстати, как Maslo обошел проблемму:
"Обычный юзер ставит себе warning"?
Ведь кнопку ему убрать то мы можем, а если он ручками теги напишет?
2 ExperT:
Так это и есть скрипт Масло?
Ну да большая часть.
Кстати, как Maslo обошел проблемму:
"Обычный юзер ставит себе warning"?
У Maslo нет этого тега, у него есть:
1) Тег
2) Тег [offtop][/offtop]
3) Выравнивание текста:
[center][/center] - по центру
[right][/right] - по правому борту
4) Горизонтальная линия
"Обычный юзер ставит себе warning"?
Ведь кнопку ему убрать то мы можем, а если он ручками теги напишет?
Ненапишет, посмотри пост выше там я избавился от [w][/w] для пользователей. :acute:
Я думал логика должна быть немного другая...
получается что только админы и пользователи видят предупреждения, видеть должны все, но пользоваться ими НЕ все.
Т.е. Админ может юзеру поправить сообщение и написать там предупреждение, вот такой вариант должен быть походу единственным.
2 ExperT:
Я думал логика должна быть немного другая...
получается что только админы и пользователи видят предупреждения, видеть должны все, но пользоваться ими НЕ все.
Т.е. Админ может юзеру поправить сообщение и написать там предупреждение, вот такой вариант должен быть походу единственным.
Да кстати ты прав, а то получается что админ сам сибе предуприждение ставит. :mda:
Тогда видимо надо както использовать это:
Это сообщение отредактировал Grin - Mon, 24.04.2006 - 23:54
Вот накалякал другой способ, изключающий две первые проблеммы, которые я перечислил, НО он не написан для замены значения поста, просто способ, его нужно сделать, на что у меня времени нет =(.
Grin - если хочешь/можешь, доделай его для изменения значения поста.
Вот полный код хтмл скранички, т.е. создай файл с вставь туда код, запусти через браузер. (я пробовал только на IE, других на работе нету)
<body>
<div id="postvalue">содержимое ответа</div>
</body><script>
// одна из моих стандартных функций, берет элемент по айди со странички
function my_getbyid(id) {
itm = null;
if (document.getElementById) {
itm = document.getElementById(id);
}
else if (document.all) {
itm = document.all[id];
}
else if (document.layers) {
itm = document.layers[id];
}
return itm;
}// функция замены значения
function changePostValue() {
// забираем объект
obj = my_getbyid('postvalue');
// забираем значение
postValue = obj.innerHTML;
// изменяем значение
postValue = postValue.replace("содержимое ответа","исправленное содержимое ответа");
// присваиваем
obj.innerHTML = postValue;
}// запускаем функцию замены
window.onload = changePostValue();</script>
Еще есть один способ, но он не исключает первой проблеммы.
Когда ввожу
<script type='text/javascript'>
<!--
NewTagsShow("{$post['post']}");
//-->
</script>
Пропадают все сообжения...Что делать?
<script type='text/javascript'>
<!--
NewTagsShow("{$data['post']}");
//-->
</script>
Такой не работает.....
_____
А такой :
<script type='text/javascript'>
NewTagsShow("{$data['post']}");
</script>
ПАШЕТ!
2 iNsaNe^:
Я непонял вы разобрались? А то в первом посте вы пишите {$post['post']} а во втором {$data['post']}.
Отредактировано Grin (2006-04-25 19:35:38)
Вы здесь » КреатиВ.ТуТ » IPB 1.3 » Предупреждения