Seite 1 von 1
"Who viewed a Topic" zu "Topics a User viewed
Verfasst: Mi 08.Jun, 2005 22:57
von helluvaguy
Wäre es möglich, aus den Daten, die in dem "Who viewed a Topic" Mod zur Verfügung stehen, eine Auflistung zu erstellen, aus der ersichtlich wäre, welche Beiträge ein User sich angesehen hat?
Ich bin mir durchaus bewußt, dass es eine gewaltige Auflistung sein kann, aber das ist ja bei dem "Who viewed a Topic" auch der Fall, beiu einem Board z.B. dieser Größe.
Wenn die Übersicht so aussehen könnte...
Forum | Thema | Zuletzt angesehen | Anzahl der Ansichten
Ist sowas machbar, oder ist das nur ein Hirngespinnst meinerseits?
Danke
Verfasst: Mi 08.Jun, 2005 23:44
von oxpus
Muss ich schieben.
Vielleicht ein anderer?
Verfasst: Do 09.Jun, 2005 03:50
von Max
Hi,
das könnte ja sowas sein:
http://www.phpbbhacks.com/download/1684
Allerdings nur für den Admin sichtbar, aber das kann man wohl ändern, wenn nötig.
Und zwar so:
Code: Alles auswählen
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND ]------------------------------------------
#
$template->pparse('body');
#
#-----[ BEFORE, ADD ]------------------------------------------
#
if ($userdata['user_level'] == ADMIN)
{
include($phpbb_root_path . '/includes/functions_user_viewed_posts.php');
display_user_viewed_data($profiledata['user_id']);
}
so steht es in der Anleitung und man lässt einfach
weg und schon können das alle User sehen, wenn sie jemandes Profil ansehen.
Gruß Max
[Edit] habe schnell die, für die Anpassung der Ansichtsrechte auch für User, notwendige Änderung gepostet.
Verfasst: Do 09.Jun, 2005 08:41
von helluvaguy
Klingt ja eingentlich recht interessant, aber so wie ich sehe, wird ja ein neuer Table in der DB erstellt. Gerade das wollte ich nicht. Ich würde ja gerne die Daten nutzen die schon da sind, seit dem der "Who viewed a Topic" Mod drin ist.
Müßte doch möglich sein, die die functions_user_viewed_posts.php umzustricken um an diese Daten zu kommen, oder?
Verfasst: Do 09.Jun, 2005 09:26
von Max
helluvaguy hat geschrieben:... Ich würde ja gerne die Daten nutzen die schon da sind, seit dem der "Who viewed a Topic" Mod drin ist.
Müßte doch möglich sein, die die functions_user_viewed_posts.php umzustricken um an diese Daten zu kommen, oder?
möglich wird das sein, aber wozu denn der Aufwand, das Teil ist komplett fertig und liefert exakt das, was Du dir wünscht.
Und die Frage ist, ob bei Deiner Umstrickidee nachher alles so ausgelesen wird, wie es sein soll - mir ist das eindeutig zu viel Aufwand.
Gruß Max
Verfasst: Do 09.Jun, 2005 09:56
von helluvaguy
[quote="Max - 6.Juni 2005, 09:26";p="34956"]
möglich wird das sein, aber wozu denn der Aufwand, das Teil ist komplett fertig und liefert exakt das, was Du dir wünscht.
[/quote] Stimmt schon, nur halt nicht rückwirkend. Und für die Zukunft wäre es sowas wie doppelte Buchführung - nicht wirklich sinnvoll.
Ich habe mal ein wenig an der functions_user_viewed_topic.php "rumgebastelt" und bekomme nun genau das was ich wollte mit den bereits bestehenden Daten.
Aber vielen Dank Max für den Hinweis auf diesen Mod
Code: Alles auswählen
#
# ---ÖFFNE-----
#
includes/functions_user_viewed_post.php
#
# ----FINDE-------
#
/* See if our topic already exists */
$sql = 'SELECT viewed_id, num_views FROM ' . TOPICS_VIEWDATA_TABLE . "
#
# ----ERSEZE DURCH---
#
/* See if our topic already exists */
$sql = 'SELECT view_count FROM ' . TOPIC_VIEW_TABLE . "
#
# ----FINDE + LÖSCHE-------
#
/* If it exists, we update the info */
if (isset($row['viewed_id']))
{
$views = $row['num_views'] + 1;
$sql = 'UPDATE ' . TOPICS_VIEWDATA_TABLE . "
SET num_views = $views,
last_viewed = " . time() . '
WHERE viewed_id = ' . $row['viewed_id'];
}
/* Else, we just insert the new default values */
else
{
$sql = 'INSERT INTO ' . TOPICS_VIEWDATA_TABLE . "
(user_id, topic_id, num_views, last_viewed)
VALUES
($user_id, $topic_id, 1, " . time() . ')';
}
#
# ----FINDE-----
#
$sql = 'SELECT count(*) AS total FROM ' . TOPICS_VIEWDATA_TABLE . "
WHERE user_id = $user_id";
#
# ----ERSETZE DURCH------
#
$sql = 'SELECT count(*) AS total FROM ' . TOPIC_VIEW_TABLE . "
WHERE user_id = $user_id";
#
# ----FINDE-----
#
$sort_types = array('last_viewed', 'num_views');
#
# ----ERSETZE DURCH-----
#
$sort_types = array('view_time', 'view_count');
#
# ----FINDE-----
#
$params = array('start' => 0, 'order' => 'DESC', 'sort' => 'last_viewed');
#
# ----ERSETZE DURCH-----
#
$params = array('start' => 0, 'order' => 'DESC', 'sort' => 'view_time');
#
# ----FINDE----
#
$sql = 'SELECT tv.*, t.*, f.forum_name FROM ' . TOPICS_VIEWDATA_TABLE . ' tv, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
#
# ----ERSETZE DURCH-----
#
$sql = 'SELECT tv.*, t.*, f.forum_name FROM ' . TOPIC_VIEW_TABLE . ' tv, ' . TOPICS_TABLE . ' t, ' . FORUMS_TABLE . " f
#
# ----FINDE----
#
'LAST_VIEWED' => create_date($board_config['default_dateformat'], $row['last_viewed'], $board_config['board_timezone']),
'USER_ID' => $row['user_id'],
'NUM_VIEWS' => $row['num_views'])
#
# ----ERSETZE DURCH----
#
'LAST_VIEWED' => create_date($board_config['default_dateformat'], $row['view_time'], $board_config['board_timezone']),
'USER_ID' => $row['user_id'],
'NUM_VIEWS' => $row['view_count'])
#
# ---ÖFFNE-----
#
# (sowohl die einglische als auch die deutsche)
lang_user_viewed_posts.php
#
# ----FINDE-----
#
$lang['last_viewed'] = $lang['Last_Viewed'];
$lang['num_views'] = $lang['Views'];
#
# ----ERSETZE DURCH-----
#
$lang['view_time'] = $lang['Last_Viewed'];
$lang['view_count'] = $lang['Views'];