Avatar billede buxxy Praktikant
01. juli 2010 - 13:47 Der er 2 kommentarer og
1 løsning

Indfletning af kode, fejler iht. W3C

Hej Eksperter.

Jeg er igang med at flette noget kode ind i <a href='' title=\"header=[] body=[HER SKAL KODEN IND]

Koden der skal flettes ind:

        if ($data['user_level'] >= 102) {
            echo $settings['forum_ranks'] ? show_forum_rank($data['user_posts'], $data['user_level']) : getuserlevel($data['user_level']);
        } else {
            $is_mod = false;
            foreach ($mod_groups as $mod_group) {
                if (!$is_mod && preg_match("(^\.{$mod_group}$|\.{$mod_group}\.|\.{$mod_group}$)", $data['user_groups'])) {
                    $is_mod = true;
                }
            }
            if ($settings['forum_ranks']) {
                echo $is_mod ? show_forum_rank($data['user_posts'], 104) : show_forum_rank($data['user_posts'], $data['user_level']);
            } else {
                echo $is_mod ? $locale['user1'] : getuserlevel($data['user_level']);
            }
        }

Det har jeg så forsøgt at gøre, ved at afbryde echo-strengen ved body=[\n";
- for derefter at sætte koden ind, og så påbegynde min echo-streng igen:
echo "]

Dette virker dog også efter hensigten, men W3C-validatoren kan ikke rigtig lide det:
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.dvdside.dk%2F&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.781

Er der en anden måde at gøre det på - eller kan det blot ikke lade sig gøre ?

Det jeg roder med kan ses på min legeplads/testsite: www.dvdside.dk (panelet i v. side der hedder "Seneste Online").


Koden jeg har - som den ser ud nu:


echo "<tr>\n<td class='small' align='left'><img src='".THEME."images/bullet.gif' alt='' /> <a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' title=\"header=[".$data['user_name']."] body=[";
        if ($data['user_level'] >= 102) {
            echo $settings['forum_ranks'] ? show_forum_rank($data['user_posts'], $data['user_level']) : getuserlevel($data['user_level']);
        } else {
            $is_mod = false;
            foreach ($mod_groups as $mod_group) {
                if (!$is_mod && preg_match("(^\.{$mod_group}$|\.{$mod_group}\.|\.{$mod_group}$)", $data['user_groups'])) {
                    $is_mod = true;
                }
            }
            if ($settings['forum_ranks']) {
                echo $is_mod ? show_forum_rank($data['user_posts'], 104) : show_forum_rank($data['user_posts'], $data['user_level']);
            } else {
                echo $is_mod ? $locale['user1'] : getuserlevel($data['user_level']);
            }
        }
echo "] delay=[0] fade=[off]\" class='side'>";
echo trimlink($data['user_name'], 19)." </a></td><td class='small2' align='right'>".$lastseen."</td>\n</tr>\n";


Jeg håber her er et skarpt hovede der evt. kan hjælpe.

Fortsat god dag!


Mvh.
Buxxy
Avatar billede repox Seniormester
01. juli 2010 - 14:14 #1
Med sådan noget skrammel i dine elementers attributter er der vist ikke noget at sige til din kode ikke rigtigt vil validere...

De første elementer du gør det i, laver du også noget andet; du bruger url encoding.

Prøv lige dette:
echo "<tr>\n<td class='small' align='left'><img src='".THEME."images/bullet.gif' alt='' /> <a href='".BASEDIR."profile.php?lookup=".$data['user_id']."' title=\"header=[".$data['user_name']."] body=[";
$string = "";

        if ($data['user_level'] >= 102) {
            $string = $settings['forum_ranks'] ? show_forum_rank($data['user_posts'], $data['user_level']) : getuserlevel($data['user_level']);
        } else {
            $is_mod = false;
            foreach ($mod_groups as $mod_group) {
                if (!$is_mod && preg_match("(^\.{$mod_group}$|\.{$mod_group}\.|\.{$mod_group}$)", $data['user_groups'])) {
                    $is_mod = true;
                }
            }
            if ($settings['forum_ranks']) {
                $string = $is_mod ? show_forum_rank($data['user_posts'], 104) : show_forum_rank($data['user_posts'], $data['user_level']);
            } else {
                $string = $is_mod ? $locale['user1'] : getuserlevel($data['user_level']);
            }
        }
$string = rawurlencode($string);       
echo $string."] delay=[0] fade=[off]\" class='side'>";
echo trimlink($data['user_name'], 19)." </a></td><td class='small2' align='right'>".$lastseen."</td>\n</tr>\n";
Avatar billede buxxy Praktikant
01. juli 2010 - 16:49 #2
Aha! Det er jo lige præcist sådan den skal skrives :)

Jeg siger mange mange tak!!

Hvis du smider et svar - så kaster jeg lige nogle point til dig.

Og igen: Mange tak!

Hav en god dag.
Avatar billede repox Seniormester
01. juli 2010 - 17:00 #3
Der kom et svar her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester