Changeset 12917


Ignore:
Timestamp:
01/17/12 22:02:16 (8 years ago)
Author:
rvelices
Message:

feature 2548 multisize - implement delete_element_derivatives

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/include/functions.php

    r12906 r12917  
    33// | Piwigo - a PHP based photo gallery                                    | 
    44// +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
     5// | Copyright(C) 2008-2012 Piwigo Team                  http://piwigo.org | 
    66// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    77// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
     
    176176  } 
    177177 
    178   include_once(PHPWG_ROOT_PATH.'include/functions_picture.inc.php'); 
    179    
    180178  $new_ids = array(); 
    181179 
     
    184182    id, 
    185183    path, 
    186     tn_ext, 
    187     has_high, 
    188184    representative_ext 
    189185  FROM '.IMAGES_TABLE.' 
     
    197193      continue; 
    198194    } 
    199      
     195 
    200196    $files = array(); 
    201197    $files[] = get_element_path($row); 
     
    216212      } 
    217213    } 
    218      
     214 
    219215    if ($ok) 
    220216    { 
     217      delete_element_derivatives($row); 
    221218      $new_ids[] += $row['id']; 
    222219    } 
     
    389386{ 
    390387  $orphan_tags = get_orphan_tags(); 
    391    
     388 
    392389  if (count($orphan_tags) > 0) 
    393390  { 
     
    413410{ 
    414411  $orphan_tags = array(); 
    415    
     412 
    416413  $query = ' 
    417414SELECT 
     
    13901387    return false; 
    13911388  } 
    1392    
     1389 
    13931390  $query = ' 
    13941391DELETE 
     
    13971394;'; 
    13981395  pwg_query($query); 
    1399    
     1396 
    14001397  $query = ' 
    14011398DELETE 
     
    20392036{ 
    20402037  $result = pwg_query($query); 
    2041    
     2038 
    20422039  $taglist = array(); 
    20432040  while ($row = pwg_db_fetch_assoc($result)) 
     
    20582055      $row['name'] = preg_replace('#\[lang=(.*?)\](.*?)\[/lang\]#is', null, $row['name']); 
    20592056    } 
    2060      
     2057 
    20612058    if (strlen($row['name']) > 0) 
    20622059    { 
     
    20702067    } 
    20712068  } 
    2072    
     2069 
    20732070  $cmp = create_function('$a,$b', 'return strcasecmp($a["name"], $b["name"]);'); 
    20742071  usort($taglist, $cmp); 
     
    21372134    return; 
    21382135  } 
    2139    
     2136 
    21402137  // make sure categories are private and select uppercats or subcats 
    21412138  $cat_ids = (isset($_POST['apply_on_sub'])) ? implode(',', get_subcat_ids($category_ids)).",".implode(',', get_uppercat_ids($category_ids)) : implode(',', get_uppercat_ids($category_ids)); 
     
    21532150    return; 
    21542151  } 
    2155    
     2152 
    21562153  // We must not reinsert already existing lines in user_access table 
    21572154  $granteds = array(); 
     
    21602157    $granteds[$cat_id] = array(); 
    21612158  } 
    2162    
     2159 
    21632160  $query = ' 
    21642161SELECT 
     
    21762173 
    21772174  $inserts = array(); 
    2178    
     2175 
    21792176  foreach ($private_cats as $cat_id) 
    21802177  { 
    21812178    $grant_to_users = array_diff($user_ids, $granteds[$cat_id]); 
    2182      
     2179 
    21832180    foreach ($grant_to_users as $user_id) 
    21842181    { 
     
    22082205    $status_list[] = 'webmaster'; 
    22092206  } 
    2210    
     2207 
    22112208  $query = ' 
    22122209SELECT 
     
    22462243    $pattern .= derivative_to_url($types[0]); 
    22472244  } 
    2248    
     2245 
    22492246  $pattern.='(_[a-zA-Z0-9]+)*\.[a-zA-Z0-9]{3,4}$#'; 
    22502247  if ($contents = opendir(PHPWG_ROOT_PATH.PWG_DERIVATIVE_DIR)) 
     
    22952292    } 
    22962293    closedir($contents); 
    2297      
     2294 
    22982295    if ($rmdir) 
    22992296    { 
     
    23092306} 
    23102307 
    2311 function delete_element_derivatives($ids) 
    2312 { 
    2313   // todo 
    2314   if (!is_array($ids)) 
    2315   { 
    2316     $ids = array($ids); 
    2317   } 
    2318  
    2319   // for now I do a massive clear, to be removed once the function is 
    2320   // properly implemented 
    2321   clear_derivative_cache(); 
     2308function delete_element_derivatives($infos) 
     2309{ 
     2310  $path = $infos['path']; 
     2311  if (!empty($infos['representative_ext'])) 
     2312  { 
     2313    $path = original_to_representative( $path, $infos['representative_ext']); 
     2314  } 
     2315  if (substr_compare($path, '../', 0, 3)==0) 
     2316  { 
     2317    $path = substr($path, 3); 
     2318  } 
     2319  $dot = strpos($path, '.'); 
     2320  $path = substr_replace($path, '-*', $dot, 0); 
     2321  foreach( glob(PHPWG_ROOT_PATH.PWG_DERIVATIVE_DIR.$path) as $file) 
     2322  { 
     2323    @unlink($file); 
     2324  } 
    23222325} 
    23232326?> 
  • trunk/admin/include/functions_upload.inc.php

    r12907 r12917  
    33// | Piwigo - a PHP based photo gallery                                    | 
    44// +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
     5// | Copyright(C) 2008-2012 Piwigo Team                  http://piwigo.org | 
    66// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    77// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
     
    3737      'can_be_null' => false, 
    3838      ), 
    39    
     39 
    4040    'original_resize_maxwidth' => array( 
    4141      'default' => 2000, 
     
    4646      'error_message' => l10n('The original maximum width must be a number between %d and %d'), 
    4747      ), 
    48    
     48 
    4949    'original_resize_maxheight' => array( 
    5050      'default' => 2000, 
     
    5555      'error_message' => l10n('The original maximum height must be a number between %d and %d'), 
    5656      ), 
    57    
     57 
    5858    'original_resize_quality' => array( 
    5959      'default' => 95, 
     
    113113      $max = $upload_form_config[$field]['max']; 
    114114      $pattern = $upload_form_config[$field]['pattern']; 
    115        
     115 
    116116      if (preg_match($pattern, $value) and $value >= $min and $value <= $max) 
    117117      { 
     
    158158  // 
    159159  // 3) register in database 
    160    
     160 
    161161  // TODO 
    162162  // * check md5sum (already exists?) 
    163    
     163 
    164164  global $conf, $user; 
    165165 
     
    172172    $md5sum = md5_file($source_filepath); 
    173173  } 
    174    
     174 
    175175  $file_path = null; 
    176    
     176 
    177177  if (isset($image_id)) 
    178178  { 
     
    189189      $file_path = $row['path']; 
    190190    } 
    191      
     191 
    192192    if (!isset($file_path)) 
    193193    { 
     
    201201  { 
    202202    // this photo is new 
    203      
     203 
    204204    // current date 
    205205    list($dbnow) = pwg_db_fetch_row(pwg_query('SELECT NOW();')); 
    206206    list($year, $month, $day) = preg_split('/[^\d]/', $dbnow, 4); 
    207    
     207 
    208208    // upload directory hierarchy 
    209209    $upload_dir = sprintf( 
     
    251251    { 
    252252      $need_resize = need_resize($file_path, $conf['original_resize_maxwidth'], $conf['original_resize_maxheight']); 
    253        
     253 
    254254      if ($need_resize) 
    255255      { 
    256256        $img = new pwg_image($file_path); 
    257              
     257 
    258258        $img->pwg_resize( 
    259259          $file_path, 
     
    264264          false 
    265265          ); 
    266          
     266 
    267267        $img->destroy(); 
    268268      } 
     
    271271 
    272272  $file_infos = pwg_image_infos($file_path); 
    273    
     273 
    274274  if (isset($image_id)) 
    275275  { 
     
    282282      'added_by' => $user['id'], 
    283283      ); 
    284      
     284 
    285285    if (isset($level)) 
    286286    { 
     
    293293      array('id' => $image_id) 
    294294      ); 
    295  
    296     delete_element_derivatives($image_id); 
    297295  } 
    298296  else 
     
    309307      'added_by' => $user['id'], 
    310308      ); 
    311      
     309 
    312310    if (isset($level)) 
    313311    { 
     
    316314 
    317315    single_insert(IMAGES_TABLE, $insert); 
    318    
     316 
    319317    $image_id = pwg_db_insert_id(IMAGES_TABLE); 
    320318  } 
     
    327325      ); 
    328326  } 
    329    
     327 
    330328  // update metadata from the uploaded file (exif/iptc) 
    331329  if ($conf['use_exif'] and !function_exists('read_exif_data')) 
     
    375373  // invert width and height. 
    376374  list($width, $height) = getimagesize($image_filepath); 
    377    
     375 
    378376  if ($width > $max_width or $height > $max_height) 
    379377  { 
     
    388386  list($width, $height) = getimagesize($path); 
    389387  $filesize = floor(filesize($path)/1024); 
    390    
     388 
    391389  return array( 
    392390    'width'  => $width, 
     
    434432    $size = convert_shorthand_notation_to_bytes($size); 
    435433  } 
    436    
     434 
    437435  return $size; 
    438436} 
     
    442440  $suffix = substr($value, -1); 
    443441  $multiply_by = null; 
    444    
     442 
    445443  if ('K' == $suffix) 
    446444  { 
     
    455453    $multiply_by = 1024*1024*1024; 
    456454  } 
    457    
     455 
    458456  if (isset($multiply_by)) 
    459457  { 
     
    500498    { 
    501499      @chmod($conf['upload_dir'], 0777); 
    502        
     500 
    503501      if (!is_writable($conf['upload_dir'])) 
    504502      { 
  • trunk/include/functions_notification.inc.php

    r12796 r12917  
    33// | Piwigo - a PHP based photo gallery                                    | 
    44// +-----------------------------------------------------------------------+ 
    5 // | Copyright(C) 2008-2011 Piwigo Team                  http://piwigo.org | 
     5// | Copyright(C) 2008-2012 Piwigo Team                  http://piwigo.org | 
    66// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net | 
    77// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick | 
     
    459459    { // get some thumbnails ... 
    460460      $query = ' 
    461 SELECT DISTINCT id, path, name, representative_ext, file 
     461SELECT DISTINCT i.* 
    462462  FROM '.IMAGES_TABLE.' i INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic ON id=image_id 
    463463  '.$where_sql.' 
    464464    AND date_available=\''.$dates[$i]['date_available'].'\' 
    465     AND tn_ext IS NOT NULL 
    466465  ORDER BY '.DB_RANDOM_FUNCTION.'() 
    467466  LIMIT '.$max_elements.' 
Note: See TracChangeset for help on using the changeset viewer.