Username abschneiden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Username abschneiden

    Hallo!

    Habe mal wieder ein Problem.

    User können sich in meiner Webseite einloggen. dazu wird dann in einem von mir definierten Bereich in der Webseite ein Platz vorgesehen, wo der username angezeigt wird.

    jetzt ist es so dass ich für die Registrierung die Zeichen schon auf 20 gekürzt habe. Dies gefällt mir aber nicht, da user auch mal gerne einen längeren Namen verwenden und er auch auf anderen tpl's angezeigt wird und dort auch mehr Platz zur Anzeige zur Verfügung steht. Nur nicht auf der Startseite. Wenn jetzt ein user mit einem längeren Namen meine Startseite besucht dann verzieht sich das ganze Design.

    Habe selbst schon viel gelesen und probiert. Es kommen aber immer nur Fehermeldungen zu stande oder er kürzt den Namen einfach nicht.

    Die Kürzung soll auch nicht auf Zeichen beruhen (das wäre ja einfach) sondern auf eine definierte breite.

    singemäß soll das folgendermaßen ausehen(NUR SINNGEMÄß)
    PHP-Code:
    function dispusername($userdata['username']) 

    wenn (länge $username >= 20 pixel

    $anzeigeusername width=17 pixel (username) & " ..." 
    return $anzeigeusername 

    else 

    return 
    $userdata['username'


    Oder geht das tatsächlich nur über die zeichen? das bringt mir glaube ich nichts, da verschiedene Zeichen verschiedene Breiten haben. Zb ein user wählt jetzt 15-mal das "W" dann ist das ja viel breiter als 15-mal das "i" ! jetzt möchte ich nicht alle namen bei 15 zeichen umbrechen oder abschneiden wenn sie doch eigentlich von der Breite her in das dafür vorgesehene Feld passen. Nur wenn die definierte Breite überschritten wird soll der Name abgeschnitten werden.

    Hat jemand eine Idee?
    Wäre euch mal wieder echt dankbar!

  • #2
    1. möglichkeit: verwende eine monospace-schrift wie courier, dann kanst du mit substr arbeiten
    2. möglichkeit legt ein div mit fester breite an und setzt overflow auf hidden. da kann es aber passieren, dass der letzte buchstabe abgeschnitten wird.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Das nächste Problem ist da auch, das nicht alle Browser exakt die gleiche Buchstabenbreite haben! Wenn man sich da mal den IE7 mit dem Anti-Aliasing im Gegensatz zum Pixel-Firefox, da wirst du kaum eine Chance haben, das so genau zu machen!!

      Kommentar


      • #4
        ja da hast du auch wieder recht. aber ich hätte ja ein wenig spielraum lassen können sodass es auf jeden fall past! dann wäre zwar bei einem anderen browser zu früh abgeschnitten aber naja man kann ja net alles haben..

        habs jetzt folgendermaßen gelöst so wie es mir auch schon empfohlen wurde
        PHP-Code:
        [b]<H3 style="width:176px; overflow:hidden;">[/b]
        <?php 
         
        if( $userdata['username'] && $userdata['session_logged_in']>0)
        {
        ?>
        <?php 
        echo $out?><?php echo $userdata['username']. " "?>
        <?php
        }
        else
        {
        ?>
        <?php 
        echo $lang['lao1']; ?>
        <?php
        }
        ?></H3>
        <P class=tabformat><IMG height=73 alt="" src="img/profil.jpg" width=177></P>
        <?php 
        if( $userdata['username'] && $userdata['session_logged_in']>0)
        {
        ?>
        <?php 
        echo $out?><P style="width:159px; overflow:hidden;"><?php echo $lang['lao2']; ?>
        <b><?php echo $userdata['username']. "</b>.<br>"?><?php echo $lang
        ['lao3']; ?></P><br>
        <?php
        }
        else
        {
        ?>
        [b]<P style="width:159px; overflow:hidden;">[/b]<?php echo $lang['lao2']; ?>
        <b><?php echo $lang['lao4']; ?></b>.<br><?php echo $lang['lao5']; ?>
        </P>
        vielen dank für die tips jungs

        Kommentar

        Lädt...
        X