Special Chars - мод Специальные символымод реализует возможность вставки специального символа в сообщение при создании темы c панели bbcode. имеет настройки в админке. прост в установке и использовании.
по умолчанию в моде не было русского перевода и файла (правок) для стилей на основе subsilver2, поэтому была переведена вся часть настроек (кроме названий символов) и добавлены правки стиля.
Сканы работы мода:





Итак, если кого заинтересовало сие творение - ставим.
1. Скачать мод из архива сайта:
скачать из архива сайтараспаковать и содержимое папки
root загрузить в корень сайта (где файл config.php).
в паке присутствует папка
umil - библиотека данных - если она у вас уже есть, копировать на сервер её не надо.
2. Редактируем файлы форума:
Открыть
posting.phpНайти
Вставить после найденного
Код: Выделить всё
// Mod : Special_chars --------------------------------
display_special_chars();
// Mod : Special_chars --------------------------------
Открыть
includes/constants.phpНайти
Вставить после найденного
Код: Выделить всё
// Mod : Special_chars --------------------------------
define('SPECIAL_CHARS_TABLE', $table_prefix . 'special_chars');
// Mod : Special_chars --------------------------------
Открыть
includes/functions_display.phpНайти
Вставить перед найденным
Код: Выделить всё
// Mod : Special_chars --------------------------------
function display_special_chars()
{
global $db, $template, $user, $cache, $config;
if (isset($config['sc_chars_on_off']) && $config['sc_chars_on_off'])
{
// Add lang
$user->setup('mods/info_acp_special_chars');
if (($special_chars = $cache->get('_special_chars')) === false)
{
$and_chars_type = !empty($config['sc_chars_type']) ? ' AND chars_type = ' . (int) $config['sc_chars_type'] : '';
$sql = 'SELECT chars_iso, chars_display, chars_langname
FROM ' . SPECIAL_CHARS_TABLE . '
WHERE chars_display = 1'.
$and_chars_type . '
ORDER BY chars_order ASC';
$result = $db->sql_query($sql);
$count = 0 ;
$special_chars = array(); // Reset
while ($row = $db->sql_fetchrow($result))
{
$special_chars[] = array(
'chars_iso' => $row['chars_iso'],
'chars_langname' => $row['chars_langname'],
'count' => $count,
);
$count++;
}
$db->sql_freeresult($result);
// Cache displayed special chars
$cache->put('_special_chars', $special_chars);
}
// Make table and send data...
if (sizeof($special_chars))
{
foreach ($special_chars as $row)
{
$template->assign_block_vars('td', array(
'ISO' => $row['chars_iso'],
'LANGNAME' => (isset($user->lang[$row['chars_langname']])) ? $user->lang[$row['chars_langname']] : $user->lang['SC_NO_LANGNAME'],
'ADD_ROW' => ($row['count'] % 22 == 0) ? '</tr><tr>' : '',
));
}
$template->assign_vars(array(
'S_SPECIAL_CHARS' => true,
));
}
}
}
// Mod : Special_chars --------------------------------

для стилей на основе prosilver
Открыть
styles/prosilver/template/posting_buttons.htmlНайти
Вставить перед найденным
Код: Выделить всё
<!-- IF S_SPECIAL_CHARS -->
<!-- INCLUDE special_chars.html -->
<!-- ENDIF -->
Найти
Вставить перед найденным
Код: Выделить всё
<!-- IF S_SPECIAL_CHARS --><input type="button" class="button2" name="bbchars" id="bbchars" value="Ω" style="font-weight:bold; width: 30px" onclick="change_chars();" title="{L_BBCODE_CHARS_HELP}" /><!-- ENDIF -->
Открыть
styles/prosilver/template/editor.jsНайти
Вставить перед найденным
Код: Выделить всё
/**
* Help zoom function...
* Mod : Special_chars
*/
function zoom(chr)
{
var zooms=document.getElementById("zoom");
var zoom=zooms.firstChild;
if(zoom.nodeType==1) {zoom=zooms.childNode[1]};
var size=zoom.length;
if (chr.value !=" ")
{
document.getElementById("zoom").firstChild.replaceData(0, size, chr);
}
else
{
document.getElementById("zoom").firstChild.replaceData(0, size, " ");
}
}

для стилей на основе subsilver2
Открыть
styles/subsilver2/template/posting_buttons.htmlНайти
Код: Выделить всё
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/editor.js"></script>Вставить после найденного
Код: Выделить всё
<!-- IF S_SPECIAL_CHARS -->
<!-- INCLUDE special_chars.html -->
<!-- ENDIF -->Найти
Код: Выделить всё
</td>
</tr>
<!-- IF S_BBCODE_ALLOWED and .custom_tags -->Вставить перед найденным
Код: Выделить всё
<!-- IF S_SPECIAL_CHARS --><input type="button" class="btnbbcode" name="bbchars" value="Ω" style="font-weight:bold; width: 30px;" onclick="openbox('block1000'); return false" title="{L_BBCODE_CHARS_HELP}" /><!-- ENDIF -->Открыть
styles/subsilver2/template/overall_header.htmlНайти
Вставить перед найденным
Код: Выделить всё
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
function openbox(id){
display = document.getElementById(id).style.display;
if(display=='none'){
document.getElementById(id).style.display='block';
}else{
document.getElementById(id).style.display='none';
}
}
</script>если у вас на форуме уже подключена библиотека - строчку подключения
Код: Выделить всё
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>прописывать не надо.
данная правка регулирует размер значка символа в открывающемся блоке выбора при создании темы. специально вынесено в стилевой файл, чтобы можно было "поэкспериментировать" без очистки кэша и правки html-шаблонов.
Открыть
styles/subsilver2/theme/stylesheet.cssНайти
Вставить после найденного
3. Завершение установки:
Для завершения установки необходимо запустить скрипт-инсталлятор по адресу
после отработки скрипта удалите файл install_sc.php с сервера.
Почистить кэш.
Настройки мода находятся по адресу
Административный раздел -
Модули -
Специальные символы.
Всё. Успешной вам установки и применения.