Seite 1 von 2

Suche Hilfe oder Mod für Namen des Lesers in einem Post

Verfasst: 17.02.2003 18:13
von Max (Gast)
Hallo,


also ich habe einen Mod gefunden, der, wenn ich es richtig verstanden habe, den Namen des Lesers einsetzt (z.B.: Hallo XXX und weiter im Text - xxx ist entweder Gast oder immer der jeweilige Registrierte Leser)
Nur bekomme ich diesen Mod nicht in Griff, entweder bin ich zu dusselig oder wie auch immer. Kann auch sein, dass der Mod nicht im phpBB 2.0.3 funzt. Oder ich verwende den falschen Code, um das zu benutzen.

Hier mal der Mod:
##############################################################
## MOD Title:advanced /me /you mod
## MOD Author: Bonobo < bonobo@dolfijn.nl > http://www.tempzone.nl
## MOD Description: This mod replaces /me by username and /you bij the readers name.. feature.. in quotes is keeps the name of the original reader....
## MOD Version: 1.0
##
## Installation Level: easy
## Installation Time: 1 Minutes
## Files To Edit: viewtopic.php
## Included Files: n/a
##############################################################
## Author Notes:
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################

Put this in the "bbcode-section" of your viewtopic.php
(maybe not the best place to set it, but it works!)
/note/ it will only be seen in the submitted message, not in the preview /note/

#
#----- [FINDE] ------------------
#
$message = make_clickable($message);
#
#----- [DANACH EINFÜGEN] ------------------
#
$message = str_replace("/you","<font color=\"violet\"> " .$userdata['username']. "</font> ",$message);
$message = str_replace("/me","<font color=\"orange\"> " .$poster. "</font> ",$message);



Then, to prevent the wrong names show up in eventually quotes, put this in your posting.php

FIND
Code:

if ( !empty($orig_word) )
{
$subject = ( !empty($subject) ) ? preg_replace($orig_word, $replace_word, $subject) : '';
$message = ( !empty($message) ) ? preg_replace($orig_word, $replace_word, $message) : '';
}



and place above this the following code:
Code:

$message = str_replace("/me"," $quote_username ",$message);
Vielleich habe ich ja auch nur nicht den richtigen Platz für die ersten zwei einzufügenden Zeilen gefunden.

Über Eure Hilfe und Tipps würde ich mich riesig freuen.


MfG,
Max

Verfasst: 18.02.2003 14:08
von Acid
Ich hab die Anleitung ma editiert.. so sollte es funktionieren.

Verfasst: 18.02.2003 14:58
von Max (Gast)
Danke schön, werde ich dann heute Abend testen.



Max

Verfasst: 18.02.2003 15:56
von Max (Gast)
Hallo,


leider kann ich hier nicht editieren, ich muss mich wohl doch mal registrieren :roll:
Da kommt bestimmt noch öfter was an Fragen von mir.

Nun zum Kern der Sache, ich habe nicht bis heute Abend gewartet, das klappt schon fast perfekt, im Text wird der Name des Lesers eingesetzt, nur leider steht der Name nicht in der Titelzeile. Dafür muss der Code bestimmt noch zusätzlich für den Topic-Titel eingesetzt werden, vermute ich. Wenn ich da auch noch so eine geniale "Editierung" im oben zitierten Posting bekomme, wäre das absolut klasse.


Gruß,
Max

Verfasst: 18.02.2003 16:21
von saerdnaer
dazu müsstest du das obrige in leicht geänderter form in die viewforum.php einbauen:
suchen:

Code: Alles auswählen

$topic_title = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_rowset[$i]['topic_title']) : $topic_rowset[$i]['topic_title'];
danach einfügen:

Code: Alles auswählen

$topic_title = str_replace("/me", ( ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] )), $topic_title);
$topic_title = str_replace("/you", ( $userdata['session_logged_in'] ? $userdata['username'] : $lang['Guest'] ), $topic_title);
und dann noch in der viewtopic.php:
suchen:

Code: Alles auswählen

if ( count($orig_word) )
{
	$topic_title = preg_replace($orig_word, $replacement_word, $topic_title);
}
danach einfügen:

Code: Alles auswählen

// hier fehlr die me zeile noch...
$topic_title = str_replace("/you", ( $userdata['session_logged_in'] ? $userdata['username'] : $lang['Guest'] ), $topic_title);
suche:

Code: Alles auswählen

	//
	// Parse smilies
	//
davor einfügen:

Code: Alles auswählen

$post_subject = str_replace("/you", ( $userdata['session_logged_in'] ? $userdata['username'] : $lang['Guest'] ), $post_subject); 
$post_subject = str_replace("/me", $poster, $post_subject); 
ah

Verfasst: 18.02.2003 17:23
von Max (Gast)
Hallo,

@ saerdnaer: das klappt leider nicht.
Ich bekomme wenn beides hochgeladen wurde die Fehlermeldung
" Parse error: parse error in /home/www/hotdocs/bulldog-board.de/phpbb/viewforum.php on line 457

wenn ich dann die vorher funktionierende viewforum.php wieder aktiviere, kann ich den Index sehen aber keine Topics anwählen, praktisch die selbe Meldung, nur eben für viewtopic on line 443

Und leider habe ich nicht so die Ahnung vom Programmieren, ich habe es nur nach Anleitung eingefügt


Gruß,
Max

Verfasst: 18.02.2003 17:29
von saerdnaer
hatte ein paar fehler im code... obrigen beitrag editert...

ah

Verfasst: 18.02.2003 17:55
von Max (Gast)
Hallo,

perfekt, danke schön.
Aber einen hab` ich noch, da ich ja den Last topic on index-MOD installiert habe, zeigt er mir im Index noch das "/you" an, da muss bestimmt noch im Template was geändert werden.
Ich will ja nicht nerven, aber das ist dann die Krönung, wenn das fertig ist.

Am Ende, werde ich das alles zu einem ganzen zusammenfassen und hier hin posten, dann können alle was davon haben.


Gruß,
Max

Max (Gast)

Verfasst: 19.02.2003 18:39
von Gast
Hallo,

ich habe mich etwas zum Nachdenken darüber gesetzt, aber ich blicke das nicht, der einzige, möglicherweise sinnvolle Schluß, den ich ziehen konnte, war, dass man in der "index.php" noch modifizieren muss.

Um den letzten Topic-Titel auf der Index-Seite anzuzeigen, sind folgende Anpassungen in "index.php" nötig gewesen:
#----- [ FIND (line 156) ] ----
#

$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id
FROM (( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
ORDER BY f.cat_id, f.forum_order";


#
#---- [ REPLACE WITH ] ----
#

$sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id, t.topic_title, t.topic_id
FROM ((( " . FORUMS_TABLE . " f
LEFT JOIN " . POSTS_TABLE . " p ON p.post_id = f.forum_last_post_id )
LEFT JOIN " . TOPICS_TABLE . " t ON t.topic_id = p.topic_id )
LEFT JOIN " . USERS_TABLE . " u ON u.user_id = p.poster_id )
ORDER BY f.cat_id, f.forum_order";

#
# --- [ FIND (line 250) ] ----
#

$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data);

#
#-----[ REPLACE WITH ] -----
#

$is_auth_ary = auth(AUTH_ALL, AUTH_LIST_ALL, $userdata, $forum_data);
if (!isset($board_config['topic_title_index_size'])){
$board_config['topic_title_index_size'] = 25; //Set this to size limit
}


#
# --- [ FIND (line 430) ] ----
#

'MODERATORS' => $moderator_list,

#
# ---- [ AFTER, ADD ] ---
#

'LAST_TOPIC' => $is_auth_ary[$forum_data[$j]['forum_id']]['auth_read'] ? (strlen($forum_data[$j]['topic_title']) > $board_config['topic_title_index_size']) ? substr($forum_data[$j]['topic_title'], 0, ($board_config['topic_title_index_size'] - 2)) . "..." : $forum_data[$j]['topic_title'] : "",
'U_LAST_TOPIC' => append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=" . $forum_data[$j]['topic_id']),

#
dazu war noch in der "index_body.tpl" eine Zeile nötig, die sieht aber aus, als wäre sie zum Plazieren gedacht.
Wenn mir da nochmal die Lösung serviert werden würde, wäre das absolut klasse :)



Gruß,
Max

Verfasst: 20.02.2003 19:54
von saerdnaer
ich würde das AUTH_ALL im allgemeinen nicht benutzen da bei AUTH_ALL irre viele queries gestellt werden...

ah