Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#126 2008-01-15 20:32:06

Slavik
Гость

Re: MOD: Modern BB Code

Flames
в том же файле есть функция

function insert_text(open, close)

попробуй поубирать оттуда

msgfield.focus();

может поможет,  не проверял

#127 2008-01-15 20:53:54

Flames
Гость

Re: MOD: Modern BB Code

Slavik
1, чёт не совсем врубаюсь, что делать с этой функцией (open, close)

2, Убрал все такие строчки (msgfield.focus();), но нечего не происходит.

#128 2008-01-18 19:27:54

coordinator
Гость

Re: MOD: Modern BB Code

Visman пишет:

Я взял в Easy BBCode удалил кнопки и вставил их из Modern BBCode (правда без наворотов со всплывающими меню).
Смайлы оставил от Easy.
Т.ч. получилась у меня Easy BBCode выглядящая как Modern BBCode

Можно алгоритм подробнее или пример.
Мне нужно заменить кнопки на картинке в панельке и все. Сносить Easy BBCode не хочу.

Редактировался coordinator (2008-01-18 19:42:04)

#129 2008-01-18 19:48:54

Visman
Гость

Re: MOD: Modern BB Code

Если не ошибаюсь smile , ставим сначала Easy BBCode.
Вот такой mod_easy_bbcode.php сделал:

<?php

// Make sure no one attempts to run this script "directly"
if (!defined('PUN'))
    exit;

if (!isset($bbcode_form))
    $bbcode_form = 'post';
if (!isset($bbcode_field))
    $bbcode_field = 'req_message';

require PUN_ROOT.'lang/'.$pun_user['language'].'/easy_bbcode.php';

?>
<script type="text/javascript"><!--
function insert_text(open, close)    {
 msgfield = (document.all) ? document.all.req_message : document.forms['<?php echo $bbcode_form ?>']['<?php echo $bbcode_field ?>'];
 // IE support
 if (document.selection && document.selection.createRange) {
    msgfield.focus();
    sel = document.selection.createRange();
    sel.text = open + sel.text + close;
    msgfield.focus();
 }
 // Moz support
 else if (msgfield.selectionStart || msgfield.selectionStart == '0') {
    var startPos = msgfield.selectionStart;
    var endPos = msgfield.selectionEnd;
    msgfield.value = msgfield.value.substring(0, startPos) + open + msgfield.value.substring(startPos, endPos) + close + msgfield.value.substring(endPos, msgfield.value.length);
    msgfield.selectionStart = msgfield.selectionEnd = endPos + open.length + close.length;
    msgfield.focus();
 }
 // Fallback support for other browsers
 else {
    msgfield.value += open + close;
    msgfield.focus();
 }
 return;
}
--></script>
<div class="easybar">
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Bold title'].'"' ?> href="javascript:insert_text('[b]','[/b]')"><b><?php echo $lang_easy_bbcode['Bold'] ?></b></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Italic title'].'"' ?> href="javascript:insert_text('[i]','[/i]')"><em><?php echo $lang_easy_bbcode['Italic'] ?></em></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Underline title'].'"' ?> href="javascript:insert_text('[u]','[/u]')"><u><?php echo $lang_easy_bbcode['Underline'] ?></u></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Strikeout title'].'"' ?> href="javascript:insert_text('[s]','[/s]')"><del><?php echo $lang_easy_bbcode['Strikeout'] ?></del></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['URL title'].'"' ?> href="javascript:insert_text('[url]','[/url]')"><?php echo $lang_easy_bbcode['URL'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Mail title'].'"' ?> href="javascript:insert_text('[email]','[/email]')"><?php echo $lang_easy_bbcode['Mail'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Code title'].'"' ?> href="javascript:insert_text('[code ]','[ /code]
')"><?php echo $lang_easy_bbcode['Code'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Quote title'].'"' ?> href="javascript:insert_text('[quote]','[/quote]
')"><?php echo $lang_easy_bbcode['Quote'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Color title'].'"' ?> href="javascript:insert_text('[color=#RRGGBB]','[/color]')"><?php echo $lang_easy_bbcode['Color'] ?></a>
</div>
<div class="easybar">
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Monospace text title'].'"' ?> href="javascript:insert_text('[mono]','[/mono]')"><?php echo $lang_easy_bbcode['Monospace text'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Center title'].'"' ?> href="javascript:insert_text('[center]','[/center]')"><?php echo $lang_easy_bbcode['Center'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Right title'].'"' ?> href="javascript:insert_text('[right]','[/right]')"><?php echo $lang_easy_bbcode['Right'] ?></a>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Fontsize title'].'"' ?> href="javascript:insert_text('[size=#SIZE]','[/size]')"><?php echo $lang_easy_bbcode['Fontsize'] ?></a>
<?php if ($pun_config['p_message_img_tag'] == '1')
{ ?>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Image title'].'"' ?> href="javascript:insert_text('[img]','[/img]')"><?php echo $lang_easy_bbcode['Image'] ?></a>
<?php
} ?>
  <a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Spoiler title'].'"' ?> href="javascript:insert_text('[spoiler]','[/spoiler]')"><?php echo $lang_easy_bbcode['Spoiler'] ?></a>
</div>
<div style="padding-top: 4px">
<?php

// Display the smiley set
require_once PUN_ROOT.'include/parser.php';

$smiley_dups = array();
$num_smilies = count($smiley_text);
for ($i = 0; $i < $num_smilies; ++$i)
{
    // Is there a smiley at the current index?
    if (!isset($smiley_text[$i]))
        continue;

    if (!in_array($smiley_img[$i], $smiley_dups))
        echo "\t".'<a href="javascript:insert_text(\''.$smiley_text[$i].'\', \'\');"><img src="img/smilies/'.$smiley_img[$i].'" width="15" height="15" alt="'.$smiley_text[$i].'" /></a>'."\n";

    $smiley_dups[] = $smiley_img[$i];
}

?>
</div>

Файл easy_bbcode.php в языковой папке кажется не менял или только малость сменил.
Тут точно остались не нужные переменные.

<?php

// Language definitions used in various scripts
$lang_easy_bbcode = array(

// Prompt message for list tag message box
'List tag prompt' => 'Введите текст элемента списка. Нажмите \"Отмена\" или оставьте поле ввода пустым, чтобы прекратить ввод элементов.',

// Buttons texts
'Bold'  => 'Ж',
'Italic' => 'К',
'Underline' => 'Ч',
'Strikeout' => 'З',
'URL'  => 'Ссылка',
'Mail'  => '@',
'Code'  => '#',
'Quote'  => '»»',
'Color'  => 'Цвет',
'Smiley' => 'Смайлы',
'Inc text field height' => '+',
'Dec text field height' => '-',
'Monospace text' => 'Моно',
'Center' => 'По центру',
'Right'  => 'Справа',
'Fontsize' => 'Размер',
'Image'  => 'Изображение',
'List'  => 'Список',
'Spoiler' => 'Спойлер',
'Help'  => '?',

// Buttons titles
'Bold title' => 'Жирный',
'Italic title' => 'Курсив',
'Underline title' => 'Подчеркнутый',
'Strikeout title' => 'Зачеркнутый',
'URL title' => 'Ссылка',
'Mail title' => 'Электронная почта',
'Code title' => 'Код',
'Quote title' => 'Цитата',
'Color title' => 'Цвет',
'Smiley title' => 'Смайлы',
'Inc text field height title' => 'Увеличить размер поля ввода',
'Dec text field height title' => 'Уменьшить размер поля ввода',
'Monospace text title' => 'Моноширинный текст (код)',
'Center title' => 'Выравнивание по центру',
'Right title' => 'Выравнивание справа',
'Fontsize title' => 'Размер шрифта',
'Image title' => 'Изображение',
'List title' => 'Список',
'Spoiler title' => 'Спойлер (скрытый текст)',
'Help title' => 'Помощь по bb-тэгам',

// Fontsizes
'Very small' => 'Мизерный',
'Small'  => 'Маленький',
'Big'  => 'Большой',
'Large'  => 'Огромный',

// Image kinds
'No float' => 'Без обтекания',
'Float to left' => 'Обтекаемое справа',
'Float to right' => 'Обтекаемое слева',

// Image kind titles
'No float title' => 'Изображение, не обтекаемое текстом',
'Float to left title' => 'Изображение, обтекаемое текстом справа',
'Float to right title' => 'Изображение, обтекаемое текстом слева',

// List kinds
'Unordered' => 'Ненумерованный',
'Ordered' => 'Нумерованный',

// List kind titles
'Unordered title' => 'Создать ненумерованный список',
'Ordered title' => 'Создать нумерованный список',

'More text' => 'Больше...',

// Smilies popup window string constants
'Smilies table' => 'Таблица смайлов',
'Smiley text' => 'Текст',
'Smiley image' => 'Смайл'

);

в parser.php оставил обработку этих кодов:

    $pattern = array('#\[b\](.*?)\[/b\]#s',
                     '#\[i\](.*?)\[/i\]#s',
                     '#\[u\](.*?)\[/u\]#s',
                     '#\[mono\](.*?)\[/mono\]#s',
                     '#\[url\]([^\[]*?)\[/url\]#e',
                     '#\[url=([^\[]*?)\](.*?)\[/url\]#e',
                     '#\[email\]([^\[]*?)\[/email\]#',
                     '#\[email=([^\[]*?)\](.*?)\[/email\]#',
                     '#\[color=([a-zA-Z]*|\#?[0-9a-fA-F]{6})](.*?)\[/color\]#s',
                     '#\[font=(.*?)](.*?)\[/font\]#',
                     '#\[align=(.*?)\](.*?)\[/align\]#',
                     '#\[style="(.*?)"\](.*?)\[/style\]#',
                     '#\[hr /\]#',
                     '#\[hr\]#',
                     '#\[s\](.*?)\[/s\]#',
                     '#\[center\](.*?)\[/center\]#s',
                     '#\[right\](.*?)\[/right\]#s',
                     '#\[size=([0-9]*)](.*?)\[/size\]#s');

    $replace = array('<strong>$1</strong>',
                     '<em>$1</em>',
                     '<span class="bbu">$1</span>',
                     '<code>$1</code>',
                     'handle_url_tag(\'$1\')',
                     'handle_url_tag(\'$1\', \'$2\')',
                     '<a href="mailto:$1">$1</a>',
                     '<a href="mailto:$1">$2</a>',
                     '<span style="color: $1">$2</span>',
                     '<span style="font-family: $1">$2</span>',
                     '<div align="$1">$2</span>',
                     '<span style="$1">$2</span>',
                     '<hr />',
                     '<hr />',
                     '<del>$1</del>',
                     '</p><p class="center">$1</p><p>',
                     '</p><p class="right">$1</p><p>',
                     '<span style="font-size: $1px">$2</span>');

Некоторые по кнопкам не вводятся, только на память, вручную smile

P.S. Возможно написал не все, так как записей о изменениях не веду, все на память.

Добавлено спустя     3 минуты   22 секунды:
Тут '[code ]','[ /code]' в квадратных скобках пробелов нет!

#130 2008-01-18 20:00:23

coordinator
Гость

Re: MOD: Modern BB Code

Спасибо за оперативность и участие.
Мне нужно заменить кнопку на картинку и все.

#131 2008-01-18 20:10:27

Visman
Гость

Re: MOD: Modern BB Code

coordinator пишет:

Мне нужно заменить кнопку на картинку и все.

Можно все кнопки переделать по принципу

<a class="btn" title=<?php echo '"'.$lang_easy_bbcode['Bold title'].'"' ?> href="javascript:insert_text('[b]','[/b]')"><b><?php echo $lang_easy_bbcode['Bold'] ?></b></a>

но вместо

<b><?php echo $lang_easy_bbcode['Bold'] ?></b>

ставить

<img src="URL нужной картинки" alt="<?php echo $lang_easy_bbcode['Bold'] ?>" />

Добавлено спустя     1 минуту   56 секунд:
А может и просто

<img src="URL нужной картинки" />

ставить, а не

<img src="URL нужной картинки" alt="<?php echo $lang_easy_bbcode['Bold'] ?>" />

Пробуй smile

Добавлено спустя     7 минут   56 секунд:
Вот еще это добавлял в base.css кажется, когда переделывал.

DIV.spoilerbox p {
    color: #353533;
    background: #353533;
}


DIV.easybar {
    height: 2em;
    margin-right: 5px;
    width: 100%;
    padding: 3px 1px;
}

DIV.easybar A.btn {
    float: left;
    padding: 3px 7px;
    margin: 0 2px 0 0;
    text-decoration: none;
    text-transform: uppercase;
    display: block;
}

#132 2008-01-18 23:18:25

coordinator
Гость

Re: MOD: Modern BB Code

Visman
Спасибо, такой способ работает.

#133 2008-02-26 19:53:51

Visman
Гость

Re: MOD: Modern BB Code

Вот еще один хитрый план от меня.
Заметил, что при выводе смайлов через smilies.php они выводятся полностью, хотя часть из них уже есть в форме ответа (у меня например их там штук 20).
Я считаю что показывать эти смайлы через smilies.php нет ни какого смысла.
Что я сделал (не забываем, что у меня моды easy bbcode и Modern BB Code скрещены smile и смайлы в форме ответа выводятся как в первом):

Это вывод смайлов в форме ответа (быстрого ответа) mod_easy_bbcode.php

$smiley_dups = array();
$num_smilies = count($smiley_text);
$j = 0;   // добавлно мной
for ($i = 0; $i < $num_smilies; ++$i)
{
    // Is there a smiley at the current index?
    if (!isset($smiley_text[$i]))
        continue;

    if (!in_array($smiley_img[$i], $smiley_dups))
    {
        echo '<a href="javascript:insert_text(\''.$smiley_text[$i].'\', \'\');"><img src="img/smilies/'.$smiley_img[$i].'" alt="'.$smiley_text[$i].'" /></a>'."\n";
      ++$j;   // добавлно мной
    if ($j == 20)   // добавлно мной
      $i = $num_smilies;   // добавлно мной
    }

    $smiley_dups[] = $smiley_img[$i];
}

выводятся только первые 20 различных смайлов в форму.

В smilies.php

$smiley_dups = array();
$num_smilies = count($smiley_text);
$j = 0;   // добавлно мной
for ($i = 0; $i < $num_smilies; ++$i)
{
    // Is there a smiley at the current index?
    if (!isset($smiley_text[$i]))
        continue;

    if (!in_array($smiley_img[$i], $smiley_dups))
    {
       ++$j;   // добавлно мной
    if ($j > 20)   // добавлно мной
    {   // добавлно мной
?>
<tr>
<td class="tcl"><a href="javascript:insert_text('<?php echo $smiley_text[$i] ?>', '');"><img src="img/smilies/<?php echo $smiley_img[$i] ?>" alt="<?php echo $smiley_text[$i] ?>" /></a></td>
<td class="tcr"><?php echo $smiley_text[$i] ?></td>
</tr>
<?php
    }   // добавлно мной
    }

    $smiley_dups[] = $smiley_img[$i];

}

выводятся смайлы начиная с 21 отличного от других.

В help.php ограничил вывод смайлов 20 различными штуками

$num_smilies = count($smiley_text);
$j = 0;   // добавлно мной
for ($i = 0; $i < $num_smilies; ++$i)
{
    // Is there a smiley at the current index?
    if (!isset($smiley_text[$i]))
        continue;

    echo "\t\t".'&nbsp;&nbsp;&nbsp;&nbsp;'.$smiley_text[$i];

    // Save the current text and image
    $cur_img = $smiley_img[$i];
    $cur_text = $smiley_text[$i];

    // Loop through the rest of the array and see if there are any duplicate images
    // (more than one text representation for one image)
    for ($next = $i + 1; $next < $num_smilies; ++$next)
    {
        // Did we find a dupe?
        if (isset($smiley_img[$next]) && $smiley_img[$i] == $smiley_img[$next])
        {
            echo ' '.$lang_common['and'].' '.$smiley_text[$next];

            // Remove the dupe so we won't display it twice
            unset($smiley_text[$next]);
            unset($smiley_img[$next]);
        }
    }

    echo ' '.$lang_help['produces'].' <img src="img/smilies/'.$cur_img.'" alt="'.$cur_text.'" /><br />'."\n";
     ++$j;   // добавлно мной
  if ($j == 20)   // добавлно мной
    $i = $num_smilies;   // добавлно мной
}

Надеюсь, что написал более-менее понятно.

#134 2008-05-06 19:17:28

SerebroSuper
Гость

Re: MOD: Modern BB Code

Странно , но вот у меня проблема...с установкой мода...
в post и edit нету строчки...

<?php endif; require PUN_ROOT.'mod_easy_bbcode.php'; ?>                        <label><strong><?php echo $lang_common['Message'] ?></strong><br />

что делать?

#135 2008-05-06 19:59:20

nobody
Гость

Re: MOD: Modern BB Code

Где ты взял инструкцию? Вот кусок readme из мода:

#
#---------[ 6. FIND (line:493) ]---------------------------------------------------
#

<?php endif; ?>                        <label><strong><?php echo $lang_common['Message'] ?></strong><br />

#
#---------[ 7. REPLACE WITH ]---------------------------------------------------
#

                        <?php endif; require PUN_ROOT.'mod_modern_bbcode.php'; ?>
                        <label>

#136 2008-05-06 20:07:19

SerebroSuper
Гость

Re: MOD: Modern BB Code

нету,такого у меня в post и edit.....

<?php endif; ?>                        <label><strong><?php echo $lang_common['Message'] ?></strong><br />

странно....
где его нужно добавлять тогда?
форум устанавливал с этого сайта,punbb 1.2.17

#137 2008-05-06 20:13:35

nobody
Гость

Re: MOD: Modern BB Code

Так, хорошо, по порядку. Эту строку найди в post.php:

<label><strong><?php echo $lang_common['Message'] ?></strong><br />

По моему, без нее никак. Она должна там быть. Если найдешь, запости строчек десять, чтоб где-то в середине была найденная строка.
Если не найдешь, я пас. Возможно, кто-то другой сможет помочь.

#138 2008-05-06 20:17:35

SerebroSuper
Гость

Re: MOD: Modern BB Code

Нету(((((
я пользуюсь поиском...в wordpad

Черт,очень хороший мод,очень нужный....

#139 2008-05-23 00:39:56

Sunscreen
Гость

Re: MOD: Modern BB Code

Установил все как надо, но почему-то выпадающие меню отказываются работать (размер, изображение, список и т.д)... Яваскрипт выдает ошибку.
В чем может быть причина?

#140 2008-05-23 03:52:53

hcs
Гость

Re: MOD: Modern BB Code

Как ты думаешь, много ли людей обладает ясновидением и не видя ошибки могут определить причину?

#141 2008-05-23 18:21:11

Nickola9
Гость

Re: MOD: Modern BB Code

hcs пишет:

Как ты думаешь, много ли людей обладает ясновидением и не видя ошибки могут определить причину?

ты же у нас пророк...все знаешь, а логи не мешало бы глянуть

#142 2009-02-05 00:41:55

coordinator
Гость

Re: MOD: Modern BB Code

В ридми есть неточность. В стиле для Oxygen (возможно и в других) неправильно указан путь к картинкам (стрелки).

Подвал доски

Под управлением FluxBB. Хостинг Hostens