Seite 1 von 2

Mehr Zeichen in Betreffs als nur maximal 64

Verfasst: 10.06.2007 13:35
von dieweltist
ACHTUNG! Nachfolgender Thread betrifft nur die phpBB-Version 3.0.1. Bei Version 3.0.2 siehe diesen Beitrag von mir, wo beschrieben ist, wie man die maxiale Anzahl auf einfache Weise ohne Änderungen in der Datenbank bis zu 251 Zeichen einstellen kann. Ob das auch so bei den nachfolgenden Version funktioniert, weiß ich leider nicht.

Maximale Buchstabenanzahl in der Betreffzeile erhöhen • phpBB.de

Bisher habe ich schon viele Forensysteme ausführlich getestet und bin bei vielen über die maximal mögliche Anzahl der Zeichen in Betreffs enttäuscht. Vergleichsweise ist das phpBB3 fast das Schlusslicht. Es wird nur von der alten Freeware-Version des IPB untertroffen mit nur 50 Zeichen.

Ich habe versucht die maximale Anzahl der Zeichen in Betreffs von derzeit 60 bzw. 64 auf 255 zu erhöhen. Obwohl ich an den richtigen Stellen die 64 durch die gewünschten 255 ersetze, hatte ich im Ergebnis leider nur maximal 100 Zeichen.

Dazu ersetzte ich für das Standard-Style Prosilver in der Datei posting_editor.html (styles - prosilver - template) die 64 durch 255 (maxlength="255"). Dann musste ich noch in der Datei tpl_prosilver_posting_editor.html.php (Ordner Cache) auch die 64 durch die 255 (maxlength="255") ersetzen.

Letztes ist nicht nötig, falls man über die Adminzentrale auf dessen erster Übersichtsseite (Allgemein) den Cache leert.

Für das Style Subsilver2 ersetzte ich in der Datei posting_body.html die 64 durch die 255. An dieser Position muss das dann auch so aussehen: maxlength="255". Problem: Leider hatte ich jetzt immer noch nur maximal 100 Zeichen je Beitrag im Betreff.

Ich downloadete alle Dateien des Systems über Ftp und durchsuchte sie mit dem Programm FileLocator Pro. Obwohl ich bei allen möglichen Dateien die 100 durch die 255 ersetzte, musste ich am Ende leider erfolglos aufgeben.

Verfasst: 10.06.2007 13:41
von nickvergessen
Das Problem liegt in der Datenbank:
POSTS_TABLE sagt nämlich:

Code: Alles auswählen

post_subject  	varchar(100)
Also maximal 100 Zeichen werden gespeichert.
Musst du dort auch noch auf 255 erhöhen.
Ich weiß außerdem nicht, wie es in den php-Dateien aussieht, ob und wenn wo du da noch was ändern musst.

Verfasst: 10.06.2007 15:14
von dieweltist
Ich kann in der Datenbank leider kein POSTS_TABLE finden. Auch kein post_subject und auch kein varchar(100). Und auch die Suche liefert in allen Tabellen 0 Treffer.

Aber für '100' habe ich insgesamt 13 Treffer. Aber bei keinem dieser Treffer ist einer der beiden Begriffe zu finden.

Verfasst: 10.06.2007 15:16
von S2B
phpbb_posts :wink:

Verfasst: 10.06.2007 15:31
von dieweltist
Danke, jetzt habe ich es endlich gefunden. Ich hatte auf der linken Seite alle Tabbellen angeklickt, unter anderem auch phpbb_posts. Aber bei keiner war POSTS_TABLE zu finden. Ich weiß auch jetzt noch nicht wo das ist.

Das macht aber nichts, denn wenigstens habe ich post_subject gefunden und dort meine '255' eingestellt und gleich ausprobiert, ob es geht. Jetzt funktioniert es endlich mit den 255 Zeichen.

Verfasst: 10.06.2007 15:34
von nickvergessen
dieweltist hat geschrieben:Danke, jetzt habe ich es endlich gefunden. Ich hatte auf der linken Seite alle Tabbellen angeklickt, unter anderem auch phpbb_posts. Aber bei keiner war POSTS_TABLE zu finden. Ich weiß auch jetzt noch nicht wo das ist.
POSTS_TABLE ist der Name der Tabelle wo die Posts drinstehen, zuzüglich dem Prefix (steht in der includes/constants.php) aber muss man nicht wissen, keine Ahnung warum ich das so kompliziert geschrieben hab. Widerspricht eigentlich meiner Signatur.

Verfasst: 10.06.2007 17:46
von Berliner Schildkroete
Es müsste in der SLQ database unter phpbb_post und dann unter

Code: Alles auswählen

post_subject	varchar(100)	utf8_unicode_ci		Nein  (HIER Bearbeitungsbutton anklicken)  
verändert werden können: dass 100 durch z.b. 255 ersetzen und fertig.

Gruß
Berl. Schildköte

Verfasst: 24.03.2008 15:58
von dieweltist
Kann mir jemand bitte sagen, wo ich die 255 angeben muss, um die maximal mögliche Anzahl von Zeichen auf 255 zu erhöhen in nachfolgender Zeile? Siehe dazu den Basisbeitrag!

Code: Alles auswählen

maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->" tabindex="2"
Edit: Ich habe eben herausbekommen, dass man mit dieser originalen Quelltext-Zeile zwar 64 Zeichen in die Titelzeile eines Antwortbeitrages hineinpassen, dann aber nach dem Absenden des Beitrages nur 60 vorhanden sind. Wenn diese aber mit Re: beginnt, werden alle 64 Zeichen angezeigt.

Bei einem neuen Basisbeitrag passen nur 60 Zeichen in die Titelzeile und es werden auch alle 60 angezeigt. Somit ist klar, an welcher Stelle ich die 255 eintragen muss, nämlich die 60 muss ich duch die gewünschte 255 ersetzen und die 64 durch 259.

Verfasst: 25.03.2008 14:31
von nickvergessen

Verfasst: 25.03.2008 15:17
von dieweltist
Kann mir jemand bitte sagen, wie man diese unselige Maximalgrenze von nur 60 Zeichen im Titel von Beiträgen und Threads größer stellen kann? Beim RC1 hatte es noch funktioniert, dass man diesen Wert auf eine beliebige Größe einstellen konnte, wie ich das in diesem Thread beschrieb.

Aber mit nachfolgender Beschreibung schaffe ich es nur bis maximal 100 Zeichen in einem Antwortbeitrag einschließlich dem Re: , und am besten bis zu 96 Zeichen in dem Titel eines neuen Basisbeitrages am Beginn eines neuen Threads. Ggf. könnte man da auch 100 einstellen, dann würden aber die letzten 4 Buchstaben in den Antwortbeitragen abgeschnitten, weil davor jeweils das Re: angefügt wird.

Ändere jeweils die beiden Werte in nachfolgenden zwei Dateien entsprechend

/styles/prosilver/template/posting_editor.html
/styles/subsilver2/template/posting_body.html

von
maxlength="<!-- IF S_NEW_MESSAGE -->60<!-- ELSE -->64<!-- ENDIF -->
zu
maxlength="<!-- IF S_NEW_MESSAGE -->96<!-- ELSE -->100<!-- ENDIF -->
damit man überhaupt erst mal mehr Zeichen in die Titelzeile hineinschreiben kann.

Ändere in der Datei /includes/functions_content.php in der Zeile
function truncate_string($string, $max_length = 60, $allow_reply = true, $append = '')
den Wert 60 in den Wert 96!

96 Zeichen als Beitragstitel sind mir aber noch lange nicht genug, denn ich plane ein Forum für besonders auserlesene Beiträge, wo ich dann etwa eine maximale Grenze von 100 000 Zeichen je Beitrag einstellen werde.

Demgegenüber erwarte ich dann aber auch entsprechend aussagekräftige Titel, was mit nur 96 Zeichen in vielen Fällen kaum möglich sein wird.

Deswegen wäre ich sehr froh, wenn hier jemand entsprechend helfen könnte, damit wenigstens bis zu 1000 Zeichen je Titel möglich sind. Danke im voraus!

Nachtrag: Ohne Veränderungen in der Datenbank vorzunehmen, erreicht mal also eine Erhöhung auf maximal 96 bzw. 100 Zeichen je Titelzeile. Bei allen Versuchen, diese Grenze zu überwinden, scheiterten bei den Titeln von Basisbeiträgen.

Indem ich in den gesagten drei Dateien eine höhere Maximalgrenze festlegte und dann auch versuchsweise abwechselnd sowohl Antwort- als auch Basisbeiträge Testweise postete, hatte ich jeweils nacheinander die verschiedensten Fehlermeldungen, die mir dann jeweils sagten, an welcher Stelle der Datenbank ich jeweils einen anderen Wert einstellen musste.

phpbb_posts - post_subject
phpbb_topics - topic_last_post_subject
phpbb_forums - forum_last_post_subject
phpbb_topics - topic_title

Am Ende scheiterte es dann aber an den Basisbeiträgen, indem ich die Meldung bekam, dass an der als zweites genannten Position ein falscher Wert sei:
Field 'topic_last_post_subject' doesn't have a default value [1364] SQL INSERT INTO phpbb_topics [...]

FILE: includes/db/mysqli.php
LINE: 143
CALL: dbal->sql_error()

FILE: includes/functions_posting.php
LINE: 1809
CALL: dbal_mysqli->sql_query()

FILE: posting.php
LINE: 1002
CALL: submit_post()
Im Moment glaube ich weniger, dass es daran liegt, dass in irgendeiner Datei noch eine Begrenzung versteckt ist, wodurch diese Meldung ausgelöst wird. Ich vermute, dass irgendwo in der Datenbank noch eine oder mehrere Einstellung(en) versteckt ist/sind, die diese immer noch vorhanden Begrenzung und diese Fehlermeldung auslösen.

Weil ich das Forum leer nur Testweise installiert habe und ich Anfangs die Datenbank im Adminbereich (unter Wartung) gesichert habe, kann ich jeweils wieder schnell und einfach zurückgehen. Ich werde es jetzt noch mal versuchen, dieses Problem zu lösen, indem ich jeweils in den drei besagten Dateien und den genannten Positionen in der Datenbank die Einstellung um nur 1 zu erhöhen, bezogen auf die jeweils bisher in diesem Beitrag besagten Veränderungen.

Und dann die Datenbank manuell zu durchsuchen, wo noch was verdächtigerweise auf einen Wert um die 100 eingestellt ist. Nach jeder Veränderung der Einstellung aber unbedingt den Cache im Adminbereich (Registerkarte 'Allgemein') leeren, damit die neue Einstellung sofort wirksam werden!

Zwischenbericht: Alle Positionen in der Datenbank, wo 100 eingestellt ist, sind nachfolgende. Die rot gekennzeichneten sind diejenigen, die m.E. unbedingt geändert werden müssen.

_attachments - extension + mimetype
_banlist - ban_email
_drafts - draft_subject
_extensions - extension
_forums - forum_last_post_subject
_lang - lang_english_name
_posts - post_subject
_privmsgs - message_subject
_styles_imageset - imageset_path
_styles_template - template_path
_styles_template_data - template_filename
_styles_theme - theme_path
_topics - topic_title + topic_last_post_subject
_users - user_email + user_from

Ergebnis: Ohne PHP-Kenntnisse war es mir leider nicht möglich, eine größere Anzahl von zeichen in der Titelzeile unterzubringen. Ich hatte sämmtliche Einstellungen, wo 100 eingestellt war, auf 101 eingestellt. Das war leider erfolglos, denn es war überhaupt nicht mehr möglich, einen neuen Thread zu erstellen.

Ohne Veränderungen in der Datenbank konnte ich keine höhere Anzahl als 96 bzw. 100 Zeichen erreichen. Und mit Veränderungen konnte ich zwar mehr Zeichen im Titel eines Antwortbeitrages unterbringen; ich konnte dann aber keine Threads mehr erstellen.