Передать переменую в bbcode.

#1 8 августа 2016 в 18:13
Всем привет.Первая ветка.При отправки сообщения из профиля юзера нужно передать значение переменной в панель bbcode. Как это можно сделать?
Саму панель формирует метод cmsPage::getBBCodeToolbar('message'), который передаётся из фронтеда компонента users.Пробовал передать как параметр, не выходит.Может кто подскажет?
#2 8 августа 2016 в 18:41
Позвольте уточнить: панель передается в шаблон строчкой номер (у меня во фронтэнде) 561:
  1. assign('bbcodetoolbar', cmsPage::getBBCodeToolbar('message'))->
В файле шаблона com_users_messages_add.tpl в 11 строчке видим:
  1. <div class="usr_msg_bbcodebox">{$bbcodetoolbar}</div>
Метод getBBCodeToolbar() находится в ядерном классе core/classes/page.class.php на 678 строке.

1. Где формируется переменная?
2. Откуда и куда надо ее передать?
3. Что вы хотите он ядерного метода getBBCodeToolbar(), если он возвращает результат эвента GET_BBCODE_BUTTON?

Другими словами: более подробнее напишите ТЗ. Так чтобы даже старый динозавр Странник понял и прослезился.
#3 8 августа 2016 в 19:17

Позвольте уточнить:

Да, всё верно.Мне нужно в файле special/bbcode_panel.php иметь нужную мне переменную, переданную при отправки сообщения из профиля юзера. И попасть туда я могу, видно только через этот метод.
Перменная формируется в /users/frontend.php
#4 8 августа 2016 в 19:39
В файл special/bbcode_panel.php значения переменных попадают из тела ядерного метода getBBCodeToolbar(). Смотрите, на строке 698 файла core/classes/page.class.php подключается файл bbcode_panel.php и ему передаются данные через безымянный массив. В чем проблема?
#5 8 августа 2016 в 19:59

В чем проблема?

Проблема в передачи. smile
Пробую так во фронтеде
  1. $a = '1';
  2. assign('bbcodetoolbar', cmsPage::getBBCodeToolbar('message', $a))->
В классе
  1. public static function getBBCodeToolbar($field_id, $images=0, $a, $component='forum', $target='post', $target_id=0){...}
переменая не появляется, видно что то не так передаю, отсюда и топик.
#6 8 августа 2016 в 20:27

getBBCodeToolbar('message', $a)

Lora
Хех. Дружище. Даже такой старый динозавр, как Странник, знает, что порядок перечисления переменных при вызове метода и в объявлении метода должен быть одинаковым и не должен нарушаться. Вам следует тогда объявление ядерного метода переписать так
  1. public static function getBBCodeToolbar($field_id, $a, $images=0, $component='forum', $target='post', $target_id=0){...}
НО! Биби-коды вызываются и из других частей движка, поэтому курочить таким образом ядерный метод не просто некошерно — но совершенно безответственно (возникает эффект "Тришкиного кафтана").

Поэтому все-таки для обеспечения совместимости рекомендую сделать так:
Вызов из фронтенда:
  1. assign('bbcodetoolbar', cmsPage::getBBCodeToolbar('message', 0, 'forum', 'post', 0, $a))->
Объявление:
  1. public static function getBBCodeToolbar($field_id, $images=0, $component='forum', $target='post', $target_id=0, $a=''){...}
и будет вам щастье.
#7 8 августа 2016 в 20:38
Понял, большое спасибо.
#8 8 августа 2016 в 20:39
Получилось то хоть? Вечно из вас слова с помощью выкручивания рук приходится выжимать rofl
#9 8 августа 2016 в 21:00

Получилось то хоть?

Да, всё ОК! Разве могло быть по другому? Не помню, что бы Вы не верно подсказали. smile
#10 8 августа 2016 в 21:05

Не помню, что бы Вы не верно подсказали

Lora
Старый динозавр Странник еще и большой шутник и проказник…
#11 8 августа 2016 в 21:09

Старый динозавр Странник еще и большой шутник и проказник....

Хорошо."Кто предупреждён, тот и..." smoke
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.