HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/apklausos/application/helpers/expressions/warnings/EMWarningHTMLBaker.php
<?php

/**
 * LimeSurvey
 * Copyright (C) 2007-2013 The LimeSurvey Project Team / Carsten Schmitz
 * All rights reserved.
 * License: GNU/GPL License v2 or later, see LICENSE.php
 * LimeSurvey is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

/**
 * Small helper class to compose HTML from $warnings.
 */
class EMWarningHTMLBaker
{
    /**
     * Bake HTML out of $warnings.
     *
     * @param EMWarningInterface[] Array of EM warnings
     * @return string
     */
    public function getWarningHTML(array $warnings)
    {
        $message = "<strong>"
            . ngT(
                "This question has at least {n} warning.|This question has at least {n} warnings.",
                count($warnings),
                'html'
            )
            . "</strong>";
        $message .= "<ul class='list-unstyled small'>";
        $warningsDone = [];
        foreach ($warnings as $aWarning) {
            if (!in_array($aWarning, $warningsDone)) {
                $message .= "<li>";
                if ($aWarning->hasHelpLink()) {
                    $message .= $aWarning->bakeHelpLink();
                } else {
                    $message .= $aWarning->getMessage();
                }
                $message .= "</li>";
            }
            $warningsDone[] = $aWarning->getMessage();
        }
        $message .= "</ul>";

        return App()->getController()->widget('ext.AlertWidget.AlertWidget', [
            'text' => $message,
            'type' => 'warning',
        ], true);
        // TODO: Factor out in warning classes OOP
    }
}