Gallery – Flagallery Photo Portfolio - Version 2.78

Version Description

Download this release

Release Info

Developer pasyuk
Plugin Icon 128x128 Gallery – Flagallery Photo Portfolio
Version 2.78
Comparing to
See all releases

Code changes from version 2.76 to 2.78

admin/ajax.php CHANGED
@@ -118,7 +118,7 @@ function flag_save_album() {
118
  if ( !is_user_logged_in() )
119
  die('-1');
120
  // check for correct FlAG capability
121
- if ( !current_user_can('FlAG Manage gallery') )
122
  die('-1');
123
 
124
  $g = array();
@@ -126,6 +126,7 @@ function flag_save_album() {
126
  parse_str($_POST['form']);
127
  $result = false;
128
  $album_id = intval($album_id);
 
129
  if($album_name && $album_id) {
130
  if(count($g))
131
  $galstring = implode(',', $g);
118
  if ( !is_user_logged_in() )
119
  die('-1');
120
  // check for correct FlAG capability
121
+ if ( !current_user_can('FlAG Manage others gallery') )
122
  die('-1');
123
 
124
  $g = array();
126
  parse_str($_POST['form']);
127
  $result = false;
128
  $album_id = intval($album_id);
129
+ $album_name = preg_replace('/[^\w\s\._-]+/', '', $album_name);
130
  if($album_name && $album_id) {
131
  if(count($g))
132
  $galstring = implode(',', $g);
admin/flag_install.php CHANGED
@@ -136,7 +136,7 @@ function flag_install () {
136
  add_option("flagVersion", FLAGVERSION);
137
 
138
  include_once( dirname (__FILE__). '/tuning.php');
139
- flag_tune();
140
  }
141
 
142
  function flag_capabilities() {
@@ -314,6 +314,7 @@ function flag_uninstall() {
314
  delete_option( 'flag_options' );
315
  delete_option( 'flag_db_version' );
316
  delete_option( 'flagVersion' );
 
317
 
318
  // now remove the capability
319
  flag_remove_capability("FlAG overview");
136
  add_option("flagVersion", FLAGVERSION);
137
 
138
  include_once( dirname (__FILE__). '/tuning.php');
139
+ flag_tune(false);
140
  }
141
 
142
  function flag_capabilities() {
314
  delete_option( 'flag_options' );
315
  delete_option( 'flag_db_version' );
316
  delete_option( 'flagVersion' );
317
+ delete_option( 'flag_plugin_error' );
318
 
319
  // now remove the capability
320
  flag_remove_capability("FlAG overview");
admin/functions.php CHANGED
@@ -754,13 +754,14 @@ class flagAdmin{
754
  function maybe_import_meta( $id ) {
755
 
756
  require_once(FLAG_ABSPATH . 'lib/meta.php');
757
-
758
- $image = new flagMeta( $id );
759
 
760
- if ( $image->meta_data['saved'] != true ) {
761
- //this flag will inform us the import is already one time performed
762
- $meta['saved'] = true;
763
- $result = flagdb::update_image_meta($image->pid, $meta['common']);
 
764
  } else
765
  return false;
766
 
754
  function maybe_import_meta( $id ) {
755
 
756
  require_once(FLAG_ABSPATH . 'lib/meta.php');
757
+
758
+ $meta_obj = new flagMeta( $id );
759
 
760
+ if ( $meta_obj->image->meta_data['saved'] != true ) {
761
+ $common = $meta_obj->get_common_meta();
762
+ //this flag will inform us that the import is already one time performed
763
+ $common['saved'] = true;
764
+ $result = flagdb::update_image_meta($id, $common);
765
  } else
766
  return false;
767
 
admin/jgallery.php CHANGED
@@ -2,53 +2,53 @@
2
  if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
3
 
4
  global $wpdb, $post;
 
5
  $flag_options = get_option ('flag_options');
6
  $siteurl = site_url();
7
  $c = array();
8
  $isCrawler = flagGetUserNow($_SERVER['HTTP_USER_AGENT']); // check if is a crowler
9
  extract($altColors);
10
  $bg = ($wmode == 'window')? '#'.$Background : 'transparent';
11
- $xml['alt'] .= '<style type="text/css">'.PHP_EOL;
12
  if(!$isCrawler) {
13
- $xml['alt'] .= '@import url("'.plugins_url('/admin/css/flagallery_nocrawler.css', dirname(__FILE__)).'");'.PHP_EOL;
14
  }
15
- $xml['alt'] .= '@import url("'.plugins_url('/admin/css/flagallery_noflash.css', dirname(__FILE__)).'");'.PHP_EOL;
16
  if($isCrawler) {
17
- $xml['alt'] .= '.flag_alternate .flagCatMeta h4 { padding: 4px 10px; margin: 7px 0; border: none; font: 14px Tahoma; text-decoration: none; background:#292929 none; color: #ffffff; }
18
- .flag_alternate .flagCatMeta p { font-size: 12px; }'.PHP_EOL;
19
  }
20
  if($BarsBG) {
21
  $bgBar = ($wmode == 'window')? '#'.$BarsBG : 'transparent';
22
  if(!$isCrawler){
23
- $xml['alt'] .= "#fancybox-title-over .title { color: #{$TitleColor}; }
24
- #fancybox-title-over .descr { color: #{$DescrColor}; }
25
- .flag_alternate .flagcatlinks { background-color: #{$BarsBG}; }
26
- .flag_alternate .flagcatlinks a.flagcat, span.flag_pic_counters { color: #{$CatColor}; background-color: #{$CatBGColor}; }
27
- .flag_alternate .flagcatlinks a.active, .flag_alternate .flagcatlinks a.flagcat:hover { color: #{$CatColorOver}; background-color: #{$CatBGColorOver}; }".PHP_EOL;
28
  }
29
- $xml['alt'] .= ".flag_alternate .flagcategory a.flag_pic_alt { background-color: #{$ThumbBG}; border: 2px solid #{$ThumbBG}; color: #{$ThumbBG}; }
30
- .flag_alternate .flagcategory a.flag_pic_alt:hover { background-color: #{$ThumbBG}; border: 2px solid #{$ThumbLoaderColor}; color: #{$ThumbLoaderColor}; }
31
- .flag_alternate .flagcategory a.flag_pic_alt.current, .flag_alternate .flagcategory a.flag_pic_alt.last { border-color: #{$ThumbLoaderColor}; }".PHP_EOL;
32
  }
33
  if($altColors['FullWindow'] && !$isCrawler){
34
- $xml['alt'] .= ".flagcatlinks a.backlink { color: #{$CatColor}; background-color: #{$CatBGColor}; }".PHP_EOL;
35
  }
36
- $xml['alt'] .= '</style>'.PHP_EOL;
37
  if(!$isCrawler){
38
  if(!intval($flag_options['jAlterGalScript'])) {
39
- $xml['alt'] .= '<link href="'.plugins_url('/flash-album-gallery/admin/js/jquery.fancybox-1.3.4.css').'" rel="stylesheet" type="text/css" />'.PHP_EOL;
40
- $xml['alt'] .= "<script type='text/javascript' src='".plugins_url('/flash-album-gallery/admin/js/jquery.fancybox-1.3.4.pack.js')."'></script>".PHP_EOL;
41
- $xml['alt'] .= "<script type='text/javascript'>var ExtendVar='fancybox', hitajax = '".plugins_url('/lib/hitcounter.php', dirname(__FILE__))."';</script>".PHP_EOL;
42
  } else if(intval($flag_options['jAlterGalScript']) == 1) {
43
- $xml['alt'] .= "<style type='text/css'>@import url('".plugins_url('/admin/js/photoswipe/photoswipe.css', dirname(__FILE__))."');</style>
44
- <script type='text/javascript' src='".plugins_url('/admin/js/photoswipe/klass.min.js', dirname(__FILE__))."'></script>
45
- <script type='text/javascript' src='".plugins_url('/admin/js/photoswipe/code.photoswipe.jquery-3.0.5.min.js', dirname(__FILE__))."'></script>
46
- <script type='text/javascript'>var ExtendVar='photoswipe', hitajax = '".plugins_url('/lib/hitcounter.php', dirname(__FILE__))."';</script>".PHP_EOL;
47
  }
48
  }
49
 
50
- $xml['alt'] .= '<div id="'.$skinID.'_jq" class="flag_alternate">
51
- <div class="flagcatlinks">';
52
  if($altColors['FullWindow'] && !$isCrawler){
53
  $flag_custom = get_post_custom($post->ID);
54
  $backlink = $flag_custom["mb_button_link"][0];
@@ -57,7 +57,7 @@ $xml['alt'] .= '<div id="'.$skinID.'_jq" class="flag_alternate">
57
  $xml['alt'] .= '<a id="backlink" class="backlink" href="'.$backlink.'">'.$flag_custom["mb_button"][0].'</a>';
58
  }
59
  }
60
- $xml['alt'] .= '</div>'.PHP_EOL;
61
 
62
  $gID = explode( '_', $galleryID ); // get the gallery id
63
  if ( is_user_logged_in() ) $exclude_clause = '';
@@ -88,11 +88,11 @@ foreach ( $gID as $galID ) {
88
  $thegalleries['galdesc'] = htmlspecialchars_decode($thegalleries['galdesc']);
89
  $a = $thegalleries;
90
 
91
- $xml['alt'] .= '<div class="flagCatMeta">'.PHP_EOL;
92
- $xml['alt'] .= ' <h4>'.$thegalleries['title'].'</h4>'.PHP_EOL;
93
- $xml['alt'] .= ' <p>'.$thegalleries['galdesc'].'</p>'.PHP_EOL;
94
- $xml['alt'] .= '</div>'.PHP_EOL;
95
- $xml['alt'] .= '<div class="flagcategory" id="gid_'.$galID.'_'.$skinID.'">'.PHP_EOL;
96
  $n = count($thepictures);
97
  $var = floor($n/5);
98
  if($var==0 || $var > 4) $var=4;
@@ -106,7 +106,7 @@ foreach ( $gID as $galID ) {
106
  $pid = intval($picture['pid']);
107
 
108
  if ($isCrawler){
109
- $xml['alt'] .= '<a style="display:block; overflow: hidden; height: 100px; width: 115px; margin-bottom: 10px; background-color: #eeeeee; background-position: 22px 44px; text-align: left;" class="i'. $j++ .' flag_pic_alt" href="'.$siteurl.'/'.$thegalleries['path'].'/'.$picture['filename'].'" id="flag_pic_'.$pid.'" rel="gid_'.$galID.'_'.$skinID.'"><img style="float:left; margin-right: 10px; width: auto; height: auto; min-height:100px; min-width:115px;" title="'.strip_tags($picture['alttext']).'" alt="'.strip_tags($picture['alttext']).'" src="'.$siteurl.'/'.$thegalleries['path'].'/thumbs/thumbs_'.$picture['filename'].'" /><span style="display: block; overflow: hidden; text-decoration: none; color: #000; font-weight: normal;" class="flag_pic_desc" id="flag_desc_'.$pid.'"><strong>'.strip_tags($picture['alttext']).'</strong><br />'.strip_tags($picture['description'],'<b><u><i><span>').'</span></a>'.PHP_EOL;
110
  } else {
111
  if(!$disableViews){
112
  $views = (intval($picture['hitcounter']) < 10000) ? $picture['hitcounter'] : round($picture['hitcounter']/1000, 1).'k';
@@ -115,14 +115,14 @@ foreach ( $gID as $galID ) {
115
  } else {
116
  $views_panel = '';
117
  }
118
- $xml['alt'] .= '<a class="i'. $j++ .' flag_pic_alt" href="'.$siteurl.'/'.$thegalleries['path'].'/'.$picture['filename'].'" id="flag_pic_'.$pid.'" rel="gid_'.$galID.'_'.$skinID.'" title="'.strip_tags($picture['alttext']).'">[img src='.$siteurl.'/'.$thegalleries['path'].'/thumbs/thumbs_'.$picture['filename'].']'.$views_panel.'<span class="flag_pic_desc" id="flag_desc_'.$pid.'"><strong>'.htmlspecialchars($picture['alttext']).'</strong><br /><span>'.htmlspecialchars($picture['description']).'</span></span></a>'.PHP_EOL;
119
  }
120
  }
121
- $xml['alt'] .= '</div>'.PHP_EOL;
122
  $c['galleries'][] = $a + $b;
123
  }
124
  }
125
- $xml['alt'] .= '</div>'.PHP_EOL;
126
  $d = array('properties'=>$data) + $c + $musicData;
127
  $xml['json'] = json_encode($d);
128
  ?>
2
  if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
3
 
4
  global $wpdb, $post;
5
+ $xml = array();
6
  $flag_options = get_option ('flag_options');
7
  $siteurl = site_url();
8
  $c = array();
9
  $isCrawler = flagGetUserNow($_SERVER['HTTP_USER_AGENT']); // check if is a crowler
10
  extract($altColors);
11
  $bg = ($wmode == 'window')? '#'.$Background : 'transparent';
12
+ $xml['alt'] = '<style type="text/css">';
13
  if(!$isCrawler) {
14
+ $xml['alt'] .= '@import url("'.plugins_url('/admin/css/flagallery_nocrawler.css', dirname(__FILE__)).'");';
15
  }
16
+ $xml['alt'] .= '@import url("'.plugins_url('/admin/css/flagallery_noflash.css', dirname(__FILE__)).'");';
17
  if($isCrawler) {
18
+ $xml['alt'] .= '.flag_alternate .flagCatMeta h4 { padding: 4px 10px; margin: 7px 0; border: none; font: 14px Tahoma; text-decoration: none; background:#292929 none; color: #ffffff; }';
19
+ $xml['alt'] .= '.flag_alternate .flagCatMeta p { font-size: 12px; }';
20
  }
21
  if($BarsBG) {
22
  $bgBar = ($wmode == 'window')? '#'.$BarsBG : 'transparent';
23
  if(!$isCrawler){
24
+ $xml['alt'] .= "#fancybox-title-over .title { color: #{$TitleColor}; }";
25
+ $xml['alt'] .= "#fancybox-title-over .descr { color: #{$DescrColor}; }";
26
+ $xml['alt'] .= ".flag_alternate .flagcatlinks { background-color: #{$BarsBG}; }";
27
+ $xml['alt'] .= ".flag_alternate .flagcatlinks a.flagcat, span.flag_pic_counters { color: #{$CatColor}; background-color: #{$CatBGColor}; }";
28
+ $xml['alt'] .= ".flag_alternate .flagcatlinks a.active, .flag_alternate .flagcatlinks a.flagcat:hover { color: #{$CatColorOver}; background-color: #{$CatBGColorOver}; }";
29
  }
30
+ $xml['alt'] .= ".flag_alternate .flagcategory a.flag_pic_alt { background-color: #{$ThumbBG}; border: 2px solid #{$ThumbBG}; color: #{$ThumbBG}; }";
31
+ $xml['alt'] .= ".flag_alternate .flagcategory a.flag_pic_alt:hover { background-color: #{$ThumbBG}; border: 2px solid #{$ThumbLoaderColor}; color: #{$ThumbLoaderColor}; }";
32
+ $xml['alt'] .= ".flag_alternate .flagcategory a.flag_pic_alt.current, .flag_alternate .flagcategory a.flag_pic_alt.last { border-color: #{$ThumbLoaderColor}; }";
33
  }
34
  if($altColors['FullWindow'] && !$isCrawler){
35
+ $xml['alt'] .= ".flagcatlinks a.backlink { color: #{$CatColor}; background-color: #{$CatBGColor}; }";
36
  }
37
+ $xml['alt'] .= '</style>';
38
  if(!$isCrawler){
39
  if(!intval($flag_options['jAlterGalScript'])) {
40
+ $xml['alt'] .= '<link href="'.plugins_url('/flash-album-gallery/admin/js/jquery.fancybox-1.3.4.css').'" rel="stylesheet" type="text/css" />';
41
+ $xml['alt'] .= "<script type='text/javascript' src='".plugins_url('/flash-album-gallery/admin/js/jquery.fancybox-1.3.4.pack.js')."'></script>";
42
+ $xml['alt'] .= "<script type='text/javascript'>var ExtendVar='fancybox', hitajax = '".plugins_url('/lib/hitcounter.php', dirname(__FILE__))."';</script>";
43
  } else if(intval($flag_options['jAlterGalScript']) == 1) {
44
+ $xml['alt'] .= "<style type='text/css'>@import url('".plugins_url('/admin/js/photoswipe/photoswipe.css', dirname(__FILE__))."');</style>";
45
+ $xml['alt'] .= "<script type='text/javascript' src='".plugins_url('/admin/js/photoswipe/klass.min.js', dirname(__FILE__))."'></script>";
46
+ $xml['alt'] .= "<script type='text/javascript' src='".plugins_url('/admin/js/photoswipe/code.photoswipe.jquery-3.0.5.min.js', dirname(__FILE__))."'></script>";
47
+ $xml['alt'] .= "<script type='text/javascript'>var ExtendVar='photoswipe', hitajax = '".plugins_url('/lib/hitcounter.php', dirname(__FILE__))."';</script>";
48
  }
49
  }
50
 
51
+ $xml['alt'] .= '<div id="'.$skinID.'_jq" class="flag_alternate noLightbox"><div class="flagcatlinks">';
 
52
  if($altColors['FullWindow'] && !$isCrawler){
53
  $flag_custom = get_post_custom($post->ID);
54
  $backlink = $flag_custom["mb_button_link"][0];
57
  $xml['alt'] .= '<a id="backlink" class="backlink" href="'.$backlink.'">'.$flag_custom["mb_button"][0].'</a>';
58
  }
59
  }
60
+ $xml['alt'] .= '</div>';
61
 
62
  $gID = explode( '_', $galleryID ); // get the gallery id
63
  if ( is_user_logged_in() ) $exclude_clause = '';
88
  $thegalleries['galdesc'] = htmlspecialchars_decode($thegalleries['galdesc']);
89
  $a = $thegalleries;
90
 
91
+ $xml['alt'] .= '<div class="flagCatMeta">';
92
+ $xml['alt'] .= '<h4>'.$thegalleries['title'].'</h4>';
93
+ $xml['alt'] .= '<p>'.$thegalleries['galdesc'].'</p>';
94
+ $xml['alt'] .= '</div>';
95
+ $xml['alt'] .= '<div class="flagcategory" id="gid_'.$galID.'_'.$skinID.'">';
96
  $n = count($thepictures);
97
  $var = floor($n/5);
98
  if($var==0 || $var > 4) $var=4;
106
  $pid = intval($picture['pid']);
107
 
108
  if ($isCrawler){
109
+ $xml['alt'] .= '<a style="display:block; overflow: hidden; height: 100px; width: 115px; margin-bottom: 10px; background-color: #eeeeee; background-position: 22px 44px; text-align: left;" class="i'. $j++ .' flag_pic_alt" href="'.$siteurl.'/'.$thegalleries['path'].'/'.$picture['filename'].'" id="flag_pic_'.$pid.'" rel="gid_'.$galID.'_'.$skinID.'"><img style="float:left; margin-right: 10px; width: auto; height: auto; min-height:100px; min-width:115px;" title="'.strip_tags($picture['alttext']).'" alt="'.strip_tags($picture['alttext']).'" src="'.$siteurl.'/'.$thegalleries['path'].'/thumbs/thumbs_'.$picture['filename'].'" /><span style="display: block; overflow: hidden; text-decoration: none; color: #000; font-weight: normal;" class="flag_pic_desc" id="flag_desc_'.$pid.'"><strong>'.strip_tags($picture['alttext']).'</strong><br />'.strip_tags($picture['description'],'<b><u><i><span>').'</span></a>';
110
  } else {
111
  if(!$disableViews){
112
  $views = (intval($picture['hitcounter']) < 10000) ? $picture['hitcounter'] : round($picture['hitcounter']/1000, 1).'k';
115
  } else {
116
  $views_panel = '';
117
  }
118
+ $xml['alt'] .= '<a class="i'. $j++ .' flag_pic_alt" href="'.$siteurl.'/'.$thegalleries['path'].'/'.$picture['filename'].'" id="flag_pic_'.$pid.'" rel="gid_'.$galID.'_'.$skinID.'" title="'.strip_tags($picture['alttext']).'">[img src='.$siteurl.'/'.$thegalleries['path'].'/thumbs/thumbs_'.$picture['filename'].']'.$views_panel.'<span class="flag_pic_desc" id="flag_desc_'.$pid.'"><strong>'.htmlspecialchars($picture['alttext']).'</strong><br /><span>'.htmlspecialchars($picture['description']).'</span></span></a>';
119
  }
120
  }
121
+ $xml['alt'] .= '</div>';
122
  $c['galleries'][] = $a + $b;
123
  }
124
  }
125
+ $xml['alt'] .= '</div>';
126
  $d = array('properties'=>$data) + $c + $musicData;
127
  $xml['json'] = json_encode($d);
128
  ?>
admin/js/swfupload.js CHANGED
@@ -941,15 +941,9 @@ SWFUpload.prototype.debugMessage = function (message) {
941
  exceptionMessage = exceptionValues.join("\n") || "";
942
  exceptionValues = exceptionMessage.split("\n");
943
  exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: ");
944
- if (window.console)
945
- console.log(exceptionMessage);
946
- else
947
- SWFUpload.Console.writeLine(exceptionMessage);
948
  } else {
949
- if (window.console)
950
- console.log(message);
951
- else
952
- SWFUpload.Console.writeLine(message);
953
  }
954
  }
955
  };
@@ -971,7 +965,7 @@ SWFUpload.Console.writeLine = function (message) {
971
  console.setAttribute("wrap", "off");
972
  console.wrap = "off";
973
  console.style.overflow = "auto";
974
- console.style.width = "99%";
975
  console.style.height = "350px";
976
  console.style.margin = "5px";
977
  documentForm.appendChild(console);
941
  exceptionMessage = exceptionValues.join("\n") || "";
942
  exceptionValues = exceptionMessage.split("\n");
943
  exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: ");
944
+ SWFUpload.Console.writeLine(exceptionMessage);
 
 
 
945
  } else {
946
+ SWFUpload.Console.writeLine(message);
 
 
 
947
  }
948
  }
949
  };
965
  console.setAttribute("wrap", "off");
966
  console.wrap = "off";
967
  console.style.overflow = "auto";
968
+ console.style.width = "700px";
969
  console.style.height = "350px";
970
  console.style.margin = "5px";
971
  documentForm.appendChild(console);
admin/js/swfupload.swf CHANGED
Binary file
admin/manage-galleries.php CHANGED
@@ -206,6 +206,7 @@ if($gallerylist) {
206
  </table>
207
  </form>
208
  </div>
 
209
  <script type="text/javascript">
210
  /*<![CDATA[*/
211
  jQuery(document).ready(function(){
@@ -308,7 +309,7 @@ if($gallerylist) {
308
  </div>
309
  </div>
310
  </div>
311
-
312
  <!-- #resize_images -->
313
  <div id="resize_images" style="display: none;" >
314
  <form id="form_resize_images" method="POST" accept-charset="utf-8">
206
  </table>
207
  </form>
208
  </div>
209
+ <?php if ( current_user_can('FlAG Manage others gallery') ) { ?>
210
  <script type="text/javascript">
211
  /*<![CDATA[*/
212
  jQuery(document).ready(function(){
309
  </div>
310
  </div>
311
  </div>
312
+ <?php } ?>
313
  <!-- #resize_images -->
314
  <div id="resize_images" style="display: none;" >
315
  <form id="form_resize_images" method="POST" accept-charset="utf-8">
admin/manage.php CHANGED
@@ -122,15 +122,16 @@ class flagManageGallery {
122
  }
123
 
124
  // New Album
125
- if (isset($_POST['album_name'])) {
126
 
127
  check_admin_referer('flag_album');
128
- $newalbum = $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->flagalbum (name) VALUES (%s)", $_POST['album_name']) );
 
129
  // and give me the new id
130
  $newalbum_id = (int) $wpdb->insert_id;
131
 
132
  if($newalbum)
133
- flagGallery::show_message( __( 'Album', 'flag' ) . ' \''.$_POST["album_name"].'\' '.__('successfully created','flag'));
134
 
135
  $this->mode = 'main'; // show mainpage
136
  }
122
  }
123
 
124
  // New Album
125
+ if ( isset($_POST['album_name']) && !empty($_POST['album_name']) ) {
126
 
127
  check_admin_referer('flag_album');
128
+ $album_name = preg_replace('/[^\w\s\._-]+/', '', $_POST['album_name']);
129
+ $newalbum = $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->flagalbum (name) VALUES (%s)", $album_name) );
130
  // and give me the new id
131
  $newalbum_id = (int) $wpdb->insert_id;
132
 
133
  if($newalbum)
134
+ flagGallery::show_message( __( 'Album', 'flag' ) . ' \''.$album_name.'\' '.__('successfully created','flag'));
135
 
136
  $this->mode = 'main'; // show mainpage
137
  }
admin/overview.php CHANGED
@@ -7,7 +7,8 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
7
  * Add the admin overview in wp2.7 style
8
  * @return mixed content
9
  */
10
- function flag_admin_overview() {
 
11
  ?>
12
  <div class="wrap flag-wrap">
13
  <h2><?php _e('GRAND FlAGallery Overview', 'flag'); echo ' v'.FLAGVERSION; ?></h2>
7
  * Add the admin overview in wp2.7 style
8
  * @return mixed content
9
  */
10
+ function flag_admin_overview() {
11
+ echo get_option('flag_plugin_error');
12
  ?>
13
  <div class="wrap flag-wrap">
14
  <h2><?php _e('GRAND FlAGallery Overview', 'flag'); echo ' v'.FLAGVERSION; ?></h2>
admin/settings.php CHANGED
@@ -382,7 +382,7 @@ jQuery(document).ready(function() {
382
  <td><label for="manage_gallery"><select style="width: 150px;" name="manage_gallery" id="manage_gallery"><?php wp_dropdown_roles( flag_get_role('FlAG Manage gallery') ); ?></select></label></td>
383
  </tr>
384
  <tr valign="top">
385
- <th scope="row" style="white-space: nowrap"><?php _e('Manage others gallery', 'flag'); ?>:</th>
386
  <td><label for="manage_others"><select style="width: 150px;" name="manage_others" id="manage_others"><?php wp_dropdown_roles( flag_get_role('FlAG Manage others gallery') ); ?></select></label></td>
387
  </tr>
388
  <tr valign="top">
382
  <td><label for="manage_gallery"><select style="width: 150px;" name="manage_gallery" id="manage_gallery"><?php wp_dropdown_roles( flag_get_role('FlAG Manage gallery') ); ?></select></label></td>
383
  </tr>
384
  <tr valign="top">
385
+ <th scope="row" style="white-space: nowrap"><?php _e('Manage others galleries and Albums', 'flag'); ?>:</th>
386
  <td><label for="manage_others"><select style="width: 150px;" name="manage_others" id="manage_others"><?php wp_dropdown_roles( flag_get_role('FlAG Manage others gallery') ); ?></select></label></td>
387
  </tr>
388
  <tr valign="top">
admin/skin_options.php CHANGED
@@ -18,7 +18,8 @@ $flashPost = file_get_contents("php://input");
18
  // parse properties_skin
19
  $arr = array();
20
  parse_str($flashPost, $arr);
21
- $settingsXML = str_replace("\\","/", dirname(dirname(dirname(__FILE__))).'/flagallery-skins/'.$arr['skin_name'].'/settings/settings.xml');
 
22
  if(isset($arr['properties_skin']) && !empty($arr['properties_skin'])) {
23
  $fp = fopen($settingsXML, "r");
24
  if(!$fp) {
18
  // parse properties_skin
19
  $arr = array();
20
  parse_str($flashPost, $arr);
21
+ if(isset($arr['skin_name']))
22
+ $settingsXML = str_replace("\\","/", dirname(dirname(dirname(__FILE__))).'/flagallery-skins/'.$arr['skin_name'].'/settings/settings.xml');
23
  if(isset($arr['properties_skin']) && !empty($arr['properties_skin'])) {
24
  $fp = fopen($settingsXML, "r");
25
  if(!$fp) {
changelog.txt CHANGED
@@ -1,6 +1,17 @@
1
  GRAND FlAGallery
2
  by CodEasily.com
3
 
 
 
 
 
 
 
 
 
 
 
 
4
  = v2.76 - 13.06.2013 =
5
  * Fixed: Size for thumbs on Manage Images page
6
  * Fixed: Create New Thumbnails not working properly with fix dimensions
1
  GRAND FlAGallery
2
  by CodEasily.com
3
 
4
+ = v2.78 - 26.06.2013 =
5
+ * Fix: bundled free skins not copied to flagallery-skins directory
6
+
7
+ = v2.77 - 25.06.2013 =
8
+ * Fix: vulnerability with albums
9
+ * Fix: PHP Notices
10
+ * Fix: Compatibility with some modern themes
11
+ * Update: New version of swfupload
12
+ * Update: Compatibility with Wordpress SEO plugin
13
+ * Update: Update code for default skins
14
+
15
  = v2.76 - 13.06.2013 =
16
  * Fixed: Size for thumbs on Manage Images page
17
  * Fixed: Create New Thumbnails not working properly with fix dimensions
flag.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: GRAND Flash Album Gallery
4
  Plugin URI: http://codeasily.com/wordpress-plugins/flash-album-gallery/flag/
5
  Description: The GRAND FlAGallery plugin - provides a comprehensive interface for managing photos and images through a set of admin pages, and it displays photos in a way that makes your web site look very professional.
6
- Version: 2.76
7
  Author: Rattus
8
  Author URI: http://codeasily.com/
9
 
@@ -23,7 +23,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You
23
  if (!class_exists('flagLoad')) {
24
  class flagLoad {
25
 
26
- var $version = '2.76';
27
  var $dbversion = '2.75';
28
  var $minium_WP = '3.0';
29
  var $minium_WPMU = '3.0';
@@ -75,6 +75,11 @@ class flagLoad {
75
  add_action('admin_print_scripts-widgets.php', array(&$this, 'flag_widgets_scripts') );
76
  add_filter( 'posts_orderby', 'sort_query_by_post_in', 10, 2 );
77
 
 
 
 
 
 
78
  }
79
 
80
  function start_plugin() {
@@ -204,6 +209,11 @@ class flagLoad {
204
  require_once (dirname (__FILE__) . '/lib/image.php');
205
  require_once (dirname (__FILE__) . '/widgets/widgets.php');
206
 
 
 
 
 
 
207
  // We didn't need all stuff during a AJAX operation
208
  if ( defined('DOING_AJAX') )
209
  require_once (dirname (__FILE__) . '/admin/ajax.php');
@@ -482,4 +492,4 @@ if(!function_exists('sort_query_by_post_in')){
482
  return $sortby;
483
  }
484
  }
485
- ?>
3
  Plugin Name: GRAND Flash Album Gallery
4
  Plugin URI: http://codeasily.com/wordpress-plugins/flash-album-gallery/flag/
5
  Description: The GRAND FlAGallery plugin - provides a comprehensive interface for managing photos and images through a set of admin pages, and it displays photos in a way that makes your web site look very professional.
6
+ Version: 2.78
7
  Author: Rattus
8
  Author URI: http://codeasily.com/
9
 
23
  if (!class_exists('flagLoad')) {
24
  class flagLoad {
25
 
26
+ var $version = '2.78';
27
  var $dbversion = '2.75';
28
  var $minium_WP = '3.0';
29
  var $minium_WPMU = '3.0';
75
  add_action('admin_print_scripts-widgets.php', array(&$this, 'flag_widgets_scripts') );
76
  add_filter( 'posts_orderby', 'sort_query_by_post_in', 10, 2 );
77
 
78
+ add_action('activated_plugin', array(&$this, 'save_error') );
79
+ }
80
+
81
+ function save_error(){
82
+ update_option('flag_plugin_error', ob_get_contents());
83
  }
84
 
85
  function start_plugin() {
209
  require_once (dirname (__FILE__) . '/lib/image.php');
210
  require_once (dirname (__FILE__) . '/widgets/widgets.php');
211
 
212
+ $current_plugins = get_option('active_plugins');
213
+ if (in_array('wordpress-seo/wp-seo.php', $current_plugins)) {
214
+ require_once (dirname (__FILE__) . '/lib/sitemap.php');
215
+ }
216
+
217
  // We didn't need all stuff during a AJAX operation
218
  if ( defined('DOING_AJAX') )
219
  require_once (dirname (__FILE__) . '/admin/ajax.php');
492
  return $sortby;
493
  }
494
  }
495
+ ?>
lib/class.swfobject.php CHANGED
@@ -17,16 +17,17 @@ class flag_swfobject {
17
 
18
  /**
19
  * flag_swfobject::flag_swfobject()
20
- *
21
- * @param string $swfUrl (required) specifies the URL of your SWF
22
- * @param string $id (required) specifies the id of the HTML element (containing your alternative content) you would like to have replaced by your Flash content
23
- * @param string $width (required) specifies the width of your SWF
24
- * @param string $height (required) specifies the height of your SWF
25
- * @param string $version (required) specifies the Flash player version your SWF is published for (format is: "major.minor.release")
26
- * @param string $expressInstallSwfurl (optional) specifies the URL of your express install SWF and activates Adobe express install
27
- * @param array $flashvars (optional) specifies your flashvars with name:value pairs
28
- * @param array $params (optional) specifies your nested object element params with name:value pair
29
- * @param array $attributes (optional) specifies your object's attributes with name:value pairs
 
30
  * @return string the content
31
  */
32
  function flag_swfobject( $swfUrl, $id, $width, $height, $version, $expressInstallSwfurl = false, $flashvars = false, $params = false, $attributes = false ) {
@@ -45,9 +46,9 @@ class flag_swfobject {
45
  $this->params = ( is_array($params) ) ? $params : array();
46
  $this->attributes = ( is_array($attributes) ) ? $attributes : array();
47
 
48
- $this->embedSWF = 'if(jQuery.isFunction(swfobject.switchOffAutoHideShow)){ swfobject.switchOffAutoHideShow(); }'."\n";
49
- $this->embedSWF .= 'swfobject.embedSWF("'. $swfUrl .'", "'. $this->id .'", "'. $width .'", "'. $height .'", "'. $version .'", "'. $expressInstallSwfurl .'", this.flashvars, this.params , this.attr );' . "\n";
50
- $this->embedSWF .= 'swfobject.createCSS("#'. $id . '","outline:none");' . "\n";
51
  }
52
 
53
  function output ($alternate = '') {
@@ -59,9 +60,9 @@ class flag_swfobject {
59
  }
60
  // count up if we have more than one swfobject
61
  $swfCounter++;
62
- $out = "\n".'<div class="'. $this->classname .'" id="'. $this->id .'">';
63
  $out .= $alternate;
64
- $out .= "\n".'</div>';
65
 
66
  return $out;
67
  }
@@ -69,13 +70,13 @@ class flag_swfobject {
69
  function javascript () {
70
 
71
  //Build javascript
72
- $this->js = "\nvar " . $this->id . " = {\n";
73
- $this->js .= $this->add_js_parameters('params', $this->params) . ",\n";
74
- $this->js .= $this->add_js_parameters('flashvars', $this->flashvars) . ",\n";
75
- $this->js .= $this->add_js_parameters('attr', $this->attributes) . ",\n";
76
- $this->js .= "\tstart : function() {" . "\n\t\t";
77
  $this->js .= $this->embedSWF;
78
- $this->js .= "\t}\n}\n";
79
  $this->js .= $this->id . '.start();';
80
 
81
  return $this->js;
@@ -123,10 +124,10 @@ class flag_swfobject {
123
  foreach ($params as $key => $value) {
124
  if ( !empty($list) )
125
  $list .= ",";
126
- $list .= "\n\t\t" . $key . " : " . "'" . $value ."'";
127
  }
128
  }
129
- $js = "\t" . $name . ' : {' . $list . '}';
130
  return $js;
131
  }
132
 
17
 
18
  /**
19
  * flag_swfobject::flag_swfobject()
20
+ *
21
+ * @param string $swfUrl (required) specifies the URL of your SWF
22
+ * @param string $id (required) specifies the id of the HTML element (containing your alternative content) you would like to have replaced by your Flash content
23
+ * @param string $width (required) specifies the width of your SWF
24
+ * @param string $height (required) specifies the height of your SWF
25
+ * @param string $version (required) specifies the Flash player version your SWF is published for (format is: "major.minor.release")
26
+ * @param bool|string $expressInstallSwfurl (optional) specifies the URL of your express install SWF and activates Adobe express install
27
+ * @param array|bool $flashvars (optional) specifies your flashvars with name:value pairs
28
+ * @param array|bool $params (optional) specifies your nested object element params with name:value pair
29
+ * @param array|bool $attributes (optional) specifies your object's attributes with name:value pairs
30
+ *
31
  * @return string the content
32
  */
33
  function flag_swfobject( $swfUrl, $id, $width, $height, $version, $expressInstallSwfurl = false, $flashvars = false, $params = false, $attributes = false ) {
46
  $this->params = ( is_array($params) ) ? $params : array();
47
  $this->attributes = ( is_array($attributes) ) ? $attributes : array();
48
 
49
+ $this->embedSWF = 'if(jQuery.isFunction(swfobject.switchOffAutoHideShow)){ swfobject.switchOffAutoHideShow(); }';
50
+ $this->embedSWF .= 'swfobject.embedSWF("'. $swfUrl .'", "'. $this->id .'", "'. $width .'", "'. $height .'", "'. $version .'", "'. $expressInstallSwfurl .'", this.flashvars, this.params , this.attr );';
51
+ $this->embedSWF .= 'swfobject.createCSS("#'. $id . '","outline:none");';
52
  }
53
 
54
  function output ($alternate = '') {
60
  }
61
  // count up if we have more than one swfobject
62
  $swfCounter++;
63
+ $out = '<div class="'. $this->classname .'" id="'. $this->id .'">';
64
  $out .= $alternate;
65
+ $out .= '</div>';
66
 
67
  return $out;
68
  }
70
  function javascript () {
71
 
72
  //Build javascript
73
+ $this->js = "var " . $this->id . " = {";
74
+ $this->js .= $this->add_js_parameters('params', $this->params) . ",";
75
+ $this->js .= $this->add_js_parameters('flashvars', $this->flashvars) . ",";
76
+ $this->js .= $this->add_js_parameters('attr', $this->attributes) . ",";
77
+ $this->js .= "start : function() {";
78
  $this->js .= $this->embedSWF;
79
+ $this->js .= "}};";
80
  $this->js .= $this->id . '.start();';
81
 
82
  return $this->js;
124
  foreach ($params as $key => $value) {
125
  if ( !empty($list) )
126
  $list .= ",";
127
+ $list .= $key . ": " . "'" . $value ."'";
128
  }
129
  }
130
+ $js = $name . ': {' . $list . '}';
131
  return $js;
132
  }
133
 
lib/shortcodes.php CHANGED
@@ -277,4 +277,4 @@ class FlAG_shortcodes {
277
  // let's use it
278
  $flagShortcodes = new FlAG_Shortcodes;
279
 
280
- ?>
277
  // let's use it
278
  $flagShortcodes = new FlAG_Shortcodes;
279
 
280
+ ?>
lib/sitemap.php ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * PHP Class for Wordpress SEO plugin
4
+ *
5
+ */
6
+ class flagallerySitemaps {
7
+
8
+ var $images = array();
9
+
10
+ /**
11
+ * flagallerySitemaps::__construct()
12
+ */
13
+ function __construct() {
14
+
15
+ add_filter('wpseo_sitemap_urlimages', array( &$this, 'add_wpseo_xml_sitemap_images'), 10, 2);
16
+
17
+ }
18
+
19
+ /**
20
+ * Filter support for WordPress SEO by Yoast 0.4.0 or higher ( http://wordpress.org/extend/plugins/wordpress-seo/ )
21
+ *
22
+ * @param array $images
23
+ * @param int $post_id
24
+ *
25
+ * @return array $image list of all founded images
26
+ */
27
+ function add_wpseo_xml_sitemap_images( $images, $post_id ) {
28
+
29
+ $this->images = $images;
30
+
31
+ // first get the content of the post/page
32
+ $p = get_post($post_id);
33
+
34
+ if('flagallery' == get_post_type( $post_id )){
35
+ $flag_custom = get_post_custom($post_id);
36
+ $content = $flag_custom["mb_scode"][0];
37
+ } else {
38
+ $content = $p->post_content;
39
+ }
40
+
41
+ // Don't process the images in the normal way
42
+ remove_all_shortcodes();
43
+
44
+ add_shortcode( 'flagallery', array(&$this, 'show_flashalbum' ) );
45
+
46
+ // Search now for shortcodes
47
+ do_shortcode( $content );
48
+
49
+ return $this->images;
50
+ }
51
+
52
+ /**
53
+ * Parse the flagallery shortcode and return all images into an array
54
+ *
55
+ * @param string $atts
56
+ * @return string
57
+ */
58
+ function show_flashalbum( $atts ) {
59
+ global $wpdb, $flagdb;
60
+
61
+ extract(shortcode_atts(array(
62
+ 'gid' => '',
63
+ 'album' => '',
64
+ 'exclude' => ''
65
+ ), $atts ));
66
+
67
+ $siteurl = site_url();
68
+ /**
69
+ * @var $album
70
+ * @var $gid
71
+ * @var $exclude
72
+ **/
73
+ if($album) {
74
+ $gallerylist = $flagdb->get_album($album);
75
+ $ids = explode( ',', $gallerylist );
76
+ $galleryIDs = array();
77
+ foreach ($ids as $id) {
78
+ $galleryIDs[] = $wpdb->get_var($wpdb->prepare("SELECT gid FROM {$wpdb->flaggallery} WHERE status = 0 AND gid = %d", $id));
79
+ }
80
+ $galleryIDs = array_filter($galleryIDs);
81
+
82
+ } elseif($gid == "all") {
83
+ $galleryIDs = $gallerylist = array();
84
+ $excludelist = explode(',',$exclude);
85
+ $galleries = $flagdb->find_all_galleries();
86
+ foreach($galleries as $gallery) {
87
+ if (in_array($gallery->gid, $excludelist))
88
+ continue;
89
+ $galleryIDs[] = $gallery->gid;
90
+ }
91
+
92
+ } else {
93
+ $ids = explode( ',', $gid );
94
+
95
+ $galleryIDs = array();
96
+ foreach ($ids as $id) {
97
+ $id = intval($id);
98
+ $galleryIDs[] = $wpdb->get_var($wpdb->prepare("SELECT gid FROM {$wpdb->flaggallery} WHERE status = 0 AND gid = %d", $id));
99
+ }
100
+ $galleryIDs = array_filter($galleryIDs);
101
+
102
+ }
103
+
104
+ if(empty($galleryIDs))
105
+ return '';
106
+
107
+ foreach ( $galleryIDs as $galID ) {
108
+ $galID = (int) $galID;
109
+ $status = $wpdb->get_var("SELECT status FROM $wpdb->flaggallery WHERE gid={$galID}");
110
+ if(intval($status)){
111
+ continue;
112
+ }
113
+
114
+ $path = $wpdb->get_var("SELECT path FROM $wpdb->flaggallery WHERE gid={$galID}");
115
+ $thepictures = $wpdb->get_results("SELECT filename, description, alttext FROM $wpdb->flagpictures WHERE galleryid = '{$galID}' AND exclude<>1", ARRAY_A);
116
+
117
+
118
+ if (is_array ($thepictures) && count($thepictures)){
119
+ foreach ($thepictures as $picture) {
120
+ $picture = array_map('stripslashes', $picture);
121
+ $newimage = array();
122
+ $newimage['src'] = $newimage['sc'] = $siteurl.'/'.$path.'/'.$picture['filename'];
123
+ if ( !empty($picture['alttext']) )
124
+ $newimage['title'] = strip_tags($picture['alttext']);
125
+ if ( !empty($picture['description']) )
126
+ $newimage['alt'] = strip_tags($picture['description']);
127
+ $this->images[] = $newimage;
128
+ }
129
+ }
130
+ }
131
+
132
+ return '';
133
+ }
134
+
135
+ }
136
+ $flagallerySitemaps = new flagallerySitemaps();
lib/swfobject.php CHANGED
@@ -146,15 +146,24 @@ function flagShowFlashAlbum($galleryID, $name='Gallery', $width='', $height='',
146
  }
147
  // add now the script code
148
  if(!flagGetUserNow($_SERVER['HTTP_USER_AGENT']) && !preg_match("/Android/i", $_SERVER['HTTP_USER_AGENT'])){
149
- $out .= "\n".'<script type="text/javascript" defer="defer">';
150
- $out .= "\n".'function json_xml_'.$skinID.'(e){ return '.$xml['json'].'; }';
151
- $out .= "\n".'flag_alt[\''.$skinID.'\'] = jQuery("div#'.$skinID.'_jq").clone().wrap(document.createElement(\'div\')).parent().html();';
152
  $out .= $swfobject->javascript();
153
- $out .= "\n".'</script>';
154
  }
155
 
156
  $out = apply_filters('flag_show_flash_content', $out);
157
 
 
 
 
 
 
 
 
 
 
158
  return $out;
159
  }
160
 
@@ -183,6 +192,16 @@ function flagShowMPlayer($playlist, $width, $height, $wmode='', $skin='', $isWid
183
  'isWidget' => $isWidget
184
  );
185
  $out = apply_filters( 'flagShowMusicSkin', $args );
 
 
 
 
 
 
 
 
 
 
186
  return $out;
187
  }
188
 
@@ -214,6 +233,16 @@ function flagShowVPlayer($playlist, $width, $height, $wmode='') {
214
  'crawler' => $isCrawler
215
  );
216
  $out = apply_filters( 'flagShowVideoSkin', $args );
 
 
 
 
 
 
 
 
 
 
217
  return $out;
218
  }
219
 
@@ -256,13 +285,22 @@ function flagShowVmPlayer($id, $w, $h, $autoplay) {
256
  $out = '<div class="grandflv">' . $swfobject->output($alternative) . '</div>';
257
  if(!flagGetUserNow($_SERVER['HTTP_USER_AGENT'])){
258
  // add now the script code
259
- $out .= "\n".'<script type="text/javascript" defer="defer">';
260
  $out .= $swfobject->javascript();
261
- $out .= "\n".'</script>';
262
  }
263
 
264
  $out = apply_filters('flag_flv_mini', $out);
265
 
 
 
 
 
 
 
 
 
 
266
  return $out;
267
  }
268
 
@@ -296,6 +334,16 @@ function flagShowBanner($xml, $width, $height, $wmode='') {
296
  'crawler' => $isCrawler
297
  );
298
  $out = apply_filters( 'flagShowBannerSkin', $args );
 
 
 
 
 
 
 
 
 
 
299
  return $out;
300
  }
301
 
@@ -328,6 +376,16 @@ function flagShowWidgetBanner($xml, $width, $height, $skin) {
328
  'height' => $height
329
  );
330
  $out = apply_filters( 'flagShowWidgetBannerSkin', $args );
 
 
 
 
 
 
 
 
 
 
331
  return $out;
332
  }
333
 
@@ -343,7 +401,7 @@ function flagGetBetween($content,$start,$end){
343
  function flagGetUserNow($userAgent) {
344
  $crawlers = 'Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|FeedBurner|' .
345
  'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|' .
346
- 'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby|yandex';
347
  $isCrawler = (preg_match("/$crawlers/i", $userAgent) > 0);
348
  return $isCrawler;
349
  }
146
  }
147
  // add now the script code
148
  if(!flagGetUserNow($_SERVER['HTTP_USER_AGENT']) && !preg_match("/Android/i", $_SERVER['HTTP_USER_AGENT'])){
149
+ $out .= '<script type="text/javascript" defer="defer">';
150
+ $out .= 'function json_xml_'.$skinID.'(e){ return '.$xml['json'].'; }';
151
+ $out .= 'flag_alt[\''.$skinID.'\'] = jQuery("div#'.$skinID.'_jq").clone().wrap(document.createElement(\'div\')).parent().html();';
152
  $out .= $swfobject->javascript();
153
+ $out .= '</script>';
154
  }
155
 
156
  $out = apply_filters('flag_show_flash_content', $out);
157
 
158
+ // Replace doubled spaces with single ones (ignored in HTML any way)
159
+ // Remove single and multiline comments, tabs and newline chars
160
+ $out = preg_replace('@(\s){2,}@', '\1', $out);
161
+ $out = preg_replace(
162
+ '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
163
+ '',
164
+ $out
165
+ );
166
+
167
  return $out;
168
  }
169
 
192
  'isWidget' => $isWidget
193
  );
194
  $out = apply_filters( 'flagShowMusicSkin', $args );
195
+
196
+ // Replace doubled spaces with single ones (ignored in HTML any way)
197
+ // Remove single and multiline comments, tabs and newline chars
198
+ //$out = preg_replace('@(\s){2,}@', '\1', $out);
199
+ //$out = preg_replace(
200
+ // '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
201
+ // '',
202
+ // $out
203
+ //);
204
+
205
  return $out;
206
  }
207
 
233
  'crawler' => $isCrawler
234
  );
235
  $out = apply_filters( 'flagShowVideoSkin', $args );
236
+
237
+ // Replace doubled spaces with single ones (ignored in HTML any way)
238
+ // Remove single and multiline comments, tabs and newline chars
239
+ //$out = preg_replace('@(\s){2,}@', '\1', $out);
240
+ //$out = preg_replace(
241
+ // '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
242
+ // '',
243
+ // $out
244
+ //);
245
+
246
  return $out;
247
  }
248
 
285
  $out = '<div class="grandflv">' . $swfobject->output($alternative) . '</div>';
286
  if(!flagGetUserNow($_SERVER['HTTP_USER_AGENT'])){
287
  // add now the script code
288
+ $out .= '<script type="text/javascript" defer="defer">';
289
  $out .= $swfobject->javascript();
290
+ $out .= '</script>';
291
  }
292
 
293
  $out = apply_filters('flag_flv_mini', $out);
294
 
295
+ // Replace doubled spaces with single ones (ignored in HTML any way)
296
+ // Remove single and multiline comments, tabs and newline chars
297
+ //$out = preg_replace('@(\s){2,}@', '\1', $out);
298
+ //$out = preg_replace(
299
+ // '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
300
+ // '',
301
+ // $out
302
+ //);
303
+
304
  return $out;
305
  }
306
 
334
  'crawler' => $isCrawler
335
  );
336
  $out = apply_filters( 'flagShowBannerSkin', $args );
337
+
338
+ // Replace doubled spaces with single ones (ignored in HTML any way)
339
+ // Remove single and multiline comments, tabs and newline chars
340
+ //$out = preg_replace('@(\s){2,}@', '\1', $out);
341
+ //$out = preg_replace(
342
+ // '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
343
+ // '',
344
+ // $out
345
+ //);
346
+
347
  return $out;
348
  }
349
 
376
  'height' => $height
377
  );
378
  $out = apply_filters( 'flagShowWidgetBannerSkin', $args );
379
+
380
+ // Replace doubled spaces with single ones (ignored in HTML any way)
381
+ // Remove single and multiline comments, tabs and newline chars
382
+ //$out = preg_replace('@(\s){2,}@', '\1', $out);
383
+ //$out = preg_replace(
384
+ // '@(/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/)|((?<!:)//.*)|[\t\r\n]@i',
385
+ // '',
386
+ // $out
387
+ //);
388
+
389
  return $out;
390
  }
391
 
401
  function flagGetUserNow($userAgent) {
402
  $crawlers = 'Google|msnbot|Rambler|Yahoo|AbachoBOT|accoona|FeedBurner|' .
403
  'AcioRobot|ASPSeek|CocoCrawler|Dumbot|FAST-WebCrawler|' .
404
+ 'GeonaBot|Gigabot|Lycos|MSRBOT|Scooter|AltaVista|IDBot|eStyle|Scrubby|yandex|facebook';
405
  $isCrawler = (preg_match("/$crawlers/i", $userAgent) > 0);
406
  return $isCrawler;
407
  }
readme.txt CHANGED
@@ -50,6 +50,17 @@ New plugin:
50
 
51
  == Changelog ==
52
 
 
 
 
 
 
 
 
 
 
 
 
53
  = v2.76 - 13.06.2013 =
54
  * Fixed: Size for thumbs on Manage Images page
55
  * Fixed: Create New Thumbnails not working properly with fix dimensions
50
 
51
  == Changelog ==
52
 
53
+ = v2.78 - 26.06.2013 =
54
+ * Fix: bundled free skins not copied to flagallery-skins directory
55
+
56
+ = v2.77 - 25.06.2013 =
57
+ * Fix: vulnerability with albums
58
+ * Fix: PHP Notices
59
+ * Fix: Compatibility with some modern themes
60
+ * Update: New version of swfupload
61
+ * Update: Compatibility with Wordpress SEO plugin
62
+ * Update: Update code for default skins
63
+
64
  = v2.76 - 13.06.2013 =
65
  * Fixed: Size for thumbs on Manage Images page
66
  * Fixed: Create New Thumbnails not working properly with fix dimensions
skins/banner_default/banner_default.php CHANGED
@@ -5,7 +5,7 @@ Skin URI:
5
  Description: New version! Responsive layout. Themes available.
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
- Version: 2.1
9
  */
10
 
11
  function flagShowSkin_banner_default($args) {
@@ -45,24 +45,24 @@ function flagShowSkin_banner_default($args) {
45
  <script type="text/javascript">
46
  jQuery(window).load(function() {
47
  jQuery("#slider_'.$skinID.'").nivoSlider({
48
- effect:"'.$effect.'", // Specify sets like: fold,fade,sliceDown
49
- slices:'.$slices.', // For slice animations
50
- boxCols:8, // For box animations
51
- boxRows:4, // For box animations
52
- animSpeed:'.$animSpeed.', // Slide transition speed
53
- pauseTime:'.$pauseTime.', // How long each slide will show
54
- startSlide:'.$startSlide.', // Set starting Slide (0 index)
55
- directionNav:'.$directionNav.', // Next & Prev navigation
56
- controlNav:'.$controlNav.', // 1,2,3... navigation
57
- controlNavThumbs:false, // Use thumbnails for Control Nav
58
- pauseOnHover:'.$pauseOnHover.', // Stop animation while hovering
59
- prevText:"Prev", // Prev directionNav text
60
- nextText:"Next", // Next directionNav text
61
  randomStart: '.$randomStart.'
62
  });
63
  });
64
  </script>';
65
- $marginBot = $keyboardNav? '55px' : '0';
66
  $out .= '
67
  <div class="slider-wrapper theme-'.$theme.'" style="position: relative; margin-bottom:'.$marginBot.'">
68
  <div class="ribbon"></div>
5
  Description: New version! Responsive layout. Themes available.
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
+ Version: 2.2
9
  */
10
 
11
  function flagShowSkin_banner_default($args) {
45
  <script type="text/javascript">
46
  jQuery(window).load(function() {
47
  jQuery("#slider_'.$skinID.'").nivoSlider({
48
+ effect:"'.$effect.'",
49
+ slices:'.$slices.',
50
+ boxCols:8,
51
+ boxRows:4,
52
+ animSpeed:'.$animSpeed.',
53
+ pauseTime:'.$pauseTime.',
54
+ startSlide:'.$startSlide.',
55
+ directionNav:'.$directionNav.',
56
+ controlNav:'.$controlNav.',
57
+ controlNavThumbs:false,
58
+ pauseOnHover:'.$pauseOnHover.',
59
+ prevText:"Prev",
60
+ nextText:"Next",
61
  randomStart: '.$randomStart.'
62
  });
63
  });
64
  </script>';
65
+ $marginBot = (isset($keyboardNav) && $keyboardNav)? '55px' : '0';
66
  $out .= '
67
  <div class="slider-wrapper theme-'.$theme.'" style="position: relative; margin-bottom:'.$marginBot.'">
68
  <div class="ribbon"></div>
skins/banner_default/settings/settings.xml CHANGED
@@ -1,5 +1,5 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <panel title="Banner Box Skin 2.1">
3
  <item type="comboBox" name="theme">
4
  <title><![CDATA[Choose theme]]></title>
5
  <data>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
+ <panel title="Banner Box Skin 2.2">
3
  <item type="comboBox" name="theme">
4
  <title><![CDATA[Choose theme]]></title>
5
  <data>
skins/banner_widget_default/banner_widget_default.php CHANGED
@@ -5,7 +5,7 @@ Skin URI:
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
- Version: 1.1
9
  */
10
 
11
  function flagShowSkin_banner_widget_default($args) {
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
+ Version: 1.2
9
  */
10
 
11
  function flagShowSkin_banner_widget_default($args) {
skins/banner_widget_default/jgallery.php CHANGED
@@ -45,7 +45,6 @@ filter:alpha(opacity=90);
45
  .grandBannerAlternative span strong { font-size: 14px; margin-bottom: 3px; }
46
  </style>
47
  <script type="text/javascript">
48
- //<![CDATA[
49
  jQuery(document).ready(function() {
50
  var fv = swfobject.getFlashPlayerVersion();
51
  if(fv.major<9){
@@ -70,19 +69,18 @@ jQuery(document).ready(function() {
70
  jQuery(nextSlideElement).addClass('loaded').html(d);
71
  }
72
  },
73
- containerResize: 0, // resize container to fit largest slide
74
- fx: 'fade',// name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
75
- next: '#<?php echo $skinID; ?>_next', // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide
76
- pause: 1, // true to enable "pause on hover"
77
- prev: '#<?php echo $skinID; ?>_prev', // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide
78
- requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
79
- speed: 1000, // speed of the transition (any valid fx speed value)
80
- startingSlide: 0, // zero-based index of the first slide to be displayed
81
- timeout: <?php if($autoPlay){ echo ($slideshowDelay * 1000); } else { echo '0'; } ?>, // milliseconds between slide transitions (0 to disable auto advance)
82
  });
83
  }
84
  });
85
- //]]>
86
  </script>
87
  <div id="<?php echo $skinID; ?>_jq"><div class="grandBannerAlternative">
88
  <?php
45
  .grandBannerAlternative span strong { font-size: 14px; margin-bottom: 3px; }
46
  </style>
47
  <script type="text/javascript">
 
48
  jQuery(document).ready(function() {
49
  var fv = swfobject.getFlashPlayerVersion();
50
  if(fv.major<9){
69
  jQuery(nextSlideElement).addClass('loaded').html(d);
70
  }
71
  },
72
+ containerResize: 0,
73
+ fx: 'fade',
74
+ next: '#<?php echo $skinID; ?>_next',
75
+ pause: 1,
76
+ prev: '#<?php echo $skinID; ?>_prev',
77
+ requeueOnImageNotLoaded: true,
78
+ speed: 1000,
79
+ startingSlide: 0,
80
+ timeout: <?php if($autoPlay){ echo ($slideshowDelay * 1000); } else { echo '0'; } ?>
81
  });
82
  }
83
  });
 
84
  </script>
85
  <div id="<?php echo $skinID; ?>_jq"><div class="grandBannerAlternative">
86
  <?php
skins/banner_widget_default/settings/settings.xml CHANGED
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="checkBox" name="autoPlay">
3
  <item type="numericSteper" name="slideshowDelay">
4
  <title><![CDATA[Slideshow Delay]]></title>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="checkBox" name="autoPlay">
3
  <item type="numericSteper" name="slideshowDelay">
4
  <title><![CDATA[Slideshow Delay]]></title>
skins/compact_music_player/compact_music_player.php CHANGED
@@ -5,7 +5,7 @@ Skin URI:
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
- Version: 1.1
9
  */
10
 
11
  function flagShowSkin_music_compact($args) {
@@ -75,9 +75,9 @@ function flagShowSkin_music_compact($args) {
75
  // create the output
76
  $out = '<div class="grandmusic">' . $swfobject->output($alternative) . '</div>';
77
  // add now the script code
78
- $out .= "\n".'<script type="text/javascript" defer="defer">';
79
  $out .= $swfobject->javascript();
80
- $out .= "\n".'</script>';
81
 
82
  $out = apply_filters('flag_show_flash_content', $out);
83
 
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
+ Version: 1.2
9
  */
10
 
11
  function flagShowSkin_music_compact($args) {
75
  // create the output
76
  $out = '<div class="grandmusic">' . $swfobject->output($alternative) . '</div>';
77
  // add now the script code
78
+ $out .= '<script type="text/javascript" defer="defer">';
79
  $out .= $swfobject->javascript();
80
+ $out .= '</script>';
81
 
82
  $out = apply_filters('flag_show_flash_content', $out);
83
 
skins/compact_music_player/settings/settings.xml CHANGED
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="colorPicker" name="property2">
3
  <property0><![CDATA[transparent]]></property0>
4
  <property1>0xffffff</property1>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="colorPicker" name="property2">
3
  <property0><![CDATA[transparent]]></property0>
4
  <property1>0xffffff</property1>
skins/music_default/music_default.php CHANGED
@@ -5,7 +5,7 @@ Skin URI:
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
- Version: 1.3
9
  */
10
 
11
  function flagShowSkin_music_default($args) {
@@ -76,9 +76,9 @@ function flagShowSkin_music_default($args) {
76
  $out = '<div class="grandmusic">' . $swfobject->output($alternative) . '</div>';
77
  // add now the script code
78
  if(!$crawler){
79
- $out .= "\n".'<script type="text/javascript" defer="defer">';
80
  $out .= $swfobject->javascript();
81
- $out .= "\n".'</script>';
82
  }
83
 
84
  $out = apply_filters('flag_show_flash_content', $out);
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
+ Version: 1.4
9
  */
10
 
11
  function flagShowSkin_music_default($args) {
76
  $out = '<div class="grandmusic">' . $swfobject->output($alternative) . '</div>';
77
  // add now the script code
78
  if(!$crawler){
79
+ $out .= '<script type="text/javascript" defer="defer">';
80
  $out .= $swfobject->javascript();
81
+ $out .= '</script>';
82
  }
83
 
84
  $out = apply_filters('flag_show_flash_content', $out);
skins/music_default/settings/settings.xml CHANGED
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
  <property0><![CDATA[opaque]]></property0>
3
  <property1>0xffffff</property1>
4
  <property2>0x3383a7</property2>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
  <property0><![CDATA[opaque]]></property0>
3
  <property1>0xffffff</property1>
4
  <property2>0x3383a7</property2>
skins/video_default/settings/settings.xml CHANGED
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="checkBox" name="swfmousewheel">
3
  <title><![CDATA[SWF Mouse Wheel]]></title>
4
  <description><![CDATA[Turn On/Off mouse wheel detection over Gallery.]]></description>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
  <item type="checkBox" name="swfmousewheel">
3
  <title><![CDATA[SWF Mouse Wheel]]></title>
4
  <description><![CDATA[Turn On/Off mouse wheel detection over Gallery.]]></description>
skins/video_default/video_default.php CHANGED
@@ -5,7 +5,7 @@ Skin URI:
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
- Version: 1.1
9
  */
10
 
11
  function flagShowSkin_video_default($args) {
@@ -67,9 +67,9 @@ function flagShowSkin_video_default($args) {
67
  // create the output
68
  $out = '<div class="grandvideo">' . $swfobject->output($alternative) . '</div>';
69
  // add now the script code
70
- $out .= "\n".'<script type="text/javascript" defer="defer">';
71
  $out .= $swfobject->javascript();
72
- $out .= "\n".'</script>';
73
 
74
  $out = apply_filters('flag_show_flash_v_content', $out);
75
 
5
  Description:
6
  Author: PGC
7
  Author URI: http://PhotoGalleryCreator.com
8
+ Version: 1.2
9
  */
10
 
11
  function flagShowSkin_video_default($args) {
67
  // create the output
68
  $out = '<div class="grandvideo">' . $swfobject->output($alternative) . '</div>';
69
  // add now the script code
70
+ $out .= '<script type="text/javascript" defer="defer">';
71
  $out .= $swfobject->javascript();
72
+ $out .= '</script>';
73
 
74
  $out = apply_filters('flag_show_flash_v_content', $out);
75