Changeset 12333


Ignore:
Timestamp:
10/03/11 14:18:46 (8 years ago)
Author:
plg
Message:

Make Community plugin compatible with the new upload form

The privacy level is set at the beginning of uploadify because Piwigo core
don't use 8 by default.

As soon as the user has created an album, he can't create another one (too
complicated to refresh the list of parent albums: this feature doesn't deserve
to make the code more complexe)

Location:
extensions/community
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • extensions/community/add_photos.php

    r10756 r12333  
    3232define('PHOTOS_ADD_BASE_URL', make_index_url(array('section' => 'add_photos'))); 
    3333 
    34 prepare_upload_configuration(); 
    35  
    3634$user_permissions = community_get_user_permissions($user['id']); 
    3735 
     
    4745$page['errors'] = array(); 
    4846$page['infos'] = array(); 
     47 
     48// this is for "browser uploader", for Flash Uploader the problem is solved 
     49// with function community_uploadify_privacy_level (see main.inc.php) 
    4950$_POST['level'] = 16; 
    5051 
     
    5354  $hacking_attempt = false; 
    5455   
    55   if ('existing' == $_POST['category_type']) 
    56   { 
    57     // is the user authorized to upload in this album? 
    58     if (!in_array($_POST['category'], $user_permissions['upload_categories'])) 
    59     { 
    60       echo 'Hacking attempt, you have no permission to upload in this album'; 
    61       $hacking_attempt = true; 
    62     } 
    63   } 
    64   elseif ('new' == $_POST['category_type']) 
    65   { 
    66     if (!in_array($_POST['category_parent'], $user_permissions['create_categories'])) 
    67     { 
    68       echo 'Hacking attempt, you have no permission to create this album'; 
    69       $hacking_attempt = true; 
    70     } 
     56  // is the user authorized to upload in this album? 
     57  if (!in_array($_POST['category'], $user_permissions['upload_categories'])) 
     58  { 
     59    echo 'Hacking attempt, you have no permission to upload in this album'; 
     60    $hacking_attempt = true; 
    7161  } 
    7262 
     
    8878  $page['infos'] = array(); 
    8979 
    90   if (isset($conf['community_ask_for_properties']) and $conf['community_ask_for_properties']) 
     80  if (isset($_POST['name'])) 
    9181  { 
    9282    $data = array(); 
  • extensions/community/add_photos.tpl

    r10756 r12333  
     1{if $upload_mode eq 'multiple'} 
    12{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' } 
    2  
    3 {if $upload_mode eq 'multiple'} 
    4 {combine_script id='swfobject' load='footer' path='admin/include/uploadify/swfobject.js'} 
    5 {combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v2.1.0.min.js' } 
     3{combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v3.0.0.min.js' } 
     4{combine_script id='jquery.ui.progressbar' load='footer'} 
     5{combine_css path="admin/themes/default/uploadify.jGrowl.css"} 
     6{combine_css path="admin/include/uploadify/uploadify.css"} 
    67{/if} 
    78 
    8 {combine_css path="admin/include/uploadify/uploadify.css"} 
    9 {combine_css path="admin/themes/default/uploadify.jGrowl.css"} 
    10  
     9{combine_script id='jquery.colorbox' load='footer' require='jquery' path='themes/default/js/plugins/jquery.colorbox.min.js'} 
     10{combine_css path="themes/default/js/plugins/colorbox/style2/colorbox.css"} 
    1111 
    1212{footer_script}{literal} 
     
    1717    jQuery("#formErrors li").hide(); 
    1818 
    19     if (jQuery("input[name=category_type]:checked").val() == "new" && jQuery("input[name=category_name]").val() == "") { 
    20       jQuery("#formErrors #emptyCategoryName").show(); 
     19    if (jQuery("#albumSelect option:selected").length == 0) { 
     20      jQuery("#formErrors #noAlbum").show(); 
    2121      nbErrors++; 
    2222    } 
     
    6969  } 
    7070 
    71   if (jQuery("select[name=category] option").length == 0) { 
    72     jQuery('input[name=category_type][value=existing]').attr('disabled', true); 
    73     jQuery('input[name=category_type]').attr('checked', false); 
    74     jQuery('input[name=category_type][value=new]').attr('checked', true); 
     71  function fillCategoryListbox(selectId, selectedValue) { 
     72    jQuery.getJSON( 
     73      "ws.php?format=json&method=pwg.categories.getList", 
     74      { 
     75        recursive: true, 
     76        fullname: true, 
     77        format: "json", 
     78      }, 
     79      function(data) { 
     80        jQuery.each( 
     81          data.result.categories, 
     82          function(i,category) { 
     83            var selected = null; 
     84            if (category.id == selectedValue) { 
     85              selected = "selected"; 
     86            } 
     87             
     88            jQuery("<option/>") 
     89              .attr("value", category.id) 
     90              .attr("selected", selected) 
     91              .text(category.name) 
     92              .appendTo("#"+selectId) 
     93              ; 
     94          } 
     95        ); 
     96      } 
     97    ); 
    7598  } 
    7699 
    77   jQuery("input[name=category_type]").click(function () { 
    78     jQuery("[id^=category_type_]").hide(); 
    79     jQuery("#category_type_"+jQuery(this).attr("value")).show(); 
     100  jQuery(".addAlbumOpen").colorbox({ 
     101    inline:true, 
     102    href:"#addAlbumForm", 
     103    onComplete:function(){ 
     104      jQuery("input[name=category_name]").focus(); 
     105    } 
     106  }); 
     107 
     108  jQuery("#addAlbumForm form").submit(function(){ 
     109      jQuery("#categoryNameError").text(""); 
     110 
     111      jQuery.ajax({ 
     112        url: "ws.php?format=json&method=pwg.categories.add", 
     113        data: { 
     114          parent: jQuery("select[name=category_parent] option:selected").val(), 
     115          name: jQuery("input[name=category_name]").val(), 
     116        }, 
     117        beforeSend: function() { 
     118          jQuery("#albumCreationLoading").show(); 
     119        }, 
     120        success:function(html) { 
     121          jQuery("#albumCreationLoading").hide(); 
     122 
     123          var newAlbum = jQuery.parseJSON(html).result.id; 
     124          jQuery(".addAlbumOpen").colorbox.close(); 
     125 
     126          jQuery("#albumSelect").find("option").remove(); 
     127          fillCategoryListbox("albumSelect", newAlbum); 
     128 
     129          jQuery(".albumSelection").show(); 
     130 
     131          /* we hide the ability to create another album, this is different from the admin upload form */ 
     132          /* in Community, it's complicated to refresh the list of parent albums                       */ 
     133          jQuery("#linkToCreate").hide(); 
     134 
     135          return true; 
     136        }, 
     137        error:function(XMLHttpRequest, textStatus, errorThrows) { 
     138            jQuery("#albumCreationLoading").hide(); 
     139            jQuery("#categoryNameError").text(errorThrows).css("color", "red"); 
     140        } 
     141      }); 
     142 
     143      return false; 
    80144  }); 
    81145 
     
    85149  }); 
    86150 
    87   jQuery("a.externalLink").click(function() { 
    88     window.open(jQuery(this).attr("href")); 
    89     return false; 
     151  jQuery("#uploadWarningsSummary a.showInfo").click(function() { 
     152    jQuery("#uploadWarningsSummary").hide(); 
     153    jQuery("#uploadWarnings").show(); 
     154  }); 
     155 
     156  jQuery("#showPermissions").click(function() { 
     157    jQuery(this).parent(".showFieldset").hide(); 
     158    jQuery("#permissions").show(); 
     159  }); 
     160 
     161  jQuery("#showPhotoProperties").click(function() { 
     162    jQuery(this).parent(".showFieldset").hide(); 
     163    jQuery("#photoProperties").show(); 
    90164  }); 
    91165 
     
    114188var session_id = '{$session_id}'; 
    115189var pwg_token = '{$pwg_token}'; 
    116 var buttonText = 'Browse'; 
    117 var sizeLimit = {$upload_max_filesize}; 
     190var buttonText = "{'Select files'|@translate}"; 
     191var sizeLimit = Math.round({$upload_max_filesize} / 1024); /* in KBytes */ 
    118192 
    119193{literal} 
    120194  jQuery("#uploadify").uploadify({ 
    121     'uploader'       : uploadify_path + '/uploadify.swf', 
    122     'script'         : uploadify_path + '/uploadify.php', 
    123     'scriptData'     : { 
    124       'upload_id' : upload_id, 
    125       'session_id' : session_id, 
    126       'pwg_token' : pwg_token, 
    127     }, 
    128     'cancelImg'      : uploadify_path + '/cancel.png', 
     195    'uploader'       : uploadify_path + '/uploadify.php', 
     196    'langFile'       : uploadify_path + '/uploadifyLang_en.js', 
     197    'swf'            : uploadify_path + '/uploadify.swf', 
     198 
     199    buttonCursor     : 'pointer', 
     200    'buttonText'     : buttonText, 
     201    'width'          : 300, 
     202    'cancelImage'    : uploadify_path + '/cancel.png', 
    129203    'queueID'        : 'fileQueue', 
    130204    'auto'           : false, 
    131     'displayData'    : 'speed', 
    132     'buttonText'     : buttonText, 
    133205    'multi'          : true, 
    134     'fileDesc'       : 'Photo files (*.jpg,*.jpeg,*.png)', 
    135     'fileExt'        : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG', 
    136     'sizeLimit'      : sizeLimit, 
    137     'onAllComplete'  : function(event, data) { 
    138       if (data.errors) { 
     206    'fileTypeDesc'   : 'Photo files', 
     207    'fileTypeExts'   : '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF', 
     208    'fileSizeLimit'  : sizeLimit, 
     209    'progressData'   : 'percentage', 
     210    requeueErrors   : false, 
     211    'onSelect'       : function(event,ID,fileObj) { 
     212      jQuery("#fileQueue").show(); 
     213    }, 
     214    'onQueueComplete'  : function(stats) { 
     215      jQuery("input[name=submit_upload]").click(); 
     216    }, 
     217    onUploadError: function (file,errorCode,errorMsg,errorString,swfuploadifyQueue) { 
     218      /* uploadify calls the onUploadError trigger when the user cancels a file! */ 
     219      /* There no error so we skip it to avoid panic.                            */ 
     220      if ("Cancelled" == errorString) { 
    139221        return false; 
    140222      } 
    141       else { 
    142         jQuery("input[name=submit_upload]").click(); 
    143       } 
    144     }, 
    145     onError: function (event, queueID ,fileObj, errorObj) { 
    146       var msg; 
    147  
    148       if (errorObj.type === "HTTP") { 
    149         if (errorObj.info === 404) { 
    150           alert('Could not find upload script.'); 
    151           msg = 'Could not find upload script.'; 
    152         } 
    153         else { 
    154           msg = errorObj.type+": "+errorObj.info; 
    155         } 
    156       } 
    157       else if (errorObj.type ==="File Size") { 
    158         msg = "File too big"; 
    159         msg = msg + '<br>'+fileObj.name+': '+humanReadableFileSize(fileObj.size); 
    160         msg = msg + '<br>Limit: '+humanReadableFileSize(sizeLimit); 
    161       } 
    162       else { 
    163         msg = errorObj.type+": "+errorObj.info; 
    164       } 
     223 
     224      var msg = file.name+', '+errorString; 
     225 
     226      /* Let's put the error message in the form to display once the form is     */ 
     227      /* performed, it makes support easier when user can copy/paste the error   */ 
     228      /* thrown.                                                                 */ 
     229      jQuery("#uploadForm").append('<input type="hidden" name="onUploadError[]" value="'+msg+'">'); 
    165230 
    166231      jQuery.jGrowl( 
    167         '<p></p>'+msg, 
     232        '<p></p>onUploadError '+msg, 
    168233        { 
    169234          theme:  'error', 
    170235          header: 'ERROR', 
    171           sticky: true 
    172         } 
    173       ); 
    174  
    175       jQuery("#fileUploadgrowl" + queueID).fadeOut( 
    176         250, 
    177         function() { 
    178           jQuery("#fileUploadgrowl" + queueID).remove() 
    179         } 
    180       ); 
    181       return false; 
    182     }, 
    183     onCancel: function (a, b, c, d) { 
    184       var msg = "Cancelled uploading: "+c.name; 
    185       jQuery.jGrowl( 
    186         '<p></p>'+msg, 
    187         { 
    188           theme:  'warning', 
    189           header: 'Cancelled Upload', 
    190236          life:   4000, 
    191237          sticky: false 
    192238        } 
    193239      ); 
     240 
     241      return false; 
    194242    }, 
    195     onClearQueue: function (a, b) { 
    196       var msg = "Cleared "+b.fileCount+" files from queue"; 
    197       jQuery.jGrowl( 
    198         '<p></p>'+msg, 
    199         { 
    200           theme:  'warning', 
    201           header: 'Cleared Queue', 
    202           life:   4000, 
    203           sticky: false 
    204         } 
    205       ); 
     243    onUploadSuccess: function (file,data,response) { 
     244      var data = jQuery.parseJSON(data); 
     245      jQuery("#uploadedPhotos").parent("fieldset").show(); 
     246 
     247      /* Let's display the thumbnail of the uploaded photo, no need to wait the  */ 
     248      /* end of the queue                                                        */ 
     249      jQuery("#uploadedPhotos").prepend('<img src="'+data.thumbnail_url+'" class="thumbnail"> '); 
    206250    }, 
    207     onComplete: function (a, b ,c, d, e) { 
    208       var size = Math.round(c.size/1024); 
    209       jQuery.jGrowl( 
    210         '<p></p>'+c.name+' - '+size+'KB', 
    211         { 
    212           theme:  'success', 
    213           header: 'Upload Complete', 
    214           life:   4000, 
    215           sticky: false 
    216         } 
    217       ); 
     251    onUploadComplete: function(file,swfuploadifyQueue) { 
     252      var max = parseInt(jQuery("#progressMax").text()); 
     253      var next = parseInt(jQuery("#progressCurrent").text())+1; 
     254      var addToProgressBar = 2; 
     255      if (next <= max) { 
     256        jQuery("#progressCurrent").text(next); 
     257      } 
     258      else { 
     259        addToProgressBar = 1; 
     260      } 
     261 
     262      jQuery("#progressbar").progressbar({ 
     263        value: jQuery("#progressbar").progressbar("option", "value") + addToProgressBar 
     264      }); 
    218265    } 
    219266  }); 
     
    223270      return false; 
    224271    } 
     272 
     273    jQuery("#uploadify").uploadifySettings( 
     274      'postData', 
     275      { 
     276        'category_id' : jQuery("select[name=category] option:selected").val(), 
     277        'level' : jQuery("select[name=level] option:selected").val(), 
     278        'upload_id' : upload_id, 
     279        'session_id' : session_id, 
     280        'pwg_token' : pwg_token, 
     281      } 
     282    ); 
     283 
     284    nb_files = jQuery(".uploadifyQueueItem").size(); 
     285    jQuery("#progressMax").text(nb_files); 
     286    jQuery("#progressbar").progressbar({max: nb_files*2, value:1}); 
     287    jQuery("#progressCurrent").text(1); 
     288 
     289    jQuery("#uploadProgress").show(); 
    225290 
    226291    jQuery("#uploadify").uploadifyUpload(); 
     
    233298 
    234299{literal} 
    235 <style> 
     300<style type="text/css"> 
     301/* 
     302#photosAddContent form p { 
     303  text-align:left; 
     304} 
     305*/ 
     306 
    236307#photosAddContent FIELDSET { 
    237308  width:650px; 
     
    245316 
    246317#photosAddContent P { 
    247   /* margin:0; */ 
     318  margin:0; 
    248319} 
    249320 
     
    254325} 
    255326 
    256 #batchLink { 
    257   text-align:center; 
    258 } 
    259  
    260 .category_selection { 
    261   min-height:50px; 
    262   margin-top:5px; 
    263 } 
    264  
    265 .category_selection TABLE { 
    266   margin:0; 
    267 } 
     327#uploadBoxes .file {margin-bottom:5px;text-align:left;} 
     328#uploadBoxes {margin-top:20px;} 
     329#addUploadBox {margin-bottom:2em;} 
     330 
     331p#uploadWarningsSummary {text-align:left;margin-bottom:1em;font-size:90%;color:#999;} 
     332p#uploadWarningsSummary .showInfo {position:static;display:inline;padding:1px 6px;margin-left:3px;} 
     333p#uploadWarnings {display:none;text-align:left;margin-bottom:1em;font-size:90%;color:#999;} 
     334p#uploadModeInfos {text-align:left;margin-top:1em;font-size:90%;color:#999;} 
     335 
     336#photosAddContent p.showFieldset {text-align:left;margin: 0 auto 10px auto;width: 650px;} 
     337 
     338#uploadProgress {width:650px; margin:10px auto;font-size:90%;} 
     339#progressbar {border:1px solid #ccc; background-color:#eee;} 
     340.ui-progressbar-value { background-image: url(admin/themes/default/images/pbar-ani.gif); height:10px;margin:-1px;border:1px solid #E78F08;} 
     341 
     342.showInfo {display:block;position:absolute;top:0;right:5px;width:15px;font-style:italic;font-family:"Georgia",serif;background-color:#464646;font-size:0.9em;border-radius:10px;-moz-border-radius:10px;} 
     343.showInfo:hover {cursor:pointer} 
     344.showInfo {color:#fff;background-color:#999; } 
     345.showInfo:hover {color:#fff;border:none;background-color:#333}  
    268346</style> 
    269347{/literal} 
    270348 
    271349<div id="photosAddContent"> 
    272  
    273   {if isset($errors)} 
    274   <div class="errors"> 
    275     <ul> 
    276       {foreach from=$errors item=error} 
    277       <li>{$error}</li> 
    278       {/foreach} 
    279     </ul> 
    280   </div> 
    281   {/if} 
    282  
    283   {if isset($infos)} 
    284   <div class="infos"> 
    285     <ul> 
    286       {foreach from=$infos item=info} 
    287       <li>{$info}</li> 
    288       {/foreach} 
    289     </ul> 
    290   </div> 
    291   {/if} 
    292  
    293350 
    294351{if count($setup_errors) > 0} 
     
    325382  </div> 
    326383</fieldset> 
    327 <p><a href="{$another_upload_link}">{'Add another set of photos'|@translate}</a></p> 
     384<p style="margin:10px"><a href="{$another_upload_link}">{'Add another set of photos'|@translate}</a></p> 
    328385{else} 
    329386 
    330387<div id="formErrors" class="errors" style="display:none"> 
    331388  <ul> 
    332     <li id="emptyCategoryName">{'The name of an album must not be empty'|@translate}</li> 
     389    <li id="noAlbum">{'Select an album'|@translate}</li> 
    333390    <li id="noPhoto">{'Select at least one photo'|@translate}</li> 
    334391  </ul> 
     
    336393</div> 
    337394 
     395<div style="display:none"> 
     396  <div id="addAlbumForm" style="text-align:left;padding:1em;"> 
     397    <form> 
     398      {'Parent album'|@translate}<br> 
     399      <select id ="category_parent" name="category_parent"> 
     400        <option value="0">------------</option> 
     401        {html_options options=$category_parent_options selected=$category_parent_options_selected} 
     402      </select> 
     403 
     404      <br><br>{'Album name'|@translate}<br><input name="category_name" type="text"> <span id="categoryNameError"></span> 
     405      <br><br><br><input type="submit" value="{'Create'|@translate}"> <span id="albumCreationLoading" style="display:none"><img src="themes/default/images/ajax-loader-small.gif"></span> 
     406    </form> 
     407  </div> 
     408</div> 
     409 
    338410<form id="uploadForm" enctype="multipart/form-data" method="post" action="{$form_action}" class="properties"> 
     411{if $upload_mode eq 'multiple'} 
     412    <input name="upload_id" value="{$upload_id}" type="hidden"> 
     413{/if} 
     414 
    339415    <fieldset> 
    340416      <legend>{'Drop into album'|@translate}</legend> 
    341       {if $upload_mode eq 'multiple'} 
    342       <input name="upload_id" value="{$upload_id}" type="hidden"> 
    343       {/if} 
    344  
     417 
     418      <span class="albumSelection"{if count($category_options) == 0} style="display:none"{/if}> 
     419      <select id="albumSelect" name="category"> 
     420        {html_options options=$category_options selected=$category_options_selected} 
     421      </select> 
     422      </span> 
    345423{if $create_subcategories} 
    346       <label><input type="radio" name="category_type" value="existing"> {'existing album'|@translate}</label> 
    347       <label><input type="radio" name="category_type" value="new" checked="checked"> {'create a new album'|@translate}</label> 
    348 {else} 
    349       <input name="category_type" value="existing" type="hidden"> 
    350 {/if} 
    351  
    352       <div id="category_type_existing" {if $create_subcategories}style="display:none" class="category_selection"{/if}> 
    353         <select class="categoryDropDown" name="category"> 
    354           {html_options options=$category_options selected=$category_options_selected} 
    355         </select> 
     424      <div id="linkToCreate"> 
     425      <span class="albumSelection">{'... or '|@translate}</span><a href="#" class="addAlbumOpen" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a> 
    356426      </div> 
    357  
    358 {if $create_subcategories} 
    359       <div id="category_type_new" class="category_selection"> 
    360         <table> 
    361           <tr> 
    362             <td>{'Parent album'|@translate}</td> 
    363             <td> 
    364               <select class="categoryDropDown" name="category_parent"> 
    365 {if $create_whole_gallery} 
    366                 <option value="0">------------</option> 
    367 {/if} 
    368                 {html_options options=$category_parent_options selected=$category_parent_options_selected} 
    369               </select> 
    370             </td> 
    371           </tr> 
    372           <tr> 
    373             <td>{'Album name'|@translate}</td> 
    374             <td> 
    375               <input type="text" name="category_name" value="{$F_CATEGORY_NAME}" style="width:400px"> 
    376             </td> 
    377           </tr> 
    378         </table> 
     427{/if}       
     428    </fieldset> 
     429 
     430    <fieldset> 
     431      <legend>{'Select files'|@translate}</legend> 
     432 
     433    <p id="uploadWarningsSummary">{$upload_max_filesize_shorthand}B. {$upload_file_types}. {if isset($max_upload_resolution)}{$max_upload_resolution}Mpx{/if} <a class="showInfo" title="{'Learn more'|@translate}">i</a></p> 
     434 
     435    <p id="uploadWarnings"> 
     436{'Maximum file size: %sB.'|@translate|@sprintf:$upload_max_filesize_shorthand} 
     437{'Allowed file types: %s.'|@translate|@sprintf:$upload_file_types} 
     438  {if isset($max_upload_resolution)} 
     439{'Approximate maximum resolution: %dM pixels (that\'s %dx%d pixels).'|@translate|@sprintf:$max_upload_resolution:$max_upload_width:$max_upload_height} 
     440  {/if} 
     441    </p> 
     442 
     443{if $upload_mode eq 'html'} 
     444      <div id="uploadBoxes"></div> 
     445      <div id="addUploadBox"> 
     446        <a href="javascript:">{'+ Add an upload box'|@translate}</a> 
    379447      </div> 
     448 
     449    <p id="uploadModeInfos">{'You are using the Browser uploader. Try the <a href="%s">Flash uploader</a> instead.'|@translate|@sprintf:$switch_url}</p> 
     450 
     451{elseif $upload_mode eq 'multiple'} 
     452    <div id="uploadify">You've got a problem with your JavaScript</div>  
     453 
     454    <div id="fileQueue" style="display:none"></div> 
     455 
     456    <p id="uploadModeInfos">{'You are using the Flash uploader. Problems? Try the <a href="%s">Browser uploader</a> instead.'|@translate|@sprintf:$switch_url}</p> 
     457 
    380458{/if} 
    381459    </fieldset> 
    382460 
    383 {if $community_ask_for_properties} 
    384     <fieldset id="photoProperties"> 
     461    <p class="showFieldset"><a id="showPhotoProperties" href="#">{'Set Photo Properties'|@translate}</a></p> 
     462 
     463    <fieldset id="photoProperties" style="display:none"> 
    385464      <legend>{'Photo Properties'|@translate}</legend> 
    386465 
     
    401480 
    402481    </fieldset> 
     482 
     483{if $enable_permissions} 
     484    <p class="showFieldset"><a id="showPermissions" href="#">{'Manage Permissions'|@translate}</a></p> 
     485 
     486    <fieldset id="permissions" style="display:none"> 
     487      <legend>{'Who can see these photos?'|@translate}</legend> 
     488 
     489      <select name="level" size="1"> 
     490        {html_options options=$level_options selected=$level_options_selected} 
     491      </select> 
     492    </fieldset> 
    403493{/if} 
    404494 
    405     <fieldset> 
    406       <legend>{'Select files'|@translate}</legend> 
    407  
    408495{if $upload_mode eq 'html'} 
    409     <p><a href="{$switch_url}">{'... or switch to the multiple files form'|@translate}</a></p> 
    410  
    411       <p>{'JPEG files or ZIP archives with JPEG files inside please.'|@translate}</p> 
    412  
    413       <div id="uploadBoxes"></div> 
    414       <div id="addUploadBox"> 
    415         <a href="javascript:">{'+ Add an upload box'|@translate}</a> 
    416       </div> 
    417      
    418     </fieldset> 
    419  
    420496    <p> 
    421       <input class="submit" type="submit" name="submit_upload" value="{'Upload'|@translate}"> 
     497      <input class="submit" type="submit" name="submit_upload" value="{'Start Upload'|@translate}"> 
    422498    </p> 
    423499{elseif $upload_mode eq 'multiple'} 
    424     <p> 
    425       <input type="file" name="uploadify" id="uploadify"> 
    426     </p> 
    427  
    428     <p><a href="{$switch_url}">{'... or switch to the old style form'|@translate}</a></p> 
    429  
    430     <div id="fileQueue"></div> 
    431  
    432     </fieldset> 
    433     <p> 
    434       <input class="submit" type="button" value="{'Upload'|@translate}"> 
     500    <p style="margin-bottom:1em"> 
     501      <input class="submit" type="button" value="{'Start Upload'|@translate}"> 
    435502      <input type="submit" name="submit_upload" style="display:none"> 
    436503    </p> 
    437504{/if} 
    438505</form> 
     506 
     507<div id="uploadProgress" style="display:none"> 
     508{'Photo %s of %s'|@translate|@sprintf:'<span id="progressCurrent">1</span>':'<span id="progressMax">10</span>'} 
     509<br> 
     510<div id="progressbar"></div> 
     511</div> 
     512 
     513<fieldset style="display:none"> 
     514  <legend>{'Uploaded Photos'|@translate}</legend> 
     515  <div id="uploadedPhotos"></div> 
     516</fieldset> 
     517 
    439518{/if} {* empty($thumbnails) *} 
    440519{/if} {* $setup_errors *} 
  • extensions/community/language/en_UK/plugin.lang.php

    r10652 r12333  
    6161$lang['Edit a permission'] = 'Edit a permission'; 
    6262$lang['Your photos are waiting for validation, administrators have been notified'] = 'Your photos are waiting for validation, administrators have been notified'; 
     63 
     64$lang['Set Photo Properties'] = 'Set Photo Properties'; 
    6365?> 
  • extensions/community/language/fr_FR/plugin.lang.php

    r10771 r12333  
    6363$lang['Edit a permission'] = 'Editer une permission'; 
    6464$lang['Your photos are waiting for validation, administrators have been notified'] = 'Vos photos sont en attente de validation, les administrateurs sont prévenus'; 
     65 
     66$lang['Set Photo Properties'] = 'Définir les proriétés de la photo'; 
    6567?> 
  • extensions/community/main.inc.php

    r11726 r12333  
    336336    } 
    337337 
    338     $row['name'] = strip_tags( 
    339       trigger_event( 
    340         'render_category_name', 
    341         $row['name'], 
    342         'ws_categories_getList' 
    343         ) 
    344       ); 
     338    if ($params['fullname']) 
     339    { 
     340      $row['name'] = strip_tags(get_cat_display_name_cache($row['uppercats'], null, false)); 
     341    } 
     342    else 
     343    { 
     344      $row['name'] = strip_tags( 
     345        trigger_event( 
     346          'render_category_name', 
     347          $row['name'], 
     348          'ws_categories_getList' 
     349          ) 
     350        ); 
     351    } 
    345352     
    346353    $row['comment'] = strip_tags( 
     
    564571  community_update_cache_key(); 
    565572} 
     573 
     574add_event_handler('init', 'community_uploadify_privacy_level'); 
     575function community_uploadify_privacy_level() 
     576{ 
     577  if (script_basename() == 'uploadify' and !is_admin()) 
     578  { 
     579    $_POST['level'] = 16; 
     580  } 
     581} 
    566582?> 
Note: See TracChangeset for help on using the changeset viewer.