Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 40 von 85

Thema: Thumbnify - Thumbnail Generator Toolkit

  1. #1
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard Thumbnify - Thumbnail Generator Toolkit

    Hoi,

    ich habe hier etwas, was Extension Entwickler Interessieren könnte. Die Erweiterung nennt sich Thumbnify und ist ein Thumbnail Generator für Bilder, PDF Dokumente und Filme.

    Extension Repository

    Einziges Manko, für die Generierung der Thumbs werden unterschiedliche zusätzliche Programme benötigt:

    • Bilder: -
    • PDF: ImageMagick
    • Filme: mplayer


    Verwendung

    Thumbnify ist ein Toolkit und kann nur durch andere Erweiterungen genutzt werden!

    Methoden

    PHP-Code:
    $this->Thumbnify->defaultWatermarkLocation WATERMARK_...; 
    Setzt die Standard Wasserzeichenposition, diese wird verwendet, wenn zu einem Wasserzeichen keine Position angegeben wird.

    PHP-Code:
    setMimeWatermark($strMime$strWatermark$strLocation null
    Setzt zu einem Mimetyp (z.B. "image/jpeg" oder "video/mpeg"), einer Mime-Gruppe (z.B. "image" oder "video") oder für alle ("all") ein Wasserzeichen. Optional kann eine Position angegeben werden: WATERMARK_LEFT_TOP, WATERMARK_TOP, WATERMARK_RIGHT_TOP, WATERMARK_LEFT, WATERMARK_CENTER, WATERMARK_RIGHT, WATERMARK_LEFT_BOTTOM, WATERMARK_BOTTOM, WATERMARK_RIGHT_BOTTOM (default)

    PHP-Code:
    getThumb($strFile$intWidth$intHeight$strTarget null
    Erstellt aus der Datei $strFile ein Thumb mit der Größe $intWidth X $intHeight. Optional kann die Zieldatei angegeben werden. Liefert einen Dateipfad zurück.

    PHP-Code:
    getWatermarkedThumb($strFile$intWidth$intHeight$strTarget null
    Identisch zu getThumb, nur das das Thumb mit einem Wasserzeichen versehen wird.

    PHP-Code:
    addWatermark($strFile$strMime null$strTarget null
    Setzt ein Wasserzeichen auf die Datei $strFile, entsprechend dem Mimetyp $strMime. Optional kann die Zieldatei angegeben werden. Liefert einen Dateipfad zurück.
    Das Setzen eines Wasserzeichens wird aktuell ebenfalls von ImageMagick erledigt. Hier werde ich irgendwann mal nachbessern und es auf PHP Funktionen extrahieren. ;-)

    Grüße
    Tristan

  2. #2
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Die Erweiterung habe ich schon länger gesucht und wollte sie jetzt mal innerhalb der News verwenden.

    Leider klappt das nicht so recht.
    Ich hab die Thumbnify Bibliothek in mein Newstemplate importiert und wollte da die PDF Anhänge als Bilder darstellen:

    PHP-Code:
    <?php foreach ($this->enclosure as $enclosure): ?>
    <?php 
    echo ($this->getThumb($enclosure['enclosure'], 9665)); ?>
    <p><a href="<?php echo $enclosure['href']; ?>" title="<?php echo $enclosure['title']; ?>"><?php echo $enclosure['enclosure']; ?></a></p>
    <?php endforeach; ?>
    Leider zerhauts mir dann das Template. Es kommt kein wirklicher PHP Fehler, es wird einfach nur das Seitenlayout zerhauen. Was mache ich denn falsch?

  3. #3
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    <?php foreach ($this->enclosure as $enclosure): ?>
    <?php $this
    ->import('Thumbnify'); ?>
    <?php 
    echo ($this->Thumbnify->getThumb($enclosure['enclosure'], 9665)); ?>
    <p><a href="<?php echo $enclosure['href']; ?>" title="<?php echo $enclosure['title']; ?>"><?php echo $enclosure['enclosure']; ?></a></p>
    <?php endforeach; ?>
    Du musst natürlich die Methode getThumb von Thumbnify aufrufen

  4. #4
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Die Tumbnify Bibliothek habe ich bereits weiter oben importiert
    Das sieht man nur nicht im Code.

    Also ist

    PHP-Code:
    $this->Thumbnify->getThumb 
    korrekt? Und

    PHP-Code:
    $this->getThumb 
    falsch?

  5. #5
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ja, weil die getThumb Methode zur Klasse Thumbnify gehört, also musst du auch über das entsprechende Objekt die Methode aufrufen.
    $this->import(...) erzeugt dieses Objekt ja für dich, zugreifen kannst du hinterher über $this->Thumbnify

  6. #6
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Weißt du vielleicht wie ich testen kann ob mplayer auf dem Server vorhanden ist?

  7. #7
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Vielleicht mit einem kleinen PHP Script?
    PHP-Code:
    <?php
    header
    ('Content-Type: text/plain');
    system('mplayer');
    ?>
    Dann sollte eine Seite mit folgendem oder ähnlichem Inhalt erscheinen:
    Code:
    MPlayer 1.0rc4-4.4.5 (C) 2000-2010 MPlayer Team
    Usage:   mplayer [options] [url|path/]filename
    
    Basic options: (complete list in the man page)
     -vo <drv>        select video output driver ('-vo help' for a list)
     -ao <drv>        select audio output driver ('-ao help' for a list)
     vcd://<trackno>  play (S)VCD (Super Video CD) track (raw device, no mount)
     dvd://<titleno>  play DVD title from device instead of plain file
     -alang/-slang    select DVD audio/subtitle language (by 2-char country code)
     -ss <position>   seek to given (seconds or hh:mm:ss) position
     -nosound         do not play sound
     -fs              fullscreen playback (or -vm, -zoom, details in the man page)
     -x <x> -y <y>    set display resolution (for use with -vm or -zoom)
     -sub <file>      specify subtitle file to use (also see -subfps, -subdelay)
     -playlist <file> specify playlist file
     -vid x -aid y    select video (x) and audio (y) stream to play
     -fps x -srate y  change video (x fps) and audio (y Hz) rate
     -pp <quality>    enable postprocessing filter (details in the man page)
     -framedrop       enable frame dropping (for slow machines)
    
    Basic keys: (complete list in the man page, also check input.conf)
     <-  or  ->       seek backward/forward 10 seconds
     down or up       seek backward/forward  1 minute
     pgdown or pgup   seek backward/forward 10 minutes
     < or >           step backward/forward in playlist
     p or SPACE       pause movie (press any key to continue)
     q or ESC         stop playing and quit program                                                                                                                                                                      
     + or -           adjust audio delay by +/- 0.1 second                                                                                                                                                               
     o                cycle OSD mode:  none / seekbar / seekbar + timer                                                                                                                                                  
     * or /           increase or decrease PCM volume                                                                                                                                                                    
     x or z           adjust subtitle delay by +/- 0.1 second                                                                                                                                                            
     r or t           adjust subtitle position up/down, also see -vf expand                                                                                                                                              
                                                                                                                                                                                                                         
     * * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *

  8. #8
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Hallo,

    ich komm einfach nicht mehr weiter.
    Kann es sein das die Extension keine Filme im Format "flv" als Vorschaubild darstellen kann? Wenn doch dann weiß ich einfach nicht mehr was ich falsch gemacht habe.

  9. #9
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    Hallo,

    ich komm einfach nicht mehr weiter.
    Kann es sein das die Extension keine Filme im Format "flv" als Vorschaubild darstellen kann? Wenn doch dann weiß ich einfach nicht mehr was ich falsch gemacht habe.
    Wie versuchst du denn eine Vorschau der FLV zu stellen? mplayer sollte mit FLV eigentlich umgehen können.

  10. #10
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Ich gebe eine Reihe von Videos aus dem Catalog aus.
    Ganz oben wird die Bibliothek importiert:

    PHP-Code:
    <?php if (count($this->entries)): 
          
    $this->import('Thumbnify'); ?>
    Und in der foreach Schleife gebe ich das Video so aus:

    PHP-Code:
    <a rel="lightbox" href="<?php echo $entry['data']['video']['raw']; ?>"><img width="405" height="220" src="<?php echo ($this->Thumbnify->getThumb($entry['data']['video']['raw'], 405220)); ?>" alt="" /></a>
    Dieser Code
    PHP-Code:
    <?php echo $entry['data']['video']['raw']; ?>
    gibt folgendes Ergebnis zurück:

    tl_files/standard/videos/2011-01-08/DSCN0252.flv

    Das müsste man doch jetzt eigentlich ein Vorschaubild generieren lassen können, oder? Aber ich bekomme ein leeres Bild zurück. Also das "src" ist einfach leer. Der HTML Ordner hat aber die korrekten Rechte.

  11. #11
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    ... Aber ich bekomme ein leeres Bild zurück. Also das "src" ist einfach leer. ...
    Prüfe mal bitte, ob nicht false zurück kommt.
    PHP-Code:
    $strSrc $this->Thumbnify->getThumb(..)
    if (
    $strSrc === false)
    {
        
    $strSrc 'tl_files/keine Vorschau möglich.jpg';

    Wenn false zurück geliefert wird, ist beim ausführen von mplayer ein Fehler aufgetreten, diesen kannst du im Systemlog nachprüfen.

  12. #12
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Es wird seltsamerweise aber auch kein False zurückgegeben.
    Ich hab das ganze um einen else Teil erweitert weil nichts angezeigt wurde und es bestätigt es nochmal:

    PHP-Code:
    <?php if ($strSrc === false)
    {
        
    $strSrc 'tl_files/keine Vorschau möglich.jpg';
    }  else {
        echo 
    'ich könnte eine vorschau anzeigen';
    }
    ?>
    Und er zeigt mir "ich könnte eine vorschau anzeigen" an.
    Muss ich vielleicht nochmal extra den Speicherort des Bildes angeben? Der mplayer ist ja augenscheinlich korrekt installiert.

  13. #13
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Ich glaube ich was vergessen gehabt. Ich teste es heute abend nochmal aus und sage dir dann bescheid. Wenn ich Pech habe, bekomme ich doch ein "false".

    Was könnte ich denn dann machen?

  14. #14
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Kannst du mal mit var_dump($strSrc) prüfen, was denn jetzt wirklich in $strSrc steht? Ich hab aktuell keine Ahnung was los ist

    EDIT: Ich frage mich grade, was für ein mime Type die .flv hat.
    Du kannst auch mal folgendes Probieren:
    PHP-Code:
    $objFile = new File('...flv');
    echo 
    $objFile->mime
    Wenn etwas mit video/* ausgegeben wird, dann kommt wohl mplayer nicht damit klar (=> Systemlog nachschauen). Wenn dort was andere kommt, dann wird mplayer überhaupt nicht ausgeführt, weil die .flv gar nicht als Video erkannt wird.
    Geändert von tril (21.01.2011 um 08:34 Uhr)

  15. #15
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Zum Haare ausreißen

    Ich habe mal diesen Code ausgeführt:

    PHP-Code:
    <?php 
    $strSrc 
    $this->Thumbnify->getThumb($entry['data']['video']['raw'], 405220);
    var_dump($strSrc); 
    $objFile = new File($entry['data']['video']['raw']); 
    echo 
    $objFile->mime;
    ?>
    Wie du ja schon weißt bekomme ich beim $entry.. den Videolink raus. Das Ergebnis des Codes war dieser:

    • bool(false)
    • application/octet-stream

  16. #16
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    application/octet-stream
    Genau das ist das Problem, die Datei wird als reguläre Binärdatei erkannt und nicht als Video.

    Ich habe die Erkennung des Dateitypen mit Version 1.0.2 verändern, jetzt sollte deine .flv auch als Video erkannt werden

    MfG Tristan

  17. #17
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Schade, leider wird bei mir das Video immer noch als "application/octet-stream" erkannt. Ich hab auf jeden Fall die neue Version 1.2 deiner Extension.

    Und zur Sicherheit habe ich mir mal folgenden Eintrag in die .htaccess geschrieben:

    Code:
    AddType video/x-flv .flv

  18. #18
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Dein htaccess Eintrag wirkt sich leider nur auf den Apache, nicht aber PHP aus.
    Ich habe Thumbnify beigebracht zuerst zu prüfen ob Fileinfo verfügbar ist und das zu nutzen,
    danach wird die Methode mime_content_type versucht
    und zu guter Letzt wird der Contao eigene Mechanismus verwendet.

    Du kannst mal folgendes ausprobieren:
    PHP-Code:
    <?php
    header
    ('Content-Type: text/plain');

    $file 'MeinVideo.flv';

    if (
    function_exists('finfo_open'))
    {
        echo 
    "Fileinfo existiert!\n";

        
    $f finfo_open();
        echo 
    "Fileinfo mime type: " finfo_file($f$fileFILEINFO_MIME_TYPE) . "\n";
        
    finfo_close($f);
    }
    if (
    function_exists('mime_content_type'))
    {
        echo 
    "mime_content_type existiert!\n";

        echo 
    "mime type: " mime_content_type($file) . "\n";
    }
    ?>
    Du musst nur $file anpassen und dann mal ausführen (am besten in das gleiche Verzeichnis wie die flv legen).

  19. #19
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Danke dir für deine Mühe

    Als Ergebnis erhalte ich:

    Code:
    mime_content_type existiert!
    mime type: text/plain

  20. #20
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Ok, dann kann ich außer es von Hand ein zu programmieren wenig tun.

    Diese Daten ließt PHP normalerweise aus der Systemweiten MIME Konfiguration aus. Ich würde mal deinen Hoster darauf ansprechen, vielleicht installieren die dir auch das PECL Paket Fileinfo
    Falls du die Möglichkeit hast, PHP 5.3 zu nutzen, dann versuch es mal damit, denn ab 5.3 gehört Fileinfo zu PHP dazu.

  21. #21
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Ich glaube nicht das es mit dem Hoster so schnell klappen wird.
    Wie meinst du das mit "von Hand ein zu programmieren"?

    Was genau muss denn mein Hoster noch installieren? PHP 5.3 möchte ich ungerne da sich mein Livesystem sonst zu sehr von meinem Entwicklungssystem unterscheidet.

    Hast du vielleicht die genauen Paketnamen zur Hand?

  22. #22
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    Ich glaube nicht das es mit dem Hoster so schnell klappen wird.
    Wie meinst du das mit "von Hand ein zu programmieren"?
    In dem ich an der passende Stelle, wo der MIME Typ bestimmt wird einfach her gehe und den MIME Typ von Hand einsetze:
    [PHP]if ($objFile->extension == 'flv'))
    {
    $strMime = 'video/x-flv';
    }
    else ... // hier kommt dann die reguläre Erkennung.[PHP]

    Zitat Zitat von jared Beitrag anzeigen
    Was genau muss denn mein Hoster noch installieren?
    ...
    Hast du vielleicht die genauen Paketnamen zur Hand?
    Das PECL Paket fileinfo, das geht ganz fix mit:
    Code:
    $ pecl install fileinfo
    Zitat Zitat von jared Beitrag anzeigen
    PHP 5.3 möchte ich ungerne da sich mein Livesystem sonst zu sehr von meinem Entwicklungssystem unterscheidet.
    Mh, würde bei mir genau umgekehrt laufen
    Hab nur noch ubuntu server im Einsatz, da ist schon seit einiger Zeit PHP 5.3 aktuell

    MfG Tristan

  23. #23
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Würdest du deine Extension denn um diesen Zusatz erweitern?
    Ansonsten mache ich es selber ist dann nur leider nicht mehr updatesicher.


    Würdest du mir verraten in welcher Zeile ich den Codeschnippsel einfügen muss?

  24. #24
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Probier mal die Version 1.0.3, dann trägst du folgendes in deine localconf.php ein:

    PHP-Code:
    $GLOBALS['TL_MIME']['flv'] = array('video/x-flv''iconVIDEO.gif'); 
    Beim genauen studieren der File Klasse habe ich heraus gefunden, dass man eigene Mime Typen bereits in Contao definieren kann

  25. #25
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Hab ich gemacht
    Die neueste Version ist installiert und auch der Zusatz steht in der localconfig.php

    Als Ausgabe für diesen Code

    PHP-Code:
    <?php $strSrc $this->Thumbnify->getThumb($entry['data']['video']['raw'], 405220); 
            
    var_dump($strSrc);
            
    $objFile = new File($entry['data']['video']['raw']);
            echo 
    $objFile->mime?>
    bekomme ich zwar eine veränderte Ausgabe aber immer noch ein false

    Code:
    bool(false) 
    video/x-flv
    Jetzt verstehe ich überhaupt nichts mehr. Die Extension und mein Server erkennt die .flv korrekt aber kann immer noch kein Vorschaubild erstellen?
    Irgendwas muss ich doch falsch machen? Kann deine Extension vielleicht nichts mit einer Pfadangabe anfangen und erwartet einfach den Dateinamen? Weil "$entry['data']['video']['raw']" ist bei mir ein ganzer Pfad + Dateiname...

  26. #26
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von jared Beitrag anzeigen
    Weil "$entry['data']['video']['raw']" ist bei mir ein ganzer Pfad + Dateiname...
    mit ganzer Pfad meinst du einen absoluten Pfad? also z.B. /var/www/domain/htdocs/tl_files/Video.flv und kein relativer Pfad tl_files/Video.flv ?
    Weil letzteres wird von Thumbnify erwartet, deshalb kam auch text/plain, denn wenn ich ein File Objekt erstelle, die Datei aber nicht existiert, dann wird ein leeres Textfile erzeugt.

    Also Thumbnify benötigt einen relativen Pfad innerhalb der Contao Installation!

  27. #27
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Ne da hast du mich falsch verstanden

    Code:
    tl_files/standard/videos/2011-01-08/DSCN0275.flv
    Das ist der Pfad der ausgegeben wird!
    Ich probier mal eine andere flv Datei aus. Vielleicht klappt es ja mit der Datei.

    Mehr fällt mir zurzeit einfach nicht mehr ein
    Oder muss ich eventuell noch den Pfad zum Zielordner angeben?

  28. #28
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Also ich hab jetzt mehrere FLV-Dateien ausprobiert und keine hat ein Vorschaubild bekommen. Irgendwas muss noch nicht korrekt sein.

  29. #29
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Wenn die Datei als video/x-flv erkannt wird, dann kann es nur noch sein, dass mplayer nicht mit der Datei klar kommt. Schau mal in das Systemlog ob da eine Fehlermeldung von Thumbnify eingetragen wurde.

  30. #30
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Frage

    Hi tril,

    folgendes habe ich in einem tpl eingebaut:
    PHP-Code:
    <img src="<?php echo ($this->Thumbnify->getThumb($relatedNews['singleSRC'], 140140)); ?>" alt="" />
    vorher natürlich:
    PHP-Code:
    <?php $this->import('Thumbnify'); ?>
    Klappt auch soweit so gut (ps: klasse Erweiterung!), jedoch ignoriert er total die angegebene Breite von 140. Er erstellt ein Thumb in der Größe 140x105px aus welchem Grund auch immer. Habe ich einen Fehler drin?

    Beste Grüße
    Alex
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  31. #31
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Im System-Log steht leider rein garnichts.

  32. #32
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Alexander Beitrag anzeigen
    Klappt auch soweit so gut (ps: klasse Erweiterung!), jedoch ignoriert er total die angegebene Breite von 140. Er erstellt ein Thumb in der Größe 140x105px aus welchem Grund auch immer. Habe ich einen Fehler drin?
    Du meinst wohl er ignoriert die Höhe von 140px ?
    Das liegt daran, dass intern nochmal getImage mit dem Skalierungsmodus "box" aufgerufen wird.
    Mit 1.0.4 kannst du den Modus jetzt selbst angeben, z.B.:
    PHP-Code:
    $this->Thumbnify->getThumb($relatedNews['singleSRC'], 140140'crop'
    Zitat Zitat von jared Beitrag anzeigen
    Im System-Log steht leider rein garnichts.
    Ok, dann stehe ich jetzt zugegebenermaßen auf dem Schlauch, kannst du das irgendwie ein bisschen debuggen? Interessant für deinen Fall sind die Zeilen 215. ff

  33. #33
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Standard

    Hi tril,

    mein Fehler. Ich meine natürlich die Höhe.
    Das Problem ist nun, dass, da er sich in einer (4-fach-)Schleife befindet, bekomme ich nun viermal das gleiche Bild ausgegeben. Und diesmal sagt die Grafik-Info beim Firefox, dass die Maße 140px × 94px betragen. Hier mal das kpl. Template zur Extension [related_news]:
    Code:
    <?php if ($this->relatedNews): ?>
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <h5>Ähnliche Nachrichten</h5>
    <?php $this->import('Thumbnify'); ?>
    <ul>
    <?php foreach ($this->relatedNews as $relatedNews): ?>
        <li><a href="#"><img src="<?php echo ($this->Thumbnify->getThumb($relatedNews['singleSRC'], 140, 140, 'crop')); ?>" alt="alternativtext" />
    </a></li>
    <?php endforeach; ?> </ul>
    </div>
    
    <?php endif; ?>
    Könnte es daran liegen, dass ich 4 gleiche Bilder bekomme?

    Beste Grüße
    Alex
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  34. #34
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Mein Hoster hat sich erbarmt und das Fileinfo Paket installiert. Sollte es jetzt funktionieren? Ich teste es heute mittag oder abend nochmal

  35. #35
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Leider wird es auch mit Fileinfo nicht funktionieren, denn dein Video wird ja bereits als video/x-flv erkannt. Jetzt ist die Frage, was mplayer damit anstellt? Ich vermute das mplayer irgendwie nicht so ganz damit klar kommt, aber keinen Fehler wirft sondern ganz regulär beendet wird.

  36. #36
    Contao-Nutzer Avatar von cybernaut
    Registriert seit
    28.10.2010.
    Ort
    Bielefeld
    Beiträge
    14

    Standard

    Hallo,

    ich habe mit Hilfe dieser Extension mein Modul erweitert. Da ich einige Probleme beim einrichten hatte, möchte ich gerne an dieser Stelle meine Erfahrungen mitteilen.

    Zunächst habe ich die Extension Thumbnify im Contao Backend installiert.

    Dann in das eigene Modul eingebunden:
    system/modules/eigenesModul.php

    PHP-Code:
    /*... Generate content element
         */
        
    protected function compile()
        {    
            
    $this->import('Thumbnify');

            
    $images = array();
    //...
    //...
    //...
                    
    $strFile TL_ROOT.'/'.$images[($i+$j)]['singleSRC'];

                    
    //hier überprüfe ich das File ob es ein PDF ist, sicher ist sicher
    if (mime_content_type($strFile) == 'application/pdf'
                    {     
                        
    $arrSize unserialize($this->size);
                        if (
    $arrSize[0] > 0) {
                            
    $objCell->pdflink $images[($i+$j)]['singleSRC'];
                            
    // Thumbnail für das PDF wird erstellt
                            
    $strTarget '/system/html' 
                            
    $objThumbni $this->Thumbnify->getThumb($images[($i+$j)]['singleSRC'], $arrSize[0],$arrSize[1], 'resize');
                            
    $objCell->pdfThumb $objThumbni;
                        }
                    } 
    Inhalte der Strings sehen so aus:
    $strFile = /var/www/XXX/XXX/tl_files/music_academy/da/unterverzeichnis1/utoo.pdf
    $arrSize = array([0] =>200[1] =>200[2] =>'crop')
    $images[($i+$j)][singleSRC] = tl_files/music_academy/da/unterverzeichnis1/utoo.pdf


    In meinem Fall konnte ich nun das entsprechende Template anpassen und auf das Thumbnail zugreifen:
    PHP-Code:
    <a href="<?php echo $col->pdflink?>" title="<?php echo $col->pdflink?>" target="_blank"><?php echo $col->pdflink?></a>
    <img src="<?php echo $col->pdfThumb?>"/><?php echo $col->pdfThumb?></a>
    Probleme bekam ich dann allerdings, wenn ich in dem Verzeichnisnamen oder im Dateinamen Sonderzeichen hinzugefügt habe. (ß, Ü, ä, Ö, etc.) Die Funktion getThumb erstellt dann leider nichts... Ich habe die Datei erweitert mit:
    PHP-Code:
        public function getThumb($strFile$intWidth$intHeight$strMode 'box'$strTarget null)
        {    
            
    setlocale(LC_CTYPE"en_US.UTF-8");
            if (
    file_exists(TL_ROOT '/' $strFile)) 
    evtl. mag tril das in seiner nächsten version auch einbauen.

    Dann wollte ich gerne den Mode angeben (crop, box, etc.) und hatte erwartet das ich den in Form eines Strings der Methode GetThumb mit übergebe und diese könnte dies umsetzen. Leider funktioniert das bei PDFs nicht. Da habe ich dann die Funktion getThumb zusätzlich für meine Bedürfnisse erweitert:
    PHP-Code:
                        // generate if file does not exists or file is outdated
                        
    if (!file_exists(TL_ROOT '/' $strTarget) || $objFile->mtime filemtime(TL_ROOT '/' $strTarget))
                        {
                            if (
    $this->executeProc(
                                
    'convert',
                                
    TL_ROOT '/' $objFile->value '[0]',
                                
    '-'.$strMode,
                                
    $intWidth 'x' $intHeight,
                                
    '-gravity''center''-extent'$intWidth 'x' $intHeight,
                                
    TL_ROOT '/' $strTarget))
                            {
                                return 
    $strTarget;
                            }
                        } 
    Es müsste noch mal genau unterschieden werden welcher Mode gesetzt wurde und was die Convertfunktion des Systems erwartet, sodass die Werte die an die Funktion executeProc übergeben werden im vorfeld generiert werden...

    Hoffe das hilft dem ein oder anderen.

    Schöne Grüße
    cybernaut

  37. #37
    Contao-Urgestein Avatar von tril
    Registriert seit
    07.01.2010.
    Ort
    Bad Marienberg
    Beiträge
    2.939
    User beschenken
    Wunschliste

    Standard

    Also setlocale werde ich nicht einbauen, weil es imo nichts in einer Extension zu suchen hat.
    Du solltest dein System bzw. PHP schon korrekt einrichten und wenn es in der Konfigurationsdatei deiner Contao Installation ist

    Hier ist vermutlich dein Provider gefragt (wenn du nicht selbst dein Provider bist), das lässt sich nämlich am einfachsten per php.ini, teilweise auch .htaccess festlegen, bzw. über das System-Locale. In meinem Fall steht es sogar auf de_DE, bei Shared Hostern idR auf en_EN.UTF-8
    $ php -r 'echo setlocale(LC_CTYPE, 0);'
    de_DE.UTF-8
    Aber das mit dem Mode und der PDF ist wirklich ein Punkt, der überarbeitet werden sollte.
    http://www.contao-forge.org/issues/1232

  38. #38
    Contao-Fan
    Registriert seit
    10.01.2010.
    Ort
    Kiel
    Beiträge
    372

    Standard

    Hallo,

    ich habe ein Verständnisproblem. Ist es so, dass ich mit "setMimeWatermark" bestimme, welches Bild als Wasserzeichen verwendet wird und dieses anschließend mit "addWatermark" zuweise? Ich kann ja nicht nur "addWatermark" nutzen, denn dort gibt es keinen Parameter für das Wasserzeichen.

    Ich habe einen Katalog mit Galerien und diesen Bildern möchte ich ein Wasserzeichen hinzufügen. Leider wird dieses aber nicht angezeigt. Ich bekomme aber immerhin auch keine Fehlermeldung So sieht mein Code aus:

    PHP-Code:
    <?php $this->import('Thumbnify'); ?>
    <?php $watermark 
    'tl_files/layout/watermark.png'?>
    <div class="layout_full">
    <?php foreach ($this->entries as $entry): ?>
    <div class="item <?php echo $entry['data']['alias']['value']; ?> <?php echo $entry['class'] ? ' '.$entry['class'] : ''?>">
        <div class="item_image">
            <?php if($entry['data']['picture']['value']): ?>
                <?php $this->Thumbnify->setMimeWatermark('image'$watermark); ?>
                <a class="gallery_first_image" href="<?php echo $this->Thumbnify->addWatermark($entry['data']['picture']['files']['0'], 'image/jpeg'); ?>" rel="lightbox[<?php echo $entry['data']['alias']['value']; ?>]">
                    <img src="<?php echo $entry['data']['picture']['meta']['0']['src'];?>" alt="<?php echo $entry['data']['name']['value']; ?>" />
                </a>
            <?php endif; ?>
        </div>
    </div>
    <?php endforeach; ?>
    </div>
    Viele Grüße
    Tina

  39. #39
    Contao-Nutzer Avatar von cybernaut
    Registriert seit
    28.10.2010.
    Ort
    Bielefeld
    Beiträge
    14

    Standard

    Hallo Nina,

    ich habe mir den Code mal angeschaut.

    Wenn ich den richtig verstehe solltest du nicht addWatermarked nutzen sondern die Funktion: getWatermarkedThumb und dieser das Bild übergeben das ein Wasserzeichen bekommen soll sowie die Breite und Höhe deines Bildes. Optional kannst du dann auch angeben welchen Mode du verwenden möchtest, standard ist box, wenn du nichts angibst. Zusätzlich kann man eine weitere Option angeben die sich mir gerade aber nicht ganz erschließt, denke es geht darum einen alternativen Dateinaamen anzugeben... Das ist aber für dich ja gerade nicht wichtig.

    addWatermarked wird übrigens von getWatermarkedThumb aufgerufen

    Hoffe es stimmt und hilft dir!

    LG
    cybernaut

  40. #40
    Contao-Fan
    Registriert seit
    10.01.2010.
    Ort
    Kiel
    Beiträge
    372

    Standard

    Hallo cybernaut,

    leider hilft mir das nicht...
    Ich habe statt addWatermark
    Code:
    echo $this->Thumbnify->getWatermarkedThumb($entry['data']['picture']['files']['0'], 600, 600);
    verwendet. Das Bild wird auch in der angegebenen Größer erstellt, nur eben ohne Wasserzeichen. Ich verstehe nicht, wo ich das Bild für das Wasserzeichen definiere. Kann doch eigentlich nicht so schwer sein.

    Übrigens heiße ich Tina und nicht Nina

    Viele Grüße

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. [database.sql Generator] version 1.2.0
    Von BugBuster im Forum Sonstige Erweiterungen
    Antworten: 1
    Letzter Beitrag: 25.10.2010, 23:16
  2. Antworten: 1
    Letzter Beitrag: 02.09.2010, 18:10
  3. Formular-Generator: Problem mit Checkbx-Menü
    Von pod1987 im Forum Layout / Templates / Holy Grail
    Antworten: 2
    Letzter Beitrag: 27.07.2010, 16:05
  4. Extension-Generator
    Von lomex im Forum Entwickler-Fragen
    Antworten: 0
    Letzter Beitrag: 21.09.2009, 10:32
  5. CSS Grid Generator
    Von christian.barkowsky im Forum Off Topic
    Antworten: 0
    Letzter Beitrag: 29.06.2009, 21:59

Berechtigungen

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