TypeError
Argument 1 passed to App\Classes\UUtils\UUtils::sortFAQ() must be of the type array, null given, called in /var/www/vhosts/totamanager.com/app.totamanager.com/resources/views/home.faq.php on line 24 TypeError thrown with message "Argument 1 passed to App\Classes\UUtils\UUtils::sortFAQ() must be of the type array, null given, called in /var/www/vhosts/totamanager.com/app.totamanager.com/resources/views/home.faq.php on line 24" Stacktrace: #9 TypeError in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Traits/Faq/Faq.php:49 #8 App\Classes\UUtils\UUtils:sortFAQ in /var/www/vhosts/totamanager.com/app.totamanager.com/resources/views/home.faq.php:24 #7 require_once in /var/www/vhosts/totamanager.com/app.totamanager.com/helpers/main.php:169 #6 view in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Controllers/FaqController.php:23 #5 App\Controllers\FaqController:default in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Classes/Router/Router.php:215 #4 call_user_func_array in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Classes/Router/Router.php:215 #3 App\Classes\Router\Router:route in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Classes/Router/Router.php:191 #2 App\Classes\Router\Router:processQueue in /var/www/vhosts/totamanager.com/app.totamanager.com/app/Classes/Router/Router.php:138 #1 App\Classes\Router\Router:dispatch in /var/www/vhosts/totamanager.com/app.totamanager.com/core/app.php:24 #0 require_once in /var/www/vhosts/totamanager.com/abbonamenti/promo.totamanager.com/index.php:17
Stack frames (10)
9
TypeError
/app/Traits/Faq/Faq.php49
8
App\Classes\UUtils\UUtils sortFAQ
/resources/views/home.faq.php24
7
require_once
/helpers/main.php169
6
view
/app/Controllers/FaqController.php23
5
App\Controllers\FaqController default
/app/Classes/Router/Router.php215
4
call_user_func_array
/app/Classes/Router/Router.php215
3
App\Classes\Router\Router route
/app/Classes/Router/Router.php191
2
App\Classes\Router\Router processQueue
/app/Classes/Router/Router.php138
1
App\Classes\Router\Router dispatch
/core/app.php24
0
require_once
/var/www/vhosts/totamanager.com/abbonamenti/promo.totamanager.com/index.php17
     */
    public static function getFaqCategories(array $faqs){

        if (count(array_column ($faqs,'categoria'))>0) {
            $categorie = array_unique(array_column ($faqs,'categoria'));
            foreach ($categorie as $categoria) {
                $cats[strtolower(str_replace(' ', '', $categoria))] =  $categoria;
            }
            return self::$categorie = $cats;
        } else return [];

    }

    /**
     * Ritorna l'array FAQ ordinato in base alla colonna CATEGORIA e alla colonna ORDINA del foglio FAQ in SETUP_nomeagenzia
     *
     * @param array $faq
     * @return array
     */
    public static function sortFAQ(array $faq){
        /*
        usort($faq, function($a, $b) {
            return strcmp ($a["ordine"], $b["ordine"]);
        });
        */

        $ordine  = (count(array_column ($faq,'ordine'))>0) ? array_column($faq, 'ordine') : [];
        $categoria = (count(array_column ($faq,'categoria'))>0) ? array_column($faq, 'categoria') : [];

        if (count($ordine) > 0 && count($categoria) > 0) {
            array_multisort($categoria, SORT_ASC, $ordine, SORT_ASC, $faq);
        }
        return $faq;
    }

    /**
     * @param array $faqs
     * @param string $cat_name Nome della Categoria da contare
     * @return int Numero di FAQ presenti nella Categoria
     */
Arguments
  1. "Argument 1 passed to App\Classes\UUtils\UUtils::sortFAQ() must be of the type array, null given, called in /var/www/vhosts/totamanager.com/app.totamanager.com/resources/views/home.faq.php on line 24"
    
 * Web Funnel S.r.l.s.
 * Via E. Mele, 19 - 81100 Caserta (CE) - Italy.
 * Tel. +39.08231767130 - Fax +39.08231764789
 * https://www.webfunnel.it - info@webfunnel.it
 */

use App\Classes\Utils\Utils;
use App\Classes\UUtils\UUtils;

require_once(Utils::userRequire('base'));

$smarty = ($smarty) ?? Utils::$smarty;
$smarty->assign('BODY_class','faq');
$smarty->assign('SECTIONS_FAQ',true);
$smarty->assign('seo_META_TITLE', 'FAQ - Domande poste frequentemente');
$smarty->assign('seo_META_DESCRIPTION','In questa pagina trovi le risposte alle domande poste frequentemente dai nostri clienti');
$smarty->assign('CanonicalURL', UUtils::getAgencyUrl()."faq");

// recupero le FAQ dal soglio SETUP
$faq = UUtils::sortFAQ(UUtils::getFaq());
$smarty->assign('faq', $faq);

// recupero le categorie
$categoriefaq = UUtils::getFaqCategories($faq);
$smarty->assign('categoriefaq', $categoriefaq);

// conto le offerte in ogni categoria
$smarty->assign('totInCategories', UUtils::getTotInCategories($faq));


$stile = UUtils::getStyleId();
switch ($stile) {
    case "1":
        /* Mostra il logo ed il menu */
        require(Utils::userRequire('top'));
        /* Mostra il copyright */
        require(Utils::userRequire('footer'));
        /* Mostra il logo Web Funnel */
        require(Utils::userRequire('poweredby'));
        break;
    }
}
 
if (! function_exists('view')) {
    /**
     * Get the evaluated view contents for the given view.
     */
    function view($view, array $vars = [])
    {
        global $TM, $lang, $userid, $userkey, $pag, $step;
        
        if ($TM->getOfflineStatus($userid)>0) $view = 'home.offline';
 
        if (count($vars) > 0) {
            foreach ($vars as $chiave => $valore) :
                $_REQUEST[$chiave] = $valore ?? '';
            endforeach;
            extract($vars);
        }
        require_once(Utils::userRequire($view));
    }
}
if (! function_exists('super_unique')) {
    /**
     * Elimina le righe di $array con valore duplicato della colonna $key.
     * Funziona con gli array multidimensionali
     *
     * @param array $array
     * @param string $key
     * @param $matches
     * @return array
     */
    function super_unique(array $array, string $key, &$matches =[]): array
    {
        $temp_array = [];
        foreach ($array as &$v) {
            if (!isset($temp_array[$v[$key]]))
                $temp_array[$v[$key]] =& $v;
            else $matches[]=$v[$key];
        }
Arguments
  1. "/var/www/vhosts/totamanager.com/app.totamanager.com/resources/views/home.faq.php"
    
 *
 * Web Funnel S.r.l.s.
 * Via E. Mele, 19 - 81100 Caserta (CE) - Italy.
 * Tel. +39.08231767130 - Fax +39.08231764789
 * https://www.webfunnel.it - info@webfunnel.it
 */

/**
 * Project: TOTA Manager
 * User: Daniele
 * Date: 29/10/2018
 * Time: 22:01
 */

namespace App\Controllers;

class FaqController extends Controller {

    public function default($pag) {
        view('home.faq',['pag'=>$pag]);
    }
}
            $e_title = 'Attenzione:';
            $e_msg = $e->getMessage();
            $e_desc_array = [];
            //.'<br><br>'.print_r($vars)
            view('errorpage.404', compact('e_title','e_msg','e_desc_array'));
        }
    }

    public function route($stats, $handler, $vars)
    {
        try {
            if (is_callable($handler)){
                call_user_func_array($handler, $vars);
                die();
            }
            list($controller, $method) = explode("@", $handler, 2);
            list($controller_path, $namespace_class) = $this->getNamespaceAndPath($controller);
            if (file_exists($controller_path)) {
                if (method_exists($namespace_class, $method))
                    call_user_func_array(array(new $namespace_class, $method), $vars);
                else throw new \Exception('Il metodo ' . $method . ' non esiste');
            } else throw new \Exception( $controller_path . ' non esiste');
        } catch (\Exception $e) {
            $e_title = 'ATTENZIONE:';
            $e_msg = $e->getMessage();
            $e_desc_array = [
                '<b>File:</b> '.$e->getFile(),
                '<b>Line:</b> '.$e->getLine(),
                '<b>Code:</b> '.$e->getCode(),
            ];
                //.'<br><br>'.print_r($vars)
            view('errorpage.default', compact('e_title','e_msg','e_desc_array'));
        }
    }

    public function getNamespaceAndPath(string $controller): array
    {
        $subDir = $this->verifySubDir($controller);
        if (empty($subDir)) {
            $controller_path = __ABSPATH__ . 'app/Controllers/' . $controller . '.php';
            $e_title = 'Attenzione:';
            $e_msg = $e->getMessage();
            $e_desc_array = [];
            //.'<br><br>'.print_r($vars)
            view('errorpage.404', compact('e_title','e_msg','e_desc_array'));
        }
    }

    public function route($stats, $handler, $vars)
    {
        try {
            if (is_callable($handler)){
                call_user_func_array($handler, $vars);
                die();
            }
            list($controller, $method) = explode("@", $handler, 2);
            list($controller_path, $namespace_class) = $this->getNamespaceAndPath($controller);
            if (file_exists($controller_path)) {
                if (method_exists($namespace_class, $method))
                    call_user_func_array(array(new $namespace_class, $method), $vars);
                else throw new \Exception('Il metodo ' . $method . ' non esiste');
            } else throw new \Exception( $controller_path . ' non esiste');
        } catch (\Exception $e) {
            $e_title = 'ATTENZIONE:';
            $e_msg = $e->getMessage();
            $e_desc_array = [
                '<b>File:</b> '.$e->getFile(),
                '<b>Line:</b> '.$e->getLine(),
                '<b>Code:</b> '.$e->getCode(),
            ];
                //.'<br><br>'.print_r($vars)
            view('errorpage.default', compact('e_title','e_msg','e_desc_array'));
        }
    }

    public function getNamespaceAndPath(string $controller): array
    {
        $subDir = $this->verifySubDir($controller);
        if (empty($subDir)) {
            $controller_path = __ABSPATH__ . 'app/Controllers/' . $controller . '.php';
                    if (!$GLOBALS['TM']->checkReportKey($mp_uid, $mp_rkey)) {
                        throw new \Exception('Accesso non consentito!');
                    }
                    unset($vars['mp_rkey']);
                }
            }
            switch ($stats)
            {
                // ... 404 Not Found
                case Dispatcher::NOT_FOUND:
                    throw new \Exception ("(404 error) L'indirizzo URL &egrave; errato oppure &egrave; stato rimosso.");
                    break;
                // ... 405 Method Not Allowed
                case Dispatcher::METHOD_NOT_ALLOWED:
                    list($stats, $allowedMethods) = $routeInfo;
                    throw new \Exception ("(405 error) Metodo consentito '".$allowedMethods);
                    break;

                case Dispatcher::FOUND:
                    $this->route($stats, $handler, $vars);
                    break;
            }
        } catch (\Exception $e) {
            $GLOBALS['TM']->checkUser(__USERID__, __USERKEY__);
            $e_title = 'Attenzione:';
            $e_msg = $e->getMessage();
            $e_desc_array = [];
            //.'<br><br>'.print_r($vars)
            view('errorpage.404', compact('e_title','e_msg','e_desc_array'));
        }
    }

    public function route($stats, $handler, $vars)
    {
        try {
            if (is_callable($handler)){
                call_user_func_array($handler, $vars);
                die();
            }
            list($controller, $method) = explode("@", $handler, 2);

            // rotte di default ------------------------------------------------------------------------------------------------
            $r->get('/', 'Controller@ReditectToIndex');

            //dd($r->getData());
        });

        // Fetch method and URI from somewhere
        $this->httpMethod =  $this->request->method(); // $_SERVER['REQUEST_METHOD'];
        $uri = $this->request->getRequestUri(); // $_SERVER['REQUEST_URI'];

        // Strip query string (?foo=bar) and decode URI
        if (false !== $pos = strpos($uri, '?')) {
            $uri = substr($uri, 0, $pos);
        }
        $uri = rawurldecode($uri);

        $routeInfo = $dispatcher->dispatch($this->httpMethod, $uri);

        $this->processQueue($routeInfo);
    }

    protected function processQueue($routeInfo)
    {
        try {
            list($stats, $handler, $vars) = $routeInfo;
            if(is_array($vars)) {
                $_GET = array_merge($_GET, $vars);
                // Faccio in modo che queste variabili siano GLOBALI
                extract($vars);
                if (array_key_exists('mp_uid', $vars)) {
                    $mp_uid = $vars['mp_uid'];
                    // elimino la variabile dall'array $vars per evitare di doverle sempre aggiungere
                    // tra gli argomenti del metodo() della classe, anche quando non ci servono
                    unset($vars['mp_uid']);
                }
                if (array_key_exists('mp_ukey', $vars)) {
                    $mp_ukey = $vars['mp_ukey'];
                    // elimino la variabile dall'array $vars per evitare di doverle sempre aggiungere
                    // tra gli argomenti del metodo() della classe, anche quando non ci servono
 * Web Funnel S.r.l.s.
 * Via E. Mele, 19 - 81100 Caserta (CE) - Italy.
 * Tel. +39.08231767130 - Fax +39.08231764789
 * https://www.webfunnel.it - info@webfunnel.it
 */
 
use App\Classes\Request\Request;
use App\Classes\Router\Router;
 
/*
|-----------------------------------------------------------------------------------------------------
| Includo file di configurazione, dipendenze del progetto, traduzioni, helpers, ecc..
|-----------------------------------------------------------------------------------------------------
 */
require_once(__ABSPATH__.'core/bootstrap.php');
 
$request = Request::createFromGlobals();
 
$router = new Router($request);
$router->dispatch();
<?php
/**
 * Copyright (c) 2015 - 2019. Web Funnel S.r.l.s. - All rights reserved.
 *
 * Web Funnel S.r.l.s.
 * Via E. Mele, 19 - 81100 Caserta (CE) - Italy.
 * Tel. +39.08231767130 - Fax +39.08231764789
 * https://www.webfunnel.it - info@webfunnel.it
 */
 
if (!defined('__ABSPATH__')) define('__ABSPATH__', __DIR__ . DIRECTORY_SEPARATOR.'..'. DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'app.totamanager.com'.DIRECTORY_SEPARATOR);
if (!defined('__ADVPATH__')) define('__ADVPATH__', __DIR__ . DIRECTORY_SEPARATOR);
 
if (!defined('__USERID__') ) define('__USERID__',  'tota');
if (!defined('__USERKEY__')) define('__USERKEY__', 'offerte');
 
require_once(__ABSPATH__ . 'core/app.php');
?>
Arguments
  1. "/var/www/vhosts/totamanager.com/app.totamanager.com/core/app.php"
    

Environment & details:

Key Value
mp_uid
"tota"
mp_ukey
"offerte"
mp_faq
""
pag
"faq"
empty
empty
empty
Key Value
lang
"it"
Key Value
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
PP_CUSTOM_PHP_INI
"/var/www/vhosts/system/promo.totamanager.com/etc/php.ini"
PP_CUSTOM_PHP_CGI_INDEX
"plesk-php74-fastcgi"
HTTP_CONNECTION
"close"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/tota-offerte/faq"
QUERY_STRING
"mp_uid=tota&mp_ukey=offerte&mp_faq"
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/tota-offerte/faq"
REDIRECT_QUERY_STRING
"mp_uid=tota&mp_ukey=offerte&mp_faq"
REMOTE_PORT
"58806"
SCRIPT_FILENAME
"/var/www/vhosts/totamanager.com/abbonamenti/promo.totamanager.com/index.php"
SERVER_ADMIN
"root@localhost"
CONTEXT_DOCUMENT_ROOT
"/var/www/vhosts/totamanager.com/abbonamenti/promo.totamanager.com"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/var/www/vhosts/totamanager.com/abbonamenti/promo.totamanager.com"
REMOTE_ADDR
"3.239.162.98"
SERVER_PORT
"443"
SERVER_ADDR
"89.36.209.116"
SERVER_NAME
"promo.totamanager.com"
SERVER_SOFTWARE
"Apache"
SERVER_SIGNATURE
""
HTTP_HOST
"promo.totamanager.com"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
SSL_TLS_SNI
"promo.totamanager.com"
HTTPS
"on"
PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY
"0"
PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY
"0"
PERL5LIB
"/usr/share/awstats/lib:/usr/share/awstats/plugins"
SCRIPT_URI
"https://promo.totamanager.com/tota-offerte/faq"
SCRIPT_URL
"/tota-offerte/faq"
UNIQUE_ID
"ZgZM4xPDXZWTvCB1G0LFQgAAAM0"
REDIRECT_STATUS
"200"
REDIRECT_SSL_TLS_SNI
"promo.totamanager.com"
REDIRECT_HTTPS
"on"
REDIRECT_PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY
"0"
REDIRECT_PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY
"0"
REDIRECT_PERL5LIB
"/usr/share/awstats/lib:/usr/share/awstats/plugins"
REDIRECT_SCRIPT_URI
"https://promo.totamanager.com/tota-offerte/faq"
REDIRECT_SCRIPT_URL
"/tota-offerte/faq"
REDIRECT_UNIQUE_ID
"ZgZM4xPDXZWTvCB1G0LFQgAAAM0"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1711688931.1355
REQUEST_TIME
1711688931
empty
0. Whoops\Handler\PrettyPageHandler