Akzeptieren

Diese Website verwendet Cookies. Durch die Nutzung dieser Webseite erklären Sie sich damit einverstanden, dass Cookies gesetzt werden. Mehr erfahren

Neueste Beiträge

Seiten: [1] 2 3
1
SMF 2.1 Entwicklung / Re: Inoffizielle deutsche Sprachdateien für SMF 2.1 Beta*
« Letzter Beitrag von Franky am 07 Dezember 2017, 11:39 »
Das SMF favicon wurde erneuert.
Bisher


Neu


Die function smf_db_get_engine() wurde zu function smf_db_get_vendor() geändert.

Letzte Änderung vom letzten Paket, Kommentare vom 07.12. =>
 https://github.com/SimpleMachines/SMF2.1/commits/release-2.1

Zum Upgrade müssen nur die Verzeichnisse Sources und Themes komplett ersetzt werden. Für das deutsche Sprachpaket muss nur die Datei  Search.german.php ersetzt werden. Einfach hinzufügen und vorhandene Dateien überschreiben.

Das Sprachpaket kann nur mit dem hier angebotenen SMF2.1-release Archiv verwendet werden!
2
SMF 2.1 Entwicklung / Bug Geschlechter Icons
« Letzter Beitrag von Franky am 04 November 2017, 14:42 »
Wenn im Administration Center das benutzerdefinierte Profilfeld Geschlechter (Gender) in deutsch übersetzt wird, werden die Icons nicht angezeigt. Ein Ticket dazu habe ich auf Github erstellt =>  Gender Icon profile fields Multilanguage Bug.

Ich habe dazu folgende Lösung des Bugs. Besser wäre aber wenn die Entwickler das besser lösen könnten.

Im Administration Center unter Profilfelder das Profilfeld Gender auf "Ändern" klicken. Unter  "Feld Typ: Optionen" Male zu Männlich und Female zu Weiblich ändern. Dann öffnet des jeweiligen aktive Theme im Verzeichnis css die Datei index.css sucht nach
.generic_icons.gender_Female {
background-position: -135px -5px;
}
danach einfügen
.generic_icons.gender_Weiblich {
background-position: -135px -5px;
}

.generic_icons.gender_Male {
background-position: -57px -31px;
}
danach einfügen
.generic_icons.gender_Männlich {
background-position: -57px -31px;
}

Cache leeren. Fertig  :)


Profilfeld Gender
3
SMF 2.1 Entwicklung / Re: Inoffizielle deutsche Sprachdateien für SMF 2.1 Beta*
« Letzter Beitrag von Franky am 04 November 2017, 11:18 »
Neue Pakete #00233  :)

Für die benutzerdefinierte Pofilfelder wurden neue Positionen, vor und nach dem Benutzernamen, hinzugefügt.

Letzte Änderung vom letzten Paket, Kommentare vom 02.11. =>  https://github.com/SimpleMachines/SMF2.1/commits/release-2.1

Zum Upgrade müssen nur die Verzeichnisse Sources und Themes komplett ersetzt werden. Für das deutsche Sprachpaket muss nur die Datei  ManageSettings.german.php ersetzt werden. Einfach hinzufügen und vorhandene Dateien überschreiben.

Das Sprachpaket kann nur mit dem hier angebotenen SMF2.1-release Archiv verwendet werden!
4
SMF 2.1 Entwicklung / Re: Inoffizielle deutsche Sprachdateien für SMF 2.1 Beta*
« Letzter Beitrag von Franky am 24 Oktober 2017, 09:51 »
Neue Pakete #00231  :)

PostgreSQL Caching wurde als neue Konfiguration in den Cache Einstellungen hinzugefügt. Dafür wurden neue language Strings in hinzugefügt.

Letzte Änderung vom letzten Paket, Kommentare vom 20.10. =>  https://github.com/SimpleMachines/SMF2.1/commits/release-2.1

Zum Upgrade müssen nur die Verzeichnisse Sources und Themes komplett ersetzt werden. Für das deutsche Sprachpaket muss nur die Datei  ManageSettings.german.php ersetzt werden. Einfach hinzufügen und vorhandene Dateien überschreiben.

Das Sprachpaket kann nur mit dem hier angebotenen SMF2.1-release Archiv verwendet werden!
5
SMF 2.1 Entwicklung / Re: Deutsche Sprachdateien für SMF 2.1 Beta*
« Letzter Beitrag von Franky am 26 September 2017, 01:43 »
#00230
Pull Request #4306 vom 13.10.2017 07:37 =>
https://github.com/SimpleMachines/SMF2.1/pull/4306

Sprachpaket languages_deutsch#228 ist kompatibel zu #00230. Es hat keine Änderungen in den Sprachdateien gegeben.

Der Autor übernimmt keine Gewähr / Haftung!
6
SMF 2.1 Entwicklung / Inoffizielle deutsche Sprachdateien für SMF 2.1 Beta*
« Letzter Beitrag von Franky am 26 September 2017, 01:39 »
Inoffizielle Deutsche Sprachdateien formell (Sie) für SMF 2.1 Beta*
Seit September 2014 verfolge ich die Entwicklung von 2.1 Beta*. Ich verwende für die Verfolgung der Entwicklung eine eigene ID (momentan ist es #00230). Parallel zu der Übersetzung für PortaMx habe ich auch die Sprachdateien für SMF 2.1 Beta* in der Sie Form erstellt. Diese sind zu 99% Neu Übersetzt und entsprechen nicht der bestehende miserablen schlechter deutscher Übersetzung von SMF. Um die Du Form zu vollenden, fehlt mir momentan die Zeit.

Das hier angebotene Sprachpaket ist nur Verwendbar mit dem hier angebotenen Zip Archiv des jeweiligen Pull Request.
Es sei denn, wenn in den folgenden Pull Request keine Änderung in den Sprachdateien erfolgt sind. Diese Sprachpaket ist nicht kompatibel mit dem Download Paket SMF  2.1 Beta3!!!  Ich werde je nach Aktivitäten der Entwickler in regelmäßigen Abständen die Zip Archive aktualisieren. Ich lade nicht jeden neuen Pull Request herunter. Ich lasse da ein paar zusammenkommen. Ich gebe auch nur Zip Archive frei, die keine groben Bugs enthalten (Garantie gebe ich keine!). Informationen zu den abgeschlossenen Pull Requests findet ihr hier .Diese Pull Request sollen nicht in einem Live Forum verwendet werden. Es gibt nicht immer ein funktionierendes Upgrade System. Manchmal muss man das Testforum "platt" machen und Neu installieren. Es gibt keine Möglichkeit um wieder zu SMF 2.0.13/14 zurück zukehren. Es sind erhebliche Änderungen in der Datenbank zu 2.1 Beta*

Installation
Alle Dateien aus dem Verzeichnis other mit "install_" und Settings.php in den root des Forums einfügen. Dann im Browser www. dein-forum .dev / install.php aufrufen. Dann die folgende Schritte befolgen. Ich empfehle auch die Datei db_last_error.php in den root des Forums einzufügen. Damit werden Fehler der Datenbank protokolliert.

Um zu 2.1 Beta* upzugraden, bin ich folgend vorgegangen. Nur mit einem Testforum durchführen!!!!
Sämtliche Modifikationen, zusätzliche Themes deinstallieren und Dateien des 2.0.13/14 bis auf Settings.php und Settings_bak.php löschen. Alle Verzeichnisse löschen, bis auf attachments /avatars. Die Übernahme der vorhandenen Avatare (avatars) funktioniert noch nicht 100% beim Upgrade. Man kann es ja probieren ob es klappt. In 2.1 Beta* sind Avatare auch in einem anderen Verzeichnis  custom_avatar gespeichert. Daher kommt es vermutlich zu diesem zu diesem Bug. Dann fügt man alle Dateien in den root des Forum Verzeichnis. Die deutschen Sprachdateien in das Verzeichnis, wie in 2.0.*. Die deutschen Sprachdateien haben nicht mehr den Zusatz utf-8, da utf-8 in 2.1 Beta* Standard ist. Dann kopiert man  alle Dateien mit "upgrade_" aus dem Verzeichnis other (upgrade-helper.php nicht vergessen) in den root des Forums und ruft die Datei im Browser mit www-dein-forum-dev/upgrade.php auf. In den folgenden Schritten ist noch nicht alles auf Deutsch, da in den Dateien die Anweisungen und Fehlermeldungen Hardcoded (kein language String vorhanden) eingefügt sind. Es gibt keine Garantie das ein Upgrade funktioniert.

Viel Spass beim Testen   Über ein Tasse Kaffee über PayPal würde ich mich freuen, Danke :)

WICHTIGE HINHWEISE
  • ES WIRD NICHT EMPFOHLEN 2.1.* BETA FÜR EIN LIVE FORUM ZU VERWENDEN. ES GIBT KEIN ZURÜCK IN DER ENTWICKLUNGSPHASE ZU SMF 2.0.* ODER ANDERE FOREN-SYSTEME, BESTEHENDE DATEN GEHEN VERLOREN!!
  • ES IST ANGEDACHT ZUM TESTEN UND VORBEREITUNG AUF DIE IRGENDWANN KOMMENDE SMF VERSION 2.1
  • ES GIBT KEINEN SUPPORT ZU SMF 2.1.*, DAS IST AUFGABE DER SMF ENTWICKLER!
  • FEHLERMELDUNGEN / VERBESSERUNGSVORSCHLÄGE ZUM DEUTSCHEM SPRACHPAKET "SIE" SIND ERWÜNSCHT
7
phpBB / Re: phpBB-3.0.14 unter PHP 7 lauffähig anwenden
« Letzter Beitrag von Franky am 03 Juni 2017, 01:16 »
Captcha Bug im Adminbereich beheben

öffnet phpBB/includes/captcha/plugins/

phpbb_captcha_gd_plugin.php
Finde Zeile (original Zeile 55)
Code: PHP
  1.                 $instance =& new phpbb_captcha_gd();
Ersetzen mit
Code: PHP
  1.                 $instance = new phpbb_captcha_gd();

phpbb_captcha_nogd_plugin.php
Finde Zeile (original Zeile 45)
Code: PHP
  1.                 $instance =& new phpbb_captcha_nogd();
Ersetzen mit
Code: PHP
  1.                 $instance = new phpbb_captcha_nogd();

phpbb_captcha_qa_plugin.php
Finde Zeile (original Zeile 104)
Code: PHP
  1.                 $instance =& new phpbb_captcha_qa();
Ersetzen mit
Code: PHP
  1.                 $instance = new phpbb_captcha_qa();

phpbb_recaptcha_plugin.php
Finde Zeile (original Zeile 59)
Code: PHP
  1.                 $instance =& new phpbb_recaptcha();
Ersetzen mit
Code: PHP
  1.                 $instance = new phpbb_recaptcha();


8
SMF / Tipps zum SMF Menü im Header
« Letzter Beitrag von Franky am 01 Juni 2017, 19:27 »
Grundsätzlich warne ich davor Menüpunkte in der Subs.php zu entfernen. Dies könnte das Forum lahmlegen oder das Fehlerprotokoll unendlich befüllen. Einige Modifikationen nutzen einige Menüpunkte zum einfügen vor oder nach einem Menüpunkt ihre Menü Buttons einzufügen. Um Menüpunkte zu entfernen folgende Tipps am Beispiel Menüpunkt "Hilfe". Funktioniert auch bei den anderen Buttons.

Subs.php

Menü Button ausblenden
Code: PHP
  1.          'help' => array(
  2.             'title' => $txt['help'],
  3.             'href' => $scripturl . '?action=help',
  4.             'show' => true,
  5.             'sub_buttons' => array(
  6.             ),
  7.          ),

Um einen Menüpunkt aus dem Menü zu entfernen gibt es 2 Möglichkeiten:
1. komplett ausblenden
Code: PHP
  1. 'show' => true,
zu
Code: PHP
  1. 'show' => false,
Das deaktiviert den Menüpunkt für alle

2. nur für bestimmte Benutzergruppen ausblenden
ändern zu
Code: PHP
  1. 'show' => allowedTo('admin_forum'),
dieser Button ist dann nur mit Admin Berechtigung zu sehen

Code: PHP
  1. 'show' => $context['allow_moderation_center'],
dieser wäre nur für Moderatoren sichtbar

Code: PHP
  1. 'show' => $user_info['is_guest'],
dieser ist nur für Gäste sichtbar

Code: PHP
  1. 'show' => !$user_info['is_guest'],
dieser ist nur für registrierte Benutzer sichtbar. Wichtig ist das Ausrufezeichen vor $user_info => !$user_info

Da kann man auch für bestimmte benutzerdefinierte Benutzer Gruppen benutzerdefinierte Berechtigungen einsetzen.

Menü Button einfügen
Zum Beispiel vor dem Button "Hilfe"
Findet
Code: PHP
  1.                         'help' => array(
  2.                                 'title' => $txt['help'],
  3.                                 'href' => $scripturl . '?action=help',
  4.                                 'show' => true,
  5.                                 'sub_buttons' => array(
  6.                                 ),
  7.                         ),
davor fügt ihr euren Button ein. Siehe als Beispiel nächsten Block
Code: PHP
  1.                         'link_1' => array(
  2.                                 'title' => 'Link 1',
  3.                                 'href' => 'http://www.link_1.dev',
  4.                                 'show' => true,
  5.                                 'sub_buttons' => array(
  6.                                 ),
  7.                         ),

Mit Untermenü
Beim letzten Untermenü muss immer beim letzten Untermenü 'is_last' => true, eingefügt werden
Code: PHP
  1.                         'link_1' => array(
  2.                                 'title' => 'Link 1',
  3.                                 'href' => 'http://www.link_1.dev',
  4.                                 'show' => true,
  5.                                 'sub_buttons' => array(
  6.                                         'unterlink_1' => array(
  7.                                                 'title' => 'Unterlink 1',
  8.                                                 'href' => 'http://www.unterlink_1.dev',
  9.                                                 'show' => true,
  10.                                                 'is_last' => true,
  11.                                         ),
  12.                                 ),
  13.                         ),

Code: PHP
  1.                         'link_1' => array(
  2.                                 'title' => 'Link 1',
  3.                                 'href' => 'http://www.link_1.dev',
  4.                                 'show' => true,
  5.                                 'sub_buttons' => array(
  6.                                         'unterlink_1' => array(
  7.                                                 'title' => 'Unterlink 1',
  8.                                                 'href' => 'http://www.unterlink_1.dev',
  9.                                                 'show' => true,
  10.                                         ),
  11.                                         'unterlink_2' => array(
  12.                                                 'title' => 'Unterlink 2',
  13.                                                 'href' => 'http://www.unterlink_2.dev',
  14.                                                 'show' => true,
  15.                                                 'is_last' => true,
  16.                                         ),
  17.                                 ),
  18.                         ),

Um die Buttons je nach Berechtigung anzeigen zu lassen, schaut oben 2. nur für bestimmte Benutzergruppen ausblenden

Wenn ihr die Titel nicht HardCoded  einfügen wollt oder in mehreren Sprachen anzeigen lassen wollt, müsst ihr folgendermaßen vorgehen:

Ändert
Code: PHP
  1. 'Link 1',
zu
(self_ ist ein Beispiel, kann auch huber_ sein. Passt aber auf das dieses Präfix nicht schon anders verwendet wird)
Code: PHP
  1. $txt['self_link_eins'],

Öffnet dann Themes/default/languages/Modifications.*dein_Sprachpaket.php
fügt am Anschluss vorhandener Strings mit einer Leerzeile danach ein
Code: PHP
  1. //self links
  2. $txt['self_link_eins'] = 'Link 1';

Anschließend den Cache im Admin Center leeren. Fertig
9
phpBB / Re: phpBB-3.0.14 unter PHP 7 lauffähig anwenden
« Letzter Beitrag von Franky am 27 April 2017, 00:24 »
Datei:
phpBB3\includes\message_parser.php


Finde Zeilen (original ab Zeile 50)
Code: PHP
  1.       foreach ($this->bbcodes as $bbcode_name => $bbcode_data)
  2.       {
  3.          if (isset($bbcode_data['disabled']) && $bbcode_data['disabled'])
  4.          {
  5.             foreach ($bbcode_data['regexp'] as $regexp => $replacement)
  6.             {
  7.                if (preg_match($regexp, $this->message))
  8.                {
  9.                   $this->warn_msg[] = sprintf($user->lang['UNAUTHORISED_BBCODE'] , '[' . $bbcode_name . ']');
  10.                   continue;
  11.                }
  12.             }
  13.          }
  14.          else
  15.          {
  16.             foreach ($bbcode_data['regexp'] as $regexp => $replacement)
  17.             {
  18.                // The pattern gets compiled and cached by the PCRE extension,
  19.                // it should not demand recompilation
  20.                if (preg_match($regexp, $this->message))
  21.                {
  22.                   $this->message = preg_replace($regexp, $replacement, $this->message);
  23.                   $bitfield->set($bbcode_data['bbcode_id']);
  24.                }
  25.             }
  26.          }
  27.       }
  28.  
  29.       $this->bbcode_bitfield = $bitfield->get_base64();
  30.    }
Ersetzen mit
Code: PHP
  1.       foreach ($this->bbcodes as $bbcode_name => $bbcode_data)
  2.       {
  3.          if (isset($bbcode_data['disabled']) && $bbcode_data['disabled'])
  4.          {
  5.             foreach ($bbcode_data['regexp'] as $regexp => $replacement)
  6.             {
  7.                if (preg_match($regexp, $this->message))
  8.                {
  9.                   $this->warn_msg[] = sprintf($user->lang['UNAUTHORISED_BBCODE'] , '[' . $bbcode_name . ']');
  10.                   continue;
  11.                }
  12.             }
  13.          }
  14.          else
  15.          {
  16.             foreach ($bbcode_data['regexp'] as $regexp => $replacement)
  17.             {
  18.                // The pattern gets compiled and cached by the PCRE extension,
  19.                // it should not demand recompilation
  20.                if (preg_match($regexp, $this->message))
  21.                {
  22.                   if (is_callable($replacement))
  23.                   {
  24.                      $this->message = preg_replace_callback($regexp, $replacement, $this->message);
  25.                   }
  26.                   else
  27.                   {
  28.                      $this->message = preg_replace($regexp, $replacement, $this->message);
  29.                   }
  30.                   $bitfield->set($bbcode_data['bbcode_id']);
  31.                }
  32.             }
  33.          }
  34.       }
  35.  
  36.       $this->bbcode_bitfield = $bitfield->get_base64();
  37.    }
Finde Zeilen (original ab Zeile 103)
Code: PHP
  1.    * Init bbcode data for later parsing
  2.    */
  3.    function bbcode_init($allow_custom_bbcode = true)
  4.    {
  5.       static $rowset;
Danach einfügen In einer neuen leeren Zeile danach einfügen (!Leerzeile nicht vergessen  einzufügen!)
Code: PHP
  1.  
  2.       $bbcode_class = $this;
  3.  
Finde Zeilen (original ab Zeile 114)
Code: PHP
  1.       $this->bbcodes = array(
  2.          'code'         => array('bbcode_id' => 8,   'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#uise' => "\$this->bbcode_code('\$1', '\$2')")),
  3.          'quote'         => array('bbcode_id' => 0,   'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#uise' => "\$this->bbcode_quote('\$0')")),
  4.          'attachment'   => array('bbcode_id' => 12,   'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#uise' => "\$this->bbcode_attachment('\$1', '\$2')")),
  5.          'b'            => array('bbcode_id' => 1,   'regexp' => array('#\[b\](.*?)\[/b\]#uise' => "\$this->bbcode_strong('\$1')")),
  6.          'i'            => array('bbcode_id' => 2,   'regexp' => array('#\[i\](.*?)\[/i\]#uise' => "\$this->bbcode_italic('\$1')")),
  7.          'url'         => array('bbcode_id' => 3,   'regexp' => array('#\[url(=(.*))?\](?(1)((?s).*(?-s))|(.*))\[/url\]#uiUe' => "\$this->validate_url('\$2', ('\$3') ? '\$3' : '\$4')")),
  8.          'img'         => array('bbcode_id' => 4,   'regexp' => array('#\[img\](.*)\[/img\]#uiUe' => "\$this->bbcode_img('\$1')")),
  9.          'size'         => array('bbcode_id' => 5,   'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#uise' => "\$this->bbcode_size('\$1', '\$2')")),
  10.          'color'         => array('bbcode_id' => 6,   'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!uise' => "\$this->bbcode_color('\$1', '\$2')")),
  11.          'u'            => array('bbcode_id' => 7,   'regexp' => array('#\[u\](.*?)\[/u\]#uise' => "\$this->bbcode_underline('\$1')")),
  12.          'list'         => array('bbcode_id' => 9,   'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#uise' => "\$this->bbcode_parse_list('\$0')")),
  13.          'email'         => array('bbcode_id' => 10,   'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#uise' => "\$this->validate_email('\$1', '\$2')")),
  14.          'flash'         => array('bbcode_id' => 11,   'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#uie' => "\$this->bbcode_flash('\$1', '\$2', '\$3')"))
  15.       );
Ersetzen mit
Code: PHP
  1.       $this->bbcodes = array(
  2.          'code'         => array('bbcode_id' => 8,   'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#uis' => function ($match) use($bbcode_class)
  3.             {
  4.                return $bbcode_class->bbcode_code($match[1], $match[2]);
  5.             }
  6.          )),
  7.          'quote'         => array('bbcode_id' => 0,   'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#uis' => function ($match) use($bbcode_class)
  8.             {
  9.                return $bbcode_class->bbcode_quote($match[0]);
  10.             }
  11.          )),
  12.          'attachment'   => array('bbcode_id' => 12,   'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#uis' => function ($match) use($bbcode_class)
  13.             {
  14.                return $bbcode_class->bbcode_attachment($match[1], $match[2]);
  15.             }
  16.          )),
  17.          'b'            => array('bbcode_id' => 1,   'regexp' => array('#\[b\](.*?)\[/b\]#uis' => function ($match) use($bbcode_class)
  18.             {
  19.                return $bbcode_class->bbcode_strong($match[1]);
  20.             }
  21.          )),
  22.          'i'            => array('bbcode_id' => 2,   'regexp' => array('#\[i\](.*?)\[/i\]#uis' => function ($match) use($bbcode_class)
  23.             {
  24.                return $bbcode_class->bbcode_italic($match[1]);
  25.             }
  26.          )),
  27.          'url'         => array('bbcode_id' => 3,   'regexp' => array('#\[url(=(.*))?\](?(1)((?s).*(?-s))|(.*))\[/url\]#uiU' => function ($match) use($bbcode_class)
  28.             {
  29.                return $bbcode_class->validate_url($match[2], ($match[3]) ? $match[3] : $match[4]);
  30.             }
  31.          )),
  32.          'img'         => array('bbcode_id' => 4,   'regexp' => array('#\[img\](.*)\[/img\]#uiU' => function ($match) use($bbcode_class)
  33.             {
  34.                return $bbcode_class->bbcode_img($match[1]);
  35.             }
  36.          )),
  37.          'size'         => array('bbcode_id' => 5,   'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#uis' => function ($match) use($bbcode_class)
  38.             {
  39.                return $bbcode_class->bbcode_size($match[1], $match[2]);
  40.             }
  41.          )),
  42.          'color'         => array('bbcode_id' => 6,   'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!uis' => function ($match) use($bbcode_class)
  43.             {
  44.                return $bbcode_class->bbcode_color($match[1], $match[2]);
  45.             }
  46.          )),
  47.          'u'            => array('bbcode_id' => 7,   'regexp' => array('#\[u\](.*?)\[/u\]#uis' => function ($match) use($bbcode_class)
  48.             {
  49.                return $bbcode_class->bbcode_underline($match[1]);
  50.             }
  51.          )),
  52.          'list'         => array('bbcode_id' => 9,   'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#uis' => function ($match) use($bbcode_class)
  53.             {
  54.                return $bbcode_class->bbcode_parse_list($match[0]);
  55.             }
  56.          )),
  57.          'email'         => array('bbcode_id' => 10,   'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#uis' => function ($match) use($bbcode_class)
  58.             {
  59.                return $bbcode_class->validate_email($match[1], $match[2]);
  60.             }
  61.          )),
  62.          'flash'         => array('bbcode_id' => 11,   'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ui' => function ($match) use($bbcode_class)
  63.             {
  64.                return $bbcode_class->bbcode_flash($match[1], $match[2], $match[3]);
  65.             }
  66.          ))
  67.       );
Finde Zeilen (original ab Zeile 725)
Code: PHP
  1.       $in = preg_replace('#quote="(.*?)"\]#ie', "'quote="' . str_replace(array('[', ']', '\\\"'), array('[', ']', '\"'), '\$1') . '"]'", $in);
Ersetzen mit
Code: PHP
  1.       $in = preg_replace_callback('#quote="(.*?)"\]#i', function ($match) {
  2.          return 'quote="' . str_replace(array('[', ']', '\\\"'), array('[', ']', '\"'), $match[1]) . '"]';
  3.       }, $in);
Finde Zeile (original Zeile 1431)
Code: PHP
  1.                $this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
Ersetzen mit
Code: PHP
  1.                $this->message = preg_replace_callback('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#', function ($match) {
  2.                   return '[attachment='.($match[1] + 1).']' . $match[2] . '[/attachment]';
  3.                }, $this->message);
Finde Zeile (original Zeile 1494)
Code: PHP
  1.                $this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "(\\1 == \$index) ? '' : ((\\1 > \$index) ? '[attachment=' . (\\1 - 1) . ']\\2[/attachment]' : '\\0')", $this->message);
Ersetzen mit
Code: PHP
  1.                $this->message = preg_replace_callback('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#', function ($match) use($index) {
  2.                   return ($match[1] == $index) ? '' : (($match[1] > $index) ? '[attachment=' . ($match[1] - 1) . ']' . $match[2] . '[/attachment]' : $match[0]);
  3.                }, $this->message);
Finde Zeile (original Zeile 1533)
Code: PHP
  1.                   $this->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#e', "'[attachment='.(\\1 + 1).']\\2[/attachment]'", $this->message);
Ersetzen mit
Code: PHP
  1.                   $this->message = preg_replace_callback('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#', function ($match) {
  2.                      return '[attachment=' . ($match[1] + 1) . ']' . $match[2] . '[/attachment]';
  3.                   }, $this->message);


Vielen Dank an Dennis der mich per E-Mail auf einen Fehler aufmerksam gemacht hat. Dieser wurde behoben und das Snippet nochmals überprüft.

Vielen Dank Dennis für deine Meldung  :)
10
phpBB / Re: phpBB-3.0.14 unter PHP 7 lauffähig anwenden
« Letzter Beitrag von Franky am 27 April 2017, 00:13 »
Datei:
phpBB3\includes\functions_content.php


Finde Zeilen (original Zeile ab 659)
Code: PHP
  1. function make_clickable($text, $server_url = false, $class = 'postlink')
  2. {
  3.    if ($server_url === false)
  4.    {
  5.       $server_url = generate_board_url();
  6.    }
  7.  
  8.    static $magic_url_match;
  9.    static $magic_url_replace;
  10.    static $static_class;
  11.  
  12.    if (!is_array($magic_url_match) || $static_class != $class)
  13.    {
  14.       $static_class = $class;
  15.       $class = ($static_class) ? ' class="' . $static_class . '"' : '';
  16.       $local_class = ($static_class) ? ' class="' . $static_class . '-local"' : '';
  17.  
  18.       $magic_url_match = $magic_url_replace = array();
  19.       // Be sure to not let the matches cross over. ;)
  20.  
  21.       // relative urls for this board
  22.       $magic_url_match[] = '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#ie';
  23.       $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_LOCAL, '\$1', '\$2', '\$3', '$local_class')";
  24.  
  25.       // matches a xxxx://aaaaa.bbb.cccc. ...
  26.       $magic_url_match[] = '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#ie';
  27.       $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_FULL, '\$1', '\$2', '', '$class')";
  28.  
  29.       // matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
  30.       $magic_url_match[] = '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#ie';
  31.       $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_WWW, '\$1', '\$2', '', '$class')";
  32.  
  33.       // matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
  34.       $magic_url_match[] = '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/ie';
  35.       $magic_url_replace[] = "make_clickable_callback(MAGIC_URL_EMAIL, '\$1', '\$2', '', '')";
  36.    }
  37.  
  38.    return preg_replace($magic_url_match, $magic_url_replace, $text);
  39. }
Ersetzen mit
Code: PHP
  1. function make_clickable($text, $server_url = false, $class = 'postlink')
  2. {
  3.    if ($server_url === false)
  4.    {
  5.       $server_url = generate_board_url();
  6.    }
  7.    static $static_class;
  8.    static $magic_url_match_args;
  9.    if (!isset($magic_url_match_args[$server_url]) || $static_class != $class)
  10.    {
  11.       $static_class = $class;
  12.       $class = ($static_class) ? ' class="' . $static_class . '"' : '';
  13.       $local_class = ($static_class) ? ' class="' . $static_class . '-local"' : '';
  14.       if (!is_array($magic_url_match_args))
  15.       {
  16.          $magic_url_match_args = array();
  17.       }
  18.       // relative urls for this board
  19.       $magic_url_match_args[$server_url][] = array(
  20.          '#(^|[\n\t (>.])(' . preg_quote($server_url, '#') . ')/(' . get_preg_expression('relative_url_inline') . ')#iu',
  21.          MAGIC_URL_LOCAL,
  22.          $local_class,
  23.       );
  24.       // matches a xxxx://aaaaa.bbb.cccc. ...
  25.       $magic_url_match_args[$server_url][] = array(
  26.          '#(^|[\n\t (>.])(' . get_preg_expression('url_inline') . ')#iu',
  27.          MAGIC_URL_FULL,
  28.          $class,
  29.       );
  30.       // matches a "www.xxxx.yyyy[/zzzz]" kinda lazy URL thing
  31.       $magic_url_match_args[$server_url][] = array(
  32.          '#(^|[\n\t (>])(' . get_preg_expression('www_url_inline') . ')#iu',
  33.          MAGIC_URL_WWW,
  34.          $class,
  35.       );
  36.       // matches an email@domain type address at the start of a line, or after a space or after what might be a BBCode.
  37.       $magic_url_match_args[$server_url][] = array(
  38.          '/(^|[\n\t (>])(' . get_preg_expression('email') . ')/iu',
  39.          MAGIC_URL_EMAIL,
  40.          '',
  41.       );
  42.    }
  43.  
  44.    foreach ($magic_url_match_args[$server_url] as $magic_args)
  45.    {
  46.       if (preg_match($magic_args[0], $text, $matches))
  47.       {
  48.          $text = preg_replace_callback($magic_args[0], function($matches) use ($magic_args)
  49.          {
  50.             $relative_url = isset($matches[3]) ? $matches[3] : '';
  51.             return make_clickable_callback($magic_args[1], $matches[1], $matches[2], $relative_url, $magic_args[2]);
  52.          }, $text);
  53.       }
  54.    }
  55.    return $text;
  56. }

Seiten: [1] 2 3