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

Создание обьекта класса с заполнением стандартных данных.

Добавлено: Пт май 12, 2017 9:53 am
Kappa
Привет!

Создаю обьект, все нормально создается, но не могу понять как задать поле description

Пробовал $obj->setProperty("description", "test"); как указано в http://majordomo.smartliving.ru/Main/Pr ... gFunctions при попытке считать сразу вроде все нормально, но при этом в админке ничего не меняется...

Что делаю не так? Так же есть вопрос как можно задать месторасположение из кода?

Re: Создание обьекта класса с заполнением стандартных данных

Добавлено: Пт май 12, 2017 11:44 pm
xor
По ссылке, указанной в посте, указано
$obj-> description; Доступ к описанию объекта

Re: Создание обьекта класса с заполнением стандартных данных

Добавлено: Сб май 13, 2017 2:33 am
nick7zmail
Как вариант - можно напрямую в базу вставить...сразу с описанием...

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

      $className = 'openweather';
      $objectName = array('ow_city', 'ow_setting', 'ow_fact', 'ow_day0', 'ow_day1', 'ow_day2');
      $objDescription = array('Местоположение', 'Настройки', 'Текущая температура', 'Прогноз погоды на день', 'Прогноз погоды на завтра', 'Прогноз погоды на послезавтра');
      $rec = SQLSelectOne("SELECT ID FROM classes WHERE TITLE LIKE '" . DBSafe($className) . "'");
      
      if (!$rec['ID'])
      {
         $rec = array();
         $rec['TITLE'] = $className;
         $rec['DESCRIPTION'] = 'Погода Open Weather Map';
         $rec['ID'] = SQLInsert('classes', $rec);
      }
      
      for ($i = 0; $i < count($objectName); $i++)
      {
         $obj_rec = SQLSelectOne("SELECT ID FROM objects WHERE CLASS_ID='" . $rec['ID'] . "' AND TITLE LIKE '" . DBSafe($objectName[$i]) . "'");
         
         if (!$obj_rec['ID'])
         {
            $obj_rec = array();
            $obj_rec['CLASS_ID'] = $rec['ID'];
            $obj_rec['TITLE'] = $objectName[$i];
            $obj_rec['DESCRIPTION'] = $objDescription[$i];
            $obj_rec['ID'] = SQLInsert('objects', $obj_rec);
         }
      } 

Re: Создание обьекта класса с заполнением стандартных данных

Добавлено: Сб май 13, 2017 6:09 am
Kappa
xor писал(а):По ссылке, указанной в посте, указано
$obj-> description; Доступ к описанию объекта
Я так понимаю это считать описание.
nick7zmail писал(а):По ссылке, указанной в посте, указано
Как вариант - можно напрямую в базу вставить...сразу с описанием...
Вот не хочется костылить прямым доступом, при обновлении что поменяется и что может случиться хз... Но если выбора не будет, хоть такое решение...

Re: Создание обьекта класса с заполнением стандартных данных

Добавлено: Сб май 13, 2017 11:20 am
xor
У меня работает по описанию

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

$obj=getObject('nl0');
$obj-> description="Новое описание";
say($obj-> description);
лог
11:18 Алиса: Новое описание
11:17 Алиса: Новая комната

///////////////////////////
Упс! Выводит правильно, но в объекте не меняет.
Тогда, да - только в базу прямо писать.
а для расположения в таблицу objects пишется location_id, для этого нужно сначала в таблице locations его найти по имени.
Геморрой.

Re: Создание обьекта класса с заполнением стандартных данных

Добавлено: Вс май 14, 2017 1:25 am
Kappa
Вот, вот... и меня та же проблема...

Найти-то обьект по имени не проблема, в любом случае там все через MQTT запрос идет, все данные есть... А писать в базу это костыли... Странно что стандартное присваивание не реализовано...

Хм... Или тупо бага?...