Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
Dr. Scream

UCP - Eigener Menüpunkt

Recommended Posts

Hallo,

ich bin es einmal wieder, und habe mal wieder eine Frage,

nun ich würde gerne etwas im UserCP Menü ändern das bei "Avatareinstellungen" eine andere Seite kommt. Falls das nicht möglich ist, ist vielleicht möglich das man diesen Menüpunkt ganz entfernt.

Hier noch einen Link zu einem Screenshot, damit vielleicht genauer erkennbar ist was ich meine: Screenshot

Danke schoneinmal im vorraus,

Dr. Scream

Share this post


Link to post

Was möchtest du denn da für eine Seite stehen haben?

Den Link komplett entfernen ist kein Problem, da mußt du nur im Skin die entsprechenden Stelle anpassen und ggf. in der Sourcedatei noch eine Anweisung auskommentieren, damit man die Seite auch nicht über manuelle Eingabe erreicht.

Share this post


Link to post

Ich habe ja einen Forumshop bei mir eingebaut, und dort gibt es eben das Avatar Uploaden zu "kaufen" und daher hätte ich da einfach gern eine Seite wo statt dem Upload Button usw. steht "Bitte benutze den Forum Shop um somit an ein neues Avatar zu kommen". Das wäre voll spitze

Danke schonmal,

Dr. Scream

Share this post


Link to post

Datei UserCP.php

Suche:

      case '24':
     $this->avatar();
     break;
     case '25':
     $this->do_avatar();
     break;
Ändere in:
      case '24':
     //$this->avatar();
                       $this->output .= $this->html->my_avatarinfo();
     break;
     case '25':
     //$this->do_avatar();
                       $this->output .= $this->html->my_avatarinfo();
     break;
In der Datei skin_ucp.php noch folgendes hinzufügen:
function my_avatarinfo() {
global $ibforums;
return <<<EOF
Hier dann den gewünschten HTML Quelltext einbauen, der dann erscheinen soll!
EOF;
}

Sollte dann funktionieren. :)

Share this post


Link to post

Hallo Stefan und auch alle Anderen ;)

Es Funktioniert zwar so nur mit sind einige sachen Aufgefallen was passiert wenn ich es so mache, siehe Screenshot

Dann wollte ich auch noch fragen wie ich es machen kann das aber trotzdem das Persönliche Avatar dort angezeigt wird? (Ist nur gerade so ne Idee von mir ;) )

Danke

Dr. Scream

Share this post


Link to post

Um das mit der Titelleiste zu ändern, einfach folgendes über diese Zeile

$this->output .= $this->html->my_avatarinfo();
einfügen
 	 $this->page_title = $ibforums->lang['t_welcome'];
 $this->nav        = array( "<a href='".$this->base_url."act=UserCP&amp;CODE=00'>".$ibforums->lang['t_title']."</a>" );

Was du jetzt willst, sollte man komplett anders realisieren, indem eine neue bzw. angepaßte Funktion aufgerufen wird. Dies zieht natürlich etwas größere Änderungen am Sourcecode nach sich, ist aber machbar.

Im Moment ist es nur schlecht, vielleicht schau ich am Abend nochmal, ansonsten am Wochenende, wenn sich sonst niemand findet.

Share this post


Link to post

Was du jetzt willst, sollte man komplett anders realisieren, indem eine neue bzw. angepaßte Funktion aufgerufen wird. Dies zieht natürlich etwas größere Änderungen am Sourcecode nach sich, ist aber machbar.

Im Moment ist es nur schlecht, vielleicht schau ich am Abend nochmal, ansonsten am Wochenende, wenn sich sonst niemand findet.

Lass dir Zeit, das hat keine Eile, ("Eile mit Weile"), wir wollen ja ned das du dich hier überarbeitest ;)

Danke vorerst mal, das obere reicht mir erstmal, da kann ich dann schon genug schreiben.

Share this post


Link to post

Wenn, dann vergesse ich sowas nur temporär, bis ich wieder drauf hingewiesen werde. :P

Okay, die nun beschriebende Änderungen beziehen sich auf eine saubere UserCP.php, also ohne die Änderungen, die ich beschrieben habe. Ich hab die Änderungen auch so klein wie irgendwie möglich gehalten und wenn es geht, nur mit Auskommentierungen gearbeitet.

Somit sieht in der UserCP.php die folgende Funktion in etwa so aus:

  function avatar()
 {
 global $ibforums, $DB, $std, $print;

 //------------------------------------------
 // Organise the dimensions
 //------------------------------------------

 list( $this->member['AVATAR_WIDTH'] , $this->member['AVATAR_HEIGHT']  ) = explode ("x", $this->member['avatar_size']);
 list( $ibforums->vars['av_width']   , $ibforums->vars['av_height']    ) = explode ("x", $ibforums->vars['avatar_dims']);
 list( $w, $h ) = explode ( "x", $ibforums->vars['avatar_def'] );

 //------------------------------------------
 // Get the users current avatar to display
 //------------------------------------------

 $my_avatar = $std->get_avatar( $this->member['avatar'], 1, $this->member['avatar_size'] );

 $my_avatar = $my_avatar ? $my_avatar : 'noavatar';

 //------------------------------------------
 // Get the avatar gallery
 //------------------------------------------

 $avatar_gallery    = array();
 $av_categories = array( 0 => array( "root", $ibforums->lang['av_root'] ) );

 //------------------------------------------
 // Get the avatar categories
 //------------------------------------------
/*
 $dh = opendir( $ibforums->vars['html_dir'].'avatars' );

 while ( $file = readdir( $dh ) )
 {
 if ( is_dir( $ibforums->vars['html_dir'].'avatars'."/".$file ) )
 {
   if ( $file != "." && $file != ".." )
   {
   if ( $file == $av_cat_selected )
   {
     $av_cat_found = TRUE;
   }

   $av_categories[] = array( $file, str_replace( "_", " ", $file ) );
   }
 }
 }

 closedir( $dh );

 usort( $av_categories, array( 'UserCP', 'sort_avatars' ) );
 reset( $av_categories );
*/
 //------------------------------------------
 // Get the avatar gallery selected
 //------------------------------------------

 $url_avatar = "http://";

 $avatar_type = "na";

 if ( ($this->member['avatar'] != "") and ($this->member['avatar'] != "noavatar") )
 {
   if ( preg_match( "/^upload:/", $this->member['avatar'] ) )
   {
   $avatar_type = "upload";
   }
 else if ( !preg_match( "/^http/i", $this->member['avatar'] ) )
 {
   $avatar_type = "gallery";
 }
 else
 {
   $url_avatar = $this->member['avatar'];
   $avatar_type = "url";
 }
 }

 //------------------------------------------
 // Render drop down box..
 //------------------------------------------
/*
 $av_gals = "<select name='av_cat' class='forminput'>\n";

 foreach( $av_categories as $cat )
 {
   $av_gals .= "<option value='".$cat[0]."'>".$cat[1]."</option>\n";
 }

 $av_gals .= "</select>\n";
*/

 //------------------------------------------
 // Rest of the form..
 //------------------------------------------

 $formextra   = "";
 $hidden_field = "";
/*
 if ($ibforums->member['g_avatar_upload'] == 1)
 {
   $formextra    = " enctype='multipart/form-data'";
 $hidden_field = "<input type='hidden' name='MAX_FILE_SIZE' value='".($ibforums->vars['avup_size_max']*1024)."' />";
 }
*/
 $this->output .= $this->html->avatar_main( array (
             'MEMBER'               => $this->member,
             'avatar_galleries'     => $av_gals,
             'current_url_avatar'   => $url_avatar,
             'current_avatar_image' => $my_avatar,
             'current_avatar_type'  => $ibforums->lang['av_t_'.$avatar_type],
             'current_avatar_dims'  => $this->member['avatar_size'] == "x" ? "" : $this->member['avatar_size'],
            )  , $formextra, $hidden_field, $this->md5_check     );

 //------------------------------------------
 // Autosizing or manual sizing?
 //------------------------------------------

 $size_html = $ibforums->vars['disable_ipbsize'] ? $this->html->avatar_mansize() : $this->html->avatar_autosize();

 //------------------------------------------
 // Can we use a URL avatar?
 //------------------------------------------
/*
 if ($ibforums->vars['avatar_url'])
 {
   $this->output = str_replace( "<!--IBF.EXTERNAL_TITLE-->",  $this->html->avatar_external_title(), $this->output );
   $this->output = str_replace( "<!--IBF.URL_AVATAR-->",  $this->html->avatar_url_field($url_avatar), $this->output );
   $this->output = str_replace( "<!--IPB.SIZE-->", $size_html, $this->output );
   $ibforums->lang['av_text_url'] = sprintf( $ibforums->lang['av_text_url'], $ibforums->vars['av_width'], $ibforums->vars['av_height'] );
 }
 else
 {
   $ibforums->lang['av_text_url'] = "";
 }

 //------------------------------------------
 // Can we use an uploaded avatar?
 //------------------------------------------

 if ($ibforums->member['g_avatar_upload'] == 1)
 {
 $this->output = str_replace( "<!--IBF.EXTERNAL_TITLE-->",  $this->html->avatar_external_title(), $this->output );
 $this->output = str_replace( "<!--IBF.UPLOAD_AVATAR-->", $this->html->avatar_upload_field($text), $this->output );
 $this->output = str_replace( "<!--IPB.SIZE-->", $size_html, $this->output );
 $ibforums->lang['av_text_upload'] = sprintf( $ibforums->lang['av_text_upload'], $ibforums->vars['avup_size_max'] );
 }
 else
 {
 $ibforums->lang['av_text_upload'] = "";
 }

 //------------------------------------------
 // If yes, show little thingy at top
 //------------------------------------------

 $ibforums->lang['av_allowed_files'] = sprintf($ibforums->lang['av_allowed_files'], implode (' .', explode( "|", $ibforums->vars['avatar_ext'] ) ) );

 if ( $ibforums->vars['allow_flash'] != 1 )
 {
 $ibforums->lang['av_allowed_files'] = str_replace( ".swf", "", $ibforums->lang['av_allowed_files'] );
 }

 $this->output = str_replace( "<!--IBF.LIMITS_AVATAR-->", $this->html->avatar_limits(), $this->output );

*/
 $this->page_title = $ibforums->lang['t_welcome'];
 $this->nav        = array( "<a href='".$this->base_url."act=UserCP&amp;CODE=00'>".$ibforums->lang['t_title']."</a>" );

 }
Zusätzlich muß noch in der Switchanweisung etwas wie folgt auskommentiert werden, um sicher zu gehen, das man es nicht aufrufen kann:
/*
     case '25':
     $this->do_avatar();
     break;
*/
Dann noch in der skin_ucp.php den folgenden Teil auch wie hier gezeigt, auskommentieren:
<!-- Anfang auskommentierter Bereich
<div class="pformstrip">{$ibforums->lang['avatar_pre_title']}</div>

<form action='{$ibforums->base_url}act=UserCP&amp;CODE=getgallery' method='post'>
<table class='tablebasic' cellpadding='4'>
<tr>
<td class='pformleft'>{$ibforums->lang['av_go_gal']}</td>
<td class='pformright'>{$data['avatar_galleries']}&nbsp;&nbsp;<input type="submit" value="{$ibforums->lang['av_go_go']}" name="submit" class="forminput" /></td>
</tr>
</table>
</form>

<form action='{$ibforums->base_url}auth_key=$key' method='post' $formextra name='creator' onsubmit="return checkform();">
<input type='hidden' name='act' value='UserCP' />
<input type='hidden' name='CODE' value='25' />
$hidden_field
<!--IBF.EXTERNAL_TITLE-->
<!--IBF.URL_AVATAR-->
<!--IBF.UPLOAD_AVATAR-->
<!--IPB.SIZE-->
<div align="center" class="pformstrip">
 <input type="submit" name="submit" value="{$ibforums->lang['av_update']}" class='forminput' />
 &nbsp;&nbsp;&nbsp;<input type="submit" name="remove" onclick="remove_pressed=1;" value="{$ibforums->lang['av_remove']}" class='forminput' />
</div>
</form>

Ende auskommentierter Bereich -->

Dann wird nur noch das benutzte Avatar angezeigt und in der Skinfunktion, wo den obrigen Bereich auskommentiert hast, kannst du deine Infos noch hinzufügen.

Natürlich kannst du, anstatt alles auszukommentieren, die Sachen auch löschen.

Share this post


Link to post

Hi,

manche sachen funktionieren nicht so ganz mit dem auskommentieren, ich denke das das dadran liegt das eben dann Kommentare in den Kommentaren drin sind oder so...aber ich habe es jetzt einigermaßen so hinbekommen wie ich es haben will ;)

Nun noch ne andere frage ist es irgentwie möglich das der "Löschen"-Button da ist und auch funktioniert? Damit die User ihre Avatare trotzdem "umsonst" löschen können und dazu nicht auch den Forumshop aufrufen müssen?

Danke, mal wieder *gg*

Dr. Scream

Share this post


Link to post

Also ich hab es mal eben ausprobiert und mein Interpretor macht da keine Mucken bei der oben angegebenen Lösung. :P

Zwischen /* und */ ist eigentlich egal, was da steht und wenn da hunderte andere Kommentarzeilen mit // stehen. ;)

Wegen der Löschfunktion, das wird gehen und ich schau es mir mal an. :)

Share this post


Link to post

Hi,

sry ich meinte eigentlich das Kommentar in der "skin_ucp.php", es kommt mir nur so vor als würde er nicht das ganze Auskommentieren, denn wenn ich es so schreibe wie du steht dann ganz unten auf meiner Avatar Page noch das: "Ende auskommentierter Bereich -->"

Grüßle

Dr. Scream

Share this post


Link to post

Na das kann sein, funktionierte bei mir aber ohne Probleme. :)

Wegen dem Löschbutton.

<form action='{$ibforums->base_url}auth_key=$key' method='post' $formextra name='creator' onsubmit="return checkform();">
<input type='hidden' name='act' value='UserCP' />
<input type='hidden' name='CODE' value='25' />
$hidden_field
<!--IBF.EXTERNAL_TITLE-->
<!--IBF.URL_AVATAR-->
<!--IBF.UPLOAD_AVATAR-->
<!--IPB.SIZE-->
<div align="center" class="pformstrip">
<input type="submit" name="submit" value="{$ibforums->lang['av_update']}" class='forminput' />
&nbsp;&nbsp;&nbsp;<input type="submit" name="remove" onclick="remove_pressed=1;" value="{$ibforums->lang['av_remove']}" class='forminput' />
</div>
</form>
In dem obrigen Skinbereich alles unnötige rausschmeißen, dann sieht es ungefähr so aus, wobei du es dann natürlich noch schön designen mußt. ;)
<form action='{$ibforums->base_url}auth_key=$key' method='post' $formextra name='creator' onsubmit="return checkform();">
<input type='hidden' name='act' value='UserCP' />
<input type='hidden' name='CODE' value='25' />
<div align="center" class="pformstrip">
<input type="submit" name="remove" onclick="remove_pressed=1;" value="{$ibforums->lang['av_remove']}" class='forminput' />
</div>
</form>
Nun den Kommentar bei
/*
    case '25':
     $this->do_avatar();
     break;
*/
wieder rausnehmen und anschließend die usercp_functions.php öffnen. Dort unterhalb von
  //------------------------------------
 // Did we press "remove"?
 //------------------------------------

 if ( $ibforums->input['remove'] )
 {
 $this->bash_uploaded_avatars($ibforums->member['id']);

 $DB->query("UPDATE ibf_members SET avatar='noavatar', avatar_size='' WHERE id='".$this->class->member['id']."'");

 $print->redirect_screen( $ibforums->lang['av_c_up'], "act=UserCP&CODE=24" );

 }
einfügen:
$std->Error( array( 'LEVEL' => 1, 'MSG' => 'no_permission' ) );

Sollte dann alles funktionieren.

Share this post


Link to post

Herzlichen Dank, Danke, Danke, Danke :)

Es hat alles Prima Funktioniert jetzt werd ich da noch en bissel rumbasteln ;) Nochmal Danke....Stefan du hast ned so ne Amazon Wunschliste oder so?? *g*

Danke Dr. Scream

Share this post


Link to post

Stefan du hast ned so ne Amazon Wunschliste oder so?? *g*

Die läßt sich auf Wunsch einrichten. ;)

Schön das es jetzt funktioniert und wenn du noch irgendwelche Sachen in der Hinsicht brauchst, einfach laut schreien. :)

Thema setze ich dann erstmal auf erledigt.

Share this post


Link to post

Dann richte die mal bitte schnell ein, jedoch kann ich dir leider keinen 21" TFT oder so schenken aber evtl. is ja was kleines dann in deiner Wunschliste dabei...nachdem du ja das letztemal schon den Wein abgelehnt hast *gg*

Gerade wollte ich das Thema auf Erledigt setzten da mir da eingefallen ist das es das ja hier gibt ;)

Share this post


Link to post

Gerade wollte ich das Thema auf Erledigt setzten da mir da eingefallen ist das es das ja hier gibt ;)

Immer diese Ausreden. :lol:

Liste ist auch in der Signatur verlinkt und sei froh, einen Monitor, der mir auf Anhieb gefällt, hab ich nicht gefunden. :lol: :P

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×