Author Topic: [Mod] EXIF V1.7.10 Optional Googlemap  (Read 99185 times)

0 Members and 1 Guest are viewing this topic.

Offline kayddorf

  • Pre-Newbie
  • Posts: 5
    • View Profile
Re: [Mod] EXIF V1.7.10 image_DateTimeOriginal Mysql-Feldformat
« Reply #45 on: June 07, 2013, 08:06:49 PM »
Hallihallo,

erst einmal schönen Dank für diesen prima Mod.

Er funktioniert bei mir fast fehlerfrei, bis auf eine relevantes Detail.

Leider kann ich meine Bilder nicht nach image_DateTimeOriginal sortieren, da entweder das Feldformat in der Tabelle (bei mir varchar, Größe 50, NOT NULL, Sortierung               utf8_general_ci) fehlerhaft oder die Umwandlung der Werte in der functions.php nicht richtig läuft. Oder was ganz anderes :( ?
Die Sortierung nach anderen Exif-Werten funktioniert hingegen problemlos.

Ich benutze 4images 1.711

Hier noch ein paar Angaben zum mysql-Server:

Betriebssystem: SunOS (SunOS localhost 5.10 Generic_139556-08 i86pc)
MySQL-Version: 5.5.31-log
PHP-Version: 5.3.22  Speicher: 104.00 MB   Maximale Ausführungszeit: 30 Sekunden   PHP-Info
PHP-Erweiterungen: Core, date, ereg, libxml, openssl, pcre, sqlite3, zlib, bcmath, bz2, calendar, ctype, curl, dba, dbase, dom, hash, fileinfo, filter, ftp, gd, gettext, SPL, iconv, id3, idn, session, json, lzf, mailparse, mbstring, mcrypt, mssql, mysql, mysqli, pcntl, standard, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, imap, SimpleXML, soap, sockets, SQLite, exif, sysvsem, sysvshm, tidy, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, yats, zip, cgi-fcgi, mhash


Vorab vielen Dank, Kay

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 image_DateTimeOriginal Mysql-Feldformat
« Reply #46 on: June 07, 2013, 09:52:43 PM »
Hi!
... Oder was ganz anderes :( ?...
Das ist kein Fehler.
Das war nie vorgesehen das die Bilder nach irgend welchen EXIF Daten sortiert werden sollen.
In Step 4.) in den Mod siehst du:

        
if ($key == "DateTimeOriginal") {
          
$exif_array[$exif_match[$key]] = preg_replace("/([0-9]{4}):([0-9]{2}):([0-9]{2})/""\\3.\\2.\\1"$exif_info);
        }

Das Datum wird ausgelesen und als Text abgespeichert, das kann man so natürlich nicht sortieren.
Du müßtest das ausgelesene Datum in ein UNIX Zeitformat umwandeln und dann erst in die DB speichern, dann kannst du es sortieren.
Bei der Abfrage dann der umgekehrten weg.

mfg Andi

Offline kayddorf

  • Pre-Newbie
  • Posts: 5
    • View Profile
Re: [Mod] EXIF V1.7.10 Umwandlung Unix Timestamp
« Reply #47 on: June 07, 2013, 11:39:13 PM »
Hallo Andi,

vielen Dank für die Antwort. Ich versuch's mal.
MFG, Kay

P.S.:

8.6.13
Folgendes habe ich ergänzt:

1. Umwandlung des Feldes image_DateTimeOriginal in der mysql-Tabelle:
Code: [Select]
ALTER TABLE `xyz`.`4images_images` CHANGE COLUMN `image_DateTimeOriginal` `image_DateTimeOriginal` INT(11) unsigned NOT NULL DEFAULT '0' , ADD INDEX (`image_DateTimeOriginal`);
Quote
Änderung des exif-Zeitfeldes  image_DateTimeOriginal entsprechend dem image_date-Feld.


2. Suche in der includes/functions.php nach:
$exif_array[$exif_match[$key]] = preg_replace("/([0-9]{4}):([0-9]{2}):([0-9]{2})/""\\3.\\2.\\1"$exif_info);

und ersetze es durch:
//Änderung des exif-Zeitfeldes  image_DateTimeOriginal entsprechend dem image_date-Feld.
         
$exif_array[$exif_match[$key]] = strtotime($exif_info);



3. Suche in der includes/functions.php nach:
"image_date" => format_date($config['date_format']." ".$config['time_format'],$image_row['image_date']),

und füge darüber ein:
//umwandlung des exif-timestamps in lesbaren zeitstempel
    
"image_DateTimeOriginal" => format_date($config['date_format']." ".$config['time_format'],$image_row['image_DateTimeOriginal']),



Bis Schritt 2 funktioniert alles, leider wird der Unix-Timestamp aber im Schritt 3 nicht in ein lesbares Format umgewandelt; auf den Detailansichten der Bilder steht dann z.B. 1329058433.

Hat jemand eine Idee?

Beste Grüße, Kay
« Last Edit: June 08, 2013, 08:26:15 PM by kayddorf »

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Umwandlung Unix Timestamp
« Reply #48 on: June 29, 2013, 05:28:42 AM »
Hi!
....
Bis Schritt 2 funktioniert alles, leider wird der Unix-Timestamp aber im Schritt 3 nicht in ein lesbares Format umgewandelt; auf den Detailansichten der Bilder steht dann z.B. 1329058433.

Hat jemand eine Idee?
....
Schritt drei hast du an  der falschen stelle eingebaut.

suche in den Mod (Step 4.1))):

foreach ($row as $key => $val) {

füge darunter ein:

          
if ($key == "image_DateTimeOriginal") {
              
$val format_date($config['date_format']." ".$config['time_format'], $row->image_DateTimeOriginal), 
          }


sollte funktionieren...

mfg Andi

Offline Ruhrpottjung

  • Newbie
  • *
  • Posts: 14
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #49 on: August 05, 2013, 10:03:48 AM »
Hallo,

irgendwie habe ich nen Fehler, finde diesen aber nicht wirklich. Sobald ich den Code:

includes/functions.php

//############################ Start Google Map #################################
      
$google_map ="";
      
$google_info ="";      
      if ((!empty(
$GPSLongitude)) && (!empty($GPSLatitude))){ 
        
$row_bg_number = ($bgcounter++ % == 0) ? 2;

        
$google_info "
           &nbsp;<a href = 'http://maps.google.de/maps?q=
$GPSLatitude,$GPSLongitude&amp;t=h&amp;ie=UTF8&amp;ll=$GPSLatitude,$GPSLongitude&amp;spn=0.002316,0.005021&amp;z=18&amp;om=1' onclick=\"void(window.open(this.href, '', '')); return false;\">Position in Google Karte öffnen</a>
          <br>
          &nbsp;<a href = 'http://maps.live.com/default.aspx?v=2&amp;cp=
$GPSLatitude~$GPSLongitude&amp;style=h&amp;lvl=17&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;scene=6176719&amp;encType=1' onclick=\"void(window.open(this.href, '', '')); return false;\">Position in Microsoft Live Karte öffnen</a>
          <br>
          &nbsp;<a href = 'http://www.flashearth.com/?lat=
$GPSLatitude&amp;lon=$GPSLongitude&amp;z=15.8&amp;r=0&amp;src=ggl' onclick=\"void(window.open(this.href, '', '')); return false;\">Position in Flash Earth öffnen</a><br>
         "
;

        
$google_map "
          <script type='text/javascript' src='./js/googlemap.js'></script>
            <script type='text/javascript'>
              GPSLatitude = '
$GPSLatitude';
              GPSLongitude = '
$GPSLongitude';
              imagename = '
$image_name';
            </script>
         "
;
     }
           
$site_template->register_vars(array(
        
"google_map" => $google_map,
        
"google_info" => $google_info
      
));
  
//############################ End Google Map ##########################


Einbaue bekomme ich diesen Fehler:

Code: [Select]
Fatal error: Call to a member function register_vars() on a non-object in ......./includes/functions.php on line 478
Wäre schön wenn mir jemand sagen könnte was das verkehrt läuft :(

Danke und Gruß
Hans

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #50 on: August 05, 2013, 05:50:44 PM »
....Wäre schön wenn mir jemand sagen könnte was das verkehrt läuft :(
...
Zip mal deine functions.php

mfg Andi

Offline Ruhrpottjung

  • Newbie
  • *
  • Posts: 14
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #51 on: August 05, 2013, 06:17:02 PM »
Hier mal die gezipte Version. Wenn ich den Teil hinter "**** End Exif ****" wegnehme läuft alles wie es sollte.

Danke schon mal vorweg
Hans

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #52 on: August 05, 2013, 06:29:01 PM »
so, es war an der falschen stelle eingebaut.
da kannst du aber nichts dafür, es liegt an der Einbauanleitung (werde ich ändern).
Die Zeile mit "End Exif" gibt es zwei mal.

mfg Andi

Offline Ruhrpottjung

  • Newbie
  • *
  • Posts: 14
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #53 on: August 05, 2013, 08:54:00 PM »
Sag ich mal ganz lieben Dank für die Hilfe.
Jetzt geht alles so wie es sollte.


Gruß
Hans
« Last Edit: August 05, 2013, 09:07:33 PM by Ruhrpottjung »

Offline senloel

  • Full Member
  • ***
  • Posts: 196
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #54 on: July 26, 2014, 10:25:48 PM »
Hallo Andi,

super MOD!

Ich habe nur ein kleines Problem:

Beim Ausführen der create_exif_data.php gibt er mir bei jedem Bild, dass EXIF-Daten enthält, folgende Fehlermeldung:
DB ErrorBad SQL QueryUPDATE 4images_images SET image_id '1260',image_make 'SONY',image_model 'SLT-A65V',image_exposure '1/250 sec(s)',image_aperture 'F/8',image_isospeed '100',image_datetime '12.06.2014 16:56:24',image_focallen '18mm' WHERE image_id 1260
Unknown column 
'image_exposure' in 'field list'


Das besagte Feld gibt es nicht in der Datenbank, jedoch steht es auch so nirgendwo im Code.
Hast du eine Idee, wo hier der Fehler liegt?

Vielen Dank und Grüße,
Patrick

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #55 on: July 27, 2014, 06:57:36 AM »
Hi!
....
Das besagte Feld gibt es nicht in der Datenbank, jedoch steht es auch so nirgendwo im Code.
Hast du eine Idee, wo hier der Fehler liegt?
....

suche mal in schritt 6.) main.php

mfg Andi

Offline senloel

  • Full Member
  • ***
  • Posts: 196
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #56 on: July 27, 2014, 10:53:13 AM »
Hi Andi,

war wohl gestern schon spät...
Manchmal sollte man einfach aufhören und am nächsten Tag weitermachen.

Hatte die functions.php nicht auf den Server überspielt  :oops: :oops:

Trotzdem vielen Dank für deine Hifle!

Grüße,
Patrick

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #57 on: July 27, 2014, 04:10:05 PM »
ja, das kenn ich :)

Offline senloel

  • Full Member
  • ***
  • Posts: 196
    • View Profile
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #58 on: July 28, 2014, 06:44:47 PM »
Hi Andi,

jetzt bin ich doch noch auf ein Problem gestoßen (was aber nicht an diesem MOD liegt):

Wenn man ein div um die Karte hat, dass auf display:none gesetzt ist, und durch Javascript beim Klick auf einen Button sichtbar gemacht wird, lädt die Karte nicht ordungsgemäß.

Folgender Code wird verwendet:

<div id="show_map_exif" class="hidden">

{if 
google_map}
<
div style="float:left;margin-right:5px;">
  <
table width="100%" border="0" cellspacing="0" cellpadding="1">
	
<
tr>
	
  <
td class="bordercolor"
	
	
<
table width="100%" border="0" cellpadding="3" cellspacing="0">
	
	
  <
tr>
	
	
	
<
td class="head1" valign="top"colspan="2">Google Info: &nbsp;</td>
	
	
  </
tr>
	
	
  <
tr>
	
	
</
table>
	
  </
td>
	
</
tr>
  </
table>
	
	
  
	
	
 
	
<
div id="map_canvas" style="width:500px;height:280px;margin:10px 0px;"></div>
	
{
google_map}

</
div>
{endif 
google_map}
// andere div's


Dazu als CSS:

.hidden displaynone; }
.
unhidden displayblock; } 


Der Javascript-Code sieht folgendermaßen aus:

<script type="text/javascript">
  function 
unhide(divID) {
    var 
item document.getElementById(divID);
    if (
item) {
      
item.className=(item.className=='hidden')?'unhidden':'hidden';
    }
  }
</
script>


Google spuckt dazu eine menge Ergebnisse aus, da es ein bekanntes Problem der Google Maps API ist.
Jedoch weiß ich ehrlich gesagt nicht wirklich, wo man genau etwas am Code ändern muss.

Weißt du vielleicht eine Lösung?

Vielen Dank und Grüße,
Patrick

Rembrandt

  • Guest
Re: [Mod] EXIF V1.7.10 Optional Googlemap
« Reply #59 on: July 29, 2014, 05:31:16 AM »
Ich hatte das gleiche Problem, du musst die Karte verzögert laden lassen.
Erst das Div aufklappen und dann die Karte laden, ich habe das mit einen  "onClick" Event  gelöst:


mfg Andi
« Last Edit: July 31, 2014, 07:09:03 AM by Rembrandt »