Seite 1 von 1

3 kleine fragen an zum DL-Mod 5...

Verfasst: Sa 16.Sep, 2006 16:57
von jungpionier
Hi Oxpus

vieleicht kennst mich ja noch vom lesen aus deinem Board

also ich hab 3 kleine probleme mit der 5er version wir (DU) hatten/hattest doch damals im 4er mod mir eine Anzeige für den Index gebastelt wo dastand wieviel cash ich im moment habe zum downloaden.

Das war folgender code:

in der index.php

Code: Alles auswählen

include_once($phpbb_root_path . 'includes/dl_common.'.$phpEx);
$user_traffic_out = calc_dl_size($userdata['user_traffic']);


$template->assign_vars(array(
	'USER_TRAFFIC' => $lang['Traffic'].': '.$user_traffic_out)
);
und in der index_body.tpl

Code: Alles auswählen

<td width="30%" align="right" class="nav">{L_USERS_CASH}<font color="#000080"><b>{USER_TRAFFIC}</b></font></td>
wie kann ich das mit dem neuen DL-Mod kompatibel machen???



und dann mein 2tes problem:

du hast mir mal ein kleinen Code geschrieben wenn der user eine datei gedownloadet hat und traffic bezahlt hat das er diese dann immer umsonst downloaden darf.

das ganze sah in etwa so aus:

Code: Alles auswählen

	#
#-----[ OPEN ]------------------------------------------
#
includes/functions_downloads.php

#
#-----[ FIND ]------------------------------------------
#
	global $userdata, $board_config, $dl_auth, $index, $images, $lang, $phpEx;

#
#-----[ AFTER, ADD ]------------------------------------------
#
	global $db;

	$r_username = '';

	//Prüfen, ob der User schon bezahlt hat
	$sql = "SELECT DISTINCT username, filename FROM phpbb_loaded
		WHERE (username LIKE '".$userdata['username']."')
			AND (filename LIKE '$file_name')";
	$result = $db->sql_query($sql);
	while ($row = $db->sql_fetchrow($result))
	{
		$r_username = $row['username'];
	}

#
#-----[ FIND ]------------------------------------------
#
	if ( $file_free == "1")

#
#-----[ REPLACE WITH ]------------------------------------------
#
	if ( $file_free == "1" || $r_username != '')

#
#-----[ OPEN ]------------------------------------------
#
load.php

#
#-----[ FIND ]------------------------------------------
#
	$query_klicks = "UPDATE " . DOWNLOADS_TABLE . " SET klicks = klicks + 1, overall_klicks = overall_klicks + 1, last_time = " . time() . " WHERE id = $id";
	$result_klicks = mysql_query($query_klicks);

#
#-----[ AFTER, ADD ]------------------------------------------
#
	$query_log = "INSERT INTO phpbb_loaded VALUES ('". $userdata['username'] ."' , '$file_name', NOW());";
	$result_log = mysql_query($query_log);


#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
wie kann ich das wieder integrieren ? das wäre sehr wichtig für mich !!!




und zu guter letzt

hattest du mir einen kleinen Code geschrieben zur Anzeige des usertraffics im Beitragsprofil

das war folgender Code:

Code: Alles auswählen

   1. #
   2. #-----[ OPEN ]-----
   3. #
   4. viewtopic.php
   5.

   6. #
   7. #-----[ FIND ]-----
   8. #
   9. include($phpbb_root_path . 'common.'.$phpEx);
  10.

  11. #
  12. #-----[ AFTER, ADD ]-----
  13. #
  14. include($phpbb_root_path . 'includes/dl_common.'.$phpEx);
  15.

  16. #
  17. #-----[ FIND ]-----
  18. #
  19.       'POSTER_NAME' => $poster,
  20.

  21. #
  22. #-----[ AFTER, ADD ]-----
  23. #
  24.       'POSTER_TRAFFIC' => $lang['Traffic'].': '.calc_dl_size($postrow[$i]['user_traffic']),
  25.

  26. #
  27. #-----[ OPEN ]-----
  28. #
  29. templates/subSilver/viewtopic_body.tpl
  30.

  31. #
  32. #-----[ FIND ]-----
  33. #
  34. {postrow.POSTER_FROM}
  35.

  36. #
  37. #-----[ IN-LINE AFTER, ADD ]-----
  38. #
  39. <br />{postrow.POSTER_TRAFFIC}
  40.

  41.

  42. #
  43. #-----[ SAVE/CLOSE ALL FILES ]-----
  44. #
  45. # EoM

wie kann ich das wieder integrieren ?

wenns nicht wichtig wäre würde ich nicht fragen , wäre lieb von dir wenn du etwas zeit dafür hättest .

DANKE !!!

mfg Jungpionier

Verfasst: Sa 16.Sep, 2006 17:56
von oxpus
Traffic für den Index:

Code: Alles auswählen

include($phpbb_root_path . 'dl_mod/classes/class_dlmod.'.$phpEx);
$dl_mod = new dlmod();
$user_traffic_out = $dl_mod->dl_size($userdata['user_traffic']);
$template->assign_vars(array(
	'USER_TRAFFIC' => $lang['Traffic'].': '.$user_traffic_out)
);
Der Code für die index_body.tpl bleibt der gleiche.

Das zweite Problem ist vielleicht so zu lösen:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
downloads.php

#
#-----[ FIND ]------------------------------------------
#
	if ($check_status['auth_dl'] && $dl_file['id'])
	{

#
#-----[ AFTER, ADD ]------------------------------------------
#
		$r_username = '';

		//Prüfen, ob der User schon bezahlt hat
		$sql = "SELECT DISTINCT username, filename FROM phpbb_loaded
			WHERE (username = '".$userdata['username']."')
				AND (filename = '".$dl_file['file_name']."')";
		$result = $db->sql_query($sql);
		while ($row = $db->sql_fetchrow($result))
		{
			$r_username = $row['username'];
		}

#
#-----[ FIND ]------------------------------------------
#
				$sql = "UPDATE " . USERS_TABLE . "
					SET user_traffic = user_traffic - " . $dl_file['file_size'] . "
					WHERE user_id = " . $userdata['user_id']; 
				if (!($db->sql_query($sql)))
				{
					message_die(GENERAL_ERROR, 'Could not update download data', '', __LINE__, __FILE__, $sql);
				}

#
#-----[ REPLACE WITH ]------------------------------------------
#
				if (!$r_username)
				{
					$sql = "UPDATE " . USERS_TABLE . "
						SET user_traffic = user_traffic - " . $dl_file['file_size'] . "
						WHERE user_id = " . $userdata['user_id']; 
					if (!($db->sql_query($sql)))
					{
						message_die(GENERAL_ERROR, 'Could not update download data', '', __LINE__, __FILE__, $sql);
					}
				}

#
#-----[ FIND ]------------------------------------------
#
		else if ($status)
		{

#
#-----[ AFTER, ADD ]------------------------------------------
#
			$query_log = "INSERT INTO phpbb_loaded VALUES ('". $userdata['username'] ."' , '".$dl_file['file_name']."', NOW());";
			$result_log = mysql_query($query_log);
Und das dritte ist ähnlich dem ersten:

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
viewtopic.php

#
#-----[ FIND ]-----
#
include($phpbb_root_path . 'common.'.$phpEx);

#
#-----[ AFTER, ADD ]-----
#
include($phpbb_root_path . 'dl_mod/classes/class_dlmod.'.$phpEx);
$dl_mod = new dlmod();

#
#-----[ FIND ]-----
#
      'POSTER_NAME' => $poster,

#
#-----[ AFTER, ADD ]-----
#
      'POSTER_TRAFFIC' => $lang['Traffic'].': '.$dl_mod->dl_size($postrow[$i]['user_traffic']),
Auch hier bleibt die Änderung in der TPL erhalten.

Verfasst: Sa 16.Sep, 2006 18:39
von jungpionier
ein riesengrosses DANKE Oxpus


1 und 3 funktionieren einwand frei

das 2te funktioniert nicht richtig da wird gar kein Traffic mehr abgezogen.

könntest du da eventuell noch mal schauen ???

ich will dich aber auf gar keinem fall Nerven :)

mfg Jungpionier

Verfasst: Sa 16.Sep, 2006 18:46
von oxpus
Ich habe den 2. Teil angepasst. Vielleicht klappts so...

Verfasst: Sa 16.Sep, 2006 19:42
von jungpionier
Danke geht aber auch nicht jetzt wirds wieder immer abgezogen LOL.

Vieleicht noch ne Idee? (mit treuen Hundeaugen hochgugg) ;P


mfg Jungpionier

Verfasst: Sa 16.Sep, 2006 23:32
von oxpus
Ich habe die letzte SQL-Anweisung nochmal geändert.
Der Dateiname war nicht der korrekte, somit konnte logischerweise das Script den vorherigen Download nicht finden...

Verfasst: So 17.Sep, 2006 09:47
von jungpionier
Dankeschön das funktioniert soweit :respect:

bis auf einen kleinen schönheitsfehler das Icon ändert sich noch nicht auf grün wenn ich die datei gedownloadet habe.

Ich erkläre es noch mal hehe*

1.) also ich downloade die datei das erste mal dabei wird traffic abgezogen <-- Funktioniert

2.) nach dem download sollte das Icon Grün werden (kein Trafficabzug vom Benutzerkonto) <-- Das funktioniert noch nicht

3.) Ich downloade die Datei ein 2tes mal, es wird kein traffc mehr abgezogen <-- Funktioniert


Hast du da noch ne idee ? Im alten DL-Mod (4.36) Vorher hat das funktioniert :cool:


Ich danke dir jetzt schon mal für deine grossartige leistung und den Grossartigen Support uns Usern gegenüber.


mfg Jungpionier

Verfasst: So 17.Sep, 2006 09:59
von oxpus
Öhm, das wäre ein zu grosser Eingriff in den MOD.
Da müsste ich mir in einer ruhigen Stunde mal Gedanken machen, da der 5er MOD nun die Stati der Downloads komplett anders verwaltet.
Aber ich müsste eigentlich dazu auch was erstellt haben...

Verfasst: So 17.Sep, 2006 10:39
von jungpionier
Ja du hattest damals was erstellt dazu

und zwar war das in der Load.php

folgender Code:

Code: Alles auswählen


Find

if ($status == true)
{
	$query_klicks = "UPDATE " . DOWNLOADS_TABLE . " SET klicks = klicks + 1, overall_klicks = overall_klicks + 1, last_time = " . time() . " WHERE id = $id";
	$result_klicks = mysql_query($query_klicks);


After Add

	$sql = "SELECT DISTINCT username, filename FROM phpbb_loaded
		WHERE (username LIKE '%".$userdata['username']."%')
			AND filename LIKE '%$file_name%'";
	$result = $db->sql_query($sql);
	$total = $db->sql_numrows($result);
	$db->sql_freeresult($result);	

	if ($total == 0)
	{


Find 

		if ($user_id != ANONYMOUS && $file_free == "0" && $file_extern == "0") 
		{
			$query_traffic = "UPDATE " . USERS_TABLE . " SET user_traffic = user_traffic - $file_size WHERE user_id = $user_id"; 
			$result_traffic = mysql_query($query_traffic);
		}
	}


After add

}
das wars glaube ich schon :)


aber im neuen mod gibts ja keine load.php mehr deswegen weis ich nicht wie ichs einbauen soll und sicherlich haben sich da ja auch variablen geändert , davon hab ich ja nun leider gar keine ahnung. :(


Ich wäre dir jedenfalls sehr dankbar wenn du noch irgentwie ne ruhige minute hättest.




mfg Jungpionier


:p

Verfasst: So 17.Sep, 2006 19:25
von oxpus
Versuch mal das hier:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
dl_mod/classes/class_dlmod.php

#
#-----[ FIND ]------------------------------------------
#
	function dl_status($id)
	{
		global $images, $lang, $phpEx;

		$lang['Dl_red_explain_alt'] = sprintf($lang['Dl_red_explain_alt'], $this->dl_config['dl_posts']);

		$cat_id = $this->dl_file[$id]['cat'];
		$cat_auth = array();
		$cat_auth = $this->dl_cat_auth($cat_id);
		$index = array();
		$index = $this->full_index($cat_id);
		$status = '';
		$file_name = '';
		$auth_dl = 0;

		$file_name = '<a href="'.append_sid("downloads.$phpEx?view=detail&id=$id").'">'.$this->dl_file[$id]['file_name'].'</a>';
		$file_detail = $this->dl_file[$id]['file_name'];

#
#-----[ AFTER, ADD ]------------------------------------------
#
		//Prüfen, ob der User schon bezahlt hat
		global $db;
		$sql = "SELECT DISTINCT username, filename FROM phpbb_loaded
			WHERE (username = '".$this->user_id."')
				AND (filename = '".$this->dl_file[$id]['file_name']."')";
		$result = $db->sql_query($sql);
		while ($row = $db->sql_fetchrow($result))
		{
			$this->dl_file[$id]['free'] = 1;
		}

Verfasst: So 17.Sep, 2006 19:57
von jungpionier
Danke

da bekomme ich aber diesen Fehler:
Fatal error: Call to a member function on a non-object in /var/www/web129/html/forum/dl_mod/classes/class_dlmod.php on line 1389
Zeile 1389 ist die fettgedruckte zeile
//Prüfen, ob der User schon bezahlt hat
$sql = "SELECT DISTINCT username, filename FROM phpbb_loaded
WHERE (username = '".$userdata['username']."')
AND (filename = '".$dl_file['file_name']."')";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$this->dl_file[$id]['free'] = 1;
}

mfg jungpionier

Verfasst: So 17.Sep, 2006 22:56
von oxpus
Ah, füg mal vor diese SQL-Anweidung die Zeile

Code: Alles auswählen

global $db;
ein, dann ist der Fehler weg.

Verfasst: So 17.Sep, 2006 23:26
von jungpionier
Danke :)

Fehlermeldung ist weg, funktionieren tut es allerdings nicht also icon schaltet nicht auf grün.

noch ne Idee ? ¦4

Verfasst: So 17.Sep, 2006 23:40
von oxpus
Ich habe den Code in Post #10 geändert...

Verfasst: So 17.Sep, 2006 23:58
von jungpionier
Hmmm funktioniert auch nicht ¦4 ¦4 ¦4

Verfasst: Mo 18.Sep, 2006 07:49
von oxpus
Dann muss ich mir das selber mal alles installieren.
Dauert aber eine Weile, da ich momentan nicht gerade mit Zeit gesegnet bin.

Verfasst: Mo 18.Sep, 2006 08:29
von jungpionier
okay vielen Dank jetzt schonmal für deine Mühe @Oxpus :)

mfg jungpionier



Edit 19.10.2006


hast schon mal etwas zeit gehabt @Oxpus ??? oder eher vergessen ¦4

mfg Jungpionier

Verfasst: Do 19.Okt, 2006 11:59
von oxpus
Nicht wirklich. Im Moment sind eine ganze Menge anderer Baustellen abzufackeln.....

Verfasst: Sa 21.Okt, 2006 09:13
von jungpionier
okay ich gedulde mich :) Danke für die Antwort :p

mfg Jungpionier

Verfasst: Mi 25.Okt, 2006 17:57
von oxpus
Mal schaun, vielleicht pack ich das als Option in die nächste Version.
Aktuell klappt da jedenfalls nichts...

Verfasst: Do 26.Okt, 2006 10:00
von jungpionier
Schade aber okay Danke trotzdem für deine mühe :)


mfg Jungpionier