Форумы xBB

Форумы xBB > BBCode и прочие языки упрощенной разметки

настройка визуального редактора

Автор: sc2r2bey. Последнее редактирование: 2009-07-28 23:37:43

как добавить или удалить кнопки в вашем визуальном редакторе, т.к. не хотел, чтоб пользователи использовали отдельные тэги?

19 комментариев

30.07.2009 11:35:02 #
Iceweasel dima
Пока это возможно только в коде файла xbb.php.
30.07.2009 12:11:41 #
Mozilla Firefox sc2r2bey
окей буду ковырять!
24.08.2009 00:51:05 #
Opera darkfell
А кто подскажет как вывести смайлы без ручного забивания в конфиг те чтоб автомат считывались имена файлов и создавался массив. И как добавить кнопку "еще смайлы", для вывода не вместившихся в "фавориты" (пример сайта http://www.33hochu.ru/includes/bbcode/)
24.08.2009 00:53:45 #
Opera darkfell
Нашел это, в результате пропадает редактор вообще
Решил заменить стандартные иконки на другие и обнаружил, что надо прописывать их руками в файл xbbeditor.config.php
 
крайне неудобно. поэтому комментируем или удаляем ручное описание
PHP
$smiles = array(
....
);

и добавляем
 
PHP
$pak = file('./images/smiles/Set_Smiles_Skull.pak');
$smiles=array();$_smiles=array();
foreach ($pak as $val) {
    $val = trim($val);
    if (! $val || '#' == $val{0}) {
        continue;
    }
    list($gif, $alt, $symbol) = explode('=+:', $val);
    $_smiles[]=array($gif,$symbol,$alt);
}
 
 
$max_c=4;
$l=0;$c=0;
for($n=0;$n<count($_smiles);$n++) {
 $smiles[$l][]=$_smiles[$n];
 if ($c==$max_c) {
    $c=0;$l++;
 }
 $c++;
}
24.08.2009 13:03:25 #
Iceweasel dima
Нашел это, в результате пропадает редактор вообще

Set_Smiles_Skull.pak должен существовать и быть правильным PAK-файлом.
 
Чтобы разбираться с ошибкой, надо знать сообщение об ошибке. Смотрите лог ошибок на своем сервере.
 
как добавить кнопку "еще смайлы", для вывода не вместившихся в "фавориты"

JS-функция xbb_smilesList() в файле xbb.php формирует HTML-код списка смайлов. Можете добавить туда, чего не хватает.
24.08.2009 16:50:58 #
Opera darkfell
Для вывода ссылки "еще смайлы" добавил след. код:
PHP
function xbb_smilesList() {
    xbb_buttonClick();
    var div = document.getElementById('hidden_div');
        if ('none' != div.style.display) {
        div.style.display = 'none';
        return false;
    }
    var coords = xbb_getCoords(document.getElementById('img_smile'));
    div.style.center = (coords['left']-50) + 'px';
    div.style.top = coords['top'] + coords['height'] + 'px';
    var html = '<table border="0" cellpadding="0" cellspacing="1">';
    for (var i = 0; bb.smiles[i]; ++i) {
        html += '<tr>';
        for (var j = 0; bb.smiles[i][j]; ++j) {
            html += '<td height="60" width="60" ><a href="#" '
                + 'onclick="xbb_insertSmile(\'' + bb.smiles[i][j][1]
                + '\')"><img alt="' + bb.smiles[i][j][1]
                + '" src="./images/smiles/' + bb.smiles[i][j][0]
                + '" border="0" /></a></td>';
        }
        html += '</tr>';
    }
    html += '<tr>        <td colspan=6><div style="CURSOR:hand;CURSOR:pointer;" onClick="xbb_all_smilesList()"><u>еще смайлов</div></td>     </tr>        </table>';
    div.innerHTML = html;
    div.style.display = '';
    return false;
}
 
// Выводит список смайлов
function xbb_all_smilesList() {
    xbb_buttonClick();
    var div = document.getElementById('hidden_div2');
        if ('none' != div.style.display) {
        div.style.display = 'none';
        return false;
    }
    var coords = xbb_getCoords(document.getElementById('img_smile'));
    div.style.left = coords['left'] + 'px';
    div.style.top = coords['top'] + coords['height'] + 'px';
    var html = '<table border="0" cellpadding="0" cellspacing="1" bgcolor=eeeeee><tr><td>';
    for (var i = 0; bb.smiles_all[i]; ++i) {
        html += '';
        for (var j = 0; bb.smiles_all[i][j]; ++j) {
            html += ' <a href="#" '
                + 'onclick="xbb_insertSmile(\'' + bb.smiles_all[i][j][1]
                + '\')"><img alt="' + bb.smiles_all[i][j][1]
                + '" src="./images/smiles/' + bb.smiles_all[i][j][0]
                + '" border="0" /></a>';
        }
        html += '';
    }
    html += '</td><tr></table>';
    div.innerHTML = html;
    div.style.display = '';
    return false;
}

Теперь осталось "подхватить" эти смайлы.. вот с этим пока проблемы
24.08.2009 17:09:42 #
Opera darkfell
error_reporting(E_ALL); ничего страшного не выдает, pak у меня другой, но имя изменено. Пропадает редактор те сами кнопки и остается пустое место (xbbeditor)
Вот структура моего РАКа:
1.gif=+:Very we!=+::D
2.gif=+:Well=+::)
25.08.2009 10:04:08 #
Iceweasel dima
"подхватить" эти смайлы.. вот с этим пока проблемы

Я думаю, у вас хорошо получается Well
 
Про неработающий у Вас код: я его не юзал, поэтому ничего крамольного в нем не вижу, сегодня опробую. Отпишусь.
26.08.2009 10:44:07 #
Iceweasel dima
Странно. У меня этот код заработал сразу. Вставил его в bbcode/config/xbbeditor.config.php вместо описания массива основных смайликов.
26.08.2009 22:43:09 #
Opera darkfell
Действительно.. может ошибся где-нибудь, когда редактировал.. все еще не получается задать массив всех смайлов и сделать вывод, не подскажите?
Создал новый массив (который описал выше), помимо стандартного с переменной $smiles_all
PHP
$pak = file('./images/smiles/Set_Smiles_YarNET.pak');
$smiles_all=array();$_smiles=array();
foreach ($pak as $val) {
...
if ($c==$max_c) {
    $c=0;$l++;
 }
 $c++;
};
и добавил блок в xbb.php
PHP
phpArray2Javascript($smiles_all);
echo 'bb.smiles_all=' . $smiles_all . ';';
Ну и использовал вывод. Массив $smiles_all не выводится... Может его еще надо где-нить задать? В парсере?

Ответить:

Представиться как     Антибот:
   

Просьба не постить мусор. Пользуйтесь кнопкой предварительного просмотра на панели инструментов редактора.

Введите логин: и пароль: (

© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.