Your IP : 10.10.0.253


Current Path : /var/www/components/com_qf3/classes/calculator/
Upload File :
Current File : /var/www/components/com_qf3/classes/calculator/custom.php

<?php
/**
* @Copyright ((c) plasma-web.ru
        * @license    GPLv2 or later
        */

namespace QuickForm;

defined('_JEXEC') or die();

class qfCalculator_tmpl extends qfCalculator
{
    public function getTmpl($project, $data)
    {
        $customQFcalculator='';
        $cod = '<?php '.$project->params->calcformula.' ?>';

        $tmpfname = tempnam(sys_get_temp_dir(), "qf");
        $handle = fopen($tmpfname, "w");
        fwrite($handle, $cod, strlen($cod));
        fclose($handle);
        if (is_file($tmpfname)) {
            include $tmpfname;
            unlink($tmpfname);
        }

        if (!$customQFcalculator) {
            return;
        }

        $calculatorSum = $customQFcalculator($project, $data);
        $arr = $this->CalcArray($data);
        $sumarr = array();

        foreach ($calculatorSum as $k => $v) {
            foreach ($arr as $kk => $vv) {
                if ($k == $kk) {
                    $sumarr[] = array($v, $vv);
                }
            }
        }

        return $sumarr;
    }


    protected function CalcArray($data)
    {
        $resarr = array();

        foreach ($data as $field) {
            if ($field->teg == 'cloner' || $field->teg == 'qftabs') {
                foreach ($field->data as $row) {
                    $arr = $this->CalcArray($row);
                    $resarr = array_merge($resarr, $arr);
                }
            } elseif ($field->teg == 'calculatorSum') {
                $resarr[$field->fieldid] = $field;
            } else {
                if (isset($field->data) && ! empty($field->data)) {
                    $arr = $this->CalcArray($field->data);
                    $resarr = array_merge($resarr, $arr);
                }
            }
        }

        return $resarr;
    }
}