Seite 4 von 4

Re: Altersbeschränkungs Spoiler

Verfasst: 03.03.2013 16:16
von Maugrim
Hallo

Sry, ich muss dich leider noch mal belästigen :oops:

Mir is grad ein kleiner "Bug" aufgefallen.
Wenn Mitglieder NICHT in der Gruppe 18 sind, und ihnen der Inhalt verborgen wird, kommt es zu Komplikationen mit anderen BBCodes

zB eine Verschachtelug wie diese hier:
[b] 1 [18] 2 [/18] 3 [/b]
funktioniert...halb
eigentlich müsste die 1 und die 3 fett angezeigt werden...
der [b] Code wird zwar umgesetzt und die Zahl 1 wird Fett dargestellt, allerdings wird die Zahl 3 nicht ausgegeben, obwohl sie außerhalb der 18er Klammer ist

aber zB der [center] BBCode wird so dargestellt:

[center] 1
also weder 1 und 3
noch zentriert, denn das schließende [/center] wird nicht ausgegeben UND auch die 3 nicht, obwohl sie nicht innerhalb der Klammer ist...
Kann man das irgendwie beheben?? :oops:

Re: Altersbeschränkungs Spoiler

Verfasst: 03.03.2013 22:56
von Miriam
Wie sehen Deine Codeanpassungen aktuell aus?

Re: Altersbeschränkungs Spoiler

Verfasst: 04.03.2013 00:06
von Maugrim
Miriam hat geschrieben:
  1. Finde in includes/functions_content: danach füge ein: finde: davor füge ein:
    • Code: Alles auswählen

          if (!user_is_18())
          {
              $text = preg_replace('/\[18(.*)\].*\[\/18(.*)\]/', $user->lang['NO_TEXT_FOR_YOU'], $text);
          }
      
              if (!user_is_spy())                                 
              {
              $text = preg_replace('/\[youtube(.*)\].*\[\/youtube(.*)\]/', $user->lang['NO_TEXT_FOR_YOU'], $text);
              $text = preg_replace('/\[initiale(.*)\].*\[\/initiale(.*)\]/', $user->lang['NO_TEXT_FOR_YOU'], $text);
              $text = preg_replace('/\[img(.*)\].*\[\/img(.*)\]/', $user->lang['NO_TEXT_FOR_YOU'], $text);
              }
  2. Finde in /includes/functions.php:
    • ?>
    davor füge ein:
    • Code: Alles auswählen

          function user_is_18($user_id = false)
          {
              global $user;
              
              $group_id = '18'; //ID der Gruppe, die die 18+ Mitglieder enthält
              
              if (!$user_id)
              {
                  $user_id = $user->data['user_id']; // der zu untersuchende User, bzw. dessen ID
              }
              
              if (!function_exists('group_memberships'))
              {
                  global $phpbb_root_path, $phpEx;
                  include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
              }
              return group_memberships($group_id, $user_id, true);
          } 
      
      function user_is_spy() // Dient dazu Bots und Gästen die Bilder und youtubevideos nicht anzuzeigen, die im Forum gepostet wurden
      {
          global $user;
      
          if($user->data['user_type'] == '2') return false;
      
          else
              return true;
      }
  3. Finde in language/de/common.php (und allen von Dir benutzten Sprachen):
    • Code: Alles auswählen

          'NO_SUPPORTED_AUTH_METHODS'    => 'Keine unterstützte Authentifizierungs-Methode vorhanden.',
    danach füge ein:

Re: Altersbeschränkungs Spoiler

Verfasst: 05.03.2013 13:50
von Maugrim
Ich beschäftige mich auch ein wenig mit dem Problem (mit meinem begrenzten php Wissen)
aber in der message_parser.php werden doch die BBCOdes ausgewertet oder irre ich da?

könnte man nicht da die Gruppenabfrage reinmachen, so dass der Darstellungsfehler vermieden wird?

Re: Altersbeschränkungs Spoiler

Verfasst: 05.03.2013 18:08
von Miriam
Was haben Deine Tests ergeben? Geht's? :roll:

Miriam hat geschrieben:
  • 4. Baue eine benutzerdefinierten BBCode mit der Bezeichnung [hidden18] nach folgendem Kochrezept: Klick.
Das hattest Du auch gemacht?

Re: Altersbeschränkungs Spoiler

Verfasst: 06.03.2013 07:40
von Maugrim
Ja den BBCode habe ich natürlich eingebaut

Was soll ich testen? Ich wüsste nicht wie. Aber wenn dort etwas ausgenommen wird, dann wird es ja nur nicht umgewandelt, und die nicht, umgwandelten Klammern würden dann so im Beitrag stehen... oder?

außer man schafft es irgendwie diese Funktion von dir einzubauen
also die user_is_18

wenn der Wert true ausgegeben wird, dann soll der Code normal umgewandelt werden
wenn der Wert false ausgegeben wird, dann soll der Code zwar umgewandelt werden, aber der Text zwischen den Klammern durch das NO_TEXT_FOR_YOU ersetzt werden



hast du eine Idee, wie man das Problem lösen kann?? :oops:

schau mal was ich da gefunden habe:
http://www.php.de/tutorials/29070-bb-co ... elung.html
oder
http://stackoverflow.com/questions/6058 ... pbb-bbcode

Nützt das was?
Falls ja, kannst du mir vllt helfen das auf phpbb zu übersetzen? weil das is ja reines php oder? Das muss man ja auf die phpbb variablen anpassn oder?

Re: Altersbeschränkungs Spoiler

Verfasst: 21.03.2013 19:14
von Buchwurm
Miriam hat geschrieben://Ungeachtet des nicht allzu sehr durchdachten Konzepts der Altersverifikation:

Idee:
  1. Finde in includes/functions_content: danach füge ein: finde: davor füge ein:
    • Code: Alles auswählen

          if (!user_is_18())
          {
              $text = preg_replace('/\[hidden18(.*)\].*\[\/hidden18(.*)\]/', $user->lang['NO_TEXT_FOR_YOU'], $text);
          } 
  2. Finde in /includes/functions.php:
    • ?>
    davor füge ein:
    • Code: Alles auswählen

      function user_is_18()
      {
          global $user;
      
          if($user->data['user_birthday'] == '') return false;
          $b_date = explode('-', $user->data['user_birthday']);
          //create timestamp
          $b_time = mktime(0, 0, 0, $b_date[1], $b_date[0], $b_date[2] + 18);
          if (time() > $b_time)
              return true;
          else
              return false;
      }
  3. Finde in language/de/common.php (und allen von Dir benutzten Sprachen):
    • Code: Alles auswählen

          'NO_SUPPORTED_AUTH_METHODS'    => 'Keine unterstützte Authentifizierungs-Methode vorhanden.', 
    danach füge ein:
    • Code: Alles auswählen

          'NO_TEXT_FOR_YOU'            => 'Hier gibt es nichts zu sehen!', 
    (beachte auch: KB:utf8bom)
  4. Baue eine benutzerdefinierten BBCode mit der Bezeichnung [hidden18] nach folgendem Kochrezept: Klick.
Fertig.
Hallo,
sowas ähnliches suche ich, nur möchte ich das Gäste bei mir den Button Spoiler nicht öffnen können.
wär schön wenn mir eine posten könnte was da machen muss an änderungen.

Mfg