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

Absalem

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Добрый день! Помогите, пожалуйста, я только начинаю изучать 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

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

Absalem

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
Спасибо большое! Вы мне очень помогли!
*

Absalem

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
не?
Код: php
echo count($peoples);
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Absalem

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
единичку выводит, а должно быть по идее три
*

Absalem

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
не?
Код: php
echo count($peoples);
единичку выводит, а должно быть по идее три
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код: php-brief
echo count((array)$peoples);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Код: php-brief
echo count((array)$peoples);
чего? Где такой синтаксис существует?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
чего? Где такой синтаксис существует?
в PHP. А что не так?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
в PHP. А что не так?
Ну мне кажется что $peoples это и так уже приходит массив, зачем его создавать заново? А тем более у вас с скобками явно не то, если уж создание массива то array(el)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
правильно, потому что там объект, а не массив
эффектный apic fail :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

SmokerMan

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

*

Shustry

  • Гуру
  • 6434
  • 745 / 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) должно три возвращать.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Тут же массив объектов. 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

  • Гуру
  • 5293
  • 720 / 26
Можно ещё так посчитать
Код: php
$count = count(get_object_vars($peoples));
только он так все свойства посчитает, а не конкретно peoples)
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
только он так все свойства посчитает, а не конкретно peoples)
Само собой, просто в этом случае работает, так как в peoples только peoples :)
*

robert

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

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
А я массива с элементом el и не создаю.
это был просто пример, что у вас скобки неправильно стоят
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
у вас скобки неправильно стоят
Ладно, убеждать не буду.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Написание плагина оплаты

Автор rkron

Ответов: 0
Просмотров: 984
Последний ответ 02.03.2017, 10:25:28
от rkron
Как принимать значения кастомных полей в

Автор eugenex

Ответов: 14
Просмотров: 1364
Последний ответ 03.04.2016, 22:55:31
от eugenex
обновление модуля

Автор jmaf

Ответов: 1
Просмотров: 1269
Последний ответ 02.11.2015, 10:19:44
от b2z
переопределение языковой переменной на в

Автор Aeliot

Ответов: 3
Просмотров: 1261
Последний ответ 24.04.2014, 13:51:54
от Aeliot
5 простых способов “ускорения” сайта

Автор boston

Ответов: 28
Просмотров: 35807
Последний ответ 15.04.2014, 15:48:21
от atkaa1