но так как нужны были главные изображения товаров из заказа - вот тут тормоза и наступали.
Знакомая история
В этом варианте у нас оказался лучше через функцию fn_get_image_pairs.
$product_ids = ... тут нужно собрать массив.
$all_images = fn_get_image_pairs($product_ids, 'product', 'M');
foreach ($orders as &$order) {
$order['order_info'] = fn_get_order_info($order['order_id']);
$order['order_info']['amount'] = 0;
foreach ($order['order_info']['products'] as &$p) {
$order['order_info']['amount'] += $p['amount'];
$p['image'] = $all_images[$p['product_id]];
}
}
}
1 лайк
Ltim
21.Апрель.2023 00:36:40
22
Доброе утро! Пытался достать данные отсюда, не получается почему вместо такого выходит table order. Может я туплю
<?php
use Tygh\Registry;
defined('BOOTSTRAP') or die('Access denied');
require_once(Registry::get('config.dir.functions') . 'fn.sales_reports.php');
/** @var string $mode */
if ($mode == 'manage') {
$orders = Tygh::$app['view']->getTemplateVars('orders');
$new_array = Tygh::$app['view']->getTemplateVars('orders');
foreach ($orders as &$order) {
$order['order_info'] = fn_get_order_info($order['order_id']);
$order['order_info']['amount'] = 0;
foreach ($order['order_info']['products'] as &$p) {
$order['order_info']['amount'] += $p['amount'];
$p['image'] = fn_get_image_pairs($p['product_id'], 'product', 'M');
}
if (!empty($order['tables'])) {
$table = $order['tables'];
$_values = fn_get_report_statistics($table);
foreach ($table['elements'] as $key => $value) {
foreach ($_values[$value['element_hash']] as $k => $v) {
$_new_array[] = array(
'label' => $value['description'],
'full_descr' => $value['full_description'],
'count' => $v
);
}
}
$new_array['pie_data'] = $_new_array;
$new_array['title'] = $table['description'];
}
Tygh::$app['view']->assign('new_array', $new_array);
}
Tygh::$app['view']->assign('orders', $orders);
// fn_print_r($new_array);
fn_print_r($orders);
}
Ltim
21.Апрель.2023 02:39:15
23
Выяснил, что то что я хочу выполнить не имеет массивов(
Не понял в где эти данные. Может кто знает?
Ltim
21.Апрель.2023 03:34:08
24
Нужно тогда вывести весь table который в sales_report.view
Ltim
22.Апрель.2023 05:46:38
25
Как правильно вывести массивы данных $table[‘elements’] в моде order.manage. Известно, массив данных находится в контроллере sales_report.view?
Из одного контроллера в другой данные не вытащить через функцию getTemplateVars
Какие данные Вы хотите получить из sales_report.view ?
Зайдите в контроллер sales_report.php и вытащите нужные функции.
Если речь о данные из функции fn_get_report_statistics, то там ожидается table_id и еще ряд элементов Скриншот 24-04-2023 01:09:42.jpg
$table = $order['tables'];
$_values = fn_get_report_statistics($table);
Этот вариант скорее не рабочий, если только Вы заранее не добавили в order данные для ‘tables’
1 лайк
Ltim
24.Апрель.2023 01:37:27
27
Мне нужнен массив $table из sales_report.view. В нем хранится данные о созданных таблиц отчетов.
Ltim
24.Апрель.2023 02:59:29
29
Вместо того чтобы писать их вручную я вызвал вот так функции sales_report:
require_once(Registry::get(‘config.dir.functions’) . ‘fn.sales_reports.php’);
этот файл был уже подключен - все файлы функций подключаются в контроллере init
поэтому строчка лишняя, можно просто без зазрения совести вызывать любые функции из файлов fn. и функции из включенных модулей.
1 лайк
Ltim
24.Апрель.2023 12:31:02
31
Вроде когда вызываю функцию без этой строки она выдает ошибку, типо не могу понять что за функция. Ну типо такого смысла