Ergebnis 1 bis 19 von 19

Thema: [x_avatarresizer] Avatare beim Upload automatisch verkleinern

  1. #1
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Beitrag [x_avatarresizer] Avatare beim Upload automatisch verkleinern

    Der x_AvatarResizer erweitert die Funktionen der Avatar Erweiterung.

    Das Hauptmerkmal ist die automatische Verkleinerung von Avataren beim Upload, sofern die Größe einen frei einstellbaren Wert überschreitet. Dieser lässt sich ganz einfach in den Einstellungen in einem Textfeld festlegen. Das macht die Erweiterung "avatarsizer" unnötig.
    Die Verkleinerung kann jederzeit wieder in den Einstellungen abgeschaltet werden.

    Eine weitere kleine Änderung gibt es bei der Eingabe und Darstellung der maximal möglichen Dateigröße des Avatars: Diese wird nun in Kilobytes statt Bytes angezeigt und angegeben. Ich halte das für deutlich übersichtlicher als lange Byte Angaben.

    Das Modul steht unter der LGPL und ist im Repository zu finden.

    Da es sich hierbei um meine erste öffentliche Typolight Erweiterung handelt, würde ich mich sehr über Feedback freuen.

    Viel Spaß damit!
    Janek

    avatarresizer_screenshot1.jpg

  2. #2
    Contao-Nutzer Avatar von DanielGrosse
    Registriert seit
    29.06.2009.
    Ort
    Zwickau
    Beiträge
    58

    Standard

    Hallo habe die die Erweiterung installiert, aber wenn ich die Seite aufrufe, in der mein Nutzer sein Bild hochladen kann, kommt die Fehlermeldung:

    Code:
    Warning: Cannot modify header information - headers already sent by (output started at /www/[...]/system/modules/x_avatarresizer/AvatarModuleExtended.php:1) in /www/[...]/system/libraries/Template.php  on line 174
    
    #0 [internal function]: __error(2, 'Cannot modify h...', '/www/[...]/w00...', 174, Array)
    #1 /www/[...]/system/libraries/Template.php(174): header('Content-Type: t...')
    #2 /www/[...]/system/modules/frontend/FrontendTemplate.php(203): Template->output()
    #3 /www/[...]/system/modules/frontend/PageRegular.php(133): FrontendTemplate->output()
    #4 /www/[...]/index.php(188): PageRegular->generate(Object(DB_Mysql_Result))
    #5 /www/[...]/index.php(292): Index->run()
    #6 {main}
    Gibt es bekannt Module, die Probleme mit diesem machen?

    Ich habe zusätzlich noch die Module:
    xtmembers
    xtmembers_fieldeditor
    auf der Seite.

  3. #3
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo DanielGrosse,

    das könnte u.U. daran liegen, dass irgendeine Datei oder Template sichtbare oder nicht sichtbare Zeichen/Leerzeichen enthält (Stichwort: UTF8-BOM usw.). Such mal hier im Forum nach dieser Fehlermeldung; das hatten wir nämlich schon ein paar Mal!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  4. #4
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Standard

    Hallo DanielGrosse,

    ich denke der Tipp von xchs dürfte das Problem beheben. Ansonsten: Sind dir denn auch auf anderen Seiten solche Meldungen aufgefallen? Probier doch mal eine "Profil bearbeiten" Seite zu erstellen und deaktiviere das x_avatarresizer Modul. Wenn nun ein Benutzer sein Profil bearbeitet, gibt es dann auch eine Fehlermeldung?
    Wenn nicht, gibt es dort eine Fehlermeldung wenn du das x_avatarresizer Modul wieder aktivierst?

    Damit kannst du zumindest schon einmal ausschließen, dass es sich doch um ein Fehler der Resizer Erweiterung handelt.

    Grüße
    Janek

  5. #5
    Contao-Nutzer Avatar von DanielGrosse
    Registriert seit
    29.06.2009.
    Ort
    Zwickau
    Beiträge
    58

    Standard

    Der Fehler lag in der AvatarModuleExtended.php. Da waren in der ersten Zeile vor
    <?php if (!defined('TL_ROOT')) die('You can not access this file directly!');

    mehrere Leerzeichen.

    Danke für den Tip.

  6. #6
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Standard

    Oh, dann Asche auf mein Haupt: Diese Datei gehört ja zu x_avatarresizer und damit ist der Fehler nicht deine Schuld. In dieser Datei ist doch tatsächlich versehentlich ein Tabulator in die erste Zeile gerutscht... Danke für's melden!

    Ich hab die fehlerhafte Datei angepasst und die Änderung auch gleich in das Extension Repository eingepflegt. Also einfach in der Erweiterungsverwaltung aktualisieren und das Problem sollte nicht wieder vorkommen.

  7. #7
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    HTML

    Es gibt mal wieder eine neue stabile Version der Avatarresizer Erweiterung mit Bugfixes und einem neuen Feature:

    Da das Verkleinern von GIF Dateien dazu führt das diese eventuell vorhandene Animationen verlieren habe ich im Backend eine Checkbox hinzugefügt, welche die Verkleinerung von GIF Dateien auf Wunsch deaktiviert. Die Dateigrößenbegrenzung sowie andere Dateitypen werden davon nicht beeinflusst.

  8. #8
    Contao-Nutzer
    Registriert seit
    14.01.2011.
    Beiträge
    79

    Standard mini bug?

    Hallo Janek,

    danke erstmal für die Erweiterung!
    Läuft super bis auf ...

    Kann es sein, daß die maximale Höhe ignoriert wird, wenn der Avatar quadratisch ist?

    Bsp: max. Breite 150, max Höhe 100,
    ein quadratisches Bild wird immer auf 150x150 skaliert....

    Würde mich da sehr über einen Tip oder Fix freuen!

    Gruß Jan

  9. #9
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Standard

    Wenn das der Fall sein sollte handelt es sich dabei tatsächlich um einen Bug. Ein 150x150 Avatar sollte bei der Einstellung "maximal" 150x100 auf 100x100 skaliert werden.

    Ich werde das nachher mal testen.

    Für die Skalierung werden die von Contao mitgelieferten Methoden verwendet. Wenn ich diese in der Erweiterung nicht falsch verwendet haben sollte, müssen die Probleme eventuell da gesucht werden. Wobei ich hier keine voreiligen Schlüsse ziehen möchte. Wahrscheinlich gibt es wirklich einen Bug in der Erweiterung

  10. #10
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Frage

    Soo, ich habe das ganze jetzt einmal mit der aktuellen 2.10 RC1 Version von Contao getestet und konnte den Fehler (leider) reproduzieren.

    Für die Verkleinerung wird die Contao eigene methode "resizeImage" verwendet, welche alle Parameter an die Methode "getImage" weitergibt. Der Methodenkopf von "getImage" sieht folgendermaßen aus:

    PHP-Code:
    protected function getImage($image$width$height$mode=''$target=null
    Meine Erweiterung übergibt nun also den Pfad zur hochgeladenen Datei sowie die in den Contao Einstellungen festgelegten Werte für Höhe und Breite - also in diesem Fall 150 und 100.

    Also "$mode" wird "proportional" übergeben. Es wäre noch "box" möglich, dann würde allerdings das Bild beschnitten werden. Wenn das jemand nutzen möchte könnte ich dies in den Contao Einstellungen per Checkbox auswählbar machen - bitte melden falls Interesse besteht.

    Die Methode springt bei den in diesem Fall übergebenen Dimensionen in die folgende Verzweigung, sofern ein Bild der Größe "150x150" übergeben wird.

    PHP-Code:
    // Calculate the height if only the width is given
    elseif ($intWidth)
    {
        
    $intHeight ceil($objFile->height $width $objFile->width);
        
    $strNewImage imagecreatetruecolor($intWidth$intHeight);

    Dort wird die Höhe ausgerechnet: höhe = aufrunden(150 * 150 / 150) = 150

    So kommt am Ende wieder die Höhe "150" raus - obwohl als maximale Höhe 100 eingetragen wurde.

    Jetzt bleibt die Frage: Ist das Verhalten der Methode "getImage" seitens der Contao Entwickler so geplant und erwünscht?
    Ich habe keine genauere Dokumentation der Methode finden können, welche Aufschluss darüber gibt was die $width und $height Parameter bewirken sollen.
    Es ist also durchaus möglich, dass die Methode alles richtig macht und ich sie nur falsch benutze.
    Ich bin einfach davon ausgegangen, dass es sich bei den zu übergebenden Werten um Maximalwerte handeln soll - sonst würde ja die alleinige Angabe von Breite oder Höhe reichen.

    Bevor ich dieses Verhalten durch Änderungen an meiner Erweiterung versuche anzupassen, muss ich wissen ob das Verhalten der Methode so erwünscht ist.
    Es wäre sehr nett, wenn sich ein Core Entwickler zu diesem Thema melden könnte

    Ansonsten wünsche ich allen noch eine gute (Rest-) Nacht. Ich leg mich dann mal aufs Ohr

    Gruß Janek

  11. #11
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Fehler

    Hallo Janek,

    es ist tatsächlich ein Bug in x_avatarresizer. Wenn du in AvatarWidgetExtended.php Zeile 152 den mode auf "box" stellst, dann geht es. Habe es mit landscape und portrait getestet. Das Bild wird mit "box" nicht beschnitten. Beschnitten wird mit "crop", wobei du anstelle von "crop" auch "foo" reinschreiben kannst, da "crop" nicht abgefragt wird.

    Gruß Andreas
    Geändert von Andreas (20.10.2011 um 02:04 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  12. #12
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von janek Beitrag anzeigen

    Dort wird die Höhe ausgerechnet: höhe = aufrunden(150 * 150 / 150) = 150

    So kommt am Ende wieder die Höhe "150" raus - obwohl als maximale Höhe 100 eingetragen wurde.

    Jetzt bleibt die Frage: Ist das Verhalten der Methode "getImage" seitens der Contao Entwickler so geplant und erwünscht?
    Ich habe keine genauere Dokumentation der Methode finden können, welche Aufschluss darüber gibt was die $width und $height Parameter bewirken sollen.
    Es ist also durchaus möglich, dass die Methode alles richtig macht und ich sie nur falsch benutze.
    Ich bin einfach davon ausgegangen, dass es sich bei den zu übergebenden Werten um Maximalwerte handeln soll - sonst würde ja die alleinige Angabe von Breite oder Höhe reichen.

    Bevor ich dieses Verhalten durch Änderungen an meiner Erweiterung versuche anzupassen, muss ich wissen ob das Verhalten der Methode so erwünscht ist.
    Es wäre sehr nett, wenn sich ein Core Entwickler zu diesem Thema melden könnte
    Ich hatte es ganz genau so analysiert wie du, noch bevor ich diesen Thread hier gelesen habe. Der Unterschied ist wahrscheinlich, dass Leo den Begriff "Maximale Breite / Höhe" nicht verwendet. Sieht so aus, als würde "proportional" auf die größte Abmessung und "box" auf die kleinste Abmessung proportional skalieren. Ich glaube Nina hat irgendwo mal versucht das zu erklären.

    Grüße
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  13. #13
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wie das so mit den Bildern ist kann man hier genau nachlesen: http://www.contao.org/blog-leser/ite...light-2.8.html

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  14. #14
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Danke MacKP, genau das war's was ich im Kopf hatte. Dann stimmt meine Aussage ja mit dem tatsächlichen Verhalten überein.

    In x_avatarresizer funktioniert das was in dem Block unter "Übrigens..." steht übrigens nicht, weil die Erweiterung versucht den Fall eines fehlenden Wertes auszugleichen, z.B. mit Werten, die über die Erweiterung avatar eingegeben wurden und jetzt nur noch in der localconfig.php zu finden sind. Aber auch wenn sie dort nicht stehen funktioniert es nicht mit nur einem Wert, selbst wenn man mandatory auf false setzt. Für meinen Geschmack etwas zu viele Überprüfungen in x_avatarresizer. Man könnte auch sofort die Methode getImage() nehmen, bei der man als letzten Parameter auch schon das Zielverzeichnis mit eingeben kann.

    Gruß Andreas
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  15. #15
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    HTML

    Zitat Zitat von Andreas Beitrag anzeigen
    Danke MacKP, genau das war's was ich im Kopf hatte. Dann stimmt meine Aussage ja mit dem tatsächlichen Verhalten überein.
    Dann vielen Dank für die Klarstellung! Ich habe nun den Parameter $mode zu "box" geändert.

    Zitat Zitat von Andreas Beitrag anzeigen
    In x_avatarresizer funktioniert das was in dem Block unter "Übrigens..." steht übrigens nicht, weil die Erweiterung versucht den Fall eines fehlenden Wertes auszugleichen, z.B. mit Werten, die über die Erweiterung avatar eingegeben wurden und jetzt nur noch in der localconfig.php zu finden sind. Aber auch wenn sie dort nicht stehen funktioniert es nicht mit nur einem Wert, selbst wenn man mandatory auf false setzt. Für meinen Geschmack etwas zu viele Überprüfungen in x_avatarresizer.
    Da hast du natürlich recht. Anfangs war es mir wichtig es allen "Umsteigern" von anderen Extensions möglichst leicht zu machen indem alte Einstellungen übernommen und gegebenfalls umgerechnet werden (Byte=>KByte). Ich habe das Prozedere etwas Vereinfacht bzw. angepasst. Es reicht jetzt wenn entweder die maximale Höhe ODER die maximale Breite angegeben wird.
    Der resizeImage Methode wird nun ansonsten einfach false für einen Wert übermittelt was offenbar klaglos funktioniert.

    Zitat Zitat von Andreas Beitrag anzeigen
    Man könnte auch sofort die Methode getImage() nehmen, bei der man als letzten Parameter auch schon das Zielverzeichnis mit eingeben kann.
    Da sehe ich keinen Vorteil drin. Die resizeImage() Methode benutzt einfach den einen übergebenen Pfad für Quelle und Ziel und hat den Vorteil ganz klar entweder true oder false als Rückgabewert zu haben. getImage() beendet sich ggf. auch mal mit "null". Gut das ist jetzt kein riesen Vorteil aber alleine vom Wortlaut klingt resizeImage() für mich so, als ob es die Methode der Wahl es wenn es nach leo ginge


    Ich habe alle Änderungen soweit möglich durchgetestet kann allerdings nicht für Fehlerfreiheit garantieren. Deshalb habe ich die neue Version der Erweiterung 0.1.3 erst einmal als Beta veröffentlicht.

    Ich wäre sehr dankbar wenn ihr diese Beta bei euch ausprobieren könntet und eventuelle Fehler rückmelden würdet!

    Bugs und Anregungen können jetzt auf der neu eingerichteten Projektseite angegeben werden: https://redmine.artos-hosting.de/pro...xavatarresizer
    (Ja ich weiß, wäre nicht nötig für ein Skript dieser Größe )

  16. #16
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo janek,

    hört sich ja gut an. Danke. Zu resizeImage(): Das meinte ich ja auch, ist ja im Prinzip dasselbe wie getImage(), resize... greift ja direkt auf get... zu, nur dass ersteres boolean zurück gibt.

    Du kannst die Erweiterung doch auch bei http://contao-forge.org/ verwalten, das machen mittlerweile fast alle Entwickler.

    Sobald ich es wieder einsetze melde ich mich, wenn irgendetwas nicht funktionieren sollte.

    Gruß Andreas
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  17. #17
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Du kannst die Erweiterung doch auch bei http://contao-forge.org/ verwalten, das machen mittlerweile fast alle Entwickler.
    Ok daran hab ich garnicht gedacht. Ich werds mir überlegen. Allerdings find ich es ganz angenehm alle meine Projekte (Auch nicht öffentliche) an einem Ort zu verwalten und immer im Überblick zu haben welche Tickets zu bearbeiten sind usw.

    Zitat Zitat von Andreas Beitrag anzeigen
    Sobald ich es wieder einsetze melde ich mich, wenn irgendetwas nicht funktionieren sollte.
    Danke! Denn wenn es keine Probleme gibt würde ich die Version gerne als Stable veröffentlichen damit alle den Bugfix erhalten.

    Und danke für die Unterstützung. Es erleichtert doch sehr bei einem Bugreport gleich eine Lösung+Link zu bekommen

    Grüße
    Janek

  18. #18
    Contao-Nutzer Avatar von sebi
    Registriert seit
    17.03.2012.
    Ort
    Kiel
    Beiträge
    154

    Standard [x_avatarresizer] unter contao 3

    Moin zusammen,

    ich benötigte den Resizer für ein Projekt unter Contao 3.0, dank autoload konnte man die Erweiterung samt avatar auch einfach installieren und zum laufen bringen. Allerdings wurden die default-Bilder nicht angezeigt und hochgeladene Bilder nicht im avatar Ordner (obwohl im Backend unter Einstellungen den Pfad angegeben) gespeichert.

    Nach ein bisschen suchen, hat sich herausgestellt, dass der Dateipfad beim Ändern im Backend nicht richtig gespeichert wird. Warum hab ich nicht herausgefunden, aber wie man diesen Fehler umgeht

    1. Erweiterungen installieren
    2. Im Backend Einstellungen für Resizer (Breite/Höhe, Speicherort) festlegen und speichern
    3. Contao speichert den Pfad nun Fehlerhaft in die localconfig.php (bei mir $GLOBALS['TL_CONFIG']['avatar_dir'] = 109;)
    4. Über FTP-Programm relativen Pfad zum "avatar" verzeichnis herausfinden, bei mir files/avatars
    5. In der dcaconfig.php einfach den Dateipfad richtig hinterlegen, bei mir $GLOBALS['TL_CONFIG']['avatar_dir'] = 'files/avatars';


    Nun sollte bei den Mitgliedern im Backend (Frontend nicht getestet) wieder das default-Bild angezeigt werden und hochgeladene Bilder auch im angegebenen Ordner gespeichert werden.

    Wenn jemand herausfindet, wie man der Erweiterung von vornerein beibringt, den Pfad richtig zu speichern, wäre das natürlich noch optimaler

    Gruß,
    Sebi

    PS: Irgendwas passt mit den maximalen Pixelzahlen noch nicht... habe im BE dort 4000x4000 eingegeben und ein Bild 3600x2800 konnte nicht verkleinert werden, weil die Pixelzahl zu hoch sei... Dafür habe ich keine Lösung gefunden. -.-

  19. #19
    Contao-Nutzer
    Registriert seit
    18.04.2010.
    Beiträge
    19

    Standard

    Moin,

    Zitat Zitat von sebi Beitrag anzeigen
    Wenn jemand herausfindet, wie man der Erweiterung von vornerein beibringt, den Pfad richtig zu speichern, wäre das natürlich noch optimaler
    Ich schau mir das demnächst mal an. Bisher habe ich mich noch nicht eingehend mit Contao 3 beschäftigt aber das wird langsam mal Zeit.

    Zitat Zitat von sebi Beitrag anzeigen
    PS: Irgendwas passt mit den maximalen Pixelzahlen noch nicht... habe im BE dort 4000x4000 eingegeben und ein Bild 3600x2800 konnte nicht verkleinert werden, weil die Pixelzahl zu hoch sei... Dafür habe ich keine Lösung gefunden. -.-
    Das Problem liegt an der verwendeten internen Bildverarbeitung von Contao. Bilder mit größerer Pixelzahl können nicht über die Contao "Image" Methoden verkleinert werden. Das gleiche gilt somit auch für Bilderuploads über die Contao Dateiverwaltung.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Bilder automatisch verkleinern (Bilder zu groß)
    Von solades im Forum Bilder/Dateien
    Antworten: 31
    Letzter Beitrag: 15.08.2013, 11:58
  2. Fehler beim CSS Upload im Backend
    Von redhat99 im Forum Layout / Templates / Holy Grail
    Antworten: 1
    Letzter Beitrag: 22.02.2011, 22:16
  3. Mit TL 2.8: Fehler beim Datei-Upload
    Von Sebastian im Forum Bilder/Dateien
    Antworten: 222
    Letzter Beitrag: 09.09.2010, 14:07
  4. Dateiupload - Bilder automatisch verkleinern
    Von kischd im Forum Bilder/Dateien
    Antworten: 14
    Letzter Beitrag: 14.10.2009, 16:06
  5. Fehler beim Bilder hochladen UND automatischen verkleinern!
    Von erikpauli im Forum Bilder/Dateien
    Antworten: 32
    Letzter Beitrag: 05.07.2009, 22:03

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •