Seite 1 von 2

Bilder für Gäste unsichtbar machen

Verfasst: 05.05.2011 17:06
von Dersamuel
Ich habe bisher nur rausgefunden, wie man einstellen kann, dass Gäste die Dateianhänge nicht sehen. Aber wie macht man, dass sie die Bilder die mit IMG eingebunden sind nicht sehen?

Re: Bilder für Gäste unsichtbar machen

Verfasst: 12.06.2011 19:02
von BaerchenHH
--- Öffne ---
includes/bbcode.php

--- Suche ---

Code: Alles auswählen

    /**
    * Return bbcode template
    */
    function bbcode_tpl($tpl_name, $bbcode_id = -1, $skip_bitfield_check = false)
    {
        static $bbcode_hardtpl = array();
        if (empty($bbcode_hardtpl))
        {
            global $user;
            
            $bbcode_hardtpl = array(
                'b_open'    => '<span style="font-weight: bold">',
                'b_close'    => '</span>',
                'i_open'    => '<span style="font-style: italic">',
                'i_close'    => '</span>',
                'u_open'    => '<span style="text-decoration: underline">',
                'u_close'    => '</span>',
                'img'        => '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />',
                'size'        => '<span style="font-size: $1%; line-height: normal">$2</span>',
                'color'        => '<span style="color: $1">$2</span>',
                'email'        => '<a href="mailto:$1">$2</a>'
            );
        } 
--- Ersetze mit ---

Code: Alles auswählen

// BEGIN: SNIPPET Link- & Bilderanzeige im Forum vor Gästen schützen
    /** 
    * Return bbcode template 
    */ 
    function bbcode_tpl($tpl_name, $bbcode_id = -1, $skip_bitfield_check = false) 
    {
        static $bbcode_hardtpl = array();    
        if (empty($bbcode_hardtpl)) 
        {
            global $user; 
// No_Pics_4_Guests_by_4seven/2008 
        if ($user->data['user_id'] == ANONYMOUS) 
        {
            $bbcode_hardtpl = array(
                'b_open'    => '<span style="font-weight: bold">',
                'b_close'    => '</span>',
                'i_open'    => '<span style="font-style: italic">',
                'i_close'    => '</span>',
                'u_open'    => '<span style="text-decoration: underline">',
                'u_close'    => '</span>',
                'img'    => '<img src="' . $phpbb_root_path . 'images/no_pics.JPG" width="90" height="90" alt="Nur Mitglieder k&ouml;nnen dieses Bild sehen !" />',
                'size'        => '<span style="font-size: $1%; line-height: normal">$2</span>',
                'color'        => '<span style="color: $1">$2</span>',
               'email'        => '<a href="mailto:$1">$2</a>'
            );
        }
    else
        {
            $bbcode_hardtpl = array(
                'b_open'    => '<span style="font-weight: bold">',
                'b_close'    => '</span>',
                'i_open'    => '<span style="font-style: italic">',
                'i_close'    => '</span>',
                'u_open'    => '<span style="text-decoration: underline">',
                'u_close'    => '</span>',
                'img'        => '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />',
                'size'        => '<span style="font-size: $1%; line-height: normal">$2</span>',
                'color'        => '<span style="color: $1">$2</span>',
                'email'        => '<a href="mailto:$1">$2</a>'
            );
        }
    }
// No_Pics_4_Guests_by_4seven/2008
// END: SNIPPET Link- & Bilderanzeige im Forum vor Gästen schützen    
--- Beachte ---
Grafik erstellen, in den Ordner images/ hochladen und an u.g. Stelle Link, Größe und Alternativ-Text anpassen

Hier eine Alternative mit LogIn /Reg-Links:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040" <a href=""></a>*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  

Re: Bilder für Gäste unsichtbar machen

Verfasst: 13.06.2011 11:08
von DetlefT
BaerchenHH hat geschrieben:Hier eine Alternative mit LogIn /Reg-Links:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040" <a href=""></a>*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  
Hallo,

1 Frage, 1 Anmerkung:
Frage: was bezweckt der leere Link?
Anmerkung: Der Code ergibt nonvalides HTML:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040"
Die <font>-Anweisung wird nirgendwo geschlosssen.

Edit 12:08 Uhr:
Die ganze Konstruktion ist problematisch:
  • Lösung 1 erfüllt ihren Zweck, wenn das Bild nicht in einen Link eingeschlossen ist, also alleine steht. Wenn es in einen Link eingeschlossen ist, führt der Link zum Bild und auch Gäste können es betrachten (z.B. bei Imageshack).
  • Lösung 2 ist die imho zwar schönere, aber sie ist insgesamt nicht valide zu realisieren, wenn das Bild in einen Link eingeschlossen ist.
    • Ein Link darf keine weiteren Links enthalten.
    • Der eingeschlossene leere Link soll den umschließenden Link brechen (tut er auch), aber siehe den vorhergehenden Pkt.
    • Sämtliche Sprachkonstruktionen (die mir einfallen würden) führen immer in irgendeiner Form zu invalidem Code. Man könnte z.B. direkt am Anfang ein </a>-Tag setzen, dann bleibt aber irgendwann das schließende </a>-Tag des umschließenden Links alleine stehen.
    Ein sauberer Ansatz müsste prüfen, ob das <img> in ein umschließendes <a>-Element eingebunden ist.

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 11:38
von hackepeter13
@DetlefT
HTML ist eigentlich nicht schwer.
Du hast erkannt das es hier einen Fehler gibt:
[quote="BaerchenHH
Hier eine Alternative mit LogIn /Reg-Links:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040" <a href=""></a>*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  
[/quote]

Dann entferne doch einfach den leeren Link

Code: Alles auswählen

<a href=""></a>
Das ganze sieht dann so aus:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040">*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 12:03
von BNa
Verstehe ich auch nicht die "Aufregung" :grin:
Das Snippet funktioniert schon seit Jahren einwandfrei :geek:

Ansonsten für Links das hier nehmen:

http://sourceforge.net/projects/macphpb ... MOD/0.0.1/
Whenever [URL] BBcode is used in a message, the hyperlink is automatically hidden from guests.

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 12:14
von DetlefT
hackepeter13 hat geschrieben:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040">*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  
@Hackepeter

Anscheinend hast Du mein Posting nicht ganz oder unaufmerksam gelesen. Der Code funktioniert dann einwandfrei, wenn das img alleine steht. Wenn das img in einen Link eingeschlossen ist (und wie willst Du verhindern, dass ein User das macht - ist ja durchaus üblich), dann wird der ganze Bereich "*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte " als zum umschließenden Link zugehörig dargestellt und ist anklickbar. Der - jetzt von Dir entfernte - leere Link bricht zwar den äußeren Link, aber Du kannst ja mal einen Validator drüber laufen lassen. HTML ist nicht schwer, aber wenn Du validen Code - und damit meine ich nicht nur fehlerfrei, sondern auch warnungsfrei - haben willst, dann musst Du schon etwas tiefer einsteigen.
BNa hat geschrieben:Das Snippet funktioniert schon seit Jahren einwandfrei :geek:
Ich habe nichts anderes behauptet! Aber es ist nicht valide!

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 12:28
von BNa
DetlefT hat geschrieben:Aber es ist nicht valide!
In der Urform schon, lediglich die Anpassung von BaerchenHH nicht :wink:
Eventuell hast Du meinen Link übersehen?
Ansonsten für Links das hier nehmen:

http://sourceforge.net/projects/macphpb ... MOD/0.0.1/
Whenever [url] BBcode is used in a message, the hyperlink is automatically hidden from guests.
Das kannst Du auch parallel einbauen, dann stimmt die Marie.

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 14:33
von DetlefT
@BNa

es mag ja sein, dass man damit auch Links verstecken kann. Das ist aber nicht die Anforderung!

Die Anforderung lautet, Bilder zu verstecken! Und das funktioniert mit dem Snippet solange, wie die Bilder alleine stehen. Es funktioniert nicht valide, wenn das Bild in einem Link steckt. Wenn einem die Validität schnuppe ist, ist alles ok.

Re: Bilder für Gäste unsichtbar machen

Verfasst: 14.06.2011 21:15
von BNa
Teste mal das Original dieses Snippets
http://4seven.kilu.de/forum/phpbb3/view ... p=835#p835

Re: Bilder für Gäste unsichtbar machen

Verfasst: 15.06.2011 00:27
von hackepeter13
DetlefT hat geschrieben:
hackepeter13 hat geschrieben:

Code: Alles auswählen

                'img'    => '<font size="-2" color="#008040">*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register"><u>registriere</u></a> Dich, oder <a href="./ucp.php?mode=login"><u>logge dich ein</u></a>. *** </font>',  
@Hackepeter

Der - jetzt von Dir entfernte - leere Link bricht zwar den äußeren Link, aber Du kannst ja mal einen Validator drüber laufen lassen. HTML ist nicht schwer, aber wenn Du validen Code - und damit meine ich nicht nur fehlerfrei, sondern auch warnungsfrei - haben willst, dann musst Du schon etwas tiefer einsteigen.
Ich versteh nich recht, was du meinst, mit "... bricht den äußeren Link"?
Schau dir mal oben die Ausgangssache an:

Code: Alles auswählen

<font size="-2" color="#008040" <a href=""></a>*** Das Bild ... 
Da wurde von mir nicht nur der leere Link <a href=""></a> entfernt, sondern eine fehlende > (spitze Klammer) hinzugefügt, die da nämlich fehlte.
Wenn man mit < beginnt muss man es auch mit > wieder beenden.

Du hast also nicht wirklich drauf geachtet was ich geändert habe.

Und zum Thema tiefer einsteigen - bitte sehr:

Code: Alles auswählen

<span style="size:-2; color:#008040;">*** Das Bild ist nur f&uuml;r Mitglieder sichtbar. Bitte <a href="./ucp.php?mode=register">registriere</a> Dich, oder <a href="./ucp.php?mode=login">logge dich ein</a>. *** </span>
Ergebnis: This document was successfully checked as XHTML 1.0 Strict!

Übrigends, wenn man die Datei mit "UTF8 ohne BOM" abspeichert, kann man auch die Umlaute normal ausschreiben, also statt &uuml; einfach ü ;)