Ich habe diese Funktion laufen...
BACKUP YOUR DATABASE
Step 1 - Tabelle in MySQL anlegen:
CREATE TABLE `4images_dllog` (
`dllog_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`dllog_images_id` INTEGER(10) UNSIGNED NOT NULL,
`dllog_user_id` INTEGER(11) UNSIGNED NOT NULL,
`dllog_date` INTEGER(11) UNSIGNED NOT NULL,
`dllog_user_ip` VARCHAR(16) NOT NULL,
PRIMARY KEY(`dllog_id`)
)
Step 2
Edit {root}/includes/constants.php
Finde:
define('WORDMATCH_TABLE', $table_prefix.'wordmatch');
Add after:
define('DOWNLOAD_TABLE', $table_prefix.'dllog');
Step 3:
Edit download.php
Find:
if (empty($file_data)) {
if (ereg("^\/", $file_path)) {
preg_match("/^(http:\/\/[^\/]+)/i", $script_url, $regs);
$script_url = $regs[1];
}
$file_data = get_remote_file($script_url."/".$file_path);
}
return (!empty($file_data)) ? $file_data : 0;
}
Add after:
function get_user_ip() {
global $HTTP_SERVER_VARS, $HTTP_ENV_VARS;
$ip = (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ((!empty($HTTP_ENV_VARS['REMOTE_ADDR'])) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv("REMOTE_ADDR"));
$ip = preg_replace("/[^\.0-9]+/", "", $ip);
return substr($ip, 0, 50);
}
Find:
if ($user_info['user_level'] != ADMIN) {
$sql = "UPDATE ".IMAGES_TABLE."
SET image_downloads = image_downloads + 1
WHERE image_id = $image_id";
$site_db->query($sql);
}
Add after:
if ($user_info['user_level'] != ADMIN) {
$current_time = time();
$dl_user_ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO ".DOWNLOAD_TABLE."
(dllog_images_id, dllog_user_id, dllog_date, dllog_user_ip)
VALUES
($image_id, ".$user_info['user_id'].", '$current_time', '$dl_user_ip')";
$site_db->query($sql);
}
Step 4:
Create picdls.php in root
<?php
$main_template = 'picdls';
define('GET_CACHES', 1);
define('ROOT_PATH', './');
define('GET_USER_ONLINE', 1);
include(ROOT_PATH.'global.php');
require(ROOT_PATH.'includes/sessions.php');
$user_access = get_permission();
include(ROOT_PATH.'includes/page_header.php');
  $sql = "SELECT a.dllog_images_id, a.dllog_user_id, a.dllog_date, a.dllog_user_ip, u.user_id, u.user_name   
          FROM ".DOWNLOAD_TABLE." a
  LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = a.dllog_user_id)
  WHERE $image_id = a.dllog_images_id AND u.user_id = a.dllog_user_id";
  $result = $site_db->query($sql);
  $downloads_row = array(); 
 
  $dllist = "";
 
  $dllist ="<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"><tr><td class=\"bordercolor\">";
  $dllist .="<table width=\"100%\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\">";
  $dllist .="<tr><td class=\"head2\" align=\"left\">".$lang['picdll_from']."</td>";
  $dllist .="<td class=\"head2\" align=\"left\">".$lang['picdll_button']."</td>";
  $dllist .="<td class=\"head2\" align=\"center\">".$lang['picdll_status']."</td>";
  $dllist .="<td class=\"head2\" align=\"left\">".$lang['picdll_homepage']."</td>";
  $dllist .="<td class=\"head2\" align=\"left\">".$lang['picdll_date']."</td>";
  $dllist .="<td class=\"head2\" align=\"center\">".$lang['picdll_ip']."</td></tr>";
  $bgcounter = 0;
  while ($row = $site_db->fetch_array($result)) {
    $downloads_row[] = $row;
  }
  $site_db->free_result($result);
  $num_downloads = sizeof($downloads_row);
   
  for ($i = 0; $i < $num_downloads; $i++) {
    $row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
    $download_user_email = "";
    $download_user_email_save = "";
    $download_user_mailform_link = "";
    $download_user_email_button = "";
    $download_user_homepage_button = "";
    $download_user_profile_button = "";
    $download_user_status_img = REPLACE_EMPTY;
    $download_user_name = format_text($downloads_row[$i]['downloads_user_name'], 2);
    $download_user_info = $lang['userlevel_guest'];
$download_user_ip = "";
    $download_date = format_date($config['date_format']." ".$config['time_format'], $downloads_row[$i]['dllog_date']);
    $download_user_id = $downloads_row[$i]['user_id'];
if ($user_info['user_level'] == ADMIN) {
  $download_user_ip = $downloads_row[$i]['dllog_user_ip'];
    }
else {
  $download_user_ip = "<a href=\"contact.php\">Adminanfrage</a>";
}
$download_user_name = format_text($downloads_row[$i][$user_table_fields['user_name']], 2);
    $download_user_profile_link = !empty($url_show_profile) ? $site_sess->url(preg_replace("/{user_id}/", $download_user_id, $url_show_profile)) : $site_sess->url(ROOT_PATH."member.php?action=showprofile&".URL_USER_ID."=".$download_user_id);
$download_user_profile_button = "<a href=\"".$download_user_profile_link."\"><img src=\"".get_gallery_image("profile.gif")."\" border=\"0\" alt=\"".$download_user_name."\" /></a>";
    $download_user_status_img = ($downloads_row[$i][$user_table_fields['user_lastaction']] >= (time() - 300) && ((isset($downloads_row[$i][$user_table_fields['user_invisible']]) && $downloads_row[$i][$user_table_fields['user_invisible']] == 0) || $user_info['user_level'] == ADMIN)) ? "<img src=\"".get_gallery_image("user_online.gif")."\" border=\"0\" alt=\"Online\" />" : "<img src=\"".get_gallery_image("user_offline.gif")."\" border=\"0\" alt=\"Offline\" />";
    $download_user_homepage = (isset($downloads_row[$i][$user_table_fields['user_homepage']])) ? format_url($downloads_row[$i][$user_table_fields['user_homepage']]) : "";
if (!empty($download_user_homepage)) {
      $download_user_homepage_button = "<a href=\"".$download_user_homepage."\" target=\"_blank\"><img src=\"".get_gallery_image("homepage.gif")."\" border=\"0\" alt=\"".$download_user_homepage."\" /></a>";
    }
    if ($count == 0) {
      $row_bg_number = ($bgcounter++ % 2 == 0) ? 1 : 2;
      $dllist .= "<tr class=\"imagerow".$row_bg_number."\">\n";
    }  
$dllist .= "<td valign=\"top\" align=\"center\">".$download_user_name."</td>";
$dllist .= "<td valign=\"top\" align=\"center\">".$download_user_profile_button."</td>";
$dllist .= "<td valign=\"top\" align=\"center\">".$download_user_status_img."</td>";
$dllist .= "<td valign=\"top\" align=\"center\">".$download_user_homepage."</td>";
$dllist .= "<td valign=\"top\" align=\"center\">".$download_date."</td>";
$dllist .= "<td valign=\"top\" align=\"center\">".$download_user_ip."</td>";
$dllist .= "</tr>";
  }
  $dllist .= "</tr>";
  $dllist .= "</table>";
  $dllist .= "</td></tr></table>";
  $site_template->register_vars("dllist", $dllist);
  unset($dllist);
 
//-----------------------------------------------------
//--- Clickstream -------------------------------------
//-----------------------------------------------------
  $clickstream = "<span class=\"clickstream\"><a href=\"".$site_sess->url(ROOT_PATH."index.php")."\" class=\"clickstream\">".$lang['home']."</a>".$config['category_separator'];
  $clickstream .= $lang['picdll_title'];
  $clickstream .= $config['category_separator'];
  $clickstream .= "<a href=\"javascript:history.back()\">".$lang['picdll_back']."</a></span>";
//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
$site_template->register_vars(array(
  "msg" => $msg,
  "clickstream" => $clickstream,
  "picdll_title" => $lang['picdll_title']
));
$site_template->print_template($site_template->parse_template($main_template));
  include(ROOT_PATH.'includes/page_footer.php');
?>
Step 5:
Use error.html, open and save as picdls.html in your template folder:
Find:
<b class="title">{lang_error}</b>
<hr size="1" />
<p>{error_msg}</p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>{category_dropdown_form}</td>
<td align="right">{setperpage_dropdown_form}</td>
</tr>
</table>
<p> </p>
Replace with:
<br />
<span class="title">{picdll_title}</span>
<br />
<hr size="1" />
<br />
{paging_stats}
<br />
<br />
{if dllist}
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td class="head1">
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>
<td class="row1" valign="top">{dllist}</td>
</tr>
</table>
</td>
</tr>
</table>
{endif dllist}
<br />
<br />
{paging}
<br />
<br />
<p> </p>
Step 6:
Create an admin-link:
Open detail.php
Find:
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."admin/index.php?goto=".urlencode("images.php?action=removeimage&image_id=".$image_id))."\" target=\"_blank\">".$lang['delete']."</a> ";
Add after:
$admin_links .= "<a href=\"".$site_sess->url(ROOT_PATH."picdll.php?image_id=".$image_id)."\" >".$lang['picdll_title']."</a>";
...ich werde die Sache noch ausbauen bzw. hier einfacher erklären. Oder hat jemand Zeit und kann das übernehmen?
vg CanonInk