Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Особенности данных в Поле 42

Особенности данных в Поле 42 2 года 11 мес. назад #11435

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
Всем привет.
Попробовал поработать с этим полем. Цель - вывести Цену из таблиц стороннего компонента. Все ОК, извлекает данные из таблицы компонента, пишет в таблицу ТК, выводит в админку и на страницу сайта.
Но возник побочный эффект - перестали работать расчеты в Computation Rule.
Если я делю Цену (поле 42) на Вес (type Text) получаю 0. (все поля в базе Decimal)
Раньше, когда Цена тоже была type Text и вводилась руками, все прекрасно работало, даже с Varchart.
Отсюда вопрос - это такая особенность поля 42 или данных которые я в нем извлекаю? Может их как-то надо преобразовать?
Я не программист, работаю методом "тыка". Но подсказки понимаю :-)
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 2 года 11 мес. назад #11436

  • EWG65
  • EWG65 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 109
  • Спасибо получено: 44
  • Репутация: 12
Насколько я понимаю, последняя строка имеет вид:
$value = какие-то манипуляции с данными
А если попробовать
"$value" =
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 2 года 11 мес. назад #11437

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
Все манипуляции по извлечению делаю в PrepareStore, так как результат извлечения данных из таблиц стороннего компонента j2Store записываю в поле "Price" своего ТК "Товары". Далее произвожу манипуляции с эти полем => сортировку по цене товаров. Это работает.
Последние строки имеют вид:
$list = $db->loadObjectList();  // так как извлекается не один результат а несколько (id, price , saleprice) 
foreach ($list as $comp) //   это я подсмотрел поиском по форуму :-)
{
    $price1 =  $comp->price;
    $price2 =  $comp->saleprice;
        IF ($price2 == 0) {
        $value = $price1;
        }
        ELSE {
        $value = $price2;
        } 
}
Наверное именно здесь что-то не доделано?
Но результат пишется в базу (decimal 10,2) и может быть извлечен (например для сортировки по цене)

Единственная проблема - не работает с Computation Rule.
Если пытаюсь "Core42" разделить на "Text" = 0
Если пытаюсь "Core42" разделить на другое "Core42" = NaN
Последнее редактирование: 2 года 11 мес. назад от stas_rsv.
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 2 года 11 мес. назад #11438

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
Пока писал предыдущий пост, до меня дошло решение моей задачи.
Создаем новое поле "Text" со Storage "Core42" оно прекрасно извлекает результаты расчета из базы и может участвовать в расчетах.
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 2 года 9 мес. назад #11453

  • dnz
  • dnz аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 136
  • Репутация: 1
А можно для особо тупых медленно и два раза. У меня тоже стоит вопрос извлечения данных из корзины J2store в поля ТК. Где можно букварь почитать по проблеме? в php тоже знания околонулевые
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 2 года 9 мес. назад #11454

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
dnz пишет:
У меня тоже стоит вопрос извлечения данных из корзины J2store в поля ТК. Где можно букварь почитать по проблеме? в php тоже знания околонулевые
Привет соратнику по мучениям. Я так же не программист.
К сожалению "мануалов" в привычном понимании на эту тему найти думаю не реально. Только использование опыта работы с полем 42 других пользователей Seblod .
Где у тебя конкретная затыка?
1. В понимании логики работы поля Core 42?
Тогда нужно еще раз перечитать все что есть о нем на этом форуме.
2. В формировании запроса к БД (к таблицам J2Store)?
Мне помогли эксперименты с запросами к базе в программе MySQL Manager.
Если сформулируешь и задашь конкретный вопрос, может быть я смогу помочь, пока еще помню как это делал :-)
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 3 мес. 2 нед. назад #11886

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
Всем привет. Более менее освоил поле Core 42.
Однако новые возможности порождают новые задачи, а те в свою очередь - новые вопросы :-).
Проблема такая - получаю данные в PrepareForm, но не могу производить с ними дальнейшие манипуляции.
Пример 1: Core 42 в форме обратной связи, получаю данные, вывожу скрытый (или не скрытый) input, но его содержимое не приходит в письме. Все остальные поля приходят. (Все поля Store None, так как сохранение не требуется).
Пример 2: Core 42 в форме создания/редактирования материала, получаю данные, вывожу в input, но дальше все. Я не могу использовать эти данные ни в Conditional ни в Computation. И не важно сохранены ли данные в PrepareStore или нет.
Это особенности поля? Или существует возможность использовать данные поля Core 42? Тогда как это можно сделать?
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 3 мес. 1 нед. назад #11887

  • EWG65
  • EWG65 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 109
  • Спасибо получено: 44
  • Репутация: 12
А storage для этого поля задано?
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 3 мес. 1 нед. назад #11888

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
Для первого примера (с формой обратной связи) НЕТ. Так и остальные поля тоже НЕТ.
Для второго примера поля в форме редактирования ДА.
Администратор запретил публиковать записи гостям.

Особенности данных в Поле 42 3 мес. 1 нед. назад #11889

  • EWG65
  • EWG65 аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 109
  • Спасибо получено: 44
  • Репутация: 12
Насколкько я помню, данные из Prepare Form в Prepare Store передаются через
$_ POST['field_name']  //Пробел удалить
где field_name - имя поля из Prepare Form.
Т.е. в Prepare Store надо поместить
$value = $_ POST['field_name']; //Пробел удалить
либо
$value = JFactory::getApplication()->input->getValue('field_mane');
а в Prepare Form полю input добавить атрибут name="field_name".
По идее, так должно работать.
Последнее редактирование: 3 мес. 1 нед. назад от EWG65.
Администратор запретил публиковать записи гостям.
Спасибо сказали: stas_rsv

Особенности данных в Поле 42 3 мес. 1 нед. назад #11890

  • stas_rsv
  • stas_rsv аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 88
  • Спасибо получено: 7
  • Репутация: 1
EWG65 пишет:
... а в Prepare Form полю input добавить атрибут name="field_name"...
Как всегда дело в нюансах :)
Ключ оказался именно в имени поля.
//
Маленькая поправка - с правильным именем поля input оно стало отправляться на почту
Но в условиях Conditional States так и не участвует, независимо от того сохранено в базе или нет
И если при выводе в Content это можно обойти, создав поле text с тем же хранилищем что и Core42, то в Form (Site Form) так не получается. Они дополняют друг друга (записывают данные дважды, до сохранения в Core42 = 1, после сохранения = 11)
Последнее редактирование: 3 мес. 1 нед. назад от stas_rsv.
Администратор запретил публиковать записи гостям.
Модераторы: KKAAZZOO

roundtheme