Chumaster59
Пользователь
##############################################################
## Название: Разделение смайликов на группы (как на тапках)
## Автор: kaspergreen
## Адаптация: Chumaster59 ( _Xz_ build_smilies.php)
## Сложность: Норм
## Время: 5мин
##############################################################
Выполнить запрос в БД
Открыть posting.php и заменить
на
Открыть includes/bbcode.php и заменить
на
Открыть и заменить содержимое includes/datastore/build_smilies.php на
Открыть templates/default/posting_smilies.tpl и найти
вставить после
изменить кодировку на UTF-8
или возимся с лангами
заменяем слово Стандартные например на {L_SMILES1} а Anime на {L_SMILES2}
в оба lang_main.php добавляем в конец
Всё сохраняем и закрываем
В таблицу bb_smilies БД добавляем новые смайлы с типом 2 после чего выполняем Datastore в админке
-----
Дополнение для админки (20.09.2011)
Открыть оба lang_admin.php
найти
вставить на следующею строку
Открыть templates/admin/admin_smilies.tpl
найти
вставить после
Открыть admin/admin_smilies.php
Найти
вставить после
Найти
вставить на линии после
Найти
вставить после
Ниже найти
вставить после
Найти два раза
вставить на линии после emoticon
Найти
вставить на линии после
всё сохраняем и закрываем
## Название: Разделение смайликов на группы (как на тапках)
## Автор: kaspergreen
## Адаптация: Chumaster59 ( _Xz_ build_smilies.php)
## Сложность: Норм
## Время: 5мин
##############################################################
Выполнить запрос в БД
Код:
ALTER TABLE `bb_smilies` ADD `type` TINYINT( 1 ) NOT NULL DEFAULT '1'
PHP:
if ($mode == 'smilies')
{
generate_smilies('window');
exit;
}
PHP:
if ($mode == 'smilies')
{
if(isset($_GET['smtid'])) $smtid = (int)$_GET['smtid'];
else $smtid=1;
switch($smtid) {
case 1:
$smtype = 1;
break;
case 2:
$smtype = 2;
break;
default:
$smtype = 1;
}
generate_smilies('window', $smtype);
exit;
}
PHP:
function generate_smilies($mode)
{
global $bb_cfg, $template, $lang, $images, $user, $datastore;
$inline_columns = 4;
$inline_rows = 7;
$window_columns = 8;
if ($mode == 'window')
{
$user->session_start();
}
$data = $datastore->get('smile_replacements');
if ($sql = $data['smile'])
PHP:
function generate_smilies($mode, $smtype=1)
{
global $bb_cfg, $template, $lang, $images, $user, $datastore;
$inline_columns = 4;
$inline_rows = 7;
$window_columns = 8;
if ($mode == 'window')
{
$user->session_start();
}
$data = $datastore->get('smile_replacements');
if ($sql = $data['smile'][$smtype])
PHP:
<?php
if (!defined('BB_ROOT')) die(basename(__FILE__));
global $bb_cfg;
$smilies = array();
$rowset = DB()->fetch_rowset("SELECT * FROM ". BB_SMILIES ." ORDER BY smilies_id");
foreach ($rowset as $smile)
{
$smilies['orig'][] = '#(?<=^|\W)'. preg_quote($smile['code'], '#') .'(?=$|\W)#';
$smilies['repl'][] = ' <img class="smile" src="'. $bb_cfg['smilies_path'] .'/'. $smile['smile_url'] .'" alt="'. $smile['emoticon'] .'" align="absmiddle" border="0" />';
$smilies['smile'][$smile['type']][] = $smile;
}
$this->store('smile_replacements', $smilies);
Код:
<tr>
<th>{L_EMOTICONS}</th>
</tr>
Код:
<tr>
<td class="row2" align=center><a href=posting.php?mode=smilies&smtid=1>Стандартные</a> | <a href=posting.php?mode=smilies&smtid=2>Anime</a></td>
</tr>
или возимся с лангами
заменяем слово Стандартные например на {L_SMILES1} а Anime на {L_SMILES2}
в оба lang_main.php добавляем в конец
PHP:
//Группы смайлов
$lang['SMILES1'] = 'Стандартные';
$lang['SMILES2'] = 'Anime';
Всё сохраняем и закрываем
В таблицу bb_smilies БД добавляем новые смайлы с типом 2 после чего выполняем Datastore в админке
-----
Дополнение для админки (20.09.2011)
Открыть оба lang_admin.php
найти
PHP:
$lang['SMILEY_EMOT']
PHP:
$lang['SMILEY_TYPE'] = 'Номер группы';
найти
Код:
<tr>
<td class="row2">{L_SMILEY_EMOT}</td>
<td class="row2"><input class="post" type="text" name="smile_emotion" value="{SMILEY_EMOTICON}" /></td>
</tr>
Код:
<tr>
<td class="row2">{L_SMILEY_TYPE}</td>
<td class="row2"><input class="post" type="text" name="smile_type" value="{SMILEY_TYPE}" /></td>
</tr>
Найти
PHP:
$smile_emotion = ( isset($_POST['smile_emotion']) ) ? trim($_POST['smile_emotion']) : trim($_GET['smile_emotion']);
PHP:
$smile_type = ( isset($_POST['smile_type']) ) ? trim($_POST['smile_type']) : trim($_GET['smile_type']);
PHP:
SET code = '" . DB()->escape($smile_code) . "', smile_url = '" . DB()->escape($smile_url) . "', emoticon = '" . DB()->escape($smile_emotion) . "'
PHP:
, type = '" . DB()->escape($smile_type) . "'
PHP:
$smile_emotion = ( isset($_POST['smile_emotion']) ) ? $_POST['smile_emotion'] : $_GET['smile_emotion'];
PHP:
$smile_type = ( isset($_POST['smile_type']) ) ? $_POST['smile_type'] : $_GET['smile_type'];
PHP:
$smile_emotion = trim($smile_emotion);
PHP:
$smile_type = trim($smile_type);
PHP:
$sql = "INSERT INTO " . BB_SMILIES . " (code, smile_url, emoticon)
PHP:
, type
PHP:
VALUES ('" . DB()->escape($smile_code) . "', '" . DB()->escape($smile_url) . "', '" . DB()->escape($smile_emotion) . "'
PHP:
, '" . DB()->escape($smile_type) . "'