Überflüssige Satzzeichen entfernen

Kleine Codeänderungen oder Mini-MODs
Keine Anfragen!!! -- No requests!!!

Moderator: Supporter

Überflüssige Satzzeichen entfernen

Beitragvon AmigaLink » 17. Mai 2005 14:45

Hiermit werden !, ? und . die öffter als 3x hintereinander im Beitrag oder im Beitragstitel verwendet werden, automatisch (beim absenden) gegen 3 ersetzt! :D
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

includes/funktions_post.php

#
#----------[ FIND ]-------------------------------------
#

   include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

#
#----------[ BEFORE, ADD ]------------------------------
#

   // Überflüssige Satzzeichen entfernen
   $post_message = eregi_replace("([\!]){4,}","\1\1\1",$post_message);
   $post_message = eregi_replace("([\?]){4,}","\1\1\1",$post_message);
   $post_message = eregi_replace("([\.]){4,}","\1\1\1",$post_message);
   $post_subject = eregi_replace("([\!]){4,}","\1\1\1",$post_subject);
   $post_subject = eregi_replace("([\?]){4,}","\1\1\1",$post_subject);
   $post_subject = eregi_replace("([\.]){4,}","\1\1\1",$post_subject);

#
#----------[ OPEN ]-------------------------------------
#

posting.php

#
#----------[ FIND ]-------------------------------------
#

      $preview_message = stripslashes(prepare_message(addslashes(unprepare_message($message)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid));
      $preview_subject = $subject;
      $preview_username = $username;

#
#----------[ AFTER, ADD ]-------------------------------
#

      // Überflüssige Satzzeichen entfernen
      $preview_message = eregi_replace("([\?]){4,}","\1\1\1",$preview_message);
      $preview_message = eregi_replace("([\.]){4,}","\1\1\1",$preview_message);
      $preview_message = eregi_replace("([\!]){4,}","\1\1\1",$preview_message);
      $preview_subject = eregi_replace("([\?]){4,}","\1\1\1",$preview_subject);
      $preview_subject = eregi_replace("([\.]){4,}","\1\1\1",$preview_subject);
      $preview_subject = eregi_replace("([\!]){4,}","\1\1\1",$preview_subject);

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM


Um Codeblöcke von dieser Begrenzung auszuschließen:
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

includes/bbcode.php

#
#----------[ FIND ]-------------------------------------
#

                        $code_entities_match = array('#<#', '#>#', '#"#', '#:#', '#\[#', '#\]#', '#\(#', '#\)#', '#\{#', '#\}#');

#
#----------[ INLINE FIND ]------------------------------
#

, '#\}#'

#
#----------[ INLINE AFTER, ADD ]------------------------
#

, '#\?#', '#\.#' , '#!#'

#
#----------[ FIND ]-------------------------------------
#

                        $code_entities_replace = array('&lt;', '&gt;', '&quot;', ':', '[', ']', '(', ')', '{', '}');

#
#----------[ INLINE FIND ]------------------------------
#

, '}'

#
#----------[ INLINE AFTER, ADD ]------------------------
#

, '?', '.', '!'

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon lotteb » 21. Jun 2005 16:14

Super! Danke! Genau sowas hab ich gesucht! :D
Benutzeravatar
lotteb
 
Beiträge: 3
Registriert: 20. Jun 2005 00:40

Beitragvon AmigaLink » 29. Jun 2005 09:38

Was ich eben feststellen musste:
Bei Boards in denen (wie hier) viele Codeblöcke gepostet werden, sollte man dieses Snippet nicht einsetzen, da es unter gewissen umständen zu fehlern führen kann (warum ist mir noch nicht klar). :(

Diese Boards können aber in der posting.php sowie in der functions_post.php die Zeilen
Code: Alles auswählen
   $post_message = eregi_replace("([\!]){4,}","\1\1\1",$post_message);
   $post_message = eregi_replace("([\?]){4,}","\1\1\1",$post_message);
   $post_message = eregi_replace("([\.]){4,}","\1\1\1",$post_message);
bzw.
Code: Alles auswählen
      $preview_message = eregi_replace("([\?]){4,}","\1\1\1",$preview_message);
      $preview_message = eregi_replace("([\.]){4,}","\1\1\1",$preview_message);
      $preview_message = eregi_replace("([\!]){4,}","\1\1\1",$preview_message);
weglassen, wodurch die Begrenzung nur noch in den Beitragstiteln durchgeführt wird. :)
Die änderung an der bbcode.php ist in solchen fällen dann natürlich auch nicht mehr nötig. ;)
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon BladeM » 28. Mai 2006 16:35

Eine tolle sache,kann mann das auch für alle buchstaben machen beispiel guttttttttttttttttttt nur gut.

amigalink eine andere frage nebenbei,wo kann ich das titel limit ändern ? also ich möchte den limit begrenzen.

mfg
BladeM
 
Beiträge: 4
Registriert: 28. Mai 2006 13:53

Beitragvon AmigaLink » 28. Mai 2006 20:15

Man könnte das mit jedem Zeichen machen, ist aber nicht zu empfehlen da die PHP Funktionen eregi_replace(); & preg_replace(); nicht gerade die schnellsten sind.
Da stände der Performaceverlust in keinerlei Verhältnis zum nutzen.
Bei den Satzzeichen macht es in sofern sinn, weil es viele Leute gibt die damit gerne übertreiben. Bei normalen Buchstaben sind es aber wohl eher seltene Tipfehler die man so ausschließen könnte. :roll:

Deine andere Frage ist mit zu Off Topic, deswegen hab ich sie abgetrennt.
http://www.amigalink.de/viewtopic.php?t=661#4271
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Tron » 5. Okt 2007 19:50

Hallo,

ich haben eben diesen Mod eingebaut, nur wird anstatt " ? ? ? ? ? " bei mir nur ein " ? " angezeigt und nicht 3 Stück.

Ich hatte vorher diesen Mod drin:

http://www.phpbb.de/moddb/ausrufezeichenimtitel

den hab ich aber gleich beim einbau von eurem ausgebaut.

Wieso wird nur ein Zeichen angezeigt?

Gruß

Ufuk
Tron
 
Beiträge: 6
Registriert: 2. Okt 2007 10:21

Beitragvon AmigaLink » 6. Okt 2007 08:47

Da wirst du wohl noch reste von dem anderem MOD drin haben.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Tron » 6. Okt 2007 09:20

Yep, hast recht. :)

Hab den schuldigen Codeteil, dank, WinMerge gefunden. :)
Tron
 
Beiträge: 6
Registriert: 2. Okt 2007 10:21


Zurück zu phpBB2 Snippets



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste

cron