ГлавнаяБлогКарты Warcraft 3Гайды для первой ДотыГайды для Доты 2 [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Зарегистрированные пользователи не видят всплывающей рекламы
Страница 1 из 11
Форум » Работа сайта » Предложения по улучшению сайта » [Заброшено Автором] Полезные скрипты для форума
[Заброшено Автором] Полезные скрипты для форума
Дата: Четверг, 11.06.2009, 14:58 | Сообщение # 1
> /dev/null
Проверенные
Сообщений: 1282
Награды: 10
Это одна из первых моих тем, более ранние по-видимому удалены.
Оставлю это здесь:

Для того чтобы ссылка не потерялась. Сентиментальненько =)



Короче, я тут новую форму добавления ответа замутил, еще не тестил, но должно работать.
Вотъ код:

Код

<div>
<!--Отправка на ctrl+enter-->
<script type="text/javascript">       
function ctrl_enter(e, form)       
{       
if (((e.keyCode == 13) || (e.keyCode == 10)) && (e.ctrlKey == true)) document.all.addform.submit()       
}       
</script>
<!--/Отправка на ctrl+enter-->

<!--translit-->
<script type="text/javascript" src="http://kara-kula.ucoz.ru/JS/Translit/alltranslit.js"></script>
<!--/translit-->

<?if($ERROR$)?>
       <table>
       <tr id="frM1">
       <td colspan="2" align="center" class="gTableError" id="frM2">$ERROR$</td>
       </tr>
       </table>
<?endif?>

<?if($_USER$)?>
       <table>
       <tr id="frM3">
       <td class="gTableLeft" id="frM4">Имя:</td>
       <td class="gTableRight" id="frM5">$_USER$</td>
       </tr>
       </table>
<?endif?>

<fieldset>
<legend><?if($_THREAD_NAME$)?>$_THREAD_NAME$<hr>$_THREAD_DESCR$<?else?>$FORM_TITLE$<?endif?></legend>

<?if($_POLL_QUESTION$)?>       

<fieldset>
<legend>$_POLL_QUESTION$</legend>
       $_POLL_ANSWERS$
</fieldset>
<fieldset>
<legend>Опции опроса:</legend>
$_POLL_ONLY_OPT$<label for="pollonly">Только опрос (писать ответы в теме будет нельзя)</label>
<br />
$_POLL_MULTI_OPT$<label for="pollmulty">Включить возможность выбора нескольких вариантов ответов</label>
<br />
$_POLL_PERIOD_OPT$ Период голосования (0 - без ограничений)
</fieldset>
<?endif?>

$BBCODES$
<table>
<tr>
<td width="100%" valign="top" id="frM58">
<a href="javascript:t.go(0)" title="Перевести в кириллицу">Транслит=>кирилица</a>
<span OnKeyPress="return ctrl_enter(event, this.form);">
$_MESSAGE$
</span>

<input style="width:110px;" id="frF15" class="postPreview" type="button" value="Просмотреть" onclick="prepost();" />
<input type="submit" id="frF16" name="sbm" style="width:150px;font-weight:bold;" class="postSubmit" value="$SUBMIT_SIGN$" />
<input style="width:110px;" id="frF17" class="postReset" type="reset" value="Отменить" /></div>
</td>

<td valign="top">
<fieldset>
<legend>Опции сообщения:</legend>
<?if($_HTML_OPT$)?>
$_HTML_OPT$ <label for="ahtml">Включить HTML теги</label><br />
$_MAKE_BR_OPT$ <label for="frmt">тегом <b><BR></b></label><br>
<?endif?>
<?if($_EDITED_OPT$)?>
$_EDITED_OPT$ <label for="edited">Надпись "Отредактировано"</label><br />
<?endif?>
<?if($_SMILES_OPT$)?>
$_SMILES_OPT$ <label for="smon">Включить смайлы</label><br />
<?endif?>
<?if($_SIGNATURE_OPT$)?>
$_SIGNATURE_OPT$ <label for="sgon">Включить подпись</label><br />
<?endif?>
<?if($_SUBSCRIBE_OPT$)?>
$_SUBSCRIBE_OPT$ <label for="sbon">Уведомления на e-mail при ответах</label><br />
<?endif?>
</fieldset>

<?if($_FILES_UPLOADER$)?>
<fieldset>
<legend>Файлы:(не более <b>$FILE_MAX_SIZE$</b>Kb)</legend>
$_FILES_UPLOADER$
</fieldset>
<?endif?>

<?if($MODER_OPTIONS_FLAG$)?>
<fieldset>
<legend>Опции Темы</legend>
<?if($_FIRSTONTOP_OPT$)?>
$_FIRSTONTOP_OPT$ <label for="firstontop">Первое сообщение ― щапка</label><br />
<?endif?>       
<?if($_ONTOP_OPT$)?>
$_ONTOP_OPT$ <label for="isontop">Тема всегда сверху</label><br />
<?endif?>
<?if($_CLOSED_OPT$)?>
$_CLOSED_OPT$ <label for="isclosed">Закрытая тема</label><br />
<?endif?>
</fieldset>
<?endif?>

</td></tr>
</table>

</fieldset>

</div>


Должно работать, но хз. советую все оформить таким образом:

Код
<?if($GROUP_ID$=4)?>
Тот код, что я написал выше
<?else?>
Существующий код добавления сообщения, который стоит на сайте сейчас.
<?endif?>

Вместо четверки можно поставить id любой группы, группа админа чаще всего имеет id 4

Добавлено (11.06.2009, 14:40)
---------------------------------------------
Воть скрин с моего сайта:

Добавлено (11.06.2009, 14:58)
---------------------------------------------
На цвет не смотрите, он задан в ксс, если возникнут проблемы с настройкой, пишите в асю.
 
Дата: Пятница, 19.06.2009, 13:38 | Сообщение # 2
> /dev/null
Проверенные
Сообщений: 1282
Награды: 10
Хе, все пасибки в репутацию!))
Щас опубликую еще несколько полезностей для форума...



Вы не пробовали перетащить скажем чат между блоками дополнительной информации и блоком с форумами?
Пишем в шаблоне форума:

Код

<div id="block1" style="display:none;">        
<br><table>        
<tr><td style="width: 500px">        
<fieldset style="border: 1px solid #40453F">        
<legend>Миничат:</legend>$CHAT_BOX$</fieldset> /*добавляем чат*/        
</td>        
<td valign="top" style="width: 400px; valign: top">        
<fieldset style="border: 1px solid #40453F"><legend>Новое на форуме:</legend>$MYINF_6$</fieldset> /*информер, показывающий новые посты, для улучшения общего вида*/        
<a class="funcLink" onclick="window.location.href='http://warlibrary.ucoz.ru/forum/0-0-0-30';return false;" href="javascript://">Отметить все сообщения прочитанными</a></td></tr></div> /*Думаю всё ясно)))*/        

<!--скрипт-заменитель-->        
<script type="text/javascript">                 
var n1=document.getElementById('block1'),newCODE=n1.innerHTML,element,siteDIVs=document.getElementsByTagName("div");                  
n1.parentNode.removeChild(n1);                 
for(var std_f=0;std_f<siteDIVs.length;std_f++){                 
if(siteDIVs[std_f].className=="funcBlock"){                 
element=document.createElement("div");                 
element.innerHTML=newCODE;                 
siteDIVs[std_f].parentNode.replaceChild(element,siteDIVs[std_f]);                 
}}                 
</script>


Воть пример, как я реализовал на одном из сайтов, где я помогал с дизом:




А воть ище:
Вам не нравится надпись "Последний рекорд посещаемости...." ?
Избавимся от неё!
Можно так(в шапку шаблона форума):
Код

<style>      
.statsRecord {display: none}      
</style>

А можно и так(в шаблон форума):
Код

<script type="text/javascript">               
var newCODE='ВАШ КОД',element;               
siteDIVs=document.getElementsByTagName("div");               
for(var std_f=0;std_f<siteDIVs.length;std_f++){               
if(siteDIVs[std_f].className=="statsRecord"){               
element=document.createElement("div");               
element.innerHTML=newCODE;               
siteDIVs[std_f].parentNode.replaceChild(element,siteDIVs[std_f]);               
}}      
</script>




Хочется систему опыта как на многих не-укозовских сатйах? Да пожалуйста!

Код
<b>Опыт:</b> <script language="JavaScript">posts=$POSTS$; var exp=Math.floor(posts*5); document.write(exp); /*пишем на странице кол-во экспы*/      
if(exp>=250000) document.write('<br><b>ВЫСШИЙ УРОВЕНЬ</b>')      
else if(exp>=10000) document.write('<br><b>Уровень 6</b>')      
else if(exp>=5000) document.write('<br><b>Уровень 5</b>')      
else if(exp>=2500) document.write('<br><b>Уровень 4</b>')      
else if(exp>=500) document.write('<br><b>Уровень 3</b>')      
else if(exp>=100) document.write('<br><b>Уровень 2</b>')      
else if(exp<100) document.write('<br><b>Уровень 1</b>');      
</script><br>


Поясню: за 1 пост начисляется 5 едениц опыта. соответсвенно вы можете отредактировать и сделать другую систему начисления.
НО
Минус в том, что это работает только в двух местах: в шаблоне вида сообщений и в шаблоне вида личной странички пользователя.
Я лично настоятельно рекомендую использовать какую нибудь переменную(например яху идентификатор или флаг страны) для хранения данных об опыте. (В этом случае, незабудьте скрыть поле идентификатора в шаблоне редактирования профиля)






Фишечка)
Вы когда нибудь пробовали ставить в шаблоне вида материалов форума ствить условный оператор?
Код
<?IF($USER_STATUS$=Online>блаблабла<?else?>другое блаблабла<?endif?>

Разумеецо ничего у вас не вышло! а у меня вышло, т.к. я всё сделал криво))

Я поставил прверку, тоись сравнивал, равно ли узер статус онлайн.
Вопщем теория на то и теория, чтоб забить на неё, и начать практиковать.
Код
<a class="postUser" href="javascript://" onClick="emoticon('[b]$USERNAME$[/b],');return false;">      
<script type="text/javascript">      
var status='$USER_STATUS$';      
if(status.toLowerCase()=='<span class="statusonline">online</span>') document.write('<float style="color: green">$USERNAME$</float></a>')            
else document.write('$USERNAME$</a>');      
</script>

Этот скрипт делает в сообщении ник юзера, который онлайн, зелёным, а офлайн обычным.

Таким образом, можно задавать проверку. Т.е. в "голом виде" код такой:
Код
<script type="text/javascript">      
var status='$USER_STATUS$';      
if(status.toLowerCase()=='<span class="statusonline">БЛАБЛА</span>') document.write('ЫЫЫЫ')      
else document.write('ЕЕЕЕ');      
</script>

Где вместо БЛАБЛА вы пишете то, что у вас отображается как статус пользователя онлайн(по умолчанию он пишет Online).
Вместо ЫЫЫЫ пишите то, что должно отображаться если юзер онлайн, вместо ЕЕЕЕ вы пишите если офлайн.
Код НЕ должен содержать одинарных кавычек ' !
Внимание!
Если вам просто надо заменить надпись из Online скажем в надпись ТуТ, то вам просто надо отредактировать в ксс класс
.statusonline {color: ЦВЕТ ОТОБРАЖЕНИЯ}
.statusoffline {color: ... }
Заменить же сами надписи вы можете просто в админ панели, в замене стандартных надписей.






Непросматриваемый профиль:

Вы бы хотели, чтоб ваш профиль ни у кого не открывался? Представляете, ваш друг-модератор открывает ваш профиль, чтобы приколосться, а видит системное сообщение Доступ запрещен? Причем выглядит оно и впрямь как системное(для опытных: не на alert).
Итак...

Для начала, зайдите к себе в профиль.
1) Во вкладке админ бара дизайн смотрим список переменных страницы, копируем $URI_ID$
В этом коде заменяем 000 на скопированный id
<?if($URI_ID$!="000")?>
2)и вставляем этот код в шаблон "Персональная страница пользователя" перед <body>
3)После </body> ставим:
Код

<?else?>     
<style type="text/css">
a:link {text-decoration:underline; color:#000000}
a:visited {text-decoration:underline; color:#000000}
a:hover {text-decoration:underline; color:#4D4F53}
a:active {text-decoration:underline; color:#4D4F53}
a.noun:link {text-decoration:none; color:#4D4F53}
</style>
<body>     
<table border="0" width="100%" height="88%">     
<tr>     
<td align="center">     
<div style="width:300px;">     
<div class="xw-tl">     
<div class="xw-tr">     
<div class="xw-tc xw-tsps">     
</div>     
</div>     
</div>     
<div class="xw-ml">     
<div class="xw-mr">     
<div class="xw-mc" style="padding:5px 2px;">     
<table border="0" width="100%">     
<tr>     
<td align="center" colspan="2" style="padding-bottom:5px;">     
<b><span style="font-size: 14pt; color: #43403B">Этот пользователя является Техническим Администратором
<br>
<a href="javascript:if(history.length>0) history.go(-1); else window.close();">Назад</a>
</span></b>
</td>     
</tr>     
</table>     

</div></div></div><div class="xw-bl"><div class="xw-br"><div class="xw-bc"><div class="xw-footer"></div></div></div></div>     
</div>     
</td></tr></table></body>     
<?endif?>

Для защиты страницы редактирования:
Заходим на страницу редактирования своих данных.
повторяем шаги 1-3. Тока тогда НИКТО не сможет редактировать, даже сам юзер. Разумеется, пока стоит этот код)



Красивый редирект:

Цитата

<html>
<head>
<script language="JavaScript">
setTimeout("location.replace('УРЛ')", 3000 );
</script>
</head>
<body>
<table border="0" width="100%" height="88%">
<tr>
<td align="center">
Сейчас вы будете перенаправлены...<br>
<img src="http://s21.ucoz.net/img/ma/m/i3.gif" border="0" width="220" height="19">
</td>
</tr>
</table>
</body>
</html>

Вместо 3000 поставьте нужную задержку редиректа(1сек=1000)
А вместо УРЛ поставьте ссылку куда перенаправлять.







Всем, кому помогло тыркать в плюсек репутации))


Сообщение отредактировал Mihahail - Пятница, 19.06.2009, 22:03
 
Дата: Суббота, 18.07.2009, 18:59 | Сообщение # 3
> /dev/null
Проверенные
Сообщений: 1282
Награды: 10
Админ, убедительная просьба переименовать тему.
ещё вот скриптик:
Всплывающие подсказки:

Создаем такой .xml файл с примерно таким содержанием:

Quote
<?xml version="1.0" encoding="UTF-8"?><ajax>
<cmd p="content"><![CDATA[
HTML код, если HTML не знаете, то просто в конце строки ставите тег <BR>

]]></cmd></ajax>


Затем даете ссылку:

Quote
<a href="javascript:" onclick="new _uWnd('ID ДЛЯ СКРИПТОВОГО ОБРАЩЕНИЯ','ЗАГОЛОВОК ОКНА',ШИРИНА,ВЫСОТА,{align: 'left'},{url:'АДРЕС СОХРАНЕННОГО .xml ФАЙЛА'});">ЗАГОЛОВОК ССЫЛКИ</a>

ПРИМЕР:
Code
<a href="javascript:" onclick="new _uWnd('info','Как качать из Opera',500,400,{align: 'left'},{url:'http://aonmap.ru/downloadhelp.xml'});">ЗАГОЛОВОК ССЫЛКИ</a>


Сообщение отредактировал Mihahail - Суббота, 18.07.2009, 19:00
 
Форум » Работа сайта » Предложения по улучшению сайта » [Заброшено Автором] Полезные скрипты для форума
Страница 1 из 11
Поиск: