Changeset 4953


Ignore:
Timestamp:
02/23/10 15:38:38 (9 years ago)
Author:
plg
Message:

feature 1453 added: ability to check for uniqueness on filename. No change on
the default behavior: uniqueness is set on md5sum.

Location:
branches/2.0
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0/include/config_default.inc.php

    r3945 r4953  
    322322// Define using double password type in admin's users management panel 
    323323$conf['double_password_type_in_admin'] = false; 
     324 
     325// how should we check for unicity when adding a photo. Can be 'md5sum' or 
     326// 'filename' 
     327$conf['uniqueness_mode'] = 'md5sum'; 
    324328 
    325329// +-----------------------------------------------------------------------+ 
  • branches/2.0/include/ws_functions.inc.php

    r4910 r4953  
    12051205 
    12061206  // does the image already exists ? 
     1207  if ('md5sum' == $conf['uniqueness_mode']) 
     1208  { 
     1209    $where_clause = "md5sum = '".$params['original_sum']."'"; 
     1210  } 
     1211  if ('filename' == $conf['uniqueness_mode']) 
     1212  { 
     1213    $where_clause = "file = '".$params['original_filename']."'"; 
     1214  } 
     1215   
    12071216  $query = ' 
    12081217SELECT 
    12091218    COUNT(*) AS counter 
    12101219  FROM '.IMAGES_TABLE.' 
    1211   WHERE md5sum = \''.$params['original_sum'].'\' 
     1220  WHERE '.$where_clause.' 
    12121221;'; 
    12131222  list($counter) = mysql_fetch_row(pwg_query($query)); 
     
    15981607function ws_images_exist($params, &$service) 
    15991608{ 
     1609  global $conf; 
     1610   
    16001611  if (!is_admin() or is_adviser()) 
    16011612  { 
     
    16031614  } 
    16041615 
    1605   // search among photos the list of photos already added, based on md5sum 
    1606   // list 
    1607   $md5sums = preg_split( 
    1608     '/[\s,;\|]/', 
    1609     $params['md5sum_list'], 
    1610     -1, 
    1611     PREG_SPLIT_NO_EMPTY 
    1612     ); 
    1613  
    1614   $query = ' 
     1616  $split_pattern = '/[\s,;\|]/'; 
     1617 
     1618  if ('md5sum' == $conf['uniqueness_mode']) 
     1619  { 
     1620    // search among photos the list of photos already added, based on md5sum 
     1621    // list 
     1622    $md5sums = preg_split( 
     1623      $split_pattern, 
     1624      $params['md5sum_list'], 
     1625      -1, 
     1626      PREG_SPLIT_NO_EMPTY 
     1627    ); 
     1628 
     1629    $query = ' 
    16151630SELECT 
    16161631    id, 
     
    16191634  WHERE md5sum IN (\''.implode("','", $md5sums).'\') 
    16201635;'; 
    1621   $id_of_md5 = simple_hash_from_query($query, 'md5sum', 'id'); 
    1622  
    1623   $result = array(); 
    1624  
    1625   foreach ($md5sums as $md5sum) 
    1626   { 
    1627     $result[$md5sum] = null; 
    1628     if (isset($id_of_md5[$md5sum])) 
    1629     { 
    1630       $result[$md5sum] = $id_of_md5[$md5sum]; 
     1636    $id_of_md5 = simple_hash_from_query($query, 'md5sum', 'id'); 
     1637 
     1638    $result = array(); 
     1639 
     1640    foreach ($md5sums as $md5sum) 
     1641    { 
     1642      $result[$md5sum] = null; 
     1643      if (isset($id_of_md5[$md5sum])) 
     1644      { 
     1645        $result[$md5sum] = $id_of_md5[$md5sum]; 
     1646      } 
     1647    } 
     1648  } 
     1649   
     1650  if ('filename' == $conf['uniqueness_mode']) 
     1651  { 
     1652    // search among photos the list of photos already added, based on 
     1653    // filename list 
     1654    $filenames = preg_split( 
     1655      $split_pattern, 
     1656      $params['filename_list'], 
     1657      -1, 
     1658      PREG_SPLIT_NO_EMPTY 
     1659    ); 
     1660 
     1661    $query = ' 
     1662SELECT 
     1663    id, 
     1664    file 
     1665  FROM '.IMAGES_TABLE.' 
     1666  WHERE file IN (\''.implode("','", $filenames).'\') 
     1667;'; 
     1668    $id_of_filename = simple_hash_from_query($query, 'file', 'id'); 
     1669 
     1670    $result = array(); 
     1671 
     1672    foreach ($filenames as $filename) 
     1673    { 
     1674      $result[$filename] = null; 
     1675      if (isset($id_of_filename[$filename])) 
     1676      { 
     1677        $result[$filename] = $id_of_filename[$filename]; 
     1678      } 
    16311679    } 
    16321680  } 
  • branches/2.0/ws.php

    r4910 r4953  
    258258    'ws_images_exist', 
    259259    array( 
    260       'md5sum_list'=> array(), 
     260      'md5sum_list'=> array('default' => null), 
     261      'filename_list' => array('default' => null), 
    261262      ), 
    262263    'check existence of a photo list' 
Note: See TracChangeset for help on using the changeset viewer.