Avatar Gallery Hack

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
plexus-x

Avatar Gallery Hack

Beitrag von plexus-x »

Ich war schon lange auf der Suche nach diesem Hack und habe Ihn gestern endlich auf phpbbhacks.com finden können. :D

Dieser Mod erlaubt es nämlich jeweils einem Besucher ein Avatar auszuwählen, d.h. das Avatar das der entsprechende User verwendet, kann von niemand anderem ein 2. Mal benutzt werden. Das Pic verschwindet dann aus der Avatar Gallerie. Das hat den Vorteil das keine Avatars mehr doppelt vergeben werden können und es nicht mehr so schnell zu Verwechslungen kommt.

Nun zu meinem Problem:

Nehmen wir mal an, ich habe 3 Avatar-Verzeichnisse, aber meine Mitglieder haben bereits alle Avatar Pics aus "Verzeichnis 1" ausgesucht, in "Verzeichnis 2" sind dann vielleicht noch zwei übrig und im "Verzeichnis 3" wieder nur eins... usw.

Mein Vorschlag:

Ich habe mir darüber mal so einige Gedanken gemacht, wie man diesen Mod noch etwas verfeinern könnte...

Anstatt die Avatars aus der Gallerie zu löschen, wird an jeder Stelle, an der vorher das bereits vergebene Avatar gewesen ist ein Default Avatar angezeigt (da könnte man ja wird bereits verwendet oder so reinschreiben). Dann würden die Ordner nicht so lehr aussehen!!! :wink:

Ist bestimmt gar nicht so schwer das umzubauen, vielleicht hat ja jemand ne Idee, wie man das hinbekommt...
plexus-x

Beitrag von plexus-x »

Na, hat keiner ne Idee??? :cry:

Hier nochmal der Mod:

Code: Alles auswählen

#################################################################
## Mod Title: Avatar gallery hack
## Mod Version: 1.0.0
## phpBB Version: 2.0.2
## Author: dzidzius - dzidzius@dione.ids.pl (you can find me also at forum www.ForumBest.150.pl, there send all questions)
## Description:
## Avatar from gallery after chosing it by user automatically disappear from gallery. Thanks
## to this hack two users cannot have the same avatar. If user resign from that avatar it will 
## be shown again in gallery.
## Installation Level: easy
## Installation Time: 2
## Files To Edit: 
##
##   includes\usercp_avatar.php, 
## Generator: phpBB2 phpBB MODCreator v 1.1
#################################################################
## This MOD is released under the GPL License.
## Intellectual Property is retained by the MOD Author(s) listed above
#################################################################
## For Security Purposes, Please Check: http://www.phpbb.com/mods/downloads/ for the
## latest version of this MOD. Downloading this MOD from other sites could cause malicious code
## to enter into your phpBB Forum. As such, phpBB will not offer support for MOD's not offered
## in our MOD-Database, located at: http://www.phpbb.com/mods/downloads/
#################################################################
## Author Note:
## 
#################################################################
##
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
#################################################################
#
#-----[ OPEN ]------------------------------------------
#
# includes\usercp_avatar.php
#
#-----[ FIND ]------------------------------------------
#
# $dir = @opendir($board_config['avatar_gallery_path']);
#
#-----[ BEFORE, ADD ]------------------------------------------
#
$my_counter = 0;
$my_checker = 0;
$sql = "SELECT user_avatar
	FROM " . USERS_TABLE . "
	WHERE user_avatar_type=3";

if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}

while( $row = $db->sql_fetchrow($result) )
{
	$my_counter++;
	$my_used_list[$my_counter] = $row['user_avatar'];		
}

$db->sql_freeresult($result);
#
#-----[ FIND ]------------------------------------------
#
while( $sub_file = @readdir($sub_dir) )
{
	if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) )
	{
		$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file; 
		$avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file)));

		$avatar_col_count++;
		if( $avatar_col_count == 5 )
		{
			$avatar_row_count++;
			$avatar_col_count = 0;
		}
	}
}


#
#-----[ REPLACE WITH ]------------------------------------------
#
while( $sub_file = @readdir($sub_dir) )
{
$my_checker = 0;
for ($i = 1; $i<= $my_counter; $i++ )
{
	$my_temp = $file . '/' . $sub_file;
	if ($my_temp == $my_used_list[$i]) $my_checker=1;
	if ($my_checker==1) break;
}
	if ($my_checker == 0)		
	{
		if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) )
		{
			$avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file; 
			$avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file)));

			$avatar_col_count++;
			if( $avatar_col_count == 5 )
			{
				$avatar_row_count++;
				$avatar_col_count = 0;
			}
		}
	}
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

du musst halt das

Code: Alles auswählen

if ($my_checker==1) break;
durch folgendes ersetzen:

Code: Alles auswählen

       if ( $my_checker == 1 )
       {
         $avatar_images[$file][$avatar_row_count][$avatar_col_count] = 'used.gif'; 
         $avatar_name[$file][$avatar_row_count][$avatar_col_count] = 'Bereits verwedet'; 

         $avatar_col_count++; 
         if( $avatar_col_count == 5 ) 
         { 
            $avatar_row_count++; 
            $avatar_col_count = 0; 
         }
       } 
sollte funktinieren... du musst halt in den gallery ordner eine grafik used.gif reinsetzen die dann angezeigt wird...
plexus-x

Beitrag von plexus-x »

Du, der Ansatz scheint schonmal ganz gut zu sein, aber jetzt hab ich ca. 10 mal so viele "wird bereits verwendet bilder" drin, als überhaupt verwendet werden!!! :-?
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

achso stimmt ja :oops:
ersetzt den ganzen while block durch folgendes:

Code: Alles auswählen

while( $sub_file = @readdir($sub_dir) ) 
{ 
   if( preg_match('/(\.gif$|\.png$|\.jpg|\.jpeg)$/is', $sub_file) ) 
   {
      if ( in_array($file . '/' . $sub_file, $my_used_list) )
      {
         $avatar_images[$file][$avatar_row_count][$avatar_col_count] = 'used.gif'; 
         $avatar_name[$file][$avatar_row_count][$avatar_col_count] = 'Bereits verwedet'; 
      }
      else
      {
         $avatar_images[$file][$avatar_row_count][$avatar_col_count] = $file . '/' . $sub_file; 
      $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file)));
      }

      $avatar_col_count++; 
      if( $avatar_col_count == 5 ) 
      { 
         $avatar_row_count++; 
         $avatar_col_count = 0; 
      } 
   } 
} 
sollte funktionieren...

ah
plexus-x

Beitrag von plexus-x »

So, funktioniert ja schonmal super! Doch da wäre noch ein Problem... Man kann nämlich das "bereits verwendet bild" als Avatar auswählen, d.h. der Radio Button darunter müsste deaktiviert sein! :roll: Wie bekommt man dass denn hin?!?!
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

hmm öffne mal die templates/xxx/profile_avater_gallery.tpl und füge nach

Code: Alles auswählen

	<!-- END avatar_option_column -->
folgendes ein:

Code: Alles auswählen

	<!-- BEGIN avatar_option_column -->
		<td class="row2" align="center">&nbsp;</td>
	<!-- END avatar_no_option_column -->
dann öffne die usercp_avatar.php und suche nach

Code: Alles auswählen

 			$template->assign_block_vars('avatar_row.avatar_option_column', array(
				"S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j])
			);
und ersetzt es duch

Code: Alles auswählen

         if ( $avatar_used[$category][$i][$j] )
         {
            $template->assign_block_vars('avatar_row.avatar_no_option_column', array());
         }
         else
         {
	         $template->assign_block_vars('avatar_row.avatar_option_column', array(
	            "S_OPTIONS_AVATAR" => $avatar_images[$category][$i][$j])
            );
         }
dann suche

Code: Alles auswählen

         $avatar_name[$file][$avatar_row_count][$avatar_col_count] = 'Bereits verwedet';
und füge danach ein:

Code: Alles auswählen

         $avatar_used[$file][$avatar_row_count][$avatar_col_count] = true;
dann suche nach

Code: Alles auswählen

         $avatar_name[$file][$avatar_row_count][$avatar_col_count] = ucfirst(str_replace("_", " ", preg_replace('/^(.*)\..*$/', '\1', $sub_file))); 
und füge danach ein::

Code: Alles auswählen

         $avatar_used[$file][$avatar_row_count][$avatar_col_count] = false;
plexus-x

Beitrag von plexus-x »

öhm... jetzt wird's heftig! *g*

Jetzt sind die Radio Buttons teilweise da, aber auch teilweise weg und die Zellen der Tabbelle haben sich auch merkwürdig verschoben... Ich habe mal einen Screenshot gemacht, damit Du dir das besser vorstellen kannst!

>>>> Hier der Screenshot <<<<
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

speicher deine usercp_avatar.php als .phps oder .txt ab und poste den link zu ihr...

ah
plexus-x

Beitrag von plexus-x »

Antworten

Zurück zu „phpBB 2.0: Mod Support“