Seite 1 von 1
Maximallänge zu site_desc Ändern
Verfasst: 01.02.2012 06:56
von WieGehtGrundsätzlich
Hi,
ich würde gerne die maximale Länge der Boardbeschreibung erhöhen, da meine Beschreibung mehr Platz benötigt. Treffer fand ich bei den folgenden Dateien:
- phpBB3/includes/acp/acp_board.php
- phpBB3/adm/index.php
.
So wie in der Datenbank in Tabelle phpbb_config. Ich habe den VCHAR-Wert auf X erhöht sowie in der Datei 1 bei Zeile 56 (
'validate' => 'string', 'type' => 'text:40:X', 'explain' =>) und in der Datei 2 bei Zeile 583 (
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => X),). Leider reicht das so nicht aus. Ich erhalte im ADM die Fehlermeldung "
Warnung - Der für die Einstellung „Beschreibung des Boards“ angegebene Wert ist zu lang. Die maximal zulässige Länge ist 255 Zeichen." (SETTING_TOO_LONG).
Im Vorbereitungsfall für eine erst noch stattfindende Installation kann ich höchstens was bei der Einrichtung der Datenbank vorkonfigurieren. Und zwar die VCHAR-Länge von site_desc oder? Ansonsten wären die anderen Eingriffe, von denen ich nicht weiß welche da genau nötig sind, auch so zu Ändern, als wenn die Source schon auf dem Server liegt.
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 04:40
von WieGehtGrundsätzlich
Weiß wirklich keiner wie? Eigentlich schade, weil phpBB ganz nett ist aber diese Begrenzungen wie eben z.B. die maximale Textlänge der Beschreibung von 255 Zeichen, sind doof. Gerade wenn man sich das Forum etwas anpassen möchte, damit es nicht wie von der Stange wirkt.
Weiß nicht ob das beleidigend ist oder verboten aber würde auch ein paar Euro bezahlen, für den der es mir macht oder erklärt.
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 09:39
von Helmut
Hallo WieGehtGrundsätzlich,
warum es bei VARCHAR nicht mehr als 255 Zeichen sind, das liegt daran dass es sich hier um ein Feld mit fest vorgegebener Länge handelt. Du könntest die Eigenschaft der Spalte auf TEXT ändern, dann kannst du bis zu 65.535 Zeichen verwenden. Wie sich das aber in der Praxis auswirkt, sprich ob die Feldlänge irgendwo im Code geprüft wird, das habe ich nicht getestet.
Noch ein Nachtrag, bedenke aber dass es sich hier um einen Teil vom phpBB selber handelt und bei einem Update ggf. wieder die Spalte von TEXT auf VARCHAR zurück gesetzt werden könnte. In dem Fall müsstest du die Install Dateien entsprechend anpassen.
Gruß Helmut
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 14:15
von WieGehtGrundsätzlich
Wenn man keine Ahnung hat, braucht man sich auch nicht melden. VARCHAR länge kann man in der DB erhöhen und auch als TEXT ging es nicht. Die Länge wird von dem php-Script von phpBB überprüft, leider verstehe ich da die Funktion nicht. Ist so kompliziert verschachtelt.
Wahrscheinlich wenn ich den Text direkt in der DB ändere wird es so auch übernommen nur wird das nichts mit dem Editieren über das ADM solange der Text über 255 Zeichen ist. Idiotisch!
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 14:25
von Helmut
WieGehtGrundsätzlich hat geschrieben:Wenn man keine Ahnung hat, braucht man sich auch nicht melden.
und wenn schon, bei so einem Umgangston wird sich wohl keiner mehr melden und noch viel Spass beim suchen .......

Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 14:29
von WieGehtGrundsätzlich
Helmut hat geschrieben:WieGehtGrundsätzlich hat geschrieben:Wenn man keine Ahnung hat, braucht man sich auch nicht melden.
und wenn schon, bei so einem Umgangston wird sich wohl keiner mehr melden und noch viel Spass beim suchen .......

Haha. Was Leute sich für merkwürdige Sachen einbilden. Ich bin dann mal bei Burning Board® Lite.
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 14:33
von Helmut
Im übrigen habe ich doch recht, erst ab 5.0.3 sind es 65.535 Zeichen davor waren es 255.
http://dev.mysql.com/doc/refman/5.0/en/char.html
The length of a CHAR column is fixed to the length that you declare when you create the table. The length can be any value from 0 to 255. When CHAR values are stored, they are right-padded with spaces to the specified length. When CHAR values are retrieved, trailing spaces are removed.
Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. The effective maximum length of a VARCHAR in MySQL 5.0.3 and later is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used.
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 14:54
von WieGehtGrundsätzlich
Oh man les erst ein mal richtig was ich geschrieben habe. Ich schrieb, dass ich es versucht hatte, mit der Erhöhung der Länge von 255 VARCHAR-Zeichen in der DB und mit TEXT anstelle VARCHAR. Und das alles neben den Änderungen an den PHP-Scripten. Es hat sich auch bereits bestätigt, dass es nicht an der DB liegt. Ich habe den Text direkt in der DB geändert, auf über 255 Zeichen und dann wird es so auch vom PHP-Script übernommen. Das Problem liegt bei der Kontrollfunktion beim ADM im php.
Re: Maximallänge zu site_desc Ändern
Verfasst: 03.02.2012 15:01
von Mahony
Hallo
Öffne includes/acp/acp_board.php
Suche
Code: Alles auswählen
'site_desc' => array('lang' => 'SITE_DESC', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => false),
Ersetze mit
Code: Alles auswählen
'site_desc' => array('lang' => 'SITE_DESC', 'validate' => 'string', 'type' => 'text:40:65535', 'explain' => false),
Öffne /adm/index.php
Suche
Code: Alles auswählen
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => 255),
);
Ersetze mit
Code: Alles auswählen
'VCHAR' => array('php_type' => 'string', 'min' => 0, 'max' => 65535),
);
Suche
Code: Alles auswählen
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 255) . '" name="' . $name . '" value="' . $new[$config_key] . '"' . (($tpl_type[0] === 'password') ? ' autocomplete="off"' : '') . ' />';
break;
Ersetze mit
Code: Alles auswählen
$tpl = '<input id="' . $key . '" type="' . $tpl_type[0] . '"' . (($size) ? ' size="' . $size . '"' : '') . ' maxlength="' . (($maxlength) ? $maxlength : 65535) . '" name="' . $name . '" value="' . $new[$config_key] . '"' . (($tpl_type[0] === 'password') ? ' autocomplete="off"' : '') . ' />';
break;
Suche
Code: Alles auswählen
// the column is a VARCHAR
$validator[$max] = (isset($validator[$max])) ? min(255, $validator[$max]) : 255;
Ersetze mit
Code: Alles auswählen
// the column is a VARCHAR
$validator[$max] = (isset($validator[$max])) ? min(65535, $validator[$max]) : 65535;
P.S. Natürlich solltest du vorher config_value von varchar auf text umstellen
Grüße: Mahony