Pagina 1 van 1

[dev] Add-on note mod

Geplaatst: 23 jun 2006, 13:40
door Insomnia
Hallo ik ben een mod aan het maken
( wat het wordt wil ik nog even geheim houden )
Maar ik wil graag het mail adres van de vorige poster in een topic
Iemand eenige iedee hoe ik dit klaar speel ?

Alvast bedankt

Geplaatst: 23 jun 2006, 13:48
door Paul
waar moet je het hebben? In viewtopic? dan moet dit werken:

Code: Selecteer alles

OPEN: viewtopic.php.
FIND:
for($i = 0; $i < $total_posts; $i++)
{

BEFORE:
$prev_email = false;
AFTER:

if($prev_email !== false)
{
//Dit is de eerste post in dit topic. Echter, wanneer 
//$start != 0, dan is het de volgende pagina. Daarom moeten we dat even
//controleren
if($start != 0){
$sql = "SELECT u.user_email FROM " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " p WHERE user_id = p.poster_id 
ORDER BY p.post_time $post_time_order
LIMIT " . ($start - 1) . ",1 ";
$result2 = $db->sql_query($sql);
if(!$result2)
{
message_die(GENERAL_ERROR,"Could not select previous poster email","",__LINE__,__FILE__,$sql);
}
$email = $db->sql_fetchrow($result2);
$prev_email = $email['user_email'];
unset($email);
}
}else{
$prev_email = $postrow[($i - 1)]['user_email'];
}
Heb het niet getest, maar zo zou moeten werken :)
(In $prev_email staat dat of false, wanneer eerst bericht in topic is, of het email adres :))

Geplaatst: 23 jun 2006, 13:49
door Insomnia
het moet in de function_post.php gebeuren

Bedankt voor je snelle replay en ook voor je inforamtie :thumb:

Geplaatst: 23 jun 2006, 13:52
door Paul
Als je het post_id dan hebt, kan je die query die ik heb gebruikt een beetje aanpassen, dat hij naar de post_id kijkt.
Moet dan zoiets zijn als:

Code: Selecteer alles

$sql = "SELECT u.user_email FROM ".USERS_TABLE." u, ".POSTS_TEXT_TABLE." pt, ".POSTS_TABLE." p  WHERE u.user_id = p.poster_id AND p.topic_id = '$topic_id' AND p.post_id =  pp.post_id AND p.post_id < $post_id ORDER BY p.post_id DESC LIMIT 1";
Weet niet of zo helemaal goed is, maar tis in ieder geval een opzetje :)

Geplaatst: 23 jun 2006, 13:55
door Insomnia
Hmm

Code: Selecteer alles

u.user_email
is dit dan de mail van de vorige poster ? of lees ik het verkeerd ?
ik ben pas bezig met php echt aan het leren kon het van te voren al wat kleine dingetjes maar mysql nog niet

Weer bedankt voor je snelle replay

Geplaatst: 23 jun 2006, 13:57
door Paul
Jep, dat is dan de email van de vorige poster.
Het is eigenlijk heel simpel:

Hij kijkt naar post_id, en topic_id, topic_id moet altijd zelfde zijn, post_id moet lager zijn, als de huide post_id, en dan geef je een LIMIT van 1 op, zodat hij automatische de vorige pakt. Omdat je van die naar de poster_id kijkt(De user_id die dus gepost heeft), en daarbij weer in de USERS_TABLE kijkt, haal je zo de email daarvan op.

Geplaatst: 23 jun 2006, 14:02
door Insomnia
Super bedankt, en voor de info :bier:
Ik gaat dadelijk naar huis en ga het meteen proberen

Nu heb ik nog een vraag
Is het ook nog mogelijk om de topic starter te kunnen mailen ne naar de huidige

ik was al ver maar .. het werkte van geen meter lukte me dus niet zo goed met mysql

en ik ben zelf ook bezig om 4 checkboxjes te maken waarmee :

Mail vorige poster
Mail topic starter
Mail huidige gebruiker
Standaard ( er wordt naar niemand een email gestuurd )

nu ben ik wat geen klooje ( letterlijke :P )
Maar er kwam een verpeste template uit
Heeft daar iemand hints voor ofzo ?

Geplaatst: 23 jun 2006, 14:05
door Paul
Ook die is heel simpel

Code: Selecteer alles

$sql = "SELECT u.user_email FROM ".USERS_TABLE." u, ".POSTS_TEXT_TABLE." pt, ".POSTS_TABLE." p ,".TOPICS_TABLE." t  WHERE u.user_id = p.poster_id AND p.post_id =  pp.post_id AND p.post_id =t.first_post_id ORDER BY p.post_id DESC LIMIT 1";
In de TOPICS_TABLE wordt de eerste post opgeslagen, dus daaruit kan je zo die gegevens halen.

Geplaatst: 23 jun 2006, 14:08
door Insomnia
is het mogelijk om

dit te doen

Code: Selecteer alles

$blater = "SELECT u.user_email FROM ".USERS_TABLE." u, ".POSTS_TEXT_TABLE." pt, ".POSTS_TABLE." p ,".TOPICS_TABLE." t  WHERE u.user_id = p.poster_id AND p.post_id =  pp.post_id AND p.post_id =t.first_post_id ORDER BY p.post_id DESC LIMIT 1"; 
want anders gebruik ik 2 keer $sql en dat niet

Geplaatst: 23 jun 2006, 14:10
door Paul
Ja, dat is geen probleem. Het maakt opzich niet uit hoe die variabele heet. Als hij maar beschrijft waar die voor is.

Geplaatst: 23 jun 2006, 14:13
door Insomnia
Bedankt voor je hulp !
Ik zal je als eerste de mod geven als ie af is :bier: :thumb: