Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Oblaten

Pages: [1] 2
1
Chit Chat / Re: Shop Modul
« on: February 12, 2010, 02:06:41 PM »
Hi rinaldos,

Deine Programmierkenntnisse in allen Ehren - aber warum so kompliziert? Ein shopmodul, das über auch nur rudimentäre professionelle Funktionen (Artikelstamm, Kundenstamm, verschiedene Bezahlfunktione, automatische Rechnungserstellung, CSV Datenexport...) verfügt, dürfte länger zu programmieren sein, als ein paar Monate - und vor allem dezidierte Kenntnisse im Ablauf der Bedürfnisse von Stockbildagenturen erfordern - die hier wahrscheinlich die wenigesten haben. Alles andere, wie einfache Paypal-Buttons (hier im Forum als Mod angeboten) bringen GAR NIX, weil z.B. nicht an den rechtlichen Erfordernissen deutscher Shopsysteme orientiert. Ausserdem kauft KEIN professioneller Kunde heutzutage Bilder ein mal über Paypal, das läuft anders.

Mein Alternativvorschlag: Eine ordentliche Schnittstelle für das Magento-System = modernes, professionelles Shopsystem programmieren!

Vereinfacht gesagt, kann das so funktionieren: Übergabe der eindeutigen Bildnummer oder Bild-ID aus 4images an einen Magento-Shop und dort dann alle Funktionen dieses Systems nutzen. (etwas komplizierter ist es schon, ich weiss)
Auf diese Weise wird 4images um ein professionelles Shopsystem erweitert und kann sich auf seine Kernfunktionen konzentrieren: die Präsentation von Bildern als Bildergalerie.

Gruss Oblaten


2
Hello again,

I found a surprisingly good php script that seems do do the job nearly ready to use.
Actually I have no time to test it, but here is the link to the script for all who are interested:

http://www.ozhiker.com/electronics/pjmt/

- Oblaten


3
Discussion & Troubleshooting / Re: Using Lightbox_id
« on: June 01, 2009, 01:09:34 PM »
Eine ID ist dazu da, ein Objekt eindeutig zu identifizieren (unabhängig von anderen Variablen).

V@no - Wenn man Dein [MOD] Multi-Lightboxes benutzt, ist eine Lightbox nicht mehr eindeutig über die user ID zu identifizieren, sondern nur über die Lightbox ID - also gut, dass es die gibt :)

edit - Sorry: here in english: the ID is there for idetifying an object independent of other variables. V@no - If one uses your [MOD] Multi-Lightboxes a unique lightbox is not identifyable through the user-id but the lightbox-id - so good that we have it :)

- Oblaten

4
Hi Andi,

habe Deiner Nachricht erst jetzt gelesen & versucht Dir eine PM mit 2 Bildern zu senden - irgendwie hat das nicht funktioniert.
Hmm, das Problem mit den Metadaten in Bildern ist ausgesprochen komplex, wie sich herausstellt...
Wenn Du die Bilder anschauen möchtest, schick mir bitte Deine Emailadresse.

Grüsse

- Oblaten

5
Hi Andi,

gute Idee. wordmatch Tabelle gelert und dann Rebuild laufen lassen. Leider kommt immer noch:

Processing image BW 6082, ID 2477 ...
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match, caption_match, caption_writer_match, headline_match, special_instructions_match, byline_match, byline_title_match, credit_match, source_match, object_name_match, date_created_match, city_match, state_match, country_match, original_transmission_reference_match, category_match, supplemental_category_match, keyword_match, copyright_notice_match) SELECT DISTINCT 2477, word_id, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 FROM 4images_wordlist WHERE word_text = 'orleans'
Duplicate entry '2477-15515' for key 1
OK

Aber: am Ende sagt er OK - und wenn ich nach den Worten Suche, findet er sie auch.
Irgendein Murks ist tatsächlich da drinnen - allerdings kann ich den beim besten Willen nicht nachvollziehen, da diese Bilder sauber (komplett ohne sprachspezifische- oder Sonderzeichen) verschlagwortet sind.

Mein Resümee: so lange das mod alles oderntlich in die DB einträgt und dann danach gesucht werden kann, darf es beim Einlesen meckern.

Ich werde weiterhin beobachten, was passiert und ggf Rückmeldung geben, wenn mir etwas Neues mit Deinem SEHR hilfreichen mod begegnet.

Erst mal vielen Dank an Dich, Andi, für Deine Zeit & Deine Tips und ganz besonders für die Update IPTC Index, die das Leben viel leicheter macht!

Grüsse

- Oblaten

6
Danke für Deinen Tip.

Kontrolliert: die Einträge in der DB und der search_utils.php sind gleich & haben gleiche Reihenfolge.

Nachdem ich nun die mir bekannten Sonderzeichen wie : ' « » aus allen Bildern entfernt habe & alles noch mal laufen lasse, kommt KEINE Fehlermeldung mehr bei der Update_IPTC_Index.

Lass ich danach die Rebuild Search Index laufen kommen Fehlermeldungen wie:

Processing image BW 6195, ID 1834 ...
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match, caption_match, caption_writer_match, headline_match, special_instructions_match, byline_match, byline_title_match, credit_match, source_match, object_name_match, date_created_match, city_match, state_match, country_match, original_transmission_reference_match, category_match, supplemental_category_match, keyword_match, copyright_notice_match)
SELECT DISTINCT 1834, word_id, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 FROM 4images_wordlist WHERE word_text = 'françois'
Duplicate entry '1834-12533' for key 1
OK

und zwar bei Bildern mit folgenden Worten in der Caption:

word_text = 'neuchâtel'
word_text = 'napoléons'
word_text = 'département'
word_text = 'zrínyi'
word_text = 'davoût'
word_text = 'étienne'
word_text = 'ámos'
word_text = 'aragò'
word_text = 'jókai'
word_text = 'linné'
word_text = 'råshult'

allerdings auch bei Captionworten wie (die keine fremdsprachigen Sonderzeichen enthalten):

word_text = 'luis'
word_text = 'camoes'
word_text = 'massena'
word_text = 'leopold'
word_text = 'orleans'
word_text = 'abbe'
word_text = 'siecle'

Suche ich nach Worten mit fremdsprachigen Sonderzeichen (zB råshult) auf der HP werden sie/die Bilder gefunden, und korrekt angezeigt (habe ja Deine Variablen zur Anzeige in der details.html eingebunden).

Resume: das Mod scheint zwar zu meckern, macht aber wohl doch das Richtige ?

Zur Rebuild Search Index:

1) Verhalten OHNE Rebuild Search Index (also nur mit Update_IPTC_Index): ich kann die Daten zwar auf der HP auf der details.html sehen, aber gebe ich neu hinzugekommene Captionworte oder Keywords in die Suchmaske ein, werden diese nicht gefunden.
2) Verhalten MIT Rebuild Search Index: Daten werden bei Suche auch gefunden.
-> das Ganze habe ich 2x getestet.

Grüsse

- Oblaten

7
Die Fehlermeldung beim Laufenlassen der Rebuild Searchindex nach Update IPTC Index sieht übrigens so aus:

Processing image BW 6251, ID 1887 ...
DB Error: Bad SQL Query: INSERT INTO 4images_wordmatch (image_id, word_id, name_match, desc_match, keys_match, object_name_match, headline_match, caption_match, keyword_match, caption_writer_match, special_instructions_match, byline_match, byline_title_match, credit_match, source_match, date_created_match, city_match, state_match, country_match, original_transmission_reference_match, category_match, supplemental_category_match, copyright_notice_match) SELECT DISTINCT 1887, word_id, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 FROM 4images_wordlist WHERE word_text = 'département'
Duplicate entry '1887-12963' for key 1
OK

- Oblaten

8
Hi Andi,

ich konnte das Problem weiter eingrenzen & wahrscheinlich hat es weniger mit dem Verschlagwortungs-Programm zu tun, als viel mehr damit, woher die Texte kommen / wie das Textformat ist:

Ja - Du hast Recht: Hochkommata ala " werden akzeptiert.

Bei mir sind es die Anführungzeichen, die folgendermassen aussehen: «Text.» die nicht akzeptiert werden.
Allerdings eben auch teilweise Doppelpunkt : .

Nachdem ich nun mit einem anderen Programm die Metadaten überprüft habe, erhielt ich folgende Fehlermeldung:
Malformed UTF-8 characters(s)

Aha! Bei dieser Caption weiss ich, woher der Text kommt: er war von einer deutschen html Seite kopiert (ein kurzer Spruch von anno Schnuck).

Es scheint also so zu sein, dass Dein mod / 4images und eigentlich: die MySQL Datenbank (wie Du schon vermutetest) prinzipiell UTF-8 characters erwartet. Der Caption-Text ist jedoch Windows Latin1 kodiert. Das Problem tritt eigentlich immer bei irgentwelchen Sprach - Sonderzeichen auf. Wenn man ausschliesslich selbst verschlagwortet, kann man das Problem lösen, indem man am besten überhaupt keine Sonderzeichen verwendet (wie ich es schon seit einiger Zeit tue).

Problematisch wird es, wenn man auch Bilder anderer Personen in der DB speichert, die auch noch länder-/sprachenspezifische Zeichen in ihren Texten haben - wie es wohl bei vielen Personen geschieht, die andere Bilder uploaden lassen (zB bei den meisten RF Bildplattform).
-> das auch zu Deinem Kommentar: "...wenn man mit 255 zeichen es nicht schafft ein bild zu beschreibung dann hat man das thema verfehlt..." -> Da hast Du Recht - nur haben eben viele Personen, die eine 4images Plattform nutzen nicht nur mit selbst verschlagworteten Bildern zu tun und müssen mit dem, was andere liefern, umgehen.

Hmm... eben fällt mir auf: die von 4images selbst angelegten DB-Tabellen für Caption und Keywords scheinen dieses Problem irgendwie gelöst zu haben, denn da treten diese Fehlermeldungen nicht auf (nur bei Apostropen).

Grüsse

- Oblaten

9
Hi Andi,

ja, das das ein Problem von msql sein könnte, habe ich auch gedacht - und aus diesem Grund die DB Tabellen für die Daten Deines Mods so formatiert, wie die entsprechenden Tabellen der 4images Einträge für {image_description} {image_keywords}. Aber das hat nichts geändert. Wahrscheinlich hat 4images irgendwo in den Tiefen auch etwas zum Umgang mit Satz/Sonderzeichen/UTF für bestimmte Variablen einprogrammiert.

Guss

- Oblaten

10
Hi Andi,

Dein mod funktioniert sehr gut! Auch die Update IPTC Index. (nachdem ich darauf gekommen bin, dass danach noch die Rebuild Searchindex einmal laufen muss, damit die neuen Einträge auch gefunden werden können :))

Nachdem ich nun in meiner details.html Deine Variablen {image_caption} {image_keyword} eingebaut habe, kann ich die Daten aus den zum mod gehörenden Datenbanktabellen auch auf der HP sehen. Danach habe ich die DB Tabellen `image_caption` VARCHAR( 255 ) und `image_keyword` VARCHAR( 255 ) in Textfelder umgewandelt / vergössert, damit auch alle daten übernommen werden (255 ist bischen klein, für die Grössen gibt es übrigens auch IPTC Normen).

Aus meiner Sicht macht es keinen Sinn die IPTC Daten 2mal in der DB stehen zu haben und nur einen Datensatz (eben mit Deinem Mod) im batch aktualisieren zu können: also entwerder IPTC-Import durch 4images (wobei geänderte Metadaten in den Originalbildern immer manuell aktualisiert werden müssen) oder Dein Mod mit Updatemöglichkeit. Ich präferiere letzteres, allerdings:

Einiges ist mir aufgefallen:

1) Die Keywords sind leider nicht so schön verlinkt wie in den standard 4images Feldern/Variablen. (OK damit kann ich leben)

2) lasse ich die Update IPTC Index über den gesamten Datenbestand laufen gibt es bei einigen Bildern Fehlermeldungen -> Duplicate entries... (wurde hier im thread auch schon erwähnt), ich konnte leider noch nicht feststellen, was da genau falsch läuft.

3) Bei einigen Bildern werden die IPTC Einträge nicht vollständig übernommen. Bei näherer Betrachtung der Bilder -> diese Bilder enthalten Satzzeichen wie z.B. Doppelpunkt : oder Anführungszeichen ". Ist zB ein : im Capriontext, wird der Datenbankeintrag danach abgeschnitten, der Rest des Textes danach wird also nicht in die DB geschrieben (und ist folglich nicht suchbar) -> bei den Standarteintägen für Caption und Keywords von 4images tritt dieses Verhalten ausschliesslich bei Apostrophen auf, alle anderen Zeichen und die Texte danach werden übernommen. (auch in diesen Thread gab es Beiträge zu merkwürdigem Verhalten bei der IPTC übernahme, die, wie ich vermute, auf eben diese Satzzeichen in den IPTC Daten  zurückzuführen sind). Vermutlich tritt dieses Verhalten auch bei Sonderzeichen auf. Nachdem ich mir die Metadaten der abgeschnittenen DB Einträge noch mal angeschaut habe, zeigte sich, dass einige, nicht alle dieser Einträge wohl in UTF und nicht in ANSI kodiert sind, das könnte es also auch sein (das wäre dann abhängig vom Programm, mit dem die IPTC Einträge erzeugt sind). Solche Einträge werden nebenbei von anderen Programmen wie IrfanView korrekt angezeigt. Es ist also nicht leicht im Vorfeld festzustellen, ob IPTC-Einträge mit Deinem Mod kompatibel sind.

Hast Du eine Idee, wie man das Problem mit den der fehlenden Datenübernahme nach Satzzeichen oder bei UTF kodierten Daten in den Griff bekommen kann?

- Oblaten

11
OK Rembrandt - danke für die Info.

Ich hatte nach Einbau Deines mods einige Änderungen gemacht, da 4images ja selbst auch Schlagworte darstellt - ich muss jetzt nachschauen, was ich wo geändert hatte. Ich glaube ich habe die details.html geändert, so dass Metadaten nur einmal angezeigt werden - wie sich jetzt zeigt, habe ich wohl die Anzeige der iptc Daten Deines mods "ausgeschaltet" - dann kann ja auch nichts sichtbar sein. Schaue mir auch noch mal die iptc_bit.html an.

Melde mich wieder.

- Oblaten

12
OK - hier das feedback:

Es tut sich schon etwas, allerdings noch nicht das, was soll.

Test 1:

1) zip entpackt & update_iptc_index.php in den Ordner plugins geladen -> im Admin bereich ist nun das Plugin sichtbar.

2) In Testordner mit Bildern, deren IPTC Daten bereits in der 4images DB eingetragen sind die Bilder noch einmal (gleiche Namen) OHNE IPTC Daten hochgeladen und überschrieben (nach Duchführung des Pugins sollten dann KEINE IPTC Infos mehr auf der HP zu sehen sein)

3) Im Admin Bereich Update_IPTC_Index durchgeführt -> man sieht, dass das Plugin arbeitet alle Bilder ab - bei den Bildern ohne iptc daten kommt auch eine Meldung, dass keine vorhanden sind.

4) HP Seite neu geladen -> Resultat: alles wie vorher, die iptc Infos der neu hochgeladenen Bilder sind immer noch eingetragen und sichtbar.

Test 2:

4) neue / andere IPTC Daten in die Testbilder geschrieben (um zu gucken, ob evtl. nur bei vorhandenen Einträgen geändert wird)

5) Bilder hochgeladen & alte (leere iptc) Bilder überschrieben

6) 3) Im Admin Bereich Update_IPTC_Index durchgeführt -> man sieht, dass das Plugin arbeitet alle Bilder ab.

7)  Seite neu geladen -> Resultat: alles wie vorher, die iptc Infos derursprünglichen Bilder sind immer noch eingetragen und sichtbar.

Ergebnis: keine Änderung der IPTC - Informationen in der DB.

Habe ich etwas falsch gemacht?

- Oblaten

13
Rembrandt!

YOU MAKE MY DAY!
Echt spitze - Vielen Dank!

Werde die neue Update IPTC Index nachher installieren und Dir dann Rückmeldung geben.

Bis dahin beste Grüsse

-Oblaten

PS: ich wollte mich nicht bei Dir beschweren, aber mit der Erweiterung jetzt ist Dein super mod eben noch viel hilfreicher.

14
Hi,

I'm using different mods which are all work fine in 4images 1.7.6 (e.g. IPTC V.1.7.6 Suchfelder erweiterung by Rembrandt or [MOD] Batch Copy/Move/Edit Images by V@no) and are a BIG help (thank you guys!).

What is missing is a mod or plugin for writing iptc data created with 4images INTO images (also automatically into cropped od copied images). Right now all modifications of metadata are written into the database, which works fine for all the images stored within 4images. But if you download one or more images that was purely keyworded in 4images it has no metadata in it. Thats a pitty. I know that GD Library by default deletes all metadata when cropping an image or creating thumbnails. But there should be a possibility to write these database entries into jpg via php.

I looked into the net and found at http://de.php.net/function.iptcembed :
Code: [Select]
<?

    /************************************************************\
   
        IPTC EASY 1.0 - IPTC data manipulator for JPEG images
           
        All reserved www.image-host-script.com
       
        Sep 15, 2008
   
    \************************************************************/

    DEFINE('IPTC_OBJECT_NAME', '005');
    DEFINE('IPTC_EDIT_STATUS', '007');
    DEFINE('IPTC_PRIORITY', '010');
    DEFINE('IPTC_CATEGORY', '015');
    DEFINE('IPTC_SUPPLEMENTAL_CATEGORY', '020');
    DEFINE('IPTC_FIXTURE_IDENTIFIER', '022');
    DEFINE('IPTC_KEYWORDS', '025');
    DEFINE('IPTC_RELEASE_DATE', '030');
    DEFINE('IPTC_RELEASE_TIME', '035');
    DEFINE('IPTC_SPECIAL_INSTRUCTIONS', '040');
    DEFINE('IPTC_REFERENCE_SERVICE', '045');
    DEFINE('IPTC_REFERENCE_DATE', '047');
    DEFINE('IPTC_REFERENCE_NUMBER', '050');
    DEFINE('IPTC_CREATED_DATE', '055');
    DEFINE('IPTC_CREATED_TIME', '060');
    DEFINE('IPTC_ORIGINATING_PROGRAM', '065');
    DEFINE('IPTC_PROGRAM_VERSION', '070');
    DEFINE('IPTC_OBJECT_CYCLE', '075');
    DEFINE('IPTC_BYLINE', '080');
    DEFINE('IPTC_BYLINE_TITLE', '085');
    DEFINE('IPTC_CITY', '090');
    DEFINE('IPTC_PROVINCE_STATE', '095');
    DEFINE('IPTC_COUNTRY_CODE', '100');
    DEFINE('IPTC_COUNTRY', '101');
    DEFINE('IPTC_ORIGINAL_TRANSMISSION_REFERENCE',     '103');
    DEFINE('IPTC_HEADLINE', '105');
    DEFINE('IPTC_CREDIT', '110');
    DEFINE('IPTC_SOURCE', '115');
    DEFINE('IPTC_COPYRIGHT_STRING', '116');
    DEFINE('IPTC_CAPTION', '120');
    DEFINE('IPTC_LOCAL_CAPTION', '121');

    class iptc {
        var $meta=Array();
        var $hasmeta=false;
        var $file=false;
       
       
        function iptc($filename) {
            $size = getimagesize($filename,$info);
            $this->hasmeta = isset($info["APP13"]);
            if($this->hasmeta)
                $this->meta = iptcparse ($info["APP13"]);
            $this->file = $filename;
        }
        function set($tag, $data) {
            $this->meta ["2#$tag"]= Array( $data );
            $this->hasmeta=true;
        }
        function get($tag) {
            return isset($this->meta["2#$tag"]) ? $this->meta["2#$tag"][0] : false;
        }
       
        function dump() {
            print_r($this->meta);
        }
        function binary() {
            $iptc_new = '';
            foreach (array_keys($this->meta) as $s) {
                $tag = str_replace("2#", "", $s);
                $iptc_new .= $this->iptc_maketag(2, $tag, $this->meta[$s][0]);
            }       
            return $iptc_new;   
        }
        function iptc_maketag($rec,$dat,$val) {
            $len = strlen($val);
            if ($len < 0x8000) {
                   return chr(0x1c).chr($rec).chr($dat).
                   chr($len >> 8).
                   chr($len & 0xff).
                   $val;
            } else {
                   return chr(0x1c).chr($rec).chr($dat).
                   chr(0x80).chr(0x04).
                   chr(($len >> 24) & 0xff).
                   chr(($len >> 16) & 0xff).
                   chr(($len >> 8 ) & 0xff).
                   chr(($len ) & 0xff).
                   $val;
                 
            }
        }   
        function write() {
            if(!function_exists('iptcembed')) return false;
            $mode = 0;
            $content = iptcembed($this->binary(), $this->file, $mode);   
            $filename = $this->file;
               
            @unlink($filename); #delete if exists
           
            $fp = fopen($filename, "w");
            fwrite($fp, $content);
            fclose($fp);
        }   
       
        #requires GD library installed
        function removeAllTags() {
            $this->hasmeta=false;
            $this->meta=Array();
            $img = imagecreatefromstring(implode(file($this->file)));
            @unlink($this->file); #delete if exists
            imagejpeg($img,$this->file,100);
        }
    };
   
   
?>

Example read copyright string:

$i = new iptc("test.jpg");
echo $i->get(IPTC_COPYRIGHT_STRING);

Update copyright statement:
$i = new iptc("test.jpg");
echo $i->set(IPTC_COPYRIGHT_STRING,"Here goes the new data");
$i->write();

NOTE1: Data may be anything, even a binary file. I have so far tested and embedded an MS-Excel file directly to jpeg and it worked just perfect.

NOTE2: The writing purpose, it uses GD Library.

As you see this code works with GD Library which is already part of 4images. Fine. My programming knowledge is less. Not fine. Maybe someone has better php knowledge than me and can create such mod.

- Oblaten

15
Hi Rembrandt,

gute Frage. Weil z.B. bei 60 neu hochgeladenen Bildern in 5 verschiedenen Kategorien / Unterkategorien der Aufwand ganz schön gross ist: 1. Bilder auf dem Server suchen & löschen  dann 2. verweiste Einträge mit Rufzeichen in der DB suchen & Löschen dann 3. Bilder in die richtigen! 5 neuen Ordner wieder hochladen dann 4. Bilder neu einlesen.

Oder alternativ: 1) Bilder einzeln nach Namen in der DB suchen und löschen (bei 60 Bildern sind das eben 60 x suchen und löschen!) dann 2) Bilder in die richtigen! 5 neuen Ordner wieder hochladen dann 3) Bilder neu einlesen.

Einfacher ist: 1) Bilder per FTP überschreiben mit neuen Bildern 2) IPTC Index und Rebuild Search Index, die immer die aktuelen IPTC Daten in die DB schreiben (& die alten vorher löschen).

So könnte man auch schon mal Bilder zeigen, die noch nicht perfekt verschlagwortet sind, weil man das offline nachholen und dann nachträglich ohne viel Aufwand ändern kann.

Jetzt ist es doch so: die IPTC Daten die IN den Bildern stehen, die in 4images eingepflegt sind, können nachträglich nur mit viel Aufwand in 4images geändert werden. Wer IPTC nutzt, hat aber meist ein eigenes Programm zum Verschlagworten mit z.B. einem eigenen Thesaurus, den man mit der Zeit erweitert und verbessert. Da kommt es oft vor, dass auch bereits verschlagwortete Bilder mit neuen Keywords oder Kategorien versehen werden. Die kann man derzeit nur mit Sisiphusarbeit in 4images reinbringen.

Wenn man bedenkt, dass IPTC Exif oder XMP genauso wichtig wie die Bilder selbst sind (ohne die kann kein Bild gefunden werden), dann wäre das eben eine sehr grosse Verbesserung von 4images.

- Oblaten

Pages: [1] 2