[dev] Add-on note mod

Zelf bezig aan een modificatie? Wij kijken graag mee..
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

[dev] Add-on note mod

Bericht door Insomnia » 23 jun 2006, 13:40

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

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20206
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 jun 2006, 13:48

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 :))

Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

Bericht door Insomnia » 23 jun 2006, 13:49

het moet in de function_post.php gebeuren

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

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20206
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 jun 2006, 13:52

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 :)

Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

Bericht door Insomnia » 23 jun 2006, 13:55

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

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20206
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 jun 2006, 13:57

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.

Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

Bericht door Insomnia » 23 jun 2006, 14:02

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 ?

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20206
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 jun 2006, 14:05

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.

Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

Bericht door Insomnia » 23 jun 2006, 14:08

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

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20206
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 23 jun 2006, 14:10

Ja, dat is geen probleem. Het maakt opzich niet uit hoe die variabele heet. Als hij maar beschrijft waar die voor is.

Insomnia
Berichten: 277
Lid geworden op: 15 apr 2006, 20:52
Contacteer:

Bericht door Insomnia » 23 jun 2006, 14:13

Bedankt voor je hulp !
Ik zal je als eerste de mod geven als ie af is :bier: :thumb:

Gesloten