• User Attivo

    YANC e validazione W3C

    Ciao bella gente.

    Ho un problema che gradirei risolvere, ma da solo non ci sono riuscito. Spero in qualche anima pia 😉

    Il problema e' questo: un cliente importante (il governo Australiano) mi ha ordinato un sito (che e' gia' online).

    Essendo un sito di carattere scientifico, la validazione W3C e' ritenuta importante.

    E ovviamente sono riuscito a far validare tutte le pagine, componenti compresi.

    Poi ho installato YANC e relativo modulo di iscrizione alle newsletter e...bye bye validazione.

    Questo e' l'errore che salta fuori:

    <select name="lid" id="yancletterselect" class="inputbox">
    <option value="2" id="2">2.. Test</option>
    <option value="1" id="1">Test</option>
    </select>

    It is possible that you violated the naming convention for this attribute. For example, id and name attributes must begin with a letter, not a digit.Cercando in Google, ho scoperto che il problema deriva da Joomla e l'unico modo per sistemarlo e' intervenire sul file joomla.php, class mosHTML, function selectList.

    Siccome di php ne capisco poco (e voglio essere buono con me stesso), non sono venuto a capo di nulla.

    La parte incriminata dovrebbe essere questa:

    function selectList( &$arr, $tag_name, $tag_attribs, $key, $text, $selected=NULL ) {
            // check if array
            if ( is_array( $arr ) ) {
                reset( $arr );
            }
    
            $html     = "\n<select name=\"$tag_name\" $tag_attribs>";
            $count     = count( $arr );
    
            for ($i=0, $n=$count; $i < $n; $i++ ) {
                $k = $arr*->$key;
                $t = $arr*->$text;
                $id = ( isset($arr*->id) ? @$arr*->id : null);
    
                $extra = '';
                $extra .= $id ? " id=\"" . $arr*->id . "\"" : '';
                if (is_array( $selected )) {
                    foreach ($selected as $obj) {
                        $k2 = $obj->$key;
                        if ($k == $k2) {
                            $extra .= " selected=\"selected\"";
                            break;
                        }
                    }
                } else {
                    $extra .= ($k == $selected ? " selected=\"selected\"" : '');
                }
                $html .= "\n\t<option value=\"".$k."\"$extra>" . $t . "</option>";
            }
            $html .= "\n</select>\n";
    
            return $html;
        }
    ```A qualcuno viene in mente un'idea brillante? Mi toglierebbe dai casini. Il sito validava xHTML, CSS e Level A WAI (bello e accessibile :D).
    
    Grazie per l'aiuto che potrete (ne sono certo) darmi ;)

  • Super User

    OT. Che bello leggerti anche qui. Un saluto, di cuore.
    ciao