PDA

Просмотр полной версии : Добавление новых ББ-кодов в панель редактирования


ErikPshat
05.12.2017, 09:28
Добавление новых ББ-кодов в панель редактирования

Допустим, в панели быстрого ответа есть иконка на Ютуб: http://www.pspx.ru/forum/cleardoc/editor/youtube.gif. Открываем картинку в новой вкладке правой кнопкой и видим наглядно путь в адресной строке: http://www.pspx.ru/forum/cleardoc/editor/youtube.gif
Видим, что иконки лежат в папке cleardoc/editor

Как добавить ББ-код на панель редактора?
Вот пример кода того же Ютуба: <td><div class="imagebutton" id="{$editorid}_cmd_wrap0_youtube"><img src="$stylevar[imgdir_editor]/youtube.gif" width="21" height="20" alt="$vbphrase[wrap_youtube_tags]" /></div></td>
При добавлении новой кнопки, просто копируем код соседней кнопки в нужное место и редактируем: id="{$editorid}_cmd_wrap0_youtube"
Это команда CMD для отображения опций при нажатии кнопки. Здесь редактируем это:
cmd_wrap0_youtube" - где wrap0 - без опций при нажатии на кнопку, wrap1 - открывать опции при нажатии.
Ну и на конце youtube - это название ББ-кода.

Это выставляется в админке при создании ББ-кода, но в панель редактирования оно само не прописывается. Нужно учесть, что панели ответа есть в нескольких шаблонах - при быстром ответе, при редактировании чужого сообщения (да, да, там своя панель), при редактировании в расширенном режиме, при отправке сообщений через Личку, при написании сообщений в профиле.

Дальше: img src="$stylevar[imgdir_editor]/youtube.gif"
Это иконка в редакторе панели ответа. Собсно, $stylevar[imgdir_editor] - это путь cleardoc/editor, где лежат стандартные иконки панели редактирования.

Далее: alt="$vbphrase[wrap_youtube_tags]"
alt - это всегда обязательно прописывается к картинкам, означает всплывающую подсказку. Даже если нет подсказок, то всё равно прописывается, просто с пустыми кавычками alt="". Это обязательный атрибут alt, предназначен, если картинка не доступна на хосте, то вместо неё должно выводиться сообщение типа "Картинка недоступна" и в этом настоящее предназначение этого атрибута, хотя на самом деле за всплывающие подсказки отвечает атрибут title="Всплывающая подсказка".

$vbphrase[wrap_youtube_tags] - это $vbphrase означает языковые фразы. В квадратных скобках [wrap_youtube_tags] пишется любое уникальное название, которое потом заносится в "Языки и фразы" в админке, как новая фраза. И эта фраза потом будет выводится во всплывающей подсказке.

ErikPshat
05.12.2017, 10:09
$stylevar[imgdir_editor]/youtube.gif
Сорри, поправочка, $stylevar[imgdir_editor] - это cleardoc/editor, а не images/editor

В шапке менять не буду примеры, пусть будет видно, как можно допустить ошибку!!!

Сейчас в шаблоне showthread_quickreply поменял путь images/editor на переменную $stylevar[imgdir_editor] и в профиле сразу проявился косяк, вся панель ответа развалилась.

in1975
05.12.2017, 11:14
$stylevar
Давай теперь правильные исходники, а то выше в 2х местах у тебя ссылка на эту переменную.

ErikPshat
06.12.2017, 03:40
in1975, я же в последующем сообщении написал поправочку и там разъяснял что к чему.

Короче, залил 9 картинок в свою родную папку cleardoc/editor
И во всех шаблонах исправил путь ко всем картинкам в редакторе сообщений на $stylevar[imgdir_editor] по стандарту, как положено.

Это просто был мой косяк. Ранее я почему-то решил картинки к ББ-кодам заливать в папку images/editor. Это были 9 картинок, которые я ранее добавлял в редактор к новым ББ-кодам. Впоследствии, более новые иконки к ББ-кодам, я заливал правильно в папку cleardoc/editor.

Ну и теперь получается, что в папке images/editor лежат 9 иконок как мусор.
Если будет возможность, их оттуда надо будет удалить: hr.gif, move.gif, noparse.gif, off.gif, spoiler.gif, strike.gif, swf.gif, youtres.gif, youtube.gif.

Yoti
11.09.2019, 12:28
Есть вариант тег [HIDE] добавить? Только чтобы не блоком типа
Для просмотра текста нужна регистрация!
а просто аналогичной строчкой "Для просмотра текста нужна регистрация!".

ErikPshat
11.09.2019, 15:56
Есть вариант тег [HIDE] добавить?
Да можно. Я хотел как-то сделать его, да потом подумал, типа зачем лишние ненужные коды делать :)

Есть вариант сделать по разным критериям, как на хакерских сайтах, например [HIDE="25"] - "Для просмотра скрытого сообщения, у вас должно быть не менее 25 сообщений"

Просто подумал, как я там хотел что-то скачать приватное, это сильно бесит, у меня 1 сообщение, а тут пилиять такие требования.
Можно сделать скрытие/открытие/просмотр по группам, можно, пока не скажешь спасибо и т.п.

P.S. А есть пример на сайте, как именно ты хочешь?

Yoti
12.09.2019, 12:54
Есть пример в том плане, что люди читают мои инструкции здесь, а обсуждают их везде вокруг. Хочу спрятать внешние ссылки. А не блоком скрытие, чтобы разметка не разъезжалась.

ErikPshat
15.09.2019, 08:46
Есть пример в том плане, что люди читают мои инструкции здесь, а обсуждают их везде вокруг.

in1975
15.09.2019, 09:11
ErikPshat, Не скрылось. У меня вроде меньше 28 тыс. :)

ErikPshat
15.09.2019, 09:15
in1975, ну вот я сижу и думаю, в чём проблема, где-то синтаксис не тот. Вот скрипт условия:
<if condition="$bbuserinfo['posts'] < {option}">

<span class="normal">Для просмотра скрытого текста необходимо иметь не менее {option} сообщений</span>

<else />

<span class="normal">{param}</span>

</if>

in1975
15.09.2019, 09:31
<else />
разве такой синтаксис у else ?

ErikPshat
15.09.2019, 09:36
in1975, ну вроде такой, только вот он как раз и не работает :)
Проинспектируй тот пост, там код раскладывается правильно.

in1975
15.09.2019, 10:00
ErikPshat, ну я вижу только:


Есть пример в том плане, что люди читают мои инструкции здесь, а обсуждают их везде вокруг.

ErikPshat
15.09.2019, 10:08
in1975, странно ты видишь :)
Можешь просто пройтись "Поиск в шаблонах" на ключевое слово <else />
Увидишь кучу примеров.

https://funkyimg.com/i/2X1uB.png (https://funkyimg.com/i/2X1uC.png)

in1975
15.09.2019, 11:03
ErikPshat, вижу только:
<else>
...
</else>

А у тебя как?

сейчас там:

<div id="post_message_1193236" style="margin:10px;">Есть пример в том плане, <if condition="$bbuserinfo[userid]">
<span>что люди читают мои инструкции здесь, а обсуждают их везде вокруг.</span>
<else>
<span>Для просмотра скрытого текста нужна регистрация.</span>
</else></if></div>

</if> должен там заканчиваться?

https://www.codeproject.com/Questions/356089/How-to-witre-a-if-condition-in-HTML-Tags

ErikPshat
15.09.2019, 11:13
А у тебя как?
Ну и всё правильно. В шаблонах и у меня в ББ-коде написано как я выше код написал, через <else />, а при инспектировании код сам на автомате раскрывается как надо и закрывается в конце. Просто я так думаю, что из ББ-кода код загружается в сообщение чуть позже, поэтому условие не срабатывает. А так код верный, он везде во всех шаблонах используется именно так.

ErikPshat
15.09.2019, 11:18
</if> должен там заканчиваться?
Конечно. Ну ты зайди в админку через управление. Смотри там "Стили и шаблоны", открой "Поиск в шаблонах" и введи в первое же окошко <else />
В первом же шаблоне смотри код, щёлкни по шаблону дважды
<if condition="$navbar">$navbar<else /><br /><br /></if>

ErikPshat
15.09.2019, 11:25
Вот, я уже всё перепробовал, 100 всевозможных комбинаций :)
Сейчас у меня там стоит так:
<if condition="$bbuserinfo['posts'] < {option}">
<span>Для просмотра скрытого текста у вас должно быть не менее {option} сообщений.</span>
<else />
<span>{param}</span>
</if>
Это код с опциями, которые вводятся во всплывающем окне и попадают в кавычки [HIDE="28000"]
Эта же цифра на количество сообщений попадает в коде вместо {option}
А код {param} - это тот текст, который мы обрамляем ББ-кодом HIDE для скрытия, если у юзера меньше указанных сообщений.

ErikPshat
15.09.2019, 12:01
Что за бред, все остальные ББ-коды работают, там их штук 20, а этот нет.
Нашёл ещё такую конструкцию, видел и на других сайтах, но у нас на форуме впервые такое вижу: http://vb5support.com/developers/template_syntax
<vb:if condition="$show['member']">
<b>Welcome Member.</b>
<vb:elseif condition="$show['guest]" />
<b>Welcome Guest</b>
<vb:else />
<b>Welcome</b>
</vb:if>
Ещё советы по использованию здесь от профи: https://vbsupport.org/forum/showpost.php?p=419595

Yoti
16.09.2019, 00:01
Есть пример в том плане, Для просмотра скрытого текста у вас должно быть не менее 28000 сообщений. что люди читают мои инструкции здесь, а обсуждают их везде вокруг.
Вот так у меня, вместо скрытия — вставка.

ErikPshat
16.09.2019, 01:17
Yoti, ну да, вот так он криво работает почему-то, вернее не работает :)
Он отображает что должен отображать, но и что должен скрывать.
По-идее ссинтаксис написан правильно. Именно так работают все функции в шаблонах форума.
Кругом натыканы проверки, типа, если ты не зарегистрированный пользователь (<if condition="$show['member']">), тогда от тебя скрываются многие блоки форума.
Или, если ты не модератор, тогда у тебя нет кнопок модерирования.

Короче, в ББ-кодах почему-то не срабатывают условия никакие, ни сравнения, ни зарегистрированных, ни if condition, ни <else />
Нужно придумать что-то другое, может через Java-script.