Как вывести данные

но так как нужны были главные изображения товаров из заказа - вот тут тормоза и наступали.

Знакомая история :slight_smile:
В этом варианте у нас оказался лучше через функцию 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 лайк

Доброе утро! Пытался достать данные отсюда, не получается почему вместо такого выходит table order. Может я туплю :sweat_smile:

<?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);
}

Выяснил, что то что я хочу выполнить не имеет массивов(
Не понял в где эти данные. Может кто знает?

Нужно тогда вывести весь table который в sales_report.view

Как правильно вывести массивы данных $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 лайк

Мне нужнен массив $table из sales_report.view. В нем хранится данные о созданных таблиц отчетов.

Спасибо за ответ!

Вместо того чтобы писать их вручную я вызвал вот так функции sales_report:
require_once(Registry::get(‘config.dir.functions’) . ‘fn.sales_reports.php’);

этот файл был уже подключен - все файлы функций подключаются в контроллере init
поэтому строчка лишняя, можно просто без зазрения совести вызывать любые функции из файлов fn. и функции из включенных модулей.

1 лайк

Вроде когда вызываю функцию без этой строки она выдает ошибку, типо не могу понять что за функция. Ну типо такого смысла