Seite 1 von 4

Anzeige Anzahl der Themen

Verfasst: 26.04.2009 12:28
von kaisinho
Hallo,

in meinem Forum gibt es die Möglichkeiten, persönliche Daten wie Wohnort, Mitglied seit.., etc. einzugeben. Weiterhin wird die bisherige Anzahl der Beiträge angezeigt. Dahinter müssten eigentlich die Anzahl der erstellten Themen angezeigt werden, was leider nicht der Fall ist. Im Adminbereich habe ich keine Stelle gefunden, dich ich diesbezüglich aktivieren könnte. Ich habe zum besseren Verständnis einmal die Infozeile hier eingefügt, vielleicht kann mir jemand einen Tipp geben, wo oder wie ich diesen Bereich füllen lassen kann.

Danke.

Werner
Administrator
Benutzeravatar
Wohnort:
Namborn
Mitglied seit:
Di 19. Feb 2008, 21:19
Zuletzt online:
Sa 25. Apr 2009, 23:22
Beiträge: 1418, Themen:
ZZZ Info:
Z3 roadster 3.0i
Titansilber metallic
21 Bild/er in der Galerie »
3 Bild/er in pers. Galerie »

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 15:38
von oxpus
Öffne memberlist.php und finde

Code: Alles auswählen

		{
			$member['posts_in_queue'] = 0;
		}
Füge danach ein:

Code: Alles auswählen

		$sql = 'SELECT COUNT(topic_id) AS topic_starts FROM ' . TOPICS_TABLE . "
			WHERE topic_poster = $user_id";
		$result = $db->sql_query($sql);
		$member['topic_starts'] = (int) $db->sql_fetchfield('topic_starts');
		$db->sql_freeresult($result);
Finde dann

Code: Alles auswählen

			'POSTS_PCT'			=> sprintf($user->lang['POST_PCT'], $percentage),
und füge danach ein:

Code: Alles auswählen

			'TOPIC_STARTS'		=> $member['topic_starts'],
Jetzt die Datei styles/prosilver/template/memberlist_view.html die Stelle

Code: Alles auswählen

			<dt>{L_TOTAL_POSTS}:</dt>
				<dd>{POSTS} | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a></strong>
finden und davor einfügen:

Code: Alles auswählen

			<dt>{L_TOPICS}:</dt> <dd>{TOPIC_STARTS}</dd></dt>
Wenn nicht angezeigt wird, dann noch den Cache des Templates im Admin-Bereich aktualisieren.
Der "Schönheit" wegen habe ich die Anzahl der (gestarteten) Themen des Users über die Anzahl Beiträge gesetzt.

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 16:56
von nickvergessen

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 17:11
von kaisinho
Hallo,

zuerst einmal vielen Dank für die ausführliche Hilfe und natürlich das Coding.

Leider konnte ich den ersten von dir genannten Eintrag in meiner Datei nicht finden.

Code: Alles auswählen

{
         $member['posts_in_queue'] = 0;
      }
In meiner Memberlist.php gibt es zwar unzählige member-Einträge, aber keine mit dem o.a. Eintrag. Das Wort in_queue oder auch nur queue kommt leider in der gesamten Datei nicht vor.

Der Pfad der folgenden Datei war bei mir ein wenig anders:

Code: Alles auswählen

Jetzt die Datei styles/prosilver/template/memberlist_view.html die Stelle
Anstatt prosilver war hier meine Domain benannt, dies dürfte ja in Ordnung sein, oder..?

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 17:21
von kaisinho
nickvergessen hat geschrieben:Oder siehe:
http://www.phpbb.de/community/viewtopic ... 8&t=151921
Da ich noch recht unsicher bei den Mods bin hätte ich gerne gewusst, ob es eine Installationsanleitung dafür gibt. In der Datei selber, die ich heruntergeladen habe, war keine dementsprechende Datei zu sehen. In der Install.xml ist zumindest für mich keine Installationsanleitung ersichtlich :(

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 20:18
von nickvergessen
install.xml einfach mal mit deinem Browser öffnen

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 20:39
von oxpus
Sorry, nickvergessen. Nicht gesehen :oops:

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 20:41
von kaisinho
nickvergessen hat geschrieben:install.xml einfach mal mit deinem Browser öffnen
Soll dass die Anleitung sein :oops:

Ich glaube, damit bin ich als absoluter Newbie ein wenig überfordert. :oops: Ich erkenne zwar das Coding, aber nicht wohin ich es einsetzen soll. Was geschieht mit den anderen Dateien, die sich in der Zip-Datei befinden.

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 20:47
von oxpus
Hier mal eine kleine Hilfestellung zum MOD-Einbau: KB:modsfaq

Re: Anzeige Anzahl der Themen

Verfasst: 26.04.2009 21:04
von kaisinho
Hallo,

danke für den sehr interessanten Link. Ich habe hier einmal die Install.html eingestellt. Ehrlich gesagt kann ich aus dieser Textdatei keine Installationshilfe erkennen. Das Coding ist klar, aber wohin damit und mit den anderen Dateien, dass ist mir ein Rätsel. :(

Code: Alles auswählen

  
    http://opensource.org/licenses/gpl-license.php GNU General Public License v2
    NV usertopics
    NV usertopics
    Adds the number of opened user-topics to the number of user-posts on all pages.
    Fügt die Anzahl der vom Benutzer eröffneten Themen zu der, der Beiträge in sämtlichen Dateien hinzu.
    Die MOD untersützt die "MOD Version Check"-MOD von Handymman´:
http://www.phpbb.com/community/viewtopic.php?f=69&t=691155
    This MOD supports the "MOD Version Check"-MOD by Handymman´:
http://www.phpbb.com/community/viewtopic.php?f=69&t=691155
    
      
        Joas Schilling
        nickvergessen@gmx.de
        nickvergessen
        http://www.flying-bits.org/
      
    
    1.0.2
    
      intermediate
      900
      3.0.4
    
    
      Anleitung für das deutsche Sprachpaket
      Manual for German Language-set
      Anleitung für das Style subsilver2
      Manual for subsilver2 Style
    
    
      
        2009-02-19
        1.0.2
        
          Increase topic-counter on moderation-queue
        
        
          Themen anzahl auch mit der Moderations-Schlange erhöhen
        
      
      
        2009-02-18
        1.0.1
        
          updated for 3.0.4
        
        
          aktualisiert für 3.0.4
        
      
      
        2008-06-15
        0.1.1
        
          little correction for the search-links
          brought back its own resync
          little mistake in the includes/functions_posting.php
        
        
          kleine Korrektur für die Such-Links
          eigene Resyncronisier Option ist wieder da
          kleiner Fehler in der includes/functions_posting.php
        
      
      
        2008-04-24
        0.1.0
        
          up to phpBB 3.0.1
        
        
          für phpBB 3.0.1
        
      
      
        2007-07-25
        0.0.4
        
          fixed link on the main-page of the UCP
          fixed a problem in the premodded files
        
        
          Link auf der Hauptseite des UCP korregiert
          Ein Fehler in den Premodded-Dateien wurde behoben
        
      
      
        2007-07-22
        0.0.3
        
          fixed a mistake in the premodded files and the manual
        
        
          ein Fehler in der Anleitung und den premodded Dateien behoben
        
      
      
        2007-07-21
        0.0.2
        
          fixed "do not count post" handle on resyncronize
          fixed topic delete function in MCP
          fixed delete first post of topic
        
        
          "Zähler nicht erhöhen" repairiert bei der Resyncronisierungs-Option
          fixed Löschfunktion im MCP
          fixed löschen des ersten Beitrags
        
      
      
        2007-07-17
        0.0.1
        
          first version
        
        
          erste Version
        
      
    
    
  
  
    
      
    
    ALTER TABLE `phpbb_users` ADD `user_topics` mediumint(8) unsigned DEFAULT "0" NOT NULL;
    
      
        			<form id="action_user_form" method="post" action="{U_ACTION}">
				<dl>
					<dt><label for="action_user">{L_RESYNC_POSTCOUNTS}</label><br /><span>{L_RESYNC_POSTCOUNTS_EXPLAIN}</span></dt>
					<dd><input type="hidden" name="action" value="user" /><input class="button2" type="submit" id="action_user" name="action_user" value="{L_RUN}" /></dd>
				</dl>
			</form>
        			<form id="action_topics_form" method="post" action="{U_ACTION}">
				<dl>
					<dt><label for="action_topics">{L_RESYNC_TOPICCOUNTS}</label><br /><span>{L_RESYNC_TOPICCOUNTS_EXPLAIN}</span></dt>
					<dd><input type="hidden" name="action" value="topics" /><input class="button2" type="submit" id="action_topics" name="action_topics" value="{L_RUN}" /></dd>
				</dl>
			</form>
      
    
    
      
        $percentage = ($config['num_posts']) ? min(100, ($member['user_posts'] / $config['num_posts']) * 100) : 0;
        		$topics_per_day = $member['user_topics'] / $memberdays;
		$percentage_topics = ($config['num_topics']) ? min(100, ($member['user_topics'] / $config['num_topics']) * 100) : 0;
      
      
        			'POSTS_DAY'			=> sprintf($user->lang['POST_DAY'], $posts_per_day),
			'POSTS_PCT'			=> sprintf($user->lang['POST_PCT'], $percentage),
        			'TOPICS_DAY'		=> sprintf($user->lang['TOPIC_DAY'], $topics_per_day),
			'TOPICS_PCT'		=> sprintf($user->lang['TOPIC_PCT'], $percentage_topics),
      
      
        $sort_key_text = array('a' => $user->lang['SORT_USERNAME'], 'b' => $user->lang['SORT_LOCATION'], 'c' => $user->lang['SORT_JOINED'], 'd' => $user->lang['SORT_POST_COUNT'], 'f' => $user->lang['WEBSITE'], 'g' => $user->lang['ICQ'], 'h' => $user->lang['AIM'], 'i' => $user->lang['MSNM'], 'j' => $user->lang['YIM'], 'k' => $user->lang['JABBER']);
        
            , 'k' => $user->lang['JABBER']
            , 'o' => $user->lang['TOPICS']
        
      
      
        $sort_key_sql = array('a' => 'u.username_clean', 'b' => 'u.user_from', 'c' => 'u.user_regdate', 'd' => 'u.user_posts', 'f' => 'u.user_website', 'g' => 'u.user_icq', 'h' => 'u.user_aim', 'i' => 'u.user_msnm', 'j' => 'u.user_yim', 'k' => 'u.user_jabber');
        
            , 'k' => 'u.user_jabber'
            , 'o' => 'u.user_topics'
        
      
      
        'U_LIST_CHAR'			=> $sort_url . '&sk=a&sd=' . (($sort_key == 'l' && $sort_dir == 'a') ? 'd' : 'a'),
        'U_SORT_TOPICS'			=> $sort_url . '&sk=o&sd=' . (($sort_key == 'o' && $sort_dir == 'a') ? 'd' : 'a'),
      
      
        'S_JABBER_ENABLED'	=> ($config['jab_enable']) ? true : false,
        		'TOPICS'			=> ($data['user_topics']) ? $data['user_topics'] : 0,
		'U_SEARCH_USER_TOPICS'	=> ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", "author_id=$user_id&sr=topics&sf=firstpost") : '',
      
    
    
      
        	if (!isset($user_cache[$poster_id]))
	{
		if ($poster_id == ANONYMOUS)
		{
			$user_cache[$poster_id] = array(
				'joined'		=> '',
				'posts'			=> '',
        'topics'		=> '',
      
      
        			$user_cache[$poster_id] = array(
				'joined'		=> $user->format_date($row['user_regdate']),
				'posts'			=> $row['user_posts'],
        'topics'		=> $row['user_topics'],
      
      
        		'POSTER_JOINED'		=> $user_cache[$poster_id]['joined'],
		'POSTER_POSTS'		=> $user_cache[$poster_id]['posts'],
        'POSTER_TOPICS'		=> $user_cache[$poster_id]['topics'],
      
    
    
      
        $sql = 'SELECT topic_id, forum_id, topic_approved, topic_moved_id
        
            , topic_approved
            , topic_poster
        
      
      
        			$approved_topics++;
        			$sql = 'UPDATE ' . USERS_TABLE . " SET user_topics = user_topics - 1 WHERE user_id = '" . $row['topic_poster'] . "'";
			$db->sql_query($sql);
      
    
    
      
        			// Decrementing topic_replies here is fine because this case only happens if there is more than one post within the topic - basically removing one "reply"
			$sql_data[TOPICS_TABLE] .= ', topic_replies_real = topic_replies_real - 1' . (($data['post_approved']) ? ', topic_replies = topic_replies - 1' : '');
        $sql_data[USERS_TABLE] = 'user_topics = user_topics' . (($data['post_approved']) ? ' - 1' : '');
      
      
        			}

			$sql_data[USERS_TABLE]['stat'][] = "user_lastpost_time = $current_time" . (($auth->acl_get('f_postcount', $data['forum_id']) && $post_approval) ? ', user_posts = user_posts + 1' : '');
        
            ', user_posts = user_posts + 1
             , user_topics = user_topics + 1
        
      
    
    
      
        					case 'user':
						$confirm = true;
						$confirm_lang = 'RESYNC_POSTCOUNTS_CONFIRM';
					break;
        					case 'topics':
						$confirm = true;
						$confirm_lang = 'RESYNC_TOPICCOUNTS_CONFIRM';
					break;
      
      
        							$start += $step;
						}

						add_log('admin', 'LOG_RESYNC_POSTCOUNTS');

					break;
        					case 'topics':
						if (!$auth->acl_get('a_board'))
						{
							trigger_error($user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
						}

						$sql = 'SELECT COUNT(p.post_id) AS num_topics, u.user_id
							FROM ' . USERS_TABLE . ' u
							LEFT JOIN  ' . TOPICS_TABLE . ' t ON (u.user_id = t.topic_poster)
							LEFT JOIN  ' . POSTS_TABLE . ' p ON (p.post_id = t.topic_first_post_id AND p.post_postcount = 1)
							GROUP BY u.user_id';
						$result = $db->sql_query($sql);

						while ($row = $db->sql_fetchrow($result))
						{
							$db->sql_query('UPDATE ' . USERS_TABLE . " SET user_topics = {$row['num_topics']} WHERE user_id = {$row['user_id']}");
						}
						$db->sql_freeresult($result);

						add_log('admin', 'LOG_RESYNC_TOPICCOUNTS');

					break;
      
    
    
      
        			// Topic or Post. ;)
			if ($post_data['topic_first_post_id'] == $post_id)
			{
        				// Increase the user_topics field
				if ($post_data['post_postcount'])
				{
					$user_topics_sql[$post_data['poster_id']] = (empty($user_topics_sql[$post_data['poster_id']])) ? 1 : $user_topics_sql[$post_data['poster_id']] + 1;
				}
      
      
        		}

		if ($total_topics)
		{
        			if (sizeof($user_topics_sql))
			{
				// Try to minimize the query count by merging users with the same topic count additions
				$user_topics_update = array();

				foreach ($user_topics_sql as $user_id => $user_topics)
				{
					$user_topics_update[$user_topics][] = $user_id;
				}

				foreach ($user_topics_update as $user_topics => $user_id_ary)
				{
					$sql = 'UPDATE ' . USERS_TABLE . '
						SET user_topics = user_topics + ' . $user_topics . '
						WHERE ' . $db->sql_in_set('user_id', $user_id_ary);
					$db->sql_query($sql);
				}
			}
      
    
    
      
        				$posts_per_day = $user->data['user_posts'] / $memberdays;
				$percentage = ($config['num_posts']) ? min(100, ($user->data['user_posts'] / $config['num_posts']) * 100) : 0;
        				$topics_per_day = $user->data['user_topics'] / $memberdays;
				$percentage_topics = ($config['num_topics']) ? min(100, ($user->data['user_topics'] / $config['num_topics']) * 100) : 0;
      
      
        					'POSTS_DAY'			=> sprintf($user->lang['POST_DAY'], $posts_per_day),
					'POSTS_PCT'			=> sprintf($user->lang['POST_PCT'], $percentage),
        					'TOPICS'				=> ($user->data['user_topics']) ? $user->data['user_topics'] : 0,
					'TOPICS_DAY'			=> sprintf($user->lang['TOPIC_DAY'], $topics_per_day),
					'TOPICS_PCT'			=> sprintf($user->lang['TOPIC_PCT'], $percentage_topics),
					'U_SEARCH_USER_TOPICS'	=> ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", 'author_id=' . $user->data['user_id'] . '&sr=topics&sf=firstpost') : '',
      
    
    
      
        		'AUTHOR_POSTS'		=> (!empty($user_info['user_posts'])) ? $user_info['user_posts'] : '',
        'AUTHOR_TOPICS'		=> (!empty($user_info['user_topics'])) ? $user_info['user_topics'] : '',
      
    
    
      
        'default_dateformat'	=> 'D M d, Y g:i a', // Mon Jan 01, 2007 1:37 pm
        	'TOTAL_TOPICS'				=> 'Total topics',
	'TOPIC_DAY'					=> '%.2f topics per day',
	'TOPIC_PCT'					=> '%.2f%% of all topics',
      
    
    
      
        'SEARCH_USER_POSTS'		=> 'Search user’s posts',
        'SEARCH_USER_TOPICS'	=> 'Search user’s topics',
      
    
    
      
        'SEARCH_YOUR_POSTS'			=> 'Show your posts',
        'SEARCH_YOUR_TOPICS'		=> 'Show your topics',
      
    
    
      
        	'RESYNC_STATS_CONFIRM'			=> 'Are you sure you wish to resynchronise statistics?',
	'RESYNC_STATS_EXPLAIN'			=> 'Recalculates the total number of posts, topics, users and files.',
        	'RESYNC_TOPICCOUNTS'			=> 'Resynchronise topic counts',
	'RESYNC_TOPICCOUNTS_EXPLAIN'	=> 'Only existing topics will be taken into consideration. Pruned topics will not be counted.',
	'RESYNC_TOPICCOUNTS_CONFIRM'	=> 'Are you sure you wish to resynchronise topic counts?',
      
      
        'LOG_RESYNC_STATS'			=> '<strong>Post, topic and user statistics resynchronised</strong>',
        'LOG_RESYNC_TOPICCOUNTS'	=> '<strong>User topic counts resynchronised</strong>',
      
    
    
      
        <th class="posts"><a href="{U_SORT_POSTS}#memberlist">{L_POSTS}</a></th>
        
            {L_POSTS}</a>
            {L_COMMA_SEPARATOR}<a href="{U_SORT_TOPICS}#memberlist">{L_TOPICS}</a>
        
      
      
        <td class="posts"><!-- IF memberrow.POSTS --><a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a><!-- ELSE -->{memberrow.POSTS}<!-- ENDIF --></td>
        <td class="posts"><!-- IF memberrow.POSTS or memberrow.TOPICS --><!-- IF memberrow.POSTS --><div>{L_POSTS}: <a href="{memberrow.U_SEARCH_USER}" title="{L_SEARCH_USER_POSTS}">{memberrow.POSTS}</a></div><!-- ENDIF --><!-- IF memberrow.TOPICS --><div>{L_TOPICS}: <a href="{memberrow.U_SEARCH_USER_TOPICS}" title="{L_SEARCH_USER_TOPICS}">{memberrow.TOPICS}</a></div><!-- ENDIF --><!-- ELSE -->&nbsp;<!-- ENDIF --></td>
      
    
    
      
        			<dt>{L_TOTAL_POSTS}:</dt>
				<dd>{POSTS} | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_USER_POSTS}</a></strong>
					<!-- IF POSTS_PCT --><br />({POSTS_PCT} / {POSTS_DAY})<!-- ENDIF -->
					<!-- IF POSTS_IN_QUEUE and U_MCP_QUEUE --><br />(<a href="{U_MCP_QUEUE}">{L_POSTS_IN_QUEUE}</a>)<!-- ELSEIF POSTS_IN_QUEUE --><br />({L_POSTS_IN_QUEUE})<!-- ENDIF -->
				</dd>
        			<dt>{L_TOTAL_TOPICS}:</dt>
				<dd>{TOPICS} | <strong><a href="{U_SEARCH_USER_TOPICS}">{L_SEARCH_USER_TOPICS}</a></strong>
					<!-- IF POSTS_PCT --><br />({TOPICS_PCT} / {TOPICS_DAY})<!-- ENDIF -->
				</dd>
      
    
    
      
        <dt>{L_TOTAL_POSTS}:</dt> <dd><!-- IF POSTS_PCT -->{POSTS} | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_YOUR_POSTS}</a></strong><br />({POSTS_DAY} / {POSTS_PCT})<!-- ELSE -->{POSTS}<!-- ENDIF --></dd>
        <dt>{L_TOTAL_TOPICS}:</dt> <dd><!-- IF TOPICS_PCT -->{TOPICS} | <strong><a href="{U_SEARCH_USER_TOPICS}">{L_SEARCH_YOUR_TOPICS}</a></strong><br />({TOPICS_DAY} / {TOPICS_PCT})<!-- ELSE -->{TOPICS}<!-- ENDIF --></dd>
      
    
    
      
        <!-- IF AUTHOR_POSTS --><dd><strong>{L_POSTS}:</strong> {AUTHOR_POSTS}</dd><!-- ENDIF -->
        <!-- IF AUTHOR_TOPICS --><dd><strong>{L_TOPICS}:</strong> {AUTHOR_TOPICS}</dd><!-- ENDIF -->
      
    
    
      
        <!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->
        <!-- IF postrow.POSTER_TOPICS --><dd><strong>{L_TOPICS}:</strong> {postrow.POSTER_TOPICS}</dd><!-- ENDIF -->
      
    
    Don't forget to clear the cache!
After the install, you have to resynchronise it. Therefor go to the ACP and do it (on the first page)
If you want me to add your language file to the download, just leave me a pm:
http://www.phpbb.com/community/ucp.php?i=pm&mode=compose&u=315319
    Nicht vergessen den Cache zuleeren!
Nach dem Installieren muss der MOD resyncronisiert werden, Dafür ins ACP gehen und ausführen (auf der ersten Seite zufinden)
Wenn ihr den MOD in eine weitere Sprache übersetzt habt, schickt mir doch eine pm:
http://www.phpbb.com/community/ucp.php?i=pm&mode=compose&u=315319