ErrorException: Invalid argument supplied for foreach()

Debugger::handle_error (2, "Invalid argument supplied for foreach()", "/var/www/u0533880/public_html/advocates.su/apps/blog/handlers/tag.php", 37, array(13))

37/var/www/u0533880/public_html/advocates.su/apps/blog/handlers/tag.php

35. }
36.
37. foreach ($posts as $post) {
38.     $post->url '/blog/post/' $post->id '/' URLify::filter ($post->title);
39.     $post->tag_list = (strlen ($post->tags) > 0) ? explode (','$post->tags) : array ();

require ("/var/www/u0533880/public_html/advocates.su/apps/blog/handlers/tag.php")

471/var/www/u0533880/public_html/advocates.su/lib/Controller.php

469.         // Run the handler and get its output
470.         ob_start ();
471.         $res = require ($handler);
472.         $out ob_get_clean ();
473.         if (is_string ($res) && strlen ($res) > 0) {

Controller->handle ("apps/blog/handlers/tag.php", false)

175/var/www/u0533880/public_html/advocates.su/lib/FrontController.php

173.             $handler $controller->route ($_SERVER['REQUEST_URI']);
174.         }
175.         $page->body $controller->handle ($handlerfalse);
176.
177.         /**

FrontController::run ()

34/var/www/u0533880/public_html/advocates.su/index.php

32. $argc = isset ($argc) ? $argc null;
33. $argv = isset ($argv) ? $argv null;
34. return FrontController::run ($argv$argc);

Error Context

$_COOKIE = array ();

$_SERVER = array (
    
"PATH" => "/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin"
    "TZ" 
=> "Europe/Moscow"
    "SCRIPT_NAME" 
=> "/index.php"
    "REQUEST_URI" 
=> "/en/blog/tag/%25D0%25AD%25D0%25BA%25D1%2581%25D0%25BF%25D0%25B5%25D1%2580%25D1%2582%25D0%25BD%25D0%25BE%25D0%25B5%2520%25D0%25BC%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5/2"
    "QUERY_STRING" 
=> ""
    "REQUEST_METHOD" 
=> "GET"
    "SERVER_PROTOCOL" 
=> "HTTP/1.0"
    "GATEWAY_INTERFACE" 
=> "CGI/1.1"
    "REDIRECT_URL" 
=> "/en/blog/tag/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5/2"
    "REMOTE_PORT" 
=> 41620
    
"SCRIPT_FILENAME" => "/var/www/u0533880/public_html/advocates.su/index.php"
    "SERVER_ADMIN" 
=> "webmaster@advocates.u0533880.cp.regruhosting.ru"
    "CONTEXT_DOCUMENT_ROOT" 
=> "/var/www/u0533880/public_html/advocates.su"
    "CONTEXT_PREFIX" 
=> ""
    "DOCUMENT_ROOT" 
=> "/var/www/u0533880/public_html/advocates.su"
    "REMOTE_ADDR" 
=> "18.212.102.174"
    "SERVER_PORT" 
=> 443
    
"SERVER_ADDR" => "31.31.198.231"
    "SERVER_NAME" 
=> "advocates.su"
    "SERVER_SOFTWARE" 
=> "Apache"
    "SERVER_SIGNATURE" 
=> ""
    "HTTP_USER_AGENT" 
=> "claudebot"
    "HTTP_ACCEPT" 
=> "*/*"
    "HTTP_CONNECTION" 
=> "close"
    "HTTP_X_FORWARDED_HTTPS" 
=> "on"
    "HTTP_X_FORWARDED_FOR" 
=> "18.212.102.174"
    "HTTP_X_HTTPS" 
=> "On"
    "HTTP_HOST" 
=> "advocates.su"
    "SCRIPT_URI" 
=> "https://advocates.su/en/blog/tag/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5/2"
    "SCRIPT_URL" 
=> "/en/blog/tag/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5/2"
    "REQUEST_SCHEME" 
=> "https"
    "HTTPS" 
=> "on"
    "UNIQUE_ID" 
=> "ZgVwAUb1oHSUPGeC_I2luwAAAG4"
    "REDIRECT_STATUS" 
=> 200
    
"REDIRECT_SCRIPT_URI" => "https://advocates.su/en/blog/tag/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5/2"
    "REDIRECT_SCRIPT_URL" 
=> "/en/blog/tag/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5/2"
    "REDIRECT_REQUEST_SCHEME" 
=> "https"
    "REDIRECT_HTTPS" 
=> "on"
    "REDIRECT_UNIQUE_ID" 
=> "ZgVwAUb1oHSUPGeC_I2luwAAAG4"
    "FCGI_ROLE" 
=> "RESPONDER"
    "PHP_SELF" 
=> "/index.php"
    "REQUEST_TIME_FLOAT" 
=> 1711632385.9348
    
"REQUEST_TIME" => 1711632385
    
"argv" => array ()
    
"argc" => 0
);

$handler "apps/blog/handlers/tag.php";

$internal false;

$data = array ();

$page Page (
    
$head "";
    
$tail "";
    
$title "";
    
$_menu_title "";
    
$_window_title "";
    
$body "";
    
$layout "default";
    
$scripts = array ();
    
$is_being_rendered false;
    
$cache_control true;
    
$preview false;
    
$id "blog";
    
$limit 10;
    
$tag "%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5";
    
$num 0;
    
$offset 0;
    
$feed 2;
    
$count false;
    
$last 1;
    
$more false;
    
$next 2;
);

$tpl Template (
    
$charset "UTF-8";
    
$cache_folder "cache";
    
$layouts_folder "layouts";
    
$view_folders "apps/%s/views/%s";
    
$default_layout "default";
    
$file_extension "html";
    
$controller Controller (
        
$params = array (
            
"%25D0%25AD%25D0%25BA%25D1%2581%25D0%25BF%25D0%25B5%25D1%2580%25D1%2582%25D0%25BD%25D0%25BE%25D0%25B5%2520%25D0%25BC%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5"
            
2
        
);
        
$internal false;
        
$data = array ();
        
$cli false;
        
$put_data = ;
        
$app "blog";
        
$uri "blog/tag/%25D0%25AD%25D0%25BA%25D1%2581%25D0%25BF%25D0%25B5%25D1%2580%25D1%2582%25D0%25BD%25D0%25BE%25D0%25B5%2520%25D0%25BC%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5/2";
        
$chunked false;
        
$cache false;
        
$status_code false;
);
);

$cache Cache (
    
$dir "cache/datastore";
);

$i18n I18n (
    
$language "en";
    
$locale = ;
    
$directory "lang";
    
$lang_hash = array (
        
"en" => array (
            
"Home" => "Home"
        
)
    );
    
$hash_order = array (
        
"en"
    
);
    
$charset "UTF-8";
    
$fullname "English";
    
$day_date_format "dddd, mmmm d, yyyy";
    
$short_day_date_format "ddd, mmm d";
    
$date_format "mmmm d, yyyy";
    
$short_format "mmm d";
    
$time_format "h:MMa";
    
$year_format "yyyy";
    
$fallbacks = array ();
    
$languages = array (
        
"en" => array (
            
"name" => "English"
            "code" 
=> "en"
            "locale" 
=> ""
            "charset" 
=> "UTF-8"
            "fallback" 
=> ""
            "default" 
=> ""
        
)
        
"ru" => array (
            
"name" => "Русский"
            "code" 
=> "ru"
            "locale" 
=> ""
            "charset" 
=> "UTF-8"
            "fallback" 
=> ""
            "default" 
=> 1
            
"date_format" => "dd/mm/yyyy"
            "short_format" 
=> "dd mmm"
            "time_format" 
=> "HH:MM"
        
)
    );
    
$cookieName "lang";
    
$url_includes_lang true;
    
$new_request_uri "/blog/tag/%25D0%25AD%25D0%25BA%25D1%2581%25D0%25BF%25D0%25B5%25D1%2580%25D1%2582%25D0%25BD%25D0%25BE%25D0%25B5%2520%25D0%25BC%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5/2";
    
$prefix "/en";
    
$negotiation "url";
    
$error = ;
    
$default "ru";
);

$cache_uri "_c_blog_tag_%25D0%25AD%25D0%25BA%25D1%2581%25D0%25BF%25D0%25B5%25D1%2580%25D1%2582%25D0%25BD%25D0%25BE%25D0%25B5%2520%25D0%25BC%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D0%25B5_2";

$out false;

$appconf = array (
    
"Blog" => array (
        
"title" => "Blog"
        "layout" 
=> "default"
        "post_layout" 
=> "default"
        "include_in_nav" 
=> 1
        
"preview_chars" => 250
        
"post_format" => "html"
        "comments" 
=> "facebook"
        "show_related_posts" 
=> ""
        "disqus_shortname" 
=> ""
    
)
    
"Social Buttons" => array (
        
"twitter" => ""
        "facebook" 
=> ""
        "google" 
=> ""
    
)
    
"Custom Handlers" => array (
        
"blog/index" => "blog/index"
        "blog/post" 
=> "blog/post"
    
)
    
"Admin" => array (
        
"handler" => "blog/admin"
        "name" 
=> "Blog Posts"
        "install" 
=> "blog/upgrade"
        "upgrade" 
=> "blog/upgrade"
        "version" 
=> "1.1.4-stable"
        "sitemap" 
=> "blog\Post::sitemap"
        "sitemap2" 
=> "blog\Post::sitemap2"
        "search" 
=> "blog\Post::search"
    
)
);

$preview_chars 250;

$p blog\Post (
    
$table "#prefix#blog_post";
    
$_extended_field "extra";
    
$_extended false;
    
$key "id";
    
$keyval false;
    
$data = array ();
    
$fields = array ();
    
$error false;
    
$is_new true;
    
$query_fields "*";
    
$query_order "";
    
$query_group "";
    
$query_filters = array ();
    
$query_params = array ();
    
$query_having = array ();
    
$query_from false;
    
$verify = array ();
    
$failed = array ();
);

$posts false;