Seite 1 von 1

Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 30.01.2014 10:42
von cjosk
.
Bei den Styles Artodia Deluxe und Prosilver SE (Quelle phpbb. com), wie wohl auch bei vielen anderen, werden in den Beiträgen Bilder abgeschnitten wenn sie eine bestimmte Pixelbreite überschreiten. Ebenso verhält es sich bei einem künstlichen überlangen Wort. Das ist wohl auch die Breite bei welcher der automatisch Zeilenumbruch einsetzt. Ich habe mit der Suchfunktion Beiträge gefunden die mein Thema betreffen ( 1 2 3). Sie geben mir zwar Hinweise, die ich zur Formulierung verwenden kann beantworten aber nicht direkt die folgenden Frage:

1) In welcher(n) Dateie(n) sind die Begrenzugen von Bild und Text in einem Beitragsfenster festgelegt ?

In o.g. Themen wird u.a. eine Stelle im bbcode.php aufgeführt (..\phpBB3\includes\bbcode.php), die bei mir so aussieht:

Code: Alles auswählen

$bbcode_hardtpl = array(
...
img'	=> '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />',   );
....
Ich kann nicht so recht glauben, daß das alles ist und nicht noch Anweisungen in den spezifischen Dateien der einzelnen Styles stehen z.B in den CSS-Dateien im Verzeichnis theme. Interessant ist, daß beide Styles unterschiedliche Dateinamen in dem jeweiligen theme- Verzeichnis verwenden. Hier ein Beispiel aus Artodia Deluxe: Es gibt eine Datei layout_topic.css wo wohl von einem Zeilenumbruch die Rede ist

Code: Alles auswählen

postbody {
	padding: 0;
	line-height: 1.48em;
	width: 76%;
	float: left;
	clear: both;
	word-wrap: break-word;
Änderung 12:58 : width:76% wovon ? Vom Browser_Fenster oder vom "wrapper" der gesamten Forum-Seite ?

Ich bin aber mit CSS und php noch lange nicht so vetraut, daß ich mit wenigen Blicken alles wesentliche aus diesen Dateien herausfiltern kann.

Kann es sein, daß die Begrenzung der Bilder im html-Code des [img]-Tags enthalten ist , wie es auch in einem der o.g. Beiträge anklingt ? Erster Code (array) in Frage 1) ?

Unabhängig von obiger Frage zur Bildbreite:

2) In welcher Datei sind die .html-Elemente der Tags zu finden ?

Im ACP kann man zwar neue Tags hinzufügen, ändern und löschen aber an den Code der Standard-Tags kommt man nicht heran.

Ich habe es auch mal mit einem neuen Tag [ResizeImage] probiert (Vorschlag in einem User-Forum). Hat soweit funktioniert ich habe aber bei der Text-Suche in der Datei bbcode.php ("array" siehe oben) nach dem Runterladen vom Server den Ausdruck ResizeImage nicht gefunden.

Bemerkung
Es geht mir bei obigen Fragen nicht um händische Änderungen in diesen Dateien. Ich möchte zunächst nur gerne wissen "wo was steht".

Ziel ist es in einer Forums-Regel den Betrag der von phpBB und oder Style vorgegebenen Begrenzung als maximal zulässige Bildbreite vorzuschreiben, die Annahme breiterer Bilder zudem im ACP zu beschränken (Maximum image width per post) und für ungeübte Mitglieder eine einfache Reduzierung der Bildbreite in einem per ACP hinzugefügten Tag anzubieten.

Carl

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 30.01.2014 12:56
von Miriam
Wenn Du wissen möchtest, wo was steht, lies gern hier: https://www.phpbb.com/support/documentation/3.0/

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 30.01.2014 14:07
von cjosk
Vielen Dank Miriam,

das kenne ich bereits. Es ist aber eine Bedienungsanleitung für phpBB.

"Wo was steht" steht bezieht sich auf die darüber gestellten Fragen zu html/CSS /php- code in den verschiedenen Dateien des phpBB-Programms.

Oder habe ich in dieser Bedienungsanleitung etwas übersehen ? :-?

Zu den Besonderheiten der einzelnen Styles kann da aber vom Grundsatz her nichts drinstehen.

Im ACP hat man Zugang zu den Dateien in den template und theme-Dateien, aber das ist noch unübersichtlicher als wenn ich sie mir mittels Win Explorer ansehe. Die Bedeutung der einzelne Codes wird auch hier nicht erklärt.

Gruß
Carl

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 30.01.2014 15:37
von derpwave
Hey,

Das Bild-Problem kann man auf zwei Methoden sehr einfach lösen:

1. Einen eigenen BBcode definieren

Vorteil: Du musst nichts an deinen Serverdateien ändern.

Allen Nutzern die Nutzung des [img]-Tags über die Berechtigungseinstellungen verbieten, dann einen neuen BBcode im ACP erstellen.

Die BBcode-Definition sollte wie folgt aussehen:

Code: Alles auswählen

[rimg]{URL}[/rimg]
Und das HTML replacement so:

Code: Alles auswählen

<a href="{URL}" target="_blank"><img src="{URL}" style="max-width:500px; max-height: 500px;" /></a>
Damit wird jedes eingebundene Bild auf maximal 500 px Höhe bzw. Breite skaliert und mit einem Link versehen, der das Bild unverkleinert öffnet.

Nachteil: Du kannst den [img]-code nicht mehr nutzen. Ich habe im Beispiel einen neuen namens [rimg] (rescaled image) definiert.


2. Den Standard [img] BBcode ändern

Wenn du den [img] BBcode weiter nutzen möchtest, kannst du einfach stattdessen under /includes/bbcode.php in Zeile 421 das hier

Code: Alles auswählen

<img src="$1" alt="' . $user->lang['IMAGE'] . '" />
durch das hier

Code: Alles auswählen

<img src="$1" alt="' . $user->lang['IMAGE'] . '"  style="max-width:500px; max-height: 500px;" />
ersetzen.

(In beiden Varianten die 500px durch deine gewünschte Maximalhöhe und -breite ersetzen)

Fertig :)

Ein künstlich langes Wort wird immer abgeschnitten; Was soll der Browser auch damit tun?

Gruß,
Derpwave

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 31.01.2014 11:29
von cjosk
.
Hallo Derpwave,

vielen Dank für die Beantwortung meines Beitrags und die Hinweise für Änderungen am BBcode. Es wäre interessant Deinen Code mit dem zu vergleichen, mit dem ich wie oben erwähnt bereits Versuche gemacht habe. Aber das ist erst der dritte Schritt .

Meinen beiden Fragen oben hatte ich folgende Bemerkung nachgestellt:

Ziel ist es in einer Forums-Regel den Betrag der von phpBB und oder Style vorgegebenen Begrenzung als maximal zulässige Bildbreite vorzuschreiben, die Annahme breiterer Bilder zudem im ACP zu beschränken (Maximum image width per post) und für ungeübte Mitglieder eine einfache Reduzierung der Bildbreite in einem per ACP hinzugefügten Tag anzubieten.

Ich sehe zumindest mit den Augen eines CSS/php-Anfängers in den von Dir gezeigten Code-Abschnitten keinen Hinweis darauf, welcher Code das automatische Abschneiden bewirkt und bei welchem Wert. Das war das Thema meiner ersten Frage.

Ich habe inzwischen die Anzeige der beiden Styles Artodia Deluxe und Prosilver SE (Quelle phpbb. com) miteinader verglichen und vermute daraus, daß das Abschneiden der Bilder in den Dateien der Styles geregelt ist und zumindest nicht allein durch Verwendung des Standard-[ externes Bild ]
Artodia Deluxe [ externes Bild ]

Das ist die Darstellung auf meinem Monitor mit der Auflösung 1280x1024, das Windows-Fenster jeweils maximal geöffnet.

Zunächst aus Zeitgründen ohne weitere Kommentare. Da gibt es deren viele. Höchst interessant. Ich wollte mich nur zeitnah bei Dir bedanken und gehe später nochmals ausführlich darauf ein was ich noch herausgefunden habe.

Carl

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 31.01.2014 19:34
von cjosk
Eigentlich habe ich ja wie oben gesagt heute keine Zeit mehr und mir vorgenommen wichtigerer Dinge zu tun aber solche Fragen lassen mich nicht ruhen. :wink:

Ganz versteckt in einem Unterforum des Style Entwicklers von Artodia Deluxe auf phpbb.com fand sich ein Hinweis das man eine Passage des Codes der Datei ../template/style.js löschen kann um die automatische Verkleinerung zu großer Bilder zu verhinern (hängt unten an).

Ich habe es gewagt, ein erstes Mal "per Hand" direkt in einen Code zu gehen und erhielt folgendes Ergebnis: [ externes Bild ]

Die großen Bilder werden im Style Artodia Deluxe nun abgeschnitten und nicht mehr automatisch verkleinert (den Start-Wert dafür habe ich aber nach wie vor nicht gefunden). Die Vergrößerungsgläser werden auch nicht mehr angezeigt.

Die Bilder in werden nur noch durch die Fenstergröße abgeschnitten. Zieht man der rechten Rand auf einen zweiten Monitor (2x 1280px) hinaus - es geht uneeeeeendlich lang- dann erscheinen auch bei den größten Bildern rechts die roten Balken, d.h sie sind komplett.

Ein weiterer Hinweis darauf das solche Begrenzungen bzw. automatische Verkleinerungen spezifisch für einen Style sind und nicht (ich sag immer noch "notwendigerweise") in den übrigen phpbb-Dateien zu finden sind.

Carl

Code: Alles auswählen

// resize big images
    function imageClicked(event)
    {
       var $this = $(this);
       if ($this.hasClass('zoomed-in'))
      {
         $this.removeClass('zoomed-in').css('max-width', $(this).attr('data-max-width') + 'px');
      }
      else
      {
         $this.addClass('zoomed-in').css('max-width', '');
      }
    }
    function zoomClicked(event)
    {
      imageClicked.apply($(this).prev().get(0), arguments);
      event.stopPropagation();
    }
   function resizeImage(width)
   {
      var $this = $(this);
      $this.wrap('<span class="zoom-container" />').attr('data-max-width', width).css({
         'max-width': width + 'px',
         cursor: 'pointer'
         }).addClass('zoom').click(imageClicked).after('<span class="zoom-image" />').next().click(zoomClicked);
   }
    function checkImage()
    {
      var maxWidth = Math.floor(this.parentNode.clientWidth - 10);
      if (this.width > maxWidth)
      {
         resizeImage.call(this, maxWidth);
      }
    }
    $('.postbody img').each(function() {
       var $this = $(this);
       if ($this.closest('a').length)
       {
          return;
      }
      if (this.complete)
      {
         checkImage.call(this);
      }
      else
      {
         $this.load(checkImage);
      }
   });

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 31.01.2014 20:02
von Kirk
Redest du jetzt von Bildern die per [img] eingebunden werden?
Wenn ja, dann probier dieses hier:

Öffne: root/includes/bbcode.php
Finde:

Code: Alles auswählen

                'img'        => '<img src="$1" alt="' . $user->lang['IMAGE'] . '" />', 
Ersetze es mit:

Code: Alles auswählen

                'img'       => '<img src="$1" style="max-width: 450px" alt="' . $user->lang['IMAGE'] . '" />', 
Das hier max-width: 450px kannst nach belieben anpassen.

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 31.01.2014 21:27
von cjosk
Auch Dir vielen Dank Udo,

Ich rede von Bildern die mit [img] eingebunden werden.

Eigentlich ist das der gleiche Code, den mir oben schon derpwave gezeigt hat.

Was mich aber nach dem von mir beobachteten Einfluß der Styles auf die Bildgröße interessiert ist wer hier eigentlich den Vorrang hat. Die Styles oder die bbcode.php. Oder greift die nur auf Daten der Styles (CSS ) zu ?

Was tut dieser vorgschlagene Code in der bbcode.php ? Verkleinet er größere Bilder automatisch, was ich nicht will, oder lässt er keine größeren zu was ja über das ACP einfacher zu haben ist?

Carl

Re: Begrenzung der Bildgröße im Beitrags-Fenster

Verfasst: 01.02.2014 09:59
von Kirk
Bilder die per [img] BBCode eingebunden sind liegen ja auf einen anderen Server z.b. bei einem Bildhoster, diese werden auf die angegebene Größe runterskaliert.
Diese hat aber auf Bilder die per Dateianhang in deinem Board angezeigt werden, keinen Einfluss.
Für sowas müsstest du das hier machen: Serverseitiges image resize beim Upload