Как вывести на страницу параметры модуля?

  • 20 Ответов
  • 510 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Absalem

Добрый день! Помогите, пожалуйста, я только начинаю изучать Joomla и php, и еще много не понимаю.
Как мнеправильно получать параметры из модуля, если они там в таком виде храняться? (вывела через print_r)

Joomla\Registry\Registry Object ( [data:protected] => stdClass Object ( [peoples] => stdClass Object (
[peoples0] => stdClass Object ( [name] => Человек Номер Один [description] => Описание человека номер один. [sort] => 1 [myimage] => images/persons/person-1.jpg )
[peoples2] => stdClass Object ( [name] => Человек номер два [description] => Описание человека номер два [sort] => 2 [myimage] => images/persons/person-2.png )
[peoples3] => stdClass Object ( [name] => Человека номер три [description] => Описание человека номер три [sort] => 3 [myimage] => images/persons/person-3.jpg ) )
[module_tag] => div [bootstrap_size] => 0 [header_tag] => h3 [header_class] => [style] => 0 ) [separator] => . )
Т.е. например мне нужно получить имя и фотку человека номер два, как мнеправильно это сделать?
Заранее спасибо!

*

Оффлайн robert

Код: (php-brief) [Выделить]
$peoples=$params->get('peoples',null);//$params - это JRegistry-объект
$фотка_человека_номер_два=$peoples->peoples2->myimage;
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн Absalem

Спасибо большое! Вы мне очень помогли!

*

Оффлайн Absalem

Код: (php-brief) [Выделить]
$peoples=$params->get('peoples',null);//$params - это JRegistry-объект
$фотка_человека_номер_два=$peoples->peoples2->myimage;
А не подскажете еще, как узнать количество человеков?) типа $peoples->lenght или что-то такое есть?

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
не?
Код: (php) [Выделить]
echo count($peoples);
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн Absalem

единичку выводит, а должно быть по идее три

*

Оффлайн Absalem

не?
Код: (php) [Выделить]
echo count($peoples);
единичку выводит, а должно быть по идее три

*

Оффлайн robert

Код: (php-brief) [Выделить]
echo count((array)$peoples);
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
Код: (php-brief) [Выделить]
echo count((array)$peoples);
чего? Где такой синтаксис существует?
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн robert

чего? Где такой синтаксис существует?
в PHP. А что не так?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
в PHP. А что не так?
Ну мне кажется что $peoples это и так уже приходит массив, зачем его создавать заново? А тем более у вас с скобками явно не то, если уж создание массива то array(el)
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн SmokerMan

единичку выводит, а должно быть по идее три
правильно, потому что там объект, а не массив
$count = 0;
foreach ($peoples as $value) {
    if (isset($value->name)) {
        $count++;
    }
}
echo $count;

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
правильно, потому что там объект, а не массив
эффектный apic fail :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн SmokerMan

эффектный apic fail :)
ну типа того)
$peoples = JArrayHelper::fromObject($peoples);
$count = 0;
foreach ($peoples as $key => $value) {
    if (strpos($key, 'peoples')!== false) {
        $count++;
    }
}
echo $count;


*

Оффлайн Shustry

  • *****
  • 6426
  • [+]736 / [-]3
  • Рисую дизайны
    • Просмотр профиля
    • Примеры работ
Joomla\Registry\Registry Object ( [data:protected] => stdClass Object ( [peoples] => stdClass Object (
[peoples0] => stdClass Object ( [name] => Человек Номер Один [description] => Описание человека номер один. [sort] => 1 [myimage] => images/persons/person-1.jpg )
[peoples2] => stdClass Object ( [name] => Человек номер два [description] => Описание человека номер два [sort] => 2 [myimage] => images/persons/person-2.png )
[peoples3] => stdClass Object ( [name] => Человека номер три [description] => Описание человека номер три [sort] => 3 [myimage] => images/persons/person-3.jpg ) )
[module_tag] => div [bootstrap_size] => 0 [header_tag] => h3 [header_class] => [style] => 0 ) [separator] => . )
Тут же массив объектов. count($peoples) должно три возвращать.
Бесплатно консультирую по дизайну и вёрстке (только в icq и личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
Тут же массив объектов. count($peoples) должно три возвращать.
Где массив?
[peoples] => stdClass Object

Код: (php) [Выделить]
Joomla\Registry\Registry Object (
[data:protected] => stdClass Object (
[peoples] => stdClass Object (
[peoples0] => stdClass Object ( [name] => Человек Номер Один [description] => Описание человека номер один. [sort] => 1 [myimage] => images/persons/person-1.jpg )
[peoples2] => stdClass Object ( [name] => Человек номер два [description] => Описание человека номер два [sort] => 2 [myimage] => images/persons/person-2.png )
[peoples3] => stdClass Object ( [name] => Человека номер три [description] => Описание человека номер три [sort] => 3 [myimage] => images/persons/person-3.jpg )
)
[module_tag] => div
[bootstrap_size] => 0
[header_tag] => h3
[header_class] =>
[style] => 0
)
[separator] => .
)

Можно ещё так посчитать
Код: (php) [Выделить]
$count = count(get_object_vars($peoples));
Цитировать
get_object_vars возвращает ассоциативный массив нестатических свойств объекта object, доступных в данной области видимости. Если свойству не было присвоено значение, оно будет возвращено со значением NULL.

http://stackoverflow.com/questions/1314745/php-count-an-stdclass-object

*

Оффлайн SmokerMan

Можно ещё так посчитать
Код: (php) [Выделить]
$count = count(get_object_vars($peoples));
только он так все свойства посчитает, а не конкретно peoples)

*

Оффлайн b2z

  • *****
  • 7449
  • [+]739 / [-]0
  • Разраблю понемногу
    • Просмотр профиля
    • NorrNext - расширения для Joomla! и Pagekit
только он так все свойства посчитает, а не конкретно peoples)
Само собой, просто в этом случае работает, так как в peoples только peoples :)

*

Оффлайн robert

А тем более у вас с скобками явно не то, если уж создание массива то array(el)
А я массива с элементом el и не создаю.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
А я массива с элементом el и не создаю.
это был просто пример, что у вас скобки неправильно стоят
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн robert

у вас скобки неправильно стоят
Ладно, убеждать не буду.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.