Navigation
Supportsider
Senest Online
HenningS14:45:20
olelau 2 Dage
helmuth 4 Dage
tyson 5 Dage
zepder 6 Dage
Henrik Bendtsen 2 Uger
flj 3 Uger
orgermer 4 Uger
Didos 5 Uger
BronX 5 Uger
Besøgende
Gæster online: 3

Brugere online: 0

Antal brugere: 172
Nyeste bruger: Michael Mogensen
Se indlæg
PHP-Fusion - Danmark » PHP-Fusion version 6 » Elementer v6
 Udskriv debat
Element: Top 5 replikker!
Brown
Hej,

Nu blev jeg endelig færdig med mit nyeste element: Replik tælleren! Som giver dig en staus ude i sidebarren på de fem brugere der har skrevet flest replikker, og enda i rækkefølge. Den givet et link til brugerens profil, brugerens avatar, samt fortæller den, hvor mange replikker pågældende person har skrevet. Det har efterhånden taget mig hele denne dag, at lave det, samt at få det til og fungere, og få et billed klar, til jer - så jeg håber I vil tage godt imod det!
For brugere der ikke har nogen avatar, de for alle sammen en standard avatar, som kan findes på dette link: http://www.phpfusion.dk/images/noav.gif
Den skal lægges ind i mappen Avatars i mappen Images i dit zip.

Jeg håber I vil tage rigtig godt imod dette element, og bruge det.
Alle foreslag er velkommen, eventuelt til forbedringer, og tilføjelser.
Også al respons, og negative miner, modtages med kindkys, så bare fyld på! Hvis I har problemer, så venligst skriv i denne tråd.

Sæt nedstående kode ind i et element, og tilpas den:


openside("Top 5 replikker");

$sql = dbquery("SELECT user_avatar, s.shout_name AS user_id, u.user_name AS user_name, COUNT(user_name) AS shouts FROM ".DB_PREFIX."shoutbox AS s
LEFT JOIN ".DB_PREFIX."users AS u ON s.shout_name=u.user_id
GROUP BY u.user_name
ORDER BY shouts DESC LIMIT 0,5");

echo "";
$i = 0;
while ($data=dbarray($sql)) {
echo "

";
$i++;
}
echo "

";
if(!empty($data['user_avatar'])) {
$avatar="'".$data['user_name']."'";
} else {
$avatar = ""; }
$shouts = dbcount("(shout_id)", "shoutbox", "shout_name='".$data['user_id']."'");
$locale['R001'] = "replik";
if ($shouts != 1) $locale['R001'] = "replikker";
echo $avatar."
".$data['user_name']."
- ".$shouts." ".$locale['R001']."
";
closeside();

Og selvfølgelig også et billed:

img141.imageshack.us/img141/6281/blalba1my3.png

Tak til Josso og Flemming for tilretninger!
Redigeret af Brown d. 07-02-2008 10:24
 
Henrik Bendtsen
Du Brown, hvad er din hjemmeside egentlig ?
- flot lavet..
Redigeret af Henrik Bendtsen d. 03-02-2008 18:18
 
https://www.php-fusion.dk
sorenwp
Hay nice nok Pfft
--
Søren w. pedersen
Registered Linux user number 443529 (counter.li.org)

World of Warcraft Danish - Is coming soon!
wow-danish.com
.:izzii.dk:. - Artokoder, spil og hygge..
[b][url]
 
www.izzii.dk
Brown
@henrik7: Jeg har ingen hjemmeside. Jo, jeg åbner en til marts, og der skal jeg selvfølgelig nok offentligøre den - og tak! Smile

@sorewp: Takker så mykket! Pfft
 
brik
Godt lavet. Det er simpelt, virker, og ser ganske godt ud. Slet ikke værst
--------------------------------------------------
Jeg foretrækker den blÅ.

Min side
http://kmeelev.gigahost.dk (Du mÅ IKKE oprette en bruger)
 
http://kmeelev.gigahost.dk
Brown
Mange tak, for jeres respons, men er der også nogen af jer, der vil bruge den?
 
brik
Har ikke den store brug for det på min side, da det ikke lige er replikker der bliver brugt mest, så har ikke den store grund til at bruge det der.

Men det kan selvfølgelig bruges som et middel til at få folk til at skrive replikker. For de vil jo sikkert gerne se sig selv øverst på listen. (alle søger jo en lille smule hæder hele tiden)
--------------------------------------------------
Jeg foretrækker den blÅ.

Min side
http://kmeelev.gigahost.dk (Du mÅ IKKE oprette en bruger)
 
http://kmeelev.gigahost.dk
Brown
Tja, jeg overvejede jo tanken, at gøre en konkurence ud af det?
 
Henrik Bendtsen
Ville det ikke være en mindre god ide, man indbyder jo ligefrem til spam i form af ligegyldige replikker ? Wink

Bare noget jeg mener man skulle overveje Wink
 
https://www.php-fusion.dk
Brown
Ja, den tanke har også gået over mit hoved - det var lige før det sprængte i luften Wink - men man har jo et panel, dér gør det muligt, at slette al spam, deriblandt det.

@henrik7: Vil du bruge elementet?
 
KFJ
Skide flot :-)

Der skal bare lige lægges en border=0 ind for at undgå den kant rundt om billedet. Men slet ikke utænkeligt at jeg vil nuppe dette element på et tidspunkt.

Dejligt at se nye brugere herinde også sætte sig ned og udvikle noget til fællesskabet :-)
 
http://www.dansk-thai.dk
Brown
@KFJ: Mange tak, for din respons. Ja, det er altid så dejligt, at andre sætter pris på det man laver! Og godt du kunne bruge det!

Til jer der ikke har prøvet det før; I skulle virkelig prøve det - det er en dejlig følelse Pfft
 
Brown
Så er den grimme kant der ikke mere, da det nu er rettet til border=0.
Jeg håber I bliver glad for det.

Koden kan findes i det første indlæg.
Redigeret af Brown d. 04-02-2008 13:46
 
Brown
Undskyld men jeg tillader mig lige, og hive denne op igen, da jeg virkelig ønsker noget respons på den.

Brown.
 
ole kristiansen
Hej Brown det får du så her, godt stykke arbejdet du har laver her WinkBruger der her http://www.jonaz.eu/news.php
Redigeret af ole kristiansen d. 05-02-2008 20:47
Jeg ved, at jeg ved, at jeg intet ved.
 
http://www.some1.dk/
KFJ
Har desværre lige opdaget en fejl i elementet.

Den viser ikke de 5 brugere som har skrevet flest replikker, men hvor mange replikker de 5 brugere som har skrevet flest indlæg i forumet har skrevet.
 
http://www.dansk-thai.dk
Henrik Bendtsen
haha, hvor sjovt det er da korrekt :)

Fejlen ligger vel i:

$sql = dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_posts DESC LIMIT 0,5");


Mulig løsning ikke testet:

$sql = dbquery("SELECT * FROM ".$db_prefix."users ORDER BY user_shoutbox DESC LIMIT 0,5");

Redigeret af Henrik Bendtsen d. 05-02-2008 23:47
 
https://www.php-fusion.dk
olelau
Det er fordi den ORDER BY user_posts men jeg har ingen løsning på det da der ikke findes en ORDER BY user_shout sorry
Ole Lauritsen
 
Brown
Hmm, jeg mener, da også at den hedder:


['shout_id']


Men det er da muligt jeg tager fejl. Der kom jeg lige til og kigge en linje for højt op :P My bad.

EDIT: Jeg ser nu, at det heller ikke funker særlig optimalt med: shout_id. Hmm, er der nogen der ved hvorfor eller kan det rettes, så den viser til replikboksen? Jeg er ved, at være helt blank.
Redigeret af Brown d. 06-02-2008 08:37
 
flj
Løsningen er at slå de 2 forespørgsler sammen:

SELECT s.shout_name AS user_id, u.user_name AS user_name, COUNT(user_name) AS shouts FROM fusion_shoutbox AS s
LEFT JOIN fusion_users AS u ON s.shout_name=u.user_id
GROUP BY u.user_name
ORDER BY shouts DESC LIMIT 0,5

NB: fusion_ rettes til ".$db_prefix." osv når det lægges in i PHP

Jeg har ikke mulighed for at teste ovenstående, idet jeg ikke bruger shouts på min side, og derfor har en tom shoutbox tabel.

Jeg undrer mig dog over en ting: I fusion_shoutbox er shout_name defineret som varcar(30). Hvis den bruges til opbevaring af user_id (og ikke user_navn), så burde den være smallint(5). Så check lige først, at der står user_id's i fusion_shoutbox.shout_name kolonnen og ikke user_name, for så virker ovenstående ikke. Det tror jeg dog, der gør.

Flemming
 
Brown
Hey drenge, piger og Brown,

Tak til Flemming, fordi han gad og ændre i koderne. Det er nu lagt op, og kan ses her:


openside("Top 5 replikker");

$sql = dbquery("SELECT u.user_name AS user_id, u.user_name AS user_name, COUNT(user_name) AS shouts FROM fusion_shoutbox AS s
LEFT JOIN fusion_users AS u ON s.shout_name=u.user_id
GROUP BY u.user_name
ORDER BY shouts DESC LIMIT 0,5");

echo "";
$i = 0;
while ($data=dbarray($sql)) {
echo "

";
$i++;
}
echo "

";
if(!empty($data['user_avatar'])) {
$avatar="'".$data['user_name']."'";
} else {
$avatar = ""; }
$shouts = dbcount("(shout_id)", "shoutbox", "shout_name='".$data['user_id']."'");
$locale['R001'] = "replik";
if ($shouts != 1) $locale['R001'] = "replikker";
echo $avatar."
".$data['user_name']."
- ".$shouts." ".$locale['R001']."
";
closeside();


Problemet er bare, at den udelukkende viser standard avataren, også selvom at brugeren selv har én avatar. Så det er et lille problem.
Jeg har forsøgt, og bruge en anden kode under, for os se om det virker bedre, men den viser blot én fejl i elementet, hvor den henviser til den kode. Overstående var den tilrettet kode, dog vil jeg høre, om nogen kunne gøre sådan, at den viser profilens egen avatar.

Brown.
Redigeret af Brown d. 06-02-2008 19:03
 
Spring til debat: