Seite 1 von 1

Eintrag bei einem Post in die DB

Verfasst: 09.12.2006 19:23
von Disturber
Liebe Community,

Ich hab für meine Internetseite ein eigenes "Coin"-System geschrieben.
Nun besitze ich ein phpbb2 Forum und wollte es so integrieren, dass wenn man dort einen post macht, auch einen Coin gutgeschrieben bekommt.

Mein Problem ist eigentlich nur, wo muss ich mein php code einsetzen...
Ich find mich nicht so wirklich zurecht..hab schon auf der Offiziellen phpbb Seite unter Dokumentation geschaut - half mir nicht weiter.

Vielleicht hat jemand von euch eine Ahnung / so etwas schon gemacht.

Wie gesagt, ich brauch nur die Textstelle an der ich meinen code einführen muss, sodass er ausgeführt wird, wenn ein neuer Beirtag geschrieben wird.

Danke im Vorraus.
Disturber

Verfasst: 09.12.2006 19:29
von gn#36
Ein Beitrag wird über die Datei Posting.php geschrieben. Diese verwendet allerdings für das Eintragen des Beitrags die funktion submit_post aus der includes/functions_post.php Wenn du dir die ansiehst und auch nur dann einen Coin verteilst wenn $mode "reply" oder "newtopic" ist, dann sollte es klappen. Vielleicht noch daran denken, dass man ja auch Posts löschen kann (Funktion: delete_post)...

Verfasst: 09.12.2006 20:10
von Miriam
Es gibt doch sogar einen Mod dafür.....

Verfasst: 09.12.2006 20:29
von Disturber
Hey,

Vielen Dank für deine schnelle Antwort,

Ich hab nun

if($mode != editpost)

somit....passt das mit den coins, jedoch..
hab ich das mitm delete nicht wirklich herausfinden können.

Ebenso würd ich gern die coins..rechts unter dem user-avatar anzeigen...
wie gesagt ich brauch eigentlich nur die Textstelle, da ich mich nicht so in dem phpbb script-salat auskenne :oops:

Vielleicht habt ihr noch einen Tipp, würd mich freuen
Disturber

Verfasst: 09.12.2006 22:43
von Miriam
Wo sollen denn die Coins generell angezeigt werden?

Verfasst: 09.12.2006 23:44
von gn#36
Was das delete angeht: In der o.a. Funktion delete_post solltest du etwas einbauen, dass den Coin wieder abzieht der zu dem Post gehört, also das gleiche wie beim Posten nur mit - statt + (würde ich mal vermuten)

Unter dem Avatar sind fürchte ich mehrere Stellen, da phpbb ein Templatesystem verwendet.
1. Stelle: root/templates/xxx/viewtopic_body.tpl
Dort nach {postrow.POSTER_AVATAR} suchen, dort wird der Avatar eingefügt. Hier muss für die Anzeige dann eine Variable hin in der folgenden Form:

Code: Alles auswählen

{postrow.COINS}
Wie du das genau da einbaust musst du selbst wissen mit dem Layout kann man ja experimentieren.
2. Stelle: viewtopic.php
Da findest du ziemlich am Ende diesen Code:

Code: Alles auswählen

$template->assign_block_vars('postrow', array(
		'ROW_COLOR' => '#' . $row_color,
		'ROW_CLASS' => $row_class,
Mit da hinein muss eine Zeile wie diese

Code: Alles auswählen

'COINS' => $das_was_unter_dem_avatar_angezeigt_werden_soll,
Die Variable musst du natürlich noch mit Inhalt belegen, aber du wolltest ja auch nur die Stelle und ich kenne dein "coin" system nicht.

Verfasst: 10.12.2006 10:06
von Disturber
Super,
Ja, wie gesagt ich benötige nur die Textstellen,
Also..Vielen Dank das mit der Anzeige hat
soweit super geklappt :grin:

[ externes Bild ]

Jedoch habe ich wegen dem Delete noch eine Frage :oops:
Also ich würde es nun hier einsetzen:

Code: Alles auswählen

//
// Delete a post/poll
//
function delete_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id)
{
	global $board_config, $lang, $db, $phpbb_root_path, $phpEx;
	global $userdata, $user_ip;

	if ($mode != 'poll_delete')
	{
Jedoch erzielte das nicht den erwünschten Effekt...bin ich dort eventuell falsch...oder muss ich noch mit $mode arbeiten ?!

Dankbar für jede Hilfe ;)[/code]

Verfasst: 10.12.2006 11:42
von gn#36
Eigentlich sollte das genau die richtige Funktion sein. Allerdings löscht die auch Umfragen, mit $mode zu arbeiten macht also Sinn.

Code: Alles auswählen

//in posting.php:
delete_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id);
Wenn du allerdings als Moderator ein Thema löscht dann funktioniert das anders, das wird in der modcp.php gemacht:

Code: Alles auswählen

$sql = "DELETE 
					FROM " . POSTS_TABLE . " 
					WHERE post_id IN ($post_id_sql)";