tracking von downloads
-
- Beiträge: 5
- Registriert: Do 14. Sep 2006, 09:34
- Wohnort: Düsseldorf
- Kontaktdaten:
tracking von downloads
hallo!
für einen kunden erstelle ich gerade eine webseite mit contenido. eine der vorgaben ist, dass getrackt wird, wann welcher kunde auf welche datei (download) zugreift.
---
meine idee:
in der ausgabe des moduls "Text HTML (2)" die vorkommenden links die mit /upload anfangen mit einem link auf redirect.php auszutauschen
als parameter werden uid und link übergeben
klickt der user auf einen download link werden mit der redirect.php alle nötigen daten in eine tabelle geschrieben (wie datetime, uid, datei)
dann wird die datei per header("Location: http://FILENAME/"); geöffnet
---
habe schon mit preg_replace versucht zu arbeiten.
wäre es nicht einfacher bei erstellung eines neuen links zu einer datei diesen gleich mit redirect.php?filename&uid zu ersetzen?
finde leider den code nicht, der bei auswahl einer datei den link erzeugt.
---
wer kann mir den nötigen tipp geben? oder denke ich zu kompliziert?
vielen dank für eure bemühungen im voraus!
Trapper
für einen kunden erstelle ich gerade eine webseite mit contenido. eine der vorgaben ist, dass getrackt wird, wann welcher kunde auf welche datei (download) zugreift.
---
meine idee:
in der ausgabe des moduls "Text HTML (2)" die vorkommenden links die mit /upload anfangen mit einem link auf redirect.php auszutauschen
als parameter werden uid und link übergeben
klickt der user auf einen download link werden mit der redirect.php alle nötigen daten in eine tabelle geschrieben (wie datetime, uid, datei)
dann wird die datei per header("Location: http://FILENAME/"); geöffnet
---
habe schon mit preg_replace versucht zu arbeiten.
wäre es nicht einfacher bei erstellung eines neuen links zu einer datei diesen gleich mit redirect.php?filename&uid zu ersetzen?
finde leider den code nicht, der bei auswahl einer datei den link erzeugt.
---
wer kann mir den nötigen tipp geben? oder denke ich zu kompliziert?
vielen dank für eure bemühungen im voraus!
Trapper
du könntest versuchen die hier umzuschreiben:
http://contenido.org/forum/viewtopic.php?t=11165
counten tut sie schon
http://contenido.org/forum/viewtopic.php?t=11165
counten tut sie schon
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 5
- Registriert: Do 14. Sep 2006, 09:34
- Wohnort: Düsseldorf
- Kontaktdaten:
-
- Beiträge: 5
- Registriert: Do 14. Sep 2006, 09:34
- Wohnort: Düsseldorf
- Kontaktdaten:
um die links dort zu manipulieren kannst du eine chain einsetzen.
das sind die beiden benötigten chain punkte:
das sind die beiden benötigten chain punkte:
Code: Alles auswählen
$_cecRegistry->addChainFunction("Contenido.Content.CreateArticleLink", "deineFunktionZurURLÄnderung");
$_cecRegistry->addChainFunction("Contenido.Content.CreateCategoryLink", "deineFunktionZurURLÄnderung");
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 5
- Registriert: Do 14. Sep 2006, 09:34
- Wohnort: Düsseldorf
- Kontaktdaten:
-
- Beiträge: 5
- Registriert: Do 14. Sep 2006, 09:34
- Wohnort: Düsseldorf
- Kontaktdaten:
so, ich bin jetzt soweit durch, ist zwar alles quick & dirty, aber es läuft. (denke ich)
in der datenbank folgende tabellen anlegen:
und
das modul Text HTML (2) habe ich so erweitert:
und die datei counterredirect.php sieht so aus:
man kann ja mal darüber diskutieren 
grüße!
in der datenbank folgende tabellen anlegen:
Code: Alles auswählen
CREATE TABLE `con_tracker` (
`id` int(255) NOT NULL auto_increment,
`uid` int(255) NOT NULL default '0',
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`category` int(255) NOT NULL default '0',
`article` int(255) NOT NULL default '0',
`download` varchar(255) NOT NULL default '',
`sub1` varchar(255) NOT NULL default '',
`sub2` varchar(255) NOT NULL default '',
`sub3` varchar(255) NOT NULL default '',
`sub4` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=251 ;
Code: Alles auswählen
CREATE TABLE `con_tracker_redirect` (
`id` int(255) NOT NULL auto_increment,
`file` varchar(255) NOT NULL default '',
`uid` int(255) NOT NULL default '0',
`sub1` varchar(255) NOT NULL default '',
`sub2` varchar(255) NOT NULL default '',
`sub3` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=101 ;
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Text HTML
* Author(s) : Andreas Lindner
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 05.08.2005
************************************************/
$zeile = "CMS_HTML[2]";
$output = "CMS_HTML[2]";
$user = $auth->auth["uid"];
$needle[0] = 'upload';
$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi';
while (preg_match($pattern, $zeile, $text))
{
$link = $text[3];
$sql_write_tracking = "INSERT INTO con_tracker_redirect(file, uid, sub1, sub2, sub3)
VALUES ('$link', '$user', '', '', '')";
$mysql_con_tracker = $db->query($sql_write_tracking);
$mysql_con_last_id_query = 'SELECT LAST_INSERT_ID()';
$mysql_con_last_id = $db->query($mysql_con_last_id_query);
$mysql_id = mysql_fetch_array($mysql_con_last_id);
$current_redirect = "counterredirect.php?download=";
$current_redirect .= $mysql_id[0];
$current_redirect .= "&uid=";
$current_redirect .= $user;
if( strpos($link,'upload') ){
$output = str_replace($link, $current_redirect, $output);
}else{
$output = $output;
}
/* $zeile neu bauen */
$zeile = $text[1].$txt[6];
}
echo "<p>". $output ."</p>";
?>
Code: Alles auswählen
<?
include_once ("config.php");
include_once ($contenido_path."includes/startup.php");
cInclude("includes", "functions.con.php");
cInclude("includes", "functions.con2.php");
cInclude("includes", "functions.api.php");
cInclude("includes", "functions.pathresolver.php");
cInclude("classes", "class.frontend.users.php");
cInclude("includes", "functions.general.php");
cInclude("classes", "class.dbfs.php");
$oFEUser = new FrontendUser;
$db = new DB_Contenido;
$download = $_GET["download"];
$uid = $_GET["uid"];
$oFEUser->loadByPrimaryKey($uid);
$time = date("Y-m-d H:i:s");
$forename = $oFEUser->getProperty("contact", "firstname");
$surname = $oFEUser->getProperty("contact", "lastname");
$sql_select_download = "SELECT * FROM con_tracker_redirect WHERE id = $download";
$sql_select_download = $db->query($sql_select_download);
$download = mysql_fetch_array($sql_select_download);
$file = $download["file"];
$sql_delete_download = "DELETE * FROM con_tracker_redirect WHERE id = $download";
$sql_delete_download = $db->query($sql_delete_download);
$sql_write_tracking = "INSERT INTO con_tracker (uid, time, category, article, download, sub1, sub2, sub3, sub4) VALUES ('$uid', '$time', '', '', '$file', '$forename', '$surname', '','')";
$mysql_con_tracker = $db->query($sql_write_tracking);
header("Location: ". $file . "");
?>

grüße!