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/libraries/FormExtension/Inputs/GlobalSettingsRenderer.php
<?php

namespace LimeSurvey\Libraries\FormExtension\Inputs;

class GlobalSettingsRenderer extends DefaultBaseRenderer
{
    /**
     * @param RawHtmlInput|BaseInput|FileInput $input
     */
    public function run($input): string
    {
        switch (true) {
            case $input instanceof FileInput:
                $id = $input->getId() ? 'id="' . $input->getId() . '"' : '';
                $disabled = $input->isDisabled() ? "disabled" : '';
                [$tooltipText, $tooltipTrigger] = $this->bakeTooltip($input->getTooltip());
                $helpDiv = $this->bakeHelpDiv($input->getHelp());
                return <<<HTML
<div class="row ls-space margin top-10">
    <div class="form-group col-xs-12">
        <label class="col-sm-12 control-label">{$input->getLabel()}</label>
        <div class="col-sm-12">
            <input
                class="form-control"
                {$id} {$input->getAcceptHtml()} {$disabled} {$tooltipTrigger} {$tooltipText}
                name="{$input->getName()}"
                type="file"
            />
        </div>
        {$helpDiv}
    </div>
</div>
HTML;
            case $input instanceof TextInput:
                $disabled = $input->isDisabled() ? "disabled" : "";
                [$tooltipText, $tooltipTrigger] = $this->bakeTooltip($input->getTooltip());
                $helpDiv = $this->bakeHelpDiv($input->getHelp());
                return <<<HTML
<div class="row ls-space margin top-10">
    <div class="form-group col-xs-12">
        <label class="col-sm-12 control-label">{$input->getLabel()}</label>
        <div class="col-sm-12">
            <input {$disabled} {$tooltipTrigger} {$tooltipText} class="form-control" type="text" name="{$input->getName()}" value="{$input->getValue()}">
        </div>
        {$helpDiv}
    </div>
</div>
HTML;
            case $input instanceof ButtonSwitchInput:
                $helpDiv = $this->bakeHelpDiv($input->getHelp());
                [$tooltipText, $tooltipTrigger] = $this->bakeTooltip($input->getTooltip());
                $widget = App()->getController()->widget(
                    'yiiwheels.widgets.switch.WhSwitch',
                    [
                        'name'        => $input->getName(),
                        'id'          => $input->getName(),
                        'value'       => $input->getValue(),
                        'onLabel'     => gT('On'),
                        'offLabel'    => gT('Off'),
                        'htmlOptions' => [
                            'disabled' => $input->isDisabled(),
                            //'data-bs-toggle' => $input->getTooltip() ? 'tooltip' : null,
                            //'title' => $input->getTooltip()
                        ]
                    ],
                    true
                );
                return <<<HTML
<div class="row ls-space margin top-10">
    <div class="form-group col-xs-12">
        <label class="col-sm-12 control-label" for="{$input->getName()}">{$input->getLabel()}</label>
        <div {$tooltipTrigger} {$tooltipText} class="col-sm-12">{$widget}</div>
        {$helpDiv}
    </div>
</div>
HTML;
            default:
                return parent::run($input);
        }
    }

    /** @param ?string $help */
    protected function bakeHelpDiv($help): string
    {
        if ($help) {
            return <<<HTML
<div class="col-sm-12 control-label">
    <span class="hint">{$help}</span>
</div>
HTML;
        } else {
            return '';
        }
    }
}