CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » [решено]Передача параметров в OwnBBcodes
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Использование системы
Loader
Возникла необходимость передать дополнительные параметры ширины и высоты при использовании Strings::ParseOwnBB($text), но вот как это сделать?
Ведь судя по:     public function PreDisplay($tag,$params,$content,$canuse) это возможно.

Alexander
Введите в класс-обработчик статические переменные. После этого сможете задать им значения, перед выводом. Например:
OwnBbCode_url::$w=100;
OwnBbCode_url::$h=200;
Loader
Alexander, нельзя ли поподробнее?

Как обратиться изнутри:

Цитата
class OwnBbCode_video extends BaseOwnBbCode
{    
public
        $height,#Высота
        $width;#Ширина


self::$width;
или
$this->$width;
?

Как обратиться снаружи:
$Mainclass->OwnBbCode_video->width=200;
или
OwnBbCode_video::$width=200;
?
Тут правда ни то ни другое не работает.

Alexander
Цитата (Loader @ 2024-04-26 22:19)
Как обратиться изнутри:

self::$w, self::$h

Цитата (Loader @ 2024-04-26 22:19)
Как обратиться снаружи:

OwnBbCode_video::$width

Правда чтобы работало, для начала нужно проинклудить класс этот.
Loader
Цитата (Alexander @ 2024-04-26 22:19)
Правда чтобы работало, для начала нужно проинклудить класс этот.

А-а вот где собака порылась...
Loader
Я что подумал, что-то костыли какие-то получаются! :blink:
Неужели нельзя передать параметр так:
Цитата
Strings::ParseOwnBB($text,$params);
Alexander
Цитата (Loader @ 2024-04-26 22:19)
Я что подумал, что-то костыли какие-то получаются!
Неужели нельзя передать параметр так:

Какие же это костыли? О_о Нет, конечно можно поступить так, как Вы хотите: передать параметры в статический метод ParseOwnBB класса Strings, затем их передать в класс OwnBB, после этого передать уже в нужный класс-обработчик. Но по-моему это является костылями и инзвращениями...
Loader
Цитата (Alexander @ 2024-04-26 22:19)
Правда чтобы работало, для начала нужно проинклудить класс этот.

Не работает всё равно.
Вот код:
if(!isset($Mainclass->OwnBb))	
$Mainclass->LoadClass('classes/others/class_ownbb.php','OwnBb','OwnBbCodes');
OwnBbCode_video::$width=200;
OwnBbCode_video::$height=200;

Fatal error: Access to undeclared static property: OwnBbCode_video::$width

class OwnBbCode_video extends BaseOwnBbCode
{	
    public
    $width,#Ширина
    $height;#Высота

    public function PreDisplay($tag,$params,$content,$canuse)


Alexander
После public добавьте слово static, чтобы получилось:

class OwnBbCode_video extends BaseOwnBbCode
{	
    public static
    $width,#Ширина
    $height;#Высота

    public function PreDisplay($tag,$params,$content,$canuse)
Loader
ОК Проблема решена =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.