Selector bbcodes

Alice

Пользователь
#1
Название: Selector BB-codes
Автор: Alice
Описание: добавляет в окно расширенного ответа селектор ВВ-кодов (например, для вставки видео с различных видеохостингов).
Время установки: ~ 2 минуты + время на установку самих ВВ-кодов, которые будут включены в селектор.
Сложность: легко

1. Прежде чем делать селектор, нужно включить в includes/bbcode.php ВВ-коды, которые он будет объединять.
Селектор целесообразен, если таких ВВ-кодов много.
Например, у меня пока только 2 ВВ-кода для вставки видео - из ютуб

Please Login or Register to view hidden text.

, который я переделала по-своему из варианта, предложенного Mikotka, и из смотри.ком

Please Login or Register to view hidden text.

.
Но я собираюсь написать и установить еще ВВ-коды для вставки видео из ливентернет, мейлру, яндекс-видео и рутуб.
Чтобы не загромождать кнопками окно ответа, пригодится селектор.

2. Непосредственно создание селектора.
templates/default/posting_editor.tpl
найти:
Код:
<select name="codeAlign" class="text_size">
  <option value="left" selected="selected">{L_ALIGN}</option>
  <option value="left">&nbsp;{L_LEFT}</option>
  <option value="right">&nbsp;{L_RIGHT}</option>
  <option value="center">&nbsp;{L_CENTER}</option>
  <option value="justify">&nbsp;{L_JUSTIFY}</option>
</select>
&nbsp;
добавить после:
Код:
<select name="название селектора" class="text_size">
  <option value="выбор ВВ-кода...">выбор ВВ-кода...</option>
  <option value="название ВВ-кода1">&nbsp;название1</option>
  <option value="название ВВ-кода2">&nbsp;название2</option>
<option value="название ВВ-кода3">&nbsp;название3</option>
и т.д.
</select>
&nbsp;
Названия, разумеется, подставить свои...
На примере ВВ-кодов для вставки видео youtube и smotri:
Код:
<select name="videoselector" class="text_size">
  <option value="видео из...">видео из...</option>
  <option value="youtube">&nbsp;youtube.com</option>
  <option value="smotri">&nbsp;smotri.com</option>
</select>
&nbsp;
найти:
Код:
bbcode.addTag("codeAlign", function(e) { var v=e.value; e.selectedIndex=0; return "align="+v }, "/align");
добавить после:
Код:
bbcode.addTag("название селектора", function(e) { var v=e.value; e.selectedIndex=0; return v,v} );
На примере ВВ-кодов для вставки видео:
Код:
bbcode.addTag("videoselector", function(e) { var v=e.value; e.selectedIndex=0; return v,v} );
В результате в окне расширенного ответа появится вот такой селектор:


Please Login or Register to view hidden text.


По аналогии селектор можно использовать для других ВВ-кодов.
 

dimka3210

Пользователь
#3
Alice, давным давно я пытался такое сделать). Но тогда знаний не хватило, а никто не подсказал.
Сейчас глянул на ваши попытки и понял свои ошибки, которые вы тоже сейчас совершаете. Подход в корне не верен, не в обиду. Если нужна будет помощь, пишите в скайп dimon32101.
 

Alice

Пользователь
#6
Alice, давным давно я пытался такое сделать). Но тогда знаний не хватило, а никто не подсказал.
Сейчас глянул на ваши попытки и понял свои ошибки, которые вы тоже сейчас совершаете. Подход в корне не верен, не в обиду. Если нужна будет помощь, пишите в скайп dimon32101.
Димка, смотрю на то, что Вы ответили мне в ЛС, и думаю, а может быть, Вы не внимательно посмотрели код и не поняли, в чем подход?
Вы говорите, ошибка в том, что "используя тип [video=youtube]ссылка[/video], написать получится, но это будет великий геморой."
Но мой подход в том, чтобы не усложнять задачу и не писать какой-то единый ВВ-код для вставки видео.
Я пишу разные ВВ-коды для вставки видео. Для каждого видеохостинга - свой ВВ-код. И потом эти разные ВВ-коды прячу в один селектор.
А селектор, в зависимости от того, какой option выбран, кидает открывающие и закрывающие теги соответствующего ВВ-кода в окно ответа.
Сейчас он у меня в зависимости от выбора кидает в окно ответа закрывающий и открывающий теги либо бб-кода youtube, либо Вв-кода smotri. Если я в этот же селектор добавлю option с названием b - то будет еще кидать теги ВВ-кода b, если он выбран в селекторе...
То есть в эту скромную игрушку можно запихнуть разные ВВ-коды, описанные в bbcode.php, в т.ч. никак не объединенные каким-то общим назначением.

На примере стандартных ВВ-кодов b, u, i...
Если в templates/default/posting_editor.tpl
Код:
найти:

<select name="codeAlign" class="text_size">
  <option value="left" selected="selected">{L_ALIGN}</option>
  <option value="left">&nbsp;{L_LEFT}</option>
  <option value="right">&nbsp;{L_RIGHT}</option>
  <option value="center">&nbsp;{L_CENTER}</option>
  <option value="justify">&nbsp;{L_JUSTIFY}</option>
</select>
&nbsp;

добавить после:

<select name="addtextdecoration" class="text_size">
  <option value="выбор ВВ-кода...">выбор ВВ-кода...</option>
  <option value="b">&nbsp;жирный</option>
  <option value="u">&nbsp;подчеркнутый</option>
<option value="i">&nbsp;курсив</option>
</select>
&nbsp;

найти:

bbcode.addTag("codeAlign", function(e) { var v=e.value; e.selectedIndex=0; return "align="+v }, "/align");

добавить после:

bbcode.addTag("addtextdecoration", function(e) { var v=e.value; e.selectedIndex=0; return v,v} );
То в окне расширенного ответа появится селектор, который в зависимости от выбора будет кидать в окно ответа открывающий и закрывающий теги или ВВ-кода b, или ВВ-кода u, или ВВ-кода i.
 

dimka3210

Пользователь
#7
Мы просто по разному понимает простоту реализации. Я например как представлю кучу кода, то меня аж в дрожь бросает :)
 

Wertos

Заблокирован
#8
1) Создаём файл любого имени с содержимым... например...
HTML:
<select id="imgh" onchange="if (this.value) {window.open(this.value)} else {}; $('option[name=\'null\']').attr('selected', 'selected');" style="width: 150px;">
  <option value="" name="null">Выберите...</option>
  <option value="http://radikal.ru">radikal.ru</option>
  <option value="http://fastpic.ru">fastpic.ru</option>
  <option value="http://imageshost.ru">imageshost.ru</option>
  <option value="http://youpic.ru">youpic.ru</option>
  <option value="http://youpic.su">youpic.su</option>
  <option value="http://ipicture.ru">ipicture.ru</option>
  <option value="http://firepic.org">firepic.org</option>
  <option value="http://10pix.ru">10pix.ru</option>
  <option value="http://lostpic.net">lostpic.net</option>
  <option value="http://phyrefile.com">phyrefile.com</option>
</select>
2) В posting_editor.tpl добавляем в удобное для вас место....
HTML:
<span  id="img_load"><input type="button" value="Загрузить картинку" onClick=" $("#img_load").load("путь к вашему файлу");  " /></span>
В результате при клике на кнопочку у вас появляется селект с выбором того, чего вы туда запихаете.... при смене которого вас кидает на нужный хостинг, а селект возвращает в начальное состояние... т.е. "Выберите"
Вот как то так...