Avatare freischalten für wBB1
#1
Hallo,

da wir noch immer ein Mitglied haben welches sich standhaft weigert eine aktuelle Boardversion zu nutzen gibt es nun diese Erweiterung wieder für das wBB1.
Sie bewirkt, dass jeder Avatar vorher von einem Admin freigeschaltet werden muss.

1.) Führe diese MySQL Befehl aus:
ALTER TABLE `bbX_avatars` ADD `allowed` INT( 11 ) NOT NULL ;

Wobei du das X durch deine Installtionsnummer ersetzen musst!

2.) Öffne die Datei admin/Upload.class.php und suche:
Code:
$db_zugriff->query("INSERT INTO bb".$n."_avatars VALUES ('','".$this->file_name."','".$this->file_extension."','$groupid','$posts','$setuserid')");
$this->insertid = $db_zugriff->insert_id();

füge hinter $setuserid' ein:
,'0'

3.) Öffne die thread.php und suche:
Code:
$post_result = $db_zugriff->query("
    SELECT bb".$n."_posts.*, bb".$n."_avatars.extension as avatarextension, bb".$n."_user_table.*, bb".$n."_useronline.zeit FROM bb".$n."_posts
    LEFT JOIN bb".$n."_user_table ON (bb".$n."_user_table.userid = bb".$n."_posts.userid)
    LEFT JOIN bb".$n."_avatars ON (bb".$n."_avatars.id = bb".$n."_user_table.avatarid AND bb".$n."_avatars.allowed=1)
    LEFT JOIN bb".$n."_useronline ON (bb".$n."_useronline.userid = bb".$n."_posts.userid AND bb".$n."_useronline.userid>0)
    WHERE bb".$n."_posts.postid IN (0$postids) ORDER by bb".$n."_posts.posttime ".ifelse($postorder,"DESC","ASC"));
ersetze diese Zeile:
Code:
LEFT JOIN bb".$n."_avatars ON (bb".$n."_avatars.id = bb".$n."_user_table.avatarid)
durch:
Code:
LEFT JOIN bb".$n."_avatars ON (bb".$n."_avatars.id = bb".$n."_user_table.avatarid AND (bb".$n."_avatars.allowed=1 OR bb".$n."_avatars.userid=0))
suche:
Code:
if($posts[avatarid] && !$hide_userpic && $avatars) $user_pic = "<br><img src=\"images/avatars/avatar-".$posts[avatarid].".".$posts[avatarextension]."\" border=0>";
ersetze es durch:
Code:
if($posts[avatarid] && $posts[avatarextension] && !$hide_userpic && $avatars) $user_pic = "<br><img src=\"images/avatars/avatar-".$posts[avatarid].".".$posts[avatarextension]."\" border=0>";

4.) Öffne die members.php und suche:
Code:
$user_info = $db_zugriff->query_first("SELECT users.*, avatars.extension FROM bb".$n."_user_table users LEFT JOIN bb".$n."_avatars avatars ON (avatars.id=users.avatarid) WHERE users.userid='$userid'");
ersetze es durch:
Code:
$user_info = $db_zugriff->query_first("SELECT users.*, avatars.extension FROM bb".$n."_user_table users LEFT JOIN bb".$n."_avatars avatars ON (avatars.id=users.avatarid AND (avatars.allowed=1 OR avatars.userid=0)) WHERE users.userid='$userid'");
suche:
Code:
if($user_info[avatarid] && !$hide_userpic && $avatars) $userpic = "<br><img src=\"images/avatars/avatar-$user_info[avatarid].$user_info[extension]\" border=0>";
ersetze es durch:
Code:
if($user_info[avatarid] && $user_info[extension] && !$hide_userpic && $avatars) $userpic = "<br><img src=\"images/avatars/avatar-$user_info[avatarid].$user_info[extension]\" border=0>";

5.) Öffne die Datei admin/templates/menue.htm und suche:
Code:
<p style="margin-top: 0; margin-bottom: 0">
                <font size=1 face="Tahoma"><a href="admin.php?action=avatar_user_del$session" target="main">
                <font color="#FFFFFF">» User-Avatars löschen</font></a></font></p>
füge darunter ein:
Code:
<p style="margin-top: 0; margin-bottom: 0">
                <font size=1 face="Tahoma"><a href="admin.php?action=activate_avatar" target="main">
                <font color="#FFFFFF">» Avatare freischalten</font></a></font></p>

6.) Öffne admin/admin.php und suche:
Code:
if($action == "smilies_del") {
    if($send == "send" && count($smilieid)) {
        for($i = 0; $i < count($smilieid); $i++) $db_zugriff->query("DELETE FROM bb".$n."_smilies WHERE id = '$smilieid[$i]'");
    }
    
    $result = $db_zugriff->query("SELECT * FROM bb".$n."_smilies ORDER BY id ASC");
    while($row = $db_zugriff->fetch_array($result)) eval ("\$smilies_delbit .= \"".gettemplate("smilies_delbit")."\";");
    eval("dooutput(\"".gettemplate("smilies_del")."\");");
}
füge darunter ein:
Code:
if($action == "activate_avatar") {
    if($send == "send" && count($avatarid)) {
        for($i = 0; $i < count($avatarid); $i++) $db_zugriff->query("UPDATE bb".$n."_avatars SET allowed=1 WHERE id = '$avatarid[$i]'");
    }
    $result = $db_zugriff->query("SELECT * FROM bb".$n."_avatars avatars,bb".$n."_user_table users WHERE avatars.allowed=0 AND users.userid=avatars.userid ORDER BY id");
    while($row = $db_zugriff->fetch_array($result)) eval ("\$avatars_bit .= \"".gettemplate("activate_avatars_bit")."\";");

        eval("dooutput(\"".gettemplate("activate_avatar")."\");");
}

7.) Öffne die templates/profile_avatars.htm und suche:
Code:
<td colspan=2><FONT face="{font}" size=2  color="{fontcolorsecond}"><b>Avatare</b>
füge dahinter ein:
$hinweis

8.) Öffne die profile.php und suche:
Code:
if ($upload->doUpload()) $db_zugriff->query("UPDATE bb".$n."_user_table set avatarid = '$insertid' WHERE userid = '$user_id'");
else eval ("\$error = \"".gettemplate("error3")."\";");
ersetze es durch:
Code:
if ($upload->doUpload()){
                     $db_zugriff->query("UPDATE bb".$n."_user_table set avatarid = '$insertid' WHERE userid = '$user_id'");
                     $hinweis="<br>Bevor dein Avatar sichtbar ist, wird er von einem Admin geprüft. Bitte habe dafür Verständnis.";
                     $db_zugriff->query("INSERT INTO bb".$n."_pms(senderid,recipientid,sendtime,subject,message,icon,disable_smilies) VALUES('1','1','".time()."','Neuer Avatar bereit zum freischalten','Ein neuer Avatar wurde gewählt und muss nun freigeschaltet werden','./images/icons/ausrufezeichen.gif','0')");
                    }else{
                     eval ("\$error = \"".gettemplate("error3")."\";");
                    }

Abschließend musst du noch die beiden Templates aus dem .zip Archiv in den Ordner admin/templates laden!

Viel Erfolg mit der Erweiterung!

Gruß pattex


Angehängte Dateien
.zip   avatar_freischalten_tpl.zip (Größe: 929 Bytes / Downloads: 293)
  Zitieren
#2
Jap ich weigere mich sehr zu updaten. :-)

Ich bleibe meinen wbb1 treu... :-)

Werde es gleich mal versuchen das addon. Danke dir schon einmal für die mühe julian. :-)

Grüssle cHAp
  Zitieren
#3
Hallo Julian,

also erstmal ein herzlichen Danke an dich. Funktioniert wunderbar.

Kleine verbesserungswunsch von mir:

1. Admin PN, lässt sich nicht als gelesen markieren wenn man die PN angesehen hat.
1.1. In der Admin PN sollte wenn möglich der Nickname mit drin stehen wer gerate eins hochgeladen hatte.
2. Bei Normalen Avataren wird diese nicht mehr im Profile angezeigt rechts.
Ist allerdings nur so, wenn man eins nimmt die vorgegeben sind im Profile. Bei eigenen hochgeladenen Avataren.
3. Bei Normalen Avataren wird diese nicht mehr im Thread angezeigt links.
Ist allerdings nur so, wenn man eins nimmt die vorgegeben sind im Profile. Bei eigenen hochgeladenen Avataren.

Liebe Grüsse
cHAp
  Zitieren
#4
Okay Smile

zu 1.) Stimmt, sehe ich zwar nicht so tragisch aber okay. Werd sehen was sich machen lässt.

zu 1.1) Erachte ich nicht als nötigt. Im ACP sieht man ja sowohl den Avatar als auch den Nickname.

zu 2. und 3.) Das habe ich nicht getestet. Mache ich gleich Smile
  Zitieren
#5
Kleine Fehlerbehebung:

Suche in der thread.php nach:
Code:
LEFT JOIN bb".$n."_avatars ON (bb".$n."_avatars.id = bb".$n."_user_table.avatarid AND bb".$n."_avatars.allowed=1)

und ersetze es mit:
Code:
    LEFT JOIN bb".$n."_avatars ON (bb".$n."_avatars.id = bb".$n."_user_table.avatarid AND (bb".$n."_avatars.allowed=1 OR bb".$n."_avatars.userid=0))

Suche in der members.php nach:
Code:
$user_info = $db_zugriff->query_first("SELECT users.*, avatars.extension FROM bb".$n."_user_table users LEFT JOIN bb".$n."_avatars avatars ON (avatars.id=users.avatarid AND avatars.allowed=1) WHERE users.userid='$userid'");

und ersetze es mit:
Code:
    $user_info = $db_zugriff->query_first("SELECT users.*, avatars.extension FROM bb".$n."_user_table users LEFT JOIN bb".$n."_avatars avatars ON (avatars.id=users.avatarid AND (avatars.allowed=1 OR avatars.userid=0)) WHERE users.userid='$userid'");


Zu dem PN als gelesen markieren: Das geht bei mir bei keiner PN. Liegt wohl am Board.
  Zitieren
#6
OK das Update hat funktioniert.

zu 1.1) Erachte ich nicht als nötigt. Im ACP sieht man ja sowohl den Avatar als auch den Nickname.

Naja aber in der PN wäre es sinnvoll oder im ACP das das datum und uhrzeit da steht wann es hochgeladen wurde. :-)

Lg. cHAp
  Zitieren
#7
Uhrzeit sieht man anhand der PN und user steht im ACP Wink

Gruß pattex
  Zitieren
#8
Kann man aber danach nicht zu ordnen wer es war. ;-)
  Zitieren
#9
Mhm okay, ich überleg mir was für die Namen.
  Zitieren
#10
Supi danke. :-)
  Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste