NextGEN Gallery – WordPress Gallery Plugin - Version 0.74

Version Description

Download this release

Release Info

Developer alexrabe
Plugin Icon 128x128 NextGEN Gallery – WordPress Gallery Plugin
Version 0.74
Comparing to
See all releases

Code changes from version 0.73 to 0.74

admin/about.php CHANGED
@@ -128,7 +128,14 @@ function ngg_list_support() {
128
  "Michael Erhart" => "",
129
  "Luc Saint-Elie" => "http://luc.saint-elie.com/",
130
  "Matthew Barker" => "",
131
- "Anthony (Chinese Translation)" => "http://www.angryouth.com/"
 
 
 
 
 
 
 
132
  );
133
 
134
 
128
  "Michael Erhart" => "",
129
  "Luc Saint-Elie" => "http://luc.saint-elie.com/",
130
  "Matthew Barker" => "",
131
+ "Anthony (Chinese Translation)" => "http://www.angryouth.com/",
132
+ "Milan Va��cek (Czech Translation)" => "http://www.NoWorkTeam.cz/",
133
+ "Joo Gi-young (Korean Translation)" => "http://lombric.linuxstudy.pe.kr/wp/",
134
+ "Emanuel Kluge" => "",
135
+ "Alba Bentos Pereira" => "",
136
+ "Oleg A. Safonov (Russian Translation)" => "http://blog.olart.ru",
137
+ "Bill Babcock" => "http://www.bnj.com",
138
+ "Jesper Haug Karsrud" => "http://www.beyond-sanity.com"
139
  );
140
 
141
 
admin/manage.php CHANGED
@@ -543,7 +543,7 @@ function getNumChecked(form)
543
  <?php } else {?>
544
  <th scope="col" style="width:70%"><?php _e('Tags (comma separated list)', 'nggallery') ?></th>
545
  <?php } ?>
546
- <th scope="col" colspan="2" style="text-align: center"><?php _e('Action') ?></th>
547
  </tr>
548
  </thead>
549
  <tbody>
@@ -575,6 +575,7 @@ if($picturelist) {
575
  <td ><input name="tags[<?php echo $pid ?>]" type="text" style="width:95%" value="<?php echo $nggTags->get_tags_from_image($pid); ?>" /></td>
576
  <?php } ?>
577
  <td><a href="<?php echo $act_gallery_url.$picture->filename ?>" class="thickbox" title="<?php echo $picture->alttext ?>" ><?php _e('View') ?></a></td>
 
578
  <td><a href="<?php echo wp_nonce_url("admin.php?page=nggallery-manage-gallery&amp;mode=delpic&amp;gid=".$act_gid."&amp;pid=".$pid, 'ngg_delpicture')?>" class="delete" onclick="javascript:check=confirm( '<?php _e("Delete this file ?",'nggallery')?>');if(check==false) return false;" ><?php _e('Delete') ?></a></td>
579
  </tr>
580
  <?php
543
  <?php } else {?>
544
  <th scope="col" style="width:70%"><?php _e('Tags (comma separated list)', 'nggallery') ?></th>
545
  <?php } ?>
546
+ <th scope="col" colspan="3" style="text-align: center"><?php _e('Action') ?></th>
547
  </tr>
548
  </thead>
549
  <tbody>
575
  <td ><input name="tags[<?php echo $pid ?>]" type="text" style="width:95%" value="<?php echo $nggTags->get_tags_from_image($pid); ?>" /></td>
576
  <?php } ?>
577
  <td><a href="<?php echo $act_gallery_url.$picture->filename ?>" class="thickbox" title="<?php echo $picture->alttext ?>" ><?php _e('View') ?></a></td>
578
+ <td><a href="<?php echo NGGALLERY_URLPATH."admin/showmeta.php?id=".$pid ?>" class="thickbox" title="<?php _e("Show Meta data",'nggallery')?>" ><?php _e('Meta') ?></a></td>
579
  <td><a href="<?php echo wp_nonce_url("admin.php?page=nggallery-manage-gallery&amp;mode=delpic&amp;gid=".$act_gid."&amp;pid=".$pid, 'ngg_delpicture')?>" class="delete" onclick="javascript:check=confirm( '<?php _e("Delete this file ?",'nggallery')?>');if(check==false) return false;" ><?php _e('Delete') ?></a></td>
580
  </tr>
581
  <?php
admin/showmeta.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ require_once(realpath("../../../../wp-config.php"));
4
+ require_once(NGGALLERY_ABSPATH.'/lib/nggmeta.lib.php');
5
+
6
+ if ( !is_user_logged_in() )
7
+ die(__('Cheatin&#8217; uh?'));
8
+
9
+ if ( !current_user_can('NextGEN Manage gallery') )
10
+ die(__('Cheatin&#8217; uh?'));
11
+
12
+ function get_out_now() { exit; }
13
+ add_action( 'shutdown', 'get_out_now', -1 );
14
+
15
+ global $wpdb;
16
+
17
+ $id = (int) $_GET['id'];
18
+ // let's get the image data
19
+ $picture = new nggImage($id );
20
+ // let's get the meta data'
21
+ $meta = new nggMeta($picture->absPath);
22
+ $exifdata = $meta->get_EXIF();
23
+ $iptcdata = $meta->get_IPTC();
24
+ $xmpdata = $meta->get_XMP();
25
+
26
+ ?>
27
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
28
+ <html xmlns="http://www.w3.org/1999/xhtml">
29
+ <head>
30
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
31
+ <link rel="stylesheet" href="<?php echo get_option( 'siteurl' ) ?>/wp-admin/wp-admin.css?version=<?php bloginfo('version'); ?>" type="text/css" />
32
+ <style type="text/css">
33
+ #TB_title{
34
+ background-color:#E5F3FF !important;
35
+ }
36
+ </style>
37
+ </head>
38
+ <body class="wp-admin">
39
+
40
+ <!-- EXIF DATA -->
41
+ <fieldset class="options nggallery">
42
+ <legend><?php _e('EXIF Data','nggallery'); ?></legend>
43
+ <?php if ($exifdata) { ?>
44
+ <table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
45
+ <thead>
46
+ <tr>
47
+ <th scope="col"><?php _e('Tag','nggallery'); ?></th>
48
+ <th scope="col"><?php _e('Value','nggallery'); ?></th>
49
+ </tr>
50
+ </thead>
51
+ <?php
52
+ foreach ($exifdata as $key => $value){
53
+ $class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
54
+ echo '<tr '.$class.'>
55
+ <td style="width:230px">'.$meta->i8n_name($key).'</td>
56
+ <td>'.$value.'</td>
57
+ </tr>';
58
+ }
59
+ ?>
60
+ </table>
61
+ <?php } else echo "<strong>". __('No exif data','nggallery'). "</strong>"; ?>
62
+ </fieldset>
63
+
64
+ <!-- IPTC DATA -->
65
+ <?php if ($iptcdata) { ?>
66
+ <fieldset class="options nggallery">
67
+ <legend><?php _e('IPTC Data','nggallery'); ?></legend>
68
+ <table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
69
+ <thead>
70
+ <tr>
71
+ <th scope="col"><?php _e('Tag','nggallery'); ?></th>
72
+ <th scope="col"><?php _e('Value','nggallery'); ?></th>
73
+ </tr>
74
+ </thead>
75
+ <?php
76
+ foreach ($iptcdata as $key => $value){
77
+ $class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
78
+ echo '<tr '.$class.'>
79
+ <td style="width:230px">'.$meta->i8n_name($key).'</td>
80
+ <td>'.$value.'</td>
81
+ </tr>';
82
+ }
83
+ ?>
84
+ </table>
85
+ </fieldset>
86
+ <?php } ?>
87
+
88
+ <!-- XMP DATA -->
89
+ <?php if ($xmpdata) { ?>
90
+ <fieldset class="options nggallery">
91
+ <legend><?php _e('XMP Data','nggallery'); ?></legend>
92
+ <table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
93
+ <thead>
94
+ <tr>
95
+ <th scope="col"><?php _e('Tag','nggallery'); ?></th>
96
+ <th scope="col"><?php _e('Value','nggallery'); ?></th>
97
+ </tr>
98
+ </thead>
99
+ <?php
100
+ foreach ($xmpdata as $key => $value){
101
+ $class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
102
+ echo '<tr '.$class.'>
103
+ <td style="width:230px">'.$meta->i8n_name($key).'</td>
104
+ <td>'.$value.'</td>
105
+ </tr>';
106
+ }
107
+ ?>
108
+ </table>
109
+ </fieldset>
110
+ <?php } ?>
111
+
112
+ </body>
113
+ </html>
114
+ <?php
115
+
116
+ ?>
changelog.txt CHANGED
@@ -1,6 +1,9 @@
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
 
 
 
4
  V0.73 - 20.10.2007
5
  - Added : Support for Shutter Reloaded
6
  - Update to jQuery Tabs 2.7.4
1
  NextGEN Gallery
2
  by Alex Rabe & NextGEN DEV Team
3
 
4
+ V0.74 - 01.12.2007
5
+ - NEW : Added meta reader class, first step to integrated meta data import
6
+
7
  V0.73 - 20.10.2007
8
  - Added : Support for Shutter Reloaded
9
  - Update to jQuery Tabs 2.7.4
css/{ngg_dKret2.css → ngg_dkret3.css} RENAMED
@@ -1,269 +1,278 @@
1
- /*
2
- CSS Name: DKret2 Styles
3
- Description: NextGEN dKret2 Gallery Stylesheet
4
- Author: J. Kretzschmar
5
- Version: 1.22
6
-
7
- This is a template stylesheet that can be used with NextGEN Gallery. I tested the
8
- styles with the dKret2 theme.
9
-
10
- */
11
-
12
- /* ----------- Album Styles Extend -------------*/
13
-
14
- .ngg-albumoverview {
15
- margin-top: 10px;
16
- width: 100%;
17
- clear:both;
18
- display:block !important;
19
- }
20
-
21
- .ngg-album {
22
- overflow: hidden;
23
- padding: 5px;
24
- margin-bottom: 5px;
25
- border: 1px solid #cccccc;
26
- }
27
-
28
- .ngg-albumtitle {
29
- text-align: left;
30
- font-weight: bold;
31
- margin:0px;
32
- padding:0px;
33
- font-size: 1.4em;
34
- margin-bottom: 10px;
35
- }
36
-
37
- .ngg-thumbnail {
38
- float: left;
39
- margin-right: 12px;
40
- }
41
-
42
- .ngg-thumbnail img {
43
- background-color:#FFFFFF;
44
- border:1px solid #A9A9A9;
45
- margin:4px 0px 4px 5px;
46
- padding:4px;
47
- position:relative;
48
- }
49
-
50
- .ngg-thumbnail img:hover {
51
- background-color: #A9A9A9;
52
- }
53
-
54
- .ngg-description {
55
- text-align: left;
56
- }
57
-
58
- /* ----------- Album Styles Compact -------------*/
59
-
60
- .ngg-album-compact {
61
- float:left;
62
- height:180px;
63
- padding-right:6px !important;
64
- margin:0px !important;
65
- text-align:left;
66
- width:120px;
67
- }
68
-
69
- .ngg-album-compactbox {
70
- background:transparent url(albumset.gif) no-repeat scroll 0%;
71
- height:86px;
72
- margin:0pt 0pt 6px !important;
73
- padding:12px 0pt 0pt 7px !important;
74
- width:120px;
75
- }
76
-
77
-
78
- .ngg-album-compactbox .Thumb {
79
- border:1px solid #000000;
80
- margin:0px !important;
81
- padding:0px !important;
82
- }
83
-
84
- .ngg-album-compact h4 {
85
- font-size:15px;
86
- font-weight:bold;
87
- margin-bottom:0px;
88
- margin-top:0px;
89
- width:110px;
90
- }
91
-
92
- .ngg-album-compact p {
93
- font-size:11px;
94
- margin-top:2px;
95
- }
96
-
97
- /* ----------- Gallery style -------------*/
98
-
99
- .ngg-galleryoverview {
100
- overflow: hidden;
101
- margin-top: 10px;
102
- width: 100%;
103
- clear:both;
104
- display:block !important;
105
- }
106
-
107
- .ngg-gallery-thumbnail-box {
108
- float: left;
109
- }
110
-
111
- .ngg-gallery-thumbnail {
112
- float: left;
113
- margin-right: 5px;
114
- }
115
-
116
- .ngg-gallery-thumbnail img {
117
- background-color:#FFFFFF;
118
- border:1px solid #A9A9A9;
119
- display:block;
120
- margin:4px 0px 4px 5px;
121
- padding:4px;
122
- position:relative;
123
- }
124
-
125
- .ngg-gallery-thumbnail img:hover {
126
- background-color: #A9A9A9;
127
- }
128
-
129
- .ngg-gallery-thumbnail span {
130
- /* Images description */
131
- font-size:90%;
132
- padding-left:5px;
133
- display:block;
134
- }
135
-
136
- .ngg-clear {
137
- clear: both;
138
- }
139
-
140
- /* ----------- Gallery navigation -------------*/
141
-
142
- .ngg-navigation {
143
- font-size:0.9em !important;
144
- clear:both !important;
145
- display:block !important;
146
- padding-top:15px;
147
- text-align:center;
148
-
149
- }
150
-
151
- .ngg-navigation span {
152
- font-weight:bold;
153
- margin:0pt 6px;
154
- }
155
-
156
- .ngg-navigation a.page-numbers, a.next, a.prev,
157
- span.page-numbers, span.next, span.prev {
158
- border:1px solid #DDDDDD;
159
- margin-right:3px;
160
- padding:3px 7px;
161
- text-decoration: none;
162
- }
163
-
164
- .ngg-navigation a.page-numbers:hover, a.next:hover, a.prev:hover,
165
- span.page-numbers:hover, span.next:hover, span.prev:hover {
166
- background-color: #0066CC;
167
- color: #FFFFFF !important;
168
- text-decoration: none !important;
169
- }
170
-
171
- /* ----------- Image browser style -------------*/
172
-
173
- .ngg-imagebrowser {
174
-
175
- }
176
-
177
- .ngg-imagebrowser h3 {
178
- text-align:center;
179
- }
180
-
181
- .ngg-imagebrowser img {
182
- border:1px solid #A9A9A9;
183
- margin-top: 10px;
184
- margin-bottom: 10px;
185
- width: 100%;
186
- display:block !important;
187
- padding:5px;
188
- }
189
-
190
- .ngg-imagebrowser-nav {
191
- padding:5px;
192
- margin-left:10px;
193
- }
194
-
195
- .ngg-imagebrowser-nav .back {
196
- float:left;
197
- border:1px solid #DDDDDD;
198
- margin-right:3px;
199
- padding:3px 7px;
200
- }
201
-
202
- .ngg-imagebrowser-nav .next {
203
- float:right;
204
- border:1px solid #DDDDDD;
205
- margin-right:3px;
206
- padding:3px 7px;
207
- }
208
-
209
- .ngg-imagebrowser-nav .counter {
210
- text-align:center;
211
- font-size:0.9em !important;
212
- }
213
-
214
- /* ----------- Slideshow -------------*/
215
- .slideshow {
216
- margin-left: auto;
217
- margin-right: auto;
218
- text-align: center;
219
- }
220
-
221
- .slideshowlink {
222
- }
223
-
224
- /* ----------- Single picture -------------*/
225
- .ngg-singlepic {
226
- background-color:#FFFFFF;
227
- border:1px solid #A9A9A9;
228
- display:block;
229
- margin:4px 0px 4px 5px;
230
- padding:4px;
231
- position:relative;
232
- }
233
-
234
- /* ----------- Sidebar widget -------------*/
235
- .ngg-widget,
236
- .ngg-widget-slideshow {
237
- overflow: hidden;
238
- margin: 0pt;
239
- padding: 5px 0px 0px 0pt;
240
- text-align: center;
241
- }
242
-
243
- .ngg-widget img {
244
- border:2px solid #A9A9A9;
245
- margin:0pt 2px 2px 0px;
246
- padding:1px;
247
- }
248
-
249
- /* ----------- Related images -------------*/
250
- .ngg-related-gallery {
251
- background:#F9F9F9;
252
- border:1px solid #E0E0E0;
253
- overflow:hidden;
254
- margin-bottom:1em;
255
- margin-top:1em;
256
- padding:5px;
257
- }
258
- .ngg-related-gallery img {
259
- border: 1px solid #DDDDDD;
260
- float: left;
261
- margin: 0pt 2px;
262
- padding: 2px;
263
- height: 50px;
264
- width: 50px;
265
- }
266
-
267
- .ngg-related-gallery img:hover {
268
- border: 1px solid #000000;
269
- }
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ CSS Name: dkret3 Theme
3
+ Description: NextGEN dkret3 style with a shadow effect
4
+ Author: Jörn Kretzschmar (based on Alex Rabes Default Style)
5
+ Version: 1.3
6
+
7
+ This is a template stylesheet that can be used with NextGEN Gallery. I tested the
8
+ styles with the theme dkret3. Modify it when your theme struggle with it,
9
+ it's only a template design
10
+
11
+ */
12
+
13
+ /* ----------- Album Styles Extend -------------*/
14
+
15
+ .ngg-albumoverview {
16
+ margin-top: 10px;
17
+ width: 100%;
18
+ clear:both;
19
+ display:block !important;
20
+ }
21
+
22
+ .ngg-album {
23
+ height: 100%;
24
+ padding: 5px;
25
+ margin-bottom: 5px;
26
+ border: 1px solid #cccccc;
27
+ overflow:hidden;
28
+ }
29
+
30
+ .ngg-albumtitle {
31
+ text-align: left;
32
+ font-weight: bold;
33
+ margin:0px;
34
+ padding:0px;
35
+ font-size: 1.4em;
36
+ margin-bottom: 10px;
37
+ }
38
+
39
+ .ngg-thumbnail {
40
+ float: left;
41
+ margin-right: 12px;
42
+ }
43
+
44
+ .ngg-thumbnail img {
45
+ background-color:#FFFFFF;
46
+ border:1px solid #A9A9A9;
47
+ margin:4px 0px 4px 5px;
48
+ padding:4px;
49
+ position:relative;
50
+ }
51
+
52
+ .ngg-thumbnail img:hover {
53
+ background-color: #A9A9A9;
54
+ }
55
+
56
+ .ngg-description {
57
+ text-align: left;
58
+ }
59
+
60
+ /* ----------- Album Styles Compact -------------*/
61
+
62
+ .ngg-album-compact {
63
+ float:left;
64
+ height:180px;
65
+ padding-right:6px !important;
66
+ margin:0px !important;
67
+ text-align:left;
68
+ width:120px;
69
+ }
70
+
71
+ .ngg-album-compactbox {
72
+ background:transparent url(albumset.gif) no-repeat scroll 0%;
73
+ height:86px;
74
+ margin:0pt 0pt 6px !important;
75
+ padding:12px 0pt 0pt 7px !important;
76
+ width:120px;
77
+ }
78
+
79
+
80
+ .ngg-album-compactbox .Thumb {
81
+ border:1px solid #000000;
82
+ margin:0px !important;
83
+ padding:0px !important;
84
+ }
85
+
86
+ .ngg-album-compact h4 {
87
+ font-size:15px;
88
+ font-weight:bold;
89
+ margin-bottom:0px;
90
+ margin-top:0px;
91
+ width:110px;
92
+ }
93
+
94
+ .ngg-album-compact p {
95
+ font-size:11px;
96
+ margin-top:2px;
97
+ }
98
+
99
+ /* ----------- Gallery style -------------*/
100
+
101
+ .ngg-galleryoverview {
102
+ margin-top: 10px;
103
+ width: 100%;
104
+ clear:both;
105
+ display:block !important;
106
+ }
107
+
108
+ .ngg-gallery-thumbnail-box {
109
+ float: left;
110
+ }
111
+
112
+ .ngg-gallery-thumbnail {
113
+ float: left;
114
+ background: url(shadowAlpha.png) no-repeat bottom right !important;
115
+ background: url(shadow.gif) no-repeat bottom right;
116
+ margin: 10px 0 0 10px !important;
117
+ }
118
+
119
+ .ngg-gallery-thumbnail img {
120
+ margin: -6px 6px 6px -6px;
121
+ background-color:#FFFFFF;
122
+ border:1px solid #A9A9A9;
123
+ display:block;
124
+ padding:4px;
125
+ position:relative;
126
+ }
127
+
128
+ .ngg-gallery-thumbnail img:hover {
129
+ background-color: #A9A9A9;
130
+ }
131
+
132
+ .ngg-gallery-thumbnail span {
133
+ display:none;
134
+ }
135
+
136
+ .ngg-clear {
137
+ clear: both;
138
+ }
139
+
140
+ /* ----------- Gallery navigation -------------*/
141
+
142
+ .ngg-navigation {
143
+ font-size:0.9em !important;
144
+ clear:both !important;
145
+ display:block !important;
146
+ padding-top:15px;
147
+ text-align:center;
148
+ }
149
+
150
+ .ngg-navigation span {
151
+ font-weight:bold;
152
+ margin:0pt 6px;
153
+ }
154
+
155
+ .ngg-navigation a.page-numbers, a.next, a.prev,
156
+ span.page-numbers, span.next, span.prev {
157
+ border:1px solid #DDDDDD;
158
+ margin-right:3px;
159
+ padding:3px 7px;
160
+ }
161
+
162
+ .ngg-navigation a.page-numbers:hover, a.next:hover, a.prev:hover,
163
+ span.page-numbers:hover, span.next:hover, span.prev:hover {
164
+ background-color: #0066CC;
165
+ color: #FFFFFF !important;
166
+ text-decoration: none !important;
167
+ }
168
+
169
+ /* ----------- Image browser style -------------*/
170
+
171
+ .ngg-imagebrowser {
172
+
173
+ }
174
+
175
+ .ngg-imagebrowser h3 {
176
+ text-align:center;
177
+ }
178
+
179
+ .ngg-imagebrowser img {
180
+ border:1px solid #A9A9A9;
181
+ margin-top: 10px;
182
+ margin-bottom: 10px;
183
+ width: 100%;
184
+ display:block !important;
185
+ padding:5px;
186
+ }
187
+
188
+ .ngg-imagebrowser-nav {
189
+ padding:5px;
190
+ margin-left:10px;
191
+ }
192
+
193
+ .ngg-imagebrowser-nav .back {
194
+ float:left;
195
+ border:1px solid #DDDDDD;
196
+ margin-right:3px;
197
+ padding:3px 7px;
198
+ }
199
+
200
+ .ngg-imagebrowser-nav .next {
201
+ float:right;
202
+ border:1px solid #DDDDDD;
203
+ margin-right:3px;
204
+ padding:3px 7px;
205
+ }
206
+
207
+ .ngg-imagebrowser-nav .counter {
208
+ text-align:center;
209
+ font-size:0.9em !important;
210
+ }
211
+
212
+ /* ----------- Slideshow -------------*/
213
+ .slideshow {
214
+ margin-left: auto;
215
+ margin-right: auto;
216
+ text-align:center;
217
+ }
218
+
219
+ .slideshowlink {
220
+
221
+ }
222
+
223
+ /* ----------- Single picture -------------*/
224
+ .ngg-singlepic {
225
+ background-color:#FFFFFF;
226
+ border:1px solid #A9A9A9;
227
+ display:block;
228
+ margin:5px;
229
+ padding:4px;
230
+ position:relative;
231
+ }
232
+
233
+ .ngg-left {
234
+ float: left;
235
+ }
236
+
237
+ .ngg-right {
238
+ float: right;
239
+ }
240
+
241
+
242
+ /* ----------- Sidebar widget -------------*/
243
+
244
+ .ngg-widget,
245
+ .ngg-widget-slideshow {
246
+ overflow: hidden;
247
+ margin:0pt;
248
+ padding:5px 0px 0px 0pt;
249
+ text-align: center;
250
+ }
251
+
252
+ .ngg-widget img {
253
+ border:2px solid #A9A9A9;
254
+ margin:0pt 2px 2px 0px;
255
+ padding:1px;
256
+ }
257
+
258
+ /* ----------- Related images -------------*/
259
+ .ngg-related-gallery {
260
+ background:#F9F9F9;
261
+ border:1px solid #E0E0E0;
262
+ overflow:hidden;
263
+ margin-bottom:1em;
264
+ margin-top:1em;
265
+ padding:5px;
266
+ }
267
+ .ngg-related-gallery img {
268
+ border: 1px solid #DDDDDD;
269
+ float: left;
270
+ margin: 0pt 3px;
271
+ padding: 2px;
272
+ height: 50px;
273
+ width: 50px;
274
+ }
275
+
276
+ .ngg-related-gallery img:hover {
277
+ border: 1px solid #000000;
278
+ }
lang/nggallery.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: NextGEN Gallery\n"
4
  "POT-Creation-Date: \n"
5
- "PO-Revision-Date: 2007-10-20 10:32+0100\n"
6
  "Last-Translator: Alex Rabe\n"
7
  "Language-Team: Alex Rabe\n"
8
  "MIME-Version: 1.0\n"
@@ -41,8 +41,6 @@ msgstr ""
41
  #: ../admin/manage.php:540
42
  #: ../admin/myimport.php:52
43
  #: ../admin/style.php:101
44
- #: ../admin/__manage.php:209
45
- #: ../admin/__manage.php:1024
46
  #: ../js/nggadmintab-js.php:167
47
  msgid "Description"
48
  msgstr ""
@@ -69,8 +67,6 @@ msgstr ""
69
  #: ../admin/manage.php:64
70
  #: ../admin/manage.php:436
71
  #: ../admin/settings.php:86
72
- #: ../admin/__manage.php:182
73
- #: ../admin/__manage.php:991
74
  msgid "Gallery"
75
  msgstr ""
76
 
@@ -173,7 +169,7 @@ msgid "Right"
173
  msgstr ""
174
 
175
  #: ../nggbutton.php:147
176
- #: ../admin/manage.php:608
177
  msgid "Cancel"
178
  msgstr ""
179
 
@@ -247,8 +243,6 @@ msgstr ""
247
  #: ../admin/manage.php:290
248
  #: ../admin/manage.php:448
249
  #: ../admin/myimport.php:51
250
- #: ../admin/__manage.php:208
251
- #: ../admin/__manage.php:1005
252
  #: ../js/nggadmintab-js.php:104
253
  msgid "Title"
254
  msgstr ""
@@ -793,8 +787,7 @@ msgstr ""
793
 
794
  #: ../admin/album.php:143
795
  #: ../admin/manage.php:314
796
- #: ../admin/manage.php:578
797
- #: ../admin/__manage.php:232
798
  msgid "Delete"
799
  msgstr ""
800
 
@@ -841,7 +834,6 @@ msgstr ""
841
  #: ../admin/manage.php:288
842
  #: ../admin/manage.php:534
843
  #: ../admin/myimport.php:49
844
- #: ../admin/__manage.php:206
845
  msgid "ID"
846
  msgstr ""
847
 
@@ -855,7 +847,6 @@ msgstr ""
855
 
856
  #: ../admin/manage.php:64
857
  #: ../admin/manage.php:85
858
- #: ../admin/__manage.php:182
859
  msgid "deleted successfully"
860
  msgstr ""
861
 
@@ -896,107 +887,87 @@ msgid "created"
896
  msgstr ""
897
 
898
  #: ../admin/manage.php:284
899
- #: ../admin/__manage.php:202
900
  msgid "Gallery Overview"
901
  msgstr ""
902
 
903
  #: ../admin/manage.php:289
904
  #: ../admin/myimport.php:50
905
- #: ../admin/__manage.php:207
906
  msgid "Gallery name"
907
  msgstr ""
908
 
909
  #: ../admin/manage.php:292
910
  #: ../admin/myimport.php:53
911
- #: ../admin/__manage.php:210
912
  msgid "Page ID"
913
  msgstr ""
914
 
915
  #: ../admin/manage.php:293
916
  #: ../admin/myimport.php:54
917
- #: ../admin/__manage.php:211
918
  msgid "Quantity"
919
  msgstr ""
920
 
921
  #: ../admin/manage.php:294
922
  #: ../admin/manage.php:546
923
  #: ../admin/myimport.php:55
924
- #: ../admin/__manage.php:212
925
  msgid "Action"
926
  msgstr ""
927
 
928
  #: ../admin/manage.php:313
929
- #: ../admin/__manage.php:231
930
  #: ../js/nggadmintab-js.php:88
931
  msgid "Edit"
932
  msgstr ""
933
 
934
  #: ../admin/manage.php:314
935
- #: ../admin/__manage.php:232
936
  msgid "Delete this gallery ?"
937
  msgstr ""
938
 
939
  #: ../admin/manage.php:319
940
- #: ../admin/manage.php:583
941
  #: ../admin/myimport.php:79
942
- #: ../admin/__manage.php:237
943
- #: ../admin/__manage.php:1155
944
  msgid "No entries found"
945
  msgstr ""
946
 
947
  #: ../admin/manage.php:445
948
- #: ../admin/__manage.php:1001
949
  msgid "Main settings"
950
  msgstr ""
951
 
952
  #: ../admin/manage.php:450
953
- #: ../admin/__manage.php:1007
954
  msgid "Page Link to"
955
  msgstr ""
956
 
957
  #: ../admin/manage.php:453
958
- #: ../admin/__manage.php:1010
959
  msgid "Not linked"
960
  msgstr ""
961
 
962
  #: ../admin/manage.php:469
963
- #: ../admin/__manage.php:1026
964
  msgid "Preview image"
965
  msgstr ""
966
 
967
  #: ../admin/manage.php:472
968
- #: ../admin/__manage.php:1029
969
  msgid "No Picture"
970
  msgstr ""
971
 
972
  #: ../admin/manage.php:487
973
- #: ../admin/__manage.php:1043
974
  msgid "Path"
975
  msgstr ""
976
 
977
  #: ../admin/manage.php:490
978
- #: ../admin/__manage.php:1045
979
  msgid "Create new page"
980
  msgstr ""
981
 
982
  #: ../admin/manage.php:493
983
- #: ../admin/__manage.php:1048
984
  msgid "Main page (No parent)"
985
  msgstr ""
986
 
987
  #: ../admin/manage.php:496
988
- #: ../admin/__manage.php:1051
989
  msgid "Add page"
990
  msgstr ""
991
 
992
  #: ../admin/manage.php:502
993
- #: ../admin/__manage.php:1057
994
  msgid "Scan Folder for new images"
995
  msgstr ""
996
 
997
  #: ../admin/manage.php:503
998
- #: ../admin/manage.php:590
999
- #: ../admin/__manage.php:1058
1000
  msgid "Save Changes"
1001
  msgstr ""
1002
 
@@ -1034,17 +1005,17 @@ msgstr ""
1034
 
1035
  #: ../admin/manage.php:521
1036
  #: ../admin/manage.php:522
1037
- #: ../admin/manage.php:608
1038
  msgid "OK"
1039
  msgstr ""
1040
 
1041
  #: ../admin/manage.php:521
1042
- #: ../admin/manage.php:608
1043
  msgid "No images selected"
1044
  msgstr ""
1045
 
1046
  #: ../admin/manage.php:521
1047
- #: ../admin/manage.php:608
1048
  #, php-format
1049
  msgid ""
1050
  "You are about to start the bulk edit for %s images \n"
@@ -1086,10 +1057,18 @@ msgid "View"
1086
  msgstr ""
1087
 
1088
  #: ../admin/manage.php:578
 
 
 
 
 
 
 
 
1089
  msgid "Delete this file ?"
1090
  msgstr ""
1091
 
1092
- #: ../admin/manage.php:605
1093
  msgid "Enter the tags"
1094
  msgstr ""
1095
 
@@ -1379,6 +1358,7 @@ msgid "Categories"
1379
  msgstr ""
1380
 
1381
  #: ../admin/settings.php:131
 
1382
  msgid "Tags"
1383
  msgstr ""
1384
 
@@ -1847,6 +1827,39 @@ msgid ""
1847
  "Choose [Cancel] to Stop, [OK] to Uninstall.\\n"
1848
  msgstr ""
1849
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1850
  #: ../admin/style.php:34
1851
  msgid "You do not have sufficient permissions to edit templates for this blog."
1852
  msgstr ""
@@ -1874,6 +1887,7 @@ msgid "Browsing <strong>%s</strong>"
1874
  msgstr ""
1875
 
1876
  #: ../admin/style.php:99
 
1877
  msgid "Author"
1878
  msgstr ""
1879
 
@@ -1943,3 +1957,124 @@ msgid ""
1943
  "Click ok to delete or cancel to go back."
1944
  msgstr ""
1945
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  msgstr ""
3
  "Project-Id-Version: NextGEN Gallery\n"
4
  "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2007-12-01 13:11+0100\n"
6
  "Last-Translator: Alex Rabe\n"
7
  "Language-Team: Alex Rabe\n"
8
  "MIME-Version: 1.0\n"
41
  #: ../admin/manage.php:540
42
  #: ../admin/myimport.php:52
43
  #: ../admin/style.php:101
 
 
44
  #: ../js/nggadmintab-js.php:167
45
  msgid "Description"
46
  msgstr ""
67
  #: ../admin/manage.php:64
68
  #: ../admin/manage.php:436
69
  #: ../admin/settings.php:86
 
 
70
  msgid "Gallery"
71
  msgstr ""
72
 
169
  msgstr ""
170
 
171
  #: ../nggbutton.php:147
172
+ #: ../admin/manage.php:609
173
  msgid "Cancel"
174
  msgstr ""
175
 
243
  #: ../admin/manage.php:290
244
  #: ../admin/manage.php:448
245
  #: ../admin/myimport.php:51
 
 
246
  #: ../js/nggadmintab-js.php:104
247
  msgid "Title"
248
  msgstr ""
787
 
788
  #: ../admin/album.php:143
789
  #: ../admin/manage.php:314
790
+ #: ../admin/manage.php:579
 
791
  msgid "Delete"
792
  msgstr ""
793
 
834
  #: ../admin/manage.php:288
835
  #: ../admin/manage.php:534
836
  #: ../admin/myimport.php:49
 
837
  msgid "ID"
838
  msgstr ""
839
 
847
 
848
  #: ../admin/manage.php:64
849
  #: ../admin/manage.php:85
 
850
  msgid "deleted successfully"
851
  msgstr ""
852
 
887
  msgstr ""
888
 
889
  #: ../admin/manage.php:284
 
890
  msgid "Gallery Overview"
891
  msgstr ""
892
 
893
  #: ../admin/manage.php:289
894
  #: ../admin/myimport.php:50
 
895
  msgid "Gallery name"
896
  msgstr ""
897
 
898
  #: ../admin/manage.php:292
899
  #: ../admin/myimport.php:53
 
900
  msgid "Page ID"
901
  msgstr ""
902
 
903
  #: ../admin/manage.php:293
904
  #: ../admin/myimport.php:54
 
905
  msgid "Quantity"
906
  msgstr ""
907
 
908
  #: ../admin/manage.php:294
909
  #: ../admin/manage.php:546
910
  #: ../admin/myimport.php:55
 
911
  msgid "Action"
912
  msgstr ""
913
 
914
  #: ../admin/manage.php:313
 
915
  #: ../js/nggadmintab-js.php:88
916
  msgid "Edit"
917
  msgstr ""
918
 
919
  #: ../admin/manage.php:314
 
920
  msgid "Delete this gallery ?"
921
  msgstr ""
922
 
923
  #: ../admin/manage.php:319
924
+ #: ../admin/manage.php:584
925
  #: ../admin/myimport.php:79
 
 
926
  msgid "No entries found"
927
  msgstr ""
928
 
929
  #: ../admin/manage.php:445
 
930
  msgid "Main settings"
931
  msgstr ""
932
 
933
  #: ../admin/manage.php:450
 
934
  msgid "Page Link to"
935
  msgstr ""
936
 
937
  #: ../admin/manage.php:453
 
938
  msgid "Not linked"
939
  msgstr ""
940
 
941
  #: ../admin/manage.php:469
 
942
  msgid "Preview image"
943
  msgstr ""
944
 
945
  #: ../admin/manage.php:472
 
946
  msgid "No Picture"
947
  msgstr ""
948
 
949
  #: ../admin/manage.php:487
 
950
  msgid "Path"
951
  msgstr ""
952
 
953
  #: ../admin/manage.php:490
 
954
  msgid "Create new page"
955
  msgstr ""
956
 
957
  #: ../admin/manage.php:493
 
958
  msgid "Main page (No parent)"
959
  msgstr ""
960
 
961
  #: ../admin/manage.php:496
 
962
  msgid "Add page"
963
  msgstr ""
964
 
965
  #: ../admin/manage.php:502
 
966
  msgid "Scan Folder for new images"
967
  msgstr ""
968
 
969
  #: ../admin/manage.php:503
970
+ #: ../admin/manage.php:591
 
971
  msgid "Save Changes"
972
  msgstr ""
973
 
1005
 
1006
  #: ../admin/manage.php:521
1007
  #: ../admin/manage.php:522
1008
+ #: ../admin/manage.php:609
1009
  msgid "OK"
1010
  msgstr ""
1011
 
1012
  #: ../admin/manage.php:521
1013
+ #: ../admin/manage.php:609
1014
  msgid "No images selected"
1015
  msgstr ""
1016
 
1017
  #: ../admin/manage.php:521
1018
+ #: ../admin/manage.php:609
1019
  #, php-format
1020
  msgid ""
1021
  "You are about to start the bulk edit for %s images \n"
1057
  msgstr ""
1058
 
1059
  #: ../admin/manage.php:578
1060
+ msgid "Show Meta data"
1061
+ msgstr ""
1062
+
1063
+ #: ../admin/manage.php:578
1064
+ msgid "Meta"
1065
+ msgstr ""
1066
+
1067
+ #: ../admin/manage.php:579
1068
  msgid "Delete this file ?"
1069
  msgstr ""
1070
 
1071
+ #: ../admin/manage.php:606
1072
  msgid "Enter the tags"
1073
  msgstr ""
1074
 
1358
  msgstr ""
1359
 
1360
  #: ../admin/settings.php:131
1361
+ #: ../lib/nggmeta.lib.php:317
1362
  msgid "Tags"
1363
  msgstr ""
1364
 
1827
  "Choose [Cancel] to Stop, [OK] to Uninstall.\\n"
1828
  msgstr ""
1829
 
1830
+ #: ../admin/showmeta.php:7
1831
+ #: ../admin/showmeta.php:10
1832
+ msgid "Cheatin&#8217; uh?"
1833
+ msgstr ""
1834
+
1835
+ #: ../admin/showmeta.php:42
1836
+ msgid "EXIF Data"
1837
+ msgstr ""
1838
+
1839
+ #: ../admin/showmeta.php:47
1840
+ #: ../admin/showmeta.php:71
1841
+ #: ../admin/showmeta.php:95
1842
+ msgid "Tag"
1843
+ msgstr ""
1844
+
1845
+ #: ../admin/showmeta.php:48
1846
+ #: ../admin/showmeta.php:72
1847
+ #: ../admin/showmeta.php:96
1848
+ msgid "Value"
1849
+ msgstr ""
1850
+
1851
+ #: ../admin/showmeta.php:61
1852
+ msgid "No exif data"
1853
+ msgstr ""
1854
+
1855
+ #: ../admin/showmeta.php:67
1856
+ msgid "IPTC Data"
1857
+ msgstr ""
1858
+
1859
+ #: ../admin/showmeta.php:91
1860
+ msgid "XMP Data"
1861
+ msgstr ""
1862
+
1863
  #: ../admin/style.php:34
1864
  msgid "You do not have sufficient permissions to edit templates for this blog."
1865
  msgstr ""
1887
  msgstr ""
1888
 
1889
  #: ../admin/style.php:99
1890
+ #: ../lib/nggmeta.lib.php:316
1891
  msgid "Author"
1892
  msgstr ""
1893
 
1957
  "Click ok to delete or cancel to go back."
1958
  msgstr ""
1959
 
1960
+ #: ../lib/nggmeta.lib.php:306
1961
+ msgid "Aperture"
1962
+ msgstr ""
1963
+
1964
+ #: ../lib/nggmeta.lib.php:307
1965
+ #: ../lib/nggmeta.lib.php:332
1966
+ msgid "Credit"
1967
+ msgstr ""
1968
+
1969
+ #: ../lib/nggmeta.lib.php:308
1970
+ msgid "Camera"
1971
+ msgstr ""
1972
+
1973
+ #: ../lib/nggmeta.lib.php:309
1974
+ msgid "Caption"
1975
+ msgstr ""
1976
+
1977
+ #: ../lib/nggmeta.lib.php:310
1978
+ msgid "Date/Time"
1979
+ msgstr ""
1980
+
1981
+ #: ../lib/nggmeta.lib.php:311
1982
+ msgid "Copyright"
1983
+ msgstr ""
1984
+
1985
+ #: ../lib/nggmeta.lib.php:312
1986
+ msgid "Focal length"
1987
+ msgstr ""
1988
+
1989
+ #: ../lib/nggmeta.lib.php:313
1990
+ msgid "ISO"
1991
+ msgstr ""
1992
+
1993
+ #: ../lib/nggmeta.lib.php:314
1994
+ msgid "Shutter speed"
1995
+ msgstr ""
1996
+
1997
+ #: ../lib/nggmeta.lib.php:315
1998
+ msgid "Titel"
1999
+ msgstr ""
2000
+
2001
+ #: ../lib/nggmeta.lib.php:318
2002
+ msgid "Subject"
2003
+ msgstr ""
2004
+
2005
+ #: ../lib/nggmeta.lib.php:319
2006
+ msgid "Make"
2007
+ msgstr ""
2008
+
2009
+ #: ../lib/nggmeta.lib.php:320
2010
+ msgid "Edit Status"
2011
+ msgstr ""
2012
+
2013
+ #: ../lib/nggmeta.lib.php:321
2014
+ msgid "Category"
2015
+ msgstr ""
2016
+
2017
+ #: ../lib/nggmeta.lib.php:322
2018
+ msgid "Keywords"
2019
+ msgstr ""
2020
+
2021
+ #: ../lib/nggmeta.lib.php:323
2022
+ msgid "Date Created"
2023
+ msgstr ""
2024
+
2025
+ #: ../lib/nggmeta.lib.php:324
2026
+ msgid "Time Created"
2027
+ msgstr ""
2028
+
2029
+ #: ../lib/nggmeta.lib.php:325
2030
+ msgid "Author Position"
2031
+ msgstr ""
2032
+
2033
+ #: ../lib/nggmeta.lib.php:326
2034
+ msgid "City"
2035
+ msgstr ""
2036
+
2037
+ #: ../lib/nggmeta.lib.php:327
2038
+ msgid "Location"
2039
+ msgstr ""
2040
+
2041
+ #: ../lib/nggmeta.lib.php:328
2042
+ msgid "Province/State"
2043
+ msgstr ""
2044
+
2045
+ #: ../lib/nggmeta.lib.php:329
2046
+ msgid "Country code"
2047
+ msgstr ""
2048
+
2049
+ #: ../lib/nggmeta.lib.php:330
2050
+ msgid "Country"
2051
+ msgstr ""
2052
+
2053
+ #: ../lib/nggmeta.lib.php:331
2054
+ msgid "Headline"
2055
+ msgstr ""
2056
+
2057
+ #: ../lib/nggmeta.lib.php:333
2058
+ msgid "Source"
2059
+ msgstr ""
2060
+
2061
+ #: ../lib/nggmeta.lib.php:334
2062
+ msgid "Copyright Notice"
2063
+ msgstr ""
2064
+
2065
+ #: ../lib/nggmeta.lib.php:335
2066
+ msgid "Contact"
2067
+ msgstr ""
2068
+
2069
+ #: ../lib/nggmeta.lib.php:336
2070
+ msgid "Last modified"
2071
+ msgstr ""
2072
+
2073
+ #: ../lib/nggmeta.lib.php:337
2074
+ msgid "Program tool"
2075
+ msgstr ""
2076
+
2077
+ #: ../lib/nggmeta.lib.php:338
2078
+ msgid "Format"
2079
+ msgstr ""
2080
+
lib/nggallery.lib.php CHANGED
@@ -17,6 +17,7 @@ class nggImage{
17
  var $error = FALSE; // Error state
18
  var $imagePath = ""; // URL Path to the image
19
  var $thumbPath = ""; // URL Path to the thumbnail
 
20
  var $thumbPrefix = ""; // FolderPrefix to the thumbnail
21
  var $thumbFolder = ""; // Foldername to the thumbnail
22
  var $href = ""; // A href link code
@@ -61,6 +62,7 @@ class nggImage{
61
  $this->get_thumbnail_folder($this->path, FALSE);
62
  $this->imagePath = get_option ('siteurl')."/".$this->path."/".$this->filename;
63
  $this->thumbPath = get_option ('siteurl')."/".$this->path.$this->thumbFolder.$this->thumbPrefix.$this->filename;
 
64
  }
65
  }
66
 
@@ -522,4 +524,4 @@ class ngg_Tags {
522
  }
523
 
524
  }
525
- ?>
17
  var $error = FALSE; // Error state
18
  var $imagePath = ""; // URL Path to the image
19
  var $thumbPath = ""; // URL Path to the thumbnail
20
+ var $absPath = ""; // Server Path to the image
21
  var $thumbPrefix = ""; // FolderPrefix to the thumbnail
22
  var $thumbFolder = ""; // Foldername to the thumbnail
23
  var $href = ""; // A href link code
62
  $this->get_thumbnail_folder($this->path, FALSE);
63
  $this->imagePath = get_option ('siteurl')."/".$this->path."/".$this->filename;
64
  $this->thumbPath = get_option ('siteurl')."/".$this->path.$this->thumbFolder.$this->thumbPrefix.$this->filename;
65
+ $this->absPath = WINABSPATH.$this->path."/".$this->filename;
66
  }
67
  }
68
 
524
  }
525
 
526
  }
527
+ ?>
lib/nggmeta.lib.php ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Image METADATA PHP class for the WordPress plugin NextGEN Gallery
5
+ * nggmeta.lib.php
6
+ *
7
+ * @author Alex Rabe
8
+ * @copyright Copyright 2007
9
+ *
10
+ */
11
+
12
+ class nggMeta{
13
+
14
+ /**** Image Data ****/
15
+ var $imagePath = ""; // ABS Path to the image
16
+ var $exif_data = false; // EXIF data array
17
+ var $iptc_data = false; // IPTC data array
18
+ var $xmp_data = false; // XMP data array
19
+
20
+ /**
21
+ * nggMeta::nggMeta()
22
+ *
23
+ * @param mixed $image
24
+ * @return
25
+ */
26
+
27
+ function nggMeta($image) {
28
+ $this->imagePath = $image;
29
+
30
+ if ( !file_exists( $this->imagePath ) )
31
+ return false;
32
+
33
+ $size = getimagesize ( $this->imagePath, $metadata );
34
+
35
+ if ($size && is_array($metadata)) {
36
+
37
+ // get exif - data
38
+ if ( is_callable('exif_read_data'))
39
+ $this->exif_data = @exif_read_data($this->imagePath, 0, true );
40
+
41
+ // get the iptc data - should be in APP13
42
+ if ( is_callable('iptcparse'))
43
+ $this->iptc_data = @iptcparse($metadata["APP13"]);
44
+
45
+ // get the xmp data in a XML format
46
+ if ( is_callable('xml_parser_create'))
47
+ $this->xmp_data = $this->extract_XMP($this->imagePath);
48
+
49
+ return true;
50
+ }
51
+
52
+ return false;
53
+ }
54
+
55
+ /**
56
+ * nggMeta::get_EXIF()
57
+ * See also http://trac.wordpress.org/changeset/6313
58
+ *
59
+ * @return structured EXIF data
60
+ */
61
+ function get_EXIF() {
62
+
63
+ if (!$this->exif_data)
64
+ return false;
65
+
66
+ $meta= array();
67
+
68
+ // taken from WP core
69
+ $exif = $this->exif_data['EXIF'];
70
+ if (!empty($exif['FNumber']))
71
+ $meta['aperture'] = "F " . round( $this->exif_frac2dec( $exif['FNumber'] ), 2 );
72
+ if (!empty($exif['Model']))
73
+ $meta['camera'] = trim( $exif['Model'] );
74
+ if (!empty($exif['DateTimeDigitized']))
75
+ $meta['created_timestamp'] = date_i18n(get_option('date_format').' '.get_option('time_format'), $this->exif_date2ts($exif['DateTimeDigitized']));
76
+ if (!empty($exif['FocalLength']))
77
+ $meta['focal_length'] = $this->exif_frac2dec( $exif['FocalLength'] ) . __(' mm','nggallery');
78
+ if (!empty($exif['ISOSpeedRatings']))
79
+ $meta['iso'] = $exif['ISOSpeedRatings'];
80
+ if (!empty($exif['ExposureTime']))
81
+ $meta['shutter_speed'] = $exif['ExposureTime'] . __(' sec','nggallery');
82
+
83
+ // additional information
84
+ $exif = $this->exif_data['IFD0'];
85
+ if (!empty($exif['Model']))
86
+ $meta['camera'] = $exif['Model'];
87
+ if (!empty($exif['Make']))
88
+ $meta['make'] = $exif['Make'];
89
+
90
+ // this is done by Windows
91
+ $exif = $this->exif_data['WINXP'];
92
+ if (!empty($exif['Title']))
93
+ $meta['title'] = $exif['Title'];
94
+ if (!empty($exif['Author']))
95
+ $meta['author'] = $exif['Author'];
96
+ if (!empty($exif['Keywords']))
97
+ $meta['tags'] = $exif['Keywords'];
98
+ if (!empty($exif['Subject']))
99
+ $meta['subject'] = $exif['Subject'];
100
+
101
+ return $meta;
102
+
103
+ }
104
+
105
+ // convert a fraction string to a decimal
106
+ function exif_frac2dec($str) {
107
+ @list( $n, $d ) = explode( '/', $str );
108
+ if ( !empty($d) )
109
+ return $n / $d;
110
+ return $str;
111
+ }
112
+
113
+ // convert the exif date format to a unix timestamp
114
+ function exif_date2ts($str) {
115
+ // seriously, who formats a date like 'YYYY:MM:DD hh:mm:ss'?
116
+ @list( $date, $time ) = explode( ' ', trim($str) );
117
+ @list( $y, $m, $d ) = explode( ':', $date );
118
+
119
+ return strtotime( "{$y}-{$m}-{$d} {$time}" );
120
+ }
121
+
122
+ /**
123
+ * nggMeta::readIPTC() - IPTC Data Information for EXIF Display
124
+ *
125
+ * @param mixed $output_tag
126
+ * @return
127
+ */
128
+ function get_IPTC() {
129
+
130
+ // --------- Set up Array Functions --------- //
131
+ $iptcTags = array (
132
+ "2#005" => 'title',
133
+ "2#007" => 'status',
134
+ "2#012" => 'subject',
135
+ "2#015" => 'category',
136
+ "2#025" => 'keywords',
137
+ "2#055" => 'created_date',
138
+ "2#060" => 'created_time',
139
+ "2#080" => 'author',
140
+ "2#085" => 'position',
141
+ "2#090" => 'city',
142
+ "2#092" => 'location',
143
+ "2#095" => 'state',
144
+ "2#100" => 'country_code',
145
+ "2#101" => 'country',
146
+ "2#105" => 'headline',
147
+ "2#110" => 'credit',
148
+ "2#115" => 'source',
149
+ "2#116" => 'copyright',
150
+ "2#118" => 'contact'
151
+ );
152
+
153
+ // var_dump($this->iptc_data);
154
+ if($this->iptc_data) {
155
+ $IPTCarray = array();
156
+ foreach ($iptcTags as $key => $value) {
157
+ if ($this->iptc_data[$key])
158
+ $IPTCarray[$value] = trim(utf8_encode(implode(", ", $this->iptc_data[$key])));
159
+
160
+ }
161
+ return $IPTCarray;
162
+ }
163
+
164
+ return false;
165
+ }
166
+
167
+ /**
168
+ * nggMeta::extract_XMP()
169
+ * get XMP DATA
170
+ * code by Pekka Saarinen http://photography-on-the.net
171
+ *
172
+ * @param mixed $filename
173
+ * @return
174
+ */
175
+ function extract_XMP( $filename ) {
176
+
177
+ //TODO:Require a lot of memory, could be better
178
+ ob_start();
179
+ @readfile($filename);
180
+ $source = ob_get_contents();
181
+ ob_end_clean();
182
+
183
+ $start = strpos( $source, "<x:xmpmeta" );
184
+ $end = strpos( $source, "</x:xmpmeta>" );
185
+ if ((!$start === false) && (!$end === false)) {
186
+ $lenght = $end - $start;
187
+ $xmp_data = substr($source, $start, $lenght+12 );
188
+ unset($source);
189
+ return $xmp_data;
190
+ }
191
+
192
+ unset($source);
193
+ return false;
194
+ }
195
+
196
+ /**
197
+ * nggMeta::get_XMP()
198
+ *
199
+ * @package Taken from http://php.net/manual/en/function.xml-parse-into-struct.php
200
+ * @author Alf Marius Foss Olsen & Alex Rabe
201
+ *
202
+ */
203
+ function get_XMP() {
204
+
205
+ if(!$this->xmp_data)
206
+ return false;
207
+
208
+ $parser = xml_parser_create();
209
+ xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); // Dont mess with my cAsE sEtTings
210
+ xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); // Dont bother with empty info
211
+ xml_parse_into_struct($parser, $this->xmp_data, $values);
212
+ xml_parser_free($parser);
213
+
214
+ $xmlarray = array(); // The XML array
215
+ $XMParray = array(); // The returned array
216
+ $stack = array(); // tmp array used for stacking
217
+ $list_array = array(); // tmp array for list elements
218
+ $list_element = false; // rdf:li indicator
219
+
220
+ foreach($values as $val) {
221
+
222
+ if($val['type'] == "open") {
223
+ array_push($stack, $val['tag']);
224
+
225
+ } elseif($val['type'] == "close") {
226
+ // reset the compared stack
227
+ if ($list_element == false)
228
+ array_pop($stack);
229
+ // reset the rdf:li indicator & array
230
+ $list_element = false;
231
+ $list_array = array();
232
+
233
+ } elseif($val['type'] == "complete") {
234
+ if ($val['tag'] == "rdf:li") {
235
+ // first go one element back
236
+ if ($list_element == false)
237
+ array_pop($stack);
238
+ $list_element = true;
239
+ // save it in our temp array
240
+ $list_array[] = $val['value'];
241
+ // in the case it's a list element we seralize it
242
+ $value = implode(",", $list_array);
243
+ $this->setArrayValue($xmlarray, $stack, $value);
244
+ } else {
245
+ array_push($stack, $val['tag']);
246
+ $this->setArrayValue($xmlarray, $stack, $val['value']);
247
+ array_pop($stack);
248
+ }
249
+ }
250
+
251
+ } // foreach
252
+
253
+ // cut off the useless tags
254
+ $xmlarray = $xmlarray['x:xmpmeta']['rdf:RDF']['rdf:Description'];
255
+
256
+ // --------- Some values from the XMP format--------- //
257
+ $xmpTags = array (
258
+ 'xap:CreateDate' => 'created_timestamp',
259
+ 'xap:ModifyDate' => 'last_modfied',
260
+ 'xap:CreatorTool' => 'tool',
261
+ 'dc:format' => 'format',
262
+ 'dc:title' => 'title',
263
+ 'dc:creator' => 'author',
264
+ 'dc:subject' => 'keywords',
265
+ 'photoshop:AuthorsPosition' => 'position',
266
+ 'photoshop:City' => 'city',
267
+ 'photoshop:Country' => 'country'
268
+ );
269
+
270
+ foreach ($xmpTags as $key => $value) {
271
+ // if the kex exist
272
+ if ($xmlarray[$key]) {
273
+ switch ($key) {
274
+ case 'xap:CreateDate':
275
+ case 'xap:ModifyDate':
276
+ $XMParray[$value] = date_i18n(get_option('date_format').' '.get_option('time_format'), strtotime($xmlarray[$key]));
277
+ break;
278
+ default :
279
+ $XMParray[$value] = $xmlarray[$key];
280
+ }
281
+ }
282
+ }
283
+
284
+ return $XMParray;
285
+ }
286
+
287
+ function setArrayValue(&$array, $stack, $value) {
288
+ if ($stack) {
289
+ $key = array_shift($stack);
290
+ $this->setArrayValue($array[$key], $stack, $value);
291
+ return $array;
292
+ } else {
293
+ $array = $value;
294
+ }
295
+ }
296
+
297
+ /**
298
+ * nggMeta::i8n_name() - localize the tag name
299
+ *
300
+ * @param mixed $key
301
+ * @return translated $key
302
+ */
303
+ function i8n_name($key) {
304
+
305
+ $tagnames = array(
306
+ 'aperture' => __('Aperture','nggallery'),
307
+ 'credit' => __('Credit','nggallery'),
308
+ 'camera' => __('Camera','nggallery'),
309
+ 'caption' => __('Caption','nggallery'),
310
+ 'created_timestamp' => __('Date/Time','nggallery'),
311
+ 'copyright' => __('Copyright','nggallery'),
312
+ 'focal_length' => __('Focal length','nggallery'),
313
+ 'iso' => __('ISO','nggallery'),
314
+ 'shutter_speed' => __('Shutter speed','nggallery'),
315
+ 'title' => __('Titel','nggallery'),
316
+ 'author' => __('Author','nggallery'),
317
+ 'tags' => __('Tags','nggallery'),
318
+ 'subject' => __('Subject','nggallery'),
319
+ 'make' => __('Make','nggallery'),
320
+ 'status' => __('Edit Status','nggallery'),
321
+ 'category' => __('Category','nggallery'),
322
+ 'keywords' => __('Keywords','nggallery'),
323
+ 'created_date' => __('Date Created','nggallery'),
324
+ 'created_time' => __('Time Created','nggallery'),
325
+ 'position' => __('Author Position','nggallery'),
326
+ 'city' => __('City','nggallery'),
327
+ 'location' => __('Location','nggallery'),
328
+ 'state' => __('Province/State','nggallery'),
329
+ 'country_code' => __('Country code','nggallery'),
330
+ 'country' => __('Country','nggallery'),
331
+ 'headline' => __('Headline','nggallery'),
332
+ 'credit' => __('Credit','nggallery'),
333
+ 'source' => __('Source','nggallery'),
334
+ 'copyright' => __('Copyright Notice','nggallery'),
335
+ 'contact' => __('Contact','nggallery'),
336
+ 'last_modfied' => __('Last modified','nggallery'),
337
+ 'tool' => __('Program tool','nggallery'),
338
+ 'format' => __('Format','nggallery')
339
+ );
340
+
341
+ if ($tagnames[$key]) $key = $tagnames[$key];
342
+
343
+ return($key);
344
+
345
+ }
346
+
347
+ }
348
+
349
+ ?>
nggallery.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: NextGEN Gallery
4
  Plugin URI: http://alexrabe.boelinger.com/?page_id=80
5
  Description: A NextGENeration Photo gallery for the WEB2.0(beta).
6
  Author: NextGEN DEV-Team
7
- Version: 0.73
8
 
9
  Author URI: http://alexrabe.boelinger.com/
10
 
@@ -50,7 +50,7 @@ define('NGGFILE_PERMISSION', 0666);
50
  // ################################################################
51
 
52
  // Version and path to check version
53
- define('NGGVERSION', "0.73");
54
  define('NGGURL', "http://nextgen.boelinger.com/version.php");
55
 
56
  // define URL
4
  Plugin URI: http://alexrabe.boelinger.com/?page_id=80
5
  Description: A NextGENeration Photo gallery for the WEB2.0(beta).
6
  Author: NextGEN DEV-Team
7
+ Version: 0.74
8
 
9
  Author URI: http://alexrabe.boelinger.com/
10
 
50
  // ################################################################
51
 
52
  // Version and path to check version
53
+ define('NGGVERSION', "0.74");
54
  define('NGGURL', "http://nextgen.boelinger.com/version.php");
55
 
56
  // define URL
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === NextGEN Gallery ===
2
  Contributors: Alex Rabe
3
  Donate link: http://alexrabe.boelinger.com/?page_id=80
4
- Tags: photos, flash, slideshow, images, gallery, media, admin, post, photo-albums, pictures, widgets
5
  Requires at least: 2.1.3
6
- Tested up to: 2.3
7
 
8
  NextGEN Gallery is a full integrated Image Gallery plugin for WordPress with a Flash slideshow option.
9
 
1
  === NextGEN Gallery ===
2
  Contributors: Alex Rabe
3
  Donate link: http://alexrabe.boelinger.com/?page_id=80
4
+ Tags: photos, flash, slideshow, images, gallery, media, admin, post, photo-albums, pictures, widgets, photo, picture
5
  Requires at least: 2.1.3
6
+ Tested up to: 2.3.1
7
 
8
  NextGEN Gallery is a full integrated Image Gallery plugin for WordPress with a Flash slideshow option.
9