Страница 1 из 1

Узнать имя класса

Добавлено: Вс авг 24, 2014 6:47 pm
Bagir
Веду опрос всех объектов класса keySensors. В нем есть подкласс inhouseMovementSensors. Подскажите как узнать имя класса, объект которого я опрашиваю. То есть нужно понять, объект принадлежит подклассу inhouseMovementSensors, классу keySensors, или же какому то другому подклассу класса keySensors.

Код: Выделить всё

$objects=getObjectsByClass("keySensors");
foreach($objects as $obj) {
$obj=getObject($obj['TITLE']);
echo '<br />';
echo $obj->id.'  ';
echo $obj->object_title.'  ';
echo $obj->getProperty('status').'  ';
echo $obj->description.'  ';
} 

Re: Узнать имя класса

Добавлено: Пн авг 25, 2014 8:03 am
Ivan
Зачем такие трудности. Выбирай сразу getObjectsByClass('inhouseMovementSensors')

Re: Узнать имя класса

Добавлено: Пн авг 25, 2014 11:05 am
Bagir
Но если с этим трудности, то конечно решу по другому. Для определенных классов я уже написал отдельные проверки. А эта проверка общая. Вот и выбираю общий класс getObjectsByClass("keySensors"); Но для составления сообщения, я использую текст из "описания" датчиков. И для разных классов нужно добавить вперед или назад разные слова. Вот мне и хотелось узнать, датчик какого подкласса я сейчас опрашиваю.

Re: Узнать имя класса

Добавлено: Пн авг 25, 2014 12:45 pm
sergejey
после getObject доступно поле $obj->class_id и можно выполнить запрос

Код: Выделить всё

$class=SQLSelectOne("SELECT * FROM classes WHERE ID='".(int)$obj->class_id."'"); 
затем в $class['TITLE'] будет имя класса. не очень оптимально, но вполне будет работать.

Re: Узнать имя класса

Добавлено: Пн авг 25, 2014 1:24 pm
Bagir
Большое спасибо!

Re: Узнать имя класса

Добавлено: Пт сен 05, 2014 10:25 pm
Bagir
Сегодня, пока ползал на чердаке с воздуховодами вентиляции, зацепил провод от датчика дыма. Испытание контроля датчика на обрыв прошло успешно! Алиса вскоре доложила о поломке, и перед названием датчика, было добавлено слово "Пожарные". Хоть я и ранее все это протестил, но тут уже реальный обрыв линии а не тесты, где обычно все проходит на ура.
Вернулся в эту тему еще раз поблагодарить за подсказку. Как то так получилось, что я сразу привязался к $obj->description, и использую то, что там написано для идентификации датчика.
А почему предложенный способ не очень оптимальный? Вроде как в этой таблице не так уж много записей, и условие WHERE ID= тут идеально для получения единственной строки. Я немного дружу со скулем, так что похоже надо заняться изучением базы данных. Тут столько интересного можно набрать ))