<commit_before><?php
class Vpc_Form_Decorator_Label extends Vpc_Form_Decorator_Abstract
{
    public function processItem($item)
    {
        if (isset($item['items'])) {
            foreach ($item['items'] as $k=>$i) {
                $item['items'][$k] = $this->processItem($i);
            }
        } else if (isset($item['html'])) {
            if (!isset($item['preHtml'])) $item['preHtml'] = '';
            if (!isset($item['postHtml'])) $item['postHtml'] = '';
            $errors = false;
            if ($item['item']) {
//todo: nicht nochmal fragen, vorallem nicht mit $_REQUEST (problem bei File+MultiFields)
//                 $errors = $item['item']->validate($_REQUEST);
            }
            $class = 'vpsField';
            if ($item['item'] && $item['item']->getLabelAlign()) {
                $class .= ' vpsFieldLabelAlign'.ucfirst($item['item']->getLabelAlign());
            }
            if ($errors) {
                $class .= ' vpsFieldError';
            }
            if ($item['item'] && $item['item']->getAllowBlank()===false) {
                $class .= ' vpsFieldRequired';
            }
            if ($item['item']) {
                $c = get_class($item['item']);
                if (substr($c, -10) == '_Component') $c = substr($c, 0, -10);
                $c = str_replace('_', '', $c);
                $class .= ' '.strtolower(substr($c, 0, 1)).substr($c, 1);
				if (!isset($item['id'])) {
                    $class .= ' '.$item['item']->getFieldName();
                }
            }
            if (isset($item['id'])) {
                $class .= ' '.$item['id'];
            }
            $item['preHtml'] .= '<div class="'.$class.'">';
            if ($item['item'] && !$item['item']->getHideLabels() && $item['item']->getFieldLabel()) {
                $item['preHtml'] .= '<label for="'
                    .(isset($item['id']) ? $item['id'] : $item['item']->getFieldName()).'"'
                    .($item['item']->getLabelWidth() ? ' style="width:'.$item['item']->getLabelWidth().'px"' : '')
                .'>';
                $item['preHtml'] .= $item['item']->getFieldLabel();
                if ($item['item']->getAllowBlank()===false) {
                    /* TODO: wenn wir hier einmal andere Zeichen benötigen oder an einer anderen
                     * Position, dann machen wir eine reine CSS-Lösung:
                     * für alles ausser <IE8 .foo:after { content: '*'; }
                     * und für IE ein Javascript das das emuliert. Das Javascript muss Serverseitig
                     * das CSS parsen und daraus generieren welche Zeichen an welcher Stelle
                     * eingefügt werden müssen.
                     */
                    $item['preHtml'] .= '<span class="requiredSign">*</span>';
                }
                $item['preHtml'] .= $item['item']->getLabelSeparator();
                $item['preHtml'] .= '</label>';
            }
            if ($item['item']->getComment()) {
                $item['postHtml'] .= '<span class="comment">'.$item['item']->getComment().'</span>';
            }
            $item['postHtml'] .= '</div>';
        }
        return $item;
    }
}<commit_msg>Vpc_Form_Decorator_Label: Label wird nicht nur für $item['html'], sondern auch für $item['preHtml'] erstellt<commit_after><?php
class Vpc_Form_Decorator_Label extends Vpc_Form_Decorator_Abstract
{
    public function processItem($item)
    {
        if (isset($item['items'])) {
            foreach ($item['items'] as $k=>$i) {
                $item['items'][$k] = $this->processItem($i);
            }
        }
        // Kein else und auch bei preHtml - Cards hat zB. items und preHtml, hier sollte das Label aber auch funktionieren
        if (isset($item['html']) || isset($item['preHtml']) || isset($item['postHtml'])) {
            $errors = false;
            if ($item['item']) {
//todo: nicht nochmal fragen, vorallem nicht mit $_REQUEST (problem bei File+MultiFields)
//                 $errors = $item['item']->validate($_REQUEST);
            }
            $class = 'vpsField';
            if ($item['item'] && $item['item']->getLabelAlign()) {
                $class .= ' vpsFieldLabelAlign'.ucfirst($item['item']->getLabelAlign());
            }
            if ($errors) {
                $class .= ' vpsFieldError';
            }
            if ($item['item'] && $item['item']->getAllowBlank()===false) {
                $class .= ' vpsFieldRequired';
            }
            if ($item['item']) {
                $c = get_class($item['item']);
                if (substr($c, -10) == '_Component') $c = substr($c, 0, -10);
                $c = str_replace('_', '', $c);
                $class .= ' '.strtolower(substr($c, 0, 1)).substr($c, 1);
				if (!isset($item['id'])) {
                    $class .= ' '.$item['item']->getFieldName();
                }
            }
            if (isset($item['id'])) {
                $class .= ' '.$item['id'];
            }
            $preHtml = '<div class="'.$class.'">';
            if ($item['item'] && !$item['item']->getHideLabels() && $item['item']->getFieldLabel()) {
                $preHtml .= '<label for="'
                    .(isset($item['id']) ? $item['id'] : $item['item']->getFieldName()).'"'
                    .($item['item']->getLabelWidth() ? ' style="width:'.$item['item']->getLabelWidth().'px"' : '')
                .'>';
                $preHtml .= $item['item']->getFieldLabel();
                if ($item['item']->getAllowBlank()===false) {
                    /* TODO: wenn wir hier einmal andere Zeichen benötigen oder an einer anderen
                     * Position, dann machen wir eine reine CSS-Lösung:
                     * für alles ausser <IE8 .foo:after { content: '*'; }
                     * und für IE ein Javascript das das emuliert. Das Javascript muss Serverseitig
                     * das CSS parsen und daraus generieren welche Zeichen an welcher Stelle
                     * eingefügt werden müssen.
                     */
                    $preHtml .= '<span class="requiredSign">*</span>';
                }
                $preHtml .= $item['item']->getLabelSeparator();
                $preHtml .= '</label>';
            }
            $postHtml = '';
            if ($item['item']->getComment()) {
                $postHtml .= '<span class="comment">'.$item['item']->getComment().'</span>';
            }
            $postHtml .= '</div>';
            if (!isset($item['preHtml'])) $item['preHtml'] = '';
            if (!isset($item['postHtml'])) $item['postHtml'] = '';
            $item['preHtml'] = $preHtml . $item['preHtml'];
            $item['postHtml'] = $item['postHtml'] . $postHtml;
        }
        return $item;
    }
}
{'fraction_non_alphanumeric': 0.19475710900473933, 'fraction_numerical': 0.002665876777251185, 'mean_word_length': 1.7317961165048543, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 53, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6116974', 'n_tokens_mistral': 1966, 'n_tokens_neox': 1881, 'n_words': 382}